x_ite 8.3.2 → 8.3.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (112) hide show
  1. package/.github/workflows/pages-deploy.yml +1 -1
  2. package/.vscode/settings.json +2 -1
  3. package/dist/LICENSE.md +4 -4
  4. package/dist/assets/components/Annotation.js +13 -13
  5. package/dist/assets/components/Annotation.min.js +1 -1
  6. package/dist/assets/components/CADGeometry.js +13 -13
  7. package/dist/assets/components/CADGeometry.min.js +1 -1
  8. package/dist/assets/components/CubeMapTexturing.js +25 -25
  9. package/dist/assets/components/CubeMapTexturing.min.js +1 -1
  10. package/dist/assets/components/DIS.js +13 -13
  11. package/dist/assets/components/DIS.min.js +1 -1
  12. package/dist/assets/components/EventUtilities.js +9 -9
  13. package/dist/assets/components/EventUtilities.min.js +1 -1
  14. package/dist/assets/components/Geometry2D.js +19 -19
  15. package/dist/assets/components/Geometry2D.min.js +1 -1
  16. package/dist/assets/components/Geospatial.js +33 -33
  17. package/dist/assets/components/Geospatial.min.js +1 -1
  18. package/dist/assets/components/HAnim.js +61 -74
  19. package/dist/assets/components/HAnim.min.js +1 -1
  20. package/dist/assets/components/KeyDeviceSensor.js +8 -8
  21. package/dist/assets/components/KeyDeviceSensor.min.js +1 -1
  22. package/dist/assets/components/Layout.js +27 -27
  23. package/dist/assets/components/Layout.min.js +1 -1
  24. package/dist/assets/components/NURBS.js +24 -24
  25. package/dist/assets/components/NURBS.min.js +1 -1
  26. package/dist/assets/components/ParticleSystems.js +23 -23
  27. package/dist/assets/components/ParticleSystems.min.js +1 -1
  28. package/dist/assets/components/Picking.js +19 -19
  29. package/dist/assets/components/Picking.min.js +1 -1
  30. package/dist/assets/components/RigidBodyPhysics.js +17 -17
  31. package/dist/assets/components/RigidBodyPhysics.min.js +1 -1
  32. package/dist/assets/components/Scripting.js +28 -28
  33. package/dist/assets/components/Scripting.min.js +1 -1
  34. package/dist/assets/components/Text.js +24 -24
  35. package/dist/assets/components/Text.min.js +1 -1
  36. package/dist/assets/components/{ProjectiveTextureMapping.js → TextureProjector.js} +39 -39
  37. package/dist/assets/components/TextureProjector.min.js +1 -0
  38. package/dist/assets/components/Texturing3D.js +27 -27
  39. package/dist/assets/components/Texturing3D.min.js +1 -1
  40. package/dist/assets/components/VolumeRendering.js +19 -19
  41. package/dist/assets/components/VolumeRendering.min.js +1 -1
  42. package/dist/assets/components/X_ITE.js +9 -9
  43. package/dist/assets/components/X_ITE.min.js +1 -1
  44. package/dist/x_ite.css +1 -1
  45. package/dist/x_ite.js +1492 -1291
  46. package/dist/x_ite.min.js +1 -1
  47. package/dist/x_ite.zip +0 -0
  48. package/docs/Gemfile +1 -4
  49. package/docs/_config.yml +3 -3
  50. package/docs/_posts/getting-started.md +147 -441
  51. package/docs/_posts/reference/scene-services.md +13 -2
  52. package/docs/_posts/what's-new.md +21 -3
  53. package/docs/_tabs/playground.html +36 -40
  54. package/docs/assets/css/style.scss +18 -0
  55. package/package.json +1 -1
  56. package/src/assets/components/{ProjectiveTextureMapping.js → TextureProjector.js} +5 -5
  57. package/src/examples.js +1 -1
  58. package/src/tests.js +5 -5
  59. package/src/x_ite/Base/X3DInfoArray.js +21 -21
  60. package/src/x_ite/Base/X3DObject.js +29 -20
  61. package/src/x_ite/Base/X3DObjectArrayField.js +27 -26
  62. package/src/x_ite/Base/X3DTypedArrayField.js +34 -32
  63. package/src/x_ite/Browser/DOMIntegration.js +4 -3
  64. package/src/x_ite/Browser/VERSION.js +1 -1
  65. package/src/x_ite/Browser/X3DBrowser.js +43 -28
  66. package/src/x_ite/Components/Core/X3DNode.js +196 -187
  67. package/src/x_ite/Components/Core/X3DPrototypeInstance.js +113 -90
  68. package/src/x_ite/Components/Grouping/X3DTransformMatrix3DNode.js +18 -43
  69. package/src/x_ite/Components/HAnim/HAnimHumanoid.js +24 -25
  70. package/src/x_ite/Components/HAnim/HAnimJoint.js +19 -31
  71. package/src/x_ite/Components/Sound/X3DSoundProcessingNode.js +14 -1
  72. package/src/x_ite/Components/Sound/X3DSoundSourceNode.js +0 -1
  73. package/src/x_ite/Components/{ProjectiveTextureMapping → TextureProjector}/TextureProjector.js +1 -1
  74. package/src/x_ite/Components/{ProjectiveTextureMapping → TextureProjector}/TextureProjectorParallel.js +1 -1
  75. package/src/x_ite/Components/{ProjectiveTextureMapping → TextureProjector}/X3DTextureProjectorNode.js +0 -0
  76. package/src/x_ite/Components/Time/TimeSensor.js +5 -0
  77. package/src/x_ite/Components/Time/X3DTimeDependentNode.js +1 -0
  78. package/src/x_ite/Configuration/ComponentInfo.js +20 -23
  79. package/src/x_ite/Configuration/ProfileInfo.js +6 -6
  80. package/src/x_ite/Configuration/SupportedComponents.js +22 -20
  81. package/src/x_ite/Configuration/SupportedProfiles.js +1 -1
  82. package/src/x_ite/Configuration/UnitInfo.js +24 -27
  83. package/src/x_ite/Execution/X3DExecutionContext.js +28 -59
  84. package/src/x_ite/Execution/X3DExportedNode.js +23 -28
  85. package/src/x_ite/Execution/X3DImportedNode.js +63 -67
  86. package/src/x_ite/Execution/X3DScene.js +98 -117
  87. package/src/x_ite/Fields/ArrayFields.js +57 -55
  88. package/src/x_ite/Fields/SFBool.js +6 -6
  89. package/src/x_ite/Fields/SFColor.js +10 -12
  90. package/src/x_ite/Fields/SFDouble.js +7 -10
  91. package/src/x_ite/Fields/SFFloat.js +7 -10
  92. package/src/x_ite/Fields/SFImage.js +33 -8
  93. package/src/x_ite/Fields/SFInt32.js +6 -6
  94. package/src/x_ite/Fields/SFMatrixPrototypeTemplate.js +13 -13
  95. package/src/x_ite/Fields/SFNode.js +42 -19
  96. package/src/x_ite/Fields/SFRotation.js +13 -13
  97. package/src/x_ite/Fields/SFString.js +6 -7
  98. package/src/x_ite/Fields/SFTime.js +6 -6
  99. package/src/x_ite/Fields/SFVecPrototypeTemplate.js +10 -10
  100. package/src/x_ite/InputOutput/FileLoader.js +1 -1
  101. package/src/x_ite/InputOutput/Generator.js +117 -17
  102. package/src/x_ite/Parser/VRMLParser.js +24 -27
  103. package/src/x_ite/Parser/X3DParser.js +0 -4
  104. package/src/x_ite/Parser/XMLParser.js +2 -2
  105. package/src/x_ite/Prototype/X3DExternProtoDeclaration.js +59 -64
  106. package/src/x_ite/Prototype/X3DProtoDeclaration.js +86 -93
  107. package/src/x_ite/Rendering/X3DRenderObject.js +6 -1
  108. package/src/x_ite/Routing/X3DRoute.js +37 -40
  109. package/src/x_ite.html +1 -1
  110. package/x_ite.min.html +1 -1
  111. package/dist/assets/components/ProjectiveTextureMapping.min.js +0 -1
  112. package/docs/Gemfile.lock +0 -116
