X-Git-Url: https://git.jsancho.org/?a=blobdiff_plain;f=Source%2FMath%2FFrustum.cpp;h=4844ba54f6516559851275cc31c8a55357f460c1;hb=43b29d6c2092964efbba5ee4d5f4a559d86bc508;hp=e8b13666a977477f748809893a3cc3d85a859687;hpb=ed3662c0852c4312a612b4fc35bd03aba8d13db7;p=lugaru.git
diff --git a/Source/Math/Frustum.cpp b/Source/Math/Frustum.cpp
index e8b1366..4844ba5 100644
--- a/Source/Math/Frustum.cpp
+++ b/Source/Math/Frustum.cpp
@@ -1,6 +1,6 @@
/*
Copyright (C) 2003, 2010 - Wolfire Games
-Copyright (C) 2010-2016 - Lugaru contributors (see AUTHORS file)
+Copyright (C) 2010-2017 - Lugaru contributors (see AUTHORS file)
This file is part of Lugaru.
@@ -25,7 +25,7 @@ along with Lugaru. If not, see .
#include
void FRUSTUM::
-GetFrustum()
+ GetFrustum()
{
static float projmatrix[16];
static float mvmatrix[16];
@@ -93,86 +93,110 @@ GetFrustum()
}
int FRUSTUM::
-CubeInFrustum(float x, float y, float z, float size)
+ CubeInFrustum(float x, float y, float z, float size)
{
static int c, c2;
for (int i = 0; i < 6; i++) {
c = 0;
- if (frustum[i][0] * (x - size) + frustum[i][1] * (y - size) + frustum[i][2] * (z - size) + frustum[i][3] > 0)
+ if (frustum[i][0] * (x - size) + frustum[i][1] * (y - size) + frustum[i][2] * (z - size) + frustum[i][3] > 0) {
c++;
- if (frustum[i][0] * (x + size) + frustum[i][1] * (y - size) + frustum[i][2] * (z - size) + frustum[i][3] > 0)
+ }
+ if (frustum[i][0] * (x + size) + frustum[i][1] * (y - size) + frustum[i][2] * (z - size) + frustum[i][3] > 0) {
c++;
- if (frustum[i][0] * (x - size) + frustum[i][1] * (y + size) + frustum[i][2] * (z - size) + frustum[i][3] > 0)
+ }
+ if (frustum[i][0] * (x - size) + frustum[i][1] * (y + size) + frustum[i][2] * (z - size) + frustum[i][3] > 0) {
c++;
- if (frustum[i][0] * (x + size) + frustum[i][1] * (y + size) + frustum[i][2] * (z - size) + frustum[i][3] > 0)
+ }
+ if (frustum[i][0] * (x + size) + frustum[i][1] * (y + size) + frustum[i][2] * (z - size) + frustum[i][3] > 0) {
c++;
- if (frustum[i][0] * (x - size) + frustum[i][1] * (y - size) + frustum[i][2] * (z + size) + frustum[i][3] > 0)
+ }
+ if (frustum[i][0] * (x - size) + frustum[i][1] * (y - size) + frustum[i][2] * (z + size) + frustum[i][3] > 0) {
c++;
- if (frustum[i][0] * (x + size) + frustum[i][1] * (y - size) + frustum[i][2] * (z + size) + frustum[i][3] > 0)
+ }
+ if (frustum[i][0] * (x + size) + frustum[i][1] * (y - size) + frustum[i][2] * (z + size) + frustum[i][3] > 0) {
c++;
- if (frustum[i][0] * (x - size) + frustum[i][1] * (y + size) + frustum[i][2] * (z + size) + frustum[i][3] > 0)
+ }
+ if (frustum[i][0] * (x - size) + frustum[i][1] * (y + size) + frustum[i][2] * (z + size) + frustum[i][3] > 0) {
c++;
- if (frustum[i][0] * (x + size) + frustum[i][1] * (y + size) + frustum[i][2] * (z + size) + frustum[i][3] > 0)
+ }
+ if (frustum[i][0] * (x + size) + frustum[i][1] * (y + size) + frustum[i][2] * (z + size) + frustum[i][3] > 0) {
c++;
- if (c == 0)
+ }
+ if (c == 0) {
return 0;
- if (c == 8)
+ }
+ if (c == 8) {
c2++;
+ }
}
- if (c2 >= 6)
+ if (c2 >= 6) {
return 2;
- else
+ } else {
return 1;
+ }
}
int FRUSTUM::
-CubeInFrustum(float x, float y, float z, float size, float height)
+ CubeInFrustum(float x, float y, float z, float size, float height)
{
static int c, c2;
for (int i = 0; i < 6; i++) {
c = 0;
- if (frustum[i][0] * (x - size) + frustum[i][1] * (y - height) + frustum[i][2] * (z - size) + frustum[i][3] > 0)
+ if (frustum[i][0] * (x - size) + frustum[i][1] * (y - height) + frustum[i][2] * (z - size) + frustum[i][3] > 0) {
c++;
- if (frustum[i][0] * (x + size) + frustum[i][1] * (y - height) + frustum[i][2] * (z - size) + frustum[i][3] > 0)
+ }
+ if (frustum[i][0] * (x + size) + frustum[i][1] * (y - height) + frustum[i][2] * (z - size) + frustum[i][3] > 0) {
c++;
- if (frustum[i][0] * (x - size) + frustum[i][1] * (y + height) + frustum[i][2] * (z - size) + frustum[i][3] > 0)
+ }
+ if (frustum[i][0] * (x - size) + frustum[i][1] * (y + height) + frustum[i][2] * (z - size) + frustum[i][3] > 0) {
c++;
- if (frustum[i][0] * (x + size) + frustum[i][1] * (y + height) + frustum[i][2] * (z - size) + frustum[i][3] > 0)
+ }
+ if (frustum[i][0] * (x + size) + frustum[i][1] * (y + height) + frustum[i][2] * (z - size) + frustum[i][3] > 0) {
c++;
- if (frustum[i][0] * (x - size) + frustum[i][1] * (y - height) + frustum[i][2] * (z + size) + frustum[i][3] > 0)
+ }
+ if (frustum[i][0] * (x - size) + frustum[i][1] * (y - height) + frustum[i][2] * (z + size) + frustum[i][3] > 0) {
c++;
- if (frustum[i][0] * (x + size) + frustum[i][1] * (y - height) + frustum[i][2] * (z + size) + frustum[i][3] > 0)
+ }
+ if (frustum[i][0] * (x + size) + frustum[i][1] * (y - height) + frustum[i][2] * (z + size) + frustum[i][3] > 0) {
c++;
- if (frustum[i][0] * (x - size) + frustum[i][1] * (y + height) + frustum[i][2] * (z + size) + frustum[i][3] > 0)
+ }
+ if (frustum[i][0] * (x - size) + frustum[i][1] * (y + height) + frustum[i][2] * (z + size) + frustum[i][3] > 0) {
c++;
- if (frustum[i][0] * (x + size) + frustum[i][1] * (y + height) + frustum[i][2] * (z + size) + frustum[i][3] > 0)
+ }
+ if (frustum[i][0] * (x + size) + frustum[i][1] * (y + height) + frustum[i][2] * (z + size) + frustum[i][3] > 0) {
c++;
- if (c == 0)
+ }
+ if (c == 0) {
return 0;
- if (c == 8)
+ }
+ if (c == 8) {
c2++;
+ }
}
- if (c2 >= 6)
+ if (c2 >= 6) {
return 2;
- else
+ } else {
return 1;
+ }
}
int FRUSTUM::
-SphereInFrustum(float x, float y, float z, float radius)
+ SphereInFrustum(float x, float y, float z, float radius)
{
- static int c2;
+ static int c2;
for (int i = 0; i < 6; i++) {
- if (frustum[i][0] * x + frustum[i][1] * y + frustum[i][2] * z + frustum[i][3] > -1 * radius)
+ if (frustum[i][0] * x + frustum[i][1] * y + frustum[i][2] * z + frustum[i][3] > -1 * radius) {
c2++;
- else
+ } else {
return 0;
+ }
}
- if (c2 >= 6)
+ if (c2 >= 6) {
return 2;
- else
+ } else {
return 1;
+ }
}