|  | @@ -1,61 +1,76 @@
 | 
	
		
			
				|  |  |  #include "tests/FrustumTests.h"
 | 
	
		
			
				|  |  | -#include "tests/Test.h"
 | 
	
		
			
				|  |  |  #include "math/Frustum.h"
 | 
	
		
			
				|  |  | +#include "tests/Test.h"
 | 
	
		
			
				|  |  |  #include "utils/StringBuffer.h"
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  typedef StringBuffer<250> String;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  static void testToString(Test& test) {
 | 
	
		
			
				|  |  | -    Size size(200, 100);
 | 
	
		
			
				|  |  | -    Frustum f(60.0f, 0.1f, 1000.0f, size);
 | 
	
		
			
				|  |  | +    Frustum f(60.0f, 0.1f, 1000.0f);
 | 
	
		
			
				|  |  |      test.checkEqual(String("("
 | 
	
		
			
				|  |  | -            "fieldOfView = 60.00, "
 | 
	
		
			
				|  |  | -            "nearClip = 0.10, "
 | 
	
		
			
				|  |  | -            "farClip = 1000.00, "
 | 
	
		
			
				|  |  | -            "width = 200, "
 | 
	
		
			
				|  |  | -            "height = 100)"), String(f), "to string");
 | 
	
		
			
				|  |  | +                           "fieldOfView = 60.00, "
 | 
	
		
			
				|  |  | +                           "nearClip = 0.10, "
 | 
	
		
			
				|  |  | +                           "farClip = 1000.00)"),
 | 
	
		
			
				|  |  | +                    String(f), "to string");
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  static void testPointIsInside(Test& test) {
 | 
	
		
			
				|  |  |      Size size(200, 100);
 | 
	
		
			
				|  |  | -    Frustum f(60.0f, 0.1f, 1000.0f, size);
 | 
	
		
			
				|  |  | -    f.updatePlanes(Vector3(0.0f, 0.0f, 0.0f),
 | 
	
		
			
				|  |  | -            Vector3(1.0f, 0.0f, 0.0f),
 | 
	
		
			
				|  |  | -            Vector3(0.0f, 1.0f, 0.0f),
 | 
	
		
			
				|  |  | -            Vector3(0.0f, 0.0f, 1.0f));
 | 
	
		
			
				|  |  | -    
 | 
	
		
			
				|  |  | -    test.checkEqual(true, f.isInside(Vector3(0.0f, 0.0f, 5.0f)), "point is inside 1");
 | 
	
		
			
				|  |  | -    test.checkEqual(false, f.isInside(Vector3(0.0f, 0.0f, 1004.0f)), "point is inside 2");
 | 
	
		
			
				|  |  | -    test.checkEqual(false, f.isInside(Vector3(0.0f, 0.0f, -5.0f)), "point is inside 3");
 | 
	
		
			
				|  |  | -    test.checkEqual(false, f.isInside(Vector3(0.0f, 50.0f, 5.0f)), "point is inside 4");
 | 
	
		
			
				|  |  | -    test.checkEqual(false, f.isInside(Vector3(0.0f, -50.0f, 5.0f)), "point is inside 5");
 | 
	
		
			
				|  |  | -    test.checkEqual(false, f.isInside(Vector3(50.0f, 0.0f, 5.0f)), "point is inside 6");
 | 
	
		
			
				|  |  | -    test.checkEqual(false, f.isInside(Vector3(-50.0f, 0.0f, 5.0f)), "point is inside 7");
 | 
	
		
			
				|  |  | +    Frustum f(60.0f, 0.1f, 1000.0f);
 | 
	
		
			
				|  |  | +    f.updatePlanes(Vector3(0.0f, 0.0f, 0.0f), Vector3(1.0f, 0.0f, 0.0f),
 | 
	
		
			
				|  |  | +                   Vector3(0.0f, 1.0f, 0.0f), Vector3(0.0f, 0.0f, 1.0f), size);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    test.checkEqual(true, f.isInside(Vector3(0.0f, 0.0f, 5.0f)),
 | 
	
		
			
				|  |  | +                    "point is inside 1");
 | 
	
		
			
				|  |  | +    test.checkEqual(false, f.isInside(Vector3(0.0f, 0.0f, 1004.0f)),
 | 
	
		
			
				|  |  | +                    "point is inside 2");
 | 
	
		
			
				|  |  | +    test.checkEqual(false, f.isInside(Vector3(0.0f, 0.0f, -5.0f)),
 | 
	
		
			
				|  |  | +                    "point is inside 3");
 | 
	
		
			
				|  |  | +    test.checkEqual(false, f.isInside(Vector3(0.0f, 50.0f, 5.0f)),
 | 
	
		
			
				|  |  | +                    "point is inside 4");
 | 
	
		
			
				|  |  | +    test.checkEqual(false, f.isInside(Vector3(0.0f, -50.0f, 5.0f)),
 | 
	
		
			
				|  |  | +                    "point is inside 5");
 | 
	
		
			
				|  |  | +    test.checkEqual(false, f.isInside(Vector3(50.0f, 0.0f, 5.0f)),
 | 
	
		
			
				|  |  | +                    "point is inside 6");
 | 
	
		
			
				|  |  | +    test.checkEqual(false, f.isInside(Vector3(-50.0f, 0.0f, 5.0f)),
 | 
	
		
			
				|  |  | +                    "point is inside 7");
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  static void testSphereIsInside(Test& test) {
 | 
	
		
			
				|  |  |      Size size(200, 100);
 | 
	
		
			
				|  |  | -    Frustum f(60.0f, 0.1f, 1000.0f, size);
 | 
	
		
			
				|  |  | -    f.updatePlanes(Vector3(0.0f, 0.0f, 0.0f),
 | 
	
		
			
				|  |  | -            Vector3(1.0f, 0.0f, 0.0f),
 | 
	
		
			
				|  |  | -            Vector3(0.0f, 1.0f, 0.0f),
 | 
	
		
			
				|  |  | -            Vector3(0.0f, 0.0f, 1.0f));
 | 
	
		
			
				|  |  | -    
 | 
	
		
			
				|  |  | -    test.checkEqual(true, f.isInside(Vector3(0.0f, 0.0f, 5.0f), 3.0f), "sphere is inside 1");
 | 
	
		
			
				|  |  | -    test.checkEqual(false, f.isInside(Vector3(0.0f, 0.0f, 1004.0f), 3.0f), "sphere is inside 2");
 | 
	
		
			
				|  |  | -    test.checkEqual(false, f.isInside(Vector3(0.0f, 0.0f, -5.0f), 3.0f), "sphere is inside 3");
 | 
	
		
			
				|  |  | -    test.checkEqual(false, f.isInside(Vector3(0.0f, 50.0f, 5.0f), 3.0f), "sphere is inside 4");
 | 
	
		
			
				|  |  | -    test.checkEqual(false, f.isInside(Vector3(0.0f, -50.0f, 5.0f), 3.0f), "sphere is inside 5");
 | 
	
		
			
				|  |  | -    test.checkEqual(false, f.isInside(Vector3(50.0f, 0.0f, 5.0f), 3.0f), "sphere is inside 6");
 | 
	
		
			
				|  |  | -    test.checkEqual(false, f.isInside(Vector3(-50.0f, 0.0f, 5.0f), 3.0f), "sphere is inside 7");
 | 
	
		
			
				|  |  | +    Frustum f(60.0f, 0.1f, 1000.0f);
 | 
	
		
			
				|  |  | +    f.updatePlanes(Vector3(0.0f, 0.0f, 0.0f), Vector3(1.0f, 0.0f, 0.0f),
 | 
	
		
			
				|  |  | +                   Vector3(0.0f, 1.0f, 0.0f), Vector3(0.0f, 0.0f, 1.0f), size);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    test.checkEqual(true, f.isInside(Vector3(0.0f, 0.0f, 5.0f), 3.0f),
 | 
	
		
			
				|  |  | +                    "sphere is inside 1");
 | 
	
		
			
				|  |  | +    test.checkEqual(false, f.isInside(Vector3(0.0f, 0.0f, 1004.0f), 3.0f),
 | 
	
		
			
				|  |  | +                    "sphere is inside 2");
 | 
	
		
			
				|  |  | +    test.checkEqual(false, f.isInside(Vector3(0.0f, 0.0f, -5.0f), 3.0f),
 | 
	
		
			
				|  |  | +                    "sphere is inside 3");
 | 
	
		
			
				|  |  | +    test.checkEqual(false, f.isInside(Vector3(0.0f, 50.0f, 5.0f), 3.0f),
 | 
	
		
			
				|  |  | +                    "sphere is inside 4");
 | 
	
		
			
				|  |  | +    test.checkEqual(false, f.isInside(Vector3(0.0f, -50.0f, 5.0f), 3.0f),
 | 
	
		
			
				|  |  | +                    "sphere is inside 5");
 | 
	
		
			
				|  |  | +    test.checkEqual(false, f.isInside(Vector3(50.0f, 0.0f, 5.0f), 3.0f),
 | 
	
		
			
				|  |  | +                    "sphere is inside 6");
 | 
	
		
			
				|  |  | +    test.checkEqual(false, f.isInside(Vector3(-50.0f, 0.0f, 5.0f), 3.0f),
 | 
	
		
			
				|  |  | +                    "sphere is inside 7");
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -    test.checkEqual(true, f.isInside(Vector3(0.0f, 0.0f, 5.0f), 3.0f), "sphere is inside 8");
 | 
	
		
			
				|  |  | -    test.checkEqual(true, f.isInside(Vector3(0.0f, 0.0f, 1004.0f), 50.0f), "sphere is inside 9");
 | 
	
		
			
				|  |  | -    test.checkEqual(true, f.isInside(Vector3(0.0f, 0.0f, -5.0f), 50.0f), "sphere is inside 10");
 | 
	
		
			
				|  |  | -    test.checkEqual(true, f.isInside(Vector3(0.0f, 50.0f, 5.0f), 50.0f), "sphere is inside 11");
 | 
	
		
			
				|  |  | -    test.checkEqual(true, f.isInside(Vector3(0.0f, -50.0f, 5.0f), 50.0f), "sphere is inside 12");
 | 
	
		
			
				|  |  | -    test.checkEqual(true, f.isInside(Vector3(50.0f, 0.0f, 5.0f), 50.0f), "sphere is inside 13");
 | 
	
		
			
				|  |  | -    test.checkEqual(true, f.isInside(Vector3(-50.0f, 0.0f, 5.0f), 50.0f), "sphere is inside 14");
 | 
	
		
			
				|  |  | +    test.checkEqual(true, f.isInside(Vector3(0.0f, 0.0f, 5.0f), 3.0f),
 | 
	
		
			
				|  |  | +                    "sphere is inside 8");
 | 
	
		
			
				|  |  | +    test.checkEqual(true, f.isInside(Vector3(0.0f, 0.0f, 1004.0f), 50.0f),
 | 
	
		
			
				|  |  | +                    "sphere is inside 9");
 | 
	
		
			
				|  |  | +    test.checkEqual(true, f.isInside(Vector3(0.0f, 0.0f, -5.0f), 50.0f),
 | 
	
		
			
				|  |  | +                    "sphere is inside 10");
 | 
	
		
			
				|  |  | +    test.checkEqual(true, f.isInside(Vector3(0.0f, 50.0f, 5.0f), 50.0f),
 | 
	
		
			
				|  |  | +                    "sphere is inside 11");
 | 
	
		
			
				|  |  | +    test.checkEqual(true, f.isInside(Vector3(0.0f, -50.0f, 5.0f), 50.0f),
 | 
	
		
			
				|  |  | +                    "sphere is inside 12");
 | 
	
		
			
				|  |  | +    test.checkEqual(true, f.isInside(Vector3(50.0f, 0.0f, 5.0f), 50.0f),
 | 
	
		
			
				|  |  | +                    "sphere is inside 13");
 | 
	
		
			
				|  |  | +    test.checkEqual(true, f.isInside(Vector3(-50.0f, 0.0f, 5.0f), 50.0f),
 | 
	
		
			
				|  |  | +                    "sphere is inside 14");
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  void FrustumTests::test() {
 |