sunrize 2.1.8 → 2.1.10

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 (62) hide show
  1. package/package.json +22 -14
  2. package/src/Application/ActionKeys.js +1 -1
  3. package/src/Application/DataStorage.js +1 -1
  4. package/src/Application/Document.js +1 -1
  5. package/src/Application/Footer.js +15 -15
  6. package/src/Application/Hierarchy.js +1 -1
  7. package/src/Application/Registry.js +1 -1
  8. package/src/Application/Selection.js +1 -1
  9. package/src/Application/Sidebar.js +16 -16
  10. package/src/Application/Tabs.js +2 -2
  11. package/src/Bits/MimeTypes.js +1 -1
  12. package/src/Controls/AnimationPropertiesPopover.js +3 -3
  13. package/src/Controls/Dialog.js +2 -2
  14. package/src/Controls/EditNodePopover.js +1 -1
  15. package/src/Controls/EditUserDefinedFieldPopover.js +13 -45
  16. package/src/Controls/ExportNodePopover.js +1 -1
  17. package/src/Controls/ImportNodePopover.js +1 -1
  18. package/src/Controls/RenameNodeInput.js +1 -1
  19. package/src/Controls/Splitter.js +2 -2
  20. package/src/Controls/Tabs.js +25 -25
  21. package/src/Controls/TexturePreviewPopover.js +3 -3
  22. package/src/Controls/VideoPreviewPopover.js +3 -3
  23. package/src/Editors/AnimationEditor.js +10 -10
  24. package/src/Editors/AnimationMemberList.js +1 -1
  25. package/src/Editors/FileManager.js +7 -7
  26. package/src/Editors/Library.js +2 -2
  27. package/src/Editors/OutlineEditor.js +37 -37
  28. package/src/Editors/OutlineRouteGraph.js +2 -2
  29. package/src/Editors/OutlineView.js +99 -97
  30. package/src/Editors/Panel.js +17 -10
  31. package/src/Editors/SceneProperties.js +8 -8
  32. package/src/Editors/ScriptEditor.js +7 -7
  33. package/src/Editors/Units.js +1 -1
  34. package/src/Parser/AudioParser.js +1 -1
  35. package/src/Parser/ImageParser.js +1 -1
  36. package/src/Parser/VideoParser.js +1 -1
  37. package/src/Tools/CADGeometry/CADAssemblyTool.js +4 -4
  38. package/src/Tools/CADGeometry/CADFaceTool.js +4 -4
  39. package/src/Tools/CADGeometry/CADLayerTool.js +4 -4
  40. package/src/Tools/CADGeometry/CADPartTool.js +4 -4
  41. package/src/Tools/Core/X3DBaseTool.js +1 -1
  42. package/src/Tools/Core/X3DNodeTool.js +3 -1
  43. package/src/Tools/Core/X3DPrototypeInstanceTool.js +1 -1
  44. package/src/Tools/Grouping/GroupTool.js +1 -1
  45. package/src/Tools/Grouping/StaticGroupTool.js +4 -4
  46. package/src/Tools/Grouping/SwitchTool.js +4 -4
  47. package/src/Tools/Grouping/TransformTool.js +4 -4
  48. package/src/Tools/Grouping/X3DTransformNodeTool.js +1 -1
  49. package/src/Tools/HAnim/HAnimHumanoidTool.js +4 -4
  50. package/src/Tools/HAnim/HAnimJointTool.js +4 -4
  51. package/src/Tools/HAnim/HAnimSegmentTool.js +4 -4
  52. package/src/Tools/HAnim/HAnimSiteTool.js +4 -4
  53. package/src/Tools/Layering/LayerTool.js +3 -3
  54. package/src/Tools/Layering/ViewportTool.js +1 -1
  55. package/src/Tools/Networking/AnchorTool.js +4 -4
  56. package/src/Tools/Networking/InlineGeometryTool.js +1 -1
  57. package/src/Tools/Networking/InlineTool.js +4 -4
  58. package/src/Undo/Editor.js +68 -68
  59. package/src/Undo/UndoManager.js +1 -1
  60. package/src/assets/X3DUOM.xml +30 -50
  61. package/src/assets/images/OutlineEditor/Fields/MFQuaternion.svg +199 -0
  62. package/src/assets/images/OutlineEditor/Fields/SFQuaternion.svg +199 -0
@@ -1,4 +1,4 @@
1
- "use strict"
1
+ "use strict";
2
2
 
3
3
  const
4
4
  $ = require ("jquery"),
@@ -9,7 +9,7 @@ const
9
9
  X3D = require ("../X3D"),
10
10
  Traverse = require ("x3d-traverse"),
11
11
  UndoManager = require ("./UndoManager"),
12
- _ = require ("../Application/GetText")
12
+ _ = require ("../Application/GetText");
13
13
 
14
14
  module .exports = class Editor
