|
@@ -266,56 +266,7 @@ THREE.Curve.prototype = {
|
|
|
|
|
|
}
|
|
}
|
|
|
|
|
|
-/**************************************************************
|
|
|
|
- * Utils
|
|
|
|
- **************************************************************/
|
|
|
|
-
|
|
|
|
-THREE.Curve.Utils = {
|
|
|
|
-
|
|
|
|
- tangentQuadraticBezier: function ( t, p0, p1, p2 ) {
|
|
|
|
-
|
|
|
|
- return 2 * ( 1 - t ) * ( p1 - p0 ) + 2 * t * ( p2 - p1 );
|
|
|
|
-
|
|
|
|
- },
|
|
|
|
-
|
|
|
|
- // Puay Bing, thanks for helping with this derivative!
|
|
|
|
-
|
|
|
|
- tangentCubicBezier: function ( t, p0, p1, p2, p3 ) {
|
|
|
|
-
|
|
|
|
- return - 3 * p0 * ( 1 - t ) * ( 1 - t ) +
|
|
|
|
- 3 * p1 * ( 1 - t ) * ( 1 - t ) - 6 * t * p1 * ( 1 - t ) +
|
|
|
|
- 6 * t * p2 * ( 1 - t ) - 3 * t * t * p2 +
|
|
|
|
- 3 * t * t * p3;
|
|
|
|
-
|
|
|
|
- },
|
|
|
|
-
|
|
|
|
- tangentSpline: function ( t, p0, p1, p2, p3 ) {
|
|
|
|
-
|
|
|
|
- // To check if my formulas are correct
|
|
|
|
-
|
|
|
|
- var h00 = 6 * t * t - 6 * t; // derived from 2t^3 − 3t^2 + 1
|
|
|
|
- var h10 = 3 * t * t - 4 * t + 1; // t^3 − 2t^2 + t
|
|
|
|
- var h01 = - 6 * t * t + 6 * t; // − 2t3 + 3t2
|
|
|
|
- var h11 = 3 * t * t - 2 * t; // t3 − t2
|
|
|
|
-
|
|
|
|
- return h00 + h10 + h01 + h11;
|
|
|
|
-
|
|
|
|
- },
|
|
|
|
-
|
|
|
|
- // Catmull-Rom
|
|
|
|
-
|
|
|
|
- interpolate: function( p0, p1, p2, p3, t ) {
|
|
|
|
-
|
|
|
|
- var v0 = ( p2 - p0 ) * 0.5;
|
|
|
|
- var v1 = ( p3 - p1 ) * 0.5;
|
|
|
|
- var t2 = t * t;
|
|
|
|
- var t3 = t * t2;
|
|
|
|
- return ( 2 * p1 - 2 * p2 + v0 + v1 ) * t3 + ( - 3 * p1 + 3 * p2 - 2 * v0 - v1 ) * t2 + v0 * t + p1;
|
|
|
|
-
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
-};
|
|
|
|
-
|
|
|
|
|
|
+THREE.Curve.Utils = THREE.CurveUtils; // backwards compatibility
|
|
|
|
|
|
// TODO: Transformation for Curves?
|
|
// TODO: Transformation for Curves?
|
|
|
|
|