Skip to content

Commit f058021

Browse files
committed
Add test for CatmullRomCurve3
1 parent da61251 commit f058021

File tree

3 files changed

+101
-3
lines changed

3 files changed

+101
-3
lines changed
Lines changed: 97 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,97 @@
1+
/**
2+
* @author zz85 / http://joshuakoo.com
3+
*/
4+
5+
module( "CatmullRomCurve3" );
6+
7+
var positions = [
8+
new THREE.Vector3( -60, -100, 60 ),
9+
new THREE.Vector3( -60, 20, 60 ),
10+
new THREE.Vector3( -60, 120, 60 ),
11+
new THREE.Vector3( 60, 20, -60 ),
12+
new THREE.Vector3( 60, -100, -60 )
13+
];
14+
15+
test( "catmullrom check", function() {
16+
17+
var curve = new THREE.CatmullRomCurve3( positions );
18+
curve.type = 'catmullrom';
19+
20+
var catmullPoints = [
21+
22+
new THREE.Vector3(-60,-100,60),
23+
new THREE.Vector3(-60,-51.04,60),
24+
new THREE.Vector3(-60,-2.7199999999999998,60),
25+
new THREE.Vector3(-61.92,44.48,61.92),
26+
new THREE.Vector3(-68.64,95.36000000000001,68.64),
27+
new THREE.Vector3(-60,120,60),
28+
new THREE.Vector3(-14.880000000000017,95.36000000000001,14.880000000000017),
29+
new THREE.Vector3(41.75999999999997,44.48000000000003,-41.75999999999997),
30+
new THREE.Vector3(67.68,-4.640000000000025,-67.68),
31+
new THREE.Vector3(65.75999999999999,-59.68000000000002,-65.75999999999999),
32+
new THREE.Vector3(60,-100,-60)
33+
34+
];
35+
36+
var getPoints = curve.getPoints(10);
37+
var error = vectorsAreEqual( getPoints , catmullPoints );
38+
ok( getPoints.length == 11, 'getPoints should be equal.');
39+
var desc = error ? ' ' + error : '';
40+
ok( !error, 'Lists of Vectors3 should be equal.' + desc );
41+
42+
});
43+
44+
test( "chordal basic check", function() {
45+
46+
var curve = new THREE.CatmullRomCurve3( positions );
47+
48+
curve.type = 'chordal';
49+
50+
var chordalPoints = [
51+
new THREE.Vector3(-60,-100,60),
52+
new THREE.Vector3(-60,-52,60),
53+
new THREE.Vector3(-60,-4,60),
54+
new THREE.Vector3(-60.656435889910924,41.62455386421379,60.656435889910924),
55+
new THREE.Vector3(-62.95396150459915,87.31049238896205,62.95396150459915),
56+
new THREE.Vector3(-60,120,60),
57+
new THREE.Vector3(-16.302568199486444,114.1500463116312,16.302568199486444),
58+
new THREE.Vector3(42.998098664956586,54.017050116427455,-42.998098664956586),
59+
new THREE.Vector3(63.542500175682434,-3.0571533975463856,-63.542500175682434),
60+
new THREE.Vector3(62.65687513176183,-58.49286504815978,-62.65687513176183),
61+
new THREE.Vector3(60.00000000000001,-100,-60.00000000000001)
62+
];
63+
64+
var getPoints = curve.getPoints(10);
65+
var error = vectorsAreEqual( getPoints , chordalPoints );
66+
ok( getPoints.length == 11, 'getPoints should be equal.');
67+
var desc = error ? ' ' + error : '';
68+
ok( !error, 'Lists of Vectors3 should be equal.' + desc );
69+
70+
});
71+
72+
test( "centripetal basic check", function() {
73+
74+
var curve = new THREE.CatmullRomCurve3( positions );
75+
curve.type = 'centripetal';
76+
77+
var centripetalPoints = [
78+
new THREE.Vector3(-60,-100,60),
79+
new THREE.Vector3(-60,-51.47527724919028,60),
80+
new THREE.Vector3(-60,-3.300369665587032,60),
81+
new THREE.Vector3(-61.13836565863938,42.86306307781241,61.13836565863938),
82+
new THREE.Vector3(-65.1226454638772,90.69743905511538,65.1226454638772),
83+
new THREE.Vector3(-60,120,60),
84+
new THREE.Vector3(-15.620412575504497,103.10790870179872,15.620412575504497),
85+
new THREE.Vector3(42.384384731047874,48.35477686933143,-42.384384731047874),
86+
new THREE.Vector3(65.25545512241153,-3.5662509660683424,-65.25545512241153),
87+
new THREE.Vector3(63.94159134180865,-58.87468822455125,-63.94159134180865),
88+
new THREE.Vector3(59.99999999999999,-100,-59.99999999999999),
89+
];
90+
91+
var getPoints = curve.getPoints(10);
92+
var error = vectorsAreEqual( getPoints , centripetalPoints );
93+
ok( getPoints.length == 11, 'getPoints should be equal.');
94+
var desc = error ? ' ' + error : '';
95+
ok( !error, 'Lists of Vectors3 should be equal.' + desc );
96+
97+
});

test/unit/extras/curves/ClosedSplineCurve3.js

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,6 @@ function vectorsAreEqual( check, that ) {
1313
for ( var i = 0; i < check.length; i ++ ) {
1414

1515
var a = check[ i ], b = that[ i ];
16-
console.log( a.distanceToSquared( b ) )
17-
1816
if ( a.distanceToSquared( b ) > threshold ) {
1917

2018
return 'Vector differs at index ' + i +
@@ -53,6 +51,7 @@ test( "basic check", function() {
5351
var getPoints = closedSpline.getPoints(10);
5452
var error = vectorsAreEqual( getPoints , closedSplinePoints );
5553
ok( getPoints.length == 11, 'getPoints should be equal.');
56-
ok( !error, 'Lists of Vectors3 should be equal.' + error );
54+
var desc = error ? ' ' + error : '';
55+
ok( !error, 'Lists of Vectors3 should be equal.' + desc );
5756

5857
});

test/unit/unittests_sources.html

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@
3636
<script src="../../src/extras/core/Curve.js"></script>
3737
<script src="../../src/extras/CurveUtils.js"></script>
3838
<script src="../../src/extras/curves/ClosedSplineCurve3.js"></script>
39+
<script src="../../src/extras/curves/CatmullRomCurve3.js"></script>
3940

4041
<!-- add class-based unit tests below -->
4142

@@ -60,6 +61,7 @@
6061
<script src="math/Interpolant.js"></script>
6162

6263
<script src="extras/curves/ClosedSplineCurve3.js"></script>
64+
<script src="extras/curves/CatmullRomCurve3.js"></script>
6365

6466
</body>
6567
</html>

0 commit comments

Comments
 (0)