ClosedSplineCurve3.js 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. /**
  2. * @author zz85 / http://joshuakoo.com
  3. */
  4. module( "ClosedSplineCurve3" );
  5. var threshold = 0.000001;
  6. function vectorsAreEqual( check, that ) {
  7. if ( check.length !== that.length ) return 'Length not equal';
  8. for ( var i = 0; i < check.length; i ++ ) {
  9. var a = check[ i ], b = that[ i ];
  10. if ( a.distanceToSquared( b ) > threshold ) {
  11. return 'Vector differs at index ' + i +
  12. '. Should be ' + [ a.x, a.y, a.z ] +
  13. ' instead of ' + [ b.x, b.y, b.z ];
  14. }
  15. }
  16. return;
  17. }
  18. test( "basic check", function() {
  19. var closedSpline = new THREE.ClosedSplineCurve3( [
  20. new THREE.Vector3( -60, -100, 60 ),
  21. new THREE.Vector3( -60, 20, 60 ),
  22. new THREE.Vector3( -60, 120, 60 ),
  23. new THREE.Vector3( 60, 20, -60 ),
  24. new THREE.Vector3( 60, -100, -60 )
  25. ] );
  26. var closedSplinePoints = [
  27. new THREE.Vector3(-60,-100,60),
  28. new THREE.Vector3(-67.5,-46.25,67.5),
  29. new THREE.Vector3(-60,20,60),
  30. new THREE.Vector3(-67.5,83.75,67.5),
  31. new THREE.Vector3(-60,120,60),
  32. new THREE.Vector3(0,83.75,0),
  33. new THREE.Vector3(60,20,-60),
  34. new THREE.Vector3(75,-46.25,-75),
  35. new THREE.Vector3(60,-100,-60),
  36. new THREE.Vector3(0,-115,0),
  37. new THREE.Vector3(-60,-100,60),
  38. ];
  39. var getPoints = closedSpline.getPoints(10);
  40. var error = vectorsAreEqual( getPoints , closedSplinePoints );
  41. ok( getPoints.length == 11, 'getPoints should be equal.');
  42. var desc = error ? ' ' + error : '';
  43. ok( !error, 'Lists of Vectors3 should be equal.' + desc );
  44. });