x_ite 8.3.1 → 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.
Files changed (130) hide show
  1. package/.github/workflows/pages-deploy.yml +1 -1
  2. package/.vscode/settings.json +2 -1
  3. package/build/bin/tests.pl +2 -0
  4. package/dist/LICENSE.md +4 -4
  5. package/dist/assets/components/Annotation.js +13 -13
  6. package/dist/assets/components/Annotation.min.js +1 -1
  7. package/dist/assets/components/CADGeometry.js +13 -13
  8. package/dist/assets/components/CADGeometry.min.js +1 -1
  9. package/dist/assets/components/CubeMapTexturing.js +25 -25
  10. package/dist/assets/components/CubeMapTexturing.min.js +1 -1
  11. package/dist/assets/components/DIS.js +13 -13
  12. package/dist/assets/components/DIS.min.js +1 -1
  13. package/dist/assets/components/EventUtilities.js +9 -9
  14. package/dist/assets/components/EventUtilities.min.js +1 -1
  15. package/dist/assets/components/Geometry2D.js +19 -19
  16. package/dist/assets/components/Geometry2D.min.js +1 -1
  17. package/dist/assets/components/Geospatial.js +33 -33
  18. package/dist/assets/components/Geospatial.min.js +1 -1
  19. package/dist/assets/components/HAnim.js +61 -74
  20. package/dist/assets/components/HAnim.min.js +1 -1
  21. package/dist/assets/components/KeyDeviceSensor.js +8 -8
  22. package/dist/assets/components/KeyDeviceSensor.min.js +1 -1
  23. package/dist/assets/components/Layout.js +27 -27
  24. package/dist/assets/components/Layout.min.js +1 -1
  25. package/dist/assets/components/NURBS.js +24 -24
  26. package/dist/assets/components/NURBS.min.js +1 -1
  27. package/dist/assets/components/ParticleSystems.js +23 -23
  28. package/dist/assets/components/ParticleSystems.min.js +1 -1
  29. package/dist/assets/components/Picking.js +19 -19
  30. package/dist/assets/components/Picking.min.js +1 -1
  31. package/dist/assets/components/RigidBodyPhysics.js +17 -17
  32. package/dist/assets/components/RigidBodyPhysics.min.js +1 -1
  33. package/dist/assets/components/Scripting.js +28 -28
  34. package/dist/assets/components/Scripting.min.js +1 -1
  35. package/dist/assets/components/Text.js +24 -24
  36. package/dist/assets/components/Text.min.js +1 -1
  37. package/dist/assets/components/{ProjectiveTextureMapping.js → TextureProjector.js} +39 -39
  38. package/dist/assets/components/TextureProjector.min.js +1 -0
  39. package/dist/assets/components/Texturing3D.js +46 -46
  40. package/dist/assets/components/Texturing3D.min.js +1 -1
  41. package/dist/assets/components/VolumeRendering.js +19 -19
  42. package/dist/assets/components/VolumeRendering.min.js +1 -1
  43. package/dist/assets/components/X_ITE.js +9 -9
  44. package/dist/assets/components/X_ITE.min.js +1 -1
  45. package/dist/x_ite.css +1 -1
  46. package/dist/x_ite.js +1904 -1570
  47. package/dist/x_ite.min.js +1 -1
  48. package/dist/x_ite.zip +0 -0
  49. package/docs/Gemfile +1 -4
  50. package/docs/_config.yml +3 -2
  51. package/docs/_posts/custom-shaders.md +1 -1
  52. package/docs/_posts/dom-integration.md +52 -25
  53. package/docs/_posts/getting-started.md +148 -442
  54. package/docs/_posts/reference/field-services-and-objects.md +2 -34
  55. package/docs/_posts/reference/scene-services.md +13 -2
  56. package/docs/_posts/tutorials/basic-nodes.md +2 -2
  57. package/docs/_posts/tutorials/building-a-x3d-world.md +20 -4
  58. package/docs/_posts/tutorials/building-primitive-shapes.md +4 -4
  59. package/docs/_posts/tutorials/creating-new-node-types.md +22 -0
  60. package/docs/_posts/tutorials/hello-world.md +6 -6
  61. package/docs/_posts/tutorials/improving-performance.md +2 -2
  62. package/docs/_posts/tutorials/writing-program-scripts-with-ecmascript.md +2 -2
  63. package/docs/_posts/what's-new.md +21 -3
  64. package/docs/_tabs/playground.html +110 -57
  65. package/docs/assets/css/style.scss +25 -1
  66. package/package.json +2 -2
  67. package/src/assets/components/{ProjectiveTextureMapping.js → TextureProjector.js} +5 -5
  68. package/src/examples.js +1 -1
  69. package/src/tests.js +5 -5
  70. package/src/x_ite/Base/X3DArrayField.js +3 -0
  71. package/src/x_ite/Base/X3DBaseNode.js +4 -0
  72. package/src/x_ite/Base/X3DInfoArray.js +28 -24
  73. package/src/x_ite/Base/X3DObject.js +29 -20
  74. package/src/x_ite/Base/X3DObjectArrayField.js +27 -26
  75. package/src/x_ite/Base/X3DTypedArrayField.js +34 -32
  76. package/src/x_ite/Browser/Core/ContextMenu.js +5 -7
  77. package/src/x_ite/Browser/DOMIntegration.js +62 -54
  78. package/src/x_ite/Browser/VERSION.js +1 -1
  79. package/src/x_ite/Browser/X3DBrowser.js +44 -29
  80. package/src/x_ite/Browser/X3DBrowserContext.js +3 -0
  81. package/src/x_ite/Components/Core/X3DNode.js +196 -187
  82. package/src/x_ite/Components/Core/X3DPrototypeInstance.js +114 -91
  83. package/src/x_ite/Components/Grouping/X3DTransformMatrix3DNode.js +18 -43
  84. package/src/x_ite/Components/HAnim/HAnimHumanoid.js +24 -25
  85. package/src/x_ite/Components/HAnim/HAnimJoint.js +19 -31
  86. package/src/x_ite/Components/Networking/Inline.js +21 -2
  87. package/src/x_ite/Components/Sound/X3DSoundProcessingNode.js +14 -1
  88. package/src/x_ite/Components/Sound/X3DSoundSourceNode.js +0 -1
  89. package/src/x_ite/Components/{ProjectiveTextureMapping → TextureProjector}/TextureProjector.js +1 -1
  90. package/src/x_ite/Components/{ProjectiveTextureMapping → TextureProjector}/TextureProjectorParallel.js +1 -1
  91. package/src/x_ite/Components/{ProjectiveTextureMapping → TextureProjector}/X3DTextureProjectorNode.js +0 -0
  92. package/src/x_ite/Components/Time/TimeSensor.js +5 -0
  93. package/src/x_ite/Components/Time/X3DTimeDependentNode.js +1 -0
  94. package/src/x_ite/Configuration/ComponentInfo.js +20 -23
  95. package/src/x_ite/Configuration/ProfileInfo.js +6 -6
  96. package/src/x_ite/Configuration/SupportedComponents.js +22 -20
  97. package/src/x_ite/Configuration/SupportedNodes.js +1 -5
  98. package/src/x_ite/Configuration/SupportedProfiles.js +1 -1
  99. package/src/x_ite/Configuration/UnitInfo.js +24 -27
  100. package/src/x_ite/Execution/X3DExecutionContext.js +28 -59
  101. package/src/x_ite/Execution/X3DExportedNode.js +23 -28
  102. package/src/x_ite/Execution/X3DImportedNode.js +63 -67
  103. package/src/x_ite/Execution/X3DScene.js +98 -117
  104. package/src/x_ite/Fields/ArrayFields.js +57 -55
  105. package/src/x_ite/Fields/SFBool.js +6 -6
  106. package/src/x_ite/Fields/SFColor.js +10 -12
  107. package/src/x_ite/Fields/SFDouble.js +7 -10
  108. package/src/x_ite/Fields/SFFloat.js +7 -10
  109. package/src/x_ite/Fields/SFImage.js +33 -8
  110. package/src/x_ite/Fields/SFInt32.js +6 -6
  111. package/src/x_ite/Fields/SFMatrixPrototypeTemplate.js +13 -13
  112. package/src/x_ite/Fields/SFNode.js +42 -19
  113. package/src/x_ite/Fields/SFRotation.js +13 -13
  114. package/src/x_ite/Fields/SFString.js +6 -7
  115. package/src/x_ite/Fields/SFTime.js +6 -6
  116. package/src/x_ite/Fields/SFVecPrototypeTemplate.js +10 -10
  117. package/src/x_ite/InputOutput/FileLoader.js +1 -1
  118. package/src/x_ite/InputOutput/Generator.js +117 -17
  119. package/src/x_ite/Parser/VRMLParser.js +24 -27
  120. package/src/x_ite/Parser/X3DParser.js +0 -4
  121. package/src/x_ite/Parser/XMLParser.js +152 -50
  122. package/src/x_ite/Prototype/X3DExternProtoDeclaration.js +59 -64
  123. package/src/x_ite/Prototype/X3DProtoDeclaration.js +86 -93
  124. package/src/x_ite/Rendering/X3DRenderObject.js +6 -1
  125. package/src/x_ite/Routing/X3DRoute.js +37 -40
  126. package/src/x_ite.html +3 -3
  127. package/webpack.config.js +2 -2
  128. package/x_ite.min.html +1 -1
  129. package/dist/assets/components/ProjectiveTextureMapping.min.js +0 -1
  130. package/docs/Gemfile.lock +0 -116
