x_ite 8.3.2 → 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/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 +27 -27
- 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 +1492 -1291
- 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 -3
- package/docs/_posts/getting-started.md +147 -441
- package/docs/_posts/reference/scene-services.md +13 -2
- package/docs/_posts/what's-new.md +21 -3
- package/docs/_tabs/playground.html +36 -40
- package/docs/assets/css/style.scss +18 -0
- package/package.json +1 -1
- 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/X3DInfoArray.js +21 -21
- 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/DOMIntegration.js +4 -3
- package/src/x_ite/Browser/VERSION.js +1 -1
- package/src/x_ite/Browser/X3DBrowser.js +43 -28
- package/src/x_ite/Components/Core/X3DNode.js +196 -187
- package/src/x_ite/Components/Core/X3DPrototypeInstance.js +113 -90
- 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/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/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 +2 -2
- 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 +1 -1
- package/x_ite.min.html +1 -1
- package/dist/assets/components/ProjectiveTextureMapping.min.js +0 -1
- package/docs/Gemfile.lock +0 -116
|
@@ -64,7 +64,6 @@ import SFVec4 from "./SFVec4.js";
|
|
|
64
64
|
import X3DObjectArrayField from "../Base/X3DObjectArrayField.js";
|
|
65
65
|
import X3DTypedArrayField from "../Base/X3DTypedArrayField.js";
|
|
66
66
|
import X3DConstants from "../Base/X3DConstants.js";
|
|
67
|
-
import Generator from "../InputOutput/Generator.js";
|
|
68
67
|
|
|
69
68
|
const
|
|
70
69
|
SFMatrix3d = SFMatrix3 .SFMatrix3d,
|
|
@@ -161,25 +160,26 @@ MFNode .prototype = Object .assign (Object .create (X3DObjectArrayField .prototy
|
|
|
161
160
|
|
|
162
161
|
value .removeCloneCount (this [_cloneCount]);
|
|
163
162
|
},
|
|
164
|
-
toStream: function (
|
|
163
|
+
toStream: function (generator)
|
|
165
164
|
{
|
|
166
165
|
const
|
|
167
|
-
target
|
|
168
|
-
array
|
|
169
|
-
generator = Generator .Get (stream);
|
|
166
|
+
target = this .getTarget (),
|
|
167
|
+
array = target .getValue ();
|
|
170
168
|
|
|
171
169
|
switch (array .length)
|
|
172
170
|
{
|
|
173
171
|
case 0:
|
|
174
172
|
{
|
|
175
|
-
|
|
173
|
+
generator .string += "[";
|
|
174
|
+
generator .string += generator .TidySpace ();
|
|
175
|
+
generator .string += "]";
|
|
176
176
|
break;
|
|
177
177
|
}
|
|
178
178
|
case 1:
|
|
179
179
|
{
|
|
180
180
|
generator .PushUnitCategory (target .getUnit ());
|
|
181
181
|
|
|
182
|
-
array [0] .toStream (
|
|
182
|
+
array [0] .toStream (generator);
|
|
183
183
|
|
|
184
184
|
generator .PopUnitCategory ();
|
|
185
185
|
break;
|
|
@@ -188,19 +188,20 @@ MFNode .prototype = Object .assign (Object .create (X3DObjectArrayField .prototy
|
|
|
188
188
|
{
|
|
189
189
|
generator .PushUnitCategory (target .getUnit ());
|
|
190
190
|
|
|
191
|
-
|
|
191
|
+
generator .string += "[";
|
|
192
|
+
generator .string += generator .TidyBreak ();
|
|
192
193
|
generator .IncIndent ();
|
|
193
194
|
|
|
194
195
|
for (let i = 0, length = array .length; i < length; ++ i)
|
|
195
196
|
{
|
|
196
|
-
|
|
197
|
-
array [i] .toStream (
|
|
198
|
-
|
|
197
|
+
generator .string += generator .Indent ();
|
|
198
|
+
array [i] .toStream (generator);
|
|
199
|
+
generator .string += generator .TidyBreak ();
|
|
199
200
|
}
|
|
200
201
|
|
|
201
202
|
generator .DecIndent ();
|
|
202
|
-
|
|
203
|
-
|
|
203
|
+
generator .string += generator .Indent ();
|
|
204
|
+
generator .string += "]";
|
|
204
205
|
|
|
205
206
|
generator .PopUnitCategory ();
|
|
206
207
|
break;
|
|
@@ -217,25 +218,26 @@ MFNode .prototype = Object .assign (Object .create (X3DObjectArrayField .prototy
|
|
|
217
218
|
|
|
218
219
|
return string;
|
|
219
220
|
},
|
|
220
|
-
toVRMLStream: function (
|
|
221
|
+
toVRMLStream: function (generator)
|
|
221
222
|
{
|
|
222
223
|
const
|
|
223
|
-
target
|
|
224
|
-
array
|
|
225
|
-
generator = Generator .Get (stream);
|
|
224
|
+
target = this .getTarget (),
|
|
225
|
+
array = target .getValue ();
|
|
226
226
|
|
|
227
227
|
switch (array .length)
|
|
228
228
|
{
|
|
229
229
|
case 0:
|
|
230
230
|
{
|
|
231
|
-
|
|
231
|
+
generator .string += "[";
|
|
232
|
+
generator .string += generator .TidySpace ();
|
|
233
|
+
generator .string += "]";
|
|
232
234
|
break;
|
|
233
235
|
}
|
|
234
236
|
case 1:
|
|
235
237
|
{
|
|
236
238
|
generator .EnterScope ();
|
|
237
239
|
|
|
238
|
-
array [0] .toVRMLStream (
|
|
240
|
+
array [0] .toVRMLStream (generator);
|
|
239
241
|
|
|
240
242
|
generator .LeaveScope ();
|
|
241
243
|
break;
|
|
@@ -244,19 +246,20 @@ MFNode .prototype = Object .assign (Object .create (X3DObjectArrayField .prototy
|
|
|
244
246
|
{
|
|
245
247
|
generator .EnterScope ();
|
|
246
248
|
|
|
247
|
-
|
|
249
|
+
generator .string += "[";
|
|
250
|
+
generator .string += generator .TidyBreak ();
|
|
248
251
|
generator .IncIndent ();
|
|
249
252
|
|
|
250
253
|
for (const element of array)
|
|
251
254
|
{
|
|
252
|
-
|
|
253
|
-
element .toVRMLStream (
|
|
254
|
-
|
|
255
|
+
generator .string += generator .Indent ();
|
|
256
|
+
element .toVRMLStream (generator);
|
|
257
|
+
generator .string += generator .TidyBreak ();
|
|
255
258
|
}
|
|
256
259
|
|
|
257
260
|
generator .DecIndent ();
|
|
258
|
-
|
|
259
|
-
|
|
261
|
+
generator .string += generator .Indent ();
|
|
262
|
+
generator .string += "]";
|
|
260
263
|
|
|
261
264
|
generator .LeaveScope ();
|
|
262
265
|
break;
|
|
@@ -273,11 +276,9 @@ MFNode .prototype = Object .assign (Object .create (X3DObjectArrayField .prototy
|
|
|
273
276
|
|
|
274
277
|
return string;
|
|
275
278
|
},
|
|
276
|
-
toXMLStream: function (
|
|
279
|
+
toXMLStream: function (generator)
|
|
277
280
|
{
|
|
278
|
-
const
|
|
279
|
-
generator = Generator .Get (stream),
|
|
280
|
-
length = this .length;
|
|
281
|
+
const length = this .length;
|
|
281
282
|
|
|
282
283
|
if (length)
|
|
283
284
|
{
|
|
@@ -291,26 +292,26 @@ MFNode .prototype = Object .assign (Object .create (X3DObjectArrayField .prototy
|
|
|
291
292
|
|
|
292
293
|
if (node)
|
|
293
294
|
{
|
|
294
|
-
node .toXMLStream (
|
|
295
|
-
|
|
295
|
+
node .toXMLStream (generator);
|
|
296
|
+
generator .string += generator .TidyBreak ();
|
|
296
297
|
}
|
|
297
298
|
else
|
|
298
299
|
{
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
300
|
+
generator .string += generator .Indent ();
|
|
301
|
+
generator .string += "<";
|
|
302
|
+
generator .string += "NULL";
|
|
302
303
|
|
|
303
304
|
const containerField = generator .ContainerField ();
|
|
304
305
|
|
|
305
306
|
if (containerField)
|
|
306
307
|
{
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
308
|
+
generator .string += generator .Space ();
|
|
309
|
+
generator .string += "containerField='";
|
|
310
|
+
generator .string += generator .XMLEncode (containerField .getName ());
|
|
311
|
+
generator .string += "'";
|
|
311
312
|
}
|
|
312
313
|
|
|
313
|
-
|
|
314
|
+
generator .string += "/>";
|
|
314
315
|
}
|
|
315
316
|
}
|
|
316
317
|
|
|
@@ -318,22 +319,22 @@ MFNode .prototype = Object .assign (Object .create (X3DObjectArrayField .prototy
|
|
|
318
319
|
|
|
319
320
|
if (node)
|
|
320
321
|
{
|
|
321
|
-
node .toXMLStream (
|
|
322
|
+
node .toXMLStream (generator);
|
|
322
323
|
}
|
|
323
324
|
else
|
|
324
325
|
{
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
326
|
+
generator .string += generator .Indent ();
|
|
327
|
+
generator .string += "<";
|
|
328
|
+
generator .string += "NULL";
|
|
328
329
|
|
|
329
330
|
const containerField = generator .ContainerField ();
|
|
330
331
|
|
|
331
332
|
if (containerField)
|
|
332
333
|
{
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
334
|
+
generator .string += generator .Space ();
|
|
335
|
+
generator .string += "containerField='";
|
|
336
|
+
generator .string += generator .XMLEncode (containerField .getName ());
|
|
337
|
+
generator .string += "'";
|
|
337
338
|
}
|
|
338
339
|
}
|
|
339
340
|
|
|
@@ -383,7 +384,7 @@ MFString .prototype = Object .assign (Object .create (X3DObjectArrayField .proto
|
|
|
383
384
|
{
|
|
384
385
|
return X3DConstants .MFString;
|
|
385
386
|
},
|
|
386
|
-
toXMLStream: function (
|
|
387
|
+
toXMLStream: function (generator)
|
|
387
388
|
{
|
|
388
389
|
const length = this .length;
|
|
389
390
|
|
|
@@ -393,15 +394,16 @@ MFString .prototype = Object .assign (Object .create (X3DObjectArrayField .proto
|
|
|
393
394
|
|
|
394
395
|
for (let i = 0, n = length - 1; i < n; ++ i)
|
|
395
396
|
{
|
|
396
|
-
|
|
397
|
-
value [i] .toXMLStream (
|
|
398
|
-
|
|
399
|
-
|
|
397
|
+
generator .string += "\"";
|
|
398
|
+
value [i] .toXMLStream (generator);
|
|
399
|
+
generator .string += "\"";
|
|
400
|
+
generator .string += generator .Comma ();
|
|
401
|
+
generator .string += generator .TidySpace ();
|
|
400
402
|
}
|
|
401
403
|
|
|
402
|
-
|
|
403
|
-
value .at (-1) .toXMLStream (
|
|
404
|
-
|
|
404
|
+
generator .string += "\"";
|
|
405
|
+
value .at (-1) .toXMLStream (generator);
|
|
406
|
+
generator .string += "\"";
|
|
405
407
|
}
|
|
406
408
|
},
|
|
407
409
|
});
|
|
@@ -80,17 +80,17 @@ SFBool .prototype = Object .assign (Object .create (X3DField .prototype),
|
|
|
80
80
|
{
|
|
81
81
|
return this .getValue ();
|
|
82
82
|
},
|
|
83
|
-
toStream: function (
|
|
83
|
+
toStream: function (generator)
|
|
84
84
|
{
|
|
85
|
-
|
|
85
|
+
generator .string += this .getValue () ? "TRUE" : "FALSE";
|
|
86
86
|
},
|
|
87
|
-
toVRMLStream: function (
|
|
87
|
+
toVRMLStream: function (generator)
|
|
88
88
|
{
|
|
89
|
-
this .toStream (
|
|
89
|
+
this .toStream (generator);
|
|
90
90
|
},
|
|
91
|
-
toXMLStream: function (
|
|
91
|
+
toXMLStream: function (generator)
|
|
92
92
|
{
|
|
93
|
-
|
|
93
|
+
generator .string += this .getValue () ? "true" : "false";
|
|
94
94
|
},
|
|
95
95
|
});
|
|
96
96
|
|
|
@@ -48,7 +48,6 @@
|
|
|
48
48
|
import Color3 from "../../standard/Math/Numbers/Color3.js";
|
|
49
49
|
import X3DField from "../Base/X3DField.js";
|
|
50
50
|
import X3DConstants from "../Base/X3DConstants.js";
|
|
51
|
-
import Generator from "../InputOutput/Generator.js";
|
|
52
51
|
|
|
53
52
|
function SFColor (r, g, b)
|
|
54
53
|
{
|
|
@@ -127,28 +126,27 @@ SFColor .prototype = Object .assign (Object .create (X3DField .prototype),
|
|
|
127
126
|
return result;
|
|
128
127
|
};
|
|
129
128
|
})(),
|
|
130
|
-
toStream: function (
|
|
129
|
+
toStream: function (generator)
|
|
131
130
|
{
|
|
132
131
|
const
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
last = value .length - 1;
|
|
132
|
+
value = this .getValue (),
|
|
133
|
+
last = value .length - 1;
|
|
136
134
|
|
|
137
135
|
for (let i = 0; i < last; ++ i)
|
|
138
136
|
{
|
|
139
|
-
|
|
140
|
-
|
|
137
|
+
generator .string += generator .Precision (value [i]);
|
|
138
|
+
generator .string += generator .Space ();
|
|
141
139
|
}
|
|
142
140
|
|
|
143
|
-
|
|
141
|
+
generator .string += generator .Precision (value [last]);
|
|
144
142
|
},
|
|
145
|
-
toVRMLStream: function (
|
|
143
|
+
toVRMLStream: function (generator)
|
|
146
144
|
{
|
|
147
|
-
this .toStream (
|
|
145
|
+
this .toStream (generator);
|
|
148
146
|
},
|
|
149
|
-
toXMLStream: function (
|
|
147
|
+
toXMLStream: function (generator)
|
|
150
148
|
{
|
|
151
|
-
this .toStream (
|
|
149
|
+
this .toStream (generator);
|
|
152
150
|
},
|
|
153
151
|
});
|
|
154
152
|
|
|
@@ -47,7 +47,6 @@
|
|
|
47
47
|
|
|
48
48
|
import X3DField from "../Base/X3DField.js";
|
|
49
49
|
import X3DConstants from "../Base/X3DConstants.js";
|
|
50
|
-
import Generator from "../InputOutput/Generator.js";
|
|
51
50
|
|
|
52
51
|
function SFDouble (value)
|
|
53
52
|
{
|
|
@@ -78,21 +77,19 @@ SFDouble .prototype = Object .assign (Object .create (X3DField .prototype),
|
|
|
78
77
|
X3DField .prototype .set .call (this, +value);
|
|
79
78
|
},
|
|
80
79
|
valueOf: X3DField .prototype .getValue,
|
|
81
|
-
toStream: function (
|
|
80
|
+
toStream: function (generator)
|
|
82
81
|
{
|
|
83
|
-
const
|
|
84
|
-
generator = Generator .Get (stream),
|
|
85
|
-
category = generator .Unit (this .getUnit ());
|
|
82
|
+
const category = generator .Unit (this .getUnit ());
|
|
86
83
|
|
|
87
|
-
|
|
84
|
+
generator .string += generator .DoublePrecision (generator .ToUnit (category, this .getValue ()));
|
|
88
85
|
},
|
|
89
|
-
toVRMLStream: function (
|
|
86
|
+
toVRMLStream: function (generator)
|
|
90
87
|
{
|
|
91
|
-
this .toStream (
|
|
88
|
+
this .toStream (generator);
|
|
92
89
|
},
|
|
93
|
-
toXMLStream: function (
|
|
90
|
+
toXMLStream: function (generator)
|
|
94
91
|
{
|
|
95
|
-
this .toStream (
|
|
92
|
+
this .toStream (generator);
|
|
96
93
|
},
|
|
97
94
|
});
|
|
98
95
|
|
|
@@ -47,7 +47,6 @@
|
|
|
47
47
|
|
|
48
48
|
import X3DField from "../Base/X3DField.js";
|
|
49
49
|
import X3DConstants from "../Base/X3DConstants.js";
|
|
50
|
-
import Generator from "../InputOutput/Generator.js";
|
|
51
50
|
|
|
52
51
|
function SFFloat (value)
|
|
53
52
|
{
|
|
@@ -78,21 +77,19 @@ SFFloat .prototype = Object .assign (Object .create (X3DField .prototype),
|
|
|
78
77
|
X3DField .prototype .set .call (this, +value);
|
|
79
78
|
},
|
|
80
79
|
valueOf: X3DField .prototype .getValue,
|
|
81
|
-
toStream: function (
|
|
80
|
+
toStream: function (generator)
|
|
82
81
|
{
|
|
83
|
-
const
|
|
84
|
-
generator = Generator .Get (stream),
|
|
85
|
-
category = generator .Unit (this .getUnit ());
|
|
82
|
+
const category = generator .Unit (this .getUnit ());
|
|
86
83
|
|
|
87
|
-
|
|
84
|
+
generator .string += generator .Precision (generator .ToUnit (category, this .getValue ()));
|
|
88
85
|
},
|
|
89
|
-
toVRMLStream: function (
|
|
86
|
+
toVRMLStream: function (generator)
|
|
90
87
|
{
|
|
91
|
-
this .toStream (
|
|
88
|
+
this .toStream (generator);
|
|
92
89
|
},
|
|
93
|
-
toXMLStream: function (
|
|
90
|
+
toXMLStream: function (generator)
|
|
94
91
|
{
|
|
95
|
-
this .toStream (
|
|
92
|
+
this .toStream (generator);
|
|
96
93
|
},
|
|
97
94
|
});
|
|
98
95
|
|
|
@@ -184,20 +184,45 @@ SFImage .prototype = Object .assign (Object .create (X3DField .prototype),
|
|
|
184
184
|
{
|
|
185
185
|
return X3DConstants .SFImage;
|
|
186
186
|
},
|
|
187
|
-
toStream: function (
|
|
187
|
+
toStream: function (generator)
|
|
188
188
|
{
|
|
189
|
-
|
|
189
|
+
const array = this .array;
|
|
190
190
|
|
|
191
|
-
|
|
192
|
-
|
|
191
|
+
generator .string += this .width;
|
|
192
|
+
generator .string += generator .Space ();
|
|
193
|
+
generator .string += this .height;
|
|
194
|
+
generator .string += generator .Space ();
|
|
195
|
+
generator .string += this .comp;
|
|
196
|
+
generator .string += generator .AttribBreak ();
|
|
197
|
+
|
|
198
|
+
generator .IncIndent ();
|
|
199
|
+
|
|
200
|
+
for (let y = 0, h = this .height; y < h; ++ y)
|
|
201
|
+
{
|
|
202
|
+
generator .string += generator .ListIndent ();
|
|
203
|
+
|
|
204
|
+
for (let x = 0, w = this .width; x < w; ++ x)
|
|
205
|
+
{
|
|
206
|
+
generator .string += "0x";
|
|
207
|
+
generator .string += array [y * w + x] .toString (16);
|
|
208
|
+
|
|
209
|
+
if (x !== w - 1)
|
|
210
|
+
generator .string += generator .Space ();
|
|
211
|
+
}
|
|
212
|
+
|
|
213
|
+
if (y !== h - 1)
|
|
214
|
+
generator .string += generator .AttribBreak ();
|
|
215
|
+
}
|
|
216
|
+
|
|
217
|
+
generator .DecIndent ();
|
|
193
218
|
},
|
|
194
|
-
toVRMLStream: function (
|
|
219
|
+
toVRMLStream: function (generator)
|
|
195
220
|
{
|
|
196
|
-
this .toStream (
|
|
221
|
+
this .toStream (generator);
|
|
197
222
|
},
|
|
198
|
-
toXMLStream: function (
|
|
223
|
+
toXMLStream: function (generator)
|
|
199
224
|
{
|
|
200
|
-
this .toStream (
|
|
225
|
+
this .toStream (generator);
|
|
201
226
|
},
|
|
202
227
|
});
|
|
203
228
|
|
|
@@ -77,17 +77,17 @@ SFInt32 .prototype = Object .assign (Object .create (X3DField .prototype),
|
|
|
77
77
|
X3DField .prototype .set .call (this, ~~value);
|
|
78
78
|
},
|
|
79
79
|
valueOf: X3DField .prototype .getValue,
|
|
80
|
-
toStream: function (
|
|
80
|
+
toStream: function (generator, base)
|
|
81
81
|
{
|
|
82
|
-
|
|
82
|
+
generator .string += this .getValue () .toString (base);
|
|
83
83
|
},
|
|
84
|
-
toVRMLStream: function (
|
|
84
|
+
toVRMLStream: function (generator)
|
|
85
85
|
{
|
|
86
|
-
this .toStream (
|
|
86
|
+
this .toStream (generator);
|
|
87
87
|
},
|
|
88
|
-
toXMLStream: function (
|
|
88
|
+
toXMLStream: function (generator)
|
|
89
89
|
{
|
|
90
|
-
|
|
90
|
+
generator .string += this .getValue () .toString ();
|
|
91
91
|
},
|
|
92
92
|
});
|
|
93
93
|
|
|
@@ -45,11 +45,12 @@
|
|
|
45
45
|
*
|
|
46
46
|
******************************************************************************/
|
|
47
47
|
|
|
48
|
-
import X3DField
|
|
49
|
-
import Generator from "../InputOutput/Generator.js";
|
|
48
|
+
import X3DField from "../Base/X3DField.js";
|
|
50
49
|
|
|
51
50
|
function SFMatrixPrototypeTemplate (TypeName, Type, Matrix, SFVec, double)
|
|
52
51
|
{
|
|
52
|
+
const _formatter = double ? "DoublePrecision" : "Precision";
|
|
53
|
+
|
|
53
54
|
return Object .assign (Object .create (X3DField .prototype),
|
|
54
55
|
{
|
|
55
56
|
[Symbol .iterator]: function* ()
|
|
@@ -136,28 +137,27 @@ function SFMatrixPrototypeTemplate (TypeName, Type, Matrix, SFVec, double)
|
|
|
136
137
|
{
|
|
137
138
|
return new SFVec (this .getValue () .multMatrixDir (vector .getValue () .copy ()));
|
|
138
139
|
},
|
|
139
|
-
toStream: function (
|
|
140
|
+
toStream: function (generator)
|
|
140
141
|
{
|
|
141
142
|
const
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
last = value .length - 1;
|
|
143
|
+
value = this .getValue (),
|
|
144
|
+
last = value .length - 1;
|
|
145
145
|
|
|
146
146
|
for (let i = 0; i < last; ++ i)
|
|
147
147
|
{
|
|
148
|
-
|
|
149
|
-
|
|
148
|
+
generator .string += generator [_formatter] (value [i]);
|
|
149
|
+
generator .string += generator .Space ();
|
|
150
150
|
}
|
|
151
151
|
|
|
152
|
-
|
|
152
|
+
generator .string += generator [_formatter] (value [last]);
|
|
153
153
|
},
|
|
154
|
-
toVRMLStream: function (
|
|
154
|
+
toVRMLStream: function (generator)
|
|
155
155
|
{
|
|
156
|
-
this .toStream (
|
|
156
|
+
this .toStream (generator);
|
|
157
157
|
},
|
|
158
|
-
toXMLStream: function (
|
|
158
|
+
toXMLStream: function (generator)
|
|
159
159
|
{
|
|
160
|
-
this .toStream (
|
|
160
|
+
this .toStream (generator);
|
|
161
161
|
},
|
|
162
162
|
});
|
|
163
163
|
}
|
|
@@ -372,54 +372,77 @@ SFNode .prototype = Object .assign (Object .create (X3DField .prototype),
|
|
|
372
372
|
|
|
373
373
|
return null;
|
|
374
374
|
},
|
|
375
|
-
toStream: function (
|
|
375
|
+
toStream: function (generator)
|
|
376
376
|
{
|
|
377
377
|
const
|
|
378
378
|
target = this [_target],
|
|
379
379
|
value = target .getValue ();
|
|
380
380
|
|
|
381
381
|
if (value)
|
|
382
|
-
value .toStream (
|
|
382
|
+
value .toStream (generator);
|
|
383
383
|
else
|
|
384
|
-
|
|
384
|
+
generator .string += "NULL";
|
|
385
385
|
},
|
|
386
|
-
|
|
386
|
+
toVRMLString: function (options)
|
|
387
387
|
{
|
|
388
388
|
const
|
|
389
|
-
|
|
390
|
-
|
|
389
|
+
generator = new Generator (options),
|
|
390
|
+
target = this [_target],
|
|
391
|
+
value = target .getValue ();
|
|
391
392
|
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
393
|
+
generator .PushExecutionContext (value .getExecutionContext ());
|
|
394
|
+
|
|
395
|
+
target .toVRMLStream (generator);
|
|
396
|
+
|
|
397
|
+
return generator .string;
|
|
396
398
|
},
|
|
397
|
-
toXMLString: function ()
|
|
399
|
+
toXMLString: function (options)
|
|
398
400
|
{
|
|
399
401
|
const
|
|
402
|
+
generator = new Generator (options),
|
|
400
403
|
target = this [_target],
|
|
401
|
-
stream = { string: "" },
|
|
402
|
-
generator = Generator .Get (stream),
|
|
403
404
|
value = target .getValue ();
|
|
404
405
|
|
|
405
406
|
generator .PushExecutionContext (value .getExecutionContext ());
|
|
406
407
|
|
|
407
|
-
target .toXMLStream (
|
|
408
|
+
target .toXMLStream (generator);
|
|
408
409
|
|
|
409
|
-
generator .
|
|
410
|
+
return generator .string;
|
|
411
|
+
},
|
|
412
|
+
toJSONString: function (options)
|
|
413
|
+
{
|
|
414
|
+
const
|
|
415
|
+
generator = new Generator (options),
|
|
416
|
+
target = this [_target],
|
|
417
|
+
value = target .getValue ();
|
|
418
|
+
|
|
419
|
+
generator .PushExecutionContext (value .getExecutionContext ());
|
|
420
|
+
|
|
421
|
+
target .toJSONStream (generator);
|
|
422
|
+
|
|
423
|
+
return generator .string;
|
|
424
|
+
},
|
|
425
|
+
toVRMLStream: function (generator)
|
|
426
|
+
{
|
|
427
|
+
const
|
|
428
|
+
target = this [_target],
|
|
429
|
+
value = target .getValue ();
|
|
410
430
|
|
|
411
|
-
|
|
431
|
+
if (value)
|
|
432
|
+
value .toVRMLStream (generator);
|
|
433
|
+
else
|
|
434
|
+
generator .string += "NULL";
|
|
412
435
|
},
|
|
413
|
-
toXMLStream: function (
|
|
436
|
+
toXMLStream: function (generator)
|
|
414
437
|
{
|
|
415
438
|
const
|
|
416
439
|
target = this [_target],
|
|
417
440
|
value = target .getValue ();
|
|
418
441
|
|
|
419
442
|
if (value)
|
|
420
|
-
value .toXMLStream (
|
|
443
|
+
value .toXMLStream (generator);
|
|
421
444
|
else
|
|
422
|
-
|
|
445
|
+
generator .string += "<!-- NULL -->";
|
|
423
446
|
},
|
|
424
447
|
dispose: function ()
|
|
425
448
|
{
|
|
@@ -49,7 +49,6 @@ import X3DField from "../Base/X3DField.js";
|
|
|
49
49
|
import SFVec3 from "./SFVec3.js";
|
|
50
50
|
import SFMatrix3 from "./SFMatrix3.js";
|
|
51
51
|
import X3DConstants from "../Base/X3DConstants.js";
|
|
52
|
-
import Generator from "../InputOutput/Generator.js";
|
|
53
52
|
import Rotation4 from "../../standard/Math/Numbers/Rotation4.js";
|
|
54
53
|
import Matrix3 from "../../standard/Math/Numbers/Matrix3.js";
|
|
55
54
|
|
|
@@ -153,24 +152,25 @@ SFRotation .prototype = Object .assign (Object .create (X3DField .prototype),
|
|
|
153
152
|
{
|
|
154
153
|
return new SFRotation (Rotation4 .slerp (this .getValue (), rotation .getValue (), t));
|
|
155
154
|
},
|
|
156
|
-
toStream: function (
|
|
155
|
+
toStream: function (generator)
|
|
157
156
|
{
|
|
158
|
-
const
|
|
159
|
-
generator = Generator .Get (stream),
|
|
160
|
-
rotation = this .getValue ();
|
|
157
|
+
const rotation = this .getValue ();
|
|
161
158
|
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
159
|
+
generator .string += generator .DoublePrecision (rotation .x);
|
|
160
|
+
generator .string += generator .Space ();
|
|
161
|
+
generator .string += generator .DoublePrecision (rotation .y);
|
|
162
|
+
generator .string += generator .Space ();
|
|
163
|
+
generator .string += generator .DoublePrecision (rotation .z);
|
|
164
|
+
generator .string += generator .Space ();
|
|
165
|
+
generator .string += generator .DoublePrecision (generator .ToUnit ("angle", rotation .angle));
|
|
166
166
|
},
|
|
167
|
-
toVRMLStream: function (
|
|
167
|
+
toVRMLStream: function (generator)
|
|
168
168
|
{
|
|
169
|
-
this .toStream (
|
|
169
|
+
this .toStream (generator);
|
|
170
170
|
},
|
|
171
|
-
toXMLStream: function (
|
|
171
|
+
toXMLStream: function (generator)
|
|
172
172
|
{
|
|
173
|
-
this .toStream (
|
|
173
|
+
this .toStream (generator);
|
|
174
174
|
},
|
|
175
175
|
});
|
|
176
176
|
|