ClosedSplineCurve3.js 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  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. }
  17. test( "basic check", function() {
  18. var closedSpline = new THREE.ClosedSplineCurve3( [
  19. new THREE.Vector3( -60, -100, 60 ),
  20. new THREE.Vector3( -60, 20, 60 ),
  21. new THREE.Vector3( -60, 120, 60 ),
  22. new THREE.Vector3( 60, 20, -60 ),
  23. new THREE.Vector3( 60, -100, -60 )
  24. ] );
  25. var closedSplinePoints = [
  26. new THREE.Vector3(-60,-100,60),
  27. new THREE.Vector3(-67.5,-46.25,67.5),
  28. new THREE.Vector3(-60,20,60),
  29. new THREE.Vector3(-67.5,83.75,67.5),
  30. new THREE.Vector3(-60,120,60),
  31. new THREE.Vector3(0,83.75,0),
  32. new THREE.Vector3(60,20,-60),
  33. new THREE.Vector3(75,-46.25,-75),
  34. new THREE.Vector3(60,-100,-60),
  35. new THREE.Vector3(0,-115,0),
  36. new THREE.Vector3(-60,-100,60),
  37. ];
  38. var getPoints = closedSpline.getPoints(10);
  39. var error = vectorsAreEqual( getPoints , closedSplinePoints );
  40. ok( getPoints.length == 11, 'getPoints should be equal.');
  41. var desc = error ? ' ' + error : '';
  42. ok( !error, 'Lists of Vectors3 should be equal.' + desc );
  43. });