@@ -802,41 +802,9 @@ An integer containing the number of elements in the array. Assigning an integer
802
802
 
803
803
  Returns true if the passed MF* *array* of the same type is equals to this object, otherwise false.
804
804
 
805
- #### SF* **pop** ()
805
+ #### Other Array functions
806
806
 
807
- The `pop` method removes the last element from an array and returns that value to the caller. The return value is the removed element from the array; `undefined` if the array is empty.
808
-
809
- #### Number **push** (*element1 [, ..., elementN]*)
810
-
811
- The `push` method appends values to an array. The return value is the new length of the object upon which the method was called.
812
-
813
- #### SF* **shift** ()
814
-
815
- The `shift` method removes the first element from an array and returns that value to the caller. The return value is the removed element from the array; `undefined` if the array is empty.
816
-
817
- #### Array **splice** (*start [, deleteCount, [item1, item2, ...]]*)
818
-
819
- #### start
820
-
821
- Index at which to start changing the array (with origin 0). If greater than the length of the array, actual starting index will be set to the length of the array. If negative, will begin that many elements from the end of the array (with origin 1) and will be set to 0 if absolute value is greater than the length of the array.
822
-
823
- #### deleteCount *optional*
824
-
825
- An integer indicating the number of old array elements to remove. If *deleteCount* is 0, no elements are removed. In this case, you should specify at least one new element. If *deleteCount* is greater than the number of elements left in the array starting at start, then all of the elements through the end of the array will be deleted.
826
-
827
- If *deleteCount* is omitted, or if its value is larger than array.length - start, then all of the elements beginning with start index on through the end of the array will be deleted.
828
-
829
- #### item1, item2, ... *optional*
830
-
831
- The elements to add to the array, beginning at the start index. If you don't specify any elements, `splice` will only remove elements from the array.
832
-
833
- #### Return value
834
-
835
- An MF* array containing the deleted elements. If only one element is removed, an array of one element is returned. If no elements are removed, an empty array is returned.
836
-
837
- #### Number **unshift** (*element1 [, ..., elementN]*)
838
-
839
- The `unshift` method inserts the given values to the beginning of an X3DArrayField object. The return value is the new length of the object upon which the method was called.
807
+ Common Array functions like `at`, `concat`, `entries`, `every`, `fill`, `filter`, `find`, `findIndex`, `findLast`, `findLastIndex`, `flat`, `flatMap`, `forEach`, `includes`, `indexOf`, `join`, `keys`, `lastIndexOf`, `map`, `pop`, `push`, `reduce`, `reduceRight`, `shift`, `slice`, `some`, `splice`, `unshift`, `values` are also available.
840
808
 
