x_ite 8.3.1 → 8.3.3
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/.github/workflows/pages-deploy.yml +1 -1
- package/.vscode/settings.json +2 -1
- package/build/bin/tests.pl +2 -0
- package/dist/LICENSE.md +4 -4
- package/dist/assets/components/Annotation.js +13 -13
- package/dist/assets/components/Annotation.min.js +1 -1
- package/dist/assets/components/CADGeometry.js +13 -13
- package/dist/assets/components/CADGeometry.min.js +1 -1
- package/dist/assets/components/CubeMapTexturing.js +25 -25
- package/dist/assets/components/CubeMapTexturing.min.js +1 -1
- package/dist/assets/components/DIS.js +13 -13
- package/dist/assets/components/DIS.min.js +1 -1
- package/dist/assets/components/EventUtilities.js +9 -9
- package/dist/assets/components/EventUtilities.min.js +1 -1
- package/dist/assets/components/Geometry2D.js +19 -19
- package/dist/assets/components/Geometry2D.min.js +1 -1
- package/dist/assets/components/Geospatial.js +33 -33
- package/dist/assets/components/Geospatial.min.js +1 -1
- package/dist/assets/components/HAnim.js +61 -74
- package/dist/assets/components/HAnim.min.js +1 -1
- package/dist/assets/components/KeyDeviceSensor.js +8 -8
- package/dist/assets/components/KeyDeviceSensor.min.js +1 -1
- package/dist/assets/components/Layout.js +27 -27
- package/dist/assets/components/Layout.min.js +1 -1
- package/dist/assets/components/NURBS.js +24 -24
- package/dist/assets/components/NURBS.min.js +1 -1
- package/dist/assets/components/ParticleSystems.js +23 -23
- package/dist/assets/components/ParticleSystems.min.js +1 -1
- package/dist/assets/components/Picking.js +19 -19
- package/dist/assets/components/Picking.min.js +1 -1
- package/dist/assets/components/RigidBodyPhysics.js +17 -17
- package/dist/assets/components/RigidBodyPhysics.min.js +1 -1
- package/dist/assets/components/Scripting.js +28 -28
- package/dist/assets/components/Scripting.min.js +1 -1
- package/dist/assets/components/Text.js +24 -24
- package/dist/assets/components/Text.min.js +1 -1
- package/dist/assets/components/{ProjectiveTextureMapping.js → TextureProjector.js} +39 -39
- package/dist/assets/components/TextureProjector.min.js +1 -0
- package/dist/assets/components/Texturing3D.js +46 -46
- package/dist/assets/components/Texturing3D.min.js +1 -1
- package/dist/assets/components/VolumeRendering.js +19 -19
- package/dist/assets/components/VolumeRendering.min.js +1 -1
- package/dist/assets/components/X_ITE.js +9 -9
- package/dist/assets/components/X_ITE.min.js +1 -1
- package/dist/x_ite.css +1 -1
- package/dist/x_ite.js +1904 -1570
- package/dist/x_ite.min.js +1 -1
- package/dist/x_ite.zip +0 -0
- package/docs/Gemfile +1 -4
- package/docs/_config.yml +3 -2
- package/docs/_posts/custom-shaders.md +1 -1
- package/docs/_posts/dom-integration.md +52 -25
- package/docs/_posts/getting-started.md +148 -442
- package/docs/_posts/reference/field-services-and-objects.md +2 -34
- package/docs/_posts/reference/scene-services.md +13 -2
- package/docs/_posts/tutorials/basic-nodes.md +2 -2
- package/docs/_posts/tutorials/building-a-x3d-world.md +20 -4
- package/docs/_posts/tutorials/building-primitive-shapes.md +4 -4
- package/docs/_posts/tutorials/creating-new-node-types.md +22 -0
- package/docs/_posts/tutorials/hello-world.md +6 -6
- package/docs/_posts/tutorials/improving-performance.md +2 -2
- package/docs/_posts/tutorials/writing-program-scripts-with-ecmascript.md +2 -2
- package/docs/_posts/what's-new.md +21 -3
- package/docs/_tabs/playground.html +110 -57
- package/docs/assets/css/style.scss +25 -1
- package/package.json +2 -2
- package/src/assets/components/{ProjectiveTextureMapping.js → TextureProjector.js} +5 -5
- package/src/examples.js +1 -1
- package/src/tests.js +5 -5
- package/src/x_ite/Base/X3DArrayField.js +3 -0
- package/src/x_ite/Base/X3DBaseNode.js +4 -0
- package/src/x_ite/Base/X3DInfoArray.js +28 -24
- package/src/x_ite/Base/X3DObject.js +29 -20
- package/src/x_ite/Base/X3DObjectArrayField.js +27 -26
- package/src/x_ite/Base/X3DTypedArrayField.js +34 -32
- package/src/x_ite/Browser/Core/ContextMenu.js +5 -7
- package/src/x_ite/Browser/DOMIntegration.js +62 -54
- package/src/x_ite/Browser/VERSION.js +1 -1
- package/src/x_ite/Browser/X3DBrowser.js +44 -29
- package/src/x_ite/Browser/X3DBrowserContext.js +3 -0
- package/src/x_ite/Components/Core/X3DNode.js +196 -187
- package/src/x_ite/Components/Core/X3DPrototypeInstance.js +114 -91
- package/src/x_ite/Components/Grouping/X3DTransformMatrix3DNode.js +18 -43
- package/src/x_ite/Components/HAnim/HAnimHumanoid.js +24 -25
- package/src/x_ite/Components/HAnim/HAnimJoint.js +19 -31
- package/src/x_ite/Components/Networking/Inline.js +21 -2
- package/src/x_ite/Components/Sound/X3DSoundProcessingNode.js +14 -1
- package/src/x_ite/Components/Sound/X3DSoundSourceNode.js +0 -1
- package/src/x_ite/Components/{ProjectiveTextureMapping → TextureProjector}/TextureProjector.js +1 -1
- package/src/x_ite/Components/{ProjectiveTextureMapping → TextureProjector}/TextureProjectorParallel.js +1 -1
- package/src/x_ite/Components/{ProjectiveTextureMapping → TextureProjector}/X3DTextureProjectorNode.js +0 -0
- package/src/x_ite/Components/Time/TimeSensor.js +5 -0
- package/src/x_ite/Components/Time/X3DTimeDependentNode.js +1 -0
- package/src/x_ite/Configuration/ComponentInfo.js +20 -23
- package/src/x_ite/Configuration/ProfileInfo.js +6 -6
- package/src/x_ite/Configuration/SupportedComponents.js +22 -20
- package/src/x_ite/Configuration/SupportedNodes.js +1 -5
- package/src/x_ite/Configuration/SupportedProfiles.js +1 -1
- package/src/x_ite/Configuration/UnitInfo.js +24 -27
- package/src/x_ite/Execution/X3DExecutionContext.js +28 -59
- package/src/x_ite/Execution/X3DExportedNode.js +23 -28
- package/src/x_ite/Execution/X3DImportedNode.js +63 -67
- package/src/x_ite/Execution/X3DScene.js +98 -117
- package/src/x_ite/Fields/ArrayFields.js +57 -55
- package/src/x_ite/Fields/SFBool.js +6 -6
- package/src/x_ite/Fields/SFColor.js +10 -12
- package/src/x_ite/Fields/SFDouble.js +7 -10
- package/src/x_ite/Fields/SFFloat.js +7 -10
- package/src/x_ite/Fields/SFImage.js +33 -8
- package/src/x_ite/Fields/SFInt32.js +6 -6
- package/src/x_ite/Fields/SFMatrixPrototypeTemplate.js +13 -13
- package/src/x_ite/Fields/SFNode.js +42 -19
- package/src/x_ite/Fields/SFRotation.js +13 -13
- package/src/x_ite/Fields/SFString.js +6 -7
- package/src/x_ite/Fields/SFTime.js +6 -6
- package/src/x_ite/Fields/SFVecPrototypeTemplate.js +10 -10
- package/src/x_ite/InputOutput/FileLoader.js +1 -1
- package/src/x_ite/InputOutput/Generator.js +117 -17
- package/src/x_ite/Parser/VRMLParser.js +24 -27
- package/src/x_ite/Parser/X3DParser.js +0 -4
- package/src/x_ite/Parser/XMLParser.js +152 -50
- package/src/x_ite/Prototype/X3DExternProtoDeclaration.js +59 -64
- package/src/x_ite/Prototype/X3DProtoDeclaration.js +86 -93
- package/src/x_ite/Rendering/X3DRenderObject.js +6 -1
- package/src/x_ite/Routing/X3DRoute.js +37 -40
- package/src/x_ite.html +3 -3
- package/webpack.config.js +2 -2
- package/x_ite.min.html +1 -1
- package/dist/assets/components/ProjectiveTextureMapping.min.js +0 -1
- package/docs/Gemfile.lock +0 -116
|
@@ -12,12 +12,14 @@ $tab-count: {{ site.tabs | size | plus: 1 }}; // plus 1 for home tab
|
|
|
12
12
|
html {
|
|
13
13
|
--nav-border-color: rgba(158,158,158,0.17);
|
|
14
14
|
--nav-active-page: rgb(168, 182, 206);
|
|
15
|
+
--h2-color: #e4e45d;
|
|
15
16
|
--h4-color: rgb(175, 206, 255);
|
|
16
17
|
--example-background-color: rgba(27,27,30,0.4);
|
|
17
18
|
--button-background-color: black;
|
|
18
19
|
}
|
|
19
20
|
|
|
20
21
|
html[data-mode=light] {
|
|
22
|
+
--h2-color: #cbca00;
|
|
21
23
|
--button-background-color: white;
|
|
22
24
|
}
|
|
23
25
|
|
|
@@ -69,7 +71,7 @@ a {
|
|
|
69
71
|
}
|
|
70
72
|
|
|
71
73
|
.post h2 {
|
|
72
|
-
color:
|
|
74
|
+
color: var(--h2-color);
|
|
73
75
|
}
|
|
74
76
|
|
|
75
77
|
.post h3 {
|
|
@@ -84,6 +86,10 @@ a {
|
|
|
84
86
|
color: var(--h4-color);
|
|
85
87
|
}
|
|
86
88
|
|
|
89
|
+
.post h5 {
|
|
90
|
+
font-weight: bold;
|
|
91
|
+
}
|
|
92
|
+
|
|
87
93
|
.table-wrapper > table tbody tr td,
|
|
88
94
|
.table-wrapper > table thead th {
|
|
89
95
|
white-space: initial;
|
|
@@ -100,6 +106,24 @@ a {
|
|
|
100
106
|
font-size: 0;
|
|
101
107
|
}
|
|
102
108
|
|
|
109
|
+
.table-wrapper > table.examples a.popup {
|
|
110
|
+
margin: 0;
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
.table-wrapper > table.examples a:hover::before {
|
|
114
|
+
content: "";
|
|
115
|
+
position: absolute;
|
|
116
|
+
background: var(--shimmer-bg);
|
|
117
|
+
height: 100%;
|
|
118
|
+
width: 100%;
|
|
119
|
+
-webkit-animation: shimmer 1s infinite;
|
|
120
|
+
animation: shimmer 1s infinite;
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
.table-wrapper > table.examples .shimmer::before {
|
|
124
|
+
all: unset;
|
|
125
|
+
}
|
|
126
|
+
|
|
103
127
|
@media all and (max-width: 849px) {
|
|
104
128
|
.table-wrapper > table.examples tbody tr td {
|
|
105
129
|
border-width: 2px;
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "x_ite",
|
|
3
|
-
"version": "8.3.
|
|
4
|
-
"description": "X_ITE X3D Browser,
|
|
3
|
+
"version": "8.3.3",
|
|
4
|
+
"description": "X_ITE X3D Browser, view and manipulate X3D and VRML scenes in HTML.",
|
|
5
5
|
"homepage": "https://create3000.github.io/x_ite/",
|
|
6
6
|
"author": "Holger Seelig <holger.seelig@gmail.com>",
|
|
7
7
|
"license": "GPL-3.0",
|
|
@@ -46,15 +46,15 @@
|
|
|
46
46
|
******************************************************************************/
|
|
47
47
|
|
|
48
48
|
import Components from "../../x_ite/Components.js";
|
|
49
|
-
import TextureProjector from "../../x_ite/Components/
|
|
50
|
-
import TextureProjectorParallel from "../../x_ite/Components/
|
|
51
|
-
import X3DTextureProjectorNode from "../../x_ite/Components/
|
|
49
|
+
import TextureProjector from "../../x_ite/Components/TextureProjector/TextureProjector.js";
|
|
50
|
+
import TextureProjectorParallel from "../../x_ite/Components/TextureProjector/TextureProjectorParallel.js";
|
|
51
|
+
import X3DTextureProjectorNode from "../../x_ite/Components/TextureProjector/X3DTextureProjectorNode.js";
|
|
52
52
|
|
|
53
53
|
Components .addComponent ({
|
|
54
|
-
name: "
|
|
54
|
+
name: "TextureProjector",
|
|
55
55
|
types:
|
|
56
56
|
{
|
|
57
|
-
TextureProjector:
|
|
57
|
+
TextureProjector: TextureProjector,
|
|
58
58
|
TextureProjectorParallel: TextureProjectorParallel,
|
|
59
59
|
},
|
|
60
60
|
abstractTypes:
|
package/src/examples.js
CHANGED
|
@@ -78,7 +78,6 @@ const X_ITE_EXAMPLES = [
|
|
|
78
78
|
{ component: "Picking", test: "PrimitivePickSensor" },
|
|
79
79
|
{ component: "PointingDeviceSensor", test: "CylinderSensor" },
|
|
80
80
|
{ component: "PointingDeviceSensor", test: "PlaneSensor" },
|
|
81
|
-
{ component: "ProjectiveTextureMapping", test: "TextureProjector" },
|
|
82
81
|
{ component: "Rendering", test: "ClipPlane" },
|
|
83
82
|
{ component: "Rendering", test: "Color" },
|
|
84
83
|
{ component: "Rendering", test: "ColorRGBA" },
|
|
@@ -106,6 +105,7 @@ const X_ITE_EXAMPLES = [
|
|
|
106
105
|
{ component: "Sound", test: "AudioClip" },
|
|
107
106
|
{ component: "Text", test: "FontStyle" },
|
|
108
107
|
{ component: "Text", test: "Text" },
|
|
108
|
+
{ component: "TextureProjector", test: "TextureProjector" },
|
|
109
109
|
{ component: "Texturing", test: "ImageTexture" },
|
|
110
110
|
{ component: "Texturing", test: "MovieTexture" },
|
|
111
111
|
{ component: "Texturing", test: "MultiTexture" },
|
package/src/tests.js
CHANGED
|
@@ -215,11 +215,6 @@ const X_ITE_TESTS = [
|
|
|
215
215
|
{ path: "PointingDeviceSensor/TouchBeethoven.x3dz" },
|
|
216
216
|
{ path: "PointingDeviceSensor/TouchLines.x3dv" },
|
|
217
217
|
{ path: "PointingDeviceSensor/TouchPoints.x3dv" },
|
|
218
|
-
{ component: "ProjectiveTextureMapping" },
|
|
219
|
-
{ path: "ProjectiveTextureMapping/apple.x3d" },
|
|
220
|
-
{ path: "ProjectiveTextureMapping/Local.x3d" },
|
|
221
|
-
{ path: "ProjectiveTextureMapping/Parallel.x3d" },
|
|
222
|
-
{ path: "ProjectiveTextureMapping/Perspective.x3d" },
|
|
223
218
|
{ component: "PROTO" },
|
|
224
219
|
{ path: "PROTO/27cubes.x3d" },
|
|
225
220
|
{ path: "PROTO/cbx.wrl" },
|
|
@@ -326,6 +321,11 @@ const X_ITE_TESTS = [
|
|
|
326
321
|
{ path: "Text/scrolling-text.x3d" },
|
|
327
322
|
{ path: "Text/test.x3d" },
|
|
328
323
|
{ path: "Text/vertical.x3d" },
|
|
324
|
+
{ component: "TextureProjector" },
|
|
325
|
+
{ path: "TextureProjector/apple.x3d" },
|
|
326
|
+
{ path: "TextureProjector/Local.x3d" },
|
|
327
|
+
{ path: "TextureProjector/Parallel.x3d" },
|
|
328
|
+
{ path: "TextureProjector/Perspective.x3d" },
|
|
329
329
|
{ component: "Texturing" },
|
|
330
330
|
{ path: "Texturing/ColorManagement.x3d" },
|
|
331
331
|
{ path: "Texturing/ColorMaterial.x3d" },
|
|
@@ -57,6 +57,7 @@ X3DArrayField .prototype = Object .assign (Object .create (X3DField .prototype),
|
|
|
57
57
|
constructor: X3DArrayField,
|
|
58
58
|
at: Array .prototype .at,
|
|
59
59
|
concat: Array .prototype .concat,
|
|
60
|
+
//Array.prototype.copyWithin,
|
|
60
61
|
entries: Array .prototype .entries,
|
|
61
62
|
every: Array .prototype .every,
|
|
62
63
|
fill: Array .prototype .fill,
|
|
@@ -76,8 +77,10 @@ X3DArrayField .prototype = Object .assign (Object .create (X3DField .prototype),
|
|
|
76
77
|
map: Array .prototype .map,
|
|
77
78
|
reduce: Array .prototype .reduce,
|
|
78
79
|
reduceRight: Array .prototype .reduceRight,
|
|
80
|
+
//Array.prototype.reverse
|
|
79
81
|
slice: Array .prototype .slice,
|
|
80
82
|
some: Array .prototype .some,
|
|
83
|
+
//Array.prototype.sort
|
|
81
84
|
values: Array .prototype .values,
|
|
82
85
|
});
|
|
83
86
|
|
|
@@ -51,6 +51,7 @@ import FieldDefinitionArray from "./FieldDefinitionArray.js";
|
|
|
51
51
|
import FieldArray from "./FieldArray.js";
|
|
52
52
|
import Fields from "../Fields.js";
|
|
53
53
|
import X3DConstants from "./X3DConstants.js";
|
|
54
|
+
import HTMLSupport from "../Parser/HTMLSupport.js";
|
|
54
55
|
|
|
55
56
|
const
|
|
56
57
|
_executionContext = Symbol (),
|
|
@@ -390,6 +391,9 @@ X3DBaseNode .prototype = Object .assign (Object .create (X3DEventObject .prototy
|
|
|
390
391
|
enumerable: true,
|
|
391
392
|
configurable: false,
|
|
392
393
|
});
|
|
394
|
+
|
|
395
|
+
if (field .isInitializable ())
|
|
396
|
+
HTMLSupport .addFieldName (alias);
|
|
393
397
|
},
|
|
394
398
|
removeField: function (name)
|
|
395
399
|
{
|
|
@@ -45,7 +45,7 @@
|
|
|
45
45
|
*
|
|
46
46
|
******************************************************************************/
|
|
47
47
|
|
|
48
|
-
import
|
|
48
|
+
import Generator from "../InputOutput/Generator.js";
|
|
49
49
|
|
|
50
50
|
const
|
|
51
51
|
_array = Symbol (),
|
|
@@ -201,74 +201,78 @@ X3DInfoArray .prototype = {
|
|
|
201
201
|
},
|
|
202
202
|
at: Array .prototype .at,
|
|
203
203
|
concat: Array .prototype .concat,
|
|
204
|
-
|
|
204
|
+
entries: Array .prototype .entries,
|
|
205
205
|
every: Array .prototype .every,
|
|
206
206
|
fill: Array .prototype .fill,
|
|
207
207
|
filter: Array .prototype .filter,
|
|
208
208
|
find: Array .prototype .find,
|
|
209
209
|
findIndex: Array .prototype .findIndex,
|
|
210
|
+
findLast: Array .prototype .findLast,
|
|
211
|
+
findLastIndex: Array .prototype .findLastIndex,
|
|
212
|
+
flat: Array .prototype .flat,
|
|
213
|
+
flatMap: Array .prototype .flatMap,
|
|
210
214
|
forEach: Array .prototype .forEach,
|
|
211
215
|
includes: Array .prototype .includes,
|
|
212
216
|
indexOf: Array .prototype .indexOf,
|
|
213
217
|
join: Array .prototype .join,
|
|
214
|
-
keys:
|
|
218
|
+
keys: Array .prototype .keys,
|
|
215
219
|
lastIndexOf: Array .prototype .lastIndexOf,
|
|
216
220
|
map: Array .prototype .map,
|
|
217
221
|
reduce: Array .prototype .reduce,
|
|
218
222
|
reduceRight: Array .prototype .reduceRight,
|
|
219
223
|
slice: Array .prototype .slice,
|
|
220
224
|
some: Array .prototype .some,
|
|
221
|
-
values:
|
|
222
|
-
toString: function (
|
|
225
|
+
values: Array .prototype .values,
|
|
226
|
+
toString: function (options = Object .prototype)
|
|
223
227
|
{
|
|
224
|
-
const
|
|
228
|
+
const generator = new Generator (options);
|
|
225
229
|
|
|
226
|
-
if (scene)
|
|
227
|
-
|
|
230
|
+
if (options .scene)
|
|
231
|
+
generator .PushExecutionContext (options .scene);
|
|
228
232
|
|
|
229
|
-
this .toStream (
|
|
233
|
+
this .toStream (generator);
|
|
230
234
|
|
|
231
|
-
return
|
|
235
|
+
return generator .string;
|
|
232
236
|
},
|
|
233
|
-
|
|
237
|
+
toStream: function (generator)
|
|
238
|
+
{
|
|
239
|
+
generator .string = "[object " + this .getTypeName () + "]";
|
|
240
|
+
},
|
|
241
|
+
toVRMLStream: function (generator)
|
|
234
242
|
{
|
|
235
243
|
for (const value of this [_array])
|
|
236
244
|
{
|
|
237
245
|
try
|
|
238
246
|
{
|
|
239
|
-
value .toVRMLStream (
|
|
247
|
+
value .toVRMLStream (generator);
|
|
240
248
|
|
|
241
|
-
|
|
249
|
+
generator .string += generator .Break ();
|
|
242
250
|
|
|
243
|
-
if (
|
|
244
|
-
|
|
251
|
+
if (this .getTypeName () .match (/Proto/))
|
|
252
|
+
generator .string += generator .TidyBreak ();
|
|
245
253
|
}
|
|
246
254
|
catch (error)
|
|
247
255
|
{
|
|
248
|
-
console .error (error);
|
|
256
|
+
// console .error (error);
|
|
249
257
|
}
|
|
250
258
|
}
|
|
251
259
|
},
|
|
252
|
-
toXMLStream: function (
|
|
260
|
+
toXMLStream: function (generator)
|
|
253
261
|
{
|
|
254
262
|
for (const value of this [_array])
|
|
255
263
|
{
|
|
256
264
|
try
|
|
257
265
|
{
|
|
258
|
-
value .toXMLStream (
|
|
266
|
+
value .toXMLStream (generator);
|
|
259
267
|
|
|
260
|
-
|
|
268
|
+
generator .string += generator .TidyBreak ();
|
|
261
269
|
}
|
|
262
270
|
catch (error)
|
|
263
271
|
{
|
|
264
|
-
console .error (error);
|
|
272
|
+
// console .error (error);
|
|
265
273
|
}
|
|
266
274
|
}
|
|
267
275
|
},
|
|
268
|
-
toStream: function (stream)
|
|
269
|
-
{
|
|
270
|
-
stream .string = "[object " + this .getTypeName () + "]";
|
|
271
|
-
},
|
|
272
276
|
};
|
|
273
277
|
|
|
274
278
|
for (const key of Reflect .ownKeys (X3DInfoArray .prototype))
|
|
@@ -131,44 +131,53 @@ X3DObject .prototype =
|
|
|
131
131
|
interest ();
|
|
132
132
|
}
|
|
133
133
|
},
|
|
134
|
-
toString: function (
|
|
134
|
+
toString: function (options = Object .prototype)
|
|
135
135
|
{
|
|
136
|
-
const
|
|
136
|
+
const generator = new Generator (options);
|
|
137
137
|
|
|
138
|
-
if (scene)
|
|
139
|
-
|
|
138
|
+
if (options .scene)
|
|
139
|
+
generator .PushExecutionContext (options .scene);
|
|
140
140
|
|
|
141
|
-
this .toStream (
|
|
141
|
+
this .toStream (generator);
|
|
142
142
|
|
|
143
|
-
return
|
|
143
|
+
return generator .string;
|
|
144
144
|
},
|
|
145
|
-
toVRMLString: function
|
|
145
|
+
toVRMLString: function (options = Object .prototype)
|
|
146
146
|
{
|
|
147
|
-
const
|
|
147
|
+
const generator = new Generator (options);
|
|
148
148
|
|
|
149
|
-
|
|
149
|
+
if (options .scene)
|
|
150
|
+
generator .PushExecutionContext (options .scene);
|
|
150
151
|
|
|
151
|
-
|
|
152
|
+
this .toVRMLStream (generator);
|
|
153
|
+
|
|
154
|
+
return generator .string;
|
|
152
155
|
},
|
|
153
|
-
toXMLString: function
|
|
156
|
+
toXMLString: function (options = Object .prototype)
|
|
154
157
|
{
|
|
155
|
-
const
|
|
158
|
+
const generator = new Generator (options);
|
|
159
|
+
|
|
160
|
+
if (options .scene)
|
|
161
|
+
generator .PushExecutionContext (options .scene);
|
|
156
162
|
|
|
157
|
-
this .toXMLStream (
|
|
163
|
+
this .toXMLStream (generator);
|
|
158
164
|
|
|
159
|
-
return
|
|
165
|
+
return generator .string;
|
|
160
166
|
},
|
|
161
|
-
toJSONString: function ()
|
|
167
|
+
toJSONString: function (options = Object .prototype)
|
|
162
168
|
{
|
|
163
|
-
const
|
|
169
|
+
const generator = new Generator (options);
|
|
170
|
+
|
|
171
|
+
if (options .scene)
|
|
172
|
+
generator .PushExecutionContext (options .scene);
|
|
164
173
|
|
|
165
|
-
this .toVRMLStream (
|
|
174
|
+
this .toVRMLStream (generator); // TODO.
|
|
166
175
|
|
|
167
|
-
return
|
|
176
|
+
return generator .string;
|
|
168
177
|
},
|
|
169
|
-
toStream: function (
|
|
178
|
+
toStream: function (generator)
|
|
170
179
|
{
|
|
171
|
-
|
|
180
|
+
generator .string = "[object " + this .getTypeName () + "]";
|
|
172
181
|
},
|
|
173
182
|
dispose: function () { },
|
|
174
183
|
};
|
|
@@ -47,7 +47,6 @@
|
|
|
47
47
|
|
|
48
48
|
import X3DField from "./X3DField.js";
|
|
49
49
|
import X3DArrayField from "./X3DArrayField.js";
|
|
50
|
-
import Generator from "../InputOutput/Generator.js";
|
|
51
50
|
|
|
52
51
|
const
|
|
53
52
|
_target = Symbol (),
|
|
@@ -453,25 +452,26 @@ X3DObjectArrayField .prototype = Object .assign (Object .create (X3DArrayField .
|
|
|
453
452
|
{
|
|
454
453
|
value .removeParent (this [_proxy]);
|
|
455
454
|
},
|
|
456
|
-
toStream: function (
|
|
455
|
+
toStream: function (generator)
|
|
457
456
|
{
|
|
458
457
|
const
|
|
459
|
-
target
|
|
460
|
-
array
|
|
461
|
-
generator = Generator .Get (stream);
|
|
458
|
+
target = this [_target],
|
|
459
|
+
array = target .getValue ();
|
|
462
460
|
|
|
463
461
|
switch (array .length)
|
|
464
462
|
{
|
|
465
463
|
case 0:
|
|
466
464
|
{
|
|
467
|
-
|
|
465
|
+
generator .string += "[";
|
|
466
|
+
generator .string += generator .TidySpace ();
|
|
467
|
+
generator .string += "]";
|
|
468
468
|
break;
|
|
469
469
|
}
|
|
470
470
|
case 1:
|
|
471
471
|
{
|
|
472
472
|
generator .PushUnitCategory (target .getUnit ());
|
|
473
473
|
|
|
474
|
-
array [0] .toStream (
|
|
474
|
+
array [0] .toStream (generator);
|
|
475
475
|
|
|
476
476
|
generator .PopUnitCategory ();
|
|
477
477
|
break;
|
|
@@ -480,34 +480,36 @@ X3DObjectArrayField .prototype = Object .assign (Object .create (X3DArrayField .
|
|
|
480
480
|
{
|
|
481
481
|
generator .PushUnitCategory (target .getUnit ());
|
|
482
482
|
|
|
483
|
-
|
|
483
|
+
generator .string += "[";
|
|
484
|
+
generator .string += generator .ListStart ();
|
|
484
485
|
generator .IncIndent ();
|
|
485
486
|
|
|
486
487
|
for (let i = 0, length = array .length - 1; i < length; ++ i)
|
|
487
488
|
{
|
|
488
|
-
|
|
489
|
-
array [i] .toStream (
|
|
490
|
-
|
|
489
|
+
generator .string += generator .ListIndent ();
|
|
490
|
+
array [i] .toStream (generator);
|
|
491
|
+
generator .string += generator .Comma ();
|
|
492
|
+
generator .string += generator .ListBreak ();
|
|
491
493
|
}
|
|
492
494
|
|
|
493
|
-
|
|
494
|
-
array .at (-1) .toStream (
|
|
495
|
-
stream .string += "\n";
|
|
495
|
+
generator .string += generator .ListIndent ();
|
|
496
|
+
array .at (-1) .toStream (generator);
|
|
496
497
|
|
|
498
|
+
generator .string += generator .ListEnd ();
|
|
497
499
|
generator .DecIndent ();
|
|
498
|
-
|
|
499
|
-
|
|
500
|
+
generator .string += generator .ListIndent ();
|
|
501
|
+
generator .string += "]";
|
|
500
502
|
|
|
501
503
|
generator .PopUnitCategory ();
|
|
502
504
|
break;
|
|
503
505
|
}
|
|
504
506
|
}
|
|
505
507
|
},
|
|
506
|
-
toVRMLStream: function (
|
|
508
|
+
toVRMLStream: function (generator)
|
|
507
509
|
{
|
|
508
|
-
this .toStream (
|
|
510
|
+
this .toStream (generator);
|
|
509
511
|
},
|
|
510
|
-
toXMLStream: function (
|
|
512
|
+
toXMLStream: function (generator)
|
|
511
513
|
{
|
|
512
514
|
const
|
|
513
515
|
target = this [_target],
|
|
@@ -515,19 +517,18 @@ X3DObjectArrayField .prototype = Object .assign (Object .create (X3DArrayField .
|
|
|
515
517
|
|
|
516
518
|
if (length)
|
|
517
519
|
{
|
|
518
|
-
const
|
|
519
|
-
generator = Generator .Get (stream),
|
|
520
|
-
array = target .getValue ();
|
|
520
|
+
const array = target .getValue ();
|
|
521
521
|
|
|
522
522
|
generator .PushUnitCategory (target .getUnit ());
|
|
523
523
|
|
|
524
|
-
for (
|
|
524
|
+
for (let i = 0, length = array .length - 1; i < length; ++ i)
|
|
525
525
|
{
|
|
526
|
-
|
|
527
|
-
|
|
526
|
+
array [i] .toXMLStream (generator);
|
|
527
|
+
generator .string += generator .Comma ();
|
|
528
|
+
generator .string += generator .TidySpace ();
|
|
528
529
|
}
|
|
529
530
|
|
|
530
|
-
array .at (-1) .toXMLStream (
|
|
531
|
+
array .at (-1) .toXMLStream (generator);
|
|
531
532
|
|
|
532
533
|
generator .PopUnitCategory ();
|
|
533
534
|
}
|
|
@@ -46,7 +46,6 @@
|
|
|
46
46
|
******************************************************************************/
|
|
47
47
|
|
|
48
48
|
import X3DArrayField from "./X3DArrayField.js";
|
|
49
|
-
import Generator from "../InputOutput/Generator.js";
|
|
50
49
|
import Algorithm from "../../standard/Math/Algorithm.js";
|
|
51
50
|
|
|
52
51
|
const
|
|
@@ -688,11 +687,10 @@ X3DTypedArrayField .prototype = Object .assign (Object .create (X3DArrayField .p
|
|
|
688
687
|
|
|
689
688
|
return newArray;
|
|
690
689
|
},
|
|
691
|
-
toStream: function (
|
|
690
|
+
toStream: function (generator)
|
|
692
691
|
{
|
|
693
692
|
const
|
|
694
693
|
target = this [_target],
|
|
695
|
-
generator = Generator .Get (stream),
|
|
696
694
|
array = target .getValue (),
|
|
697
695
|
length = target [_length],
|
|
698
696
|
components = target .getComponents (),
|
|
@@ -702,7 +700,9 @@ X3DTypedArrayField .prototype = Object .assign (Object .create (X3DArrayField .p
|
|
|
702
700
|
{
|
|
703
701
|
case 0:
|
|
704
702
|
{
|
|
705
|
-
|
|
703
|
+
generator .string += "[";
|
|
704
|
+
generator .string += generator .TidySpace ();
|
|
705
|
+
generator .string += "]";
|
|
706
706
|
break;
|
|
707
707
|
}
|
|
708
708
|
case 1:
|
|
@@ -713,14 +713,14 @@ X3DTypedArrayField .prototype = Object .assign (Object .create (X3DArrayField .p
|
|
|
713
713
|
{
|
|
714
714
|
value .set (array [0]);
|
|
715
715
|
|
|
716
|
-
value .toStream (
|
|
716
|
+
value .toStream (generator);
|
|
717
717
|
}
|
|
718
718
|
else
|
|
719
719
|
{
|
|
720
720
|
for (let c = 0, first = 0; c < components; ++ c, ++ first)
|
|
721
721
|
value [c] = array [first];
|
|
722
722
|
|
|
723
|
-
value .toStream (
|
|
723
|
+
value .toStream (generator);
|
|
724
724
|
}
|
|
725
725
|
|
|
726
726
|
generator .PopUnitCategory ();
|
|
@@ -730,64 +730,65 @@ X3DTypedArrayField .prototype = Object .assign (Object .create (X3DArrayField .p
|
|
|
730
730
|
{
|
|
731
731
|
generator .PushUnitCategory (target .getUnit ());
|
|
732
732
|
|
|
733
|
-
|
|
733
|
+
generator .string += "[";
|
|
734
|
+
generator .string += generator .ListStart ();
|
|
734
735
|
generator .IncIndent ();
|
|
735
736
|
|
|
736
737
|
if (components === 1)
|
|
737
738
|
{
|
|
738
739
|
for (let i = 0, n = length - 1; i < n; ++ i)
|
|
739
740
|
{
|
|
740
|
-
|
|
741
|
+
generator .string += generator .ListIndent ();
|
|
741
742
|
|
|
742
743
|
value .set (array [i * components]);
|
|
743
|
-
value .toStream (
|
|
744
|
+
value .toStream (generator);
|
|
744
745
|
|
|
745
|
-
|
|
746
|
+
generator .string += generator .Comma ();
|
|
747
|
+
generator .string += generator .ListBreak ();
|
|
746
748
|
}
|
|
747
749
|
|
|
748
|
-
|
|
750
|
+
generator .string += generator .ListIndent ();
|
|
749
751
|
value .set (array [(length - 1) * components]);
|
|
750
|
-
value .toStream (
|
|
751
|
-
|
|
752
|
-
stream .string += "\n";
|
|
752
|
+
value .toStream (generator);
|
|
753
753
|
}
|
|
754
754
|
else
|
|
755
755
|
{
|
|
756
756
|
for (let i = 0, n = length - 1; i < n; ++ i)
|
|
757
757
|
{
|
|
758
|
-
|
|
758
|
+
generator .string += generator .ListIndent ();
|
|
759
759
|
|
|
760
760
|
for (let c = 0, first = i * components; c < components; ++ c, ++ first)
|
|
761
761
|
value [c] = array [first];
|
|
762
762
|
|
|
763
|
-
value .toStream (
|
|
763
|
+
value .toStream (generator);
|
|
764
764
|
|
|
765
|
-
|
|
765
|
+
generator .string += generator .Comma ();
|
|
766
|
+
generator .string += generator .ListBreak ();
|
|
766
767
|
}
|
|
767
768
|
|
|
768
|
-
|
|
769
|
+
generator .string += generator .ListIndent ();
|
|
769
770
|
|
|
770
771
|
for (let c = 0, first = (length - 1) * components; c < components; ++ c, ++ first)
|
|
771
772
|
value [c] = array [first];
|
|
772
773
|
|
|
773
|
-
value .toStream (
|
|
774
|
-
stream .string += "\n";
|
|
774
|
+
value .toStream (generator);
|
|
775
775
|
}
|
|
776
776
|
|
|
777
|
+
generator .string += generator .ListEnd ();
|
|
777
778
|
generator .DecIndent ();
|
|
778
|
-
|
|
779
|
-
|
|
779
|
+
generator .string += generator .ListIndent ();
|
|
780
|
+
generator .string += "]";
|
|
780
781
|
|
|
781
782
|
generator .PopUnitCategory ();
|
|
782
783
|
break;
|
|
783
784
|
}
|
|
784
785
|
}
|
|
785
786
|
},
|
|
786
|
-
toVRMLStream: function (
|
|
787
|
+
toVRMLStream: function (generator)
|
|
787
788
|
{
|
|
788
|
-
this .toStream (
|
|
789
|
+
this .toStream (generator);
|
|
789
790
|
},
|
|
790
|
-
toXMLStream: function (
|
|
791
|
+
toXMLStream: function (generator)
|
|
791
792
|
{
|
|
792
793
|
const
|
|
793
794
|
target = this [_target],
|
|
@@ -796,7 +797,6 @@ X3DTypedArrayField .prototype = Object .assign (Object .create (X3DArrayField .p
|
|
|
796
797
|
if (length)
|
|
797
798
|
{
|
|
798
799
|
const
|
|
799
|
-
generator = Generator .Get (stream),
|
|
800
800
|
array = target .getValue (),
|
|
801
801
|
components = target .getComponents (),
|
|
802
802
|
value = new (target .getSingleType ()) ();
|
|
@@ -808,14 +808,15 @@ X3DTypedArrayField .prototype = Object .assign (Object .create (X3DArrayField .p
|
|
|
808
808
|
for (let i = 0, n = length - 1; i < n; ++ i)
|
|
809
809
|
{
|
|
810
810
|
value .set (array [i * components]);
|
|
811
|
-
value .toXMLStream (
|
|
811
|
+
value .toXMLStream (generator);
|
|
812
812
|
|
|
813
|
-
|
|
813
|
+
generator .string += generator .Comma ();
|
|
814
|
+
generator .string += generator .TidySpace ();
|
|
814
815
|
}
|
|
815
816
|
|
|
816
817
|
value .set (array [(length - 1) * components]);
|
|
817
818
|
|
|
818
|
-
value .toXMLStream (
|
|
819
|
+
value .toXMLStream (generator);
|
|
819
820
|
}
|
|
820
821
|
else
|
|
821
822
|
{
|
|
@@ -824,15 +825,16 @@ X3DTypedArrayField .prototype = Object .assign (Object .create (X3DArrayField .p
|
|
|
824
825
|
for (let c = 0, first = i * components; c < components; ++ c, ++ first)
|
|
825
826
|
value [c] = array [first];
|
|
826
827
|
|
|
827
|
-
value .toXMLStream (
|
|
828
|
+
value .toXMLStream (generator);
|
|
828
829
|
|
|
829
|
-
|
|
830
|
+
generator .string += generator .Comma ();
|
|
831
|
+
generator .string += generator .TidySpace ();
|
|
830
832
|
}
|
|
831
833
|
|
|
832
834
|
for (let c = 0, first = (length - 1) * components; c < components; ++ c, ++ first)
|
|
833
835
|
value [c] = array [first];
|
|
834
836
|
|
|
835
|
-
value .toXMLStream (
|
|
837
|
+
value .toXMLStream (generator);
|
|
836
838
|
}
|
|
837
839
|
|
|
838
840
|
generator .PopUnitCategory ();
|