sunrize 2.1.8 → 2.1.9

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/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "sunrize",
3
3
  "productName": "Sunrize X3D Editor",
4
- "version": "2.1.8",
4
+ "version": "2.1.9",
5
5
  "description": "Sunrize — A Multi-Platform X3D Editor",
6
6
  "main": "src/main.js",
7
7
  "bin": {
@@ -21,13 +21,13 @@
21
21
  "premake": "npm i -D electron",
22
22
  "make": "electron-forge make",
23
23
  "postmake": "npm i -P electron",
24
- "publish-to-github": "node build/publish-to-github.js",
24
+ "publish:github": "node build/publish-to-github.js",
25
25
  "predocs": "rm -f -r docs/_site/",
26
26
  "docs": "cd docs && bundle exec jekyll serve --ssl-key ssl/server.key --ssl-cert ssl/server.crt --incremental --host=`ipconfig getifaddr en0`",
27
- "predocs-install": "cd docs && ln -s -f ../../ssl ./",
28
- "docs-install": "cd docs && gem install bundler && bundle install",
29
- "docs-update": "cd docs && bundle update",
30
- "merge-development": "sh build/merge-development.sh",
27
+ "predocs:install": "cd docs && ln -s -f ../../ssl ./",
28
+ "docs:install": "cd docs && gem install bundler && bundle install",
29
+ "docs:update": "cd docs && bundle update",
30
+ "merge:development": "sh build/merge-development.sh",
31
31
  "make-x_ite-for-sunrize": "sh build/make-x_ite-for-sunrize.sh",
32
32
  "loading-gif": "node build/loading-gif.js"
33
33
  },
@@ -88,8 +88,8 @@
88
88
  "@electron-forge/maker-zip": "^7.11.2",
89
89
  "@electron-forge/publisher-github": "^7.11.2",
90
90
  "@eslint/js": "^10.0.1",
91
- "eslint": "^10.5.0",
92
- "globals": "^17.6.0",
91
+ "eslint": "^10.6.0",
92
+ "globals": "^17.7.0",
93
93
  "shell-tools": "^1.1.9"
94
94
  },
95
95
  "dependencies": {
@@ -105,7 +105,7 @@
105
105
  "jquery-ui-dist": "^1.13.3",
106
106
  "jstree": "^3.3.17",
107
107
  "material-icons": "^1.13.14",
108
- "material-symbols": "^0.45.2",
108
+ "material-symbols": "^0.45.4",
109
109
  "md5": "^2.3.0",
110
110
  "mime-types": "^3.0.2",
111
111
  "monaco-editor": "^0.55.1",
@@ -115,10 +115,10 @@
115
115
  "string-similarity": "^4.0.4",
116
116
  "tweakpane": "^4.0.5",
117
117
  "update-electron-app": "^3.2.0",
118
- "x_ite": "^15.1.7",
118
+ "x_ite": "^15.1.8",
119
119
  "x_ite-off-parser": "^1.2.4",
120
- "x_ite-sog-parser": "^1.2.4",
121
- "x_ite-spz-parser": "^1.3.3",
120
+ "x_ite-sog-parser": "^2.0.0",
121
+ "x_ite-spz-parser": "^2.0.0",
122
122
  "x3d-traverse": "^2.0.1"
123
123
  }
124
124
  }
@@ -35,56 +35,24 @@ $.fn.editUserDefinedFieldPopover = function (executionContext, node, field = -1)
35
35
  const typeNameMenu = $("<select></select>")
36
36
  .appendTo (content);
37
37
 
38
- $("<optgroup></optgroup>")
38
+ const singleGroup = $("<optgroup></optgroup>")
39
39
  .attr ("label", "Single Fields")