841
809
  ## MFBool Object
842
810
 
@@ -144,14 +144,25 @@ Creates or updates the exported node *exportedName.*
144
144
 
145
145
  Removes the exported node *exportedName.*
146
146
 
147
- #### String **toVRMLString** ()
147
+ #### String **toVRMLString** (\[options\])
148
148
 
149
149
  Returns the X3D VRML-encoded string that, if parsed as the value of createX3DFromString () of X3DBrowser, produce this scene.
150
150
 
151
- #### String **toXMLString** ()
151
+ ##### Options
152
+
153
+ An object with one or more of these properties:
154
+
155
+ * **scene:** scene to use for units (default: current scene)
156
+ * **style:** string, output style (one of: **"TIDY"**, "COMPACT", "SMALL", "CLEAN")
157
+ * **precision:** integer, float precision (default: 6)
158
+ * **doublePrecision:** integer, double precision (default: 14)
159
+
160
+ #### String **toXMLString** (\[options\])
152
161
 
153
162
  Returns the X3D XML-encoded string that, if parsed as the value of createX3DFromString () of X3DBrowser, produce this scene.
154
163
 
164
+ For options see toVRMLString.
165
+
155
166
  ## ProfileInfo
156
167
 
157
168
  This object stores information about a particular X3D profile.
@@ -28,7 +28,7 @@ Here is a typical X3D Classic Encoded file with a single node:
28
28
 
29
29
  ```xml
30
30
  <?xml version="1.0" encoding="UTF-8"?>
31
- <X3D profile='Full' version='4.0' xmlns:xsd='http://www.w3.org/2001/XMLSchema-instance' xsd:noNamespaceSchemaLocation='http://www.web3d.org/specifications/x3d-4.0.xsd'>
31
+ <X3D profile='Full' version='{{ site.x3d_latest_version }}' xmlns:xsd='http://www.w3.org/2001/XMLSchema-instance' xsd:noNamespaceSchemaLocation='http://www.web3d.org/specifications/x3d-{{ site.x3d_latest_version }}.xsd'>
32
32
  <Scene>
33
33
  <PlaneSensor DEF='Sensor'
34
34
  offset='0 2 0'/>
@@ -46,7 +46,7 @@ Here is a typical X3D Classic Encoded file with a single node:
46
46
  ### Classic Encoding
47
47
 
48
48
  ```js
