x_ite 8.4.2 → 8.4.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.
Files changed (52) hide show
  1. package/dist/assets/components/Annotation.js +13 -13
  2. package/dist/assets/components/Annotation.min.js +1 -1
  3. package/dist/assets/components/CADGeometry.js +13 -13
  4. package/dist/assets/components/CADGeometry.min.js +1 -1
  5. package/dist/assets/components/CubeMapTexturing.js +25 -25
  6. package/dist/assets/components/CubeMapTexturing.min.js +1 -1
  7. package/dist/assets/components/DIS.js +13 -13
  8. package/dist/assets/components/DIS.min.js +1 -1
  9. package/dist/assets/components/EventUtilities.js +9 -9
  10. package/dist/assets/components/EventUtilities.min.js +1 -1
  11. package/dist/assets/components/Geometry2D.js +19 -19
  12. package/dist/assets/components/Geometry2D.min.js +1 -1
  13. package/dist/assets/components/Geospatial.js +33 -33
  14. package/dist/assets/components/Geospatial.min.js +1 -1
  15. package/dist/assets/components/HAnim.js +18 -18
  16. package/dist/assets/components/HAnim.min.js +1 -1
  17. package/dist/assets/components/KeyDeviceSensor.js +8 -8
  18. package/dist/assets/components/KeyDeviceSensor.min.js +1 -1
  19. package/dist/assets/components/Layout.js +27 -27
  20. package/dist/assets/components/Layout.min.js +1 -1
  21. package/dist/assets/components/NURBS.js +24 -24
  22. package/dist/assets/components/NURBS.min.js +1 -1
  23. package/dist/assets/components/ParticleSystems.js +23 -23
  24. package/dist/assets/components/ParticleSystems.min.js +1 -1
  25. package/dist/assets/components/Picking.js +19 -19
  26. package/dist/assets/components/Picking.min.js +1 -1
  27. package/dist/assets/components/RigidBodyPhysics.js +17 -17
  28. package/dist/assets/components/RigidBodyPhysics.min.js +1 -1
  29. package/dist/assets/components/Scripting.js +28 -28
  30. package/dist/assets/components/Scripting.min.js +1 -1
  31. package/dist/assets/components/Text.js +24 -24
  32. package/dist/assets/components/Text.min.js +1 -1
  33. package/dist/assets/components/TextureProjector.js +14 -14
  34. package/dist/assets/components/TextureProjector.min.js +1 -1
  35. package/dist/assets/components/Texturing3D.js +27 -27
  36. package/dist/assets/components/Texturing3D.min.js +1 -1
  37. package/dist/assets/components/VolumeRendering.js +19 -19
  38. package/dist/assets/components/VolumeRendering.min.js +1 -1
  39. package/dist/assets/components/X_ITE.js +9 -9
  40. package/dist/assets/components/X_ITE.min.js +1 -1
  41. package/dist/x_ite.css +1 -1
  42. package/dist/x_ite.js +139 -106
  43. package/dist/x_ite.min.js +1 -1
  44. package/dist/x_ite.zip +0 -0
  45. package/docs/_config.yml +2 -2
  46. package/docs/_posts/reference/scene-services.md +10 -2
  47. package/package.json +1 -1
  48. package/src/x_ite/Browser/Core/X3DCoreContext.js +1 -1
  49. package/src/x_ite/Browser/VERSION.js +1 -1
  50. package/src/x_ite/Execution/X3DScene.js +94 -61
  51. package/src/x_ite/Parser/VRMLParser.js +1 -1
  52. package/src/x_ite/Parser/XMLParser.js +1 -1
package/dist/x_ite.zip CHANGED
Binary file
package/docs/_config.yml CHANGED
@@ -20,8 +20,8 @@ timezone:
20
20
  # ↓ --------------------------
21
21
 
22
22
  title: X_ITE X3D Browser # the main title
23
- version: 8.4.2 # x_ite latest version
24
- x3d_latest_version: 8.4.2 # x3d latest version
23
+ version: 8.4.3 # x_ite latest version
24
+ x3d_latest_version: 8.4.3 # x3d latest version
25
25
 
26
26
  tagline: Step Into The Future # it will display as the sub-title
27
27
 
@@ -112,14 +112,22 @@ None.
112
112
 
113
113
  ### Methods
114
114
 
115
- #### String **getMetaData** (*String name*)
115
+ #### Array<string> (*String name*)
116
116
 
117
- Returns the metadata value associated with *name.*
117
+ Returns the metadata values array associated with *name*.
118
118
 
119
119
  #### void **setMetaData** (*String name, String value*)
120
120
 
121
121
  Creates or updates the metadata with *name* and *value.*