40
- .append ($("<option></option>") .text ("SFBool"))
41
- .append ($("<option></option>") .text ("SFColor"))
42
- .append ($("<option></option>") .text ("SFColorRGBA"))
43
- .append ($("<option></option>") .text ("SFDouble"))
44
- .append ($("<option></option>") .text ("SFFloat"))
45
- .append ($("<option></option>") .text ("SFImage"))
46
- .append ($("<option></option>") .text ("SFInt32"))
47
- .append ($("<option></option>") .text ("SFMatrix3d"))
48
- .append ($("<option></option>") .text ("SFMatrix3f"))
49
- .append ($("<option></option>") .text ("SFMatrix4d"))
50
- .append ($("<option></option>") .text ("SFMatrix4f"))
51
- .append ($("<option></option>") .text ("SFNode"))
52
- .append ($("<option></option>") .text ("SFRotation"))
53
- .append ($("<option></option>") .text ("SFString"))
54
- .append ($("<option></option>") .text ("SFTime"))
55
- .append ($("<option></option>") .text ("SFVec2d"))
56
- .append ($("<option></option>") .text ("SFVec2f"))
57
- .append ($("<option></option>") .text ("SFVec3d"))
58
- .append ($("<option></option>") .text ("SFVec3f"))
59
- .append ($("<option></option>") .text ("SFVec4d"))
60
- .append ($("<option></option>") .text ("SFVec4f"))
61
40
  .appendTo (typeNameMenu);
62
41
 
63
- $("<optgroup></optgroup>")
42
+ Object .keys (X3D .Fields)
43
+ .filter (typeName => typeName .startsWith ("SF"))
44
+ .sort ()
45
+ .forEach (typeName => singleGroup .append ($("<option></option>") .text (typeName)));
46
+
47
+ const multiGroup = $("<optgroup></optgroup>")
64
48
  .attr ("label", "Multi Fields")
65
- .append ($("<option></option>") .text ("MFBool"))
66
- .append ($("<option></option>") .text ("MFColor"))
67
- .append ($("<option></option>") .text ("MFColorRGBA"))
68
- .append ($("<option></option>") .text ("MFDouble"))
69
- .append ($("<option></option>") .text ("MFFloat"))
70
- .append ($("<option></option>") .text ("MFImage"))
71
- .append ($("<option></option>") .text ("MFInt32"))
72
- .append ($("<option></option>") .text ("MFMatrix3d"))
73
- .append ($("<option></option>") .text ("MFMatrix3f"))
74
- .append ($("<option></option>") .text ("MFMatrix4d"))
75
- .append ($("<option></option>") .text ("MFMatrix4f"))
76
- .append ($("<option></option>") .text ("MFNode"))
77
- .append ($("<option></option>") .text ("MFRotation"))
78
- .append ($("<option></option>") .text ("MFString"))
79
- .append ($("<option></option>") .text ("MFTime"))
80
- .append ($("<option></option>") .text ("MFVec2d"))
81
- .append ($("<option></option>") .text ("MFVec2f"))
82
- .append ($("<option></option>") .text ("MFVec3d"))
83
- .append ($("<option></option>") .text ("MFVec3f"))
84
- .append ($("<option></option>") .text ("MFVec4d"))
85
- .append ($("<option></option>") .text ("MFVec4f"))
86
49
  .appendTo (typeNameMenu);
87
50
 
51
+ Object .keys (X3D .Fields)
52
+ .filter (typeName => typeName .startsWith ("MF"))
53
+ .sort ()
54
+ .forEach (typeName => multiGroup .append ($("<option></option>") .text (typeName)));
55
+
88
56
  const accessTypeMenu = $("<select></select>")
89
57
  .append ($("<option></option>") .text ("initializeOnly"))
90
58
  .append ($("<option></option>") .text ("inputOnly"))
@@ -2165,6 +2165,7 @@ module .exports = class OutlineView extends Interface
2165
2165
  case X3D .X3DConstants .SFMatrix3f:
2166
2166
  case X3D .X3DConstants .SFMatrix4d:
2167
2167
  case X3D .X3DConstants .SFMatrix4f:
2168
+ case X3D .X3DConstants .SFQuaternion:
2168
2169
  case X3D .X3DConstants .SFRotation:
2169
2170
  case X3D .X3DConstants .SFString:
2170
2171
  case X3D .X3DConstants .SFTime:
@@ -2189,6 +2190,7 @@ module .exports = class OutlineView extends Interface
2189
2190
  case X3D .X3DConstants .MFMatrix3f:
2190
2191
  case X3D .X3DConstants .MFMatrix4d:
2191
2192
  case X3D .X3DConstants .MFMatrix4f:
2193
+ case X3D .X3DConstants .MFQuaternion:
2192
2194
  case X3D .X3DConstants .MFRotation:
2193
2195
  case X3D .X3DConstants .MFString:
2194
2196
  case X3D .X3DConstants .MFTime:
@@ -454,6 +454,7 @@ module .exports = new class Panel extends Interface
454
454
  case X3D .X3DConstants .SFMatrix3f:
455
455
  case X3D .X3DConstants .SFMatrix4d:
456
456
  case X3D .X3DConstants .SFMatrix4f:
457
+ case X3D .X3DConstants .SFQuaternion:
457
458
  case X3D .X3DConstants .SFRotation:
458
459
  case X3D .X3DConstants .SFString:
459
460
  case X3D .X3DConstants .SFTime:
@@ -529,6 +530,7 @@ module .exports = new class Panel extends Interface
529
530
  case X3D .X3DConstants .MFMatrix3f:
530
531
  case X3D .X3DConstants .MFMatrix4d:
531
532
  case X3D .X3DConstants .MFMatrix4f:
533
+ case X3D .X3DConstants .MFQuaternion:
532
534
  case X3D .X3DConstants .MFRotation:
533
535
  case X3D .X3DConstants .MFString:
534
536
  case X3D .X3DConstants .MFTime:
@@ -609,6 +611,7 @@ module .exports = new class Panel extends Interface
609
611
  case X3D .X3DConstants .SFDouble:
610
612
  case X3D .X3DConstants .SFMatrix3d:
611
613
  case X3D .X3DConstants .SFMatrix4d:
614
+ case X3D .X3DConstants .SFQuaternion:
612
615
  case X3D .X3DConstants .SFRotation:
613
616
  case X3D .X3DConstants .SFTime:
614
617
  case X3D .X3DConstants .SFVec2d:
@@ -670,6 +673,7 @@ module .exports = new class Panel extends Interface
670
673
 
671
674
  // falls through
672
675
  }
676
+ case X3D .X3DConstants .SFQuaternion:
673
677
  case X3D .X3DConstants .SFVec2d:
674
678
  case X3D .X3DConstants .SFVec2f:
675
679
  case X3D .X3DConstants .SFVec3d:
@@ -715,6 +719,7 @@ module .exports = new class Panel extends Interface
715
719
  }
716
720
  case X3D .X3DConstants .MFColor:
717
721
  case X3D .X3DConstants .MFColorRGBA:
722
+ case X3D .X3DConstants .MFQuaternion:
718
723
  case X3D .X3DConstants .MFRotation:
719
724
  case X3D .X3DConstants .MFVec2d:
720
725
  case X3D .X3DConstants .MFVec2f:
@@ -816,6 +821,7 @@ module .exports = new class Panel extends Interface
816
821
  this .assign (executionContext, node, field, value);
817
822
  break;
818
823
  }
824
+ case X3D .X3DConstants .SFQuaternion:
819
825
  case X3D .X3DConstants .SFVec4d:
820
826
  case X3D .X3DConstants .SFVec4f:
