Browse Source

Moved CurveUtils.interpolation to Bezier. Removed CurveUtils.

Mr.doob 8 years ago
parent
commit
fe98988ebc
4 changed files with 16 additions and 43 deletions
  1. 0 1
      src/Three.js
  2. 0 35
      src/extras/CurveUtils.js
  3. 13 1
      src/extras/core/Bezier.js
  4. 3 6
      src/extras/curves/SplineCurve.js

+ 0 - 1
src/Three.js

@@ -152,6 +152,5 @@ export { CurvePath } from './extras/core/CurvePath.js';
 export { Curve } from './extras/core/Curve.js';
 export { Curve } from './extras/core/Curve.js';
 export { ShapeUtils } from './extras/ShapeUtils.js';
 export { ShapeUtils } from './extras/ShapeUtils.js';
 export { SceneUtils } from './extras/SceneUtils.js';
 export { SceneUtils } from './extras/SceneUtils.js';
-export { CurveUtils } from './extras/CurveUtils.js';
 export * from './constants.js';
 export * from './constants.js';
 export * from './Three.Legacy.js';
 export * from './Three.Legacy.js';

+ 0 - 35
src/extras/CurveUtils.js

@@ -1,35 +0,0 @@
-/**
- * @author zz85 / http://www.lab4games.net/zz85/blog
- */
-
-var CurveUtils = {
-
-	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;
-
-	}
-
-};
-
-
-export { CurveUtils };

+ 13 - 1
src/extras/core/Bezier.js

@@ -5,6 +5,18 @@
  * http://en.wikipedia.org/wiki/Bézier_curve
  * http://en.wikipedia.org/wiki/Bézier_curve
  */
  */
 
 
+function CatmullRom( t, p0, p1, p2, p3 ) {
+
+	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;
+
+}
+
+//
+
 function QuadraticBezierP0( t, p ) {
 function QuadraticBezierP0( t, p ) {
 
 
 	var k = 1 - t;
 	var k = 1 - t;
@@ -82,4 +94,4 @@ function TangentCubicBezier( t, p0, p1, p2, p3 ) {
 
 
 }
 }
 
 
-export { QuadraticBezier, CubicBezier, TangentQuadraticBezier, TangentCubicBezier };
+export { CatmullRom, QuadraticBezier, CubicBezier, TangentQuadraticBezier, TangentCubicBezier };

+ 3 - 6
src/extras/curves/SplineCurve.js

@@ -1,6 +1,6 @@
 import { Curve } from '../core/Curve';
 import { Curve } from '../core/Curve';
+import { CatmullRom } from '../core/Bezier';
 import { Vector2 } from '../../math/Vector2';
 import { Vector2 } from '../../math/Vector2';
-import { CurveUtils } from '../CurveUtils';
 
 
 /**************************************************************
 /**************************************************************
  *	Spline curve
  *	Spline curve
@@ -30,14 +30,11 @@ SplineCurve.prototype.getPoint = function ( t ) {
 	var point2 = points[ intPoint > points.length - 2 ? points.length - 1 : intPoint + 1 ];
 	var point2 = points[ intPoint > points.length - 2 ? points.length - 1 : intPoint + 1 ];
 	var point3 = points[ intPoint > points.length - 3 ? points.length - 1 : intPoint + 2 ];
 	var point3 = points[ intPoint > points.length - 3 ? points.length - 1 : intPoint + 2 ];
 
 
-	var interpolate = CurveUtils.interpolate;
-
 	return new Vector2(
 	return new Vector2(
-		interpolate( point0.x, point1.x, point2.x, point3.x, weight ),
-		interpolate( point0.y, point1.y, point2.y, point3.y, weight )
+		CatmullRom( weight, point0.x, point1.x, point2.x, point3.x ),
+		CatmullRom( weight, point0.y, point1.y, point2.y, point3.y )
 	);
 	);
 
 
 };
 };
 
 
-
 export { SplineCurve };
 export { SplineCurve };