122
122
 
123
+ #### void **setMetaData** (*String name, Array<string> values*)
124
+
125
+ Creates or updates the metadata with *name* and *values.* There must be at least one value in *values.*
126
+
127
+ #### void **addMetaData** (*String name, String value*)
128
+
129
+ Adds the metadata with *name* and *value.*
130
+
123
131
  #### void **removeMetaData** (*String name*)
124
132
 
125
133
  Removes the metadata *name.*
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "x_ite",
3
- "version": "8.4.2",
3
+ "version": "8.4.3",
4
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>",
@@ -303,7 +303,7 @@ X3DCoreContext .prototype =
303
303
  {
304
304
  const url = new Fields .MFString ();
305
305
 
306
- url .fromString (urlCharacters, this .getExecutionContext ());
306
+ url .fromString ("[" + urlCharacters + "]", this .getExecutionContext ());
307
307
 
308
308
  return url;
309
309
  },
@@ -45,4 +45,4 @@
45
45
  *
46
46
  ******************************************************************************/
47
47
 
48
- export default "8.4.2";
48
+ export default "8.4.3";
@@ -246,17 +246,38 @@ X3DScene .prototype = Object .assign (Object .create (X3DExecutionContext .proto
246
246
 
247
247
  return value;
248
248
  },
249
- setMetaData: function (name, value)
249
+ setMetaData: function (name, values)
250
250
  {
251
- name = String (name)
251
+ name = String (name);
252
252
 
253
253
  if (!name .length)
254
- return;
254
+ throw new Error ("Couldn't add metadata: name is empty.");
255
+
256
+ if (! Array .isArray (values))
257
+ values = [String (values)];
255
258
 
256
- this [_metadata] .set (name, String (value));
259
+ if (!values .length)
260
+ throw new Error ("Couldn't add metadata: values length is 0.");
261
+
262
+ this [_metadata] .set (name, values .map (value => String (value)));
257
263
 
258
264
  this ._metadata_changed = this .getBrowser () .getCurrentTime ();
259
265
  },
266
+ addMetaData: function (name, value)
267
+ {
268
+ name = String (name);
269
+ value = String (value);
270
+
271
+ if (!name .length)
272
+ throw new Error ("Couldn't add metadata: name is empty.");
273
+
274
+ let values = this [_metadata] .get (name);
275
+
276
+ if (!values)
277
+ this [_metadata] .set (name, values = [ ]);
278
+
279
+ values .push (value);
280
+ },
260
281
  removeMetaData: function (name)
261
282
  {
262
283
  name = String (name);
@@ -269,7 +290,12 @@ X3DScene .prototype = Object .assign (Object .create (X3DExecutionContext .proto
269
290
  {
270
291
  name = String (name);
271
292
 
272
- return this [_metadata] .get (name);
293
+ const values = this [_metadata] .get (name);
294
+
295
+ if (values)
296
+ return values .slice ();
297
+
298
+ return undefined;
273
299
  },
274
300
  getMetaDatas: function ()
275
301
  {
@@ -419,15 +445,18 @@ X3DScene .prototype = Object .assign (Object .create (X3DExecutionContext .proto
419
445
 
420
446
  if (metadata .size)
421
447
  {
422
- metadata .forEach (function (value, key)
448
+ for (const [key, values] of metadata .entries ())
423
449
  {
424
- generator .string += "META";
425
- generator .string += generator .Space ();
426
- generator .string += new Fields .SFString (key) .toString ();
427
- generator .string += generator .Space ();
428
- generator .string += new Fields .SFString (value) .toString ();
429
- generator .string += generator .Break ();
430
- });
450
+ for (const value of values)
451
+ {
452
+ generator .string += "META";
453
+ generator .string += generator .Space ();
454
+ generator .string += new Fields .SFString (key) .toString ();
455
+ generator .string += generator .Space ();
456
+ generator .string += new Fields .SFString (value) .toString ();
457
+ generator .string += generator .Break ();
458
+ }
459
+ }
431
460
 
432
461
  generator .string += generator .TidyBreak ();
433
462
  }
@@ -504,21 +533,24 @@ X3DScene .prototype = Object .assign (Object .create (X3DExecutionContext .proto
504
533
  }
505
534
  }
506
535
 
507
- this .getMetaDatas () .forEach (function (value, key)
536
+ for (const [key, values] of this .getMetaDatas () .entries ())
508
537
  {
509
- generator .string += generator .Indent ();
510
- generator .string += "<meta";
511
- generator .string += generator .Space ();
512
- generator .string += "name='";
513
- generator .string += generator .XMLEncode (key);
514
- generator .string += "'";
515
- generator .string += generator .Space ();
516
- generator .string += "content='";
517
- generator .string += generator .XMLEncode (value);
518
- generator .string += "'";
519
- generator .string += "/>";
520
- generator .string += generator .TidyBreak ();
521
- });
538
+ for (const value of values)
539
+ {
540
+ generator .string += generator .Indent ();
541
+ generator .string += "<meta";
542
+ generator .string += generator .Space ();
543
+ generator .string += "name='";
544
+ generator .string += generator .XMLEncode (key);
545
+ generator .string += "'";
546
+ generator .string += generator .Space ();
547
+ generator .string += "content='";
548
+ generator .string += generator .XMLEncode (value);
549
+ generator .string += "'";
550
+ generator .string += "/>";
551
+ generator .string += generator .TidyBreak ();
552
+ }
553
+ }
522
554
 
523
555
  // </head>
524
556
 
@@ -715,42 +747,43 @@ X3DScene .prototype = Object .assign (Object .create (X3DExecutionContext .proto
715
747
 
716
748
  // Meta data
717
749
 
718
- let i = 0;
719
-
720
- for (const [key, value] of this .getMetaDatas ())
750
+ for (const [i, [key, values]] of [... this .getMetaDatas ()] .entries ())
721
751
  {
722
- generator .string += generator .Indent ();
723
- generator .string += '{';
724
- generator .string += generator .TidyBreak ();
725
- generator .string += generator .IncIndent ();
726
-
727
- generator .string += generator .Indent ();
728
- generator .string += '"';
729
- generator .string += "@name";
730
- generator .string += '"';
731
- generator .string += ':';
732
- generator .string += generator .TidySpace ();
733
- generator .string += generator .JSONEncode (key);
734
- generator .string += ',';
735
- generator .string += generator .TidyBreak ();
736
-
737
- generator .string += generator .Indent ();
738
- generator .string += '"';
739
- generator .string += "@content";
740
- generator .string += '"';
741
- generator .string += ':';
742
- generator .string += generator .TidySpace ();
743
- generator .string += generator .JSONEncode (value);
744
- generator .string += generator .TidyBreak ();
745
-
746
- generator .string += generator .DecIndent ();
747
- generator .string += generator .Indent ();
748
- generator .string += '}';
749
-
750
- if (++ i !== this .getMetaDatas () .size)
752
+ for (const [j, value] of values .entries ())
753
+ {
754
+ generator .string += generator .Indent ();
755
+ generator .string += '{';
756
+ generator .string += generator .TidyBreak ();
757
+ generator .string += generator .IncIndent ();
758
+
759
+ generator .string += generator .Indent ();
760
+ generator .string += '"';
761
+ generator .string += "@name";
762
+ generator .string += '"';
763
+ generator .string += ':';
764
+ generator .string += generator .TidySpace ();
765
+ generator .string += generator .JSONEncode (key);
751
766
  generator .string += ',';
752
-
753
- generator .string += generator .TidyBreak ();
767
+ generator .string += generator .TidyBreak ();
768
+
769
+ generator .string += generator .Indent ();
770
+ generator .string += '"';
771
+ generator .string += "@content";
772
+ generator .string += '"';
773
+ generator .string += ':';
774
+ generator .string += generator .TidySpace ();
775
+ generator .string += generator .JSONEncode (value);
776
+ generator .string += generator .TidyBreak ();
777
+
778
+ generator .string += generator .DecIndent ();
779
+ generator .string += generator .Indent ();
780
+ generator .string += '}';
781
+
782
+ if (!(i === this .getMetaDatas () .size - 1 && j === values .length - 1))
783
+ generator .string += ',';
784
+
785
+ generator .string += generator .TidyBreak ();
786
+ }
754
787
  }
755
788
 
756
789
 
@@ -618,7 +618,7 @@ VRMLParser .prototype = Object .assign (Object .create (X3DParser .prototype),
618
618
  {
619
619
  var metavalue = this .value;
620
620
 
621
- this .getScene () .setMetaData (metakey, metavalue);
621
+ this .getScene () .addMetaData (metakey, metavalue);
622
622
  return true;
623
623
  }
624
624
 
@@ -393,7 +393,7 @@ XMLParser .prototype = Object .assign (Object .create (X3DParser .prototype),
393
393
  if (metavalue === null)
394
394
  return console .warn ("XML Parser Error: Bad meta statement: Expected content attribute.");
395
395
 
396
- this .getScene () .setMetaData (metakey, metavalue);
396
+ this .getScene () .addMetaData (metakey, metavalue);
397
397
  },
398
398
  sceneElement: function (xmlElement)
399
399
  {