@jscad/x3d-deserializer 2.2.5 → 2.2.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +14 -0
- package/package.json +3 -3
- package/src/objects.js +43 -36
- package/tests/IndexedTriangleSets_CommaMF.x3d +82 -0
- package/tests/TriangleSets_CommaMF.x3d +54 -0
- package/tests/instantiate.test.js +28 -0
- package/tests/translate.test.js +26 -0
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,20 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
## [2.2.6](https://github.com/jscad/OpenJSCAD.org/compare/@jscad/x3d-deserializer@2.2.5...@jscad/x3d-deserializer@2.2.6) (2024-02-18)
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
### Bug Fixes
|
|
10
|
+
|
|
11
|
+
* **x3d-deserializer:** corrected to accept commas as MF value delimiters ([03a1145](https://github.com/jscad/OpenJSCAD.org/commit/03a114543303c17afc50908cdc0946a38197058d))
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
- allow commas as delimiter in MF fields
|
|
18
|
+
|
|
19
|
+
|
|
6
20
|
## [2.2.5](https://github.com/jscad/OpenJSCAD.org/compare/@jscad/x3d-deserializer@2.2.4...@jscad/x3d-deserializer@2.2.5) (2023-06-27)
|
|
7
21
|
|
|
8
22
|
**Note:** Version bump only for package @jscad/x3d-deserializer
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@jscad/x3d-deserializer",
|
|
3
|
-
"version": "2.2.
|
|
3
|
+
"version": "2.2.6",
|
|
4
4
|
"description": "X3D Deserializer for JSCAD",
|
|
5
5
|
"repository": "https://github.com/jscad/OpenJSCAD.org/",
|
|
6
6
|
"main": "src/index.js",
|
|
@@ -27,12 +27,12 @@
|
|
|
27
27
|
},
|
|
28
28
|
"dependencies": {
|
|
29
29
|
"@jscad/array-utils": "2.1.4",
|
|
30
|
-
"@jscad/modeling": "2.12.
|
|
30
|
+
"@jscad/modeling": "2.12.1",
|
|
31
31
|
"saxes": "5.0.1"
|
|
32
32
|
},
|
|
33
33
|
"devDependencies": {
|
|
34
34
|
"ava": "3.15.0",
|
|
35
35
|
"nyc": "15.1.0"
|
|
36
36
|
},
|
|
37
|
-
"gitHead": "
|
|
37
|
+
"gitHead": "e07bb27d61f638348c73cc1383dfb5339060a02a"
|
|
38
38
|
}
|
package/src/objects.js
CHANGED
|
@@ -89,31 +89,31 @@ const x3dTransform = (element) => {
|
|
|
89
89
|
}
|
|
90
90
|
|
|
91
91
|
if (element.center) {
|
|
92
|
-
const values = element.center
|
|
92
|
+
const values = parseNumbers(element.center)
|
|
93
93
|
if (values.length > 2) {
|
|
94
94
|
obj.center = values
|
|
95
95
|
}
|
|
96
96
|
}
|
|
97
97
|
if (element.rotation) {
|
|
98
|
-
const values = element.rotation
|
|
98
|
+
const values = parseNumbers(element.rotation)
|
|
99
99
|
if (values.length > 3) {
|
|
100
100
|
obj.rotation = values
|
|
101
101
|
}
|
|
102
102
|
}
|
|
103
103
|
if (element.scale) {
|
|
104
|
-
const values = element.scale
|
|
104
|
+
const values = parseNumbers(element.scale)
|
|
105
105
|
if (values.length > 2) {
|
|
106
106
|
obj.scale = values
|
|
107
107
|
}
|
|
108
108
|
}
|
|
109
109
|
if (element.scaleorientation) {
|
|
110
|
-
const values = element.scaleorientation
|
|
110
|
+
const values = parseNumbers(element.scaleorientation)
|
|
111
111
|
if (values.length > 3) {
|
|
112
112
|
obj.scaleOrientation = values
|
|
113
113
|
}
|
|
114
114
|
}
|
|
115
115
|
if (element.translation) {
|
|
116
|
-
const values = element.translation
|
|
116
|
+
const values = parseNumbers(element.translation)
|
|
117
117
|
if (values.length > 2) {
|
|
118
118
|
obj.translation = values
|
|
119
119
|
}
|
|
@@ -138,7 +138,7 @@ const x3dBox = (element) => {
|
|
|
138
138
|
const obj = { definition: x3dTypes.BOX, size: [2, 2, 2] }
|
|
139
139
|
|
|
140
140
|
if (element.size) {
|
|
141
|
-
const values = element.size
|
|
141
|
+
const values = parseNumbers(element.size)
|
|
142
142
|
if (values.length > 2) {
|
|
143
143
|
obj.size = values
|
|
144
144
|
}
|
|
@@ -187,7 +187,7 @@ const x3dSphere = (element) => {
|
|
|
187
187
|
obj.radius = parseFloat(element.radius)
|
|
188
188
|
}
|
|
189
189
|
if (element.subdivision) {
|
|
190
|
-
const values = element.subdivision
|
|
190
|
+
const values = parseNumbers(element.subdivision)
|
|
191
191
|
if (values.length > 1) {
|
|
192
192
|
obj.subdivision = Math.max(...values)
|
|
193
193
|
}
|
|
@@ -217,7 +217,7 @@ const x3dExtrusion = (element) => {
|
|
|
217
217
|
obj.endCap = element.endCap.includes('TRUE') || element.endCap.includes('true')
|
|
218
218
|
}
|
|
219
219
|
if (element.crossSection) {
|
|
220
|
-
const values = element.crossSection
|
|
220
|
+
const values = parseNumbers(element.crossSection)
|
|
221
221
|
const numpoints = Math.trunc(values.length / 2)
|
|
222
222
|
const points = []
|
|
223
223
|
for (let i = 0; i < numpoints; i++) {
|
|
@@ -228,7 +228,7 @@ const x3dExtrusion = (element) => {
|
|
|
228
228
|
obj.crossSection = points
|
|
229
229
|
}
|
|
230
230
|
if (element.orientation) {
|
|
231
|
-
const values = element.orientation
|
|
231
|
+
const values = parseNumbers(element.orientation)
|
|
232
232
|
const numpoints = Math.trunc(values.length / 4)
|
|
233
233
|
const points = []
|
|
234
234
|
for (let i = 0; i < numpoints; i++) {
|
|
@@ -238,7 +238,7 @@ const x3dExtrusion = (element) => {
|
|
|
238
238
|
obj.orientations = points
|
|
239
239
|
}
|
|
240
240
|
if (element.scale) {
|
|
241
|
-
const values = element.scale
|
|
241
|
+
const values = parseNumbers(element.scale)
|
|
242
242
|
const numpoints = Math.trunc(values.length / 2)
|
|
243
243
|
const points = []
|
|
244
244
|
for (let i = 0; i < numpoints; i++) {
|
|
@@ -251,7 +251,7 @@ const x3dExtrusion = (element) => {
|
|
|
251
251
|
obj.scales = points
|
|
252
252
|
}
|
|
253
253
|
if (element.spine) {
|
|
254
|
-
const values = element.spine
|
|
254
|
+
const values = parseNumbers(element.spine)
|
|
255
255
|
const numpoints = Math.trunc(values.length / 3)
|
|
256
256
|
const points = []
|
|
257
257
|
for (let i = 0; i < numpoints; i++) {
|
|
@@ -337,7 +337,7 @@ const x3dPolyline2D = (element) => {
|
|
|
337
337
|
const obj = { definition: x3dTypes.POLYLINE2D, lineSegments: [] }
|
|
338
338
|
|
|
339
339
|
if (element.lineSegments) {
|
|
340
|
-
const values = element.lineSegments
|
|
340
|
+
const values = parseNumbers(element.lineSegments)
|
|
341
341
|
for (let i = 0; i < values.length; i = i + 2) {
|
|
342
342
|
const point = [values[i], values[i + 1]]
|
|
343
343
|
obj.lineSegments.push(point)
|
|
@@ -350,7 +350,7 @@ const x3dRectangle2D = (element) => {
|
|
|
350
350
|
const obj = { definition: x3dTypes.RECTANGLE2D, size: [2, 2] }
|
|
351
351
|
|
|
352
352
|
if (element.size) {
|
|
353
|
-
const values = element.size
|
|
353
|
+
const values = parseNumbers(element.size)
|
|
354
354
|
if (values.length > 1) {
|
|
355
355
|
obj.size = values
|
|
356
356
|
}
|
|
@@ -362,7 +362,7 @@ const x3dTriangleSet2D = (element) => {
|
|
|
362
362
|
const obj = { definition: x3dTypes.TRIANGLESET2D, vertices: [] }
|
|
363
363
|
|
|
364
364
|
if (element.vertices) {
|
|
365
|
-
const values = element.vertices
|
|
365
|
+
const values = parseNumbers(element.vertices)
|
|
366
366
|
for (let i = 0; i < values.length; i = i + 2) {
|
|
367
367
|
const point = [values[i], values[i + 1]]
|
|
368
368
|
obj.vertices.push(point)
|
|
@@ -379,7 +379,7 @@ const x3dLineSet = (element) => {
|
|
|
379
379
|
const obj = { definition: x3dTypes.LINESET, vertexCount: [], colorPerVertex: true }
|
|
380
380
|
|
|
381
381
|
if (element.vertexCount) {
|
|
382
|
-
obj.vertexCount = element.vertexCount
|
|
382
|
+
obj.vertexCount = parseNumbers(element.vertexCount)
|
|
383
383
|
}
|
|
384
384
|
// color attributes
|
|
385
385
|
if (element.colorPerVertex) {
|
|
@@ -393,9 +393,8 @@ const x3dIndexedLineSet = (element) => {
|
|
|
393
393
|
const obj = { definition: x3dTypes.INDEXEDLINESET, indexes: [], colorPerVertex: true }
|
|
394
394
|
|
|
395
395
|
if (element.coordIndex) {
|
|
396
|
-
const indexes = element.coordIndex
|
|
397
|
-
obj.indexes = indexes.
|
|
398
|
-
obj.indexes = obj.indexes.filter((index) => index.length > 1)
|
|
396
|
+
const indexes = parseIndices(element.coordIndex)
|
|
397
|
+
obj.indexes = indexes.filter((index) => index.length > 1)
|
|
399
398
|
}
|
|
400
399
|
// color attributes
|
|
401
400
|
if (element.colorPerVertex) {
|
|
@@ -413,7 +412,7 @@ const x3dColor = (element) => {
|
|
|
413
412
|
const obj = { definition: x3dTypes.COLOR, colors: [] }
|
|
414
413
|
|
|
415
414
|
if (element.color) {
|
|
416
|
-
const values = element.color
|
|
415
|
+
const values = parseNumbers(element.color)
|
|
417
416
|
const numvalues = values.length
|
|
418
417
|
const numcolors = Math.trunc(numvalues / 3)
|
|
419
418
|
for (let i = 0; i < numcolors; i++) {
|
|
@@ -428,7 +427,7 @@ const x3dCoordinate = (element) => {
|
|
|
428
427
|
const obj = { definition: x3dTypes.COORDINATE, points: [] }
|
|
429
428
|
|
|
430
429
|
if (element.point) {
|
|
431
|
-
const values = element.point
|
|
430
|
+
const values = parseNumbers(element.point)
|
|
432
431
|
const numvalues = values.length
|
|
433
432
|
const numpoints = Math.trunc(numvalues / 3)
|
|
434
433
|
for (let i = 0; i < numpoints; i++) {
|
|
@@ -456,7 +455,7 @@ const x3dTriangleFanSet = (element) => {
|
|
|
456
455
|
obj.ccw = element.ccw.includes('TRUE') || element.ccw.includes('true')
|
|
457
456
|
}
|
|
458
457
|
if (element.fanCount) {
|
|
459
|
-
obj.fanCount = element.fanCount
|
|
458
|
+
obj.fanCount = parseNumbers(element.fanCount)
|
|
460
459
|
}
|
|
461
460
|
obj.objects = []
|
|
462
461
|
return obj
|
|
@@ -469,7 +468,7 @@ const x3dTriangleStripSet = (element) => {
|
|
|
469
468
|
obj.ccw = element.ccw.includes('TRUE') || element.ccw.includes('true')
|
|
470
469
|
}
|
|
471
470
|
if (element.stripCount) {
|
|
472
|
-
obj.stripCount = element.stripCount
|
|
471
|
+
obj.stripCount = parseNumbers(element.stripCount)
|
|
473
472
|
}
|
|
474
473
|
obj.objects = []
|
|
475
474
|
return obj
|
|
@@ -492,7 +491,7 @@ const x3dIndexedTriangleSet = (element) => {
|
|
|
492
491
|
obj.ccw = element.ccw.includes('TRUE') || element.ccw.includes('true')
|
|
493
492
|
}
|
|
494
493
|
if (element.index) {
|
|
495
|
-
obj.index = element.index
|
|
494
|
+
obj.index = parseNumbers(element.index)
|
|
496
495
|
}
|
|
497
496
|
obj.objects = []
|
|
498
497
|
return obj
|
|
@@ -505,8 +504,8 @@ const x3dIndexedTriangleFanSet = (element) => {
|
|
|
505
504
|
obj.ccw = element.ccw.includes('TRUE') || element.ccw.includes('true')
|
|
506
505
|
}
|
|
507
506
|
if (element.index) {
|
|
508
|
-
const indexes = element.index
|
|
509
|
-
obj.fans = indexes.
|
|
507
|
+
const indexes = parseIndices(element.index)
|
|
508
|
+
obj.fans = indexes.filter((index) => index.length > 2)
|
|
510
509
|
}
|
|
511
510
|
obj.objects = []
|
|
512
511
|
return obj
|
|
@@ -520,8 +519,8 @@ const x3dIndexedTriangleStripSet = (element) => {
|
|
|
520
519
|
obj.ccw = element.ccw.includes('TRUE') || element.ccw.includes('true')
|
|
521
520
|
}
|
|
522
521
|
if (element.index) {
|
|
523
|
-
const indexes = element.index
|
|
524
|
-
obj.strips = indexes.
|
|
522
|
+
const indexes = parseIndices(element.index)
|
|
523
|
+
obj.strips = indexes.filter((index) => index.length > 2)
|
|
525
524
|
}
|
|
526
525
|
return obj
|
|
527
526
|
}
|
|
@@ -533,7 +532,7 @@ const x3dIndexedQuadSet = (element) => {
|
|
|
533
532
|
obj.ccw = element.ccw.includes('TRUE') || element.ccw.includes('true')
|
|
534
533
|
}
|
|
535
534
|
if (element.index) {
|
|
536
|
-
obj.index = element.index
|
|
535
|
+
obj.index = parseNumbers(element.index)
|
|
537
536
|
}
|
|
538
537
|
obj.objects = []
|
|
539
538
|
return obj
|
|
@@ -549,8 +548,8 @@ const x3dIndexedFaceSet = (element) => {
|
|
|
549
548
|
obj.convex = element.convex.includes('TRUE') || element.convex.includes('true')
|
|
550
549
|
}
|
|
551
550
|
if (element.coordIndex) {
|
|
552
|
-
const indexes = element.coordIndex
|
|
553
|
-
obj.faces = indexes.
|
|
551
|
+
const indexes = parseIndices(element.coordIndex)
|
|
552
|
+
obj.faces = indexes.filter((index) => index.length > 2)
|
|
554
553
|
}
|
|
555
554
|
// color attributes
|
|
556
555
|
if (element.colorPerVertex) {
|
|
@@ -559,11 +558,11 @@ const x3dIndexedFaceSet = (element) => {
|
|
|
559
558
|
if (element.colorIndex) {
|
|
560
559
|
if (obj.colorPerVertex) {
|
|
561
560
|
// indexes are provided for each VERTEX
|
|
562
|
-
const indexes = element.colorIndex
|
|
563
|
-
obj.colorIndex = indexes.
|
|
561
|
+
const indexes = parseIndices(element.colorIndex)
|
|
562
|
+
obj.colorIndex = indexes.filter((index) => index.length > 2)
|
|
564
563
|
} else {
|
|
565
564
|
// indexes are provided for each FACE
|
|
566
|
-
obj.colorIndex = element.colorIndex
|
|
565
|
+
obj.colorIndex = parseNumbers(element.colorIndex)
|
|
567
566
|
}
|
|
568
567
|
} else {
|
|
569
568
|
// reuse the indexes for the FACES
|
|
@@ -589,7 +588,7 @@ const x3dElevationGrid = (element) => {
|
|
|
589
588
|
obj.zSpacing = parseFloat(element.zSpacing)
|
|
590
589
|
}
|
|
591
590
|
if (element.height) {
|
|
592
|
-
obj.height = element.height
|
|
591
|
+
obj.height = parseNumbers(element.height)
|
|
593
592
|
}
|
|
594
593
|
if (element.ccw) {
|
|
595
594
|
obj.ccw = element.ccw.includes('TRUE') || element.ccw.includes('true')
|
|
@@ -632,14 +631,14 @@ const x3dMaterial = (element) => {
|
|
|
632
631
|
alpha = 1.0 - element.transparency
|
|
633
632
|
}
|
|
634
633
|
if (element.diffuseColor) {
|
|
635
|
-
const values = element.diffuseColor
|
|
634
|
+
const values = parseNumbers(element.diffuseColor)
|
|
636
635
|
if (values.length > 2) {
|
|
637
636
|
if (values.length < 4) values.push(alpha)
|
|
638
637
|
obj.color = values
|
|
639
638
|
}
|
|
640
639
|
}
|
|
641
640
|
if (element.emissiveColor) {
|
|
642
|
-
const values = element.emissiveColor
|
|
641
|
+
const values = parseNumbers(element.emissiveColor)
|
|
643
642
|
if (values.length > 2) {
|
|
644
643
|
if (values.length < 4) values.push(alpha)
|
|
645
644
|
obj.color = values
|
|
@@ -657,6 +656,14 @@ const x3dGroup = (element) => {
|
|
|
657
656
|
return obj
|
|
658
657
|
}
|
|
659
658
|
|
|
659
|
+
const parseNumbers = (attribute) =>
|
|
660
|
+
attribute.trim().replace(/,/g, ' ').split(/ +/).map((v) => parseFloat(v))
|
|
661
|
+
|
|
662
|
+
const parseIndices = (attribute) => {
|
|
663
|
+
const indexes = attribute.replace(/,/g, ' ').trim().split(/ -1/)
|
|
664
|
+
return indexes.map((index) => parseNumbers(index))
|
|
665
|
+
}
|
|
666
|
+
|
|
660
667
|
module.exports = {
|
|
661
668
|
x3dTypes,
|
|
662
669
|
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
+
<!DOCTYPE X3D PUBLIC "ISO//Web3D//DTD X3D 3.0//EN" "http://www.web3d.org/specifications/x3d-3.0.dtd">
|
|
3
|
+
<X3D profile='Interchange' version='3.0' xmlns:xsd='http://www.w3.org/2001/XMLSchema-instance'>
|
|
4
|
+
<head>
|
|
5
|
+
<component level='2' name='TriangleSets'/>
|
|
6
|
+
<unit category='length' conversionFactor='0.001' name='millimeters'/>
|
|
7
|
+
<meta content='TriangleSets.x3d' name='title'/>
|
|
8
|
+
</head>
|
|
9
|
+
<!-- ==================== -->
|
|
10
|
+
<!-- Examples from https://x3dgraphics.com/examples/X3dForWebAuthors/Chapter13GeometryTrianglesQuadrilaterals/ -->
|
|
11
|
+
<!-- ==================== -->
|
|
12
|
+
<Scene>
|
|
13
|
+
<!-- Default Shapes -->
|
|
14
|
+
<Group>
|
|
15
|
+
|
|
16
|
+
<Shape>
|
|
17
|
+
<IndexedTriangleFanSet/>
|
|
18
|
+
</Shape>
|
|
19
|
+
|
|
20
|
+
<Shape>
|
|
21
|
+
<IndexedTriangleSet/>
|
|
22
|
+
</Shape>
|
|
23
|
+
|
|
24
|
+
<Shape>
|
|
25
|
+
<IndexedTriangleStripSet/>
|
|
26
|
+
</Shape>
|
|
27
|
+
|
|
28
|
+
<Shape>
|
|
29
|
+
<IndexedFaceSet/>
|
|
30
|
+
</Shape>
|
|
31
|
+
|
|
32
|
+
</Group>
|
|
33
|
+
<Group>
|
|
34
|
+
|
|
35
|
+
<Shape>
|
|
36
|
+
<IndexedTriangleFanSet ccw='true' colorPerVertex='true' index='18,19,20,21,22,23,24,25,26,-1,27,28,29,30,31,32,-1' normalPerVertex='true' solid='false'>
|
|
37
|
+
<Coordinate point='-4 1 3 -2 2 1.5 -3 4 0.5 -2 3 1.5 0 4 0.0 2 3 1.5 5 5 -2.5 4 3 1.5 6 4 2.0 -4 1 3 -2 2 1.0 -3 4 0.0 -2 3 1.0 0 4 0.0 2 3 1.0 5 5 -2.0 4 3 1.5 6 4 2.0 0 -2 4 1 -3 3.5 1.5 -1.5 3 0 -1 2 -.5 0 2.5 -1.5 1 3 -2 0 3.5 -3 -2 2 -3 -4 3 2 -4 -2 0 -3 -.5 1.3 -1.5 -1 4 -2 -1.5 4.2 -4.2 -1 3 -6 -.5'/>
|
|
38
|
+
<Color color='0 .8 0 0 1 1 1 0 0 1 .5 0 .8 0 1 1 1 0 .6 .3 .1 1 0 .5 0 1 .5 1 0 0 .8 0 1 1 1 0 0 1 1 1 .5 0 .6 .3 .1 1 0 .5 0 .8 0 0 1 .5 0 .8 0 0 1 1 1 0 0 1 .5 0 .8 0 1 1 1 0 .6 .3 .1 1 0 .5 0 1 .5 1 0 0 .8 0 1 1 1 0 0 1 1 1 .5 0 .6 .3 .1 1 0 .5 0 .8 0 0 1 .5'/>
|
|
39
|
+
</IndexedTriangleFanSet>
|
|
40
|
+
</Shape>
|
|
41
|
+
|
|
42
|
+
<Shape>
|
|
43
|
+
<IndexedTriangleSet ccw='true' colorPerVertex='true' index='0,1,2,3,4,5,6,7,8' normalPerVertex='true' solid='false'>
|
|
44
|
+
<Coordinate point='-4 1 3 -2 2 1.5 -3 4 0.5 -2 3 1.5 0 4 0 2 3 1.5 5 5 -2.5 4 3 1.5 6 4 2'/>
|
|
45
|
+
<Color color='0 0.8 0 0 1 1 1 0 0 1 0.5 0 0.8 0 1 1 1 0 0.6 0.3 0.1 1 0 0.5 0 1 0.5'/>
|
|
46
|
+
</IndexedTriangleSet>
|
|
47
|
+
</Shape>
|
|
48
|
+
|
|
49
|
+
<Shape>
|
|
50
|
+
<IndexedTriangleStripSet ccw='true' colorPerVertex='true' index='9,10,11,12,13,-1,14,15,16,17,-1' normalPerVertex='true' solid='false'>
|
|
51
|
+
<Coordinate point='-4 1 3 -2 2 1.5 -3 4 0.5 -2 3 1.5 0 4 0.0 2 3 1.5 5 5 -2.5 4 3 1.5 6 4 2.0 -4 1 3 -2 2 1.0 -3 4 0.0 -2 3 1.0 0 4 0.0 2 3 1.0 5 5 -2.0 4 3 1.5 6 4 2.0 0 -2 4 1 -3 3.5 1.5 -1.5 3 0 -1 2 -.5 0 2.5 -1.5 1 3 -2 0 3.5 -3 -2 2 -3 -4 3 2 -4 -2 0 -3 -.5 1.3 -1.5 -1 4 -2 -1.5 4.2 -4.2 -1 3 -6 -.5'/>
|
|
52
|
+
<Color color='0 .8 0 0 1 1 1 0 0 1 .5 0 .8 0 1 1 1 0 .6 .3 .1 1 0 .5 0 1 .5 1 0 0 .8 0 1 1 1 0 0 1 1 1 .5 0 .6 .3 .1 1 0 .5 0 .8 0 0 1 .5'/>
|
|
53
|
+
</IndexedTriangleStripSet>
|
|
54
|
+
</Shape>
|
|
55
|
+
|
|
56
|
+
<Shape>
|
|
57
|
+
<IndexedQuadSet ccw='true' colorPerVertex='true' index='0,1,2,3,4,5,6,7' normalPerVertex='true' solid='false'>
|
|
58
|
+
<Coordinate point='-6 -2 0 -1 -2 0 -1 2 0 -6 2 0 1 -2 0 6 -2 0 6 2 0 1 2 0'/>
|
|
59
|
+
<Color color='0.2 0.2 0.2 1 0.058824 0.227451 0.4 1 0.121569 0 0.007843 0.960784 0.6 0.235294 0 0.94902 1 0.380392 0.239216 1 0.886275 1 0.121569 0.964706'/>
|
|
60
|
+
</IndexedQuadSet>
|
|
61
|
+
</Shape>
|
|
62
|
+
|
|
63
|
+
<Shape>
|
|
64
|
+
<Appearance>
|
|
65
|
+
<Material ambientIntensity='0.0534211' diffuseColor='0.756863 0.729412 0.537255' emissiveColor='0.18 0.17 0.13' shininess='0.19' specularColor='0.38 0.38 0.27'/>
|
|
66
|
+
</Appearance>
|
|
67
|
+
<IndexedFaceSet colorIndex='0,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,2,1,3,224,225' colorPerVertex='false' convex='false' coordIndex='0,1,2,-1,12,13,14,-1,15,16,17,-1,18,19,20,-1,21,22,23,-1,24,25,26,-1,27,28,29,-1,30,31,32,-1,33,34,35,-1,36,37,38,-1,39,40,41,-1,42,43,44,-1,45,46,47,-1,48,49,50,-1,51,52,53,-1,54,55,56,-1,57,58,59,-1,60,61,62,-1,63,64,65,-1,66,67,68,-1,69,70,71,-1,72,73,74,-1,75,76,77,-1,78,79,80,-1,81,82,83,-1,84,85,86,-1,87,88,89,-1,90,91,92,-1,93,94,95,-1,96,97,98,-1,99,100,101,-1,102,103,104,-1,105,106,107,-1,108,109,110,-1,111,112,113,-1,114,115,116,-1,117,118,119,-1,120,121,122,-1,123,124,125,-1,126,127,128,-1,129,130,131,-1,132,133,134,-1,135,136,137,-1,138,139,140,-1,141,142,143,-1,144,145,146,-1,147,148,149,-1,150,151,152,-1,153,154,155,-1,156,157,158,-1,159,160,161,-1,162,163,164,-1,165,166,167,-1,168,169,170,-1,171,172,173,-1,174,175,176,-1,177,178,179,-1,180,181,182,-1,183,184,185,-1,186,187,188,-1,189,190,191,-1,192,193,194,-1,195,196,197,-1,198,199,200,-1,201,202,203,-1,204,205,206,-1,207,208,209,-1,210,211,212,-1,213,214,215,-1,216,217,218,-1,219,220,221,-1,222,223,224,-1,225,226,227,-1,228,229,230,-1,231,232,233,-1,234,235,236,-1,237,238,239,-1,240,241,242,-1,243,244,245,-1,246,247,248,-1,249,250,251,-1,252,253,254,-1,255,256,257,-1,258,259,260,-1,261,262,263,-1,264,265,266,-1,267,268,269,-1,270,271,272,-1,273,274,275,-1,276,277,278,-1,279,280,281,-1,282,283,284,-1,285,286,287,-1,288,289,290,-1,291,292,293,-1,294,295,296,-1,297,298,299,-1,300,301,302,-1,303,304,305,-1,306,307,308,-1,309,310,311,-1,312,313,314,-1,315,316,317,-1,318,319,320,-1,321,322,323,-1,324,325,326,-1,327,328,329,-1,330,331,332,-1,333,334,335,-1,336,337,338,-1,339,340,341,-1,342,343,344,-1,345,346,347,-1,348,349,350,-1,351,352,353,-1,354,355,356,-1,357,358,359,-1,360,361,362,-1,363,364,365,-1,366,367,368,-1,369,370,371,-1,372,373,374,-1,375,376,377,-1,378,379,380,-1,381,382,383,-1,384,385,386,-1,387,388,389,-1,390,391,392,-1,393,394,395,-1,396,397,398,-1,399,400,401,-1,402,403,404,-1,405,406,407,-1,408,409,410,-1,411,412,413,-1,414,415,416,-1,417,418,419,-1,420,421,422,-1,423,424,425,-1,426,427,428,-1,429,430,431,-1,432,433,434,-1,435,436,437,-1,438,439,440,-1,441,442,443,-1,444,445,446,-1,447,448,449,-1,450,451,452,-1,453,454,455,-1,456,457,458,-1,459,460,461,-1,462,463,464,-1,465,466,467,-1,468,469,470,-1,471,472,473,-1,474,475,476,-1,477,478,479,-1,480,481,482,-1,483,484,485,-1,486,487,488,-1,489,490,491,-1,492,493,494,-1,495,496,497,-1,498,499,500,-1,501,502,503,-1,504,505,506,-1,507,508,509,-1,510,511,512,-1,513,514,515,-1,516,517,518,-1,519,520,521,-1,522,523,524,-1,525,526,527,-1,528,529,530,-1,531,532,533,-1,534,535,536,-1,537,538,539,-1,540,541,542,-1,543,544,545,-1,546,547,548,-1,549,550,551,-1,552,553,554,-1,555,556,557,-1,558,559,560,-1,561,562,563,-1,564,565,566,-1,567,568,569,-1,570,571,572,-1,573,574,575,-1,576,577,578,-1,579,580,581,-1,582,583,584,-1,585,586,587,-1,588,589,590,-1,591,592,593,-1,594,595,596,-1,597,598,599,-1,600,601,602,-1,603,604,605,-1,606,607,608,-1,609,610,611,-1,612,613,614,-1,615,616,617,-1,618,619,620,-1,621,622,623,-1,624,625,626,-1,627,628,629,-1,630,631,632,-1,633,634,635,-1,636,637,638,-1,639,640,641,-1,642,643,644,-1,645,646,647,-1,648,649,650,-1,651,652,653,-1,654,655,656,-1,657,658,659,-1,660,661,662,-1,663,664,665,-1,666,667,668,-1,669,670,671,-1,6,7,8,-1,3,4,5,-1,9,10,11,-1,672,673,674,-1,675,676,677,-1' creaseAngle='3.14159' normalIndex='0,1,2,-1,10,10,10,-1,11,11,11,-1,12,12,12,-1,13,13,13,-1,14,14,14,-1,15,16,17,-1,18,19,20,-1,21,22,23,-1,24,25,26,-1,27,27,27,-1,28,28,28,-1,29,29,29,-1,30,31,32,-1,33,34,35,-1,36,37,38,-1,39,40,41,-1,42,43,44,-1,45,46,47,-1,48,49,50,-1,51,51,51,-1,52,53,54,-1,55,56,57,-1,58,59,60,-1,61,62,63,-1,64,65,66,-1,67,67,67,-1,68,69,70,-1,71,72,73,-1,74,74,74,-1,75,75,75,-1,76,76,76,-1,77,78,79,-1,80,80,80,-1,81,82,83,-1,84,84,84,-1,85,85,85,-1,86,86,86,-1,87,87,87,-1,88,88,88,-1,89,89,89,-1,90,91,92,-1,93,94,95,-1,96,96,96,-1,97,98,99,-1,100,101,102,-1,103,104,105,-1,106,107,108,-1,109,110,111,-1,112,113,114,-1,115,115,115,-1,116,117,118,-1,119,119,119,-1,120,121,122,-1,123,124,125,-1,126,127,128,-1,129,129,129,-1,130,131,132,-1,133,134,135,-1,136,136,136,-1,137,138,139,-1,140,141,142,-1,143,143,143,-1,144,145,146,-1,147,148,149,-1,150,151,152,-1,153,154,155,-1,156,156,156,-1,157,157,157,-1,158,159,160,-1,161,162,163,-1,164,164,164,-1,165,165,165,-1,166,167,168,-1,169,170,171,-1,172,173,174,-1,175,176,177,-1,178,178,178,-1,179,179,179,-1,180,181,182,-1,183,184,185,-1,186,187,188,-1,189,189,189,-1,190,190,190,-1,191,192,193,-1,194,195,196,-1,197,197,197,-1,198,198,198,-1,199,199,199,-1,200,201,202,-1,203,204,205,-1,206,206,206,-1,207,208,209,-1,210,210,210,-1,211,211,211,-1,212,212,212,-1,213,213,213,-1,214,215,216,-1,217,218,219,-1,220,220,220,-1,221,221,221,-1,222,222,222,-1,223,224,225,-1,226,227,228,-1,229,229,229,-1,230,231,232,-1,233,234,235,-1,236,237,238,-1,239,240,241,-1,242,243,244,-1,245,246,247,-1,248,248,248,-1,249,249,249,-1,250,251,252,-1,253,254,255,-1,256,257,258,-1,259,260,261,-1,262,263,264,-1,265,265,265,-1,266,266,266,-1,267,267,267,-1,268,269,270,-1,271,272,273,-1,274,275,276,-1,277,278,279,-1,280,281,282,-1,283,284,285,-1,286,287,288,-1,289,289,289,-1,290,291,292,-1,293,294,295,-1,296,297,298,-1,299,300,301,-1,302,303,304,-1,305,305,305,-1,306,307,308,-1,309,310,311,-1,312,312,312,-1,313,313,313,-1,314,314,314,-1,315,316,317,-1,318,318,318,-1,319,320,321,-1,322,322,322,-1,323,323,323,-1,324,324,324,-1,325,325,325,-1,326,326,326,-1,327,327,327,-1,328,329,330,-1,331,332,333,-1,334,334,334,-1,335,336,337,-1,338,339,340,-1,341,342,343,-1,344,345,346,-1,347,348,349,-1,350,351,352,-1,353,353,353,-1,354,355,356,-1,357,357,357,-1,358,359,360,-1,361,362,363,-1,364,365,366,-1,367,367,367,-1,368,369,370,-1,371,372,373,-1,374,374,374,-1,375,376,377,-1,378,379,380,-1,381,381,381,-1,382,383,384,-1,385,386,387,-1,388,389,390,-1,391,392,393,-1,394,394,394,-1,395,395,395,-1,396,397,398,-1,399,400,401,-1,402,402,402,-1,403,403,403,-1,404,405,406,-1,407,408,409,-1,410,411,412,-1,413,414,415,-1,416,416,416,-1,417,417,417,-1,418,419,420,-1,421,422,423,-1,424,425,426,-1,427,427,427,-1,428,428,428,-1,429,430,431,-1,432,433,434,-1,435,435,435,-1,436,436,436,-1,437,437,437,-1,438,439,440,-1,441,442,443,-1,444,444,444,-1,445,446,447,-1,448,448,448,-1,449,449,449,-1,450,450,450,-1,451,451,451,-1,452,453,454,-1,455,456,457,-1,458,458,458,-1,459,459,459,-1,460,460,460,-1,461,462,463,-1,464,465,466,-1,467,467,467,-1,468,469,470,-1,471,472,473,-1,474,475,476,-1,477,478,479,-1,480,481,482,-1,483,484,485,-1,486,486,486,-1,487,487,487,-1,4,5,6,-1,3,3,3,-1,7,8,9,-1,488,488,488,-1,489,490,491,-1' solid='false'>
|
|
68
|
+
<Coordinate point='-0.0902426 0.707736 -0.361894 -0.126242 0.7163 -0.510588 -0.0821966 0.717949 -0.490936 1.05985e-006 0.934617 0.0504887 -0.00664806 0.898872 -0.0277972 0 0.901021 0.122661 1.05985e-006 0.934617 0.0504887 0 0.901021 0.122661 -2.03005e-006 0.90317 0.277591 1.06986e-006 1.0793 3.47475e-007 1.05985e-006 0.934617 0.0504887 -2.03005e-006 0.90317 0.277591 -0.114758 0.901562 -0.463227 -0.118379 0.85895 -0.478181 -0.098076 0.874364 -0.394307 -0.118483 0.948969 -0.478612 -0.114758 0.901562 -0.463227 -0.098076 0.874364 -0.394307 -0.148198 0.693025 -0.60134 -0.153978 0.652374 -0.625216 -0.140082 0.684348 -0.567816 -0.126187 0.716322 -0.510419 -0.148198 0.693025 -0.60134 -0.140082 0.684348 -0.567816 -0.151929 0.723428 -0.61675 -0.148198 0.693025 -0.60134 -0.126187 0.716322 -0.510419 -0.123346 0.739931 -0.0712886 -0.147796 0.734624 -0.210758 -0.142964 0.693107 -0.139234 -0.147796 0.734624 -0.210758 -0.154642 0.690461 -0.206715 -0.142964 0.693107 -0.139234 -0.142964 0.693107 -0.139234 -0.154642 0.690461 -0.206715 -0.170992 0.648327 -0.242015 -0.118464 0.756954 0.588829 -0.134253 0.756954 0.279345 -0.302092 0.706351 0.270908 -0.171744 0.724864 -0.680752 -0.227054 0.740499 -0.761237 -0.221648 0.65237 -0.934256 -0.227054 0.740499 -0.761237 -0.171744 0.724864 -0.680752 -0.156404 0.717949 -0.47297 -0.227054 0.740499 -0.761237 -0.156404 0.717949 -0.47297 -0.193516 0.738534 -0.463984 -0.193516 0.738534 -0.463984 -0.156404 0.717949 -0.47297 -0.10699 0.717949 -0.106569 -0.156404 0.717949 -0.47297 -0.0902276 0.707736 -0.361897 -0.0580738 0.70326 -0.0822888 -0.0902276 0.707736 -0.361897 -0.00919576 0.699209 -0.0271805 -0.0580738 0.70326 -0.0822888 -0.156404 0.717949 -0.47297 -0.0580737 0.70326 -0.0822888 -0.10699 0.717949 -0.106569 -0.10699 0.717949 -0.106569 -0.0580738 0.70326 -0.0822888 -0.0766211 0.707736 0.27759 -0.113414 0.724864 0.27759 -0.10699 0.717949 -0.106569 -0.0766211 0.707736 0.27759 -0.0580738 0.70326 -0.0822888 -0.00919576 0.699209 -0.0271805 -0.0352099 0.699209 0.27759 -0.00919576 0.699209 -0.0271805 -0.0030355 0.697365 0.277591 -0.0352099 0.699209 0.27759 -0.0580738 0.70326 -0.0822888 -0.0352099 0.699209 0.27759 -0.0766211 0.707736 0.27759 -0.00303552 0.697365 0.277591 -0.00303664 0.699209 0.4528 -0.0352099 0.699209 0.27759 -0.131733 0.744141 0.27759 -0.113414 0.724864 0.27759 -0.123031 0.740499 0.495402 -0.123031 0.740499 0.495402 -0.113414 0.724864 0.27759 -0.091476 0.717949 0.518391 -0.113414 0.724864 0.27759 -0.0766211 0.707736 0.27759 -0.091476 0.717949 0.518391 -0.00303936 0.724864 0.878668 -0.047258 0.717949 0.759194 -0.00303808 0.707736 0.678309 -0.0766211 0.707736 0.27759 -0.0430349 0.70326 0.495403 -0.091476 0.717949 0.518391 -0.0352099 0.699209 0.27759 -0.0430349 0.70326 0.495403 -0.0766211 0.707736 0.27759 -0.0430349 0.70326 0.495403 -0.047258 0.717949 0.759194 -0.091476 0.717949 0.518391 -0.00303808 0.707736 0.678309 -0.047258 0.717949 0.759194 -0.0430349 0.70326 0.495403 -0.00303664 0.699209 0.4528 -0.00303808 0.707736 0.678309 -0.0430349 0.70326 0.495403 -0.0352099 0.699209 0.27759 -0.00303664 0.699209 0.4528 -0.0430349 0.70326 0.495403 -0.00303936 0.724864 0.878668 -0.0430376 0.740499 0.931031 -0.047258 0.717949 0.759194 -0.0352143 0.759118 0.978427 -0.076625 0.759118 0.878668 -0.0430376 0.740499 0.931031 -0.0914776 0.738534 0.759194 -0.113416 0.759118 0.678308 -0.123031 0.740499 0.495402 -0.0914776 0.738534 0.759194 -0.123031 0.740499 0.495402 -0.091476 0.717949 0.518391 -0.076625 0.759118 0.878668 -0.113416 0.759118 0.678308 -0.0914776 0.738534 0.759194 -0.0430376 0.740499 0.931031 -0.076625 0.759118 0.878668 -0.0914776 0.738534 0.759194 -0.0430376 0.740499 0.931031 -0.0914776 0.738534 0.759194 -0.047258 0.717949 0.759194 -0.047258 0.717949 0.759194 -0.0914776 0.738534 0.759194 -0.091476 0.717949 0.518391 -0.113416 0.759118 0.678308 -0.131734 0.759118 0.452799 -0.123031 0.740499 0.495402 -0.131734 0.759118 0.452799 -0.131733 0.744141 0.27759 -0.123031 0.740499 0.495402 -0.135694 0.759118 0.27759 -0.131733 0.744141 0.27759 -0.131734 0.759118 0.452799 -0.125212 0.740499 -0.0660358 -0.193516 0.738534 -0.463984 -0.159365 0.739516 -0.265011 -0.182866 0.759118 -0.339472 -0.193516 0.738534 -0.463984 -0.125212 0.740499 -0.0660358 -0.182866 0.759118 -0.339472 -0.125212 0.740499 -0.0660358 -0.135326 0.759118 -0.00108072 -0.125212 0.740499 -0.0660358 -0.10699 0.717949 -0.106569 -0.113414 0.724864 0.27759 -0.135326 0.759118 -0.00108072 -0.125212 0.740499 -0.0660358 -0.131733 0.744141 0.27759 -0.131733 0.744141 0.27759 -0.125212 0.740499 -0.0660358 -0.113414 0.724864 0.27759 -0.135694 0.759118 0.27759 -0.135326 0.759118 -0.00108072 -0.131733 0.744141 0.27759 -0.182866 0.759118 -0.339472 -0.241643 0.759118 -0.666992 -0.193516 0.738534 -0.463984 -0.241643 0.759118 -0.666992 -0.227054 0.740499 -0.761237 -0.193516 0.738534 -0.463984 -0.235296 0.759118 -0.842319 -0.227054 0.740499 -0.761237 -0.241643 0.759118 -0.666992 -0.235296 0.759118 -0.842319 -0.221648 0.65237 -0.934256 -0.227054 0.740499 -0.761237 -0.235296 0.759118 -0.842319 -0.211867 0.759118 -0.884567 -0.221648 0.65237 -0.934256 -0.00304013 0.759118 0.999996 -0.0352143 0.759118 0.978427 -0.00304 0.744141 0.978427 -0.00304 0.744141 0.978427 -0.0430376 0.740499 0.931031 -0.00303936 0.724864 0.878668 -0.00304 0.744141 0.978427 -0.0352143 0.759118 0.978427 -0.0430376 0.740499 0.931031 -0.131733 0.794038 0.27759 -0.135326 0.759118 -0.00108072 -0.135694 0.759118 0.27759 -0.125212 0.80253 -0.0660358 -0.135326 0.759118 -0.00108072 -0.131733 0.794038 0.27759 -0.125212 0.80253 -0.0660358 -0.182866 0.759118 -0.339472 -0.135326 0.759118 -0.00108072 -0.193516 0.807112 -0.463984 -0.182866 0.759118 -0.339472 -0.125212 0.80253 -0.0660358 -0.193516 0.807112 -0.463984 -0.241643 0.759118 -0.666992 -0.182866 0.759118 -0.339472 -0.193516 0.807112 -0.463984 -0.227054 0.80253 -0.761237 -0.241643 0.759118 -0.666992 -0.246206 1.14936 -1.059 -0.227054 0.80253 -0.761237 -0.171744 0.838984 -0.680752 -0.227054 0.80253 -0.761237 -0.235296 0.759118 -0.842323 -0.241643 0.759118 -0.666992 -0.246206 1.14936 -1.059 -0.235296 0.759118 -0.842323 -0.227054 0.80253 -0.761237 -0.246206 1.14936 -1.059 -0.211867 0.759118 -0.884567 -0.235296 0.759118 -0.842323 -0.113414 0.838984 0.27759 -0.125212 0.80253 -0.0660358 -0.131733 0.794038 0.27759 -0.10699 0.855105 -0.106569 -0.125212 0.80253 -0.0660358 -0.113414 0.838984 0.27759 -0.10699 0.855105 -0.106569 -0.193516 0.807112 -0.463984 -0.125212 0.80253 -0.0660358 -0.156404 0.855105 -0.47297 -0.193516 0.807112 -0.463984 -0.10699 0.855105 -0.106569 -0.156404 0.855105 -0.47297 -0.227054 0.80253 -0.761237 -0.193516 0.807112 -0.463984 -0.156404 0.855105 -0.47297 -0.171744 0.838984 -0.680752 -0.227054 0.80253 -0.761237 -0.076621 0.878917 0.27759 -0.10699 0.855105 -0.106569 -0.113414 0.838984 0.27759 -0.0580738 0.889352 -0.0822888 -0.10699 0.855105 -0.106569 -0.076621 0.878917 0.27759 -0.0580738 0.889352 -0.0822888 -0.156404 0.855105 -0.47297 -0.10699 0.855105 -0.106569 -0.0580738 0.889352 -0.0822888 -0.0902276 0.878917 -0.361897 -0.156404 0.855105 -0.47297 -0.00919576 0.898799 -0.0271805 -0.0902276 0.878917 -0.361897 -0.0580738 0.889352 -0.0822888 -0.0352099 0.898799 0.27759 -0.0580738 0.889352 -0.0822888 -0.076621 0.878917 0.27759 -0.00919576 0.898799 -0.0271805 -0.0580738 0.889352 -0.0822888 -0.0352099 0.898799 0.27759 -0.00919576 0.898799 -0.0271805 -0.0352099 0.898799 0.27759 -0.0030355 0.903097 0.277591 -0.00303999 0.794038 0.978427 -0.0352143 0.759118 0.978427 -0.00304013 0.759118 0.999996 -0.00303999 0.794038 0.978427 -0.0430376 0.80253 0.931031 -0.0352143 0.759118 0.978427 -0.0352143 0.759118 0.978427 -0.0430376 0.80253 0.931031 -0.076625 0.759118 0.878668 -0.0430376 0.80253 0.931031 -0.0914776 0.807112 0.759194 -0.076625 0.759118 0.878668 -0.076625 0.759118 0.878668 -0.0914776 0.807112 0.759194 -0.113416 0.759118 0.678308 -0.0914776 0.807112 0.759194 -0.123031 0.80253 0.495402 -0.113416 0.759118 0.678308 -0.123031 0.80253 0.495402 -0.131734 0.759118 0.452799 -0.113416 0.759118 0.678308 -0.123031 0.80253 0.495402 -0.131733 0.794038 0.27759 -0.131734 0.759118 0.452799 -0.131733 0.794038 0.27759 -0.135694 0.759118 0.27759 -0.131734 0.759118 0.452799 -0.00303999 0.794038 0.978427 -0.00303936 0.838984 0.878668 -0.0430376 0.80253 0.931031 -0.00303936 0.838984 0.878668 -0.047258 0.855105 0.759194 -0.0430376 0.80253 0.931031 -0.0430376 0.80253 0.931031 -0.047258 0.855105 0.759194 -0.0914776 0.807112 0.759194 -0.047258 0.855105 0.759194 -0.091476 0.855105 0.518391 -0.0914776 0.807112 0.759194 -0.091476 0.855105 0.518391 -0.123031 0.80253 0.495402 -0.0914776 0.807112 0.759194 -0.091476 0.855105 0.518391 -0.113414 0.838984 0.27759 -0.123031 0.80253 0.495402 -0.113414 0.838984 0.27759 -0.131733 0.794038 0.27759 -0.123031 0.80253 0.495402 -0.00303808 0.878917 0.678309 -0.047258 0.855105 0.759194 -0.00303936 0.838984 0.878668 -0.00303808 0.878917 0.678309 -0.0430349 0.889352 0.495403 -0.047258 0.855105 0.759194 -0.0430349 0.889352 0.495403 -0.091476 0.855105 0.518391 -0.047258 0.855105 0.759194 -0.0430349 0.889352 0.495403 -0.076621 0.878917 0.27759 -0.091476 0.855105 0.518391 -0.076621 0.878917 0.27759 -0.113414 0.838984 0.27759 -0.091476 0.855105 0.518391 -0.00303808 0.878917 0.678309 -0.00303664 0.898799 0.4528 -0.0430349 0.889352 0.495403 -0.00303664 0.898799 0.4528 -0.0352099 0.898799 0.27759 -0.0430349 0.889352 0.495403 -0.0352099 0.898799 0.27759 -0.076621 0.878917 0.27759 -0.0430349 0.889352 0.495403 -0.00303551 0.903097 0.277591 -0.0352099 0.898799 0.27759 -0.00303664 0.898799 0.4528 -0.126225 0.85895 -0.510592 -0.171744 0.838984 -0.680752 -0.156404 0.855105 -0.47297 -0.0902276 0.878917 -0.361897 -0.126225 0.85895 -0.510592 -0.156404 0.855105 -0.47297 -0.159365 0.739516 -0.265011 -0.193516 0.738534 -0.463984 -0.10699 0.717949 -0.106569 -0.125212 0.740499 -0.0660358 -0.159365 0.739516 -0.265011 -0.10699 0.717949 -0.106569 -0.171744 0.724864 -0.680752 -0.126225 0.7163 -0.510592 -0.156404 0.717949 -0.47297 -0.156404 0.717949 -0.47297 -0.126225 0.7163 -0.510592 -0.0902276 0.707736 -0.361897 0.0584968 0.693107 -0.188007 0.0300801 0.734624 -0.253822 0.0721283 0.739931 -0.118612 0.0584968 0.693107 -0.188007 0.0380172 0.690461 -0.253357 0.0300801 0.734624 -0.253822 0.036411 0.648327 -0.292226 0.0380172 0.690461 -0.253357 0.0584968 0.693107 -0.188007 0.296012 0.706351 0.270908 0.128173 0.756954 0.279345 0.112384 0.756954 0.588829 -0.221672 0.65237 -0.934251 -0.151089 0.740499 -0.776192 -0.171766 0.724864 -0.680748 -0.0821966 0.717949 -0.490936 -0.171766 0.724864 -0.680748 -0.151089 0.740499 -0.776192 -0.0450844 0.738534 -0.49992 -0.0821966 0.717949 -0.490936 -0.151089 0.740499 -0.776192 0.0414473 0.717949 -0.142505 -0.0821966 0.717949 -0.490936 -0.0450844 0.738534 -0.49992 0.00905313 0.70326 -0.0985401 -0.0902426 0.707736 -0.361894 -0.0821966 0.717949 -0.490936 0.00905313 0.70326 -0.0985401 -0.00920661 0.699209 -0.0271778 -0.0902426 0.707736 -0.361894 0.0414473 0.717949 -0.142505 0.00905313 0.70326 -0.0985401 -0.0821966 0.717949 -0.490936 0.0705411 0.707736 0.27759 0.00905313 0.70326 -0.0985401 0.0414473 0.717949 -0.142505 0.0705411 0.707736 0.27759 0.0414473 0.717949 -0.142505 0.107334 0.724864 0.27759 0.0291299 0.699209 0.27759 -0.00920661 0.699209 -0.0271778 0.00905313 0.70326 -0.0985401 0.0291299 0.699209 0.27759 -0.00304449 0.697365 0.277591 -0.00920661 0.699209 -0.0271778 0.0705411 0.707736 0.27759 0.0291299 0.699209 0.27759 0.00905313 0.70326 -0.0985401 0.0291299 0.699209 0.27759 -0.00304335 0.699209 0.4528 -0.00304447 0.697365 0.277591 0.116951 0.740499 0.495402 0.107334 0.724864 0.27759 0.125653 0.744141 0.27759 0.085396 0.717949 0.518391 0.107334 0.724864 0.27759 0.116951 0.740499 0.495402 0.085396 0.717949 0.518391 0.0705411 0.707736 0.27759 0.107334 0.724864 0.27759 -0.00304191 0.707736 0.678309 0.041178 0.717949 0.759194 -0.00304063 0.724864 0.878668 0.085396 0.717949 0.518391 0.0369549 0.70326 0.495403 0.0705411 0.707736 0.27759 0.0705411 0.707736 0.27759 0.0369549 0.70326 0.495403 0.0291299 0.699209 0.27759 0.085396 0.717949 0.518391 0.041178 0.717949 0.759194 0.0369549 0.70326 0.495403 0.0369549 0.70326 0.495403 0.041178 0.717949 0.759194 -0.00304191 0.707736 0.678309 0.0369549 0.70326 0.495403 -0.00304191 0.707736 0.678309 -0.00304335 0.699209 0.4528 0.0369549 0.70326 0.495403 -0.00304335 0.699209 0.4528 0.0291299 0.699209 0.27759 0.041178 0.717949 0.759194 0.0369577 0.740499 0.931031 -0.00304063 0.724864 0.878668 0.0369577 0.740499 0.931031 0.070545 0.759118 0.878668 0.0291344 0.759118 0.978427 0.116951 0.740499 0.495402 0.107336 0.759118 0.678308 0.0853976 0.738534 0.759194 0.085396 0.717949 0.518391 0.116951 0.740499 0.495402 0.0853976 0.738534 0.759194 0.0853976 0.738534 0.759194 0.107336 0.759118 0.678308 0.070545 0.759118 0.878668 0.0853976 0.738534 0.759194 0.070545 0.759118 0.878668 0.0369577 0.740499 0.931031 0.041178 0.717949 0.759194 0.0853976 0.738534 0.759194 0.0369577 0.740499 0.931031 0.085396 0.717949 0.518391 0.0853976 0.738534 0.759194 0.041178 0.717949 0.759194 0.116951 0.740499 0.495402 0.125654 0.759118 0.452799 0.107336 0.759118 0.678308 0.116951 0.740499 0.495402 0.125653 0.744141 0.27759 0.125654 0.759118 0.452799 0.125654 0.759118 0.452799 0.125653 0.744141 0.27759 0.129614 0.759118 0.27759 0.0155534 0.739516 -0.307358 -0.0450844 0.738534 -0.49992 0.0761915 0.740499 -0.114795 0.0761915 0.740499 -0.114795 -0.0450844 0.738534 -0.49992 0.00239428 0.759118 -0.384322 0.0988058 0.759118 -0.053328 0.0761915 0.740499 -0.114795 0.00239428 0.759118 -0.384322 0.107334 0.724864 0.27759 0.0414473 0.717949 -0.142505 0.0761915 0.740499 -0.114795 0.125653 0.744141 0.27759 0.0761915 0.740499 -0.114795 0.0988058 0.759118 -0.053328 0.107334 0.724864 0.27759 0.0761915 0.740499 -0.114795 0.125653 0.744141 0.27759 0.125653 0.744141 0.27759 0.0988058 0.759118 -0.053328 0.129614 0.759118 0.27759 -0.0450844 0.738534 -0.49992 -0.101867 0.759118 -0.694509 0.00239428 0.759118 -0.384322 -0.0450844 0.738534 -0.49992 -0.151089 0.740499 -0.776192 -0.101867 0.759118 -0.694509 -0.101867 0.759118 -0.694509 -0.151089 0.740499 -0.776192 -0.174195 0.759118 -0.854348 -0.151089 0.740499 -0.776192 -0.221672 0.65237 -0.934251 -0.174195 0.759118 -0.854348 -0.221672 0.65237 -0.934251 -0.21189 0.759118 -0.884562 -0.174195 0.759118 -0.854348 -0.00303999 0.744141 0.978427 0.0291344 0.759118 0.978427 -0.00303985 0.759118 0.999996 -0.00304063 0.724864 0.878668 0.0369577 0.740499 0.931031 -0.00303999 0.744141 0.978427 0.0369577 0.740499 0.931031 0.0291344 0.759118 0.978427 -0.00303999 0.744141 0.978427 0.129614 0.759118 0.27759 0.0988058 0.759118 -0.053328 0.125653 0.794038 0.27759 0.125653 0.794038 0.27759 0.0988058 0.759118 -0.053328 0.0761915 0.80253 -0.114795 0.0988058 0.759118 -0.053328 0.00239428 0.759118 -0.384322 0.0761915 0.80253 -0.114795 0.0761915 0.80253 -0.114795 0.00239428 0.759118 -0.384322 -0.0450844 0.807112 -0.49992 0.00239428 0.759118 -0.384322 -0.101867 0.759118 -0.694509 -0.0450844 0.807112 -0.49992 -0.101867 0.759118 -0.694509 -0.151089 0.80253 -0.776192 -0.0450844 0.807112 -0.49992 -0.171766 0.838984 -0.680748 -0.151089 0.80253 -0.776192 -0.246233 1.14936 -1.05901 -0.101867 0.759118 -0.694509 -0.174196 0.759118 -0.854351 -0.151089 0.80253 -0.776192 -0.151089 0.80253 -0.776192 -0.174196 0.759118 -0.854351 -0.246233 1.14936 -1.05901 -0.174196 0.759118 -0.854351 -0.21189 0.759118 -0.884562 -0.246233 1.14936 -1.05901 0.125653 0.794038 0.27759 0.0761915 0.80253 -0.114795 0.107334 0.838984 0.27759 0.107334 0.838984 0.27759 0.0761915 0.80253 -0.114795 0.0414473 0.855105 -0.142505 0.0761915 0.80253 -0.114795 -0.0450844 0.807112 -0.49992 0.0414473 0.855105 -0.142505 0.0414473 0.855105 -0.142505 -0.0450844 0.807112 -0.49992 -0.0821966 0.855105 -0.490936 -0.0450844 0.807112 -0.49992 -0.151089 0.80253 -0.776192 -0.0821966 0.855105 -0.490936 -0.151089 0.80253 -0.776192 -0.171766 0.838984 -0.680748 -0.0821966 0.855105 -0.490936 0.107334 0.838984 0.27759 0.0414473 0.855105 -0.142505 0.070541 0.878917 0.27759 0.070541 0.878917 0.27759 0.0414473 0.855105 -0.142505 0.00905313 0.889352 -0.0985401 0.0414473 0.855105 -0.142505 -0.0821966 0.855105 -0.490936 0.00905313 0.889352 -0.0985401 -0.0821966 0.855105 -0.490936 -0.0902426 0.878917 -0.361894 0.00905313 0.889352 -0.0985401 0.00905313 0.889352 -0.0985401 -0.0902426 0.878917 -0.361894 -0.00920661 0.898799 -0.0271778 0.070541 0.878917 0.27759 0.00905313 0.889352 -0.0985401 0.0291299 0.898799 0.27759 0.0291299 0.898799 0.27759 0.00905313 0.889352 -0.0985401 -0.00920661 0.898799 -0.0271778 -0.00304449 0.903097 0.277591 0.0291299 0.898799 0.27759 -0.00920661 0.898799 -0.0271778 -0.00303986 0.759118 0.999996 0.0291344 0.759118 0.978427 -0.00303999 0.794038 0.978427 0.0291344 0.759118 0.978427 0.0369577 0.80253 0.931031 -0.00303999 0.794038 0.978427 0.070545 0.759118 0.878668 0.0369577 0.80253 0.931031 0.0291344 0.759118 0.978427 0.070545 0.759118 0.878668 0.0853976 0.807112 0.759194 0.0369577 0.80253 0.931031 0.107336 0.759118 0.678308 0.0853976 0.807112 0.759194 0.070545 0.759118 0.878668 0.107336 0.759118 0.678308 0.116951 0.80253 0.495402 0.0853976 0.807112 0.759194 0.107336 0.759118 0.678308 0.125654 0.759118 0.452799 0.116951 0.80253 0.495402 0.125654 0.759118 0.452799 0.125653 0.794038 0.27759 0.116951 0.80253 0.495402 0.125654 0.759118 0.452799 0.129614 0.759118 0.27759 0.125653 0.794038 0.27759 0.0369577 0.80253 0.931031 -0.00304063 0.838984 0.878668 -0.00303999 0.794038 0.978427 0.0369577 0.80253 0.931031 0.041178 0.855105 0.759194 -0.00304063 0.838984 0.878668 0.0853976 0.807112 0.759194 0.041178 0.855105 0.759194 0.0369577 0.80253 0.931031 0.0853976 0.807112 0.759194 0.085396 0.855105 0.518391 0.041178 0.855105 0.759194 0.0853976 0.807112 0.759194 0.116951 0.80253 0.495402 0.085396 0.855105 0.518391 0.116951 0.80253 0.495402 0.107334 0.838984 0.27759 0.085396 0.855105 0.518391 0.116951 0.80253 0.495402 0.125653 0.794038 0.27759 0.107334 0.838984 0.27759 -0.00304063 0.838984 0.878668 0.041178 0.855105 0.759194 -0.00304191 0.878917 0.678309 0.041178 0.855105 0.759194 0.0369549 0.889352 0.495403 -0.00304191 0.878917 0.678309 0.041178 0.855105 0.759194 0.085396 0.855105 0.518391 0.0369549 0.889352 0.495403 0.085396 0.855105 0.518391 0.070541 0.878917 0.27759 0.0369549 0.889352 0.495403 0.085396 0.855105 0.518391 0.107334 0.838984 0.27759 0.070541 0.878917 0.27759 0.0369549 0.889352 0.495403 -0.00304335 0.898799 0.4528 -0.00304191 0.878917 0.678309 0.0369549 0.889352 0.495403 0.0291299 0.898799 0.27759 -0.00304335 0.898799 0.4528 0.0369549 0.889352 0.495403 0.070541 0.878917 0.27759 0.0291299 0.898799 0.27759 -0.00304335 0.898799 0.4528 0.0291299 0.898799 0.27759 -0.00304448 0.903097 0.277591 -0.0821966 0.855105 -0.490936 -0.171766 0.838984 -0.680748 -0.126242 0.85895 -0.510588 -0.0821966 0.855105 -0.490936 -0.126242 0.85895 -0.510588 -0.0902426 0.878917 -0.361894 0.0414473 0.717949 -0.142505 -0.0450844 0.738534 -0.49992 0.0155534 0.739516 -0.307358 0.0414473 0.717949 -0.142505 0.0155534 0.739516 -0.307358 0.0761915 0.740499 -0.114795 -0.0821966 0.717949 -0.490936 -0.126242 0.7163 -0.510588 -0.171766 0.724864 -0.680748 -0.00303241 0.934544 0.0504887 -0.0026253 0.898799 -0.0279467 -0.00303347 0.900948 0.122661 -0.00303241 0.934544 0.0504887 -0.00303347 0.900948 0.122661 -0.0030355 0.903097 0.277591'/>
|
|
69
|
+
<Color color='0.756863 0.729412 0.537255 0.697647 0.487647 0.377059 0.697647 0.487647 0.377059 0.697647 0.487647 0.377059 0.697647 0.487647 0.377059 0.697647 0.487647 0.377059 0.936863 0.899412 0.667255 0.936863 0.899412 0.667255 0.936863 0.899412 0.667255 0.936863 0.899412 0.667255 0.936863 0.899412 0.667255 0.936863 0.899412 0.667255 0.936863 0.899412 0.667255 0.936863 0.899412 0.667255 0.936863 0.899412 0.667255 0.936863 0.899412 0.667255 0.936863 0.899412 0.667255 0.936863 0.899412 0.667255 0.936863 0.899412 0.667255 0.936863 0.899412 0.667255 0.936863 0.899412 0.667255 0.936863 0.899412 0.667255 0.936863 0.899412 0.667255 0.936863 0.899412 0.667255 0.936863 0.899412 0.667255 0.936863 0.899412 0.667255 0.936863 0.899412 0.667255 0.936863 0.899412 0.667255 0.936863 0.899412 0.667255 0.936863 0.899412 0.667255 0.936863 0.899412 0.667255 0.936863 0.899412 0.667255 0.936863 0.899412 0.667255 0.936863 0.899412 0.667255 0.936863 0.899412 0.667255 0.936863 0.899412 0.667255 0.936863 0.899412 0.667255 0.936863 0.899412 0.667255 0.936863 0.899412 0.667255 0.936863 0.899412 0.667255 0.936863 0.899412 0.667255 0.936863 0.899412 0.667255 0.936863 0.899412 0.667255 0.936863 0.899412 0.667255 0.936863 0.899412 0.667255 0.936863 0.899412 0.667255 0.936863 0.899412 0.667255 0.936863 0.899412 0.667255 0.936863 0.899412 0.667255 0.936863 0.899412 0.667255 0.936863 0.899412 0.667255 0.936863 0.899412 0.667255 0.936863 0.899412 0.667255 0.936863 0.899412 0.667255 0.936863 0.899412 0.667255 0.936863 0.899412 0.667255 0.936863 0.899412 0.667255 0.936863 0.899412 0.667255 0.936863 0.899412 0.667255 0.936863 0.899412 0.667255 0.936863 0.899412 0.667255 0.936863 0.899412 0.667255 0.697647 0.487647 0.377059 0.697647 0.487647 0.377059 0.697647 0.487647 0.377059 0.697647 0.487647 0.377059 0.697647 0.487647 0.377059 0.697647 0.487647 0.377059 0.697647 0.487647 0.377059 0.697647 0.487647 0.377059 0.697647 0.487647 0.377059 0.697647 0.487647 0.377059 0.697647 0.487647 0.377059 0.697647 0.487647 0.377059 0.697647 0.487647 0.377059 0.697647 0.487647 0.377059 0.697647 0.487647 0.377059 0.697647 0.487647 0.377059 0.697647 0.487647 0.377059 0.697647 0.487647 0.377059 0.697647 0.487647 0.377059 0.697647 0.487647 0.377059 0.697647 0.487647 0.377059 0.697647 0.487647 0.377059 0.697647 0.487647 0.377059 0.697647 0.487647 0.377059 0.697647 0.487647 0.377059 0.697647 0.487647 0.377059 0.697647 0.487647 0.377059 0.697647 0.487647 0.377059 0.697647 0.487647 0.377059 0.697647 0.487647 0.377059 0.697647 0.487647 0.377059 0.697647 0.487647 0.377059 0.697647 0.487647 0.377059 0.697647 0.487647 0.377059 0.697647 0.487647 0.377059 0.697647 0.487647 0.377059 0.697647 0.487647 0.377059 0.697647 0.487647 0.377059 0.697647 0.487647 0.377059 0.697647 0.487647 0.377059 0.697647 0.487647 0.377059 0.697647 0.487647 0.377059 0.697647 0.487647 0.377059 0.697647 0.487647 0.377059 0.697647 0.487647 0.377059 0.697647 0.487647 0.377059 0.697647 0.487647 0.377059 0.697647 0.487647 0.377059 0.697647 0.487647 0.377059 0.697647 0.487647 0.377059 0.697647 0.487647 0.377059 0.936863 0.899412 0.667255 0.936863 0.899412 0.667255 0.936863 0.899412 0.667255 0.936863 0.899412 0.667255 0.936863 0.899412 0.667255 0.936863 0.899412 0.667255 0.936863 0.899412 0.667255 0.936863 0.899412 0.667255 0.936863 0.899412 0.667255 0.936863 0.899412 0.667255 0.936863 0.899412 0.667255 0.936863 0.899412 0.667255 0.936863 0.899412 0.667255 0.936863 0.899412 0.667255 0.936863 0.899412 0.667255 0.936863 0.899412 0.667255 0.936863 0.899412 0.667255 0.936863 0.899412 0.667255 0.936863 0.899412 0.667255 0.936863 0.899412 0.667255 0.936863 0.899412 0.667255 0.936863 0.899412 0.667255 0.936863 0.899412 0.667255 0.936863 0.899412 0.667255 0.936863 0.899412 0.667255 0.936863 0.899412 0.667255 0.936863 0.899412 0.667255 0.936863 0.899412 0.667255 0.936863 0.899412 0.667255 0.936863 0.899412 0.667255 0.936863 0.899412 0.667255 0.936863 0.899412 0.667255 0.936863 0.899412 0.667255 0.936863 0.899412 0.667255 0.936863 0.899412 0.667255 0.936863 0.899412 0.667255 0.936863 0.899412 0.667255 0.936863 0.899412 0.667255 0.936863 0.899412 0.667255 0.936863 0.899412 0.667255 0.936863 0.899412 0.667255 0.936863 0.899412 0.667255 0.936863 0.899412 0.667255 0.936863 0.899412 0.667255 0.936863 0.899412 0.667255 0.936863 0.899412 0.667255 0.936863 0.899412 0.667255 0.936863 0.899412 0.667255 0.936863 0.899412 0.667255 0.936863 0.899412 0.667255 0.936863 0.899412 0.667255 0.936863 0.899412 0.667255 0.936863 0.899412 0.667255 0.936863 0.899412 0.667255 0.936863 0.899412 0.667255 0.936863 0.899412 0.667255 0.936863 0.899412 0.667255 0.697647 0.487647 0.377059 0.697647 0.487647 0.377059 0.697647 0.487647 0.377059 0.697647 0.487647 0.377059 0.697647 0.487647 0.377059 0.697647 0.487647 0.377059 0.697647 0.487647 0.377059 0.697647 0.487647 0.377059 0.697647 0.487647 0.377059 0.697647 0.487647 0.377059 0.697647 0.487647 0.377059 0.697647 0.487647 0.377059 0.697647 0.487647 0.377059 0.697647 0.487647 0.377059 0.697647 0.487647 0.377059 0.697647 0.487647 0.377059 0.697647 0.487647 0.377059 0.697647 0.487647 0.377059 0.697647 0.487647 0.377059 0.697647 0.487647 0.377059 0.697647 0.487647 0.377059 0.697647 0.487647 0.377059 0.697647 0.487647 0.377059 0.697647 0.487647 0.377059 0.697647 0.487647 0.377059 0.697647 0.487647 0.377059 0.697647 0.487647 0.377059 0.697647 0.487647 0.377059 0.697647 0.487647 0.377059 0.697647 0.487647 0.377059 0.697647 0.487647 0.377059 0.697647 0.487647 0.377059 0.697647 0.487647 0.377059 0.697647 0.487647 0.377059 0.697647 0.487647 0.377059 0.697647 0.487647 0.377059 0.697647 0.487647 0.377059 0.697647 0.487647 0.377059 0.697647 0.487647 0.377059 0.697647 0.487647 0.377059 0.697647 0.487647 0.377059 0.697647 0.487647 0.377059 0.697647 0.487647 0.377059 0.697647 0.487647 0.377059 0.697647 0.487647 0.377059 0.697647 0.487647 0.377059 0.697647 0.487647 0.377059 0.697647 0.487647 0.377059 0.697647 0.487647 0.377059 0.697647 0.487647 0.377059 0.697647 0.487647 0.377059 0.936863 0.899412 0.667255 0.936863 0.899412 0.667255 0.936863 0.899412 0.667255 0.697647 0.487647 0.377059 0.697647 0.487647 0.377059'/>
|
|
70
|
+
</IndexedFaceSet>
|
|
71
|
+
</Shape>
|
|
72
|
+
|
|
73
|
+
<Shape>
|
|
74
|
+
<IndexedFaceSet coordIndex='0, 1, 2, 3' solid='false' texCoordIndex='0, 1, 2, 3'>
|
|
75
|
+
<TextureCoordinate point='0.0 0.0 1.0 0.0 1.0 1.0 0.0 1.0'/>
|
|
76
|
+
<Coordinate point='-1.5 0.0 0.0 1.5 0.0 0.0 1.5 3.0 0.0 -1.5 3.0 0.0'/>
|
|
77
|
+
</IndexedFaceSet>
|
|
78
|
+
</Shape>
|
|
79
|
+
|
|
80
|
+
</Group>
|
|
81
|
+
</Scene>
|
|
82
|
+
</X3D>
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
+
<!DOCTYPE X3D PUBLIC "ISO//Web3D//DTD X3D 3.0//EN" "http://www.web3d.org/specifications/x3d-3.0.dtd">
|
|
3
|
+
<X3D profile='Interchange' version='3.0' xmlns:xsd='http://www.w3.org/2001/XMLSchema-instance'>
|
|
4
|
+
<head>
|
|
5
|
+
<component level='2' name='TriangleSets'/>
|
|
6
|
+
<unit category='length' conversionFactor='0.001' name='millimeters'/>
|
|
7
|
+
<meta content='TriangleSets.x3d' name='title'/>
|
|
8
|
+
</head>
|
|
9
|
+
<!-- ==================== -->
|
|
10
|
+
<Scene>
|
|
11
|
+
<!-- Default Shapes -->
|
|
12
|
+
<Group>
|
|
13
|
+
<Shape>
|
|
14
|
+
<TriangleFanSet/>
|
|
15
|
+
</Shape>
|
|
16
|
+
<Shape>
|
|
17
|
+
<TriangleSet/>
|
|
18
|
+
</Shape>
|
|
19
|
+
<Shape>
|
|
20
|
+
<TriangleStripSet/>
|
|
21
|
+
</Shape>
|
|
22
|
+
</Group>
|
|
23
|
+
<Group>
|
|
24
|
+
<Shape containerField='shape'>
|
|
25
|
+
<Appearance>
|
|
26
|
+
<Material emissiveColor='0.0 1.0 0.0'/>
|
|
27
|
+
</Appearance>
|
|
28
|
+
<TriangleSet ccw='true' colorPerVertex='true' normalPerVertex='true' solid='true'>
|
|
29
|
+
<Coordinate point='-10.0 0.0 10.0, 10.0 0.0 10.0, 10.0 0.0 -10.0, -10.0 0.0 10.0, 10.0 0.0 -10.0, -10.0 0.0 -10.0'/>
|
|
30
|
+
</TriangleSet>
|
|
31
|
+
</Shape>
|
|
32
|
+
<Shape>
|
|
33
|
+
<TriangleFanSet ccw='true' colorPerVertex='false' fanCount='6 6' normalPerVertex='true' solid='false'>
|
|
34
|
+
<Coordinate point='0 0 0, -.5 -2 .5, -1.5 -2 1, -2.5 -1.5 0.5, -2.5 -.5 0, -2.5 1 .5, 0 0 0, -2.5 1 .5, .5 2 0, 1.5 1.5 .5, 2.5 .5 0, -.5 -2 .5'/>
|
|
35
|
+
<Color color='0.5 0.1 0.5, 0.8 0.3 0.8'/>
|
|
36
|
+
</TriangleFanSet>
|
|
37
|
+
</Shape>
|
|
38
|
+
<Shape>
|
|
39
|
+
<TriangleStripSet ccw='true' colorPerVertex='true' normalPerVertex='true' solid='false' stripCount='13'>
|
|
40
|
+
<Coordinate point='-4.0 -1.0 -.5, -4.5 -2.0 -.5, -3.0 -.5 0, -2.5 -1.5 -.5, -2.0 -.5 -1, -1.5 -1.5 -.5, -.5 .5 -.5, 0 0 0, 1 .5 -.5, 1.5 -2.0 -1, 2.5 -2.0 -.5, 2.5 -2.5 -.5, 3.5 -2.0 -1.0,'/>
|
|
41
|
+
</TriangleStripSet>
|
|
42
|
+
<Appearance>
|
|
43
|
+
<Material diffuseColor='0.5 0.5 0.5'/>
|
|
44
|
+
</Appearance>
|
|
45
|
+
</Shape>
|
|
46
|
+
<Shape>
|
|
47
|
+
<QuadSet ccw='true' colorPerVertex='true' normalPerVertex='true' solid='false'>
|
|
48
|
+
<Coordinate point='-6 -2 0, -1 -2 0, -1 2 0, -6 2 0, 1 -2 0, 6 -2 0, 6 2 0, 1 2 0'/>
|
|
49
|
+
<Color color='0.2 0.2 0.2, 1 0.058824 0.227451, 0.4 1 0.121569, 0 0.007843 0.960784, 0.6 0.235294 0, 0.94902 1 0.380392, 0.239216 1 0.886275, 1 0.121569 0.964706'/>
|
|
50
|
+
</QuadSet>
|
|
51
|
+
</Shape>
|
|
52
|
+
</Group>
|
|
53
|
+
</Scene>
|
|
54
|
+
</X3D>
|
|
@@ -92,6 +92,19 @@ test('deserialize X3D 3D triangle sets to JSCAD geometry', (t) => {
|
|
|
92
92
|
t.true(geometries.geom3.isA(observed[3]))
|
|
93
93
|
})
|
|
94
94
|
|
|
95
|
+
test('deserialize X3D 3D triangle sets with comma delimiters to JSCAD geometry', (t) => {
|
|
96
|
+
const inputPath = path.resolve(samplesPath, 'tests/TriangleSets_CommaMF.x3d')
|
|
97
|
+
const inputFile = fs.readFileSync(inputPath)
|
|
98
|
+
|
|
99
|
+
const observed = deserializer.deserialize({ output: 'geometry', addMetaData: false }, inputFile)
|
|
100
|
+
t.true(Array.isArray(observed))
|
|
101
|
+
t.is(observed.length, 4)
|
|
102
|
+
t.true(geometries.geom3.isA(observed[0]))
|
|
103
|
+
t.true(geometries.geom3.isA(observed[1]))
|
|
104
|
+
t.true(geometries.geom3.isA(observed[2]))
|
|
105
|
+
t.true(geometries.geom3.isA(observed[3]))
|
|
106
|
+
})
|
|
107
|
+
|
|
95
108
|
test('deserialize X3D 3D transforms to JSCAD geometry', (t) => {
|
|
96
109
|
const inputPath = path.resolve(samplesPath, 'tests/Transforms.x3d')
|
|
97
110
|
const inputFile = fs.readFileSync(inputPath)
|
|
@@ -120,6 +133,21 @@ test('deserialize X3D 3D indexed triangle sets to JSCAD geometry', (t) => {
|
|
|
120
133
|
t.true(geometries.geom3.isA(observed[5]))
|
|
121
134
|
})
|
|
122
135
|
|
|
136
|
+
test('deserialize X3D 3D indexed triangle sets with comma delimiters to JSCAD geometry', (t) => {
|
|
137
|
+
const inputPath = path.resolve(samplesPath, 'tests/IndexedTriangleSets_CommaMF.x3d')
|
|
138
|
+
const inputFile = fs.readFileSync(inputPath)
|
|
139
|
+
|
|
140
|
+
const observed = deserializer.deserialize({ output: 'geometry', addMetaData: false }, inputFile)
|
|
141
|
+
t.true(Array.isArray(observed))
|
|
142
|
+
t.is(observed.length, 6)
|
|
143
|
+
t.true(geometries.geom3.isA(observed[0]))
|
|
144
|
+
t.true(geometries.geom3.isA(observed[1]))
|
|
145
|
+
t.true(geometries.geom3.isA(observed[2]))
|
|
146
|
+
t.true(geometries.geom3.isA(observed[3]))
|
|
147
|
+
t.true(geometries.geom3.isA(observed[4]))
|
|
148
|
+
t.true(geometries.geom3.isA(observed[5]))
|
|
149
|
+
})
|
|
150
|
+
|
|
123
151
|
test('deserialize X3D 3D groups to JSCAD geometry', (t) => {
|
|
124
152
|
const inputPath = path.resolve(samplesPath, 'tests/Groups.x3d')
|
|
125
153
|
const inputFile = fs.readFileSync(inputPath)
|
package/tests/translate.test.js
CHANGED
|
@@ -81,6 +81,19 @@ test('deserialize X3D 3D triangle sets to JSCAD script', (t) => {
|
|
|
81
81
|
t.is(countOf('applyTransform', observed), 1)
|
|
82
82
|
})
|
|
83
83
|
|
|
84
|
+
test('deserialize X3D 3D triangle sets with comma delimiters to JSCAD script', (t) => {
|
|
85
|
+
const inputPath = path.resolve(samplesPath, 'tests/TriangleSets_CommaMF.x3d')
|
|
86
|
+
const inputFile = fs.readFileSync(inputPath)
|
|
87
|
+
|
|
88
|
+
const observed = deserializer.deserialize({ output: 'script', addMetaData: false }, inputFile)
|
|
89
|
+
t.is(countOf('createObjects', observed), 18)
|
|
90
|
+
t.is(countOf('points', observed), 12)
|
|
91
|
+
t.is(countOf('faces', observed), 12)
|
|
92
|
+
t.is(countOf('orientation', observed), 8)
|
|
93
|
+
t.is(countOf('primitives.polyhedron', observed), 4)
|
|
94
|
+
t.is(countOf('applyTransform', observed), 1)
|
|
95
|
+
})
|
|
96
|
+
|
|
84
97
|
test('deserialize X3D 3D transforms to JSCAD script', (t) => {
|
|
85
98
|
const inputPath = path.resolve(samplesPath, 'tests/Transforms.x3d')
|
|
86
99
|
const inputFile = fs.readFileSync(inputPath)
|
|
@@ -104,6 +117,19 @@ test('deserialize X3D 3D indexed triangle sets to JSCAD script', (t) => {
|
|
|
104
117
|
t.is(countOf('applyTransform', observed), 1)
|
|
105
118
|
})
|
|
106
119
|
|
|
120
|
+
test('deserialize X3D 3D indexed triangle sets with comma delimiters to JSCAD script', (t) => {
|
|
121
|
+
const inputPath = path.resolve(samplesPath, 'tests/IndexedTriangleSets_CommaMF.x3d')
|
|
122
|
+
const inputFile = fs.readFileSync(inputPath)
|
|
123
|
+
|
|
124
|
+
const observed = deserializer.deserialize({ output: 'script', addMetaData: false }, inputFile)
|
|
125
|
+
t.is(countOf('createObjects', observed), 24)
|
|
126
|
+
t.is(countOf('points', observed), 18)
|
|
127
|
+
t.is(countOf('faces', observed), 20)
|
|
128
|
+
t.is(countOf('orientation', observed), 12)
|
|
129
|
+
t.is(countOf('primitives.polyhedron', observed), 6)
|
|
130
|
+
t.is(countOf('applyTransform', observed), 1)
|
|
131
|
+
})
|
|
132
|
+
|
|
107
133
|
test('deserialize X3D 3D groups to JSCAD script', (t) => {
|
|
108
134
|
const inputPath = path.resolve(samplesPath, 'tests/Groups.x3d')
|
|
109
135
|
const inputFile = fs.readFileSync(inputPath)
|