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
|
@@ -48,7 +48,6 @@
|
|
|
48
48
|
import Fields from "../../Fields.js";
|
|
49
49
|
import X3DBaseNode from "../../Base/X3DBaseNode.js";
|
|
50
50
|
import X3DConstants from "../../Base/X3DConstants.js";
|
|
51
|
-
import Generator from "../../InputOutput/Generator.js";
|
|
52
51
|
|
|
53
52
|
function X3DNode (executionContext)
|
|
54
53
|
{
|
|
@@ -218,14 +217,12 @@ X3DNode .prototype = Object .assign (Object .create (X3DBaseNode .prototype),
|
|
|
218
217
|
return true;
|
|
219
218
|
},
|
|
220
219
|
traverse: function () { },
|
|
221
|
-
toStream: function (
|
|
220
|
+
toStream: function (generator)
|
|
222
221
|
{
|
|
223
|
-
|
|
222
|
+
generator .string += this .getTypeName () + " { }";
|
|
224
223
|
},
|
|
225
|
-
toVRMLStream: function (
|
|
224
|
+
toVRMLStream: function (generator)
|
|
226
225
|
{
|
|
227
|
-
const generator = Generator .Get (stream);
|
|
228
|
-
|
|
229
226
|
generator .EnterScope ();
|
|
230
227
|
|
|
231
228
|
const name = generator .Name (this);
|
|
@@ -234,9 +231,9 @@ X3DNode .prototype = Object .assign (Object .create (X3DBaseNode .prototype),
|
|
|
234
231
|
{
|
|
235
232
|
if (generator .ExistsNode (this))
|
|
236
233
|
{
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
234
|
+
generator .string += "USE";
|
|
235
|
+
generator .string += generator .Space ();
|
|
236
|
+
generator .string += name;
|
|
240
237
|
|
|
241
238
|
generator .LeaveScope ();
|
|
242
239
|
return;
|
|
@@ -247,96 +244,108 @@ X3DNode .prototype = Object .assign (Object .create (X3DBaseNode .prototype),
|
|
|
247
244
|
{
|
|
248
245
|
generator .AddNode (this);
|
|
249
246
|
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
247
|
+
generator .string += "DEF";
|
|
248
|
+
generator .string += generator .Space ();
|
|
249
|
+
generator .string += name;
|
|
250
|
+
generator .string += generator .Space ();
|
|
254
251
|
}
|
|
255
252
|
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
253
|
+
generator .string += this .getTypeName ();
|
|
254
|
+
generator .string += generator .TidySpace ();
|
|
255
|
+
generator .string += "{";
|
|
259
256
|
|
|
260
257
|
const
|
|
261
258
|
fields = this .getChangedFields (),
|
|
262
259
|
userDefinedFields = this .getUserDefinedFields ();
|
|
263
260
|
|
|
264
|
-
let
|
|
265
|
-
fieldTypeLength = 0,
|
|
266
|
-
accessTypeLength = 0;
|
|
267
|
-
|
|
268
261
|
if (this .canUserDefinedFields ())
|
|
269
262
|
{
|
|
270
|
-
for (const field of userDefinedFields)
|
|
271
|
-
{
|
|
272
|
-
fieldTypeLength = Math .max (fieldTypeLength, field .getTypeName () .length);
|
|
273
|
-
accessTypeLength = Math .max (accessTypeLength, generator .AccessType (field .getAccessType ()) .length);
|
|
274
|
-
}
|
|
275
|
-
|
|
276
263
|
if (userDefinedFields .length)
|
|
277
264
|
{
|
|
278
|
-
|
|
265
|
+
let
|
|
266
|
+
fieldTypeLength = 0,
|
|
267
|
+
accessTypeLength = 0;
|
|
268
|
+
|
|
269
|
+
for (const field of userDefinedFields)
|
|
270
|
+
{
|
|
271
|
+
fieldTypeLength = Math .max (fieldTypeLength, field .getTypeName () .length);
|
|
272
|
+
accessTypeLength = Math .max (accessTypeLength, generator .AccessType (field .getAccessType ()) .length);
|
|
273
|
+
}
|
|
274
|
+
|
|
275
|
+
const last = userDefinedFields .at (-1);
|
|
276
|
+
|
|
277
|
+
generator .string += generator .TidyBreak ();
|
|
279
278
|
generator .IncIndent ();
|
|
280
279
|
|
|
281
280
|
for (const field of userDefinedFields)
|
|
282
281
|
{
|
|
283
|
-
this .toVRMLStreamUserDefinedField (
|
|
282
|
+
this .toVRMLStreamUserDefinedField (generator, field, fieldTypeLength, accessTypeLength);
|
|
284
283
|
|
|
285
|
-
|
|
284
|
+
if (field === last)
|
|
285
|
+
generator .string += generator .TidyBreak ();
|
|
286
|
+
else
|
|
287
|
+
generator .string += generator .Break ();
|
|
286
288
|
}
|
|
287
289
|
|
|
288
290
|
generator .DecIndent ();
|
|
289
291
|
|
|
290
292
|
if (fields .length !== 0)
|
|
291
|
-
|
|
293
|
+
generator .string += generator .TidyBreak ();
|
|
292
294
|
}
|
|
293
295
|
}
|
|
294
296
|
|
|
295
297
|
if (fields .length === 0)
|
|
296
298
|
{
|
|
297
299
|
if (userDefinedFields .length)
|
|
298
|
-
|
|
300
|
+
generator .string += generator .Indent ();
|
|
299
301
|
else
|
|
300
|
-
|
|
302
|
+
generator .string += generator .TidySpace ();
|
|
301
303
|
}
|
|
302
304
|
else
|
|
303
305
|
{
|
|
306
|
+
const last = fields .at (-1);
|
|
307
|
+
|
|
304
308
|
if (userDefinedFields .length === 0)
|
|
305
|
-
|
|
309
|
+
generator .string += generator .TidyBreak ();
|
|
306
310
|
|
|
307
311
|
generator .IncIndent ();
|
|
308
312
|
|
|
309
|
-
|
|
313
|
+
for (const field of fields)
|
|
310
314
|
{
|
|
311
|
-
this .toVRMLStreamField (
|
|
315
|
+
this .toVRMLStreamField (generator, field);
|
|
312
316
|
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
317
|
+
if (field === last)
|
|
318
|
+
generator .string += generator .TidyBreak ();
|
|
319
|
+
else
|
|
320
|
+
generator .string += generator .Break ();
|
|
321
|
+
}
|
|
316
322
|
|
|
317
323
|
generator .DecIndent ();
|
|
318
|
-
|
|
324
|
+
generator .string += generator .Indent ();
|
|
319
325
|
}
|
|
320
326
|
|
|
321
|
-
|
|
327
|
+
generator .string += "}";
|
|
322
328
|
|
|
323
329
|
generator .LeaveScope ();
|
|
324
330
|
},
|
|
325
|
-
|
|
331
|
+
toVRMLStreamUserDefinedField: function (generator, field, fieldTypeLength, accessTypeLength)
|
|
326
332
|
{
|
|
327
|
-
const
|
|
328
|
-
generator = Generator .Get (stream),
|
|
329
|
-
sharedNode = generator .IsSharedNode (this);
|
|
333
|
+
const sharedNode = generator .IsSharedNode (this);
|
|
330
334
|
|
|
331
335
|
if (field .getReferences () .size === 0 || !generator .ExecutionContext () || sharedNode)
|
|
332
336
|
{
|
|
337
|
+
generator .string += generator .Indent ();
|
|
338
|
+
generator .string += generator .PadRight (generator .AccessType (field .getAccessType ()), accessTypeLength);
|
|
339
|
+
generator .string += generator .Space ();
|
|
340
|
+
generator .string += generator .PadRight (field .getTypeName (), fieldTypeLength);
|
|
341
|
+
generator .string += generator .Space ();
|
|
342
|
+
generator .string += field .getName ();
|
|
343
|
+
|
|
333
344
|
if (field .isInitializable ())
|
|
334
345
|
{
|
|
335
|
-
|
|
336
|
-
stream .string += field .getName ();
|
|
337
|
-
stream .string += " ";
|
|
346
|
+
generator .string += generator .Space ();
|
|
338
347
|
|
|
339
|
-
field .toVRMLStream (
|
|
348
|
+
field .toVRMLStream (generator);
|
|
340
349
|
}
|
|
341
350
|
}
|
|
342
351
|
else
|
|
@@ -349,54 +358,57 @@ X3DNode .prototype = Object .assign (Object .create (X3DBaseNode .prototype),
|
|
|
349
358
|
{
|
|
350
359
|
initializableReference = initializableReference || reference .isInitializable ();
|
|
351
360
|
|
|
352
|
-
// Output
|
|
361
|
+
// Output user defined reference field
|
|
353
362
|
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
363
|
+
generator .string += generator .Indent ();
|
|
364
|
+
generator .string += generator .PadRight (generator .AccessType (field .getAccessType ()), accessTypeLength);
|
|
365
|
+
generator .string += generator .Space ();
|
|
366
|
+
generator .string += generator .PadRight (field .getTypeName (), fieldTypeLength);
|
|
367
|
+
generator .string += generator .Space ();
|
|
368
|
+
generator .string += field .getName ();
|
|
369
|
+
generator .string += generator .Space ();
|
|
370
|
+
generator .string += "IS";
|
|
371
|
+
generator .string += generator .Space ();
|
|
372
|
+
generator .string += reference .getName ();
|
|
360
373
|
|
|
361
374
|
++ index;
|
|
362
375
|
|
|
363
376
|
if (index !== field .getReferences () .size)
|
|
364
|
-
|
|
377
|
+
generator .string += generator .Break ();
|
|
365
378
|
});
|
|
366
379
|
|
|
367
|
-
if (field .getAccessType () === X3DConstants .inputOutput && !initializableReference && !
|
|
380
|
+
if (field .getAccessType () === X3DConstants .inputOutput && !initializableReference && !field .isDefaultValue ())
|
|
368
381
|
{
|
|
369
|
-
|
|
382
|
+
generator .string += generator .Break ();
|
|
383
|
+
generator .string += generator .Indent ();
|
|
384
|
+
generator .string += generator .PadRight (generator .AccessType (field .getAccessType ()), accessTypeLength);
|
|
385
|
+
generator .string += generator .Space ();
|
|
386
|
+
generator .string += generator .PadRight (field .getTypeName (), fieldTypeLength);
|
|
387
|
+
generator .string += generator .Space ();
|
|
388
|
+
generator .string += field .getName ();
|
|
370
389
|
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
stream .string += " ";
|
|
390
|
+
if (field .isInitializable ())
|
|
391
|
+
{
|
|
392
|
+
generator .string += generator .Space ();
|
|
375
393
|
|
|
376
|
-
|
|
394
|
+
field .toVRMLStream (generator);
|
|
395
|
+
}
|
|
377
396
|
}
|
|
378
397
|
}
|
|
379
398
|
},
|
|
380
|
-
|
|
399
|
+
toVRMLStreamField: function (generator, field)
|
|
381
400
|
{
|
|
382
|
-
const
|
|
383
|
-
generator = Generator .Get (stream),
|
|
384
|
-
sharedNode = generator .IsSharedNode (this);
|
|
401
|
+
const sharedNode = generator .IsSharedNode (this);
|
|
385
402
|
|
|
386
403
|
if (field .getReferences () .size === 0 || !generator .ExecutionContext () || sharedNode)
|
|
387
404
|
{
|
|
388
|
-
stream .string += generator .Indent ();
|
|
389
|
-
stream .string += generator .PadRight (generator .AccessType (field .getAccessType ()), accessTypeLength);
|
|
390
|
-
stream .string += " ";
|
|
391
|
-
stream .string += generator .PadRight (field .getTypeName (), fieldTypeLength);
|
|
392
|
-
stream .string += " ";
|
|
393
|
-
stream .string += field .getName ();
|
|
394
|
-
|
|
395
405
|
if (field .isInitializable ())
|
|
396
406
|
{
|
|
397
|
-
|
|
407
|
+
generator .string += generator .Indent ();
|
|
408
|
+
generator .string += field .getName ();
|
|
409
|
+
generator .string += generator .Space ();
|
|
398
410
|
|
|
399
|
-
field .toVRMLStream (
|
|
411
|
+
field .toVRMLStream (generator);
|
|
400
412
|
}
|
|
401
413
|
}
|
|
402
414
|
else
|
|
@@ -409,49 +421,37 @@ X3DNode .prototype = Object .assign (Object .create (X3DBaseNode .prototype),
|
|
|
409
421
|
{
|
|
410
422
|
initializableReference = initializableReference || reference .isInitializable ();
|
|
411
423
|
|
|
412
|
-
// Output
|
|
424
|
+
// Output build in reference field
|
|
413
425
|
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
stream .string += " ";
|
|
421
|
-
stream .string += "IS";
|
|
422
|
-
stream .string += " ";
|
|
423
|
-
stream .string += reference .getName ();
|
|
426
|
+
generator .string += generator .Indent ();
|
|
427
|
+
generator .string += field .getName ();
|
|
428
|
+
generator .string += generator .Space ();
|
|
429
|
+
generator .string += "IS";
|
|
430
|
+
generator .string += generator .Space ();
|
|
431
|
+
generator .string += reference .getName ();
|
|
424
432
|
|
|
425
433
|
++ index;
|
|
426
434
|
|
|
427
435
|
if (index !== field .getReferences () .size)
|
|
428
|
-
|
|
436
|
+
generator .string += generator .Break ();
|
|
429
437
|
});
|
|
430
438
|
|
|
431
|
-
if (field .getAccessType () === X3DConstants .inputOutput && !initializableReference && !
|
|
439
|
+
if (field .getAccessType () === X3DConstants .inputOutput && !initializableReference && !this .isDefaultValue (field))
|
|
432
440
|
{
|
|
433
|
-
|
|
434
|
-
stream .string += generator .Indent ();
|
|
435
|
-
stream .string += generator .PadRight (generator .AccessType (field .getAccessType ()), accessTypeLength);
|
|
436
|
-
stream .string += " ";
|
|
437
|
-
stream .string += generator .PadRight (field .getTypeName (), fieldTypeLength);
|
|
438
|
-
stream .string += " ";
|
|
439
|
-
stream .string += field .getName ();
|
|
441
|
+
// Output build in field
|
|
440
442
|
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
443
|
+
generator .string += generator .Break ();
|
|
444
|
+
generator .string += generator .Indent ();
|
|
445
|
+
generator .string += field .getName ();
|
|
446
|
+
generator .string += generator .Space ();
|
|
444
447
|
|
|
445
|
-
|
|
446
|
-
}
|
|
448
|
+
field .toVRMLStream (generator);
|
|
447
449
|
}
|
|
448
450
|
}
|
|
449
451
|
},
|
|
450
|
-
toXMLStream: function (
|
|
452
|
+
toXMLStream: function (generator)
|
|
451
453
|
{
|
|
452
|
-
const
|
|
453
|
-
generator = Generator .Get (stream),
|
|
454
|
-
sharedNode = generator .IsSharedNode (this);
|
|
454
|
+
const sharedNode = generator .IsSharedNode (this);
|
|
455
455
|
|
|
456
456
|
generator .EnterScope ();
|
|
457
457
|
|
|
@@ -461,13 +461,13 @@ X3DNode .prototype = Object .assign (Object .create (X3DBaseNode .prototype),
|
|
|
461
461
|
{
|
|
462
462
|
if (generator .ExistsNode (this))
|
|
463
463
|
{
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
|
|
464
|
+
generator .string += generator .Indent ();
|
|
465
|
+
generator .string += "<";
|
|
466
|
+
generator .string += this .getTypeName ();
|
|
467
|
+
generator .string += generator .Space ();
|
|
468
|
+
generator .string += "USE='";
|
|
469
|
+
generator .string += generator .XMLEncode (name);
|
|
470
|
+
generator .string += "'";
|
|
471
471
|
|
|
472
472
|
const containerField = generator .ContainerField ();
|
|
473
473
|
|
|
@@ -475,32 +475,32 @@ X3DNode .prototype = Object .assign (Object .create (X3DBaseNode .prototype),
|
|
|
475
475
|
{
|
|
476
476
|
if (containerField .getName () !== this .getContainerField ())
|
|
477
477
|
{
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
|
|
478
|
+
generator .string += generator .Space ();
|
|
479
|
+
generator .string += "containerField='";
|
|
480
|
+
generator .string += generator .XMLEncode (containerField .getName ());
|
|
481
|
+
generator .string += "'";
|
|
482
482
|
}
|
|
483
483
|
}
|
|
484
484
|
|
|
485
|
-
|
|
485
|
+
generator .string += "/>";
|
|
486
486
|
|
|
487
487
|
generator .LeaveScope ();
|
|
488
488
|
return;
|
|
489
489
|
}
|
|
490
490
|
}
|
|
491
491
|
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
|
|
492
|
+
generator .string += generator .Indent ();
|
|
493
|
+
generator .string += "<";
|
|
494
|
+
generator .string += this .getTypeName ();
|
|
495
495
|
|
|
496
496
|
if (name .length)
|
|
497
497
|
{
|
|
498
498
|
generator .AddNode (this);
|
|
499
499
|
|
|
500
|
-
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
|
|
500
|
+
generator .string += generator .Space ();
|
|
501
|
+
generator .string += "DEF='";
|
|
502
|
+
generator .string += generator .XMLEncode (name);
|
|
503
|
+
generator .string += "'";
|
|
504
504
|
}
|
|
505
505
|
|
|
506
506
|
const containerField = generator .ContainerField ();
|
|
@@ -509,10 +509,10 @@ X3DNode .prototype = Object .assign (Object .create (X3DBaseNode .prototype),
|
|
|
509
509
|
{
|
|
510
510
|
if (containerField .getName () !== this .getContainerField ())
|
|
511
511
|
{
|
|
512
|
-
|
|
513
|
-
|
|
514
|
-
|
|
515
|
-
|
|
512
|
+
generator .string += generator .Space ();
|
|
513
|
+
generator .string += "containerField='";
|
|
514
|
+
generator .string += generator .XMLEncode (containerField .getName ());
|
|
515
|
+
generator .string += "'";
|
|
516
516
|
}
|
|
517
517
|
}
|
|
518
518
|
|
|
@@ -578,14 +578,14 @@ X3DNode .prototype = Object .assign (Object .create (X3DBaseNode .prototype),
|
|
|
578
578
|
if (field === cdata)
|
|
579
579
|
break;
|
|
580
580
|
|
|
581
|
-
|
|
582
|
-
|
|
583
|
-
|
|
584
|
-
|
|
581
|
+
generator .string += generator .AttribBreak ();
|
|
582
|
+
generator .string += generator .ListIndent ();
|
|
583
|
+
generator .string += field .getName ();
|
|
584
|
+
generator .string += "='";
|
|
585
585
|
|
|
586
|
-
field .toXMLStream (
|
|
586
|
+
field .toXMLStream (generator);
|
|
587
587
|
|
|
588
|
-
|
|
588
|
+
generator .string += "'";
|
|
589
589
|
break;
|
|
590
590
|
}
|
|
591
591
|
}
|
|
@@ -602,11 +602,12 @@ X3DNode .prototype = Object .assign (Object .create (X3DBaseNode .prototype),
|
|
|
602
602
|
|
|
603
603
|
if ((!this .canUserDefinedFields () || !userDefinedFields .length) && (!references .length || sharedNode) && !childNodes .length && !cdata)
|
|
604
604
|
{
|
|
605
|
-
|
|
605
|
+
generator .string += "/>";
|
|
606
606
|
}
|
|
607
607
|
else
|
|
608
608
|
{
|
|
609
|
-
|
|
609
|
+
generator .string += ">";
|
|
610
|
+
generator .string += generator .TidyBreak ();
|
|
610
611
|
|
|
611
612
|
generator .IncIndent ();
|
|
612
613
|
|
|
@@ -614,20 +615,20 @@ X3DNode .prototype = Object .assign (Object .create (X3DBaseNode .prototype),
|
|
|
614
615
|
{
|
|
615
616
|
for (const field of userDefinedFields)
|
|
616
617
|
{
|
|
617
|
-
|
|
618
|
-
|
|
619
|
-
|
|
620
|
-
|
|
621
|
-
|
|
622
|
-
|
|
623
|
-
|
|
624
|
-
|
|
625
|
-
|
|
626
|
-
|
|
627
|
-
|
|
628
|
-
|
|
629
|
-
|
|
630
|
-
|
|
618
|
+
generator .string += generator .Indent ();
|
|
619
|
+
generator .string += "<field";
|
|
620
|
+
generator .string += generator .Space ();
|
|
621
|
+
generator .string += "accessType='";
|
|
622
|
+
generator .string += generator .AccessType (field .getAccessType ());
|
|
623
|
+
generator .string += "'";
|
|
624
|
+
generator .string += generator .Space ();
|
|
625
|
+
generator .string += "type='";
|
|
626
|
+
generator .string += field .getTypeName ();
|
|
627
|
+
generator .string += "'";
|
|
628
|
+
generator .string += generator .Space ();
|
|
629
|
+
generator .string += "name='";
|
|
630
|
+
generator .string += generator .XMLEncode (field .getName ());
|
|
631
|
+
generator .string += "'";
|
|
631
632
|
|
|
632
633
|
// If the field is a inputOutput and we have as reference only inputOnly or outputOnly we must output the value
|
|
633
634
|
// for this field.
|
|
@@ -654,7 +655,8 @@ X3DNode .prototype = Object .assign (Object .create (X3DBaseNode .prototype),
|
|
|
654
655
|
|
|
655
656
|
if (!field .isInitializable () || field .isDefaultValue ())
|
|
656
657
|
{
|
|
657
|
-
|
|
658
|
+
generator .string += "/>";
|
|
659
|
+
generator .string += generator .TidyBreak ();
|
|
658
660
|
}
|
|
659
661
|
else
|
|
660
662
|
{
|
|
@@ -667,31 +669,34 @@ X3DNode .prototype = Object .assign (Object .create (X3DBaseNode .prototype),
|
|
|
667
669
|
{
|
|
668
670
|
generator .PushContainerField (field);
|
|
669
671
|
|
|
670
|
-
|
|
672
|
+
generator .string += ">";
|
|
673
|
+
generator .string += generator .TidyBreak ();
|
|
671
674
|
|
|
672
675
|
generator .IncIndent ();
|
|
673
676
|
|
|
674
|
-
field .toXMLStream (
|
|
677
|
+
field .toXMLStream (generator);
|
|
675
678
|
|
|
676
|
-
|
|
679
|
+
generator .string += generator .TidyBreak ();
|
|
677
680
|
|
|
678
681
|
generator .DecIndent ();
|
|
679
682
|
|
|
680
|
-
|
|
681
|
-
|
|
683
|
+
generator .string += generator .Indent ();
|
|
684
|
+
generator .string += "</field>";
|
|
685
|
+
generator .string += generator .TidyBreak ();
|
|
682
686
|
|
|
683
687
|
generator .PopContainerField ();
|
|
684
688
|
break;
|
|
685
689
|
}
|
|
686
690
|
default:
|
|
687
691
|
{
|
|
688
|
-
|
|
689
|
-
|
|
692
|
+
generator .string += generator .Space ();
|
|
693
|
+
generator .string += "value='";
|
|
690
694
|
|
|
691
|
-
field .toXMLStream (
|
|
695
|
+
field .toXMLStream (generator);
|
|
692
696
|
|
|
693
|
-
|
|
694
|
-
|
|
697
|
+
generator .string += "'";
|
|
698
|
+
generator .string += "/>";
|
|
699
|
+
generator .string += generator .TidyBreak ();
|
|
695
700
|
break;
|
|
696
701
|
}
|
|
697
702
|
}
|
|
@@ -702,16 +707,17 @@ X3DNode .prototype = Object .assign (Object .create (X3DBaseNode .prototype),
|
|
|
702
707
|
if (generator .ExecutionContext ())
|
|
703
708
|
references .push (field);
|
|
704
709
|
|
|
705
|
-
|
|
710
|
+
generator .string += "/>";
|
|
711
|
+
generator .string += generator .TidyBreak ();
|
|
706
712
|
}
|
|
707
713
|
}
|
|
708
714
|
}
|
|
709
715
|
|
|
710
716
|
if (references .length && !sharedNode)
|
|
711
717
|
{
|
|
712
|
-
|
|
713
|
-
|
|
714
|
-
|
|
718
|
+
generator .string += generator .Indent ();
|
|
719
|
+
generator .string += "<IS>";
|
|
720
|
+
generator .string += generator .TidyBreak ();
|
|
715
721
|
|
|
716
722
|
generator .IncIndent ();
|
|
717
723
|
|
|
@@ -721,33 +727,35 @@ X3DNode .prototype = Object .assign (Object .create (X3DBaseNode .prototype),
|
|
|
721
727
|
|
|
722
728
|
protoFields .forEach (function (protoField)
|
|
723
729
|
{
|
|
724
|
-
|
|
725
|
-
|
|
726
|
-
|
|
727
|
-
|
|
728
|
-
|
|
729
|
-
|
|
730
|
-
|
|
731
|
-
|
|
732
|
-
|
|
733
|
-
|
|
734
|
-
|
|
730
|
+
generator .string += generator .Indent ();
|
|
731
|
+
generator .string += "<connect";
|
|
732
|
+
generator .string += generator .Space ();
|
|
733
|
+
generator .string += "nodeField='";
|
|
734
|
+
generator .string += generator .XMLEncode (field .getName ());
|
|
735
|
+
generator .string += "'";
|
|
736
|
+
generator .string += generator .Space ();
|
|
737
|
+
generator .string += "protoField='";
|
|
738
|
+
generator .string += generator .XMLEncode (protoField .getName ());
|
|
739
|
+
generator .string += "'";
|
|
740
|
+
generator .string += "/>";
|
|
741
|
+
generator .string += generator .TidyBreak ();
|
|
735
742
|
});
|
|
736
743
|
}
|
|
737
744
|
|
|
738
745
|
generator .DecIndent ();
|
|
739
746
|
|
|
740
|
-
|
|
741
|
-
|
|
747
|
+
generator .string += generator .Indent ();
|
|
748
|
+
generator .string += "</IS>";
|
|
749
|
+
generator .string += generator .TidyBreak ();
|
|
742
750
|
}
|
|
743
751
|
|
|
744
752
|
for (const field of childNodes)
|
|
745
753
|
{
|
|
746
754
|
generator .PushContainerField (field);
|
|
747
755
|
|
|
748
|
-
field .toXMLStream (
|
|
756
|
+
field .toXMLStream (generator);
|
|
749
757
|
|
|
750
|
-
|
|
758
|
+
generator .string += generator .TidyBreak ();
|
|
751
759
|
|
|
752
760
|
generator .PopContainerField ();
|
|
753
761
|
}
|
|
@@ -756,18 +764,19 @@ X3DNode .prototype = Object .assign (Object .create (X3DBaseNode .prototype),
|
|
|
756
764
|
{
|
|
757
765
|
for (const value of cdata)
|
|
758
766
|
{
|
|
759
|
-
|
|
760
|
-
|
|
761
|
-
|
|
767
|
+
generator .string += "<![CDATA[";
|
|
768
|
+
generator .string += generator .escapeCDATA (value);
|
|
769
|
+
generator .string += "]]>";
|
|
770
|
+
generator .string += generator .TidyBreak ();
|
|
762
771
|
}
|
|
763
772
|
}
|
|
764
773
|
|
|
765
774
|
generator .DecIndent ();
|
|
766
775
|
|
|
767
|
-
|
|
768
|
-
|
|
769
|
-
|
|
770
|
-
|
|
776
|
+
generator .string += generator .Indent ();
|
|
777
|
+
generator .string += "</";
|
|
778
|
+
generator .string += this .getTypeName ();
|
|
779
|
+
generator .string += ">";
|
|
771
780
|
}
|
|
772
781
|
|
|
773
782
|
generator .LeaveScope ();
|