QuadraticBezierCurve3.js 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. import { Curve } from '../core/Curve.js';
  2. import { QuadraticBezier } from '../core/Interpolations.js';
  3. import { Vector3 } from '../../math/Vector3.js';
  4. function QuadraticBezierCurve3( v0, v1, v2 ) {
  5. Curve.call( this );
  6. this.type = 'QuadraticBezierCurve3';
  7. this.v0 = v0 || new Vector3();
  8. this.v1 = v1 || new Vector3();
  9. this.v2 = v2 || new Vector3();
  10. }
  11. QuadraticBezierCurve3.prototype = Object.create( Curve.prototype );
  12. QuadraticBezierCurve3.prototype.constructor = QuadraticBezierCurve3;
  13. QuadraticBezierCurve3.prototype.isQuadraticBezierCurve3 = true;
  14. QuadraticBezierCurve3.prototype.getPoint = function ( t, optionalTarget ) {
  15. var point = optionalTarget || new Vector3();
  16. var v0 = this.v0, v1 = this.v1, v2 = this.v2;
  17. point.set(
  18. QuadraticBezier( t, v0.x, v1.x, v2.x ),
  19. QuadraticBezier( t, v0.y, v1.y, v2.y ),
  20. QuadraticBezier( t, v0.z, v1.z, v2.z )
  21. );
  22. return point;
  23. };
  24. QuadraticBezierCurve3.prototype.copy = function ( source ) {
  25. Curve.prototype.copy.call( this, source );
  26. this.v0.copy( source.v0 );
  27. this.v1.copy( source.v1 );
  28. this.v2.copy( source.v2 );
  29. return this;
  30. };
  31. export { QuadraticBezierCurve3 };