49
- #X3D V4.0 utf8
49
+ #X3D V{{ site.x3d_latest_version }} utf8
50
50
 
51
51
  # A sample file with a simple scene
52
52
 
@@ -23,7 +23,7 @@ X3D files contain:
23
23
 
24
24
  ```xml
25
25
  <?xml version="1.0" encoding="UTF-8"?>
26
- <X3D profile='Full' version='4.0' xmlns:xsd='http://www.w3.org/2001/XMLSchema-instance' xsd:noNamespaceSchemaLocation='http://www.web3d.org/specifications/x3d-4.0.xsd'>
26
+ <X3D profile='Full' version='{{ site.x3d_latest_version }}' xmlns:xsd='http://www.w3.org/2001/XMLSchema-instance' xsd:noNamespaceSchemaLocation='http://www.web3d.org/specifications/x3d-{{ site.x3d_latest_version }}.xsd'>
27
27
  <Scene>
28
28
  <!-- A Cylinder -->
29
29
  <Shape>
@@ -41,7 +41,7 @@ X3D files contain:
41
41
  ### Classic Encoding
42
42
 
43
43
  ```js
44
- #X3D V4.0 utf8
44
+ #X3D V{{ site.x3d_latest_version }} utf8
45
45
  # A Cylinder
46
46
  Shape {
47
47
  appearance Appearance {
@@ -64,10 +64,10 @@ Shape {
64
64
 
65
65
  ## Understanding the header
66
66
 
67
- **\#X3D V4.0 utf8**
67
+ **\#X3D V{{ site.x3d_latest_version }} utf8**
68
68
 
69
69
  - **\#X3D:** File contains X3D text
70
- - **V4.0 :** Text conforms to version 4.0 syntax
70
+ - **V{{ site.x3d_latest_version }} :** Text conforms to version {{ site.x3d_latest_version }} syntax
71
71
  - **utf8 :** Text uses UTF8 character set
72
72
 
73
73
  ## Understanding UTF8
@@ -150,9 +150,25 @@ Every field has:
150
150
  - Fields can be listed in any order
151
151
  - The order doesn't affect the node
152
152
 
153
+ ## Placing nodes
154
+
155
+ Every node has a »containerField« attribute with a default value, which is different for each node type. You can change the value if needed.
156
+
157
+ ```xml
158
+ <Collision>
159
+ <Shape containerField='proxy'>
160
+ <Box/>
161
+ </Shape>
162
+ <Transform>
163
+ <!-- ... -->
164
+ </Transform>
165
+ </Collision>
166
+ ```
167
+
153
168
  ## Summary
154
169
 
155
170
  - The file header gives the version and encoding
156
171
  - Nodes describe scene content
157
172
  - Fields and values specify node attributes
173
+ - containerField attribute can be changed.
158
174
  - Everything is case sensitive
@@ -100,7 +100,7 @@ Text { ... }
100
100
 
101
101
  ```xml
102
102
  <?xml version="1.0" encoding="UTF-8"?>
103
- <X3D profile='Full' version='4.0' xmlns:xsd='http://www.w3.org/2001/XMLSchema-instance' xsd:noNamespaceSchemaLocation='http://www.web3d.org/specifications/x3d-4.0.xsd'>
103
+ <X3D profile='Full' version='{{ site.x3d_latest_version }}' xmlns:xsd='http://www.w3.org/2001/XMLSchema-instance' xsd:noNamespaceSchemaLocation='http://www.web3d.org/specifications/x3d-{{ site.x3d_latest_version }}.xsd'>
104
104
  <Scene>
105
105
  <Shape>
106
106
  <Appearance>
@@ -116,7 +116,7 @@ Text { ... }
116
116
  ### Classic Encoding
117
117
 
118
118
  ```js
119
- #X3D V4.0 utf8
119
+ #X3D V{{ site.x3d_latest_version }} utf8
120
120
  # A cylinder
121
121
  Shape {
122
122
  appearance Appearance {
@@ -149,7 +149,7 @@ Shape {
149
149
 
150
150
  ```xml
151
151
  <?xml version="1.0" encoding="UTF-8"?>
152
- <X3D profile='Full' version='4.0' xmlns:xsd='http://www.w3.org/2001/XMLSchema-instance' xsd:noNamespaceSchemaLocation='http://www.web3d.org/specifications/x3d-4.0.xsd'>
152
+ <X3D profile='Full' version='{{ site.x3d_latest_version }}' xmlns:xsd='http://www.w3.org/2001/XMLSchema-instance' xsd:noNamespaceSchemaLocation='http://www.web3d.org/specifications/x3d-{{ site.x3d_latest_version }}.xsd'>
153
153
  <Scene>
154
154
  <Shape>
155
155
  <Appearance>
@@ -173,7 +173,7 @@ Shape {
173
173
  ### Classic Encoding
174
174
 
175
175
  ```js
176
- #X3D V4.0 utf8
176
+ #X3D V{{ site.x3d_latest_version }} utf8
177
177
 
178
178
  Shape {
179
179
  appearance Appearance {
@@ -153,10 +153,15 @@ The new node type can be used like any other type.
153
153
  ### XML Encoding
154
154
 
155
155
  ```xml
156
+ <!-- Official Syntax -->
156
157
  <ProtoInstance name='BouncingBall'>
157
158
  <fieldValue name='cycleInterval' value='2'/>
158
159
  <fieldValue name='bounceHeight' value='3'/>
159
160
  </ProtoInstance>
161
+ <!-- Short Syntax -->
162
+ <BouncingBall
163
+ cycleInterval='2'
164
+ bounceHeight='3'/>
160
165
  ```
161
166
 
162
167
  ### Classic Encoding
@@ -184,6 +189,23 @@ For example, if the first node is a geometry node:
184
189
 
185
190
  The new node type can be used wherever the first node of the prototype body can be used.
186
191
 
192
+ - In XML the default value of the »containerField« attribute of a ProtoInstance element is »children«. Change this attribute to whatever value you need.
193
+
194
+ ### XML Encoding
195
+
196
+ ```xml
197
+ <Shape>
198
+ <!-- Official Syntax -->
199
+ <ProtoInstance name='Torus' containerField='geometry'>
200
+ <!-- ... -->
201
+ </ProtoInstance>
202
+ </Shape>
203
+ <Shape>
204
+ <!-- Short Syntax -->
205
+ <Torus containerField='geometry' .../>
206
+ </Shape>
207
+ ```
208
+
187
209
  ## A sample prototype use
188
210
 
189
211
  Create a **BouncingBall** node type that:
@@ -31,7 +31,7 @@ As first a very easy example, we will create a sphere with a texture and a text
31
31
 
32
32
  ```xml
33
33
  <?xml version="1.0" encoding="UTF-8"?>
34
- <X3D profile='Full' version='4.0' xmlns:xsd='http://www.w3.org/2001/XMLSchema-instance' xsd:noNamespaceSchemaLocation='http://www.web3d.org/specifications/x3d-4.0.xsd'>
34
+ <X3D profile='Full' version='{{ site.x3d_latest_version }}' xmlns:xsd='http://www.w3.org/2001/XMLSchema-instance' xsd:noNamespaceSchemaLocation='http://www.web3d.org/specifications/x3d-{{ site.x3d_latest_version }}.xsd'>
35
35
  <Scene>
36
36
  <Transform>
37
37
  <Shape>
@@ -45,7 +45,7 @@ As first a very easy example, we will create a sphere with a texture and a text
45
45
  ### Classic Encoding
46
46
 
47
47
  ```js
48
- #X3D V4.0 utf8
48
+ #X3D V{{ site.x3d_latest_version }} utf8
49
49
 
50
50
  Transform {
51
51
  children Shape {
@@ -62,7 +62,7 @@ Now we have a sphere, but we don't see if it is rotating, let's assign a texture
62
62
 
63
63
  ```xml
64
64
  <?xml version="1.0" encoding="UTF-8"?>
65
- <X3D profile='Full' version='4.0' xmlns:xsd='http://www.w3.org/2001/XMLSchema-instance' xsd:noNamespaceSchemaLocation='http://www.web3d.org/specifications/x3d-4.0.xsd'>
65
+ <X3D profile='Full' version='{{ site.x3d_latest_version }}' xmlns:xsd='http://www.w3.org/2001/XMLSchema-instance' xsd:noNamespaceSchemaLocation='http://www.web3d.org/specifications/x3d-{{ site.x3d_latest_version }}.xsd'>
66
66
  <Scene>
67
67
  <Transform>
68
68
  <Shape>
@@ -80,7 +80,7 @@ Now we have a sphere, but we don't see if it is rotating, let's assign a texture
80
80
  ### Classic Encoding
81
81
 
82
82
  ```js
83
- #X3D V4.0 utf8
83
+ #X3D V{{ site.x3d_latest_version }} utf8
84
84
 
85
85
  Transform {
86
86
  children Shape {
@@ -119,7 +119,7 @@ Now the sphere looks like an earth and you are very curious how the text will be
119
119
 
120
120
  ```xml
121
121
  <?xml version="1.0" encoding="UTF-8"?>
122
- <X3D profile='Full' version='4.0' xmlns:xsd='http://www.w3.org/2001/XMLSchema-instance' xsd:noNamespaceSchemaLocation='http://www.web3d.org/specifications/x3d-4.0.xsd'>
122
+ <X3D profile='Full' version='{{ site.x3d_latest_version }}' xmlns:xsd='http://www.w3.org/2001/XMLSchema-instance' xsd:noNamespaceSchemaLocation='http://www.web3d.org/specifications/x3d-{{ site.x3d_latest_version }}.xsd'>
123
123
  <Scene>
124
124
  <Viewpoint
125
125
  description='Home'
@@ -155,7 +155,7 @@ Now the sphere looks like an earth and you are very curious how the text will be
155
155
  ### Classic Encoding
156
156
 
157
157
  ```js
158
- #X3D V4.0 utf8
158
+ #X3D V{{ site.x3d_latest_version }} utf8
159
159
 
160
160
  META "title" "about:hello_world"
161
161
 
@@ -76,7 +76,7 @@ Prototyping objects that are used frequently with a few modifications is another
76
76
 
77
77
  ```xml
78
78
  <?xml version="1.0" encoding="UTF-8"?>
79
- <X3D profile='Full' version='4.0' xmlns:xsd='http://www.w3.org/2001/XMLSchema-instance' xsd:noNamespaceSchemaLocation='http://www.web3d.org/specifications/x3d-4.0.xsd'>
79
+ <X3D profile='Full' version='{{ site.x3d_latest_version }}' xmlns:xsd='http://www.w3.org/2001/XMLSchema-instance' xsd:noNamespaceSchemaLocation='http://www.web3d.org/specifications/x3d-{{ site.x3d_latest_version }}.xsd'>
80
80
  <head>
81
81
  <meta name='comment' content='World of Titania'/>
82
82
  <meta name='created' content='Fri, 29 Jun 2018 13:24:34 GMT'/>
@@ -148,7 +148,7 @@ function set_whichChoice (value)
148
148
  ### Classic Encoding
149
149
 
150
150
  ```js
151
- #X3D V4.0 utf8 Titania V4.3.0
151
+ #X3D V{{ site.x3d_latest_version }} utf8
152
152
 
153
153
  PROTO BooleanSwitch [
154
154
  inputOutput SFBool whichChoice FALSE
@@ -337,7 +337,7 @@ ROUTE Bouncer.value_changed TO Ball.set_translation
337
337
 
338
338
  ```xml
339
339
  <?xml version="1.0" encoding="UTF-8"?>
340
- <X3D profile='Full' version='4.0' xmlns:xsd='http://www.w3.org/2001/XMLSchema-instance' xsd:noNamespaceSchemaLocation='http://www.web3d.org/specifications/x3d-4.0.xsd'>
340
+ <X3D profile='Full' version='{{ site.x3d_latest_version }}' xmlns:xsd='http://www.w3.org/2001/XMLSchema-instance' xsd:noNamespaceSchemaLocation='http://www.web3d.org/specifications/x3d-{{ site.x3d_latest_version }}.xsd'>
341
341
  <Scene>
342
342
  <Transform DEF='Ball'>
343
343
  <Shape>
@@ -390,7 +390,7 @@ function set_fraction (fraction, time)
390
390
  ### Classic Encoding
391
391
 
392
392
  ```js
393
- #X3D V4.0 utf8 Titania V4.3.0
393
+ #X3D V{{ site.x3d_latest_version }} utf8
394
394
 
395
395
  DEF Ball Transform {
396
396
  children [
@@ -5,6 +5,24 @@ nav: main
5
5
  categories: []
6
6
  tags: [new, releases]
7
7
  ---
8
+ ## X_ITE v8.3.3 Released
9
+
10
+ ### New Features
11
+
12
+ - Added to*String options (scene, style, precision, doublePrecision).
13
+ - Added output styles (CLEAN, SMALL, COMPACT, TIDY).
14
+ - Prefer PROTO's during parse.
15
+ - Collect joint nodes if no provided (HAnim).
16
+ - Relaxed VRML parser (parse top level statements in MFNode).
17
+ - XML short syntax of prototype instances.
18
+
19
+ ### Bug Fixes
20
+
21
+ - Fixed bug when floating point numbers are printed.
22
+ - Fixed bug when MFImage is printed.
23
+ - Fixed component's highest levels.
24
+ - Fixed double count of headlight.
25
+
8
26
  ## X_ITE v8.3.0 Released
9
27
 
10
28
  *Leipzig, 14st December 2022:* We right now released a new version.
@@ -512,7 +530,7 @@ This release also increased pure rendering speed (without routing and scripting)
512
530
  - Fixed picking and Layout node.
513
531
  - Fixed bug with composite glyphs in Text node.
514
532
  - Fixed bug with data URLs.
515
- - Fixed bug in toXMLString and toVRMLString when outputing protos.
533
+ - Fixed bug in toXMLString and toVRMLString when outputting protos.
516
534
 
517
535
  ## X_ITE v4.4.7 Released
518
536
 
@@ -552,7 +570,7 @@ This release also increased pure rendering speed (without routing and scripting)
552
570
  - Fixed bug when parsing SFMatrix3d/f values.
553
571
  - Fixed bug when parsing data URLs.
554
572
  - Fixed shadow handling.
555
- - Fixed bug in MF\* fields pop and shift.
573
+ - Fixed bug in MF* fields pop and shift.
556
574
 
557
575
  ## X_ITE v4.4.3 Released
558
576
 
@@ -879,7 +897,7 @@ You can tune the *shadowIntensity*. It is the intensity of the shadow. 0 means n
879
897
  - Optimizations in IndexedQuadSet and QuadSet
880
898
  - Optimized CoordinateInterpolator, NormalInterpolator, and CoordinateInterpolator2D
881
899
  - Support for more textures for custom shaders
882
- - New »StraigtenHorizon« browser option
900
+ - New »StraightenHorizon« browser option
883
901
  - Better rendering of Text in some cases
884
902
 
885
903
  ### Bug Fixes
@@ -5,7 +5,7 @@ order: 3
5
5
  icon: fas fa-rocket
6
6
  ---
7
7
  <style>
8
- .row, .post, .post-content {
8
+ .post, .post-content {
9
9
  height: 100%;
10
10
  }
11
11
 
@@ -15,24 +15,68 @@ icon: fas fa-rocket
15
15
 
16
16
  /* Table */
17
17
 
18
- table {
19
- width: 100%;
20
- height: 100%;
21
- table-layout: fixed;
18
+ .row {
19
+ display: flex;
20
+ height: calc(100vh - 180px);
22
21
  }
23
22
 
24
- table td {
25
- width: 50%;
26
- vertical-align: top;
23
+ .column {
24
+ flex: 50%;
25
+ width: 50%;
26
+ height: 100%;
27
27
  }
28
28
 
29
29
  /* Editor */
30
30
 
31
+ html {
32
+ --editor-background: rgba(0,0,0,0.2);
33
+ --editor-gutter: rgba(255,255,255,0.05);
34
+ --editor-active-line: #202d40;
35
+ --editor-selected-word: #274f79;
36
+ --xml-tag: var(--text-color);
37
+ --xml-tag-name: #5a9cd8;
38
+ --xml-attribute-name: #9fdcfe;
39
+ --xml-attribute-equals: #d4d4d4;
40
+ --xml-attribute-value: #cd9177;
41
+ --json-parenthesis: #fdd601;
42
+ --json-identifier: #9fdcfe;
43
+ --json-variable: #9fdcfe;
44
+ --json-numeric: #b7cea5;
45
+ --json-string: #cd9177;
46
+ --json-boolean: #5a9cd8;
47
+ --json-punctuation: #d4d4d4;
48
+ --system-red: rgb(255, 69, 58);
49
+ --system-yellow: rgb(255, 214, 10);
50
+ --system-blue: rgb(10, 132, 255);
51
+ }
52
+
53
+ html[data-mode=light] {
54
+ --editor-background: rgba(0,0,0,0.01);
55
+ --editor-gutter: #f3f3f3;
56
+ --editor-active-line: #d7e5f8;
57
+ --editor-selected-word: #aed6ff;
58
+ --xml-tag: var(--text-color);
59
+ --xml-tag-name: #7e0000;
60
+ --xml-attribute-name: #e20200;
61
+ --xml-attribute-equals: #000000;
62
+ --xml-attribute-value: #1000ff;
63
+ --json-parenthesis: #369327;
64
+ --json-identifier: #1251a6;
65
+ --json-variable: #1251a6;
66
+ --json-numeric: #1e8657;
67
+ --json-string: #a01515;
68
+ --json-boolean: #1000ff;
69
+ --json-punctuation: #000000;
70
+ --system-red: rgb(255, 59, 48);
71
+ --system-yellow: rgb(255, 204, 0);
72
+ --system-blue: rgb(0, 122, 255);
73
+ }
74
+
31
75
  #editor, .console {
32
76
  outline: none;
33
77
  border: none;
34
78
  padding: 0.5rem;
35
- background: rgba(0,0,0,0.2);
79
+ background: var(--editor-background);
36
80
  width: 100%;
37
81
  height: 100%;
38
82
  resize: none;
@@ -42,64 +86,88 @@ table td {
42
86
  white-space: pre;
43
87
  }
44
88
 
89
+ .console {
90
+ height: 50%;
91
+ }
92
+
93
+ .post x3d-canvas {
94
+ display: block;
95
+ width: 100%;
96
+ height: 50%;
97
+ aspect-ratio: unset;
98
+ }
99
+
45
100
  .ace_gutter {
46
- background: rgba(255,255,255,0.05) !important;
101
+ background: var(--editor-gutter) !important;
102
+ }
103
+
104
+ .ace_gutter-active-line,
105
+ .ace_active-line {
106
+ background: var(--editor-active-line) !important;
107
+ }
108
+
109
+ .ace_selected-word,
110
+ .ace_selection {
111
+ border: none !important;
112
+ background: var(--editor-selected-word) !important;
47
113
  }
48
114
 
49
115
  /* XML */
50
116
 
51
117
  .ace_tag-open, .ace_tag-close, .ace_end-tag-open {
52
- color: var(--text-color) !important;
118
+ color: var(--xml-tag) !important;
53
119
  }
54
120
 
55
121
  .ace_tag-name {
56
- color: #5a9cd8 !important;
122
+ color: var(--xml-tag-name) !important;
57
123
  }
58
124
 
59
125
  .ace_attribute-name {
60
- color: #9fdcfe !important;
126
+ color: var(--xml-attribute-name) !important;
61
127
  }
62
128
 
63
129
  .ace_attribute-equals {
64
- color: #d4d4d4 !important;
130
+ color: var(--xml-attribute-equals) !important;
65
131
  }
66
132
 
67
133
  .ace_attribute-value {
68
- color: #cd9177 !important;
134
+ color: var(--xml-attribute-value) !important;
69
135
  }
70
136
 
71
137
  /* JSON */
72
138
 
73
139
  .ace_paren {
74
- color: #fdd601 !important;
140
+ color: var(--json-parenthesis) !important;
75
141
  }
76
142
 
77
143
  .ace_identifier {
78
- color: #9fdcfe !important;
144
+ color: var(--json-identifier) !important;
79
145
  }
80
146
 
81
147
  .ace_variable {
82
- color: #9fdcfe !important;
148
+ color: var(--json-variable) !important;
83
149
  }
84
150
 
85
- .ace_numeric {
86
- color: #b7cea5 !important;
151
+ .ace_numeric,
152
+ .ace_keyword.ace_operator {
153
+ color: var(--json-numeric) !important;
87
154
  }
88
155
 
89
156
  .ace_string {
90
- color: #cd9177 !important;
157
+ color: var(--json-string) !important;
91
158
  }
92
159
 
93
160
  .ace_boolean {
94
- color: #5a9cd8 !important;
161
+ color: var(--json-boolean) !important;
162
+ }
163
+
164
+ .ace_punctuation.ace_operator {
165
+ color: var(--json-punctuation) !important;
95
166
  }
96
167
 
97
168
  /* Console */
98
169
 
99
170
  .console {
100
- --system-red: rgb(255, 69, 58);
101
- --system-yellow: rgb(255, 214, 10);
102
- --system-blue: rgb(10, 132, 255);
103
171
  overflow: scroll;
104
172
  }
105
173
 
@@ -107,21 +175,13 @@ span.info {
107
175
  color: var(--system-blue);
108
176
  }
109
177
 
110
- span.warning {
178
+ span.warn {
111
179
  color: var(--system-yellow);
112
180
  }
113
181
 
114
182
  span.error {
115
183
  color: var(--system-red);
116
184
  }
117
-
118
- /* Canvas */
119
-
120
- .post x3d-canvas {
121
- width: 100%;
122
- height: 100%;
123
- aspect-ratio: unset;
124
- }
125
185
  </style>
126
186
 
127
187
  <pre style="display:none">
@@ -182,7 +242,7 @@ $(function ()
182
242
  <Shape>
183
243
  <Appearance>
184
244
  <Material
185
- diffuseColor='0 0.5 1'></Material>
245
+ diffuseColor='0 0.5 1'></Material>
186
246
  </Appearance>
187
247
  <Box></Box>
188
248
  </Shape>
@@ -211,6 +271,9 @@ $(function ()
211
271
  text = Array .prototype .slice .call (args) .join ("") + "\n",
212
272
  element = $("<span></span>") .addClass (classes) .text (text);
213
273
 
274
+ if (text .includes ("No suitable"))
275
+ return;
276
+
214
277
  log .apply (this, args);
215
278
 
216
279
  $(".console") .append (element);
@@ -219,28 +282,18 @@ $(function ()
219
282
  }
220
283
  }
221
284
 
222
- console .log = output (console .log, "log");
223
- console .info = output (console .info, "info");
224
- console .warning = output (console .warning, "warning");
225
- console .error = output (console .error, "error");
226
- console .debug = output (console .debug, "debug");
285
+ console .log = output (console .log, "log");
286
+ console .info = output (console .info, "info");
287
+ console .warn = output (console .warn, "warn");
288
+ console .error = output (console .error, "error");
289
+ console .debug = output (console .debug, "debug");
227
290
  })();
228
291
  </script>
229
292
 
230
- <table>
231
- <tr>
232
- <td>
233
- <table>
234
- <tr>
235
- <td><x3d-canvas splashScreen="false"></x3d-canvas></td>
236
- </tr>
237
- <tr>
238
- <td><div class="console"></div></td>
239
- </tr>
240
- </table>
241
- </td>
242
- <td>
243
- <div id="editor"></div>
244
- </td>
245
- </tr>
246
- </table>
293
+ <div class="row">
294
+ <div class="column">
295
+ <x3d-canvas splashScreen="false"></x3d-canvas>
296
+ <div class="console"></div>
297
+ </div>
298
+ <div class="column"><div id="editor"></div></div>
299
+ </div>