@@ -14,43 +14,11 @@ define([
14
14
Spline ) {
15
15
'use strict' ;
16
16
17
- function computeInnerQuadrangles ( points , firstInnerQuadrangle , lastInnerQuadrangle ) {
18
- var length = points . length ;
19
- var quads = new Array ( length ) ;
20
-
21
- quads [ 0 ] = defined ( firstInnerQuadrangle ) ? firstInnerQuadrangle : points [ 0 ] ;
22
- quads [ length - 1 ] = defined ( lastInnerQuadrangle ) ? lastInnerQuadrangle : points [ length - 1 ] ;
23
-
24
- for ( var i = 1 ; i < length - 1 ; ++ i ) {
25
- quads [ i ] = Quaternion . computeInnerQuadrangle ( points [ i - 1 ] , points [ i ] , points [ i + 1 ] , new Quaternion ( ) ) ;
26
- }
27
-
28
- return quads ;
29
- }
30
-
31
17
function createEvaluateFunction ( spline ) {
32
18
var points = spline . points ;
33
- var quads = spline . innerQuadrangles ;
34
19
var times = spline . times ;
35
20
36
- // use slerp interpolation for 2 points
37
- if ( points . length < 3 ) {
38
- var t0 = times [ 0 ] ;
39
- var invSpan = 1.0 / ( times [ 1 ] - t0 ) ;
40
-
41
- var q0 = points [ 0 ] ;
42
- var q1 = points [ 1 ] ;
43
-
44
- return function ( time , result ) {
45
- if ( ! defined ( result ) ) {
46
- result = new Quaternion ( ) ;
47
- }
48
- var u = ( time - t0 ) * invSpan ;
49
- return Quaternion . fastSlerp ( q0 , q1 , u , result ) ;
50
- } ;
51
- }
52
-
53
- // use quad interpolation for more than 3 points
21
+ // use slerp interpolation
54
22
return function ( time , result ) {
55
23
if ( ! defined ( result ) ) {
56
24
result = new Quaternion ( ) ;
@@ -60,15 +28,13 @@ define([
60
28
61
29
var q0 = points [ i ] ;
62
30
var q1 = points [ i + 1 ] ;
63
- var s0 = quads [ i ] ;
64
- var s1 = quads [ i + 1 ] ;
65
31
66
- return Quaternion . fastSquad ( q0 , q1 , s0 , s1 , u , result ) ;
32
+ return Quaternion . fastSlerp ( q0 , q1 , u , result ) ;
67
33
} ;
68
34
}
69
35
70
36
/**
71
- * A spline that uses spherical quadrangle (squad ) interpolation to create a quaternion curve.
37
+ * A spline that uses spherical linear (slerp ) interpolation to create a quaternion curve.
72
38
* The generated curve is in the class C<sup>1</sup>.
73
39
*
74
40
* @alias QuaternionSpline
@@ -78,10 +44,6 @@ define([
78
44
* @param {Number[] } options.times An array of strictly increasing, unit-less, floating-point times at each point.
79
45
* The values are in no way connected to the clock time. They are the parameterization for the curve.
80
46
* @param {Quaternion[] } options.points The array of {@link Quaternion} control points.
81
- * @param {Quaternion } [options.firstInnerQuadrangle] The inner quadrangle of the curve at the first control point.
82
- * If the inner quadrangle is not given, it will be estimated.
83
- * @param {Quaternion } [options.lastInnerQuadrangle] The inner quadrangle of the curve at the last control point.
84
- * If the inner quadrangle is not given, it will be estimated.
85
47
*
86
48
* @exception {DeveloperError} points.length must be greater than or equal to 2.
87
49
* @exception {DeveloperError} times.length must be equal to points.length.
@@ -96,8 +58,6 @@ define([
96
58
97
59
var points = options . points ;
98
60
var times = options . times ;
99
- var firstInnerQuadrangle = options . firstInnerQuadrangle ;
100
- var lastInnerQuadrangle = options . lastInnerQuadrangle ;
101
61
102
62
//>>includeStart('debug', pragmas.debug);
103
63
if ( ! defined ( points ) || ! defined ( times ) ) {
@@ -111,11 +71,8 @@ define([
111
71
}
112
72
//>>includeEnd('debug');
113
73
114
- var innerQuadrangles = computeInnerQuadrangles ( points , firstInnerQuadrangle , lastInnerQuadrangle ) ;
115
-
116
74
this . _times = times ;
117
75
this . _points = points ;
118
- this . _innerQuadrangles = innerQuadrangles ;
119
76
120
77
this . _evaluateFunction = createEvaluateFunction ( this ) ;
121
78
this . _lastTimeIndex = 0 ;
@@ -148,20 +105,6 @@ define([
148
105
get : function ( ) {
149
106
return this . _points ;
150
107
}
151
- } ,
152
-
153
- /**
154
- * An array of {@link Quaternion} inner quadrangles for the control points.
155
- *
156
- * @memberof QuaternionSpline.prototype
157
- *
158
- * @type {Quaternion[] }
159
- * @readonly
160
- */
161
- innerQuadrangles : {
162
- get : function ( ) {
163
- return this . _innerQuadrangles ;
164
- }
165
108
}
166
109
} ) ;
167
110
0 commit comments