@@ -52,7 +52,6 @@ import FieldDefinitionArray from "../Base/FieldDefinitionArray.js";
52
52
  import X3DExecutionContext from "../Execution/X3DExecutionContext.js";
53
53
  import X3DProtoDeclarationNode from "./X3DProtoDeclarationNode.js";
54
54
  import X3DConstants from "../Base/X3DConstants.js";
55
- import Generator from "../InputOutput/Generator.js";
56
55
 
57
56
  SupportedNodes .addAbstractType ("X3DProtoDeclaration", X3DProtoDeclaration);
58
57
 
@@ -65,8 +64,6 @@ function X3DProtoDeclaration (executionContext)
65
64
 
66
65
  this .addType (X3DConstants .X3DProtoDeclaration)
67
66
 
68
- this .addChildObjects ("loadState", new Fields .SFInt32 (X3DConstants .NOT_STARTED_STATE));
69
-
70
67
  this [_body] = new X3DExecutionContext (executionContext);
71
68
  this [_body] .setOuterNode (this);
72
69
  this [_body] .setLive (false);
@@ -88,8 +85,6 @@ X3DProtoDeclaration .prototype = Object .assign (Object .create (X3DProtoDeclara
88
85
  X3DProtoDeclarationNode .prototype .initialize .call (this);
89
86
 
90
87
  this [_body] .setup ();
91
-
92
- this ._loadState = X3DConstants .COMPLETE_STATE;
93
88
  },
94
89
  getProtoDeclaration: function ()
95
90
  {
@@ -99,108 +94,99 @@ X3DProtoDeclaration .prototype = Object .assign (Object .create (X3DProtoDeclara
99
94
  {
100
95
  return this [_body];
101
96
  },
102
- checkLoadState: function ()
103
- {
104
- return this ._loadState .getValue ();
105
- },
106
97
  canUserDefinedFields: function ()
107
98
  {
108
99
  return true;
109
100
  },
110
- toVRMLStream: function (stream)
101
+ toVRMLStream: function (generator)
111
102
  {
112
- const generator = Generator .Get (stream);
113
-
114
- stream .string += generator .Indent ();
115
- stream .string += "PROTO";
116
- stream .string += " ";
117
- stream .string += this .getName ();
118
- stream .string += " ";
119
- stream .string += "[";
103
+ generator .string += generator .Indent ();
104
+ generator .string += "PROTO";
105
+ generator .string += generator .Space ();
106
+ generator .string += this .getName ();
107
+ generator .string += generator .TidySpace ();
108
+ generator .string += "[";
120
109
 
121
110
  generator .EnterScope ();
122
111
 
123
112
  const userDefinedFields = this .getUserDefinedFields ();
124
113
 
125
- let
126
- fieldTypeLength = 0,
127
- accessTypeLength = 0;
128
-
129
114
  if (userDefinedFields .length === 0)
130
115
  {
131
- stream .string += " ";
116
+ generator .string += generator .TidySpace ();
132
117
  }
133
118
  else
134
119
  {
120
+ let
121
+ fieldTypeLength = 0,
122
+ accessTypeLength = 0;
123
+
135
124
  for (const field of userDefinedFields)
136
125
  {
137
126
  fieldTypeLength = Math .max (fieldTypeLength, field .getTypeName () .length);
138
127
  accessTypeLength = Math .max (accessTypeLength, generator .AccessType (field .getAccessType ()) .length);
139
128
  }
140
129
 
141
- stream .string += "\n";
130
+ generator .string += generator .TidyBreak ();
142
131
 
143
132
  generator .IncIndent ();
144
133
 
145
134
  for (const field of userDefinedFields)
146
135
  {
147
- this .toVRMLStreamUserDefinedField (stream, field, fieldTypeLength, accessTypeLength);
148
- stream .string += "\n";
136
+ this .toVRMLStreamUserDefinedField (generator, field, fieldTypeLength, accessTypeLength);
137
+
138
+ generator .string += generator .Break ();
149
139
  }
150
140
 
151
141
  generator .DecIndent ();
152
142
 
153
- stream .string += generator .Indent ();
143
+ generator .string += generator .Indent ();
154
144
  }
155
145
 
156
146
  generator .LeaveScope ();
157
147
 
158
- stream .string += "]";
159
- stream .string += "\n";
148
+ generator .string += "]";
149
+ generator .string += generator .TidyBreak ();
160
150
 
161
- stream .string += generator .Indent ();
162
- stream .string += "{";
163
- stream .string += "\n";
151
+ generator .string += generator .Indent ();
152
+ generator .string += "{";
153
+ generator .string += generator .TidyBreak ();
164
154
 
165
155
  generator .IncIndent ();
166
156
 
167
- this [_body] .toVRMLStream (stream);
157
+ this [_body] .toVRMLStream (generator);
168
158
 
169
159
  generator .DecIndent ();
170
160
 
171
- stream .string += generator .Indent ();
172
- stream .string += "}";
161
+ generator .string += generator .Indent ();
162
+ generator .string += "}";
173
163
  },
174
- toVRMLStreamUserDefinedField: function (stream, field, fieldTypeLength, accessTypeLength)
164
+ toVRMLStreamUserDefinedField: function (generator, field, fieldTypeLength, accessTypeLength)
175
165
  {
176
- const generator = Generator .Get (stream);
177
-
178
- stream .string += generator .Indent ();
179
- stream .string += generator .PadRight (generator .AccessType (field .getAccessType ()), accessTypeLength);
180
- stream .string += " ";
181
- stream .string += generator .PadRight (field .getTypeName (), fieldTypeLength);
182
- stream .string += " ";
183
- stream .string += field .getName ();
166
+ generator .string += generator .Indent ();
167
+ generator .string += generator .PadRight (generator .AccessType (field .getAccessType ()), accessTypeLength);
168
+ generator .string += generator .Space ();
169
+ generator .string += generator .PadRight (field .getTypeName (), fieldTypeLength);
170
+ generator .string += generator .Space ();
171
+ generator .string += field .getName ();
184
172
 
185
173
  if (field .isInitializable ())
186
174
  {
187
- stream .string += " ";
175
+ generator .string += generator .Space ();
188
176
 
189
- field .toVRMLStream (stream);
177
+ field .toVRMLStream (generator);
190
178
  }
191
179
  },
192
- toXMLStream: function (stream)
180
+ toXMLStream: function (generator)
193
181
  {
194
- const generator = Generator .Get (stream);
195
-
196
- stream .string += generator .Indent ();
197
- stream .string += "<ProtoDeclare";
198
- stream .string += " ";
199
- stream .string += "name='";
200
- stream .string += generator .XMLEncode (this .getName ());
201
- stream .string += "'";
202
- stream .string += ">";
203
- stream .string += "\n";
182
+ generator .string += generator .Indent ();
183
+ generator .string += "<ProtoDeclare";
184
+ generator .string += generator .Space ();
185
+ generator .string += "name='";
186
+ generator .string += generator .XMLEncode (this .getName ());
187
+ generator .string += "'";
188
+ generator .string += ">";
189
+ generator .string += generator .TidyBreak ();
204
190
 
205
191
  // <ProtoInterface>
206
192
 
@@ -212,31 +198,33 @@ X3DProtoDeclaration .prototype = Object .assign (Object .create (X3DProtoDeclara
212
198
  {
213
199
  generator .IncIndent ();
214
200
 
215
- stream .string += generator .Indent ();
216
- stream .string += "<ProtoInterface>\n";
201
+ generator .string += generator .Indent ();
202
+ generator .string += "<ProtoInterface>";
203
+ generator .string += generator .TidyBreak ();
217
204
 
218
205
  generator .IncIndent ();
219
206
 
220
207
  for (const field of userDefinedFields)
221
208
  {
222
- stream .string += generator .Indent ();
223
- stream .string += "<field";
224
- stream .string += " ";
225
- stream .string += "accessType='";
226
- stream .string += generator .AccessType (field .getAccessType ());
227
- stream .string += "'";
228
- stream .string += " ";
229
- stream .string += "type='";
230
- stream .string += field .getTypeName ();
231
- stream .string += "'";
232
- stream .string += " ";
233
- stream .string += "name='";
234
- stream .string += generator .XMLEncode (field .getName ());
235
- stream .string += "'";
209
+ generator .string += generator .Indent ();
210
+ generator .string += "<field";
211
+ generator .string += generator .Space ();
212
+ generator .string += "accessType='";
213
+ generator .string += generator .AccessType (field .getAccessType ());
214
+ generator .string += "'";
215
+ generator .string += generator .Space ();
216
+ generator .string += "type='";
217
+ generator .string += field .getTypeName ();
218
+ generator .string += "'";
219
+ generator .string += generator .Space ();
220
+ generator .string += "name='";
221
+ generator .string += generator .XMLEncode (field .getName ());
222
+ generator .string += "'";
236
223
 
237
224
  if (field .isDefaultValue ())
238
225
  {
239
- stream .string += "/>\n";
226
+ generator .string += "/>";
227
+ generator .string += generator .TidyBreak ();
240
228
  }
241
229
  else
242
230
  {
@@ -247,31 +235,33 @@ X3DProtoDeclaration .prototype = Object .assign (Object .create (X3DProtoDeclara
247
235
  {
248
236
  generator .PushContainerField (field);
249
237
 
250
- stream .string += ">\n";
238
+ generator .string += generator .TidyBreak ();
251
239
 
252
240
  generator .IncIndent ();
253
241
 
254
- field .toXMLStream (stream);
242
+ field .toXMLStream (generator);
255
243
 
256
- stream .string += "\n";
244
+ generator .string += generator .TidyBreak ();
257
245
 
258
246
  generator .DecIndent ();
259
247
 
260
- stream .string += generator .Indent ();
261
- stream .string += "</field>\n";
248
+ generator .string += generator .Indent ();
249
+ generator .string += "</field>";
250
+ generator .string += generator .TidyBreak ();
262
251
 
263
252
  generator .PopContainerField ();
264
253
  break;
265
254
  }
266
255
  default:
267
256
  {
268
- stream .string += " ";
269
- stream .string += "value='";
257
+ generator .string += generator .Space ();
258
+ generator .string += "value='";
270
259
 
271
- field .toXMLStream (stream);
260
+ field .toXMLStream (generator);
272
261
 
273
- stream .string += "'";
274
- stream .string += "/>\n";
262
+ generator .string += "'";
263
+ generator .string += "/>";
264
+ generator .string += generator .TidyBreak ();
275
265
  break;
276
266
  }
277
267
  }
@@ -280,8 +270,9 @@ X3DProtoDeclaration .prototype = Object .assign (Object .create (X3DProtoDeclara
280
270
 
281
271
  generator .DecIndent ();
282
272
 
283
- stream .string += generator .Indent ();
284
- stream .string += "</ProtoInterface>\n";
273
+ generator .string += generator .Indent ();
274
+ generator .string += "</ProtoInterface>";
275
+ generator .string += generator .TidyBreak ();
285
276
 
286
277
  generator .DecIndent ();
287
278
  }
@@ -294,24 +285,26 @@ X3DProtoDeclaration .prototype = Object .assign (Object .create (X3DProtoDeclara
294
285
 
295
286
  generator .IncIndent ();
296
287
 
297
- stream .string += generator .Indent ();
298
- stream .string += "<ProtoBody>\n";
288
+ generator .string += generator .Indent ();
289
+ generator .string += "<ProtoBody>";
290
+ generator .string += generator .TidyBreak ();
299
291
 
300
292
  generator .IncIndent ();
301
293
 
302
- this [_body] .toXMLStream (stream);
294
+ this [_body] .toXMLStream (generator);
303
295
 
304
296
  generator .DecIndent ();
305
297
 
306
- stream .string += generator .Indent ();
307
- stream .string += "</ProtoBody>\n";
298
+ generator .string += generator .Indent ();
299
+ generator .string += "</ProtoBody>";
300
+ generator .string += generator .TidyBreak ();
308
301
 
309
302
  generator .DecIndent ();
310
303
 
311
304
  // </ProtoBody>
312
305
 
313
- stream .string += generator .Indent ();
314
- stream .string += "</ProtoDeclare>";
306
+ generator .string += generator .Indent ();
307
+ generator .string += "</ProtoDeclare>";
315
308
  },
316
309
  });
317
310
 
@@ -82,6 +82,7 @@ function X3DRenderObject (executionContext)
82
82
  this .localShadows = [ false ];
83
83
  this .localFogs = [ null ];
84
84
  this .layouts = [ ];
85
+ this .jointNodes = [ ];
85
86
  this .textureProjectors = [ ];
86
87
  this .generatedCubeMapTextures = [ ];
87
88
  this .collisions = [ ];
@@ -219,6 +220,10 @@ X3DRenderObject .prototype =
219
220
  {
220
221
  return this .layouts;
221
222
  },
223
+ getJoints: function ()
224
+ {
225
+ return this .jointNodes;
226
+ },
222
227
  getParentLayout: function ()
223
228
  {
224
229
  return this .layouts .at (-1);
@@ -837,7 +842,7 @@ X3DRenderObject .prototype =
837
842
  globalShadows = this .globalShadows,
838
843
  shadows = globalShadows .at (-1),
839
844
  headlight = this .getNavigationInfo () ._headlight .getValue (),
840
- numGlobalLights = globalObjects .reduce ((v, c) => v + !!c .lightNode, +headlight),
845
+ numGlobalLights = globalObjects .reduce ((v, c) => v + !!c .lightNode, 0),
841
846
  numGlobalTextureProjectors = globalObjects .reduce ((v, c) => v + !!c .textureProjectorNode, 0);
842
847
 
843
848
 
@@ -48,7 +48,6 @@
48
48
  import X3DObject from "../Base/X3DObject.js";
49
49
  import X3DConstants from "../Base/X3DConstants.js";
50
50
  import SFNodeCache from "../Fields/SFNodeCache.js";
51
- import Generator from "../InputOutput/Generator.js";
52
51
 
53
52
  const
54
53
  _executionContext = Symbol (),
@@ -112,68 +111,66 @@ X3DRoute .prototype = Object .assign (Object .create (X3DObject .prototype),
112
111
  this [_sourceField] .removeOutputRoute (this);
113
112
  this [_destinationField] .removeInputRoute (this);
114
113
  },
115
- toVRMLStream: function (stream)
114
+ toVRMLStream: function (generator)
116
115
  {
117
116
  const
118
- generator = Generator .Get (stream),
119
117
  sourceNodeName = generator .LocalName (this [_sourceNode]),
120
118
  destinationNodeName = generator .LocalName (this [_destinationNode]);
121
119
 
122
- stream .string += generator .Indent ();
123
- stream .string += "ROUTE";
124
- stream .string += " ";
125
- stream .string += sourceNodeName;
126
- stream .string += ".";
127
- stream .string += this [_sourceField] .getName ();
120
+ generator .string += generator .Indent ();
121
+ generator .string += "ROUTE";
122
+ generator .string += generator .Space ();
123
+ generator .string += sourceNodeName;
124
+ generator .string += ".";
125
+ generator .string += this [_sourceField] .getName ();
128
126
 
129
127
  if (this [_sourceField] .getAccessType () === X3DConstants .inputOutput)
130
- stream .string += "_changed";
128
+ generator .string += "_changed";
131
129
 
132
- stream .string += " ";
133
- stream .string += "TO";
134
- stream .string += " ";
135
- stream .string += destinationNodeName;
136
- stream .string += ".";
130
+ generator .string += generator .Space ();
131
+ generator .string += "TO";
132
+ generator .string += generator .Space ();
133
+ generator .string += destinationNodeName;
134
+ generator .string += ".";
137
135
 
138
136
  if (this [_destinationField] .getAccessType () === X3DConstants .inputOutput)
139
- stream .string += "set_";
137
+ generator .string += "set_";
140
138
 
141
- stream .string += this [_destinationField] .getName ();
139
+ generator .string += this [_destinationField] .getName ();
142
140
  },
143
- toXMLStream: function (stream)
141
+ toXMLStream: function (generator)
144
142
  {
145
143
  const
146
- generator = Generator .Get (stream),
147
144
  sourceNodeName = generator .LocalName (this [_sourceNode]),
148
145
  destinationNodeName = generator .LocalName (this [_destinationNode]);
149
146
 
150
- stream .string += generator .Indent ();
151
- stream .string += "<ROUTE";
152
- stream .string += " ";
153
- stream .string += "fromNode='";
154
- stream .string += generator .XMLEncode (sourceNodeName);
155
- stream .string += "'";
156
- stream .string += " ";
157
- stream .string += "fromField='";
158
- stream .string += generator .XMLEncode (this [_sourceField] .getName ());
147
+ generator .string += generator .Indent ();
148
+ generator .string += "<ROUTE";
149
+ generator .string += generator .Space ();
150
+ generator .string += "fromNode='";
151
+ generator .string += generator .XMLEncode (sourceNodeName);
152
+ generator .string += "'";
153
+ generator .string += generator .Space ();
154
+ generator .string += "fromField='";
155
+ generator .string += generator .XMLEncode (this [_sourceField] .getName ());
159
156
 
160
157
  if (this [_sourceField] .getAccessType () === X3DConstants .inputOutput)
161
- stream .string += "_changed";
158
+ generator .string += "_changed";
162
159
 
163
- stream .string += "'";
164
- stream .string += " ";
165
- stream .string += "toNode='";
166
- stream .string += generator .XMLEncode (destinationNodeName);
167
- stream .string += "'";
168
- stream .string += " ";
169
- stream .string += "toField='";
160
+ generator .string += "'";
161
+ generator .string += generator .Space ();
162
+ generator .string += "toNode='";
163
+ generator .string += generator .XMLEncode (destinationNodeName);
164
+ generator .string += "'";
165
+ generator .string += generator .Space ();
166
+ generator .string += "toField='";
170
167
 
171
168
  if (this [_destinationField] .getAccessType () === X3DConstants .inputOutput)
172
- stream .string += "set_";
169
+ generator .string += "set_";
173
170
 
174
- stream .string += generator .XMLEncode (this [_destinationField] .getName ());
175
- stream .string += "'";
176
- stream .string += "/>";
171
+ generator .string += generator .XMLEncode (this [_destinationField] .getName ());
172
+ generator .string += "'";
173
+ generator .string += "/>";
177
174
  },
178
175
  dispose: function ()
179
176
  {
package/src/x_ite.html CHANGED
@@ -396,7 +396,7 @@ main.color-management .browser {
396
396
  </div>
397
397
  </div>
398
398
  </main>
399
- <footer><div class="console"></div></footer>
399
+ <footer><div class="console x_ite-console"></div></footer>
400
400
  </div>
401
401
  </body>
402
402
  </html>
package/x_ite.min.html CHANGED
@@ -378,7 +378,7 @@ main.color-management .browser {
378
378
  </div>
379
379
  </div>
380
380
  </main>
381
- <footer><div class="console"></div></footer>
381
+ <footer><div class="console x_ite-console"></div></footer>
382
382
  </div>
383
383
  </body>
384
384
  </html>
@@ -1 +0,0 @@
1
- /* X_ITE v8.3.2 */(()=>{"use strict";var t={n:e=>{var i=e&&e.__esModule?()=>e.default:()=>e;return t.d(i,{a:i}),i},d:(e,i)=>{for(var r in i)t.o(i,r)&&!t.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:i[r]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e)};const e=window[Symbol.for("X_ITE.X3D-8.3.2")].require("x_ite/Components");var i=t.n(e);const r=window[Symbol.for("X_ITE.X3D-8.3.2")].require("x_ite/Fields");var o=t.n(r);const n=window[Symbol.for("X_ITE.X3D-8.3.2")].require("x_ite/Base/X3DFieldDefinition");var s=t.n(n);const a=window[Symbol.for("X_ITE.X3D-8.3.2")].require("x_ite/Base/FieldDefinitionArray");var u=t.n(a);const c=window[Symbol.for("X_ITE.X3D-8.3.2")].require("x_ite/Components/Core/X3DChildNode");var h=t.n(c);const l=window[Symbol.for("X_ITE.X3D-8.3.2")].require("x_ite/Base/X3DConstants");var x=t.n(l);const p=window[Symbol.for("X_ITE.X3D-8.3.2")].require("x_ite/Base/X3DCast");var g=t.n(p);const d=window[Symbol.for("X_ITE.X3D-8.3.2")].require("standard/Math/Numbers/Vector3");var w=t.n(d);const m=window[Symbol.for("X_ITE.X3D-8.3.2")].require("standard/Math/Numbers/Rotation4");var f=t.n(m);const _=window[Symbol.for("X_ITE.X3D-8.3.2")].require("standard/Math/Numbers/Matrix4");var T=t.n(_);const M=window[Symbol.for("X_ITE.X3D-8.3.2")].require("x_ite/Namespace");var j,v,y,V,S,b=t.n(M);function X(t){h().call(this,t),this.addType(x().X3DTextureProjectorNode),this._location.setUnit("length"),this._farDistance.setUnit("length"),this._location.setUnit("length")}X.prototype=Object.assign(Object.create(h().prototype),{constructor:X,initialize:function(){h().prototype.initialize.call(this),this._on.addInterest("set_on__",this),this._texture.addInterest("set_texture__",this),this.set_texture__()},getGlobal:function(){return this._global.getValue()},getLocation:function(){return this._location.getValue()},getDirection:function(){return this._direction.getValue()},getNearDistance:function(){return this._nearDistance.getValue()},getFarDistance:function(){return this._farDistance.getValue()},getTexture:function(){return this.textureNode},getBiasMatrix:(S=new(T())(.5,0,0,0,0,.5,0,0,0,0,.5,0,.5,.5,.5,1),function(){return S}),straightenHorizon:(j=new(w())(0,0,0),v=new(w())(0,0,0),y=new(w())(0,0,0),V=new(f())(0,0,1,0),function(t){t.multVecRot(j.assign(w().xAxis).negate()),t.multVecRot(v.assign(w().zAxis)),y.assign(this._upVector.getValue()).normalize();var e=v.cross(y);return Math.abs(v.dot(y))>=1||Math.abs(e.dot(j))>=1?t:(V.setFromToVec(j,e),t.multRight(V))}),set_on__:function(){this._on.getValue()&&this.textureNode?(delete this.push,delete this.pop):(this.push=Function.prototype,this.pop=Function.prototype)},set_texture__:function(){this.textureNode&&this.textureNode.removeInterest("set_aspectRatio__",this),this.textureNode=g()(x().X3DTexture2DNode,this._texture),this.textureNode&&this.textureNode.addInterest("set_aspectRatio__",this),this.set_aspectRatio__(),this.set_on__()},set_aspectRatio__:function(){this.textureNode?this._aspectRatio=this.textureNode.getWidth()/this.textureNode.getHeight():this._aspectRatio=0},push:function(t){var e=this.getTextureProjectors().pop();e.set(this,t.getModelViewMatrix().get()),this._global.getValue()?(t.getGlobalObjects().push(e),t.getTextureProjectors().push(e)):(t.getLocalObjects().push(e),t.getTextureProjectors().push(e),++t.getLocalObjectsCount()[2])},pop:function(t){this._global.getValue()||(t.getLocalObjects().pop(),--t.getLocalObjectsCount()[2])}});const O=X;b().set("x_ite/Components/ProjectiveTextureMapping/X3DTextureProjectorNode",O);const P=O,F=window[Symbol.for("X_ITE.X3D-8.3.2")].require("standard/Math/Geometry/Camera");var D=t.n(F);const N=window[Symbol.for("X_ITE.X3D-8.3.2")].require("standard/Utility/ObjectCache");var I=t.n(N),R=I()(E);function E(){this.projectionMatrix=new(T()),this.modelViewMatrix=new(T()),this.modelMatrix=new(T()),this.invTextureSpaceMatrix=new(T()),this.invTextureSpaceProjectionMatrix=new(T()),this.location=new(w())(0,0,0),this.locationArray=new Float32Array(3),this.direction=new(w())(0,0,0),this.rotation=new(f()),this.projectiveTextureMatrix=new(T()),this.projectiveTextureMatrixArray=new Float32Array(16)}function z(t){P.call(this,t),this.addType(x().TextureProjector),this._fieldOfView.setUnit("angle")}E.prototype={constructor:E,set:function(t,e){this.browser=t.getBrowser(),this.textureProjectorNode=t,this.modelViewMatrix.assign(e)},setGroup:function(t){this.groupNode=t},getModelViewMatrix:function(){return this.modelViewMatrix},setGlobalVariables:function(t){var e=this.textureProjectorNode,i=t.getCameraSpaceMatrix().get(),r=this.modelMatrix.assign(this.modelViewMatrix).multRight(i),o=this.invTextureSpaceMatrix.assign(e.getGlobal()?r:T().Identity);this.rotation.setFromToVec(w().zAxis,this.direction.assign(e.getDirection()).negate()),e.straightenHorizon(this.rotation),o.translate(e.getLocation()),o.rotate(this.rotation),o.inverse();var n=e.getTexture().getWidth(),s=e.getTexture().getHeight(),a=e.getNearDistance(),u=e.getFarDistance(),c=e.getFieldOfView();D().perspective(c,a,u,n,s,this.projectionMatrix),e.getGlobal()||o.multLeft(r.inverse()),this.invTextureSpaceProjectionMatrix.assign(o).multRight(this.projectionMatrix).multRight(e.getBiasMatrix()),this.projectiveTextureMatrix.assign(i).multRight(this.invTextureSpaceProjectionMatrix),this.projectiveTextureMatrixArray.set(this.projectiveTextureMatrix),this.modelViewMatrix.multVecMatrix(this.location.assign(e._location.getValue())),this.locationArray.set(this.location)},setShaderUniforms:function(t,e,i){const r=e.numProjectiveTextures++;if(e.hasTextureProjector(r,this))return;const o=this.textureProjectorNode.getTexture(),n=this.browser.getTexture2DUnit();t.activeTexture(t.TEXTURE0+n),t.bindTexture(t.TEXTURE_2D,o.getTexture()),t.uniform1i(e.x3d_ProjectiveTexture[r],n),t.uniformMatrix4fv(e.x3d_ProjectiveTextureMatrix[r],!1,this.projectiveTextureMatrixArray),t.uniform3fv(e.x3d_ProjectiveTextureLocation[r],this.locationArray)},dispose:function(){R.push(this)}},z.prototype=Object.assign(Object.create(P.prototype),{constructor:z,[Symbol.for("X_ITE.X3DBaseNode.fieldDefinitions")]:new(u())([new(s())(x().inputOutput,"metadata",new(o().SFNode)),new(s())(x().inputOutput,"description",new(o().SFString)),new(s())(x().inputOutput,"on",new(o().SFBool)(!0)),new(s())(x().inputOutput,"global",new(o().SFBool)(!0)),new(s())(x().inputOutput,"location",new(o().SFVec3f)(0,0,1)),new(s())(x().inputOutput,"direction",new(o().SFVec3f)(0,0,1)),new(s())(x().inputOutput,"upVector",new(o().SFVec3f)(0,0,1)),new(s())(x().inputOutput,"fieldOfView",new(o().SFFloat)(.7854)),new(s())(x().inputOutput,"nearDistance",new(o().SFFloat)(1)),new(s())(x().inputOutput,"farDistance",new(o().SFFloat)(10)),new(s())(x().outputOnly,"aspectRatio",new(o().SFFloat)),new(s())(x().inputOutput,"texture",new(o().SFNode))]),getTypeName:function(){return"TextureProjector"},getComponentName:function(){return"ProjectiveTextureMapping"},getContainerField:function(){return"children"},initialize:function(){P.prototype.initialize.call(this)},getFieldOfView:function(){var t=this._fieldOfView.getValue();return t>0&&t<Math.PI?t:Math.PI/4},getTextureProjectors:function(){return R}});const A=z;b().set("x_ite/Components/ProjectiveTextureMapping/TextureProjector",A);const C=A;var B=I()(U);function U(){this.projectionMatrix=new(T()),this.modelViewMatrix=new(T()),this.modelMatrix=new(T()),this.invTextureSpaceMatrix=new(T()),this.location=new(w())(0,0,0),this.locationArray=new Float32Array(3),this.invTextureSpaceProjectionMatrix=new(T()),this.direction=new(w())(0,0,0),this.rotation=new(f()),this.projectiveTextureMatrix=new(T()),this.projectiveTextureMatrixArray=new Float32Array(16)}function Y(t){P.call(this,t),this.addType(x().TextureProjectorParallel),this._fieldOfView.setUnit("length")}U.prototype={constructor:U,set:function(t,e){this.browser=t.getBrowser(),this.textureProjectorNode=t,this.modelViewMatrix.assign(e)},setGroup:function(t){this.groupNode=t},getModelViewMatrix:function(){return this.modelViewMatrix},setGlobalVariables:function(t){var e=this.textureProjectorNode,i=t.getCameraSpaceMatrix().get(),r=this.modelMatrix.assign(this.modelViewMatrix).multRight(i),o=this.invTextureSpaceMatrix.assign(e.getGlobal()?r:T().Identity);this.rotation.setFromToVec(w().zAxis,this.direction.assign(e.getDirection()).negate()),e.straightenHorizon(this.rotation),o.translate(e.getLocation()),o.rotate(this.rotation),o.inverse();var n=e.getTexture().getWidth()/e.getTexture().getHeight(),s=e.getMinimumX(),a=e.getMaximumX(),u=e.getMinimumY(),c=e.getMaximumY(),h=e.getSizeX(),l=e.getSizeY(),x=e.getNearDistance(),p=e.getFarDistance();if(n>h/l){var g=(s+a)/2,d=l*n/2;D().ortho(g-d,g+d,u,c,x,p,this.projectionMatrix)}else{g=(u+c)/2,d=h/n/2;D().ortho(s,a,g-d,g+d,x,p,this.projectionMatrix)}e.getGlobal()||o.multLeft(r.inverse()),this.invTextureSpaceProjectionMatrix.assign(o).multRight(this.projectionMatrix).multRight(e.getBiasMatrix()),this.projectiveTextureMatrix.assign(i).multRight(this.invTextureSpaceProjectionMatrix),this.projectiveTextureMatrixArray.set(this.projectiveTextureMatrix),this.modelViewMatrix.multVecMatrix(this.location.assign(e._location.getValue())),this.locationArray.set(this.location)},setShaderUniforms:function(t,e,i){const r=e.numProjectiveTextures++;if(e.hasTextureProjector(r,this))return;const o=this.textureProjectorNode.getTexture(),n=this.browser.getTexture2DUnit();t.activeTexture(t.TEXTURE0+n),t.bindTexture(t.TEXTURE_2D,o.getTexture()),t.uniform1i(e.x3d_ProjectiveTexture[r],n),t.uniformMatrix4fv(e.x3d_ProjectiveTextureMatrix[r],!1,this.projectiveTextureMatrixArray),t.uniform3fv(e.x3d_ProjectiveTextureLocation[r],this.locationArray)},dispose:function(){B.push(this)}},Y.prototype=Object.assign(Object.create(P.prototype),{constructor:Y,[Symbol.for("X_ITE.X3DBaseNode.fieldDefinitions")]:new(u())([new(s())(x().inputOutput,"metadata",new(o().SFNode)),new(s())(x().inputOutput,"description",new(o().SFString)),new(s())(x().inputOutput,"on",new(o().SFBool)(!0)),new(s())(x().inputOutput,"global",new(o().SFBool)(!0)),new(s())(x().inputOutput,"location",new(o().SFVec3f)(0,0,1)),new(s())(x().inputOutput,"direction",new(o().SFVec3f)(0,0,1)),new(s())(x().inputOutput,"upVector",new(o().SFVec3f)(0,1,0)),new(s())(x().inputOutput,"fieldOfView",new(o().MFFloat)(-1,-1,1,1)),new(s())(x().inputOutput,"nearDistance",new(o().SFFloat)(1)),new(s())(x().inputOutput,"farDistance",new(o().SFFloat)(10)),new(s())(x().outputOnly,"aspectRatio",new(o().SFFloat)),new(s())(x().inputOutput,"texture",new(o().SFNode))]),getTypeName:function(){return"TextureProjectorParallel"},getComponentName:function(){return"ProjectiveTextureMapping"},getContainerField:function(){return"children"},initialize:function(){P.prototype.initialize.call(this),this._fieldOfView.addInterest("set_fieldOfView___",this),this.set_fieldOfView___()},set_fieldOfView___:function(){var t=this._fieldOfView.length;this.minimumX=t>0?this._fieldOfView[0]:-1,this.minimumY=t>1?this._fieldOfView[1]:-1,this.maximumX=t>2?this._fieldOfView[2]:1,this.maximumY=t>3?this._fieldOfView[3]:1,this.sizeX=this.maximumX-this.minimumX,this.sizeY=this.maximumY-this.minimumY},getMinimumX:function(){return this.minimumX},getMinimumY:function(){return this.minimumY},getMaximumX:function(){return this.maximumX},getMaximumY:function(){return this.maximumY},getSizeX:function(){return this.sizeX},getSizeY:function(){return this.sizeY},getTextureProjectors:function(){return B}});const q=Y;b().set("x_ite/Components/ProjectiveTextureMapping/TextureProjectorParallel",q);const G=q;i().addComponent({name:"ProjectiveTextureMapping",types:{TextureProjector:C,TextureProjectorParallel:G},abstractTypes:{X3DTextureProjectorNode:P}});const L=void 0;b().set("assets/components/ProjectiveTextureMapping",L)})();
package/docs/Gemfile.lock DELETED
@@ -1,116 +0,0 @@
1
- GEM
2
- remote: https://rubygems.org/
3
- specs:
4
- addressable (2.8.1)
5
- public_suffix (>= 2.0.2, < 6.0)
6
- colorator (1.1.0)
7
- concurrent-ruby (1.1.10)
8
- em-websocket (0.5.3)
9
- eventmachine (>= 0.12.9)
10
- http_parser.rb (~> 0)
11
- ethon (0.16.0)
12
- ffi (>= 1.15.0)
13
- eventmachine (1.2.7)
14
- ffi (1.15.5)
15
- forwardable-extended (2.6.0)
16
- html-proofer (3.19.4)
17
- addressable (~> 2.3)
18
- mercenary (~> 0.3)
19
- nokogiri (~> 1.13)
20
- parallel (~> 1.10)
21
- rainbow (~> 3.0)
22
- typhoeus (~> 1.3)
23
- yell (~> 2.0)
24
- http_parser.rb (0.8.0)
25
- i18n (1.12.0)
26
- concurrent-ruby (~> 1.0)
27
- jekyll (4.3.1)
28
- addressable (~> 2.4)
29
- colorator (~> 1.0)
30
- em-websocket (~> 0.5)
31
- i18n (~> 1.0)
32
- jekyll-sass-converter (>= 2.0, < 4.0)
33
- jekyll-watch (~> 2.0)
34
- kramdown (~> 2.3, >= 2.3.1)
35
- kramdown-parser-gfm (~> 1.0)
36
- liquid (~> 4.0)
37
- mercenary (>= 0.3.6, < 0.5)
38
- pathutil (~> 0.9)
39
- rouge (>= 3.0, < 5.0)
40
- safe_yaml (~> 1.0)
41
- terminal-table (>= 1.8, < 4.0)
42
- webrick (~> 1.7)
43
- jekyll-archives (2.2.1)
44
- jekyll (>= 3.6, < 5.0)
45
- jekyll-paginate (1.1.0)
46
- jekyll-redirect-from (0.16.0)
47
- jekyll (>= 3.3, < 5.0)
48
- jekyll-sass-converter (2.2.0)
49
- sassc (> 2.0.1, < 3.0)
50
- jekyll-seo-tag (2.8.0)
51
- jekyll (>= 3.8, < 5.0)
52
- jekyll-sitemap (1.4.0)
53
- jekyll (>= 3.7, < 5.0)
54
- jekyll-theme-chirpy (5.3.2)
55
- jekyll (~> 4.1)
56
- jekyll-archives (~> 2.2)
57
- jekyll-paginate (~> 1.1)
58
- jekyll-redirect-from (~> 0.16)
59
- jekyll-seo-tag (~> 2.7)
60
- jekyll-sitemap (~> 1.4)
61
- jekyll-watch (2.2.1)
62
- listen (~> 3.0)
63
- kramdown (2.4.0)
64
- rexml
65
- kramdown-parser-gfm (1.1.0)
66
- kramdown (~> 2.0)
67
- liquid (4.0.3)
68
- listen (3.7.1)
69
- rb-fsevent (~> 0.10, >= 0.10.3)
70
- rb-inotify (~> 0.9, >= 0.9.10)
71
- mercenary (0.4.0)
72
- nokogiri (1.13.10-arm64-darwin)
73
- racc (~> 1.4)
74
- nokogiri (1.13.10-x86_64-darwin)
75
- racc (~> 1.4)
76
- parallel (1.22.1)
77
- pathutil (0.16.2)
78
- forwardable-extended (~> 2.6)
79
- public_suffix (5.0.1)
80
- racc (1.6.1)
81
- rainbow (3.1.1)
82
- rb-fsevent (0.11.2)
83
- rb-inotify (0.10.1)
84
- ffi (~> 1.0)
85
- rexml (3.2.5)
86
- rouge (3.30.0)
87
- safe_yaml (1.0.5)
88
- sassc (2.4.0)
89
- ffi (~> 1.9)
90
- terminal-table (3.0.2)
91
- unicode-display_width (>= 1.1.1, < 3)
92
- thread_safe (0.3.6)
93
- typhoeus (1.4.0)
94
- ethon (>= 0.9.0)
95
- tzinfo (1.2.10)
96
- thread_safe (~> 0.1)
97
- tzinfo-data (1.2022.7)
98
- tzinfo (>= 1.0.0)
99
- unicode-display_width (2.3.0)
100
- wdm (0.1.1)
101
- webrick (1.7.0)
102
- yell (2.2.2)
103
-
104
- PLATFORMS
105
- universal-darwin-22
106
-
107
- DEPENDENCIES
108
- html-proofer (~> 3.18)
109
- jekyll-theme-chirpy (~> 5.3, >= 5.3.2)
110
- tzinfo (~> 1.2)
111
- tzinfo-data
112
- wdm (~> 0.1.1)
113
- webrick (~> 1.7)
114
-
115
- BUNDLED WITH
116
- 2.3.22