15
15
  {
@@ -21,7 +21,7 @@ module .exports = class Editor
21
21
  /**
22
22
  * X3D Id
23
23
  */
24
- static Id = /(?:^[^\x30-\x39\x00-\x20\x22\x23\x27\x2b\x2c\x2d\x2e\x5b\x5c\x5d\x7b\x7d\x7f]{1}[^\x00-\x20\x22\x23\x27\x2c\x2e\x5b\x5c\x5d\x7b\x7d\x7f]*$|^$)/
24
+ static Id = /(?:^[^\x30-\x39\x00-\x20\x22\x23\x27\x2b\x2c\x2d\x2e\x5b\x5c\x5d\x7b\x7d\x7f]{1}[^\x00-\x20\x22\x23\x27\x2c\x2e\x5b\x5c\x5d\x7b\x7d\x7f]*$|^$)/;
25
25
 
26
26
  /**
27
27
  *
@@ -83,7 +83,7 @@ module .exports = class Editor
83
83
 
84
84
  // Determine protos.
85
85
 
86
- const protoNodes = new Set ()
86
+ const protoNodes = new Set ();
87
87
 
88
88
  for (const object of Traverse .traverse (objects, Traverse .PROTO_DECLARATIONS | Traverse .PROTO_DECLARATION_BODY | Traverse .ROOT_NODES | Traverse .PROTOTYPE_INSTANCES))
89
89
  {
@@ -436,19 +436,19 @@ module .exports = class Editor
436
436
  {
437
437
  case ".x3d":
438
438
  default:
439
- return scene .toXMLString ()
439
+ return scene .toXMLString ();
440
440
  case ".x3dz":
441
- return zlib .gzipSync (scene .toXMLString ({ style: "CLEAN" }))
441
+ return zlib .gzipSync (scene .toXMLString ({ style: "CLEAN" }));
442
442
  case ".x3dv":
443
- return scene .toVRMLString ()
443
+ return scene .toVRMLString ();
444
444
  case ".x3dvz":
445
- return zlib .gzipSync (scene .toVRMLString ({ style: "CLEAN" }))
445
+ return zlib .gzipSync (scene .toVRMLString ({ style: "CLEAN" }));
446
446
  case ".x3dj":
447
- return scene .toJSONString ()
447
+ return scene .toJSONString ();
448
448
  case ".x3djz":
449
- return zlib .gzipSync (scene .toJSONString ({ style: "CLEAN" }))
449
+ return zlib .gzipSync (scene .toJSONString ({ style: "CLEAN" }));
450
450
  case ".html":
451
- return this .getHTML (scene)
451
+ return this .getHTML (scene);
452
452
  }
453
453
  }
454
454
 
@@ -535,7 +535,7 @@ ${scene .toXMLString ({ html: true, indent: " " .repeat (6) }) .trimEnd () }
535
535
  <p>Made with <a href="https://create3000.github.io/sunrize/" target="_blank">Sunrize X3D Editor</a>. If local files are not loaded <a href="https://create3000.github.io/x_ite/setup-a-localhost-server">consider setup a localhost server</a> or use <a href="https://create3000.github.io/x_ite/dom-integration">DOM integration methods</a>.</p>
536
536
  </body>
537
537
  </html>
538
- `
538
+ `;
539
539
  }
540
540
 
541
541
  static absoluteURL = new RegExp ("^(?:[a-z]+:|//)", "i");
@@ -550,7 +550,7 @@ ${scene .toXMLString ({ html: true, indent: " " .repeat (6) }) .trimEnd () }
550
550
  */
551
551
  static rewriteURLs (executionContext, objects, oldWorldURL, newWorldURL, undoManager = UndoManager .shared)
552
552
  {
553
- undoManager .beginUndo (_("Rewrite URLs"))
553
+ undoManager .beginUndo (_("Rewrite URLs"));
554
554
 
555
555
  for (const object of Traverse .traverse (objects, Traverse .EXTERNPROTO_DECLARATIONS | Traverse .PROTO_DECLARATIONS | Traverse .PROTO_DECLARATION_BODY | Traverse .ROOT_NODES))
556
556
  {
@@ -637,19 +637,19 @@ ${scene .toXMLString ({ html: true, indent: " " .repeat (6) }) .trimEnd () }
637
637
  static isParentContext (parentContext, childContext)
638
638
  {
639
639
  if (parentContext === childContext)
640
- return false
640
+ return false;
641
641
 
642
- let executionContext = childContext
642
+ let executionContext = childContext;
643
643
 
644
644
  while (!(executionContext instanceof X3D .X3DScene))
645
645
  {
646
646
  if (executionContext === parentContext)
647
- return true
647
+ return true;
648
648
 
649
- executionContext = executionContext .getExecutionContext ()
649
+ executionContext = executionContext .getExecutionContext ();
650
650
  }
651
651
 
652
- return executionContext === parentContext
652
+ return executionContext === parentContext;
653
653
  }
654
654
 
655
655
  /**
@@ -860,15 +860,15 @@ ${scene .toXMLString ({ html: true, indent: " " .repeat (6) }) .trimEnd () }
860
860
  const
861
861
  unit = scene .getUnit (category),
862
862
  oldName = unit .name,
863
- oldConversionFactor = unit .conversionFactor
863
+ oldConversionFactor = unit .conversionFactor;
864
864
 
865
- undoManager .beginUndo (_("Update Unit Category »%s«"), category)
865
+ undoManager .beginUndo (_("Update Unit Category »%s«"), category);
866
866
 
867
- scene .updateUnit (category, name, conversionFactor)
867
+ scene .updateUnit (category, name, conversionFactor);
868
868
 
869
869
  undoManager .registerUndo (() =>
870
870
  {
871
- this .updateUnit (scene, category, oldName, oldConversionFactor, undoManager)
871
+ this .updateUnit (scene, category, oldName, oldConversionFactor, undoManager);
872
872
  });
873
873
 
874
874
  undoManager .endUndo ();
@@ -1179,23 +1179,23 @@ ${scene .toXMLString ({ html: true, indent: " " .repeat (6) }) .trimEnd () }
1179
1179
  {
1180
1180
  const
1181
1181
  oldProtos = new Map (Array .from (executionContext .protos, p => [p .getName (), p])),
1182
- proto = new X3D .X3DProtoDeclaration (executionContext)
1182
+ proto = new X3D .X3DProtoDeclaration (executionContext);
1183
1183
 
1184
- undoManager .beginUndo (_("Add Proto Declaration »%s«"), name)
1184
+ undoManager .beginUndo (_("Add Proto Declaration »%s«"), name);
1185
1185
 
1186
- proto .setup ()
1187
- executionContext .updateProtoDeclaration (name, proto)
1186
+ proto .setup ();
1187
+ executionContext .updateProtoDeclaration (name, proto);
1188
1188
 
1189
1189
  undoManager .registerUndo (() =>
1190
1190
  {
1191
- this .setProtoDeclarations (executionContext, oldProtos, undoManager)
1191
+ this .setProtoDeclarations (executionContext, oldProtos, undoManager);
1192
1192
  });
1193
1193
 
1194
- this .requestUpdateInstances (executionContext, undoManager)
1194
+ this .requestUpdateInstances (executionContext, undoManager);
1195
1195
 
1196
1196
  undoManager .endUndo ();
1197
1197
 
1198
- return proto
1198
+ return proto;
1199
1199
  }
1200
1200
 
1201
1201
  /**
@@ -1207,21 +1207,21 @@ ${scene .toXMLString ({ html: true, indent: " " .repeat (6) }) .trimEnd () }
1207
1207
  */
1208
1208
  static updateProtoDeclaration (executionContext, name, proto, undoManager = UndoManager .shared)
1209
1209
  {
1210
- const oldName = proto .getName ()
1210
+ const oldName = proto .getName ();
1211
1211
 
1212
- undoManager .beginUndo (_("Update Proto Declaration »%s«"), name)
1212
+ undoManager .beginUndo (_("Update Proto Declaration »%s«"), name);
1213
1213
 
1214
- executionContext .updateProtoDeclaration (name, proto)
1214
+ executionContext .updateProtoDeclaration (name, proto);
1215
1215
 
1216
1216
  undoManager .registerUndo (() =>
1217
1217
  {
1218
1218
  if (oldName)
1219
- this .updateProtoDeclaration (executionContext, oldName, proto, undoManager)
1219
+ this .updateProtoDeclaration (executionContext, oldName, proto, undoManager);
1220
1220
  else
1221
- this .removeProtoDeclaration (executionContext, name, undoManager)
1221
+ this .removeProtoDeclaration (executionContext, name, undoManager);
1222
1222
  });
1223
1223
 
1224
- this .requestUpdateInstances (executionContext, undoManager)
1224
+ this .requestUpdateInstances (executionContext, undoManager);
1225
1225
 
1226
1226
  undoManager .endUndo ();
1227
1227
  }
@@ -1234,18 +1234,18 @@ ${scene .toXMLString ({ html: true, indent: " " .repeat (6) }) .trimEnd () }
1234
1234
  */
1235
1235
  static removeProtoDeclaration (executionContext, name, undoManager = UndoManager .shared)
1236
1236
  {
1237
- const oldProtos = new Map (Array .from (executionContext .protos, p => [p .getName (), p]))
1237
+ const oldProtos = new Map (Array .from (executionContext .protos, p => [p .getName (), p]));
1238
1238
 
1239
- undoManager .beginUndo (_("Remove Proto Declaration »%s«"), name)
1239
+ undoManager .beginUndo (_("Remove Proto Declaration »%s«"), name);
1240
1240
 
1241
- executionContext .removeProtoDeclaration (name)
1241
+ executionContext .removeProtoDeclaration (name);
1242
1242
 
1243
1243
  undoManager .registerUndo (() =>
1244
1244
  {
1245
- this .setProtoDeclarations (executionContext, oldProtos, undoManager)
1245
+ this .setProtoDeclarations (executionContext, oldProtos, undoManager);
1246
1246
  });
1247
1247
 
1248
- this .requestUpdateInstances (executionContext, undoManager)
1248
+ this .requestUpdateInstances (executionContext, undoManager);
1249
1249
 
1250
1250
  undoManager .endUndo ();
1251
1251
  }
@@ -1541,39 +1541,39 @@ ${scene .toXMLString ({ html: true, indent: " " .repeat (6) }) .trimEnd () }
1541
1541
  */
1542
1542
  static getNextAvailableProtoNode (executionContext, protoNode)
1543
1543
  {
1544
- const name = protoNode instanceof X3D .X3DProtoDeclarationNode ? protoNode .getName () : protoNode
1544
+ const name = protoNode instanceof X3D .X3DProtoDeclarationNode ? protoNode .getName () : protoNode;
1545
1545
 
1546
1546
  if (protoNode instanceof X3D .X3DProtoDeclaration)
1547
1547
  {
1548
- const externproto = executionContext .externprotos .get (name)
1548
+ const externproto = executionContext .externprotos .get (name);
1549
1549
 
1550
1550
  if (externproto)
1551
- return externproto
1551
+ return externproto;
1552
1552
  }
1553
1553
 
1554
- const proto = executionContext .getOuterNode ()
1554
+ const proto = executionContext .getOuterNode ();
1555
1555
 
1556
1556
  if (!(proto instanceof X3D .X3DProtoDeclaration))
1557
- return null
1557
+ return null;
1558
1558
 
1559
- executionContext = proto .getExecutionContext ()
1559
+ executionContext = proto .getExecutionContext ();
1560
1560
 
1561
- const index = executionContext .protos .indexOf (proto)
1561
+ const index = executionContext .protos .indexOf (proto);
1562
1562
 
1563
1563
  for (let i = 0; i < index; ++ i)
1564
1564
  {
1565
- const proto = executionContext .protos [i]
1565
+ const proto = executionContext .protos [i];
1566
1566
 
1567
1567
  if (proto .getName () === name)
1568
- return proto
1568
+ return proto;
1569
1569
  }
1570
1570
 
1571
- const externproto = executionContext .externprotos .get (name)
1571
+ const externproto = executionContext .externprotos .get (name);
1572
1572
 
1573
1573
  if (externproto)
1574
- return externproto
1574
+ return externproto;
1575
1575
 
1576
- return this .getNextAvailableProtoNode (executionContext, name)
1576
+ return this .getNextAvailableProtoNode (executionContext, name);
1577
1577
  }
1578
1578
 
1579
1579
  /**
@@ -2422,22 +2422,22 @@ ${scene .toXMLString ({ html: true, indent: " " .repeat (6) }) .trimEnd () }
2422
2422
  static addReference (proto, protoField, node, field, undoManager = UndoManager .shared)
2423
2423
  {
2424
2424
  node = node .valueOf ();
2425
- field = typeof field === "string" ? node .getField (field) : field
2425
+ field = typeof field === "string" ? node .getField (field) : field;
2426
2426
 
2427
2427
  const
2428
2428
  instance = node .getType () .includes (X3D .X3DConstants .X3DPrototypeInstance),
2429
- name = field .getName ()
2429
+ name = field .getName ();
2430
2430
 
2431
- undoManager .beginUndo (_("Add Reference from »%s« to »%s«"), protoField .getName (), field .getName ())
2431
+ undoManager .beginUndo (_("Add Reference from »%s« to »%s«"), protoField .getName (), field .getName ());
2432
2432
 
2433
- field .addReference (protoField)
2433
+ field .addReference (protoField);
2434
2434
 
2435
2435
  undoManager .registerUndo (() =>
2436
2436
  {
2437
- this .removeReference (proto, protoField, node, instance ? name : field, undoManager)
2437
+ this .removeReference (proto, protoField, node, instance ? name : field, undoManager);
2438
2438
  });
2439
2439
 
2440
- this .requestUpdateInstances (proto, undoManager)
2440
+ this .requestUpdateInstances (proto, undoManager);
2441
2441
 
2442
2442
  undoManager .endUndo ();
2443
2443
  }
@@ -2452,22 +2452,22 @@ ${scene .toXMLString ({ html: true, indent: " " .repeat (6) }) .trimEnd () }
2452
2452
  static removeReference (proto, protoField, node, field, undoManager = UndoManager .shared)
2453
2453
  {
2454
2454
  node = node .valueOf ();
2455
- field = typeof field === "string" ? node .getField (field) : field
2455
+ field = typeof field === "string" ? node .getField (field) : field;
2456
2456
 
2457
2457
  const
2458
2458
  instance = node .getType () .includes (X3D .X3DConstants .X3DPrototypeInstance),
2459
- name = field .getName ()
2459
+ name = field .getName ();
2460
2460
 
2461
- undoManager .beginUndo (_("Remove Reference from »%s« to »%s«"), protoField .getName (), field .getName ())
2461
+ undoManager .beginUndo (_("Remove Reference from »%s« to »%s«"), protoField .getName (), field .getName ());
2462
2462
 
2463
- field .removeReference (protoField)
2463
+ field .removeReference (protoField);
2464
2464
 
2465
2465
  undoManager .registerUndo (() =>
2466
2466
  {
2467
- this .addReference (proto, protoField, node, instance ? name : field, undoManager)
2467
+ this .addReference (proto, protoField, node, instance ? name : field, undoManager);
2468
2468
  });
2469
2469
 
2470
- this .requestUpdateInstances (proto, undoManager)
2470
+ this .requestUpdateInstances (proto, undoManager);
2471
2471
 
2472
2472
  undoManager .endUndo ();
2473
2473
  }
@@ -2860,7 +2860,7 @@ ${scene .toXMLString ({ html: true, indent: " " .repeat (6) }) .trimEnd () }
2860
2860
  {
2861
2861
  case X3D .X3DConstants .DirectionalLight:
2862
2862
  return new X3D .Box3 (X3D .Vector3 .ONE, innerNode .getMetaData ("DirectionalLight/location", new X3D .Vector3 ()))
2863
- .multLeft (new X3D .Matrix4 () .setRotation (X3D .Rotation4 .fromVectors (X3D .Vector3 .Z_AXIS, innerNode ._direction .getValue ())))
2863
+ .multLeft (X3D .Matrix4 .fromRotation (X3D .Rotation4 .fromVectors (X3D .Vector3 .Z_AXIS, innerNode ._direction .getValue ())))
2864
2864
  .multRight (modelMatrix);
2865
2865
  case X3D .X3DConstants .PointLight:
2866
2866
  return new X3D .Box3 (X3D .Vector3 .ONE, innerNode ._location .getValue ())
@@ -2869,7 +2869,7 @@ ${scene .toXMLString ({ html: true, indent: " " .repeat (6) }) .trimEnd () }
2869
2869
  case X3D .X3DConstants .Sound:
2870
2870
  case X3D .X3DConstants .X3DTextureProjectorNode:
2871
2871
  return new X3D .Box3 (X3D .Vector3 .ONE, innerNode ._location .getValue ())
2872
- .multLeft (new X3D .Matrix4 () .setRotation (X3D .Rotation4 .fromVectors (X3D .Vector3 .Z_AXIS, innerNode ._direction .getValue ())))
2872
+ .multLeft (X3D .Matrix4 .fromRotation (X3D .Rotation4 .fromVectors (X3D .Vector3 .Z_AXIS, innerNode ._direction .getValue ())))
2873
2873
  .multRight (modelMatrix);
2874
2874
  case X3D .X3DConstants .X3DBoundedObject:
2875
2875
  return innerNode .getBBox (new X3D .Box3 ()) .multRight (modelMatrix);
@@ -2881,7 +2881,7 @@ ${scene .toXMLString ({ html: true, indent: " " .repeat (6) }) .trimEnd () }
2881
2881
  .multRight (modelMatrix);
2882
2882
  case X3D .X3DConstants .X3DViewpointNode:
2883
2883
  return new X3D .Box3 (X3D .Vector3 .ONE, innerNode ._position .getValue ())
2884
- .multLeft (new X3D .Matrix4 () .setRotation (innerNode ._orientation .getValue ()))
2884
+ .multLeft (X3D .Matrix4 .fromRotation (innerNode ._orientation .getValue ()))
2885
2885
  .multRight (modelMatrix);
2886
2886
  case X3D .X3DConstants .X3DLayerNode:
2887
2887
  return innerNode .getBBox (new X3D .Box3 ());
@@ -3032,7 +3032,7 @@ ${scene .toXMLString ({ html: true, indent: " " .repeat (6) }) .trimEnd () }
3032
3032
  {
3033
3033
  const
3034
3034
  node = object instanceof X3D .SFNode ? object .getValue () : object,
3035
- fields = node instanceof X3D .X3DExecutionContext ? [node .getRootNodes ()] : node .getFields ()
3035
+ fields = node instanceof X3D .X3DExecutionContext ? [node .getRootNodes ()] : node .getFields ();
3036
3036
 
3037
3037
  for (const field of fields)
3038
3038
  {
@@ -53,7 +53,7 @@ module .exports = class UndoManager
53
53
  if (this .undoIndex < 0)
54
54
  this .undoLabel = _("Undo");
55
55
  else
56
- this .undoLabel = util .format (_("Undo %s"), this .undoList [this .undoIndex] .description)
56
+ this .undoLabel = util .format (_("Undo %s"), this .undoList [this .undoIndex] .description);
57
57
 
58
58
  this .redoLabel = util .format (_("Redo %s"), undoItem .description);
59
59
 
@@ -2,8 +2,8 @@
2
2
  <!-- X3D Unified Object Model (X3DUOM) X3dUnifiedObjectModel-4.1.xml -->
3
3
  <!-- Online at https://www.web3d.org/specifications/X3dUnifiedObjectModel-4.1.xml -->
4
4
  <!-- This file contains a listing of all abstract and concrete nodes in version 4.1 of X3D -->
5
- <!-- Generated 2026-06-17-07:00 18:19:27.7000684-07:00 -->
6
- <X3dUnifiedObjectModel xmlns:xsd="https://www.w3.org/2001/XMLSchema-instance"
5
+ <!-- Generated 2026-06-21-07:00 21:40:54.6369714-07:00 -->
6
+ <X3dUnifiedObjectModel xmlns:xsd="http://www.w3.org/2001/XMLSchema-instance"
7
7
  version="4.1"
8
8
  xsd:noNamespaceSchemaLocation="https://www.web3d.org/specifications/X3dUnifiedObjectModel.xsd">
9
9
  <SimpleTypeEnumerations>
@@ -66,15 +66,15 @@
66
66
  <enumeration value="&#34;BOUNCE&#34;" appinfo="The bounce field value is used."/>
67
67
  <enumeration value="&#34;USER_FRICTION&#34;"
68
68
  appinfo="The system will normally calculate the friction direction vector that is perpendicular to the contact normal. This setting indicates that the user-supplied value in this contact should be used."/>
69
- <enumeration value="&#34;FRICTION_COEFFICIENT-2&#34;"
69
+ <enumeration value="&#34;FRICTION_COEFFICIENT_2&#34;"
70
70
  appinfo="Apply frictionCoefficients values"/>
71
71
  <enumeration value="&#34;ERROR_REDUCTION&#34;" appinfo="Apply softnessErrorCorrection value"/>
72
72
  <enumeration value="&#34;CONSTANT_FORCE&#34;" appinfo="Apply softnessConstantForceMix value"/>
73
- <enumeration value="&#34;SPEED-1&#34;" appinfo="Apply first component of surfaceSpeed array"/>
74
- <enumeration value="&#34;SPEED-2&#34;"
73
+ <enumeration value="&#34;SPEED_1&#34;" appinfo="Apply first component of surfaceSpeed array"/>
74
+ <enumeration value="&#34;SPEED_2&#34;"
75
75
  appinfo="Apply second component of surfaceSpeed array"/>
76
- <enumeration value="&#34;SLIP-1&#34;" appinfo="Apply first component of slipFactors array"/>
77
- <enumeration value="&#34;SLIP-2&#34;" appinfo="Apply second component of slipFactors array"/>
76
+ <enumeration value="&#34;SLIP_1&#34;" appinfo="Apply first component of slipFactors array"/>
77
+ <enumeration value="&#34;SLIP_2&#34;" appinfo="Apply second component of slipFactors array"/>
78
78
  </SimpleType>
79
79
  <SimpleType name="bboxSizeType"
80
80
  baseType="SFVec3f"
@@ -601,6 +601,9 @@
601
601
  <enumeration value="MFInt32" appinfo="Multiple Field (list) 32-bit integer"/>
602
602
  <enumeration value="SFNode" appinfo="Single Field (singleton) node"/>
603
603
  <enumeration value="MFNode" appinfo="Multiple Field (list) nodes"/>
604
+ <enumeration value="SFQuaternion"
605
+ appinfo="Single Field (singleton) quaternion value"/>
606
+ <enumeration value="MFQuaternion" appinfo="Multiple Field (list) quaternion values"/>
604
607
  <enumeration value="SFRotation"
605
608
  appinfo="Single Field (singleton) rotation value using 3-tuple axis, radian angle"/>
606
609
  <enumeration value="MFRotation"
@@ -5070,9 +5073,9 @@
5070
5073
  </InterfaceDefinition>
5071
5074
  </FieldType>
5072
5075
  <FieldType type="SFQuaternion"
5073
- tupleSize="1"
5076
+ tupleSize="4"
5074
5077
  isArray="false"
5075
- defaultValue="0.0 0.0 0.0 1.0"
5078
+ defaultValue="0.0 0.0 0.0 0.0"
5076
5079
  regex="\s*(([+-]?((0|[1-9][0-9]*)(\.[0-9]*)?|\.[0-9]+)([Ee][+-]?[0-9]+)?)\s+){3}([+-]?((0|[1-9][0-9]*)(\.[0-9]*)?|\.[0-9]+)([Ee][+-]?[0-9]+)?)\s*">
5077
5080
  <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4.1-CD/Part01/fieldTypes.html#SFQuaternionAndMFQuaternion"
5078
5081
  appinfo="SFQuaternion is a 4-tuple set of double-precision floating-point values, specifying a 3D homogeneous vector. Warning: comma characters within singleton values do not pass strict XML validation.">
@@ -5080,7 +5083,7 @@
5080
5083
  </InterfaceDefinition>
5081
5084
  </FieldType>
5082
5085
  <FieldType type="MFQuaternion"
5083
- tupleSize="1"
5086
+ tupleSize="4"
5084
5087
  isArray="true"
5085
5088
  defaultValue=""
5086
5089
  regex="\s*((([+-]?((0|[1-9][0-9]*)(\.[0-9]*)?|\.[0-9]+)([Ee][+-]?[0-9]+)?)\s+){3}([+-]?((0|[1-9][0-9]*)(\.[0-9]*)?|\.[0-9]+)([Ee][+-]?[0-9]+)?)\s*,?\s*)*">
@@ -5112,7 +5115,7 @@
5112
5115
  <FieldType type="SFString"
5113
5116
  tupleSize="1"
5114
5117
  isArray="false"
5115
- defaultValue="SRGB_REC709_DISPLAY"
5118
+ defaultValue=""
5116
5119
  regex="(\s|\S)*">
5117
5120
  <InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4.1-CD/Part01/fieldTypes.html#SFStringAndMFString"
5118
5121
  appinfo="SFString defines a single string encoded with the UTF-8 universal character set.">
@@ -13974,18 +13977,18 @@
13974
13977
  <enumeration value="&#34;BOUNCE&#34;" appinfo="The bounce field value is used."/>
13975
13978
  <enumeration value="&#34;USER_FRICTION&#34;"
13976
13979
  appinfo="The system will normally calculate the friction direction vector that is perpendicular to the contact normal. This setting indicates that the user-supplied value in this contact should be used."/>
13977
- <enumeration value="&#34;FRICTION_COEFFICIENT-2&#34;"
13980
+ <enumeration value="&#34;FRICTION_COEFFICIENT_2&#34;"
13978
13981
  appinfo="Apply frictionCoefficients values."/>
13979
13982
  <enumeration value="&#34;ERROR_REDUCTION&#34;"
13980
13983
  appinfo="Apply softnessErrorCorrection value."/>
13981
13984
  <enumeration value="&#34;CONSTANT_FORCE&#34;"
13982
13985
  appinfo="Apply softnessConstantForceMix value."/>
13983
- <enumeration value="&#34;SPEED-1&#34;"
13986
+ <enumeration value="&#34;SPEED_1&#34;"
13984
13987
  appinfo="Apply first component of surfaceSpeed array."/>
13985
- <enumeration value="&#34;SPEED-2&#34;"
13988
+ <enumeration value="&#34;SPEED_2&#34;"
13986
13989
  appinfo="Apply second component of surfaceSpeed array."/>
13987
- <enumeration value="&#34;SLIP-1&#34;" appinfo="Apply first component of slipFactors array."/>
13988
- <enumeration value="&#34;SLIP-2&#34;" appinfo="Apply second component of slipFactors array."/>
13990
+ <enumeration value="&#34;SLIP_1&#34;" appinfo="Apply first component of slipFactors array."/>
13991
+ <enumeration value="&#34;SLIP_2&#34;" appinfo="Apply second component of slipFactors array."/>
13989
13992
  </field>
13990
13993
  <field name="bboxCenter"
13991
13994
  type="SFVec3f"
@@ -15275,18 +15278,18 @@
15275
15278
  <enumeration value="&#34;BOUNCE&#34;" appinfo="The bounce field value is used."/>
15276
15279
  <enumeration value="&#34;USER_FRICTION&#34;"
15277
15280
  appinfo="The system will normally calculate the friction direction vector that is perpendicular to the contact normal. This setting indicates that the user-supplied value in this contact should be used."/>
15278
- <enumeration value="&#34;FRICTION_COEFFICIENT-2&#34;"
15281
+ <enumeration value="&#34;FRICTION_COEFFICIENT_2&#34;"
15279
15282
  appinfo="Apply frictionCoefficients values."/>
15280
15283
  <enumeration value="&#34;ERROR_REDUCTION&#34;"
15281
15284
  appinfo="Apply softnessErrorCorrection value."/>
15282
15285
  <enumeration value="&#34;CONSTANT_FORCE&#34;"
15283
15286
  appinfo="Apply softnessConstantForceMix value."/>
15284
- <enumeration value="&#34;SPEED-1&#34;"
15287
+ <enumeration value="&#34;SPEED_1&#34;"
15285
15288
  appinfo="Apply first component of surfaceSpeed array."/>
15286
- <enumeration value="&#34;SPEED-2&#34;"
15289
+ <enumeration value="&#34;SPEED_2&#34;"
15287
15290
  appinfo="Apply second component of surfaceSpeed array."/>
15288
- <enumeration value="&#34;SLIP-1&#34;" appinfo="Apply first component of slipFactors array."/>
15289
- <enumeration value="&#34;SLIP-2&#34;" appinfo="Apply second component of slipFactors array."/>
15291
+ <enumeration value="&#34;SLIP_1&#34;" appinfo="Apply first component of slipFactors array."/>
15292
+ <enumeration value="&#34;SLIP_2&#34;" appinfo="Apply second component of slipFactors array."/>
15290
15293
  </field>
15291
15294
  <field name="body1"
15292
15295
  type="SFNode"
@@ -18893,19 +18896,9 @@
18893
18896
  inheritedFrom="X3DUrlObject"
18894
18897
  description="Author-provided prose that describes intended purpose of the url asset."/>
18895
18898
  <field name="family"
18896
- type="MFString"
18899
+ type="SFString"
18897
18900
  accessType="inputOutput"
18898
- additionalEnumerationValuesAllowed="true"
18899
- simpleType="fontFamilyValues"
18900
- baseType="MFString"
18901
- description="Array of quoted font family names in preference order, browsers use the first supported family.">
18902
- <enumeration value="&#34;SANS&#34;"
18903
- appinfo="default font family for sans-serif font such as Helvetica."/>
18904
- <enumeration value="&#34;SERIF&#34;"
18905
- appinfo="default font family for serif font such as Times-Roman."/>
18906
- <enumeration value="&#34;TYPEWRITER&#34;"
18907
- appinfo="default font family for a fixed-pitch font such as Courier."/>
18908
- </field>
18901
+ description="The family field provides an identifying alias for the font in the associated file, if that file only contains a single font family (possibly with multiple styles)."/>
18909
18902
  <field name="IS"
18910
18903
  type="SFNode"
18911
18904
  accessType="inputOutput"
@@ -19409,7 +19402,7 @@
19409
19402
  type="SFBool"
19410
19403
  accessType="inputOutput"
19411
19404
  default="true"
19412
- description="indicates whether this instanced shape is a target for pointer events, if FALSE then it is ignored during pointer picking."/>
19405
+ description="indicates whether this GaussianSplats node is a target for pointer events, if FALSE then it is ignored during pointer picking."/>
19413
19406
  <field name="positions"
19414
19407
  type="MFVec3f"
19415
19408
  accessType="inputOutput"
@@ -31903,11 +31896,6 @@
31903
31896
  default="true"
31904
31897
  inheritedFrom="X3DShapeNode"
31905
31898
  description="The castShadow field defines whether this Shape casts shadows as produced by lighting nodes."/>
31906
- <field name="castShadow"
31907
- type="SFBool"
31908
- accessType="inputOutput"
31909
- default="true"
31910
- description="The castShadow field defines whether this Shape casts shadows as produced by lighting nodes."/>
31911
31899
  <field name="color"
31912
31900
  synonym="colorRamp"
31913
31901
  type="SFNode"
@@ -35044,17 +35032,6 @@
35044
35032
  acceptableNodeTypes="TextureProperties"
35045
35033
  inheritedFrom="X3DTexture2DNode"
35046
35034
  description="Optional single contained TextureProperties node that can specify additional visual attributes applied to corresponding texture images."/>
35047
- <field name="update"
35048
- type="SFString"
35049
- accessType="inputOutput"
35050
- default="NONE"
35051
- additionalEnumerationValuesAllowed="false"
35052
- simpleType="generatedCubeMapTextureUpdateChoices"
35053
- baseType="xs:NMTOKEN">
35054
- <enumeration value="NONE" appinfo="no further texture updates are rendered."/>
35055
- <enumeration value="NEXT_FRAME_ONLY" appinfo="render texture once at end of frame."/>
35056
- <enumeration value="ALWAYS" appinfo="texture to be rendered every frame."/>
35057
- </field>
35058
35035
  <field name="updateInterval"
35059
35036
  type="SFTime"
35060
35037
  accessType="inputOutput"
@@ -43534,6 +43511,9 @@
43534
43511
  <enumeration value="MFInt32" appinfo="Multiple Field (list) 32-bit integer."/>
43535
43512
  <enumeration value="SFNode" appinfo="Single Field (singleton) node."/>
43536
43513
  <enumeration value="MFNode" appinfo="Multiple Field (list) nodes."/>
43514
+ <enumeration value="SFQuaternion"
43515
+ appinfo="Single Field (singleton) quaternion value."/>
43516
+ <enumeration value="MFQuaternion" appinfo="Multiple Field (list) quaternion values."/>
43537
43517
  <enumeration value="SFRotation"
43538
43518
  appinfo="Single Field (singleton) rotation value using 3-tuple axis, radian angle."/>
43539
43519
  <enumeration value="MFRotation"