821
827
  {
@@ -855,6 +861,7 @@ module .exports = new class Panel extends Interface
855
861
  case X3D .X3DConstants .MFMatrix3f:
856
862
  case X3D .X3DConstants .MFMatrix4d:
857
863
  case X3D .X3DConstants .MFMatrix4f:
864
+ case X3D .X3DConstants .MFQuaternion:
858
865
  case X3D .X3DConstants .MFRotation:
859
866
  case X3D .X3DConstants .MFString:
860
867
  case X3D .X3DConstants .MFTime:
@@ -412,6 +412,7 @@ class X3DNodeTool extends X3DBaseTool
412
412
 
413
413
  switch (value .getType ())
414
414
  {
415
+ case X3D .X3DConstants .SFQuaternion:
415
416
  case X3D .X3DConstants .SFRotation:
416
417
  case X3D .X3DConstants .SFVec2d:
417
418
  case X3D .X3DConstants .SFVec2f:
@@ -433,6 +434,7 @@ class X3DNodeTool extends X3DBaseTool
433
434
 
434
435
  switch (value .getType ())
435
436
  {
437
+ case X3D .X3DConstants .SFQuaternion:
436
438
  case X3D .X3DConstants .SFRotation:
437
439
  case X3D .X3DConstants .SFVec2d:
438
440
  case X3D .X3DConstants .SFVec2f:
@@ -121,7 +121,7 @@ class X3DTransformNodeTool extends X3DChildNodeTool
121
121
  Editor .roundToIntegerIfAlmostEqual (center);
122
122
 
123
123
  if (Editor .almostEqual (scale .x, scale .y) && Editor .almostEqual (scale .x, scale .z))
124
- scaleOrientation .assign (new X3D .SFRotation ());
124
+ scaleOrientation .assign (X3D .SFRotation .IDENTITY);
125
125
 
126
126
  Editor .setFieldValue (this .getExecutionContext (), this .node, this ._translation, translation);
127
127
  Editor .setFieldValue (this .getExecutionContext (), this .node, this ._rotation, rotation);
@@ -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"
@@ -0,0 +1,199 @@
1
+ <?xml version="1.0" encoding="UTF-8" standalone="no"?>
2
+ <!-- Created with Inkscape (http://www.inkscape.org/) -->
3
+
4
+ <svg
5
+ width="16"
6
+ height="12"
7
+ id="svg2"
8
+ version="1.1"
9
+ inkscape:version="1.4.4 (dcaf3e7, 2026-05-05)"
10
+ sodipodi:docname="MFQuaternion.svg"
11
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
12
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
13
+ xmlns:xlink="http://www.w3.org/1999/xlink"
14
+ xmlns="http://www.w3.org/2000/svg"
15
+ xmlns:svg="http://www.w3.org/2000/svg"
16
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
17
+ xmlns:cc="http://creativecommons.org/ns#"
18
+ xmlns:dc="http://purl.org/dc/elements/1.1/">
19
+ <defs
20
+ id="defs4">
21
+ <linearGradient
22
+ id="linearGradient4389">
23
+ <stop
24
+ style="stop-color:#c8c8c8;stop-opacity:1;"
25
+ offset="0"
26
+ id="stop4391" />
27
+ <stop
28
+ style="stop-color:#323232;stop-opacity:1;"
29
+ offset="1"
30
+ id="stop4393" />
31
+ </linearGradient>
32
+ <linearGradient
33
+ id="linearGradient4107">
34
+ <stop
35
+ style="stop-color:#000000;stop-opacity:1;"
36
+ offset="0"
37
+ id="stop4109" />
38
+ <stop
39
+ style="stop-color:#c8c8c8;stop-opacity:1;"
40
+ offset="1"
41
+ id="stop4111" />
42
+ </linearGradient>
43
+ <radialGradient
44
+ inkscape:collect="always"
45
+ xlink:href="#linearGradient4389"
46
+ id="radialGradient4395"
47
+ cx="7"
48
+ cy="4.5"
49
+ fx="7"
50
+ fy="4.5"
51
+ r="4.5"
52
+ gradientUnits="userSpaceOnUse" />
53
+ </defs>
54
+ <sodipodi:namedview
55
+ id="base"
56
+ pagecolor="#ffffff"
57
+ bordercolor="#666666"
58
+ borderopacity="1.0"
59
+ inkscape:pageopacity="0.0"
60
+ inkscape:pageshadow="2"
61
+ inkscape:zoom="32"
62
+ inkscape:cx="8.390625"
63
+ inkscape:cy="8.5"
64
+ inkscape:document-units="px"
65
+ inkscape:current-layer="layer2"
66
+ showgrid="false"
67
+ inkscape:snap-page="true"
68
+ showguides="false"
69
+ inkscape:guide-bbox="true"
70
+ inkscape:window-width="1470"
71
+ inkscape:window-height="841"
72
+ inkscape:window-x="0"
73
+ inkscape:window-y="33"
74
+ inkscape:window-maximized="0"
75
+ inkscape:snap-bbox="true"
76
+ showborder="false"
77
+ inkscape:showpageshadow="2"
78
+ inkscape:pagecheckerboard="0"
79
+ inkscape:deskcolor="#d1d1d1">
80
+ <inkscape:grid
81
+ type="xygrid"
82
+ id="grid3066"
83
+ empspacing="2"
84
+ visible="true"
85
+ enabled="true"
86
+ snapvisiblegridlinesonly="true"
87
+ spacingy="0.5px"
88
+ spacingx="0.5px"
89
+ originx="0"
90
+ originy="0"
91
+ units="px" />
92
+ <sodipodi:guide
93
+ orientation="1,0"
94
+ position="6,6"
95
+ id="guide3068"
96
+ inkscape:locked="false" />
97
+ <sodipodi:guide
98
+ orientation="0,1"
99
+ position="6,6"
100
+ id="guide3070"
101
+ inkscape:locked="false" />
102
+ <sodipodi:guide
103
+ orientation="1,0"
104
+ position="11,-1"
105
+ id="guide4103"
106
+ inkscape:locked="false" />
107
+ <sodipodi:guide
108
+ orientation="0,1"
109
+ position="11,11"
110
+ id="guide4115"
111
+ inkscape:locked="false" />
112
+ <sodipodi:guide
113
+ orientation="0,1"
114
+ position="11,1"
115
+ id="guide4117"
116
+ inkscape:locked="false" />
117
+ <sodipodi:guide
118
+ orientation="1,0"
119
+ position="1,1"
120
+ id="guide4119"
121
+ inkscape:locked="false" />
122
+ </sodipodi:namedview>
123
+ <metadata
124
+ id="metadata7">
125
+ <rdf:RDF>
126
+ <cc:Work
127
+ rdf:about="">
128
+ <dc:format>image/svg+xml</dc:format>
129
+ <dc:type
130
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
131
+ </cc:Work>
132
+ </rdf:RDF>
133
+ </metadata>
134
+ <g
135
+ inkscape:groupmode="layer"
136
+ id="layer2"
137
+ inkscape:label="Field"
138
+ style="display:inline">
139
+ <text
140
+ xml:space="preserve"
141
+ style="font-weight:bold;font-size:11.0405px;line-height:1.25;font-family:Optima;-inkscape-font-specification:'Optima, Bold';font-variant-ligatures:none;text-align:center;text-anchor:middle;display:inline;stroke-width:1"
142
+ x="4.3994532"
143
+ y="24.675018"
144
+ id="text1-8"><tspan
145
+ sodipodi:role="line"
146
+ id="tspan1-0"
147
+ x="4.3994532"
148
+ y="24.675018"
149
+ style="stroke-width:1">C</tspan></text>
150
+ <text
151
+ xml:space="preserve"
152
+ style="font-weight:bold;font-size:11.0405px;line-height:1.25;font-family:Optima;-inkscape-font-specification:'Optima, Bold';font-variant-ligatures:none;text-align:center;text-anchor:middle;display:inline;stroke-width:1"
153
+ x="14.493203"
154
+ y="24.925018"
155
+ id="text1-8-6"><tspan
156
+ sodipodi:role="line"
157
+ id="tspan1-0-0"
158
+ x="14.493203"
159
+ y="24.925018"
160
+ style="stroke-width:1">H</tspan></text>
161
+ <path
162
+ d="M 8.0863937,6.1483035 Q 7.5868039,6.1351564 7.0872141,6.1220093 6.5876243,6.0957151 6.0880345,6.0957151 q -0.4995898,0 -0.9991797,0.013147 -0.4995898,0.013147 -0.9991796,0.039441 v 0.7493847 q 0,1.0912094 0.026294,1.9457709 0.026294,0.8414144 0.078883,1.6565349 -0.2235007,-0.02629 -0.4864427,-0.02629 -0.262942,0 -0.5916195,0 -0.3286775,0 -0.5916195,0 -0.2629421,0 -0.4864428,0.02629 0.052588,-0.8151205 0.078883,-1.6565349 0.026294,-0.8545615 0.026294,-1.9457709 V 5.1096826 q 0,-1.0912094 -0.026294,-1.9326238 -0.026294,-0.8545615 -0.078883,-1.709123 0.2235007,0.026294 0.4864428,0.052588 0.262942,0.013147 0.5916195,0.013147 0.3286775,0 0.5916195,-0.013147 0.262942,-0.026294 0.4864427,-0.052588 -0.065735,0.8545615 -0.09203,1.6959759 -0.013147,0.8282673 -0.013147,1.9194767 0.3418246,0.013147 0.8151202,0.026294 0.4864428,0 1.1963862,0 0.7099434,0 1.1569448,0 0.4470014,-0.013147 0.8282673,-0.026294 0,-1.0912094 -0.026294,-1.9194767 -0.026294,-0.8414144 -0.078883,-1.6959759 0.2235008,0.026294 0.4864428,0.052588 0.262942,0.013147 0.5916195,0.013147 0.3286775,0 0.5916195,-0.013147 0.262942,-0.026294 0.4864423,-0.052588 -0.05259,0.8545615 -0.07888,1.709123 -0.02629,0.8414144 -0.02629,1.9326238 v 1.7880056 q 0,1.0912094 0.02629,1.9457709 0.02629,0.8414144 0.07888,1.6565349 -0.2235003,-0.02629 -0.4864423,-0.02629 -0.262942,0 -0.5916195,0 -0.3286775,0 -0.5916195,0 -0.262942,0 -0.4864428,0.02629 0.052588,-0.8151205 0.078883,-1.6565349 0.026294,-0.8545615 0.026294,-1.9457709 V 6.1483035 Z"
163
+ id="text1-8-6-0"
164
+ style="font-weight:bold;font-size:13.1471px;line-height:1.25;font-family:Optima;-inkscape-font-specification:'Optima, Bold';font-variant-ligatures:none;text-align:center;text-anchor:middle;stroke-width:0.999992"
165
+ aria-label="H" />
166
+ </g>
167
+ <g
168
+ inkscape:groupmode="layer"
169
+ id="layer3"
170
+ inkscape:label="Array"
171
+ style="display:inline"
172
+ sodipodi:insensitive="true">
173
+ <g
174
+ id="g1"
175
+ transform="translate(0.27036887,0.07627521)">
176
+ <path
177
+ style="display:inline;fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
178
+ d="m 13,8.5 h 3"
179
+ id="path3862-0"
180
+ inkscape:connector-curvature="0"
181
+ sodipodi:nodetypes="cc"
182
+ transform="translate(-0.27036887,-0.07627165)" />
183
+ <path
184
+ style="display:inline;fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
185
+ d="m 13,10.5 h 3"
186
+ id="path3864-2"
187
+ inkscape:connector-curvature="0"
188
+ sodipodi:nodetypes="cc"
189
+ transform="translate(-0.27036887,-0.07627165)" />
190
+ <path
191
+ sodipodi:nodetypes="cc"
192
+ inkscape:connector-curvature="0"
193
+ id="path3000"
194
+ d="m 13,6.5 h 3"
195
+ style="display:inline;fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
196
+ transform="translate(-0.27036887,-0.07627165)" />
197
+ </g>
198
+ </g>
199
+ </svg>
@@ -0,0 +1,199 @@
1
+ <?xml version="1.0" encoding="UTF-8" standalone="no"?>
2
+ <!-- Created with Inkscape (http://www.inkscape.org/) -->
3
+
4
+ <svg
5
+ width="16"
6
+ height="12"
7
+ id="svg2"
8
+ version="1.1"
9
+ inkscape:version="1.4.4 (dcaf3e7, 2026-05-05)"
10
+ sodipodi:docname="MFQuaternion.svg"
11
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
12
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
13
+ xmlns:xlink="http://www.w3.org/1999/xlink"
14
+ xmlns="http://www.w3.org/2000/svg"
15
+ xmlns:svg="http://www.w3.org/2000/svg"
16
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
17
+ xmlns:cc="http://creativecommons.org/ns#"
18
+ xmlns:dc="http://purl.org/dc/elements/1.1/">
19
+ <defs
20
+ id="defs4">
21
+ <linearGradient
22
+ id="linearGradient4389">
23
+ <stop
24
+ style="stop-color:#c8c8c8;stop-opacity:1;"
25
+ offset="0"
26
+ id="stop4391" />
27
+ <stop
28
+ style="stop-color:#323232;stop-opacity:1;"
29
+ offset="1"
30
+ id="stop4393" />
31
+ </linearGradient>
32
+ <linearGradient
33
+ id="linearGradient4107">
34
+ <stop
35
+ style="stop-color:#000000;stop-opacity:1;"
36
+ offset="0"
37
+ id="stop4109" />
38
+ <stop
39
+ style="stop-color:#c8c8c8;stop-opacity:1;"
40
+ offset="1"
41
+ id="stop4111" />
42
+ </linearGradient>
43
+ <radialGradient
44
+ inkscape:collect="always"
45
+ xlink:href="#linearGradient4389"
46
+ id="radialGradient4395"
47
+ cx="7"
48
+ cy="4.5"
49
+ fx="7"
50
+ fy="4.5"
51
+ r="4.5"
52
+ gradientUnits="userSpaceOnUse" />
53
+ </defs>
54
+ <sodipodi:namedview
55
+ id="base"
56
+ pagecolor="#ffffff"
57
+ bordercolor="#666666"
58
+ borderopacity="1.0"
59
+ inkscape:pageopacity="0.0"
60
+ inkscape:pageshadow="2"
61
+ inkscape:zoom="32"
62
+ inkscape:cx="8.421875"
63
+ inkscape:cy="8.5"
64
+ inkscape:document-units="px"
65
+ inkscape:current-layer="layer2"
66
+ showgrid="false"
67
+ inkscape:snap-page="true"
68
+ showguides="false"
69
+ inkscape:guide-bbox="true"
70
+ inkscape:window-width="1470"
71
+ inkscape:window-height="841"
72
+ inkscape:window-x="0"
73
+ inkscape:window-y="33"
74
+ inkscape:window-maximized="0"
75
+ inkscape:snap-bbox="true"
76
+ showborder="false"
77
+ inkscape:showpageshadow="2"
78
+ inkscape:pagecheckerboard="0"
79
+ inkscape:deskcolor="#d1d1d1">
80
+ <inkscape:grid
81
+ type="xygrid"
82
+ id="grid3066"
83
+ empspacing="2"
84
+ visible="true"
85
+ enabled="true"
86
+ snapvisiblegridlinesonly="true"
87
+ spacingy="0.5px"
88
+ spacingx="0.5px"
89
+ originx="0"
90
+ originy="0"
91
+ units="px" />
92
+ <sodipodi:guide
93
+ orientation="1,0"
94
+ position="6,6"
95
+ id="guide3068"
96
+ inkscape:locked="false" />
97
+ <sodipodi:guide
98
+ orientation="0,1"
99
+ position="6,6"
100
+ id="guide3070"
101
+ inkscape:locked="false" />
102
+ <sodipodi:guide
103
+ orientation="1,0"
104
+ position="11,-1"
105
+ id="guide4103"
106
+ inkscape:locked="false" />
107
+ <sodipodi:guide
108
+ orientation="0,1"
109
+ position="11,11"
110
+ id="guide4115"
111
+ inkscape:locked="false" />
112
+ <sodipodi:guide
113
+ orientation="0,1"
114
+ position="11,1"
115
+ id="guide4117"
116
+ inkscape:locked="false" />
117
+ <sodipodi:guide
118
+ orientation="1,0"
119
+ position="1,1"
120
+ id="guide4119"
121
+ inkscape:locked="false" />
122
+ </sodipodi:namedview>
123
+ <metadata
124
+ id="metadata7">
125
+ <rdf:RDF>
126
+ <cc:Work
127
+ rdf:about="">
128
+ <dc:format>image/svg+xml</dc:format>
129
+ <dc:type
130
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
131
+ </cc:Work>
132
+ </rdf:RDF>
133
+ </metadata>
134
+ <g
135
+ inkscape:groupmode="layer"
136
+ id="layer2"
137
+ inkscape:label="Field"
138
+ style="display:inline">
139
+ <text
140
+ xml:space="preserve"
141
+ style="font-weight:bold;font-size:11.0405px;line-height:1.25;font-family:Optima;-inkscape-font-specification:'Optima, Bold';font-variant-ligatures:none;text-align:center;text-anchor:middle;display:inline;stroke-width:1"
142
+ x="4.3994532"
143
+ y="24.675018"
144
+ id="text1-8"><tspan
145
+ sodipodi:role="line"
146
+ id="tspan1-0"
147
+ x="4.3994532"
148
+ y="24.675018"
149
+ style="stroke-width:1">C</tspan></text>
150
+ <text
151
+ xml:space="preserve"
152
+ style="font-weight:bold;font-size:11.0405px;line-height:1.25;font-family:Optima;-inkscape-font-specification:'Optima, Bold';font-variant-ligatures:none;text-align:center;text-anchor:middle;display:inline;stroke-width:1"
153
+ x="14.493203"
154
+ y="24.925018"
155
+ id="text1-8-6"><tspan
156
+ sodipodi:role="line"
157
+ id="tspan1-0-0"
158
+ x="14.493203"
159
+ y="24.925018"
160
+ style="stroke-width:1">H</tspan></text>
161
+ <path
162
+ d="M 8.0863937,6.1483035 Q 7.5868039,6.1351564 7.0872141,6.1220093 6.5876243,6.0957151 6.0880345,6.0957151 q -0.4995898,0 -0.9991797,0.013147 -0.4995898,0.013147 -0.9991796,0.039441 v 0.7493847 q 0,1.0912094 0.026294,1.9457709 0.026294,0.8414144 0.078883,1.6565349 -0.2235007,-0.02629 -0.4864427,-0.02629 -0.262942,0 -0.5916195,0 -0.3286775,0 -0.5916195,0 -0.2629421,0 -0.4864428,0.02629 0.052588,-0.8151205 0.078883,-1.6565349 0.026294,-0.8545615 0.026294,-1.9457709 V 5.1096826 q 0,-1.0912094 -0.026294,-1.9326238 -0.026294,-0.8545615 -0.078883,-1.709123 0.2235007,0.026294 0.4864428,0.052588 0.262942,0.013147 0.5916195,0.013147 0.3286775,0 0.5916195,-0.013147 0.262942,-0.026294 0.4864427,-0.052588 -0.065735,0.8545615 -0.09203,1.6959759 -0.013147,0.8282673 -0.013147,1.9194767 0.3418246,0.013147 0.8151202,0.026294 0.4864428,0 1.1963862,0 0.7099434,0 1.1569448,0 0.4470014,-0.013147 0.8282673,-0.026294 0,-1.0912094 -0.026294,-1.9194767 -0.026294,-0.8414144 -0.078883,-1.6959759 0.2235008,0.026294 0.4864428,0.052588 0.262942,0.013147 0.5916195,0.013147 0.3286775,0 0.5916195,-0.013147 0.262942,-0.026294 0.4864423,-0.052588 -0.05259,0.8545615 -0.07888,1.709123 -0.02629,0.8414144 -0.02629,1.9326238 v 1.7880056 q 0,1.0912094 0.02629,1.9457709 0.02629,0.8414144 0.07888,1.6565349 -0.2235003,-0.02629 -0.4864423,-0.02629 -0.262942,0 -0.5916195,0 -0.3286775,0 -0.5916195,0 -0.262942,0 -0.4864428,0.02629 0.052588,-0.8151205 0.078883,-1.6565349 0.026294,-0.8545615 0.026294,-1.9457709 V 6.1483035 Z"
163
+ id="text1-8-6-0"
164
+ style="font-weight:bold;font-size:13.1471px;line-height:1.25;font-family:Optima;-inkscape-font-specification:'Optima, Bold';font-variant-ligatures:none;text-align:center;text-anchor:middle;stroke-width:0.999992"
165
+ aria-label="H" />
166
+ </g>
167
+ <g
168
+ inkscape:groupmode="layer"
169
+ id="layer3"
170
+ inkscape:label="Array"
171
+ style="display:none"
172
+ sodipodi:insensitive="true">
173
+ <g
174
+ id="g1"
175
+ transform="translate(0.27036887,0.07627521)">
176
+ <path
177
+ style="display:inline;fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
178
+ d="m 13,8.5 h 3"
179
+ id="path3862-0"
180
+ inkscape:connector-curvature="0"
181
+ sodipodi:nodetypes="cc"
182
+ transform="translate(-0.27036887,-0.07627165)" />
183
+ <path
184
+ style="display:inline;fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
185
+ d="m 13,10.5 h 3"
186
+ id="path3864-2"
187
+ inkscape:connector-curvature="0"
188
+ sodipodi:nodetypes="cc"
189
+ transform="translate(-0.27036887,-0.07627165)" />
190
+ <path
191
+ sodipodi:nodetypes="cc"
192
+ inkscape:connector-curvature="0"
193
+ id="path3000"
194
+ d="m 13,6.5 h 3"
195
+ style="display:inline;fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
196
+ transform="translate(-0.27036887,-0.07627165)" />
197
+ </g>
198
+ </g>
199
+ </svg>