Sphere.js 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. /**
  2. * @author bhouston / http://exocortex.com
  3. */
  4. module( "Sphere" );
  5. test( "constructor", function() {
  6. var a = new THREE.Sphere();
  7. ok( a.center.equals( zero3 ), "Passed!" );
  8. ok( a.radius == 0, "Passed!" );
  9. a = new THREE.Sphere( one3, 1 );
  10. ok( a.center.equals( one3 ), "Passed!" );
  11. ok( a.radius == 1, "Passed!" );
  12. });
  13. test( "copy", function() {
  14. var a = new THREE.Sphere( one3, 1 );
  15. var b = new THREE.Sphere().copy( a );
  16. ok( b.center.equals( one3 ), "Passed!" );
  17. ok( b.radius == 1, "Passed!" );
  18. // ensure that it is a true copy
  19. a.center = zero3;
  20. a.radius = 0;
  21. ok( b.center.equals( one3 ), "Passed!" );
  22. ok( b.radius == 1, "Passed!" );
  23. });
  24. test( "set", function() {
  25. var a = new THREE.Sphere();
  26. ok( a.center.equals( zero3 ), "Passed!" );
  27. ok( a.radius == 0, "Passed!" );
  28. a.set( one3, 1 );
  29. ok( a.center.equals( one3 ), "Passed!" );
  30. ok( a.radius == 1, "Passed!" );
  31. });
  32. test( "empty", function() {
  33. var a = new THREE.Sphere();
  34. ok( a.empty(), "Passed!" );
  35. a.set( one3, 1 );
  36. ok( ! a.empty(), "Passed!" );
  37. });
  38. test( "containsPoint", function() {
  39. var a = new THREE.Sphere( one3, 1 );
  40. ok( ! a.containsPoint( zero3 ), "Passed!" );
  41. ok( a.containsPoint( one3 ), "Passed!" );
  42. });
  43. test( "distanceToPoint", function() {
  44. var a = new THREE.Sphere( one3, 1 );
  45. ok( ( a.distanceToPoint( zero3 ) - 0.7320 ) < 0.001, "Passed!" );
  46. ok( a.distanceToPoint( one3 ) === -1, "Passed!" );
  47. });
  48. test( "clampPoint", function() {
  49. var a = new THREE.Sphere( one3, 1 );
  50. ok( a.clampPoint( new THREE.Vector3( 1, 1, 3 ) ).equals( new THREE.Vector3( 1, 1, 2 ) ), "Passed!" );
  51. ok( a.clampPoint( new THREE.Vector3( 1, 1, -3 ) ).equals( new THREE.Vector3( 1, 1, 0 ) ), "Passed!" );
  52. });
  53. test( "getBoundingBox", function() {
  54. var a = new THREE.Sphere( one3, 1 );
  55. ok( a.getBoundingBox().equals( new THREE.Box3( zero3, two3 ) ), "Passed!" );
  56. a.set( zero3, 0 )
  57. ok( a.getBoundingBox().equals( new THREE.Box3( zero3, zero3 ) ), "Passed!" );
  58. });
  59. test( "transform", function() {
  60. var a = new THREE.Sphere( one3, 1 );
  61. var m = new THREE.Matrix4();
  62. var t1 = new THREE.Vector3( 1, -2, 1 );
  63. m.makeTranslation( t1 );
  64. ok( a.clone().transform( m ).getBoundingBox().equals( a.getBoundingBox().transform( m ) ), "Passed!" );
  65. });
  66. test( "translate", function() {
  67. var a = new THREE.Sphere( one3, 1 );
  68. a.translate( one3.clone().negate() );
  69. ok( a.center.equals( zero3 ), "Passed!" );
  70. });