x_ite 10.1.0 → 10.3.0

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 (95) hide show
  1. package/README.md +18 -18
  2. package/dist/LICENSE.md +4 -0
  3. package/dist/X3DUOM.xml +69 -11
  4. package/dist/assets/components/{Annotation.js → AnnotationComponent.js} +138 -260
  5. package/dist/assets/components/AnnotationComponent.min.js +2 -0
  6. package/dist/assets/components/{CADGeometry.js → CADGeometryComponent.js} +177 -299
  7. package/dist/assets/components/CADGeometryComponent.min.js +2 -0
  8. package/dist/assets/components/{CubeMapTexturing.js → CubeMapTexturingComponent.js} +218 -257
  9. package/dist/assets/components/CubeMapTexturingComponent.min.js +2 -0
  10. package/dist/assets/components/DISComponent.js +994 -0
  11. package/dist/assets/components/DISComponent.min.js +2 -0
  12. package/dist/assets/components/{EventUtilities.js → EventUtilitiesComponent.js} +121 -274
  13. package/dist/assets/components/EventUtilitiesComponent.min.js +2 -0
  14. package/dist/assets/components/{Geometry2D.js → Geometry2DComponent.js} +233 -371
  15. package/dist/assets/components/Geometry2DComponent.min.js +2 -0
  16. package/dist/assets/components/{Geospatial.js → GeospatialComponent.js} +449 -676
  17. package/dist/assets/components/GeospatialComponent.min.js +2 -0
  18. package/dist/assets/components/{HAnim.js → HAnimComponent.js} +277 -387
  19. package/dist/assets/components/HAnimComponent.min.js +2 -0
  20. package/dist/assets/components/{KeyDeviceSensor.js → KeyDeviceSensorComponent.js} +71 -114
  21. package/dist/assets/components/KeyDeviceSensorComponent.min.js +2 -0
  22. package/dist/assets/components/{Layout.js → LayoutComponent.js} +234 -339
  23. package/dist/assets/components/LayoutComponent.min.js +2 -0
  24. package/dist/assets/components/{NURBS.js → NURBSComponent.js} +351 -654
  25. package/dist/assets/components/NURBSComponent.min.js +2 -0
  26. package/dist/assets/components/{ParticleSystems.js → ParticleSystemsComponent.js} +345 -674
  27. package/dist/assets/components/ParticleSystemsComponent.min.js +2 -0
  28. package/dist/assets/components/{Picking.js → PickingComponent.js} +245 -472
  29. package/dist/assets/components/PickingComponent.min.js +2 -0
  30. package/dist/assets/components/{RigidBodyPhysics.js → RigidBodyPhysicsComponent.js} +496 -804
  31. package/dist/assets/components/RigidBodyPhysicsComponent.min.js +2 -0
  32. package/dist/assets/components/ScriptingComponent.js +899 -0
  33. package/dist/assets/components/ScriptingComponent.min.js +2 -0
  34. package/dist/assets/components/{Text.js → TextComponent.js} +199 -251
  35. package/dist/assets/components/TextComponent.min.js +2 -0
  36. package/dist/assets/components/{TextureProjection.js → TextureProjectionComponent.js} +144 -190
  37. package/dist/assets/components/TextureProjectionComponent.min.js +2 -0
  38. package/dist/assets/components/{Texturing3D.js → Texturing3DComponent.js} +224 -386
  39. package/dist/assets/components/Texturing3DComponent.min.js +2 -0
  40. package/dist/assets/components/{VolumeRendering.js → VolumeRenderingComponent.js} +316 -603
  41. package/dist/assets/components/VolumeRenderingComponent.min.js +2 -0
  42. package/dist/assets/components/{X_ITE.js → X_ITEComponent.js} +1250 -1347
  43. package/dist/assets/components/X_ITEComponent.min.js +2 -0
  44. package/dist/assets/fonts/PT_Sans/OFL.txt +94 -0
  45. package/dist/assets/fonts/PT_Sans/PTSans-Bold.ttf +0 -0
  46. package/dist/assets/fonts/PT_Sans/PTSans-BoldItalic.ttf +0 -0
  47. package/dist/assets/fonts/PT_Sans/PTSans-Italic.ttf +0 -0
  48. package/dist/assets/fonts/PT_Sans/PTSans-Regular.ttf +0 -0
  49. package/dist/assets/images/XR.svg +74 -0
  50. package/dist/assets/lib/mikktspace_bg.wasm +0 -0
  51. package/dist/example.html +1 -1
  52. package/dist/x_ite.css +1 -1
  53. package/dist/x_ite.d.ts +128 -22
  54. package/dist/x_ite.js +3575 -6278
  55. package/dist/x_ite.min.js +2 -1
  56. package/dist/x_ite.min.mjs +2 -1
  57. package/dist/x_ite.mjs +3575 -6278
  58. package/dist/x_ite.zip +0 -0
  59. package/package.json +7 -5
  60. package/dist/assets/components/Annotation.min.js +0 -1
  61. package/dist/assets/components/CADGeometry.min.js +0 -1
  62. package/dist/assets/components/CubeMapTexturing.min.js +0 -1
  63. package/dist/assets/components/DIS.js +0 -1104
  64. package/dist/assets/components/DIS.min.js +0 -1
  65. package/dist/assets/components/EventUtilities.min.js +0 -1
  66. package/dist/assets/components/Geometry2D.min.js +0 -1
  67. package/dist/assets/components/Geospatial.min.js +0 -1
  68. package/dist/assets/components/HAnim.min.js +0 -1
  69. package/dist/assets/components/KeyDeviceSensor.min.js +0 -1
  70. package/dist/assets/components/Layout.min.js +0 -1
  71. package/dist/assets/components/NURBS.min.js +0 -1
  72. package/dist/assets/components/ParticleSystems.min.js +0 -1
  73. package/dist/assets/components/Picking.min.js +0 -1
  74. package/dist/assets/components/RigidBodyPhysics.min.js +0 -1
  75. package/dist/assets/components/Scripting.js +0 -927
  76. package/dist/assets/components/Scripting.min.js +0 -1
  77. package/dist/assets/components/Text.min.js +0 -1
  78. package/dist/assets/components/TextureProjection.min.js +0 -1
  79. package/dist/assets/components/Texturing3D.min.js +0 -1
  80. package/dist/assets/components/VolumeRendering.min.js +0 -1
  81. package/dist/assets/components/X_ITE.min.js +0 -1
  82. /package/dist/assets/fonts/{DroidSerif Apache License.txt → Droid/DroidSerif Apache License.txt} +0 -0
  83. /package/dist/assets/fonts/{DroidSerif-Bold.ttf → Droid/DroidSerif-Bold.ttf} +0 -0
  84. /package/dist/assets/fonts/{DroidSerif-BoldItalic.ttf → Droid/DroidSerif-BoldItalic.ttf} +0 -0
  85. /package/dist/assets/fonts/{DroidSerif-Italic.ttf → Droid/DroidSerif-Italic.ttf} +0 -0
  86. /package/dist/assets/fonts/{DroidSerif-Regular.ttf → Droid/DroidSerif-Regular.ttf} +0 -0
  87. /package/dist/assets/fonts/{Ubuntu LICENCE.txt → Ubuntu/Ubuntu LICENCE.txt} +0 -0
  88. /package/dist/assets/fonts/{Ubuntu-B.ttf → Ubuntu/Ubuntu-B.ttf} +0 -0
  89. /package/dist/assets/fonts/{Ubuntu-BI.ttf → Ubuntu/Ubuntu-BI.ttf} +0 -0
  90. /package/dist/assets/fonts/{Ubuntu-R.ttf → Ubuntu/Ubuntu-R.ttf} +0 -0
  91. /package/dist/assets/fonts/{Ubuntu-RI.ttf → Ubuntu/Ubuntu-RI.ttf} +0 -0
  92. /package/dist/assets/fonts/{UbuntuMono-B.ttf → Ubuntu/UbuntuMono-B.ttf} +0 -0
  93. /package/dist/assets/fonts/{UbuntuMono-BI.ttf → Ubuntu/UbuntuMono-BI.ttf} +0 -0
  94. /package/dist/assets/fonts/{UbuntuMono-R.ttf → Ubuntu/UbuntuMono-R.ttf} +0 -0
  95. /package/dist/assets/fonts/{UbuntuMono-RI.ttf → Ubuntu/UbuntuMono-RI.ttf} +0 -0
@@ -1,4 +1,6 @@
1
- /* X_ITE v10.1.0 */(() => { // webpackBootstrap
1
+ /* X_ITE v10.3.0 */
2
+ const __X_ITE_X3D__ = window [Symbol .for ("X_ITE.X3D-10.3.0")];
3
+ /******/ (() => { // webpackBootstrap
2
4
  /******/ "use strict";
3
5
  /******/ // The require scope
4
6
  /******/ var __webpack_require__ = {};
@@ -37,28 +39,31 @@
37
39
 
38
40
  // UNUSED EXPORTS: default
39
41
 
40
- ;// CONCATENATED MODULE: external "window [Symbol .for (\"X_ITE.X3D\")] .require (\"x_ite/Components\")"
41
- const Components_namespaceObject = window [Symbol .for ("X_ITE.X3D-10.1.0")] .require ("x_ite/Components");
42
- var Components_default = /*#__PURE__*/__webpack_require__.n(Components_namespaceObject);
43
- ;// CONCATENATED MODULE: external "window [Symbol .for (\"X_ITE.X3D\")] .require (\"x_ite/Fields\")"
44
- const Fields_namespaceObject = window [Symbol .for ("X_ITE.X3D-10.1.0")] .require ("x_ite/Fields");
45
- var Fields_default = /*#__PURE__*/__webpack_require__.n(Fields_namespaceObject);
46
- ;// CONCATENATED MODULE: external "window [Symbol .for (\"X_ITE.X3D\")] .require (\"x_ite/Base/X3DFieldDefinition\")"
47
- const X3DFieldDefinition_namespaceObject = window [Symbol .for ("X_ITE.X3D-10.1.0")] .require ("x_ite/Base/X3DFieldDefinition");
48
- var X3DFieldDefinition_default = /*#__PURE__*/__webpack_require__.n(X3DFieldDefinition_namespaceObject);
49
- ;// CONCATENATED MODULE: external "window [Symbol .for (\"X_ITE.X3D\")] .require (\"x_ite/Base/FieldDefinitionArray\")"
50
- const FieldDefinitionArray_namespaceObject = window [Symbol .for ("X_ITE.X3D-10.1.0")] .require ("x_ite/Base/FieldDefinitionArray");
51
- var FieldDefinitionArray_default = /*#__PURE__*/__webpack_require__.n(FieldDefinitionArray_namespaceObject);
52
- ;// CONCATENATED MODULE: external "window [Symbol .for (\"X_ITE.X3D\")] .require (\"x_ite/Components/Shape/X3DAppearanceChildNode\")"
53
- const X3DAppearanceChildNode_namespaceObject = window [Symbol .for ("X_ITE.X3D-10.1.0")] .require ("x_ite/Components/Shape/X3DAppearanceChildNode");
54
- var X3DAppearanceChildNode_default = /*#__PURE__*/__webpack_require__.n(X3DAppearanceChildNode_namespaceObject);
55
- ;// CONCATENATED MODULE: external "window [Symbol .for (\"X_ITE.X3D\")] .require (\"x_ite/Base/X3DConstants\")"
56
- const X3DConstants_namespaceObject = window [Symbol .for ("X_ITE.X3D-10.1.0")] .require ("x_ite/Base/X3DConstants");
57
- var X3DConstants_default = /*#__PURE__*/__webpack_require__.n(X3DConstants_namespaceObject);
58
- ;// CONCATENATED MODULE: external "window [Symbol .for (\"X_ITE.X3D\")] .require (\"x_ite/Namespace\")"
59
- const Namespace_namespaceObject = window [Symbol .for ("X_ITE.X3D-10.1.0")] .require ("x_ite/Namespace");
60
- var Namespace_default = /*#__PURE__*/__webpack_require__.n(Namespace_namespaceObject);
61
- ;// CONCATENATED MODULE: ./src/x_ite/Components/X_ITE/BlendMode.js
42
+ ;// CONCATENATED MODULE: external "__X_ITE_X3D__ .Components"
43
+ const external_X_ITE_X3D_Components_namespaceObject = __X_ITE_X3D__ .Components;
44
+ var external_X_ITE_X3D_Components_default = /*#__PURE__*/__webpack_require__.n(external_X_ITE_X3D_Components_namespaceObject);
45
+ ;// CONCATENATED MODULE: external "__X_ITE_X3D__ .Fields"
46
+ const external_X_ITE_X3D_Fields_namespaceObject = __X_ITE_X3D__ .Fields;
47
+ var external_X_ITE_X3D_Fields_default = /*#__PURE__*/__webpack_require__.n(external_X_ITE_X3D_Fields_namespaceObject);
48
+ ;// CONCATENATED MODULE: external "__X_ITE_X3D__ .X3DFieldDefinition"
49
+ const external_X_ITE_X3D_X3DFieldDefinition_namespaceObject = __X_ITE_X3D__ .X3DFieldDefinition;
50
+ var external_X_ITE_X3D_X3DFieldDefinition_default = /*#__PURE__*/__webpack_require__.n(external_X_ITE_X3D_X3DFieldDefinition_namespaceObject);
51
+ ;// CONCATENATED MODULE: external "__X_ITE_X3D__ .FieldDefinitionArray"
52
+ const external_X_ITE_X3D_FieldDefinitionArray_namespaceObject = __X_ITE_X3D__ .FieldDefinitionArray;
53
+ var external_X_ITE_X3D_FieldDefinitionArray_default = /*#__PURE__*/__webpack_require__.n(external_X_ITE_X3D_FieldDefinitionArray_namespaceObject);
54
+ ;// CONCATENATED MODULE: external "__X_ITE_X3D__ .X3DNode"
55
+ const external_X_ITE_X3D_X3DNode_namespaceObject = __X_ITE_X3D__ .X3DNode;
56
+ var external_X_ITE_X3D_X3DNode_default = /*#__PURE__*/__webpack_require__.n(external_X_ITE_X3D_X3DNode_namespaceObject);
57
+ ;// CONCATENATED MODULE: external "__X_ITE_X3D__ .X3DConstants"
58
+ const external_X_ITE_X3D_X3DConstants_namespaceObject = __X_ITE_X3D__ .X3DConstants;
59
+ var external_X_ITE_X3D_X3DConstants_default = /*#__PURE__*/__webpack_require__.n(external_X_ITE_X3D_X3DConstants_namespaceObject);
60
+ ;// CONCATENATED MODULE: external "__X_ITE_X3D__ .BitSet"
61
+ const external_X_ITE_X3D_BitSet_namespaceObject = __X_ITE_X3D__ .BitSet;
62
+ var external_X_ITE_X3D_BitSet_default = /*#__PURE__*/__webpack_require__.n(external_X_ITE_X3D_BitSet_namespaceObject);
63
+ ;// CONCATENATED MODULE: external "__X_ITE_X3D__ .Namespace"
64
+ const external_X_ITE_X3D_Namespace_namespaceObject = __X_ITE_X3D__ .Namespace;
65
+ var external_X_ITE_X3D_Namespace_default = /*#__PURE__*/__webpack_require__.n(external_X_ITE_X3D_Namespace_namespaceObject);
66
+ ;// CONCATENATED MODULE: ./src/x_ite/Components/X_ITE/X3DMaterialExtensionNode.js
62
67
  /*******************************************************************************
63
68
  *
64
69
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -110,157 +115,40 @@ var Namespace_default = /*#__PURE__*/__webpack_require__.n(Namespace_namespaceOb
110
115
 
111
116
 
112
117
 
113
-
114
-
115
- /**
116
- * THIS NODE IS STILL EXPERIMENTAL.
117
- */
118
-
119
- function BlendMode (executionContext)
118
+ function X3DMaterialExtensionNode (executionContext)
120
119
  {
121
- X3DAppearanceChildNode_default().call (this, executionContext);
120
+ external_X_ITE_X3D_X3DNode_default().call (this, executionContext);
122
121
 
123
- this .addType ((X3DConstants_default()).BlendMode);
122
+ this .addType ((external_X_ITE_X3D_X3DConstants_default()).X3DMaterialExtensionNode);
124
123
 
125
- this .factorTypes = new Map ();
126
- this .equationTypes = new Map ();
124
+ this .textureBits = new (external_X_ITE_X3D_BitSet_default()) ();
127
125
  }
128
126
 
129
- Object .assign (Object .setPrototypeOf (BlendMode .prototype, (X3DAppearanceChildNode_default()).prototype),
127
+ Object .assign (Object .setPrototypeOf (X3DMaterialExtensionNode .prototype, (external_X_ITE_X3D_X3DNode_default()).prototype),
130
128
  {
131
- initialize ()
132
- {
133
- X3DAppearanceChildNode_default().prototype .initialize .call (this);
134
-
135
- const
136
- gl = this .getBrowser () .getContext (),
137
- ext = gl .getExtension ('EXT_blend_minmax');
138
-
139
- this .factorTypes .set ("ZERO", gl .ZERO);
140
- this .factorTypes .set ("ONE", gl .ONE);
141
- this .factorTypes .set ("SRC_COLOR", gl .SRC_COLOR);
142
- this .factorTypes .set ("ONE_MINUS_SRC_COLOR", gl .ONE_MINUS_SRC_COLOR);
143
- this .factorTypes .set ("DST_COLOR", gl .DST_COLOR);
144
- this .factorTypes .set ("ONE_MINUS_DST_COLOR", gl .ONE_MINUS_DST_COLOR);
145
- this .factorTypes .set ("SRC_ALPHA", gl .SRC_ALPHA);
146
- this .factorTypes .set ("ONE_MINUS_SRC_ALPHA", gl .ONE_MINUS_SRC_ALPHA);
147
- this .factorTypes .set ("DST_ALPHA", gl .DST_ALPHA);
148
- this .factorTypes .set ("ONE_MINUS_DST_ALPHA", gl .ONE_MINUS_DST_ALPHA);
149
- this .factorTypes .set ("SRC_ALPHA_SATURATE", gl .SRC_ALPHA_SATURATE);
150
- this .factorTypes .set ("CONSTANT_COLOR", gl .CONSTANT_COLOR);
151
- this .factorTypes .set ("ONE_MINUS_CONSTANT_COLOR", gl .ONE_MINUS_CONSTANT_COLOR);
152
- this .factorTypes .set ("CONSTANT_ALPHA", gl .CONSTANT_ALPHA);
153
- this .factorTypes .set ("ONE_MINUS_CONSTANT_ALPHA", gl .ONE_MINUS_CONSTANT_ALPHA);
154
-
155
- this .equationTypes .set ("FUNC_ADD", gl .FUNC_ADD);
156
- this .equationTypes .set ("FUNC_SUBTRACT", gl .FUNC_SUBTRACT);
157
- this .equationTypes .set ("FUNC_REVERSE_SUBTRACT", gl .FUNC_REVERSE_SUBTRACT);
158
- this .equationTypes .set ("MIN", gl .MIN || (ext && ext .MIN_EXT));
159
- this .equationTypes .set ("MAX", gl .MAX || (ext && ext .MAX_EXT));
160
-
161
- this ._sourceColorFactor .addInterest ("set_sourceColorFactor__", this);
162
- this ._sourceAlphaFactor .addInterest ("set_sourceAlphaFactor__", this);
163
- this ._destinationColorFactor .addInterest ("set_destinationColorFactor__", this);
164
- this ._destinationAlphaFactor .addInterest ("set_destinationAlphaFactor__", this);
165
- this ._colorEquation .addInterest ("set_colorEquation__", this);
166
- this ._alphaEquation .addInterest ("set_alphaEquation__", this);
167
-
168
- this .set_sourceColorFactor__ ();
169
- this .set_sourceAlphaFactor__ ();
170
- this .set_destinationColorFactor__ ();
171
- this .set_destinationAlphaFactor__ ();
172
- this .set_colorEquation__ ();
173
- this .set_alphaEquation__ ();
174
- },
175
- set_sourceColorFactor__ ()
176
- {
177
- this .sourceColorFactorType = this .factorTypes .get (this ._sourceColorFactor .getValue ())
178
- ?? this .factorTypes .get ("SRC_ALPHA");
179
- },
180
- set_sourceAlphaFactor__ ()
181
- {
182
- this .sourceAlphaFactorType = this .factorTypes .get (this ._sourceAlphaFactor .getValue ())
183
- ?? this .factorTypes .get ("ONE");
184
- },
185
- set_destinationColorFactor__ ()
186
- {
187
- this .destinationColorFactorType = this .factorTypes .get (this ._destinationColorFactor .getValue ())
188
- ?? this .factorTypes .get ("ONE_MINUS_SRC_ALPHA");
189
- },
190
- set_destinationAlphaFactor__ ()
191
- {
192
- this .destinationAlphaFactorType = this .factorTypes .get (this ._destinationAlphaFactor .getValue ())
193
- ?? this .factorTypes .get ("ONE_MINUS_SRC_ALPHA");
194
- },
195
- set_colorEquation__ ()
196
- {
197
- this .colorEquationType = this .equationTypes .get (this ._colorEquation .getValue ())
198
- ?? this .equationTypes .get ("FUNC_ADD");
199
- },
200
- set_alphaEquation__ ()
201
- {
202
- this .alphaEquationType = this .equationTypes .get (this ._alphaEquation .getValue ())
203
- ?? this .equationTypes .get ("FUNC_ADD");
204
- },
205
- enable (gl)
129
+ setTexture (index, textureNode)
206
130
  {
207
- const color = this ._blendColor .getValue ();
131
+ index *= 4;
208
132
 
209
- gl .blendColor (color .r, color .g, color .b, color .a);
210
- gl .blendFuncSeparate (this .sourceColorFactorType, this .destinationColorFactorType, this .sourceAlphaFactorType, this .destinationAlphaFactorType);
211
- gl .blendEquationSeparate (this .colorEquationType, this .alphaEquationType);
133
+ this .textureBits .remove (index, 0xf);
134
+ this .textureBits .add (index, textureNode ?.getTextureBits () ?? 0);
212
135
  },
213
- disable (gl)
136
+ getTextureBits ()
214
137
  {
215
- gl .blendFuncSeparate (gl .SRC_ALPHA, gl .ONE_MINUS_SRC_ALPHA, gl .ONE, gl .ONE_MINUS_SRC_ALPHA);
216
- gl .blendEquationSeparate (gl .FUNC_ADD, gl .FUNC_ADD);
138
+ return this .textureBits;
217
139
  },
218
140
  });
219
141
 
220
- Object .defineProperties (BlendMode,
221
- {
222
- typeName:
223
- {
224
- value: "BlendMode",
225
- enumerable: true,
226
- },
227
- componentInfo:
228
- {
229
- value: Object .freeze ({ name: "X_ITE", level: 1 }),
230
- enumerable: true,
231
- },
232
- containerField:
233
- {
234
- value: "blendMode",
235
- enumerable: true,
236
- },
237
- specificationRange:
238
- {
239
- value: Object .freeze ({ from: "3.3", to: "Infinity" }),
240
- enumerable: true,
241
- },
242
- fieldDefinitions:
243
- {
244
- value: new (FieldDefinitionArray_default()) ([
245
- new (X3DFieldDefinition_default()) ((X3DConstants_default()).inputOutput, "metadata", new (Fields_default()).SFNode ()),
246
- new (X3DFieldDefinition_default()) ((X3DConstants_default()).inputOutput, "blendColor", new (Fields_default()).SFColorRGBA ()),
247
- new (X3DFieldDefinition_default()) ((X3DConstants_default()).inputOutput, "sourceColorFactor", new (Fields_default()).SFString ("SRC_ALPHA")),
248
- new (X3DFieldDefinition_default()) ((X3DConstants_default()).inputOutput, "sourceAlphaFactor", new (Fields_default()).SFString ("ONE")),
249
- new (X3DFieldDefinition_default()) ((X3DConstants_default()).inputOutput, "destinationColorFactor", new (Fields_default()).SFString ("ONE_MINUS_SRC_ALPHA")),
250
- new (X3DFieldDefinition_default()) ((X3DConstants_default()).inputOutput, "destinationAlphaFactor", new (Fields_default()).SFString ("ONE_MINUS_SRC_ALPHA")),
251
- new (X3DFieldDefinition_default()) ((X3DConstants_default()).inputOutput, "colorEquation", new (Fields_default()).SFString ("FUNC_ADD")),
252
- new (X3DFieldDefinition_default()) ((X3DConstants_default()).inputOutput, "alphaEquation", new (Fields_default()).SFString ("FUNC_ADD")),
253
- ]),
254
- enumerable: true,
255
- },
256
- });
142
+ Object .defineProperties (X3DMaterialExtensionNode, external_X_ITE_X3D_X3DNode_default().getStaticProperties ("X3DMaterialExtensionNode", "X_ITE", 1));
257
143
 
258
- const __default__ = BlendMode;
144
+ const __default__ = X3DMaterialExtensionNode;
259
145
  ;
260
146
 
261
- Namespace_default().add ("BlendMode", "x_ite/Components/X_ITE/BlendMode", __default__);
262
- /* harmony default export */ const X_ITE_BlendMode = (__default__);
263
- ;// CONCATENATED MODULE: ./src/x_ite/Components/X_ITE/DepthMode.js
147
+ /* harmony default export */ const X_ITE_X3DMaterialExtensionNode = (external_X_ITE_X3D_Namespace_default().add ("X3DMaterialExtensionNode", __default__));
148
+ ;// CONCATENATED MODULE: external "__X_ITE_X3D__ .X3DCast"
149
+ const external_X_ITE_X3D_X3DCast_namespaceObject = __X_ITE_X3D__ .X3DCast;
150
+ var external_X_ITE_X3D_X3DCast_default = /*#__PURE__*/__webpack_require__.n(external_X_ITE_X3D_X3DCast_namespaceObject);
151
+ ;// CONCATENATED MODULE: ./src/x_ite/Browser/X_ITE/ExtensionKeys.js
264
152
  /*******************************************************************************
265
153
  *
266
154
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -308,147 +196,29 @@ Namespace_default().add ("BlendMode", "x_ite/Components/X_ITE/BlendMode", __defa
308
196
  *
309
197
  ******************************************************************************/
310
198
 
199
+ let i = 0;
311
200
 
312
-
313
-
314
-
315
-
316
-
317
- /**
318
- * THIS NODE IS STILL EXPERIMENTAL.
319
- */
320
-
321
- function DepthMode (executionContext)
322
- {
323
- X3DAppearanceChildNode_default().call (this, executionContext);
324
-
325
- this .addType ((X3DConstants_default()).DepthMode);
326
-
327
- this .addAlias ("depthFunc", this ._depthFunction);
328
- }
329
-
330
- Object .assign (Object .setPrototypeOf (DepthMode .prototype, (X3DAppearanceChildNode_default()).prototype),
331
- {
332
- initialize ()
333
- {
334
- X3DAppearanceChildNode_default().prototype .initialize .call (this);
335
-
336
- this ._depthFunction .addInterest ("set_depthFunction__", this);
337
-
338
- this .set_depthFunction__ ();
339
- },
340
- set_depthFunction__: (function ()
341
- {
342
- const depthFunctions = new Map ([
343
- ["NEVER", "NEVER"],
344
- ["LESS", "LESS"],
345
- ["EQUAL", "EQUAL"],
346
- ["LESS_EQUAL", "LEQUAL"],
347
- ["GREATER", "GREATER"],
348
- ["NOT_EQUAL", "NOTEQUAL"],
349
- ["GREATER_EQUAL", "GEQUAL"],
350
- ["ALWAYS", "ALWAYS"],
351
- ]);
352
-
353
- return function ()
354
- {
355
- const gl = this .getBrowser () .getContext ();
356
-
357
- this .depthFunction = gl [depthFunctions .get (this ._depthFunction .getValue ()) ?? "LEQUAL"];
358
- };
359
- })(),
360
- enable (gl)
361
- {
362
- this .depthTest = gl .isEnabled (gl .DEPTH_TEST);
363
- this .depthWriteMask = gl .getParameter (gl .DEPTH_WRITEMASK);
364
-
365
- gl .enable (gl .POLYGON_OFFSET_FILL);
366
- gl .polygonOffset (... this ._polygonOffset);
367
-
368
- if (this ._depthTest .getValue ())
369
- gl .enable (gl .DEPTH_TEST);
370
- else
371
- gl .disable (gl .DEPTH_TEST);
372
-
373
- gl .depthFunc (this .depthFunction);
374
- gl .depthRange (... this ._depthRange .getValue ());
375
- gl .depthMask (this ._depthMask .getValue ());
376
- },
377
- disable (gl)
378
- {
379
- gl .disable (gl .POLYGON_OFFSET_FILL);
380
-
381
- if (this .depthTest)
382
- gl .enable (gl .DEPTH_TEST);
383
- else
384
- gl .disable (gl .DEPTH_TEST);
385
-
386
- gl .depthFunc (gl .LEQUAL);
387
- gl .depthRange (0, 1);
388
- gl .depthMask (this .depthWriteMask);
389
- },
390
- });
391
-
392
- Object .defineProperties (DepthMode,
201
+ const ExtensionKeys =
393
202
  {
394
- typeName:
395
- {
396
- value: "DepthMode",
397
- enumerable: true,
398
- },
399
- componentInfo:
400
- {
401
- value: Object .freeze ({ name: "X_ITE", level: 1 }),
402
- enumerable: true,
403
- },
404
- containerField:
405
- {
406
- value: "depthMode",
407
- enumerable: true,
408
- },
409
- specificationRange:
410
- {
411
- value: Object .freeze ({ from: "4.0", to: "Infinity" }),
412
- enumerable: true,
413
- },
414
- fieldDefinitions:
415
- {
416
- value: new (FieldDefinitionArray_default()) ([
417
- new (X3DFieldDefinition_default()) ((X3DConstants_default()).inputOutput, "metadata", new (Fields_default()).SFNode ()),
418
- new (X3DFieldDefinition_default()) ((X3DConstants_default()).inputOutput, "polygonOffset", new (Fields_default()).SFVec2f ()),
419
- new (X3DFieldDefinition_default()) ((X3DConstants_default()).inputOutput, "depthRange", new (Fields_default()).SFVec2f (0, 1)),
420
- new (X3DFieldDefinition_default()) ((X3DConstants_default()).inputOutput, "depthTest", new (Fields_default()).SFBool (true)),
421
- new (X3DFieldDefinition_default()) ((X3DConstants_default()).inputOutput, "depthFunction", new (Fields_default()).SFString ("LESS_EQUAL")),
422
- new (X3DFieldDefinition_default()) ((X3DConstants_default()).inputOutput, "depthMask", new (Fields_default()).SFBool (true)),
423
- ]),
424
- enumerable: true,
425
- },
426
- });
203
+ ANISOTROPY_MATERIAL_EXTENSION: i ++,
204
+ CLEARCOAT_MATERIAL_EXTENSION: i ++,
205
+ DIFFUSE_TRANSMISSION_EXTENSION: i ++,
206
+ DISPERSION_MATERIAL_EXTENSION: i ++,
207
+ EMISSIVE_STRENGTH_MATERIAL_EXTENSION: i ++,
208
+ IOR_MATERIAL_EXTENSION: i ++,
209
+ IRIDESCENCE_MATERIAL_EXTENSION: i ++,
210
+ SHEEN_MATERIAL_EXTENSION: i ++,
211
+ SPECULAR_MATERIAL_EXTENSION: i ++,
212
+ TRANSMISSION_MATERIAL_EXTENSION: i ++,
213
+ UNLIT_MATERIAL_EXTENSION: i ++,
214
+ VOLUME_MATERIAL_EXTENSION: i ++,
215
+ };
427
216
 
428
- const DepthMode_default_ = DepthMode;
217
+ const ExtensionKeys_default_ = ExtensionKeys;
429
218
  ;
430
219
 
431
- Namespace_default().add ("DepthMode", "x_ite/Components/X_ITE/DepthMode", DepthMode_default_);
432
- /* harmony default export */ const X_ITE_DepthMode = (DepthMode_default_);
433
- ;// CONCATENATED MODULE: external "window [Symbol .for (\"X_ITE.X3D\")] .require (\"x_ite/Components/Shape/X3DShapeNode\")"
434
- const X3DShapeNode_namespaceObject = window [Symbol .for ("X_ITE.X3D-10.1.0")] .require ("x_ite/Components/Shape/X3DShapeNode");
435
- var X3DShapeNode_default = /*#__PURE__*/__webpack_require__.n(X3DShapeNode_namespaceObject);
436
- ;// CONCATENATED MODULE: external "window [Symbol .for (\"X_ITE.X3D\")] .require (\"x_ite/Rendering/TraverseType\")"
437
- const TraverseType_namespaceObject = window [Symbol .for ("X_ITE.X3D-10.1.0")] .require ("x_ite/Rendering/TraverseType");
438
- var TraverseType_default = /*#__PURE__*/__webpack_require__.n(TraverseType_namespaceObject);
439
- ;// CONCATENATED MODULE: external "window [Symbol .for (\"X_ITE.X3D\")] .require (\"x_ite/Rendering/VertexArray\")"
440
- const VertexArray_namespaceObject = window [Symbol .for ("X_ITE.X3D-10.1.0")] .require ("x_ite/Rendering/VertexArray");
441
- var VertexArray_default = /*#__PURE__*/__webpack_require__.n(VertexArray_namespaceObject);
442
- ;// CONCATENATED MODULE: external "window [Symbol .for (\"X_ITE.X3D\")] .require (\"standard/Math/Numbers/Vector3\")"
443
- const Vector3_namespaceObject = window [Symbol .for ("X_ITE.X3D-10.1.0")] .require ("standard/Math/Numbers/Vector3");
444
- var Vector3_default = /*#__PURE__*/__webpack_require__.n(Vector3_namespaceObject);
445
- ;// CONCATENATED MODULE: external "window [Symbol .for (\"X_ITE.X3D\")] .require (\"standard/Math/Numbers/Matrix4\")"
446
- const Matrix4_namespaceObject = window [Symbol .for ("X_ITE.X3D-10.1.0")] .require ("standard/Math/Numbers/Matrix4");
447
- var Matrix4_default = /*#__PURE__*/__webpack_require__.n(Matrix4_namespaceObject);
448
- ;// CONCATENATED MODULE: external "window [Symbol .for (\"X_ITE.X3D\")] .require (\"standard/Math/Geometry/Box3\")"
449
- const Box3_namespaceObject = window [Symbol .for ("X_ITE.X3D-10.1.0")] .require ("standard/Math/Geometry/Box3");
450
- var Box3_default = /*#__PURE__*/__webpack_require__.n(Box3_namespaceObject);
451
- ;// CONCATENATED MODULE: ./src/x_ite/Components/X_ITE/InstancedShape.js
220
+ /* harmony default export */ const X_ITE_ExtensionKeys = (external_X_ITE_X3D_Namespace_default().add ("ExtensionKeys", ExtensionKeys_default_));
221
+ ;// CONCATENATED MODULE: ./src/x_ite/Components/X_ITE/AnisotropyMaterialExtension.js
452
222
  /*******************************************************************************
453
223
  *
454
224
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -505,289 +275,103 @@ var Box3_default = /*#__PURE__*/__webpack_require__.n(Box3_namespaceObject);
505
275
 
506
276
 
507
277
 
508
-
509
-
510
278
  /**
511
279
  * THIS NODE IS STILL EXPERIMENTAL.
512
280
  */
513
281
 
514
- function InstancedShape (executionContext)
282
+ function AnisotropyMaterialExtension (executionContext)
515
283
  {
516
- X3DShapeNode_default().call (this, executionContext);
517
-
518
- this .addType ((X3DConstants_default()).InstancedShape);
519
-
520
- this .addChildObjects ((X3DConstants_default()).outputOnly, "matrices", new (Fields_default()).SFTime ());
284
+ X_ITE_X3DMaterialExtensionNode .call (this, executionContext);
521
285
 
522
- this .min = new (Vector3_default()) ();
523
- this .max = new (Vector3_default()) ();
524
- this .scale = new (Vector3_default()) (1, 1, 1);
286
+ this .addType ((external_X_ITE_X3D_X3DConstants_default()).AnisotropyMaterialExtension);
525
287
 
526
- this .numInstances = 0;
527
- this .instancesStride = Float32Array .BYTES_PER_ELEMENT * (16 + 9); // mat4 + mat3
528
- this .matrixOffset = 0;
529
- this .normalMatrixOffset = Float32Array .BYTES_PER_ELEMENT * 16;
288
+ this .anisotropyArray = new Float32Array (3);
530
289
  }
531
290
 
532
- Object .assign (Object .setPrototypeOf (InstancedShape .prototype, (X3DShapeNode_default()).prototype),
291
+ Object .assign (Object .setPrototypeOf (AnisotropyMaterialExtension .prototype, X_ITE_X3DMaterialExtensionNode .prototype),
533
292
  {
534
293
  initialize ()
535
294
  {
536
- X3DShapeNode_default().prototype .initialize .call (this);
537
-
538
- const
539
- browser = this .getBrowser (),
540
- gl = browser .getContext ();
295
+ X_ITE_X3DMaterialExtensionNode .prototype .initialize .call (this);
541
296
 
542
- // Check version.
297
+ this ._anisotropyStrength .addInterest ("set_anisotropyStrength__", this);
298
+ this ._anisotropyRotation .addInterest ("set_anisotropyRotation__", this);
299
+ this ._anisotropyTexture .addInterest ("set_anisotropyTexture__", this);
543
300
 
544
- if (browser .getContext () .getVersion () < 2)
545
- return;
546
-
547
- this .instances = Object .assign (gl .createBuffer (),
548
- {
549
- vertexArrayObject: new (VertexArray_default()) (gl),
550
- thickLinesVertexArrayObject: new (VertexArray_default()) (gl),
551
- lineTrianglesBuffer: gl .createBuffer (),
552
- numLines: 0,
553
- });
554
-
555
- this ._translations .addInterest ("set_transform__", this);
556
- this ._rotations .addInterest ("set_transform__", this);
557
- this ._scales .addInterest ("set_transform__", this);
558
- this ._matrices .addInterest ("set_matrices__", this);
559
-
560
- this .set_transform__ ();
561
- },
562
- getShapeKey ()
563
- {
564
- return 3;
565
- },
566
- getNumInstances ()
567
- {
568
- return this .numInstances;
301
+ this .set_anisotropyStrength__ ();
302
+ this .set_anisotropyRotation__ ();
303
+ this .set_anisotropyTexture__ ();
569
304
  },
570
- getInstances ()
305
+ set_anisotropyStrength__ ()
571
306
  {
572
- return this .instances;
307
+ this .anisotropyArray [2] = Math .max (this ._anisotropyStrength .getValue (), 0);
573
308
  },
574
- set_bbox__: (function ()
309
+ set_anisotropyRotation__ ()
575
310
  {
576
- const
577
- min = new (Vector3_default()) (),
578
- max = new (Vector3_default()) (),
579
- bbox = new (Box3_default()) ();
580
-
581
- return function ()
582
- {
583
- if (this .numInstances)
584
- {
585
- if (this ._bboxSize .getValue () .equals (this .getDefaultBBoxSize ()))
586
- {
587
- if (this .getGeometry ())
588
- bbox .assign (this .getGeometry () .getBBox ());
589
- else
590
- bbox .set ();
591
-
592
- const
593
- size1_2 = bbox .size .multiply (this .scale .magnitude () / 2),
594
- center = bbox .center;
595
-
596
- min .assign (this .min) .add (center) .subtract (size1_2);
597
- max .assign (this .max) .add (center) .add (size1_2);
598
-
599
- this .bbox .setExtents (min, max);
600
- }
601
- else
602
- {
603
- this .bbox .set (this ._bboxSize .getValue (), this ._bboxCenter .getValue ());
604
- }
605
- }
606
- else
607
- {
608
- this .bbox .set ();
609
- }
311
+ const anisotropyRotation = this ._anisotropyRotation .getValue ();
610
312
 
611
- this .getBBoxSize () .assign (this .bbox .size);
612
- this .getBBoxCenter () .assign (this .bbox .center);
613
- };
614
- })(),
615
- set_transform__ ()
616
- {
617
- this ._matrices = this .getBrowser () .getCurrentTime ();
313
+ this .anisotropyArray [0] = Math .cos (anisotropyRotation);
314
+ this .anisotropyArray [1] = Math .sin (anisotropyRotation);
618
315
  },
619
- set_matrices__ ()
316
+ set_anisotropyTexture__ ()
620
317
  {
621
- const
622
- browser = this .getBrowser (),
623
- gl = browser .getContext (),
624
- translations = this ._translations,
625
- rotations = this ._rotations,
626
- scales = this ._scales,
627
- numTranslations = translations .length,
628
- numRotations = rotations .length,
629
- numScales = scales .length,
630
- numInstances = Math .max (numTranslations, numRotations, numScales),
631
- stride = this .instancesStride / Float32Array .BYTES_PER_ELEMENT,
632
- length = this .instancesStride * numInstances,
633
- data = new Float32Array (length),
634
- matrix = new (Matrix4_default()) ();
635
-
636
- this .numInstances = numInstances;
637
-
638
- const
639
- min = this .min .set (Number .POSITIVE_INFINITY, Number .POSITIVE_INFINITY, Number .POSITIVE_INFINITY),
640
- max = this .max .set (Number .NEGATIVE_INFINITY, Number .NEGATIVE_INFINITY, Number .NEGATIVE_INFINITY),
641
- scale = this .scale .assign (numScales ? max : (Vector3_default()).One);
642
-
643
- for (let i = 0, o = 0; i < numInstances; ++ i, o += stride)
644
- {
645
- matrix .set (numTranslations ? translations [Math .min (i, numTranslations - 1)] .getValue () : null,
646
- numRotations ? rotations [Math .min (i, numRotations - 1)] .getValue () : null,
647
- numScales ? scales [Math .min (i, numScales - 1)] .getValue () : null);
648
-
649
- if (numScales)
650
- scale .max (scales [Math .min (i, numScales - 1)] .getValue ());
651
-
652
- data .set (matrix, o);
653
- data .set (matrix .submatrix .transpose () .inverse (), o + 16);
654
-
655
- min .min (matrix .origin);
656
- max .max (matrix .origin);
657
- }
658
-
659
- gl .bindBuffer (gl .ARRAY_BUFFER, this .instances);
660
- gl .bufferData (gl .ARRAY_BUFFER, data, gl .DYNAMIC_DRAW);
318
+ this .anisotropyTextureNode = external_X_ITE_X3D_X3DCast_default() ((external_X_ITE_X3D_X3DConstants_default()).X3DSingleTextureNode, this ._anisotropyTexture);
661
319
 
662
- this .set_bbox__ ();
320
+ this .setTexture (0, this .anisotropyTextureNode);
663
321
  },
664
- set_geometry__ ()
322
+ getExtensionKey ()
665
323
  {
666
- X3DShapeNode_default().prototype .set_geometry__ .call (this);
667
-
668
- if (this .getGeometry ())
669
- delete this .traverse;
670
- else
671
- this .traverse = Function .prototype;
672
-
673
- this .set_transform__ ();
324
+ return X_ITE_ExtensionKeys .ANISOTROPY_MATERIAL_EXTENSION;
674
325
  },
675
- intersectsBox (box, clipPlanes, modelViewMatrix)
676
- { },
677
- traverse (type, renderObject)
326
+ getShaderOptions (options)
678
327
  {
679
- if (!this .numInstances)
680
- return;
681
-
682
- // Always look at ParticleSystem if you do modify something here and there.
683
-
684
- switch (type)
685
- {
686
- case (TraverseType_default()).POINTER:
687
- {
688
- if (this ._pointerEvents .getValue ())
689
- renderObject .addPointingShape (this);
690
-
691
- break;
692
- }
693
- case (TraverseType_default()).PICKING:
694
- {
695
- break;
696
- }
697
- case (TraverseType_default()).COLLISION:
698
- {
699
- renderObject .addCollisionShape (this);
700
- break;
701
- }
702
- case (TraverseType_default()).SHADOW:
703
- {
704
- if (this ._castShadow .getValue ())
705
- renderObject .addShadowShape (this);
328
+ options .push ("X3D_ANISOTROPY_MATERIAL_EXT");
706
329
 
707
- break;
708
- }
709
- case (TraverseType_default()).DISPLAY:
710
- {
711
- if (renderObject .addDisplayShape (this))
712
- {
713
- // Currently used for GeneratedCubeMapTexture.
714
- this .getAppearance () .traverse (type, renderObject);
715
- }
330
+ if (!+this .getTextureBits ())
331
+ return;
716
332
 
717
- break;
718
- }
719
- }
333
+ options .push ("X3D_MATERIAL_TEXTURES");
720
334
 
721
- // Currently used for ScreenText and Tools.
722
- this .getGeometry () .traverse (type, renderObject);
723
- },
724
- displaySimple (gl, renderContext, shaderNode)
725
- {
726
- this .getGeometry () .displaySimpleInstanced (gl, shaderNode, this);
335
+ this .anisotropyTextureNode ?.getShaderOptions (options, "ANISOTROPY", true);
727
336
  },
728
- display (gl, renderContext)
337
+ setShaderUniforms (gl, shaderObject, renderObject, textureTransformMapping, textureCoordinateMapping)
729
338
  {
730
- this .getGeometry () .displayInstanced (gl, renderContext, this);
339
+ gl .uniform3fv (shaderObject .x3d_AnisotropyEXT, this .anisotropyArray);
340
+
341
+ this .anisotropyTextureNode ?.setNamedShaderUniforms (gl,
342
+ shaderObject,
343
+ renderObject,
344
+ shaderObject .x3d_AnisotropyTextureEXT,
345
+ this ._anisotropyTextureMapping .getValue (),
346
+ textureTransformMapping,
347
+ textureCoordinateMapping);
731
348
  },
732
349
  });
733
350
 
734
- Object .defineProperties (InstancedShape,
351
+ Object .defineProperties (AnisotropyMaterialExtension,
735
352
  {
736
- typeName:
737
- {
738
- value: "InstancedShape",
739
- enumerable: true,
740
- },
741
- componentInfo:
742
- {
743
- value: Object .freeze ({ name: "X_ITE", level: 1 }),
744
- enumerable: true,
745
- },
746
- containerField:
747
- {
748
- value: "children",
749
- enumerable: true,
750
- },
751
- specificationRange:
752
- {
753
- value: Object .freeze ({ from: "2.0", to: "Infinity" }),
754
- enumerable: true,
755
- },
353
+ ... external_X_ITE_X3D_X3DNode_default().getStaticProperties ("AnisotropyMaterialExtension", "X_ITE", 1, "extensions", "4.0"),
756
354
  fieldDefinitions:
757
355
  {
758
- value: new (FieldDefinitionArray_default()) ([
759
- new (X3DFieldDefinition_default()) ((X3DConstants_default()).inputOutput, "metadata", new (Fields_default()).SFNode ()),
760
- new (X3DFieldDefinition_default()) ((X3DConstants_default()).inputOutput, "translations", new (Fields_default()).MFVec3f ()),
761
- new (X3DFieldDefinition_default()) ((X3DConstants_default()).inputOutput, "rotations", new (Fields_default()).MFRotation ()),
762
- new (X3DFieldDefinition_default()) ((X3DConstants_default()).inputOutput, "scales", new (Fields_default()).MFVec3f ()),
763
- new (X3DFieldDefinition_default()) ((X3DConstants_default()).inputOutput, "pointerEvents", new (Fields_default()).SFBool (true)),
764
- new (X3DFieldDefinition_default()) ((X3DConstants_default()).inputOutput, "castShadow", new (Fields_default()).SFBool (true)),
765
- new (X3DFieldDefinition_default()) ((X3DConstants_default()).inputOutput, "visible", new (Fields_default()).SFBool (true)),
766
- new (X3DFieldDefinition_default()) ((X3DConstants_default()).inputOutput, "bboxDisplay", new (Fields_default()).SFBool ()),
767
- new (X3DFieldDefinition_default()) ((X3DConstants_default()).initializeOnly, "bboxSize", new (Fields_default()).SFVec3f (-1, -1, -1)),
768
- new (X3DFieldDefinition_default()) ((X3DConstants_default()).initializeOnly, "bboxCenter", new (Fields_default()).SFVec3f ()),
769
- new (X3DFieldDefinition_default()) ((X3DConstants_default()).inputOutput, "appearance", new (Fields_default()).SFNode ()),
770
- new (X3DFieldDefinition_default()) ((X3DConstants_default()).inputOutput, "geometry", new (Fields_default()).SFNode ()),
356
+ value: new (external_X_ITE_X3D_FieldDefinitionArray_default()) ([
357
+ new (external_X_ITE_X3D_X3DFieldDefinition_default()) ((external_X_ITE_X3D_X3DConstants_default()).inputOutput, "metadata", new (external_X_ITE_X3D_Fields_default()).SFNode ()),
358
+ new (external_X_ITE_X3D_X3DFieldDefinition_default()) ((external_X_ITE_X3D_X3DConstants_default()).inputOutput, "anisotropyStrength", new (external_X_ITE_X3D_Fields_default()).SFFloat ()),
359
+ new (external_X_ITE_X3D_X3DFieldDefinition_default()) ((external_X_ITE_X3D_X3DConstants_default()).inputOutput, "anisotropyRotation", new (external_X_ITE_X3D_Fields_default()).SFFloat ()),
360
+ new (external_X_ITE_X3D_X3DFieldDefinition_default()) ((external_X_ITE_X3D_X3DConstants_default()).inputOutput, "anisotropyTextureMapping", new (external_X_ITE_X3D_Fields_default()).SFString ()),
361
+ new (external_X_ITE_X3D_X3DFieldDefinition_default()) ((external_X_ITE_X3D_X3DConstants_default()).inputOutput, "anisotropyTexture", new (external_X_ITE_X3D_Fields_default()).SFNode ()),
771
362
  ]),
772
363
  enumerable: true,
773
364
  },
774
365
  });
775
366
 
776
- const InstancedShape_default_ = InstancedShape;
367
+ const AnisotropyMaterialExtension_default_ = AnisotropyMaterialExtension;
777
368
  ;
778
369
 
779
- Namespace_default().add ("InstancedShape", "x_ite/Components/X_ITE/InstancedShape", InstancedShape_default_);
780
- /* harmony default export */ const X_ITE_InstancedShape = (InstancedShape_default_);
781
- ;// CONCATENATED MODULE: external "window [Symbol .for (\"X_ITE.X3D\")] .require (\"x_ite/Components/Shape/X3DOneSidedMaterialNode\")"
782
- const X3DOneSidedMaterialNode_namespaceObject = window [Symbol .for ("X_ITE.X3D-10.1.0")] .require ("x_ite/Components/Shape/X3DOneSidedMaterialNode");
783
- var X3DOneSidedMaterialNode_default = /*#__PURE__*/__webpack_require__.n(X3DOneSidedMaterialNode_namespaceObject);
784
- ;// CONCATENATED MODULE: external "window [Symbol .for (\"X_ITE.X3D\")] .require (\"x_ite/Base/X3DCast\")"
785
- const X3DCast_namespaceObject = window [Symbol .for ("X_ITE.X3D-10.1.0")] .require ("x_ite/Base/X3DCast");
786
- var X3DCast_default = /*#__PURE__*/__webpack_require__.n(X3DCast_namespaceObject);
787
- ;// CONCATENATED MODULE: external "window [Symbol .for (\"X_ITE.X3D\")] .require (\"standard/Math/Algorithm\")"
788
- const Algorithm_namespaceObject = window [Symbol .for ("X_ITE.X3D-10.1.0")] .require ("standard/Math/Algorithm");
789
- var Algorithm_default = /*#__PURE__*/__webpack_require__.n(Algorithm_namespaceObject);
790
- ;// CONCATENATED MODULE: ./src/x_ite/Components/X_ITE/SpecularGlossinessMaterial.js
370
+ /* harmony default export */ const X_ITE_AnisotropyMaterialExtension = (external_X_ITE_X3D_Namespace_default().add ("AnisotropyMaterialExtension", AnisotropyMaterialExtension_default_));
371
+ ;// CONCATENATED MODULE: external "__X_ITE_X3D__ .X3DAppearanceChildNode"
372
+ const external_X_ITE_X3D_X3DAppearanceChildNode_namespaceObject = __X_ITE_X3D__ .X3DAppearanceChildNode;
373
+ var external_X_ITE_X3D_X3DAppearanceChildNode_default = /*#__PURE__*/__webpack_require__.n(external_X_ITE_X3D_X3DAppearanceChildNode_namespaceObject);
374
+ ;// CONCATENATED MODULE: ./src/x_ite/Components/X_ITE/BlendMode.js
791
375
  /*******************************************************************************
792
376
  *
793
377
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -842,317 +426,138 @@ var Algorithm_default = /*#__PURE__*/__webpack_require__.n(Algorithm_namespaceOb
842
426
 
843
427
 
844
428
 
845
-
846
429
  /**
847
- * THIS NODE IS DEPRECIATED.
430
+ * THIS NODE IS STILL EXPERIMENTAL.
848
431
  */
849
432
 
850
- function SpecularGlossinessMaterial (executionContext)
433
+ function BlendMode (executionContext)
851
434
  {
852
- console .warn ("SpecularGlossinessMaterial is depreciated, please use PhysicalMaterial instead.");
435
+ external_X_ITE_X3D_X3DAppearanceChildNode_default().call (this, executionContext);
853
436
 
854
- X3DOneSidedMaterialNode_default().call (this, executionContext);
437
+ this .addType ((external_X_ITE_X3D_X3DConstants_default()).BlendMode);
855
438
 
856
- this .addType ((X3DConstants_default()).SpecularGlossinessMaterial);
857
-
858
- this .materialKey = "4/";
859
- this .diffuseColorArray = new Float32Array (3);
860
- this .specularColorArray = new Float32Array (3);
861
- this .extensionNodes = [ ];
439
+ this .factorTypes = new Map ();
440
+ this .equationTypes = new Map ();
862
441
  }
863
442
 
864
- Object .assign (Object .setPrototypeOf (SpecularGlossinessMaterial .prototype, (X3DOneSidedMaterialNode_default()).prototype),
443
+ Object .assign (Object .setPrototypeOf (BlendMode .prototype, (external_X_ITE_X3D_X3DAppearanceChildNode_default()).prototype),
865
444
  {
866
445
  initialize ()
867
446
  {
868
- X3DOneSidedMaterialNode_default().prototype .initialize .call (this);
869
-
870
- this ._diffuseColor .addInterest ("set_diffuseColor__", this);
871
- this ._diffuseTexture .addInterest ("set_diffuseTexture__", this);
872
- this ._diffuseTexture .addInterest ("set_transparent__", this);
873
- this ._specularColor .addInterest ("set_specularColor__", this);
874
- this ._glossiness .addInterest ("set_glossiness__", this);
875
- this ._specularGlossinessTexture .addInterest ("set_specularGlossinessTexture__", this);
876
- this ._occlusionStrength .addInterest ("set_occlusionStrength__", this);
877
- this ._occlusionTexture .addInterest ("set_occlusionTexture__", this);
878
- this ._extensions .addInterest ("set_extensions__", this);
879
-
880
- this .set_diffuseColor__ ();
881
- this .set_diffuseTexture__ ();
882
- this .set_specularColor__ ();
883
- this .set_glossiness__ ();
884
- this .set_specularGlossinessTexture__ ();
885
- this .set_occlusionStrength__ ();
886
- this .set_occlusionTexture__ ();
887
- this .set_extensions__ ();
888
- this .set_transparent__ ();
889
- },
890
- getMaterialKey ()
891
- {
892
- return this .materialKey;
893
- },
894
- getTextureIndices: (() =>
895
- {
896
- let i = 0;
447
+ external_X_ITE_X3D_X3DAppearanceChildNode_default().prototype .initialize .call (this);
897
448
 
898
- const textureIndices = {
899
- DIFFUSE_TEXTURE: i ++,
900
- SPECULAR_GLOSSINESS_TEXTURE: i ++,
901
- EMISSIVE_TEXTURE: i ++,
902
- OCCLUSION_TEXTURE: i ++,
903
- NORMAL_TEXTURE: i ++,
904
- };
449
+ const
450
+ gl = this .getBrowser () .getContext (),
451
+ ext = gl .getExtension ('EXT_blend_minmax');
905
452
 
906
- return function ()
907
- {
908
- return textureIndices;
909
- };
910
- })(),
911
- getBaseTexture ()
912
- {
913
- return this .diffuseTextureNode;
914
- },
915
- set_diffuseColor__ ()
916
- {
917
- //We cannot use this in Windows Edge:
918
- //this .diffuseColorArray .set (this ._diffuseColor .getValue ());
919
-
920
- const
921
- diffuseColorArray = this .diffuseColorArray,
922
- diffuseColor = this ._diffuseColor .getValue ();
923
-
924
- diffuseColorArray [0] = diffuseColor .r;
925
- diffuseColorArray [1] = diffuseColor .g;
926
- diffuseColorArray [2] = diffuseColor .b;
927
- },
928
- set_diffuseTexture__ ()
929
- {
930
- const index = this .getTextureIndices () .DIFFUSE_TEXTURE;
931
-
932
- if (this .diffuseTextureNode)
933
- {
934
- this .diffuseTextureNode ._transparent .removeInterest ("set_transparent__", this);
935
- this .diffuseTextureNode ._linear .removeInterest (`setTexture${index}`, this);
936
- }
937
-
938
- this .diffuseTextureNode = X3DCast_default() ((X3DConstants_default()).X3DSingleTextureNode, this ._diffuseTexture);
939
-
940
- if (this .diffuseTextureNode)
941
- {
942
- this .diffuseTextureNode ._transparent .addInterest ("set_transparent__", this);
943
- this .diffuseTextureNode ._linear .addInterest (`setTexture${index}`, this, index, this .diffuseTextureNode);
944
- }
453
+ this .factorTypes .set ("ZERO", gl .ZERO);
454
+ this .factorTypes .set ("ONE", gl .ONE);
455
+ this .factorTypes .set ("SRC_COLOR", gl .SRC_COLOR);
456
+ this .factorTypes .set ("ONE_MINUS_SRC_COLOR", gl .ONE_MINUS_SRC_COLOR);
457
+ this .factorTypes .set ("DST_COLOR", gl .DST_COLOR);
458
+ this .factorTypes .set ("ONE_MINUS_DST_COLOR", gl .ONE_MINUS_DST_COLOR);
459
+ this .factorTypes .set ("SRC_ALPHA", gl .SRC_ALPHA);
460
+ this .factorTypes .set ("ONE_MINUS_SRC_ALPHA", gl .ONE_MINUS_SRC_ALPHA);
461
+ this .factorTypes .set ("DST_ALPHA", gl .DST_ALPHA);
462
+ this .factorTypes .set ("ONE_MINUS_DST_ALPHA", gl .ONE_MINUS_DST_ALPHA);
463
+ this .factorTypes .set ("SRC_ALPHA_SATURATE", gl .SRC_ALPHA_SATURATE);
464
+ this .factorTypes .set ("CONSTANT_COLOR", gl .CONSTANT_COLOR);
465
+ this .factorTypes .set ("ONE_MINUS_CONSTANT_COLOR", gl .ONE_MINUS_CONSTANT_COLOR);
466
+ this .factorTypes .set ("CONSTANT_ALPHA", gl .CONSTANT_ALPHA);
467
+ this .factorTypes .set ("ONE_MINUS_CONSTANT_ALPHA", gl .ONE_MINUS_CONSTANT_ALPHA);
945
468
 
946
- this .setTexture (index, this .diffuseTextureNode);
947
- },
948
- set_specularColor__ ()
949
- {
950
- //We cannot use this in Windows Edge:
951
- //this .specularColorArray .set (this ._specularColor .getValue ());
469
+ this .equationTypes .set ("FUNC_ADD", gl .FUNC_ADD);
470
+ this .equationTypes .set ("FUNC_SUBTRACT", gl .FUNC_SUBTRACT);
471
+ this .equationTypes .set ("FUNC_REVERSE_SUBTRACT", gl .FUNC_REVERSE_SUBTRACT);
472
+ this .equationTypes .set ("MIN", gl .MIN || (ext && ext .MIN_EXT));
473
+ this .equationTypes .set ("MAX", gl .MAX || (ext && ext .MAX_EXT));
952
474
 
953
- const
954
- specularColorArray = this .specularColorArray,
955
- specularColor = this ._specularColor .getValue ();
475
+ this ._sourceColorFactor .addInterest ("set_sourceColorFactor__", this);
476
+ this ._sourceAlphaFactor .addInterest ("set_sourceAlphaFactor__", this);
477
+ this ._destinationColorFactor .addInterest ("set_destinationColorFactor__", this);
478
+ this ._destinationAlphaFactor .addInterest ("set_destinationAlphaFactor__", this);
479
+ this ._colorEquation .addInterest ("set_colorEquation__", this);
480
+ this ._alphaEquation .addInterest ("set_alphaEquation__", this);
956
481
 
957
- specularColorArray [0] = specularColor .r;
958
- specularColorArray [1] = specularColor .g;
959
- specularColorArray [2] = specularColor .b;
960
- },
961
- set_glossiness__ ()
962
- {
963
- this .glossiness = Algorithm_default().clamp (this ._glossiness .getValue (), 0, 1);
482
+ this .set_sourceColorFactor__ ();
483
+ this .set_sourceAlphaFactor__ ();
484
+ this .set_destinationColorFactor__ ();
485
+ this .set_destinationAlphaFactor__ ();
486
+ this .set_colorEquation__ ();
487
+ this .set_alphaEquation__ ();
964
488
  },
965
- set_specularGlossinessTexture__ ()
489
+ set_sourceColorFactor__ ()
966
490
  {
967
- this .specularGlossinessTextureNode = X3DCast_default() ((X3DConstants_default()).X3DSingleTextureNode, this ._specularGlossinessTexture);
968
-
969
- this .setTexture (this .getTextureIndices () .SPECULAR_GLOSSINESS_TEXTURE, this .specularGlossinessTextureNode);
491
+ this .sourceColorFactorType = this .factorTypes .get (this ._sourceColorFactor .getValue ())
492
+ ?? this .factorTypes .get ("SRC_ALPHA");
970
493
  },
971
- set_occlusionStrength__ ()
494
+ set_sourceAlphaFactor__ ()
972
495
  {
973
- this .occlusionStrength = Algorithm_default().clamp (this ._occlusionStrength .getValue (), 0, 1);
496
+ this .sourceAlphaFactorType = this .factorTypes .get (this ._sourceAlphaFactor .getValue ())
497
+ ?? this .factorTypes .get ("ONE");
974
498
  },
975
- set_occlusionTexture__ ()
499
+ set_destinationColorFactor__ ()
976
500
  {
977
- this .occlusionTextureNode = X3DCast_default() ((X3DConstants_default()).X3DSingleTextureNode, this ._occlusionTexture);
978
-
979
- this .setTexture (this .getTextureIndices () .OCCLUSION_TEXTURE, this .occlusionTextureNode);
501
+ this .destinationColorFactorType = this .factorTypes .get (this ._destinationColorFactor .getValue ())
502
+ ?? this .factorTypes .get ("ONE_MINUS_SRC_ALPHA");
980
503
  },
981
- set_transparent__ ()
504
+ set_destinationAlphaFactor__ ()
982
505
  {
983
- this .setTransparent (this .getTransparency () ||
984
- this .diffuseTextureNode ?.isTransparent ());
506
+ this .destinationAlphaFactorType = this .factorTypes .get (this ._destinationAlphaFactor .getValue ())
507
+ ?? this .factorTypes .get ("ONE_MINUS_SRC_ALPHA");
985
508
  },
986
- set_extensions__ ()
509
+ set_colorEquation__ ()
987
510
  {
988
- const extensionNodes = this .extensionNodes;
989
-
990
- for (const extensionNode of extensionNodes)
991
- extensionNode .removeInterest ("set_extensionsKey__", this);
992
-
993
- extensionNodes .length = 0;
994
-
995
- for (const node of this ._extensions)
996
- {
997
- const extensionNode = X3DCast_default() ((X3DConstants_default()).X3DMaterialExtensionNode, node);
998
-
999
- if (extensionNode)
1000
- extensionNodes .push (extensionNode);
1001
- }
1002
-
1003
- extensionNodes .sort ((a, b) => a .getExtensionKey () - b .getExtensionKey ());
1004
-
1005
- for (const extensionNode of extensionNodes)
1006
- extensionNode .addInterest ("set_extensionsKey__", this);
1007
-
1008
- this .setTransmission (extensionNodes .some (extensionNode => extensionNode .getType () .includes ((X3DConstants_default()).TransmissionMaterialExtension)));
1009
-
1010
- this .set_extensionsKey__ ();
511
+ this .colorEquationType = this .equationTypes .get (this ._colorEquation .getValue ())
512
+ ?? this .equationTypes .get ("FUNC_ADD");
1011
513
  },
1012
- set_extensionsKey__ ()
514
+ set_alphaEquation__ ()
1013
515
  {
1014
- const extensionsKey = this .extensionNodes
1015
- .map (extensionNode => `${extensionNode .getExtensionKey () .toString (16)}${extensionNode .getTextureBits () .toString (16)}`)
1016
- .join ("");
1017
-
1018
- this .materialKey = `[4.${extensionsKey}]`;
516
+ this .alphaEquationType = this .equationTypes .get (this ._alphaEquation .getValue ())
517
+ ?? this .equationTypes .get ("FUNC_ADD");
1019
518
  },
1020
- createShader (key, geometryContext, renderContext)
519
+ enable (gl)
1021
520
  {
1022
- const
1023
- browser = this .getBrowser (),
1024
- options = this .getShaderOptions (geometryContext, renderContext);
1025
-
1026
- for (const extensionNode of this .extensionNodes)
1027
- extensionNode .getShaderOptions (options);
1028
-
1029
- options .push ("X3D_PHYSICAL_MATERIAL", "X3D_MATERIAL_SPECULAR_GLOSSINESS");
1030
-
1031
- if (+this .getTextureBits ())
1032
- {
1033
- this .diffuseTextureNode ?.getShaderOptions (options, "DIFFUSE");
1034
- this .specularGlossinessTextureNode ?.getShaderOptions (options, "SPECULAR_GLOSSINESS");
1035
- this .occlusionTextureNode ?.getShaderOptions (options, "OCCLUSION");
1036
- }
1037
-
1038
- const shaderNode = browser .createShader ("SpecularGlossiness", "Default", "Physical", options);
1039
-
1040
- browser .getShaders () .set (key, shaderNode);
521
+ const color = this ._blendColor .getValue ();
1041
522
 
1042
- return shaderNode;
523
+ gl .blendColor (color .r, color .g, color .b, color .a);
524
+ gl .blendFuncSeparate (this .sourceColorFactorType, this .destinationColorFactorType, this .sourceAlphaFactorType, this .destinationAlphaFactorType);
525
+ gl .blendEquationSeparate (this .colorEquationType, this .alphaEquationType);
1043
526
  },
1044
- setShaderUniforms (gl, shaderObject, renderObject, textureTransformMapping, textureCoordinateMapping)
527
+ disable (gl)
1045
528
  {
1046
- X3DOneSidedMaterialNode_default().prototype .setShaderUniforms .call (this, gl, shaderObject, renderObject, textureTransformMapping, textureCoordinateMapping);
1047
-
1048
- for (const extensionNode of this .extensionNodes)
1049
- extensionNode .setShaderUniforms (gl, shaderObject, renderObject, textureTransformMapping, textureCoordinateMapping);
1050
-
1051
- gl .uniform3fv (shaderObject .x3d_DiffuseColor, this .diffuseColorArray);
1052
- gl .uniform3fv (shaderObject .x3d_SpecularColor, this .specularColorArray);
1053
- gl .uniform1f (shaderObject .x3d_Glossiness, this .glossiness);
1054
-
1055
- if (!+this .getTextureBits ())
1056
- return;
1057
-
1058
- this .diffuseTextureNode ?.setNamedShaderUniforms (gl,
1059
- shaderObject,
1060
- renderObject,
1061
- shaderObject .x3d_DiffuseTexture,
1062
- this ._diffuseTextureMapping .getValue (),
1063
- textureTransformMapping,
1064
- textureCoordinateMapping);
1065
-
1066
- this .specularGlossinessTextureNode ?.setNamedShaderUniforms (gl,
1067
- shaderObject,
1068
- renderObject,
1069
- shaderObject .x3d_SpecularGlossinessTexture,
1070
- this ._specularGlossinessTextureMapping .getValue (),
1071
- textureTransformMapping,
1072
- textureCoordinateMapping);
1073
-
1074
- if (this .occlusionTextureNode)
1075
- gl .uniform1f (shaderObject .x3d_OcclusionStrength, this .occlusionStrength);
1076
-
1077
- this .occlusionTextureNode ?.setNamedShaderUniforms (gl,
1078
- shaderObject,
1079
- renderObject,
1080
- shaderObject .x3d_OcclusionTexture,
1081
- this ._occlusionTextureMapping .getValue (),
1082
- textureTransformMapping,
1083
- textureCoordinateMapping);
529
+ gl .blendFuncSeparate (gl .SRC_ALPHA, gl .ONE_MINUS_SRC_ALPHA, gl .ONE, gl .ONE_MINUS_SRC_ALPHA);
530
+ gl .blendEquationSeparate (gl .FUNC_ADD, gl .FUNC_ADD);
1084
531
  },
1085
532
  });
1086
533
 
1087
- Object .defineProperties (SpecularGlossinessMaterial,
534
+ Object .defineProperties (BlendMode,
1088
535
  {
1089
- typeName:
1090
- {
1091
- value: "SpecularGlossinessMaterial",
1092
- enumerable: true,
1093
- },
1094
- componentInfo:
1095
- {
1096
- value: Object .freeze ({ name: "X_ITE", level: 1 }),
1097
- enumerable: true,
1098
- },
1099
- containerField:
1100
- {
1101
- value: "material",
1102
- enumerable: true,
1103
- },
1104
- specificationRange:
1105
- {
1106
- value: Object .freeze ({ from: "4.0", to: "Infinity" }),
1107
- enumerable: true,
1108
- },
536
+ ... external_X_ITE_X3D_X3DNode_default().getStaticProperties ("BlendMode", "X_ITE", 1, "blendMode", "3.3"),
1109
537
  fieldDefinitions:
1110
538
  {
1111
- value: new (FieldDefinitionArray_default()) ([
1112
- new (X3DFieldDefinition_default()) ((X3DConstants_default()).inputOutput, "metadata", new (Fields_default()).SFNode ()),
1113
- new (X3DFieldDefinition_default()) ((X3DConstants_default()).inputOutput, "diffuseColor", new (Fields_default()).SFColor (1, 1, 1)),
1114
- new (X3DFieldDefinition_default()) ((X3DConstants_default()).inputOutput, "diffuseTextureMapping", new (Fields_default()).SFString ()),
1115
- new (X3DFieldDefinition_default()) ((X3DConstants_default()).inputOutput, "diffuseTexture", new (Fields_default()).SFNode ()),
1116
- new (X3DFieldDefinition_default()) ((X3DConstants_default()).inputOutput, "specularColor", new (Fields_default()).SFColor (1, 1, 1)),
1117
- new (X3DFieldDefinition_default()) ((X3DConstants_default()).inputOutput, "glossiness", new (Fields_default()).SFFloat (1)),
1118
- new (X3DFieldDefinition_default()) ((X3DConstants_default()).inputOutput, "specularGlossinessTextureMapping", new (Fields_default()).SFString ()),
1119
- new (X3DFieldDefinition_default()) ((X3DConstants_default()).inputOutput, "specularGlossinessTexture", new (Fields_default()).SFNode ()),
1120
- new (X3DFieldDefinition_default()) ((X3DConstants_default()).inputOutput, "emissiveColor", new (Fields_default()).SFColor ()),
1121
- new (X3DFieldDefinition_default()) ((X3DConstants_default()).inputOutput, "emissiveTextureMapping", new (Fields_default()).SFString ()),
1122
- new (X3DFieldDefinition_default()) ((X3DConstants_default()).inputOutput, "emissiveTexture", new (Fields_default()).SFNode ()),
1123
- new (X3DFieldDefinition_default()) ((X3DConstants_default()).inputOutput, "occlusionStrength", new (Fields_default()).SFFloat (1)),
1124
- new (X3DFieldDefinition_default()) ((X3DConstants_default()).inputOutput, "occlusionTextureMapping", new (Fields_default()).SFString ()),
1125
- new (X3DFieldDefinition_default()) ((X3DConstants_default()).inputOutput, "occlusionTexture", new (Fields_default()).SFNode ()),
1126
- new (X3DFieldDefinition_default()) ((X3DConstants_default()).inputOutput, "normalScale", new (Fields_default()).SFFloat (1)),
1127
- new (X3DFieldDefinition_default()) ((X3DConstants_default()).inputOutput, "normalTextureMapping", new (Fields_default()).SFString ()),
1128
- new (X3DFieldDefinition_default()) ((X3DConstants_default()).inputOutput, "normalTexture", new (Fields_default()).SFNode ()),
1129
- new (X3DFieldDefinition_default()) ((X3DConstants_default()).inputOutput, "transparency", new (Fields_default()).SFFloat ()),
1130
- new (X3DFieldDefinition_default()) ((X3DConstants_default()).inputOutput, "extensions", new (Fields_default()).MFNode ()), // experimental
539
+ value: new (external_X_ITE_X3D_FieldDefinitionArray_default()) ([
540
+ new (external_X_ITE_X3D_X3DFieldDefinition_default()) ((external_X_ITE_X3D_X3DConstants_default()).inputOutput, "metadata", new (external_X_ITE_X3D_Fields_default()).SFNode ()),
541
+ new (external_X_ITE_X3D_X3DFieldDefinition_default()) ((external_X_ITE_X3D_X3DConstants_default()).inputOutput, "blendColor", new (external_X_ITE_X3D_Fields_default()).SFColorRGBA ()),
542
+ new (external_X_ITE_X3D_X3DFieldDefinition_default()) ((external_X_ITE_X3D_X3DConstants_default()).inputOutput, "sourceColorFactor", new (external_X_ITE_X3D_Fields_default()).SFString ("SRC_ALPHA")),
543
+ new (external_X_ITE_X3D_X3DFieldDefinition_default()) ((external_X_ITE_X3D_X3DConstants_default()).inputOutput, "sourceAlphaFactor", new (external_X_ITE_X3D_Fields_default()).SFString ("ONE")),
544
+ new (external_X_ITE_X3D_X3DFieldDefinition_default()) ((external_X_ITE_X3D_X3DConstants_default()).inputOutput, "destinationColorFactor", new (external_X_ITE_X3D_Fields_default()).SFString ("ONE_MINUS_SRC_ALPHA")),
545
+ new (external_X_ITE_X3D_X3DFieldDefinition_default()) ((external_X_ITE_X3D_X3DConstants_default()).inputOutput, "destinationAlphaFactor", new (external_X_ITE_X3D_Fields_default()).SFString ("ONE_MINUS_SRC_ALPHA")),
546
+ new (external_X_ITE_X3D_X3DFieldDefinition_default()) ((external_X_ITE_X3D_X3DConstants_default()).inputOutput, "colorEquation", new (external_X_ITE_X3D_Fields_default()).SFString ("FUNC_ADD")),
547
+ new (external_X_ITE_X3D_X3DFieldDefinition_default()) ((external_X_ITE_X3D_X3DConstants_default()).inputOutput, "alphaEquation", new (external_X_ITE_X3D_Fields_default()).SFString ("FUNC_ADD")),
1131
548
  ]),
1132
549
  enumerable: true,
1133
550
  },
1134
551
  });
1135
552
 
1136
- for (const index of Object .values (SpecularGlossinessMaterial .prototype .getTextureIndices ()))
1137
- {
1138
- SpecularGlossinessMaterial .prototype [`setTexture${index}`] = function (index, textureNode)
1139
- {
1140
- this .setTexture (index, textureNode);
1141
- };
1142
- }
1143
-
1144
- const SpecularGlossinessMaterial_default_ = SpecularGlossinessMaterial;
553
+ const BlendMode_default_ = BlendMode;
1145
554
  ;
1146
555
 
1147
- Namespace_default().add ("SpecularGlossinessMaterial", "x_ite/Components/X_ITE/SpecularGlossinessMaterial", SpecularGlossinessMaterial_default_);
1148
- /* harmony default export */ const X_ITE_SpecularGlossinessMaterial = (SpecularGlossinessMaterial_default_);
1149
- ;// CONCATENATED MODULE: external "window [Symbol .for (\"X_ITE.X3D\")] .require (\"x_ite/Components/Core/X3DNode\")"
1150
- const X3DNode_namespaceObject = window [Symbol .for ("X_ITE.X3D-10.1.0")] .require ("x_ite/Components/Core/X3DNode");
1151
- var X3DNode_default = /*#__PURE__*/__webpack_require__.n(X3DNode_namespaceObject);
1152
- ;// CONCATENATED MODULE: external "window [Symbol .for (\"X_ITE.X3D\")] .require (\"standard/Utility/BitSet\")"
1153
- const BitSet_namespaceObject = window [Symbol .for ("X_ITE.X3D-10.1.0")] .require ("standard/Utility/BitSet");
1154
- var BitSet_default = /*#__PURE__*/__webpack_require__.n(BitSet_namespaceObject);
1155
- ;// CONCATENATED MODULE: ./src/x_ite/Components/X_ITE/X3DMaterialExtensionNode.js
556
+ /* harmony default export */ const X_ITE_BlendMode = (external_X_ITE_X3D_Namespace_default().add ("BlendMode", BlendMode_default_));
557
+ ;// CONCATENATED MODULE: external "__X_ITE_X3D__ .Algorithm"
558
+ const external_X_ITE_X3D_Algorithm_namespaceObject = __X_ITE_X3D__ .Algorithm;
559
+ var external_X_ITE_X3D_Algorithm_default = /*#__PURE__*/__webpack_require__.n(external_X_ITE_X3D_Algorithm_namespaceObject);
560
+ ;// CONCATENATED MODULE: ./src/x_ite/Components/X_ITE/ClearcoatMaterialExtension.js
1156
561
  /*******************************************************************************
1157
562
  *
1158
563
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -1204,50 +609,143 @@ var BitSet_default = /*#__PURE__*/__webpack_require__.n(BitSet_namespaceObject);
1204
609
 
1205
610
 
1206
611
 
1207
- function X3DMaterialExtensionNode (executionContext)
1208
- {
1209
- X3DNode_default().call (this, executionContext);
1210
612
 
1211
- this .addType ((X3DConstants_default()).X3DMaterialExtensionNode);
1212
613
 
1213
- this .textureBits = new (BitSet_default()) ();
614
+
615
+
616
+
617
+
618
+ /**
619
+ * THIS NODE IS STILL EXPERIMENTAL.
620
+ */
621
+
622
+ function ClearcoatMaterialExtension (executionContext)
623
+ {
624
+ X_ITE_X3DMaterialExtensionNode .call (this, executionContext);
625
+
626
+ this .addType ((external_X_ITE_X3D_X3DConstants_default()).ClearcoatMaterialExtension);
1214
627
  }
1215
628
 
1216
- Object .assign (Object .setPrototypeOf (X3DMaterialExtensionNode .prototype, (X3DNode_default()).prototype),
629
+ Object .assign (Object .setPrototypeOf (ClearcoatMaterialExtension .prototype, X_ITE_X3DMaterialExtensionNode .prototype),
1217
630
  {
1218
- setTexture (index, textureNode)
631
+ initialize ()
1219
632
  {
1220
- index *= 4;
633
+ X_ITE_X3DMaterialExtensionNode .prototype .initialize .call (this);
1221
634
 
1222
- this .textureBits .remove (index, 0xf);
1223
- this .textureBits .add (index, textureNode ?.getTextureBits () ?? 0);
635
+ this ._clearcoat .addInterest ("set_clearcoat__", this);
636
+ this ._clearcoatTexture .addInterest ("set_clearcoatTexture__", this);
637
+ this ._clearcoatRoughness .addInterest ("set_clearcoatRoughness__", this);
638
+ this ._clearcoatRoughnessTexture .addInterest ("set_clearcoatRoughnessTexture__", this);
639
+ this ._clearcoatNormalTexture .addInterest ("set_clearcoatNormalTexture__", this);
640
+
641
+ this .set_clearcoat__ ();
642
+ this .set_clearcoatTexture__ ();
643
+ this .set_clearcoatRoughness__ ();
644
+ this .set_clearcoatRoughnessTexture__ ();
645
+ this .set_clearcoatNormalTexture__ ();
1224
646
  },
1225
- getTextureBits ()
647
+ set_clearcoat__ ()
1226
648
  {
1227
- return this .textureBits;
649
+ this .clearcoat = Math .max (this ._clearcoat .getValue (), 0);
1228
650
  },
1229
- });
651
+ set_clearcoatTexture__ ()
652
+ {
653
+ this .clearcoatTextureNode = external_X_ITE_X3D_X3DCast_default() ((external_X_ITE_X3D_X3DConstants_default()).X3DSingleTextureNode, this ._clearcoatTexture);
1230
654
 
1231
- Object .defineProperties (X3DMaterialExtensionNode,
1232
- {
1233
- typeName:
655
+ this .setTexture (0, this .clearcoatTextureNode);
656
+ },
657
+ set_clearcoatRoughness__ ()
1234
658
  {
1235
- value: "X3DMaterialExtensionNode",
1236
- enumerable: true,
659
+ this .clearcoatRoughness = external_X_ITE_X3D_Algorithm_default().clamp (this ._clearcoatRoughness .getValue (), 0, 1);
1237
660
  },
1238
- componentInfo:
661
+ set_clearcoatRoughnessTexture__ ()
662
+ {
663
+ this .clearcoatRoughnessTextureNode = external_X_ITE_X3D_X3DCast_default() ((external_X_ITE_X3D_X3DConstants_default()).X3DSingleTextureNode, this ._clearcoatRoughnessTexture);
664
+
665
+ this .setTexture (1, this .clearcoatRoughnessTextureNode);
666
+ },
667
+ set_clearcoatNormalTexture__ ()
668
+ {
669
+ this .clearcoatNormalTextureNode = external_X_ITE_X3D_X3DCast_default() ((external_X_ITE_X3D_X3DConstants_default()).X3DSingleTextureNode, this ._clearcoatNormalTexture);
670
+
671
+ this .setTexture (2, this .clearcoatNormalTextureNode);
672
+ },
673
+ getExtensionKey ()
674
+ {
675
+ return X_ITE_ExtensionKeys .CLEARCOAT_MATERIAL_EXTENSION;
676
+ },
677
+ getShaderOptions (options)
678
+ {
679
+ options .push ("X3D_CLEARCOAT_MATERIAL_EXT");
680
+
681
+ if (!+this .getTextureBits ())
682
+ return;
683
+
684
+ options .push ("X3D_MATERIAL_TEXTURES");
685
+
686
+ this .clearcoatTextureNode ?.getShaderOptions (options, "CLEARCOAT", true);
687
+ this .clearcoatRoughnessTextureNode ?.getShaderOptions (options, "CLEARCOAT_ROUGHNESS", true);
688
+ this .clearcoatNormalTextureNode ?.getShaderOptions (options, "CLEARCOAT_NORMAL", true);
689
+ },
690
+ setShaderUniforms (gl, shaderObject, renderObject, textureTransformMapping, textureCoordinateMapping)
691
+ {
692
+ gl .uniform1f (shaderObject .x3d_ClearcoatEXT, this .clearcoat);
693
+ gl .uniform1f (shaderObject .x3d_ClearcoatRoughnessEXT, this .clearcoatRoughness);
694
+
695
+ if (!+this .getTextureBits ())
696
+ return;
697
+
698
+ this .clearcoatTextureNode ?.setNamedShaderUniforms (gl,
699
+ shaderObject,
700
+ renderObject,
701
+ shaderObject .x3d_ClearcoatTextureEXT,
702
+ this ._clearcoatTextureMapping .getValue (),
703
+ textureTransformMapping,
704
+ textureCoordinateMapping);
705
+
706
+ this .clearcoatRoughnessTextureNode ?.setNamedShaderUniforms (gl,
707
+ shaderObject,
708
+ renderObject,
709
+ shaderObject .x3d_ClearcoatRoughnessTextureEXT,
710
+ this ._clearcoatRoughnessTextureMapping .getValue (),
711
+ textureTransformMapping,
712
+ textureCoordinateMapping);
713
+
714
+ this .clearcoatNormalTextureNode ?.setNamedShaderUniforms (gl,
715
+ shaderObject,
716
+ renderObject,
717
+ shaderObject .x3d_ClearcoatNormalTextureEXT,
718
+ this ._clearcoatNormalTextureMapping .getValue (),
719
+ textureTransformMapping,
720
+ textureCoordinateMapping);
721
+ },
722
+ });
723
+
724
+ Object .defineProperties (ClearcoatMaterialExtension,
725
+ {
726
+ ... external_X_ITE_X3D_X3DNode_default().getStaticProperties ("ClearcoatMaterialExtension", "X_ITE", 1, "extensions", "4.0"),
727
+ fieldDefinitions:
1239
728
  {
1240
- value: Object .freeze ({ name: "X_ITE", level: 1 }),
729
+ value: new (external_X_ITE_X3D_FieldDefinitionArray_default()) ([
730
+ new (external_X_ITE_X3D_X3DFieldDefinition_default()) ((external_X_ITE_X3D_X3DConstants_default()).inputOutput, "metadata", new (external_X_ITE_X3D_Fields_default()).SFNode ()),
731
+ new (external_X_ITE_X3D_X3DFieldDefinition_default()) ((external_X_ITE_X3D_X3DConstants_default()).inputOutput, "clearcoat", new (external_X_ITE_X3D_Fields_default()).SFFloat ()),
732
+ new (external_X_ITE_X3D_X3DFieldDefinition_default()) ((external_X_ITE_X3D_X3DConstants_default()).inputOutput, "clearcoatTextureMapping", new (external_X_ITE_X3D_Fields_default()).SFString ()),
733
+ new (external_X_ITE_X3D_X3DFieldDefinition_default()) ((external_X_ITE_X3D_X3DConstants_default()).inputOutput, "clearcoatTexture", new (external_X_ITE_X3D_Fields_default()).SFNode ()),
734
+ new (external_X_ITE_X3D_X3DFieldDefinition_default()) ((external_X_ITE_X3D_X3DConstants_default()).inputOutput, "clearcoatRoughness", new (external_X_ITE_X3D_Fields_default()).SFFloat ()),
735
+ new (external_X_ITE_X3D_X3DFieldDefinition_default()) ((external_X_ITE_X3D_X3DConstants_default()).inputOutput, "clearcoatRoughnessTextureMapping", new (external_X_ITE_X3D_Fields_default()).SFString ()),
736
+ new (external_X_ITE_X3D_X3DFieldDefinition_default()) ((external_X_ITE_X3D_X3DConstants_default()).inputOutput, "clearcoatRoughnessTexture", new (external_X_ITE_X3D_Fields_default()).SFNode ()),
737
+ new (external_X_ITE_X3D_X3DFieldDefinition_default()) ((external_X_ITE_X3D_X3DConstants_default()).inputOutput, "clearcoatNormalTextureMapping", new (external_X_ITE_X3D_Fields_default()).SFString ()),
738
+ new (external_X_ITE_X3D_X3DFieldDefinition_default()) ((external_X_ITE_X3D_X3DConstants_default()).inputOutput, "clearcoatNormalTexture", new (external_X_ITE_X3D_Fields_default()).SFNode ()),
739
+ ]),
1241
740
  enumerable: true,
1242
741
  },
1243
742
  });
1244
743
 
1245
- const X3DMaterialExtensionNode_default_ = X3DMaterialExtensionNode;
744
+ const ClearcoatMaterialExtension_default_ = ClearcoatMaterialExtension;
1246
745
  ;
1247
746
 
1248
- Namespace_default().add ("X3DMaterialExtensionNode", "x_ite/Components/X_ITE/X3DMaterialExtensionNode", X3DMaterialExtensionNode_default_);
1249
- /* harmony default export */ const X_ITE_X3DMaterialExtensionNode = (X3DMaterialExtensionNode_default_);
1250
- ;// CONCATENATED MODULE: ./src/x_ite/Browser/X_ITE/ExtensionKeys.js
747
+ /* harmony default export */ const X_ITE_ClearcoatMaterialExtension = (external_X_ITE_X3D_Namespace_default().add ("ClearcoatMaterialExtension", ClearcoatMaterialExtension_default_));
748
+ ;// CONCATENATED MODULE: ./src/x_ite/Components/X_ITE/DepthMode.js
1251
749
  /*******************************************************************************
1252
750
  *
1253
751
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -1295,29 +793,110 @@ Namespace_default().add ("X3DMaterialExtensionNode", "x_ite/Components/X_ITE/X3D
1295
793
  *
1296
794
  ******************************************************************************/
1297
795
 
1298
- let i = 0;
1299
796
 
1300
- const ExtensionKeys =
797
+
798
+
799
+
800
+
801
+
802
+
803
+ /**
804
+ * THIS NODE IS STILL EXPERIMENTAL.
805
+ */
806
+
807
+ function DepthMode (executionContext)
1301
808
  {
1302
- ANISOTROPY_MATERIAL_EXTENSION: i ++,
1303
- CLEARCOAT_MATERIAL_EXTENSION: i ++,
1304
- DISPERSION_MATERIAL_EXTENSION: i ++,
1305
- EMISSIVE_STRENGTH_MATERIAL_EXTENSION: i ++,
1306
- IOR_MATERIAL_EXTENSION: i ++,
1307
- IRIDESCENCE_MATERIAL_EXTENSION: i ++,
1308
- SHEEN_MATERIAL_EXTENSION: i ++,
1309
- SPECULAR_MATERIAL_EXTENSION: i ++,
1310
- TRANSMISSION_MATERIAL_EXTENSION: i ++,
1311
- UNLIT_MATERIAL_EXTENSION: i ++,
1312
- VOLUME_MATERIAL_EXTENSION: i ++,
1313
- };
809
+ external_X_ITE_X3D_X3DAppearanceChildNode_default().call (this, executionContext);
1314
810
 
1315
- const ExtensionKeys_default_ = ExtensionKeys;
811
+ this .addType ((external_X_ITE_X3D_X3DConstants_default()).DepthMode);
812
+
813
+ this .addAlias ("depthFunc", this ._depthFunction);
814
+ }
815
+
816
+ Object .assign (Object .setPrototypeOf (DepthMode .prototype, (external_X_ITE_X3D_X3DAppearanceChildNode_default()).prototype),
817
+ {
818
+ initialize ()
819
+ {
820
+ external_X_ITE_X3D_X3DAppearanceChildNode_default().prototype .initialize .call (this);
821
+
822
+ this ._depthFunction .addInterest ("set_depthFunction__", this);
823
+
824
+ this .set_depthFunction__ ();
825
+ },
826
+ set_depthFunction__: (function ()
827
+ {
828
+ const depthFunctions = new Map ([
829
+ ["NEVER", "NEVER"],
830
+ ["LESS", "LESS"],
831
+ ["EQUAL", "EQUAL"],
832
+ ["LESS_EQUAL", "LEQUAL"],
833
+ ["GREATER", "GREATER"],
834
+ ["NOT_EQUAL", "NOTEQUAL"],
835
+ ["GREATER_EQUAL", "GEQUAL"],
836
+ ["ALWAYS", "ALWAYS"],
837
+ ]);
838
+
839
+ return function ()
840
+ {
841
+ const gl = this .getBrowser () .getContext ();
842
+
843
+ this .depthFunction = gl [depthFunctions .get (this ._depthFunction .getValue ()) ?? "LEQUAL"];
844
+ };
845
+ })(),
846
+ enable (gl)
847
+ {
848
+ this .depthTest = gl .isEnabled (gl .DEPTH_TEST);
849
+ this .depthWriteMask = gl .getParameter (gl .DEPTH_WRITEMASK);
850
+
851
+ gl .enable (gl .POLYGON_OFFSET_FILL);
852
+ gl .polygonOffset (... this ._polygonOffset);
853
+
854
+ if (this ._depthTest .getValue ())
855
+ gl .enable (gl .DEPTH_TEST);
856
+ else
857
+ gl .disable (gl .DEPTH_TEST);
858
+
859
+ gl .depthFunc (this .depthFunction);
860
+ gl .depthRange (... this ._depthRange .getValue ());
861
+ gl .depthMask (this ._depthMask .getValue ());
862
+ },
863
+ disable (gl)
864
+ {
865
+ gl .disable (gl .POLYGON_OFFSET_FILL);
866
+
867
+ if (this .depthTest)
868
+ gl .enable (gl .DEPTH_TEST);
869
+ else
870
+ gl .disable (gl .DEPTH_TEST);
871
+
872
+ gl .depthFunc (gl .LEQUAL);
873
+ gl .depthRange (0, 1);
874
+ gl .depthMask (this .depthWriteMask);
875
+ },
876
+ });
877
+
878
+ Object .defineProperties (DepthMode,
879
+ {
880
+ ... external_X_ITE_X3D_X3DNode_default().getStaticProperties ("DepthMode", "X_ITE", 1, "depthMode", "4.0"),
881
+ fieldDefinitions:
882
+ {
883
+ value: new (external_X_ITE_X3D_FieldDefinitionArray_default()) ([
884
+ new (external_X_ITE_X3D_X3DFieldDefinition_default()) ((external_X_ITE_X3D_X3DConstants_default()).inputOutput, "metadata", new (external_X_ITE_X3D_Fields_default()).SFNode ()),
885
+ new (external_X_ITE_X3D_X3DFieldDefinition_default()) ((external_X_ITE_X3D_X3DConstants_default()).inputOutput, "polygonOffset", new (external_X_ITE_X3D_Fields_default()).SFVec2f ()),
886
+ new (external_X_ITE_X3D_X3DFieldDefinition_default()) ((external_X_ITE_X3D_X3DConstants_default()).inputOutput, "depthRange", new (external_X_ITE_X3D_Fields_default()).SFVec2f (0, 1)),
887
+ new (external_X_ITE_X3D_X3DFieldDefinition_default()) ((external_X_ITE_X3D_X3DConstants_default()).inputOutput, "depthTest", new (external_X_ITE_X3D_Fields_default()).SFBool (true)),
888
+ new (external_X_ITE_X3D_X3DFieldDefinition_default()) ((external_X_ITE_X3D_X3DConstants_default()).inputOutput, "depthFunction", new (external_X_ITE_X3D_Fields_default()).SFString ("LESS_EQUAL")),
889
+ new (external_X_ITE_X3D_X3DFieldDefinition_default()) ((external_X_ITE_X3D_X3DConstants_default()).inputOutput, "depthMask", new (external_X_ITE_X3D_Fields_default()).SFBool (true)),
890
+ ]),
891
+ enumerable: true,
892
+ },
893
+ });
894
+
895
+ const DepthMode_default_ = DepthMode;
1316
896
  ;
1317
897
 
1318
- Namespace_default().add ("ExtensionKeys", "x_ite/Browser/X_ITE/ExtensionKeys", ExtensionKeys_default_);
1319
- /* harmony default export */ const X_ITE_ExtensionKeys = (ExtensionKeys_default_);
1320
- ;// CONCATENATED MODULE: ./src/x_ite/Components/X_ITE/AnisotropyMaterialExtension.js
898
+ /* harmony default export */ const X_ITE_DepthMode = (external_X_ITE_X3D_Namespace_default().add ("DepthMode", DepthMode_default_));
899
+ ;// CONCATENATED MODULE: ./src/x_ite/Components/X_ITE/DiffuseTransmissionMaterialExtension.js
1321
900
  /*******************************************************************************
1322
901
  *
1323
902
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -1373,120 +952,130 @@ Namespace_default().add ("ExtensionKeys", "x_ite/Browser/X_ITE/ExtensionKeys", E
1373
952
 
1374
953
 
1375
954
 
955
+
1376
956
  /**
1377
957
  * THIS NODE IS STILL EXPERIMENTAL.
1378
958
  */
1379
959
 
1380
- function AnisotropyMaterialExtension (executionContext)
960
+ function DiffuseTransmissionMaterialExtension (executionContext)
1381
961
  {
1382
962
  X_ITE_X3DMaterialExtensionNode .call (this, executionContext);
1383
963
 
1384
- this .addType ((X3DConstants_default()).AnisotropyMaterialExtension);
964
+ this .addType ((external_X_ITE_X3D_X3DConstants_default()).DiffuseTransmissionMaterialExtension);
1385
965
 
1386
- this .anisotropyArray = new Float32Array (3);
966
+ this .diffuseTransmissionColorArray = new Float32Array (3);
1387
967
  }
1388
968
 
1389
- Object .assign (Object .setPrototypeOf (AnisotropyMaterialExtension .prototype, X_ITE_X3DMaterialExtensionNode .prototype),
969
+ Object .assign (Object .setPrototypeOf (DiffuseTransmissionMaterialExtension .prototype, X_ITE_X3DMaterialExtensionNode .prototype),
1390
970
  {
1391
971
  initialize ()
1392
972
  {
1393
973
  X_ITE_X3DMaterialExtensionNode .prototype .initialize .call (this);
1394
974
 
1395
- this ._anisotropyStrength .addInterest ("set_anisotropyStrength__", this);
1396
- this ._anisotropyRotation .addInterest ("set_anisotropyRotation__", this);
1397
- this ._anisotropyTexture .addInterest ("set_anisotropyTexture__", this);
975
+ this ._diffuseTransmission .addInterest ("set_diffuseTransmission__", this);
976
+ this ._diffuseTransmissionTexture .addInterest ("set_diffuseTransmissionTexture__", this);
977
+ this ._diffuseTransmissionColor .addInterest ("set_diffuseTransmissionColor__", this);
978
+ this ._diffuseTransmissionColorTexture .addInterest ("set_diffuseTransmissionColorTexture__", this);
1398
979
 
1399
- this .set_anisotropyStrength__ ();
1400
- this .set_anisotropyRotation__ ();
1401
- this .set_anisotropyTexture__ ();
980
+ this .set_diffuseTransmission__ ();
981
+ this .set_diffuseTransmissionTexture__ ();
982
+ this .set_diffuseTransmissionColor__ ();
983
+ this .set_diffuseTransmissionColorTexture__ ();
1402
984
  },
1403
- set_anisotropyStrength__ ()
985
+ set_diffuseTransmission__ ()
1404
986
  {
1405
- this .anisotropyArray [2] = Math .max (this ._anisotropyStrength .getValue (), 0);
987
+ this .diffuseTransmission = Math .max (this ._diffuseTransmission .getValue (), 0);
1406
988
  },
1407
- set_anisotropyRotation__ ()
989
+ set_diffuseTransmissionTexture__ ()
1408
990
  {
1409
- const anisotropyRotation = this ._anisotropyRotation .getValue ();
991
+ this .diffuseTransmissionTextureNode = external_X_ITE_X3D_X3DCast_default() ((external_X_ITE_X3D_X3DConstants_default()).X3DSingleTextureNode, this ._diffuseTransmissionTexture);
1410
992
 
1411
- this .anisotropyArray [0] = Math .cos (anisotropyRotation);
1412
- this .anisotropyArray [1] = Math .sin (anisotropyRotation);
993
+ this .setTexture (0, this .diffuseTransmissionTextureNode);
1413
994
  },
1414
- set_anisotropyTexture__ ()
995
+ set_diffuseTransmissionColor__ ()
1415
996
  {
1416
- this .anisotropyTextureNode = X3DCast_default() ((X3DConstants_default()).X3DSingleTextureNode, this ._anisotropyTexture);
997
+ //We cannot use this in Windows Edge:
998
+ //this .diffuseTransmissionColorArray .set (this ._diffuseTransmissionColor .getValue ());
1417
999
 
1418
- this .setTexture (0, this .anisotropyTextureNode);
1000
+ const
1001
+ diffuseTransmissionColorArray = this .diffuseTransmissionColorArray,
1002
+ diffuseTransmissionColor = this ._diffuseTransmissionColor .getValue ();
1003
+
1004
+ diffuseTransmissionColorArray [0] = diffuseTransmissionColor .r;
1005
+ diffuseTransmissionColorArray [1] = diffuseTransmissionColor .g;
1006
+ diffuseTransmissionColorArray [2] = diffuseTransmissionColor .b;
1007
+ },
1008
+ set_diffuseTransmissionColorTexture__ ()
1009
+ {
1010
+ this .diffuseTransmissionColorTextureNode = external_X_ITE_X3D_X3DCast_default() ((external_X_ITE_X3D_X3DConstants_default()).X3DSingleTextureNode, this ._diffuseTransmissionColorTexture);
1011
+
1012
+ this .setTexture (1, this .diffuseTransmissionColorTextureNode);
1419
1013
  },
1420
1014
  getExtensionKey ()
1421
1015
  {
1422
- return X_ITE_ExtensionKeys .ANISOTROPY_MATERIAL_EXTENSION;
1016
+ return X_ITE_ExtensionKeys .DIFFUSE_TRANSMISSION_EXTENSION;
1423
1017
  },
1424
1018
  getShaderOptions (options)
1425
1019
  {
1426
- options .push ("X3D_ANISOTROPY_MATERIAL_EXT");
1020
+ options .push ("X3D_DIFFUSE_TRANSMISSION_MATERIAL_EXT");
1427
1021
 
1428
1022
  if (!+this .getTextureBits ())
1429
1023
  return;
1430
1024
 
1431
1025
  options .push ("X3D_MATERIAL_TEXTURES");
1432
1026
 
1433
- this .anisotropyTextureNode ?.getShaderOptions (options, "ANISOTROPY", true);
1027
+ this .diffuseTransmissionTextureNode ?.getShaderOptions (options, "DIFFUSE_TRANSMISSION", true);
1028
+ this .diffuseTransmissionColorTextureNode ?.getShaderOptions (options, "DIFFUSE_TRANSMISSION_COLOR", true);
1434
1029
  },
1435
1030
  setShaderUniforms (gl, shaderObject, renderObject, textureTransformMapping, textureCoordinateMapping)
1436
1031
  {
1437
- gl .uniform3fv (shaderObject .x3d_AnisotropyEXT, this .anisotropyArray);
1032
+ gl .uniform1f (shaderObject .x3d_DiffuseTransmissionEXT, this .diffuseTransmission);
1033
+ gl .uniform3fv (shaderObject .x3d_DiffuseTransmissionColorEXT, this .diffuseTransmissionColorArray);
1438
1034
 
1439
- this .anisotropyTextureNode ?.setNamedShaderUniforms (gl,
1035
+ if (!+this .getTextureBits ())
1036
+ return;
1037
+
1038
+ this .diffuseTransmissionTextureNode ?.setNamedShaderUniforms (gl,
1440
1039
  shaderObject,
1441
1040
  renderObject,
1442
- shaderObject .x3d_AnisotropyTextureEXT,
1443
- this ._anisotropyTextureMapping .getValue (),
1041
+ shaderObject .x3d_DiffuseTransmissionTextureEXT,
1042
+ this ._diffuseTransmissionTextureMapping .getValue (),
1043
+ textureTransformMapping,
1044
+ textureCoordinateMapping);
1045
+
1046
+ this .diffuseTransmissionColorTextureNode ?.setNamedShaderUniforms (gl,
1047
+ shaderObject,
1048
+ renderObject,
1049
+ shaderObject .x3d_DiffuseTransmissionColorTextureEXT,
1050
+ this ._diffuseTransmissionColorTextureMapping .getValue (),
1444
1051
  textureTransformMapping,
1445
1052
  textureCoordinateMapping);
1446
1053
  },
1447
1054
  });
1448
1055
 
1449
- Object .defineProperties (AnisotropyMaterialExtension,
1056
+ Object .defineProperties (DiffuseTransmissionMaterialExtension,
1450
1057
  {
1451
- typeName:
1452
- {
1453
- value: "AnisotropyMaterialExtension",
1454
- enumerable: true,
1455
- },
1456
- componentInfo:
1457
- {
1458
- value: Object .freeze ({ name: "X_ITE", level: 1 }),
1459
- enumerable: true,
1460
- },
1461
- containerField:
1462
- {
1463
- value: "extensions",
1464
- enumerable: true,
1465
- },
1466
- specificationRange:
1467
- {
1468
- value: Object .freeze ({ from: "4.0", to: "Infinity" }),
1469
- enumerable: true,
1470
- },
1058
+ ... external_X_ITE_X3D_X3DNode_default().getStaticProperties ("DiffuseTransmissionMaterialExtension", "X_ITE", 1, "extensions", "4.0"),
1471
1059
  fieldDefinitions:
1472
1060
  {
1473
- value: new (FieldDefinitionArray_default()) ([
1474
- new (X3DFieldDefinition_default()) ((X3DConstants_default()).inputOutput, "metadata", new (Fields_default()).SFNode ()),
1475
- new (X3DFieldDefinition_default()) ((X3DConstants_default()).inputOutput, "anisotropyStrength", new (Fields_default()).SFFloat ()),
1476
- new (X3DFieldDefinition_default()) ((X3DConstants_default()).inputOutput, "anisotropyRotation", new (Fields_default()).SFFloat ()),
1477
- new (X3DFieldDefinition_default()) ((X3DConstants_default()).inputOutput, "anisotropyTextureMapping", new (Fields_default()).SFString ()),
1478
- new (X3DFieldDefinition_default()) ((X3DConstants_default()).inputOutput, "anisotropyTexture", new (Fields_default()).SFNode ()),
1061
+ value: new (external_X_ITE_X3D_FieldDefinitionArray_default()) ([
1062
+ new (external_X_ITE_X3D_X3DFieldDefinition_default()) ((external_X_ITE_X3D_X3DConstants_default()).inputOutput, "metadata", new (external_X_ITE_X3D_Fields_default()).SFNode ()),
1063
+ new (external_X_ITE_X3D_X3DFieldDefinition_default()) ((external_X_ITE_X3D_X3DConstants_default()).inputOutput, "diffuseTransmission", new (external_X_ITE_X3D_Fields_default()).SFFloat ()),
1064
+ new (external_X_ITE_X3D_X3DFieldDefinition_default()) ((external_X_ITE_X3D_X3DConstants_default()).inputOutput, "diffuseTransmissionTextureMapping", new (external_X_ITE_X3D_Fields_default()).SFString ()),
1065
+ new (external_X_ITE_X3D_X3DFieldDefinition_default()) ((external_X_ITE_X3D_X3DConstants_default()).inputOutput, "diffuseTransmissionTexture", new (external_X_ITE_X3D_Fields_default()).SFNode ()),
1066
+ new (external_X_ITE_X3D_X3DFieldDefinition_default()) ((external_X_ITE_X3D_X3DConstants_default()).inputOutput, "diffuseTransmissionColor", new (external_X_ITE_X3D_Fields_default()).SFColor (1, 1, 1)),
1067
+ new (external_X_ITE_X3D_X3DFieldDefinition_default()) ((external_X_ITE_X3D_X3DConstants_default()).inputOutput, "diffuseTransmissionColorTextureMapping", new (external_X_ITE_X3D_Fields_default()).SFString ()),
1068
+ new (external_X_ITE_X3D_X3DFieldDefinition_default()) ((external_X_ITE_X3D_X3DConstants_default()).inputOutput, "diffuseTransmissionColorTexture", new (external_X_ITE_X3D_Fields_default()).SFNode ()),
1479
1069
  ]),
1480
1070
  enumerable: true,
1481
1071
  },
1482
1072
  });
1483
1073
 
1484
- const AnisotropyMaterialExtension_default_ = AnisotropyMaterialExtension;
1074
+ const DiffuseTransmissionMaterialExtension_default_ = DiffuseTransmissionMaterialExtension;
1485
1075
  ;
1486
1076
 
1487
- Namespace_default().add ("AnisotropyMaterialExtension", "x_ite/Components/X_ITE/AnisotropyMaterialExtension", AnisotropyMaterialExtension_default_);
1488
- /* harmony default export */ const X_ITE_AnisotropyMaterialExtension = (AnisotropyMaterialExtension_default_);
1489
- ;// CONCATENATED MODULE: ./src/x_ite/Components/X_ITE/ClearcoatMaterialExtension.js
1077
+ /* harmony default export */ const X_ITE_DiffuseTransmissionMaterialExtension = (external_X_ITE_X3D_Namespace_default().add ("DiffuseTransmissionMaterialExtension", DiffuseTransmissionMaterialExtension_default_));
1078
+ ;// CONCATENATED MODULE: ./src/x_ite/Components/X_ITE/DispersionMaterialExtension.js
1490
1079
  /*******************************************************************************
1491
1080
  *
1492
1081
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -1542,158 +1131,63 @@ Namespace_default().add ("AnisotropyMaterialExtension", "x_ite/Components/X_ITE/
1542
1131
 
1543
1132
 
1544
1133
 
1545
-
1546
1134
  /**
1547
1135
  * THIS NODE IS STILL EXPERIMENTAL.
1548
1136
  */
1549
1137
 
1550
- function ClearcoatMaterialExtension (executionContext)
1138
+ function DispersionMaterialExtension (executionContext)
1551
1139
  {
1552
1140
  X_ITE_X3DMaterialExtensionNode .call (this, executionContext);
1553
1141
 
1554
- this .addType ((X3DConstants_default()).ClearcoatMaterialExtension);
1555
- }
1556
-
1557
- Object .assign (Object .setPrototypeOf (ClearcoatMaterialExtension .prototype, X_ITE_X3DMaterialExtensionNode .prototype),
1558
- {
1559
- initialize ()
1560
- {
1561
- X_ITE_X3DMaterialExtensionNode .prototype .initialize .call (this);
1562
-
1563
- this ._clearcoat .addInterest ("set_clearcoat__", this);
1564
- this ._clearcoatTexture .addInterest ("set_clearcoatTexture__", this);
1565
- this ._clearcoatRoughness .addInterest ("set_clearcoatRoughness__", this);
1566
- this ._clearcoatRoughnessTexture .addInterest ("set_clearcoatRoughnessTexture__", this);
1567
- this ._clearcoatNormalTexture .addInterest ("set_clearcoatNormalTexture__", this);
1568
-
1569
- this .set_clearcoat__ ();
1570
- this .set_clearcoatTexture__ ();
1571
- this .set_clearcoatRoughness__ ();
1572
- this .set_clearcoatRoughnessTexture__ ();
1573
- this .set_clearcoatNormalTexture__ ();
1574
- },
1575
- set_clearcoat__ ()
1576
- {
1577
- this .clearcoat = Math .max (this ._clearcoat .getValue (), 0);
1578
- },
1579
- set_clearcoatTexture__ ()
1580
- {
1581
- this .clearcoatTextureNode = X3DCast_default() ((X3DConstants_default()).X3DSingleTextureNode, this ._clearcoatTexture);
1582
-
1583
- this .setTexture (0, this .clearcoatTextureNode);
1584
- },
1585
- set_clearcoatRoughness__ ()
1586
- {
1587
- this .clearcoatRoughness = Algorithm_default().clamp (this ._clearcoatRoughness .getValue (), 0, 1);
1588
- },
1589
- set_clearcoatRoughnessTexture__ ()
1590
- {
1591
- this .clearcoatRoughnessTextureNode = X3DCast_default() ((X3DConstants_default()).X3DSingleTextureNode, this ._clearcoatRoughnessTexture);
1592
-
1593
- this .setTexture (1, this .clearcoatRoughnessTextureNode);
1594
- },
1595
- set_clearcoatNormalTexture__ ()
1596
- {
1597
- this .clearcoatNormalTextureNode = X3DCast_default() ((X3DConstants_default()).X3DSingleTextureNode, this ._clearcoatNormalTexture);
1598
-
1599
- this .setTexture (2, this .clearcoatNormalTextureNode);
1600
- },
1601
- getExtensionKey ()
1602
- {
1603
- return X_ITE_ExtensionKeys .CLEARCOAT_MATERIAL_EXTENSION;
1604
- },
1605
- getShaderOptions (options)
1606
- {
1607
- options .push ("X3D_CLEARCOAT_MATERIAL_EXT");
1608
-
1609
- if (!+this .getTextureBits ())
1610
- return;
1611
-
1612
- options .push ("X3D_MATERIAL_TEXTURES");
1613
-
1614
- this .clearcoatTextureNode ?.getShaderOptions (options, "CLEARCOAT", true);
1615
- this .clearcoatRoughnessTextureNode ?.getShaderOptions (options, "CLEARCOAT_ROUGHNESS", true);
1616
- this .clearcoatNormalTextureNode ?.getShaderOptions (options, "CLEARCOAT_NORMAL", true);
1617
- },
1618
- setShaderUniforms (gl, shaderObject, renderObject, textureTransformMapping, textureCoordinateMapping)
1619
- {
1620
- gl .uniform1f (shaderObject .x3d_ClearcoatEXT, this .clearcoat);
1621
- gl .uniform1f (shaderObject .x3d_ClearcoatRoughnessEXT, this .clearcoatRoughness);
1622
-
1623
- if (!+this .getTextureBits ())
1624
- return;
1625
-
1626
- this .clearcoatTextureNode ?.setNamedShaderUniforms (gl,
1627
- shaderObject,
1628
- renderObject,
1629
- shaderObject .x3d_ClearcoatTextureEXT,
1630
- this ._clearcoatTextureMapping .getValue (),
1631
- textureTransformMapping,
1632
- textureCoordinateMapping);
1633
-
1634
- this .clearcoatRoughnessTextureNode ?.setNamedShaderUniforms (gl,
1635
- shaderObject,
1636
- renderObject,
1637
- shaderObject .x3d_ClearcoatRoughnessTextureEXT,
1638
- this ._clearcoatRoughnessTextureMapping .getValue (),
1639
- textureTransformMapping,
1640
- textureCoordinateMapping);
1641
-
1642
- this .clearcoatNormalTextureNode ?.setNamedShaderUniforms (gl,
1643
- shaderObject,
1644
- renderObject,
1645
- shaderObject .x3d_ClearcoatNormalTextureEXT,
1646
- this ._clearcoatNormalTextureMapping .getValue (),
1647
- textureTransformMapping,
1648
- textureCoordinateMapping);
1649
- },
1650
- });
1651
-
1652
- Object .defineProperties (ClearcoatMaterialExtension,
1142
+ this .addType ((external_X_ITE_X3D_X3DConstants_default()).DispersionMaterialExtension);
1143
+ }
1144
+
1145
+ Object .assign (Object .setPrototypeOf (DispersionMaterialExtension .prototype, X_ITE_X3DMaterialExtensionNode .prototype),
1653
1146
  {
1654
- typeName:
1147
+ initialize ()
1655
1148
  {
1656
- value: "ClearcoatMaterialExtension",
1657
- enumerable: true,
1149
+ X_ITE_X3DMaterialExtensionNode .prototype .initialize .call (this);
1150
+
1151
+ this ._dispersion .addInterest ("set_dispersion__", this);
1152
+
1153
+ this .set_dispersion__ ();
1658
1154
  },
1659
- componentInfo:
1155
+ set_dispersion__ ()
1660
1156
  {
1661
- value: Object .freeze ({ name: "X_ITE", level: 1 }),
1662
- enumerable: true,
1157
+ this .dispersion = Math .max (this ._dispersion .getValue (), 0);
1663
1158
  },
1664
- containerField:
1159
+ getExtensionKey ()
1665
1160
  {
1666
- value: "extensions",
1667
- enumerable: true,
1161
+ return X_ITE_ExtensionKeys .DISPERSION_MATERIAL_EXTENSION;
1668
1162
  },
1669
- specificationRange:
1163
+ getShaderOptions (options)
1670
1164
  {
1671
- value: Object .freeze ({ from: "4.0", to: "Infinity" }),
1672
- enumerable: true,
1165
+ options .push ("X3D_DISPERSION_MATERIAL_EXT");
1166
+ },
1167
+ setShaderUniforms (gl, shaderObject, renderObject, textureTransformMapping, textureCoordinateMapping)
1168
+ {
1169
+ gl .uniform1f (shaderObject .x3d_DispersionEXT, this .dispersion);
1673
1170
  },
1171
+ });
1172
+
1173
+ Object .defineProperties (DispersionMaterialExtension,
1174
+ {
1175
+ ... external_X_ITE_X3D_X3DNode_default().getStaticProperties ("DispersionMaterialExtension", "X_ITE", 1, "extensions", "4.0"),
1674
1176
  fieldDefinitions:
1675
1177
  {
1676
- value: new (FieldDefinitionArray_default()) ([
1677
- new (X3DFieldDefinition_default()) ((X3DConstants_default()).inputOutput, "metadata", new (Fields_default()).SFNode ()),
1678
- new (X3DFieldDefinition_default()) ((X3DConstants_default()).inputOutput, "clearcoat", new (Fields_default()).SFFloat ()),
1679
- new (X3DFieldDefinition_default()) ((X3DConstants_default()).inputOutput, "clearcoatTextureMapping", new (Fields_default()).SFString ()),
1680
- new (X3DFieldDefinition_default()) ((X3DConstants_default()).inputOutput, "clearcoatTexture", new (Fields_default()).SFNode ()),
1681
- new (X3DFieldDefinition_default()) ((X3DConstants_default()).inputOutput, "clearcoatRoughness", new (Fields_default()).SFFloat ()),
1682
- new (X3DFieldDefinition_default()) ((X3DConstants_default()).inputOutput, "clearcoatRoughnessTextureMapping", new (Fields_default()).SFString ()),
1683
- new (X3DFieldDefinition_default()) ((X3DConstants_default()).inputOutput, "clearcoatRoughnessTexture", new (Fields_default()).SFNode ()),
1684
- new (X3DFieldDefinition_default()) ((X3DConstants_default()).inputOutput, "clearcoatNormalTextureMapping", new (Fields_default()).SFString ()),
1685
- new (X3DFieldDefinition_default()) ((X3DConstants_default()).inputOutput, "clearcoatNormalTexture", new (Fields_default()).SFNode ()),
1178
+ value: new (external_X_ITE_X3D_FieldDefinitionArray_default()) ([
1179
+ new (external_X_ITE_X3D_X3DFieldDefinition_default()) ((external_X_ITE_X3D_X3DConstants_default()).inputOutput, "metadata", new (external_X_ITE_X3D_Fields_default()).SFNode ()),
1180
+ new (external_X_ITE_X3D_X3DFieldDefinition_default()) ((external_X_ITE_X3D_X3DConstants_default()).inputOutput, "dispersion", new (external_X_ITE_X3D_Fields_default()).SFFloat ()),
1686
1181
  ]),
1687
1182
  enumerable: true,
1688
1183
  },
1689
1184
  });
1690
1185
 
1691
- const ClearcoatMaterialExtension_default_ = ClearcoatMaterialExtension;
1186
+ const DispersionMaterialExtension_default_ = DispersionMaterialExtension;
1692
1187
  ;
1693
1188
 
1694
- Namespace_default().add ("ClearcoatMaterialExtension", "x_ite/Components/X_ITE/ClearcoatMaterialExtension", ClearcoatMaterialExtension_default_);
1695
- /* harmony default export */ const X_ITE_ClearcoatMaterialExtension = (ClearcoatMaterialExtension_default_);
1696
- ;// CONCATENATED MODULE: ./src/x_ite/Components/X_ITE/DispersionMaterialExtension.js
1189
+ /* harmony default export */ const X_ITE_DispersionMaterialExtension = (external_X_ITE_X3D_Namespace_default().add ("DispersionMaterialExtension", DispersionMaterialExtension_default_));
1190
+ ;// CONCATENATED MODULE: ./src/x_ite/Components/X_ITE/EmissiveStrengthMaterialExtension.js
1697
1191
  /*******************************************************************************
1698
1192
  *
1699
1193
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -1748,83 +1242,82 @@ Namespace_default().add ("ClearcoatMaterialExtension", "x_ite/Components/X_ITE/C
1748
1242
 
1749
1243
 
1750
1244
 
1245
+
1751
1246
  /**
1752
1247
  * THIS NODE IS STILL EXPERIMENTAL.
1753
1248
  */
1754
1249
 
1755
- function DispersionMaterialExtension (executionContext)
1250
+ function EmissiveStrengthMaterialExtension (executionContext)
1756
1251
  {
1757
1252
  X_ITE_X3DMaterialExtensionNode .call (this, executionContext);
1758
1253
 
1759
- this .addType ((X3DConstants_default()).DispersionMaterialExtension);
1254
+ this .addType ((external_X_ITE_X3D_X3DConstants_default()).EmissiveStrengthMaterialExtension);
1760
1255
  }
1761
1256
 
1762
- Object .assign (Object .setPrototypeOf (DispersionMaterialExtension .prototype, X_ITE_X3DMaterialExtensionNode .prototype),
1257
+ Object .assign (Object .setPrototypeOf (EmissiveStrengthMaterialExtension .prototype, X_ITE_X3DMaterialExtensionNode .prototype),
1763
1258
  {
1764
1259
  initialize ()
1765
1260
  {
1766
1261
  X_ITE_X3DMaterialExtensionNode .prototype .initialize .call (this);
1767
1262
 
1768
- this ._dispersion .addInterest ("set_dispersion__", this);
1263
+ this ._emissiveStrength .addInterest ("set_emissiveStrength__", this);
1769
1264
 
1770
- this .set_dispersion__ ();
1265
+ this .set_emissiveStrength__ ();
1771
1266
  },
1772
- set_dispersion__ ()
1267
+ set_emissiveStrength__ ()
1773
1268
  {
1774
- this .dispersion = Math .max (this ._dispersion .getValue (), 0);
1269
+ this .emissiveStrength = Math .max (this ._emissiveStrength .getValue (), 0);
1775
1270
  },
1776
1271
  getExtensionKey ()
1777
1272
  {
1778
- return X_ITE_ExtensionKeys .DISPERSION_MATERIAL_EXTENSION;
1273
+ return X_ITE_ExtensionKeys .EMISSIVE_STRENGTH_MATERIAL_EXTENSION;
1779
1274
  },
1780
1275
  getShaderOptions (options)
1781
1276
  {
1782
- options .push ("X3D_DISPERSION_MATERIAL_EXT");
1277
+ options .push ("X3D_EMISSIVE_STRENGTH_MATERIAL_EXT");
1783
1278
  },
1784
1279
  setShaderUniforms (gl, shaderObject, renderObject, textureTransformMapping, textureCoordinateMapping)
1785
1280
  {
1786
- gl .uniform1f (shaderObject .x3d_DispersionEXT, this .dispersion);
1281
+ gl .uniform1f (shaderObject .x3d_EmissiveStrengthEXT, this .emissiveStrength);
1787
1282
  },
1788
1283
  });
1789
1284
 
1790
- Object .defineProperties (DispersionMaterialExtension,
1285
+ Object .defineProperties (EmissiveStrengthMaterialExtension,
1791
1286
  {
1792
- typeName:
1793
- {
1794
- value: "DispersionMaterialExtension",
1795
- enumerable: true,
1796
- },
1797
- componentInfo:
1798
- {
1799
- value: Object .freeze ({ name: "X_ITE", level: 1 }),
1800
- enumerable: true,
1801
- },
1802
- containerField:
1803
- {
1804
- value: "extensions",
1805
- enumerable: true,
1806
- },
1807
- specificationRange:
1808
- {
1809
- value: Object .freeze ({ from: "4.0", to: "Infinity" }),
1810
- enumerable: true,
1811
- },
1287
+ ... external_X_ITE_X3D_X3DNode_default().getStaticProperties ("EmissiveStrengthMaterialExtension", "X_ITE", 1, "extensions", "4.0"),
1812
1288
  fieldDefinitions:
1813
1289
  {
1814
- value: new (FieldDefinitionArray_default()) ([
1815
- new (X3DFieldDefinition_default()) ((X3DConstants_default()).inputOutput, "metadata", new (Fields_default()).SFNode ()),
1816
- new (X3DFieldDefinition_default()) ((X3DConstants_default()).inputOutput, "dispersion", new (Fields_default()).SFFloat ()),
1290
+ value: new (external_X_ITE_X3D_FieldDefinitionArray_default()) ([
1291
+ new (external_X_ITE_X3D_X3DFieldDefinition_default()) ((external_X_ITE_X3D_X3DConstants_default()).inputOutput, "metadata", new (external_X_ITE_X3D_Fields_default()).SFNode ()),
1292
+ new (external_X_ITE_X3D_X3DFieldDefinition_default()) ((external_X_ITE_X3D_X3DConstants_default()).inputOutput, "emissiveStrength", new (external_X_ITE_X3D_Fields_default()).SFFloat (1)),
1817
1293
  ]),
1818
1294
  enumerable: true,
1819
1295
  },
1820
1296
  });
1821
1297
 
1822
- const DispersionMaterialExtension_default_ = DispersionMaterialExtension;
1298
+ const EmissiveStrengthMaterialExtension_default_ = EmissiveStrengthMaterialExtension;
1823
1299
  ;
1824
1300
 
1825
- Namespace_default().add ("DispersionMaterialExtension", "x_ite/Components/X_ITE/DispersionMaterialExtension", DispersionMaterialExtension_default_);
1826
- /* harmony default export */ const X_ITE_DispersionMaterialExtension = (DispersionMaterialExtension_default_);
1827
- ;// CONCATENATED MODULE: ./src/x_ite/Components/X_ITE/EmissiveStrengthMaterialExtension.js
1301
+ /* harmony default export */ const X_ITE_EmissiveStrengthMaterialExtension = (external_X_ITE_X3D_Namespace_default().add ("EmissiveStrengthMaterialExtension", EmissiveStrengthMaterialExtension_default_));
1302
+ ;// CONCATENATED MODULE: external "__X_ITE_X3D__ .X3DShapeNode"
1303
+ const external_X_ITE_X3D_X3DShapeNode_namespaceObject = __X_ITE_X3D__ .X3DShapeNode;
1304
+ var external_X_ITE_X3D_X3DShapeNode_default = /*#__PURE__*/__webpack_require__.n(external_X_ITE_X3D_X3DShapeNode_namespaceObject);
1305
+ ;// CONCATENATED MODULE: external "__X_ITE_X3D__ .TraverseType"
1306
+ const external_X_ITE_X3D_TraverseType_namespaceObject = __X_ITE_X3D__ .TraverseType;
1307
+ var external_X_ITE_X3D_TraverseType_default = /*#__PURE__*/__webpack_require__.n(external_X_ITE_X3D_TraverseType_namespaceObject);
1308
+ ;// CONCATENATED MODULE: external "__X_ITE_X3D__ .VertexArray"
1309
+ const external_X_ITE_X3D_VertexArray_namespaceObject = __X_ITE_X3D__ .VertexArray;
1310
+ var external_X_ITE_X3D_VertexArray_default = /*#__PURE__*/__webpack_require__.n(external_X_ITE_X3D_VertexArray_namespaceObject);
1311
+ ;// CONCATENATED MODULE: external "__X_ITE_X3D__ .Vector3"
1312
+ const external_X_ITE_X3D_Vector3_namespaceObject = __X_ITE_X3D__ .Vector3;
1313
+ var external_X_ITE_X3D_Vector3_default = /*#__PURE__*/__webpack_require__.n(external_X_ITE_X3D_Vector3_namespaceObject);
1314
+ ;// CONCATENATED MODULE: external "__X_ITE_X3D__ .Matrix4"
1315
+ const external_X_ITE_X3D_Matrix4_namespaceObject = __X_ITE_X3D__ .Matrix4;
1316
+ var external_X_ITE_X3D_Matrix4_default = /*#__PURE__*/__webpack_require__.n(external_X_ITE_X3D_Matrix4_namespaceObject);
1317
+ ;// CONCATENATED MODULE: external "__X_ITE_X3D__ .Box3"
1318
+ const external_X_ITE_X3D_Box3_namespaceObject = __X_ITE_X3D__ .Box3;
1319
+ var external_X_ITE_X3D_Box3_default = /*#__PURE__*/__webpack_require__.n(external_X_ITE_X3D_Box3_namespaceObject);
1320
+ ;// CONCATENATED MODULE: ./src/x_ite/Components/X_ITE/InstancedShape.js
1828
1321
  /*******************************************************************************
1829
1322
  *
1830
1323
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -1879,82 +1372,262 @@ Namespace_default().add ("DispersionMaterialExtension", "x_ite/Components/X_ITE/
1879
1372
 
1880
1373
 
1881
1374
 
1375
+
1376
+
1377
+
1378
+
1379
+
1882
1380
  /**
1883
1381
  * THIS NODE IS STILL EXPERIMENTAL.
1884
1382
  */
1885
1383
 
1886
- function EmissiveStrengthMaterialExtension (executionContext)
1384
+ function InstancedShape (executionContext)
1887
1385
  {
1888
- X_ITE_X3DMaterialExtensionNode .call (this, executionContext);
1386
+ external_X_ITE_X3D_X3DShapeNode_default().call (this, executionContext);
1387
+
1388
+ this .addType ((external_X_ITE_X3D_X3DConstants_default()).InstancedShape);
1389
+
1390
+ this .addChildObjects ((external_X_ITE_X3D_X3DConstants_default()).outputOnly, "matrices", new (external_X_ITE_X3D_Fields_default()).SFTime ());
1391
+
1392
+ this .min = new (external_X_ITE_X3D_Vector3_default()) ();
1393
+ this .max = new (external_X_ITE_X3D_Vector3_default()) ();
1394
+ this .scale = new (external_X_ITE_X3D_Vector3_default()) (1, 1, 1);
1889
1395
 
1890
- this .addType ((X3DConstants_default()).EmissiveStrengthMaterialExtension);
1396
+ this .numInstances = 0;
1397
+ this .instancesStride = Float32Array .BYTES_PER_ELEMENT * (16 + 9); // mat4 + mat3
1398
+ this .matrixOffset = 0;
1399
+ this .normalMatrixOffset = Float32Array .BYTES_PER_ELEMENT * 16;
1891
1400
  }
1892
1401
 
1893
- Object .assign (Object .setPrototypeOf (EmissiveStrengthMaterialExtension .prototype, X_ITE_X3DMaterialExtensionNode .prototype),
1402
+ Object .assign (Object .setPrototypeOf (InstancedShape .prototype, (external_X_ITE_X3D_X3DShapeNode_default()).prototype),
1894
1403
  {
1895
1404
  initialize ()
1896
1405
  {
1897
- X_ITE_X3DMaterialExtensionNode .prototype .initialize .call (this);
1406
+ external_X_ITE_X3D_X3DShapeNode_default().prototype .initialize .call (this);
1898
1407
 
1899
- this ._emissiveStrength .addInterest ("set_emissiveStrength__", this);
1408
+ const
1409
+ browser = this .getBrowser (),
1410
+ gl = browser .getContext ();
1900
1411
 
1901
- this .set_emissiveStrength__ ();
1412
+ // Check version.
1413
+
1414
+ if (browser .getContext () .getVersion () < 2)
1415
+ return;
1416
+
1417
+ this .instances = Object .assign (gl .createBuffer (),
1418
+ {
1419
+ vertexArrayObject: new (external_X_ITE_X3D_VertexArray_default()) (gl),
1420
+ thickLinesVertexArrayObject: new (external_X_ITE_X3D_VertexArray_default()) (gl),
1421
+ lineTrianglesBuffer: gl .createBuffer (),
1422
+ numLines: 0,
1423
+ });
1424
+
1425
+ this ._translations .addInterest ("set_transform__", this);
1426
+ this ._rotations .addInterest ("set_transform__", this);
1427
+ this ._scales .addInterest ("set_transform__", this);
1428
+ this ._matrices .addInterest ("set_matrices__", this);
1429
+
1430
+ this .set_transform__ ();
1902
1431
  },
1903
- set_emissiveStrength__ ()
1432
+ getShapeKey ()
1904
1433
  {
1905
- this .emissiveStrength = Math .max (this ._emissiveStrength .getValue (), 0);
1434
+ return 3;
1906
1435
  },
1907
- getExtensionKey ()
1436
+ getNumInstances ()
1908
1437
  {
1909
- return X_ITE_ExtensionKeys .EMISSIVE_STRENGTH_MATERIAL_EXTENSION;
1438
+ return this .numInstances;
1910
1439
  },
1911
- getShaderOptions (options)
1440
+ getInstances ()
1912
1441
  {
1913
- options .push ("X3D_EMISSIVE_STRENGTH_MATERIAL_EXT");
1442
+ return this .instances;
1914
1443
  },
1915
- setShaderUniforms (gl, shaderObject, renderObject, textureTransformMapping, textureCoordinateMapping)
1444
+ set_bbox__: (function ()
1916
1445
  {
1917
- gl .uniform1f (shaderObject .x3d_EmissiveStrengthEXT, this .emissiveStrength);
1446
+ const
1447
+ min = new (external_X_ITE_X3D_Vector3_default()) (),
1448
+ max = new (external_X_ITE_X3D_Vector3_default()) (),
1449
+ bbox = new (external_X_ITE_X3D_Box3_default()) ();
1450
+
1451
+ return function ()
1452
+ {
1453
+ if (this .numInstances)
1454
+ {
1455
+ if (this ._bboxSize .getValue () .equals (this .getDefaultBBoxSize ()))
1456
+ {
1457
+ if (this .getGeometry ())
1458
+ bbox .assign (this .getGeometry () .getBBox ());
1459
+ else
1460
+ bbox .set ();
1461
+
1462
+ const
1463
+ size1_2 = bbox .size .multiply (this .scale .magnitude () / 2),
1464
+ center = bbox .center;
1465
+
1466
+ min .assign (this .min) .add (center) .subtract (size1_2);
1467
+ max .assign (this .max) .add (center) .add (size1_2);
1468
+
1469
+ this .bbox .setExtents (min, max);
1470
+ }
1471
+ else
1472
+ {
1473
+ this .bbox .set (this ._bboxSize .getValue (), this ._bboxCenter .getValue ());
1474
+ }
1475
+ }
1476
+ else
1477
+ {
1478
+ this .bbox .set ();
1479
+ }
1480
+
1481
+ this .getBBoxSize () .assign (this .bbox .size);
1482
+ this .getBBoxCenter () .assign (this .bbox .center);
1483
+ };
1484
+ })(),
1485
+ set_transform__ ()
1486
+ {
1487
+ this ._matrices = this .getBrowser () .getCurrentTime ();
1918
1488
  },
1919
- });
1489
+ set_matrices__ ()
1490
+ {
1491
+ const
1492
+ browser = this .getBrowser (),
1493
+ gl = browser .getContext (),
1494
+ translations = this ._translations,
1495
+ rotations = this ._rotations,
1496
+ scales = this ._scales,
1497
+ numTranslations = translations .length,
1498
+ numRotations = rotations .length,
1499
+ numScales = scales .length,
1500
+ numInstances = Math .max (numTranslations, numRotations, numScales),
1501
+ stride = this .instancesStride / Float32Array .BYTES_PER_ELEMENT,
1502
+ length = this .instancesStride * numInstances,
1503
+ data = new Float32Array (length),
1504
+ matrix = new (external_X_ITE_X3D_Matrix4_default()) ();
1920
1505
 
1921
- Object .defineProperties (EmissiveStrengthMaterialExtension,
1922
- {
1923
- typeName:
1506
+ this .numInstances = numInstances;
1507
+
1508
+ const
1509
+ min = this .min .set (Number .POSITIVE_INFINITY, Number .POSITIVE_INFINITY, Number .POSITIVE_INFINITY),
1510
+ max = this .max .set (Number .NEGATIVE_INFINITY, Number .NEGATIVE_INFINITY, Number .NEGATIVE_INFINITY),
1511
+ scale = this .scale .assign (numScales ? max : (external_X_ITE_X3D_Vector3_default()).One);
1512
+
1513
+ for (let i = 0, o = 0; i < numInstances; ++ i, o += stride)
1514
+ {
1515
+ matrix .set (numTranslations ? translations [Math .min (i, numTranslations - 1)] .getValue () : null,
1516
+ numRotations ? rotations [Math .min (i, numRotations - 1)] .getValue () : null,
1517
+ numScales ? scales [Math .min (i, numScales - 1)] .getValue () : null);
1518
+
1519
+ if (numScales)
1520
+ scale .max (scales [Math .min (i, numScales - 1)] .getValue ());
1521
+
1522
+ data .set (matrix, o);
1523
+ data .set (matrix .submatrix .transpose () .inverse (), o + 16);
1524
+
1525
+ min .min (matrix .origin);
1526
+ max .max (matrix .origin);
1527
+ }
1528
+
1529
+ gl .bindBuffer (gl .ARRAY_BUFFER, this .instances);
1530
+ gl .bufferData (gl .ARRAY_BUFFER, data, gl .DYNAMIC_DRAW);
1531
+
1532
+ this .set_bbox__ ();
1533
+ },
1534
+ set_geometry__ ()
1924
1535
  {
1925
- value: "EmissiveStrengthMaterialExtension",
1926
- enumerable: true,
1536
+ external_X_ITE_X3D_X3DShapeNode_default().prototype .set_geometry__ .call (this);
1537
+
1538
+ if (this .getGeometry ())
1539
+ delete this .traverse;
1540
+ else
1541
+ this .traverse = Function .prototype;
1542
+
1543
+ this .set_transform__ ();
1927
1544
  },
1928
- componentInfo:
1545
+ intersectsBox (box, clipPlanes, modelViewMatrix)
1546
+ { },
1547
+ traverse (type, renderObject)
1929
1548
  {
1930
- value: Object .freeze ({ name: "X_ITE", level: 1 }),
1931
- enumerable: true,
1549
+ if (!this .numInstances)
1550
+ return;
1551
+
1552
+ // Always look at ParticleSystem if you do modify something here and there.
1553
+
1554
+ switch (type)
1555
+ {
1556
+ case (external_X_ITE_X3D_TraverseType_default()).POINTER:
1557
+ {
1558
+ if (this ._pointerEvents .getValue ())
1559
+ renderObject .addPointingShape (this);
1560
+
1561
+ break;
1562
+ }
1563
+ case (external_X_ITE_X3D_TraverseType_default()).PICKING:
1564
+ {
1565
+ break;
1566
+ }
1567
+ case (external_X_ITE_X3D_TraverseType_default()).COLLISION:
1568
+ {
1569
+ renderObject .addCollisionShape (this);
1570
+ break;
1571
+ }
1572
+ case (external_X_ITE_X3D_TraverseType_default()).SHADOW:
1573
+ {
1574
+ if (this ._castShadow .getValue ())
1575
+ renderObject .addShadowShape (this);
1576
+
1577
+ break;
1578
+ }
1579
+ case (external_X_ITE_X3D_TraverseType_default()).DISPLAY:
1580
+ {
1581
+ if (renderObject .addDisplayShape (this))
1582
+ {
1583
+ // Currently used for GeneratedCubeMapTexture.
1584
+ this .getAppearance () .traverse (type, renderObject);
1585
+ }
1586
+
1587
+ break;
1588
+ }
1589
+ }
1590
+
1591
+ // Currently used for ScreenText and Tools.
1592
+ this .getGeometry () .traverse (type, renderObject);
1932
1593
  },
1933
- containerField:
1594
+ displaySimple (gl, renderContext, shaderNode)
1934
1595
  {
1935
- value: "extensions",
1936
- enumerable: true,
1596
+ this .getGeometry () .displaySimpleInstanced (gl, shaderNode, this);
1937
1597
  },
1938
- specificationRange:
1598
+ display (gl, renderContext)
1939
1599
  {
1940
- value: Object .freeze ({ from: "4.0", to: "Infinity" }),
1941
- enumerable: true,
1600
+ this .getGeometry () .displayInstanced (gl, renderContext, this);
1942
1601
  },
1602
+ });
1603
+
1604
+ Object .defineProperties (InstancedShape,
1605
+ {
1606
+ ... external_X_ITE_X3D_X3DNode_default().getStaticProperties ("InstancedShape", "X_ITE", 1, "children", "2.0"),
1943
1607
  fieldDefinitions:
1944
1608
  {
1945
- value: new (FieldDefinitionArray_default()) ([
1946
- new (X3DFieldDefinition_default()) ((X3DConstants_default()).inputOutput, "metadata", new (Fields_default()).SFNode ()),
1947
- new (X3DFieldDefinition_default()) ((X3DConstants_default()).inputOutput, "emissiveStrength", new (Fields_default()).SFFloat (1)),
1609
+ value: new (external_X_ITE_X3D_FieldDefinitionArray_default()) ([
1610
+ new (external_X_ITE_X3D_X3DFieldDefinition_default()) ((external_X_ITE_X3D_X3DConstants_default()).inputOutput, "metadata", new (external_X_ITE_X3D_Fields_default()).SFNode ()),
1611
+ new (external_X_ITE_X3D_X3DFieldDefinition_default()) ((external_X_ITE_X3D_X3DConstants_default()).inputOutput, "translations", new (external_X_ITE_X3D_Fields_default()).MFVec3f ()),
1612
+ new (external_X_ITE_X3D_X3DFieldDefinition_default()) ((external_X_ITE_X3D_X3DConstants_default()).inputOutput, "rotations", new (external_X_ITE_X3D_Fields_default()).MFRotation ()),
1613
+ new (external_X_ITE_X3D_X3DFieldDefinition_default()) ((external_X_ITE_X3D_X3DConstants_default()).inputOutput, "scales", new (external_X_ITE_X3D_Fields_default()).MFVec3f ()),
1614
+ new (external_X_ITE_X3D_X3DFieldDefinition_default()) ((external_X_ITE_X3D_X3DConstants_default()).inputOutput, "pointerEvents", new (external_X_ITE_X3D_Fields_default()).SFBool (true)),
1615
+ new (external_X_ITE_X3D_X3DFieldDefinition_default()) ((external_X_ITE_X3D_X3DConstants_default()).inputOutput, "castShadow", new (external_X_ITE_X3D_Fields_default()).SFBool (true)),
1616
+ new (external_X_ITE_X3D_X3DFieldDefinition_default()) ((external_X_ITE_X3D_X3DConstants_default()).inputOutput, "visible", new (external_X_ITE_X3D_Fields_default()).SFBool (true)),
1617
+ new (external_X_ITE_X3D_X3DFieldDefinition_default()) ((external_X_ITE_X3D_X3DConstants_default()).inputOutput, "bboxDisplay", new (external_X_ITE_X3D_Fields_default()).SFBool ()),
1618
+ new (external_X_ITE_X3D_X3DFieldDefinition_default()) ((external_X_ITE_X3D_X3DConstants_default()).initializeOnly, "bboxSize", new (external_X_ITE_X3D_Fields_default()).SFVec3f (-1, -1, -1)),
1619
+ new (external_X_ITE_X3D_X3DFieldDefinition_default()) ((external_X_ITE_X3D_X3DConstants_default()).initializeOnly, "bboxCenter", new (external_X_ITE_X3D_Fields_default()).SFVec3f ()),
1620
+ new (external_X_ITE_X3D_X3DFieldDefinition_default()) ((external_X_ITE_X3D_X3DConstants_default()).inputOutput, "appearance", new (external_X_ITE_X3D_Fields_default()).SFNode ()),
1621
+ new (external_X_ITE_X3D_X3DFieldDefinition_default()) ((external_X_ITE_X3D_X3DConstants_default()).inputOutput, "geometry", new (external_X_ITE_X3D_Fields_default()).SFNode ()),
1948
1622
  ]),
1949
1623
  enumerable: true,
1950
1624
  },
1951
1625
  });
1952
1626
 
1953
- const EmissiveStrengthMaterialExtension_default_ = EmissiveStrengthMaterialExtension;
1627
+ const InstancedShape_default_ = InstancedShape;
1954
1628
  ;
1955
1629
 
1956
- Namespace_default().add ("EmissiveStrengthMaterialExtension", "x_ite/Components/X_ITE/EmissiveStrengthMaterialExtension", EmissiveStrengthMaterialExtension_default_);
1957
- /* harmony default export */ const X_ITE_EmissiveStrengthMaterialExtension = (EmissiveStrengthMaterialExtension_default_);
1630
+ /* harmony default export */ const X_ITE_InstancedShape = (external_X_ITE_X3D_Namespace_default().add ("InstancedShape", InstancedShape_default_));
1958
1631
  ;// CONCATENATED MODULE: ./src/x_ite/Components/X_ITE/IORMaterialExtension.js
1959
1632
  /*******************************************************************************
1960
1633
  *
@@ -2010,6 +1683,7 @@ Namespace_default().add ("EmissiveStrengthMaterialExtension", "x_ite/Components/
2010
1683
 
2011
1684
 
2012
1685
 
1686
+
2013
1687
  /**
2014
1688
  * THIS NODE IS STILL EXPERIMENTAL.
2015
1689
  */
@@ -2018,7 +1692,7 @@ function IORMaterialExtension (executionContext)
2018
1692
  {
2019
1693
  X_ITE_X3DMaterialExtensionNode .call (this, executionContext);
2020
1694
 
2021
- this .addType ((X3DConstants_default()).IORMaterialExtension);
1695
+ this .addType ((external_X_ITE_X3D_X3DConstants_default()).IORMaterialExtension);
2022
1696
  }
2023
1697
 
2024
1698
  Object .assign (Object .setPrototypeOf (IORMaterialExtension .prototype, X_ITE_X3DMaterialExtensionNode .prototype),
@@ -2051,31 +1725,12 @@ Object .assign (Object .setPrototypeOf (IORMaterialExtension .prototype, X_ITE_X
2051
1725
 
2052
1726
  Object .defineProperties (IORMaterialExtension,
2053
1727
  {
2054
- typeName:
2055
- {
2056
- value: "IORMaterialExtension",
2057
- enumerable: true,
2058
- },
2059
- componentInfo:
2060
- {
2061
- value: Object .freeze ({ name: "X_ITE", level: 1 }),
2062
- enumerable: true,
2063
- },
2064
- containerField:
2065
- {
2066
- value: "extensions",
2067
- enumerable: true,
2068
- },
2069
- specificationRange:
2070
- {
2071
- value: Object .freeze ({ from: "4.0", to: "Infinity" }),
2072
- enumerable: true,
2073
- },
1728
+ ... external_X_ITE_X3D_X3DNode_default().getStaticProperties ("IORMaterialExtension", "X_ITE", 1, "extensions", "4.0"),
2074
1729
  fieldDefinitions:
2075
1730
  {
2076
- value: new (FieldDefinitionArray_default()) ([
2077
- new (X3DFieldDefinition_default()) ((X3DConstants_default()).inputOutput, "metadata", new (Fields_default()).SFNode ()),
2078
- new (X3DFieldDefinition_default()) ((X3DConstants_default()).inputOutput, "indexOfRefraction", new (Fields_default()).SFFloat (1.5)),
1731
+ value: new (external_X_ITE_X3D_FieldDefinitionArray_default()) ([
1732
+ new (external_X_ITE_X3D_X3DFieldDefinition_default()) ((external_X_ITE_X3D_X3DConstants_default()).inputOutput, "metadata", new (external_X_ITE_X3D_Fields_default()).SFNode ()),
1733
+ new (external_X_ITE_X3D_X3DFieldDefinition_default()) ((external_X_ITE_X3D_X3DConstants_default()).inputOutput, "indexOfRefraction", new (external_X_ITE_X3D_Fields_default()).SFFloat (1.5)),
2079
1734
  ]),
2080
1735
  enumerable: true,
2081
1736
  },
@@ -2084,8 +1739,7 @@ Object .defineProperties (IORMaterialExtension,
2084
1739
  const IORMaterialExtension_default_ = IORMaterialExtension;
2085
1740
  ;
2086
1741
 
2087
- Namespace_default().add ("IORMaterialExtension", "x_ite/Components/X_ITE/IORMaterialExtension", IORMaterialExtension_default_);
2088
- /* harmony default export */ const X_ITE_IORMaterialExtension = (IORMaterialExtension_default_);
1742
+ /* harmony default export */ const X_ITE_IORMaterialExtension = (external_X_ITE_X3D_Namespace_default().add ("IORMaterialExtension", IORMaterialExtension_default_));
2089
1743
  ;// CONCATENATED MODULE: ./src/x_ite/Components/X_ITE/IridescenceMaterialExtension.js
2090
1744
  /*******************************************************************************
2091
1745
  *
@@ -2142,6 +1796,7 @@ Namespace_default().add ("IORMaterialExtension", "x_ite/Components/X_ITE/IORMate
2142
1796
 
2143
1797
 
2144
1798
 
1799
+
2145
1800
  /**
2146
1801
  * THIS NODE IS STILL EXPERIMENTAL.
2147
1802
  */
@@ -2150,7 +1805,7 @@ function IridescenceMaterialExtension (executionContext)
2150
1805
  {
2151
1806
  X_ITE_X3DMaterialExtensionNode .call (this, executionContext);
2152
1807
 
2153
- this .addType ((X3DConstants_default()).IridescenceMaterialExtension);
1808
+ this .addType ((external_X_ITE_X3D_X3DConstants_default()).IridescenceMaterialExtension);
2154
1809
  }
2155
1810
 
2156
1811
  Object .assign (Object .setPrototypeOf (IridescenceMaterialExtension .prototype, X_ITE_X3DMaterialExtensionNode .prototype),
@@ -2179,7 +1834,7 @@ Object .assign (Object .setPrototypeOf (IridescenceMaterialExtension .prototype,
2179
1834
  },
2180
1835
  set_iridescenceTexture__ ()
2181
1836
  {
2182
- this .iridescenceTextureNode = X3DCast_default() ((X3DConstants_default()).X3DSingleTextureNode, this ._iridescenceTexture);
1837
+ this .iridescenceTextureNode = external_X_ITE_X3D_X3DCast_default() ((external_X_ITE_X3D_X3DConstants_default()).X3DSingleTextureNode, this ._iridescenceTexture);
2183
1838
 
2184
1839
  this .setTexture (0, this .iridescenceTextureNode);
2185
1840
  },
@@ -2197,7 +1852,7 @@ Object .assign (Object .setPrototypeOf (IridescenceMaterialExtension .prototype,
2197
1852
  },
2198
1853
  set_iridescenceThicknessTexture__ ()
2199
1854
  {
2200
- this .iridescenceThicknessTextureNode = X3DCast_default() ((X3DConstants_default()).X3DSingleTextureNode, this ._iridescenceThicknessTexture);
1855
+ this .iridescenceThicknessTextureNode = external_X_ITE_X3D_X3DCast_default() ((external_X_ITE_X3D_X3DConstants_default()).X3DSingleTextureNode, this ._iridescenceThicknessTexture);
2201
1856
 
2202
1857
  this .setTexture (1, this .iridescenceThicknessTextureNode);
2203
1858
  },
@@ -2247,49 +1902,221 @@ Object .assign (Object .setPrototypeOf (IridescenceMaterialExtension .prototype,
2247
1902
 
2248
1903
  Object .defineProperties (IridescenceMaterialExtension,
2249
1904
  {
2250
- typeName:
1905
+ ... external_X_ITE_X3D_X3DNode_default().getStaticProperties ("IridescenceMaterialExtension", "X_ITE", 1, "extensions", "4.0"),
1906
+ fieldDefinitions:
2251
1907
  {
2252
- value: "IridescenceMaterialExtension",
1908
+ value: new (external_X_ITE_X3D_FieldDefinitionArray_default()) ([
1909
+ new (external_X_ITE_X3D_X3DFieldDefinition_default()) ((external_X_ITE_X3D_X3DConstants_default()).inputOutput, "metadata", new (external_X_ITE_X3D_Fields_default()).SFNode ()),
1910
+ new (external_X_ITE_X3D_X3DFieldDefinition_default()) ((external_X_ITE_X3D_X3DConstants_default()).inputOutput, "iridescence", new (external_X_ITE_X3D_Fields_default()).SFFloat ()),
1911
+ new (external_X_ITE_X3D_X3DFieldDefinition_default()) ((external_X_ITE_X3D_X3DConstants_default()).inputOutput, "iridescenceTextureMapping", new (external_X_ITE_X3D_Fields_default()).SFString ()),
1912
+ new (external_X_ITE_X3D_X3DFieldDefinition_default()) ((external_X_ITE_X3D_X3DConstants_default()).inputOutput, "iridescenceTexture", new (external_X_ITE_X3D_Fields_default()).SFNode ()),
1913
+ new (external_X_ITE_X3D_X3DFieldDefinition_default()) ((external_X_ITE_X3D_X3DConstants_default()).inputOutput, "iridescenceIndexOfRefraction", new (external_X_ITE_X3D_Fields_default()).SFFloat (1.3)),
1914
+ new (external_X_ITE_X3D_X3DFieldDefinition_default()) ((external_X_ITE_X3D_X3DConstants_default()).inputOutput, "iridescenceThicknessMinimum", new (external_X_ITE_X3D_Fields_default()).SFFloat (100)),
1915
+ new (external_X_ITE_X3D_X3DFieldDefinition_default()) ((external_X_ITE_X3D_X3DConstants_default()).inputOutput, "iridescenceThicknessMaximum", new (external_X_ITE_X3D_Fields_default()).SFFloat (400)),
1916
+ new (external_X_ITE_X3D_X3DFieldDefinition_default()) ((external_X_ITE_X3D_X3DConstants_default()).inputOutput, "iridescenceThicknessTextureMapping", new (external_X_ITE_X3D_Fields_default()).SFString ()),
1917
+ new (external_X_ITE_X3D_X3DFieldDefinition_default()) ((external_X_ITE_X3D_X3DConstants_default()).inputOutput, "iridescenceThicknessTexture", new (external_X_ITE_X3D_Fields_default()).SFNode ()),
1918
+ ]),
2253
1919
  enumerable: true,
2254
1920
  },
2255
- componentInfo:
1921
+ });
1922
+
1923
+ const IridescenceMaterialExtension_default_ = IridescenceMaterialExtension;
1924
+ ;
1925
+
1926
+ /* harmony default export */ const X_ITE_IridescenceMaterialExtension = (external_X_ITE_X3D_Namespace_default().add ("IridescenceMaterialExtension", IridescenceMaterialExtension_default_));
1927
+ ;// CONCATENATED MODULE: ./src/x_ite/Components/X_ITE/SheenMaterialExtension.js
1928
+ /*******************************************************************************
1929
+ *
1930
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
1931
+ *
1932
+ * Copyright create3000, Scheffelstraße 31a, Leipzig, Germany 2011 - 2022.
1933
+ *
1934
+ * All rights reserved. Holger Seelig <holger.seelig@yahoo.de>.
1935
+ *
1936
+ * The copyright notice above does not evidence any actual of intended
1937
+ * publication of such source code, and is an unpublished work by create3000.
1938
+ * This material contains CONFIDENTIAL INFORMATION that is the property of
1939
+ * create3000.
1940
+ *
1941
+ * No permission is granted to copy, distribute, or create derivative works from
1942
+ * the contents of this software, in whole or in part, without the prior written
1943
+ * permission of create3000.
1944
+ *
1945
+ * NON-MILITARY USE ONLY
1946
+ *
1947
+ * All create3000 software are effectively free software with a non-military use
1948
+ * restriction. It is free. Well commented source is provided. You may reuse the
1949
+ * source in any way you please with the exception anything that uses it must be
1950
+ * marked to indicate is contains 'non-military use only' components.
1951
+ *
1952
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
1953
+ *
1954
+ * Copyright 2011 - 2022, Holger Seelig <holger.seelig@yahoo.de>.
1955
+ *
1956
+ * This file is part of the X_ITE Project.
1957
+ *
1958
+ * X_ITE is free software: you can redistribute it and/or modify it under the
1959
+ * terms of the GNU General Public License version 3 only, as published by the
1960
+ * Free Software Foundation.
1961
+ *
1962
+ * X_ITE is distributed in the hope that it will be useful, but WITHOUT ANY
1963
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
1964
+ * A PARTICULAR PURPOSE. See the GNU General Public License version 3 for more
1965
+ * details (a copy is included in the LICENSE file that accompanied this code).
1966
+ *
1967
+ * You should have received a copy of the GNU General Public License version 3
1968
+ * along with X_ITE. If not, see <https://www.gnu.org/licenses/gpl.html> for a
1969
+ * copy of the GPLv3 License.
1970
+ *
1971
+ * For Silvio, Joy and Adi.
1972
+ *
1973
+ ******************************************************************************/
1974
+
1975
+
1976
+
1977
+
1978
+
1979
+
1980
+
1981
+
1982
+
1983
+
1984
+
1985
+ /**
1986
+ * THIS NODE IS STILL EXPERIMENTAL.
1987
+ */
1988
+
1989
+ function SheenMaterialExtension (executionContext)
1990
+ {
1991
+ X_ITE_X3DMaterialExtensionNode .call (this, executionContext);
1992
+
1993
+ this .addType ((external_X_ITE_X3D_X3DConstants_default()).SheenMaterialExtension);
1994
+
1995
+ this .sheenColorArray = new Float32Array (3);
1996
+ }
1997
+
1998
+ Object .assign (Object .setPrototypeOf (SheenMaterialExtension .prototype, X_ITE_X3DMaterialExtensionNode .prototype),
1999
+ {
2000
+ initialize ()
2256
2001
  {
2257
- value: Object .freeze ({ name: "X_ITE", level: 1 }),
2258
- enumerable: true,
2002
+ X_ITE_X3DMaterialExtensionNode .prototype .initialize .call (this);
2003
+
2004
+ this ._sheenColor .addInterest ("set_sheenColor__", this);
2005
+ this ._sheenColorTexture .addInterest ("set_sheenColorTexture__", this);
2006
+ this ._sheenRoughness .addInterest ("set_sheenRoughness__", this);
2007
+ this ._sheenRoughnessTexture .addInterest ("set_sheenRoughnessTexture__", this);
2008
+
2009
+ this .set_sheenColor__ ();
2010
+ this .set_sheenColorTexture__ ();
2011
+ this .set_sheenRoughness__ ();
2012
+ this .set_sheenRoughnessTexture__ ();
2259
2013
  },
2260
- containerField:
2014
+ set_sheenColor__ ()
2261
2015
  {
2262
- value: "extensions",
2263
- enumerable: true,
2016
+ //We cannot use this in Windows Edge:
2017
+ //this .sheenColorArray .set (this ._sheenColor .getValue ());
2018
+
2019
+ const
2020
+ sheenColorArray = this .sheenColorArray,
2021
+ sheenColor = this ._sheenColor .getValue ();
2022
+
2023
+ sheenColorArray [0] = sheenColor .r;
2024
+ sheenColorArray [1] = sheenColor .g;
2025
+ sheenColorArray [2] = sheenColor .b;
2264
2026
  },
2265
- specificationRange:
2027
+ set_sheenColorTexture__ ()
2266
2028
  {
2267
- value: Object .freeze ({ from: "4.0", to: "Infinity" }),
2268
- enumerable: true,
2029
+ this .sheenColorTextureNode = external_X_ITE_X3D_X3DCast_default() ((external_X_ITE_X3D_X3DConstants_default()).X3DSingleTextureNode, this ._sheenColorTexture);
2030
+
2031
+ this .setTexture (0, this .sheenColorTextureNode);
2032
+ },
2033
+ set_sheenRoughness__ ()
2034
+ {
2035
+ this .sheenRoughness = external_X_ITE_X3D_Algorithm_default().clamp (this ._sheenRoughness .getValue (), 0, 1);
2036
+ },
2037
+ set_sheenRoughnessTexture__ ()
2038
+ {
2039
+ this .sheenRoughnessTextureNode = external_X_ITE_X3D_X3DCast_default() ((external_X_ITE_X3D_X3DConstants_default()).X3DSingleTextureNode, this ._sheenRoughnessTexture);
2040
+
2041
+ this .setTexture (1, this .sheenRoughnessTextureNode);
2042
+ },
2043
+ getExtensionKey ()
2044
+ {
2045
+ return X_ITE_ExtensionKeys .SHEEN_MATERIAL_EXTENSION;
2046
+ },
2047
+ getShaderOptions (options)
2048
+ {
2049
+ options .push ("X3D_SHEEN_MATERIAL_EXT");
2050
+
2051
+ if (!+this .getTextureBits ())
2052
+ return;
2053
+
2054
+ options .push ("X3D_MATERIAL_TEXTURES");
2055
+
2056
+ this .sheenColorTextureNode ?.getShaderOptions (options, "SHEEN_COLOR", true);
2057
+ this .sheenRoughnessTextureNode ?.getShaderOptions (options, "SHEEN_ROUGHNESS", true);
2058
+ },
2059
+ setShaderUniforms (gl, shaderObject, renderObject, textureTransformMapping, textureCoordinateMapping)
2060
+ {
2061
+ gl .uniform3fv (shaderObject .x3d_SheenColorEXT, this .sheenColorArray);
2062
+ gl .uniform1f (shaderObject .x3d_SheenRoughnessEXT, this .sheenRoughness);
2063
+
2064
+ const
2065
+ browser = this .getBrowser (),
2066
+ SheenELUTTexture = browser .getLibraryTexture ("lut_sheen_E.png"),
2067
+ SheenELUTTextureUnit = browser .getTexture2DUnit ();
2068
+
2069
+ gl .activeTexture (gl .TEXTURE0 + SheenELUTTextureUnit);
2070
+ gl .bindTexture (gl .TEXTURE_2D, SheenELUTTexture .getTexture ());
2071
+ gl .uniform1i (shaderObject .x3d_SheenELUTTextureEXT, SheenELUTTextureUnit);
2072
+
2073
+ if (!+this .getTextureBits ())
2074
+ return;
2075
+
2076
+ this .sheenColorTextureNode ?.setNamedShaderUniforms (gl,
2077
+ shaderObject,
2078
+ renderObject,
2079
+ shaderObject .x3d_SheenColorTextureEXT,
2080
+ this ._sheenColorTextureMapping .getValue (),
2081
+ textureTransformMapping,
2082
+ textureCoordinateMapping);
2083
+
2084
+ this .sheenRoughnessTextureNode ?.setNamedShaderUniforms (gl,
2085
+ shaderObject,
2086
+ renderObject,
2087
+ shaderObject .x3d_SheenRoughnessTextureEXT,
2088
+ this ._sheenRoughnessTextureMapping .getValue (),
2089
+ textureTransformMapping,
2090
+ textureCoordinateMapping);
2269
2091
  },
2092
+ });
2093
+
2094
+ Object .defineProperties (SheenMaterialExtension,
2095
+ {
2096
+ ... external_X_ITE_X3D_X3DNode_default().getStaticProperties ("SheenMaterialExtension", "X_ITE", 1, "extensions", "4.0"),
2270
2097
  fieldDefinitions:
2271
2098
  {
2272
- value: new (FieldDefinitionArray_default()) ([
2273
- new (X3DFieldDefinition_default()) ((X3DConstants_default()).inputOutput, "metadata", new (Fields_default()).SFNode ()),
2274
- new (X3DFieldDefinition_default()) ((X3DConstants_default()).inputOutput, "iridescence", new (Fields_default()).SFFloat ()),
2275
- new (X3DFieldDefinition_default()) ((X3DConstants_default()).inputOutput, "iridescenceTextureMapping", new (Fields_default()).SFString ()),
2276
- new (X3DFieldDefinition_default()) ((X3DConstants_default()).inputOutput, "iridescenceTexture", new (Fields_default()).SFNode ()),
2277
- new (X3DFieldDefinition_default()) ((X3DConstants_default()).inputOutput, "iridescenceIndexOfRefraction", new (Fields_default()).SFFloat (1.3)),
2278
- new (X3DFieldDefinition_default()) ((X3DConstants_default()).inputOutput, "iridescenceThicknessMinimum", new (Fields_default()).SFFloat (100)),
2279
- new (X3DFieldDefinition_default()) ((X3DConstants_default()).inputOutput, "iridescenceThicknessMaximum", new (Fields_default()).SFFloat (400)),
2280
- new (X3DFieldDefinition_default()) ((X3DConstants_default()).inputOutput, "iridescenceThicknessTextureMapping", new (Fields_default()).SFString ()),
2281
- new (X3DFieldDefinition_default()) ((X3DConstants_default()).inputOutput, "iridescenceThicknessTexture", new (Fields_default()).SFNode ()),
2099
+ value: new (external_X_ITE_X3D_FieldDefinitionArray_default()) ([
2100
+ new (external_X_ITE_X3D_X3DFieldDefinition_default()) ((external_X_ITE_X3D_X3DConstants_default()).inputOutput, "metadata", new (external_X_ITE_X3D_Fields_default()).SFNode ()),
2101
+ new (external_X_ITE_X3D_X3DFieldDefinition_default()) ((external_X_ITE_X3D_X3DConstants_default()).inputOutput, "sheenColor", new (external_X_ITE_X3D_Fields_default()).SFColor ()),
2102
+ new (external_X_ITE_X3D_X3DFieldDefinition_default()) ((external_X_ITE_X3D_X3DConstants_default()).inputOutput, "sheenColorTextureMapping", new (external_X_ITE_X3D_Fields_default()).SFString ()),
2103
+ new (external_X_ITE_X3D_X3DFieldDefinition_default()) ((external_X_ITE_X3D_X3DConstants_default()).inputOutput, "sheenColorTexture", new (external_X_ITE_X3D_Fields_default()).SFNode ()),
2104
+ new (external_X_ITE_X3D_X3DFieldDefinition_default()) ((external_X_ITE_X3D_X3DConstants_default()).inputOutput, "sheenRoughness", new (external_X_ITE_X3D_Fields_default()).SFFloat ()),
2105
+ new (external_X_ITE_X3D_X3DFieldDefinition_default()) ((external_X_ITE_X3D_X3DConstants_default()).inputOutput, "sheenRoughnessTextureMapping", new (external_X_ITE_X3D_Fields_default()).SFString ()),
2106
+ new (external_X_ITE_X3D_X3DFieldDefinition_default()) ((external_X_ITE_X3D_X3DConstants_default()).inputOutput, "sheenRoughnessTexture", new (external_X_ITE_X3D_Fields_default()).SFNode ()),
2282
2107
  ]),
2283
2108
  enumerable: true,
2284
2109
  },
2285
2110
  });
2286
2111
 
2287
- const IridescenceMaterialExtension_default_ = IridescenceMaterialExtension;
2112
+ const SheenMaterialExtension_default_ = SheenMaterialExtension;
2288
2113
  ;
2289
2114
 
2290
- Namespace_default().add ("IridescenceMaterialExtension", "x_ite/Components/X_ITE/IridescenceMaterialExtension", IridescenceMaterialExtension_default_);
2291
- /* harmony default export */ const X_ITE_IridescenceMaterialExtension = (IridescenceMaterialExtension_default_);
2292
- ;// CONCATENATED MODULE: ./src/x_ite/Components/X_ITE/SheenMaterialExtension.js
2115
+ /* harmony default export */ const X_ITE_SheenMaterialExtension = (external_X_ITE_X3D_Namespace_default().add ("SheenMaterialExtension", SheenMaterialExtension_default_));
2116
+ ;// CONCATENATED MODULE: external "__X_ITE_X3D__ .X3DOneSidedMaterialNode"
2117
+ const external_X_ITE_X3D_X3DOneSidedMaterialNode_namespaceObject = __X_ITE_X3D__ .X3DOneSidedMaterialNode;
2118
+ var external_X_ITE_X3D_X3DOneSidedMaterialNode_default = /*#__PURE__*/__webpack_require__.n(external_X_ITE_X3D_X3DOneSidedMaterialNode_namespaceObject);
2119
+ ;// CONCATENATED MODULE: ./src/x_ite/Components/X_ITE/SpecularGlossinessMaterial.js
2293
2120
  /*******************************************************************************
2294
2121
  *
2295
2122
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -2346,157 +2173,289 @@ Namespace_default().add ("IridescenceMaterialExtension", "x_ite/Components/X_ITE
2346
2173
 
2347
2174
 
2348
2175
 
2349
- /**
2350
- * THIS NODE IS STILL EXPERIMENTAL.
2351
- */
2176
+ /**
2177
+ * THIS NODE IS DEPRECIATED.
2178
+ */
2179
+
2180
+ function SpecularGlossinessMaterial (executionContext)
2181
+ {
2182
+ console .warn ("SpecularGlossinessMaterial is depreciated, please use PhysicalMaterial instead.");
2183
+
2184
+ external_X_ITE_X3D_X3DOneSidedMaterialNode_default().call (this, executionContext);
2185
+
2186
+ this .addType ((external_X_ITE_X3D_X3DConstants_default()).SpecularGlossinessMaterial);
2187
+
2188
+ this .materialKey = "4/";
2189
+ this .diffuseColorArray = new Float32Array (3);
2190
+ this .specularColorArray = new Float32Array (3);
2191
+ this .extensionNodes = [ ];
2192
+ }
2193
+
2194
+ Object .assign (Object .setPrototypeOf (SpecularGlossinessMaterial .prototype, (external_X_ITE_X3D_X3DOneSidedMaterialNode_default()).prototype),
2195
+ {
2196
+ initialize ()
2197
+ {
2198
+ external_X_ITE_X3D_X3DOneSidedMaterialNode_default().prototype .initialize .call (this);
2199
+
2200
+ this ._diffuseColor .addInterest ("set_diffuseColor__", this);
2201
+ this ._diffuseTexture .addInterest ("set_diffuseTexture__", this);
2202
+ this ._diffuseTexture .addInterest ("set_transparent__", this);
2203
+ this ._specularColor .addInterest ("set_specularColor__", this);
2204
+ this ._glossiness .addInterest ("set_glossiness__", this);
2205
+ this ._specularGlossinessTexture .addInterest ("set_specularGlossinessTexture__", this);
2206
+ this ._occlusionStrength .addInterest ("set_occlusionStrength__", this);
2207
+ this ._occlusionTexture .addInterest ("set_occlusionTexture__", this);
2208
+ this ._extensions .addInterest ("set_extensions__", this);
2209
+
2210
+ this .set_diffuseColor__ ();
2211
+ this .set_diffuseTexture__ ();
2212
+ this .set_specularColor__ ();
2213
+ this .set_glossiness__ ();
2214
+ this .set_specularGlossinessTexture__ ();
2215
+ this .set_occlusionStrength__ ();
2216
+ this .set_occlusionTexture__ ();
2217
+ this .set_extensions__ ();
2218
+ this .set_transparent__ ();
2219
+ },
2220
+ getMaterialKey ()
2221
+ {
2222
+ return this .materialKey;
2223
+ },
2224
+ getTextureIndices: (() =>
2225
+ {
2226
+ let i = 0;
2227
+
2228
+ const textureIndices = {
2229
+ DIFFUSE_TEXTURE: i ++,
2230
+ SPECULAR_GLOSSINESS_TEXTURE: i ++,
2231
+ EMISSIVE_TEXTURE: i ++,
2232
+ OCCLUSION_TEXTURE: i ++,
2233
+ NORMAL_TEXTURE: i ++,
2234
+ };
2235
+
2236
+ return function ()
2237
+ {
2238
+ return textureIndices;
2239
+ };
2240
+ })(),
2241
+ getBaseTexture ()
2242
+ {
2243
+ return this .diffuseTextureNode;
2244
+ },
2245
+ set_diffuseColor__ ()
2246
+ {
2247
+ //We cannot use this in Windows Edge:
2248
+ //this .diffuseColorArray .set (this ._diffuseColor .getValue ());
2352
2249
 
2353
- function SheenMaterialExtension (executionContext)
2354
- {
2355
- X_ITE_X3DMaterialExtensionNode .call (this, executionContext);
2250
+ const
2251
+ diffuseColorArray = this .diffuseColorArray,
2252
+ diffuseColor = this ._diffuseColor .getValue ();
2356
2253
 
2357
- this .addType ((X3DConstants_default()).SheenMaterialExtension);
2254
+ diffuseColorArray [0] = diffuseColor .r;
2255
+ diffuseColorArray [1] = diffuseColor .g;
2256
+ diffuseColorArray [2] = diffuseColor .b;
2257
+ },
2258
+ set_diffuseTexture__ ()
2259
+ {
2260
+ const index = this .getTextureIndices () .DIFFUSE_TEXTURE;
2358
2261
 
2359
- this .sheenColorArray = new Float32Array (3);
2360
- }
2262
+ if (this .diffuseTextureNode)
2263
+ {
2264
+ this .diffuseTextureNode ._transparent .removeInterest ("set_transparent__", this);
2265
+ this .diffuseTextureNode ._linear .removeInterest (`setTexture${index}`, this);
2266
+ }
2361
2267
 
2362
- Object .assign (Object .setPrototypeOf (SheenMaterialExtension .prototype, X_ITE_X3DMaterialExtensionNode .prototype),
2363
- {
2364
- initialize ()
2365
- {
2366
- X_ITE_X3DMaterialExtensionNode .prototype .initialize .call (this);
2268
+ this .diffuseTextureNode = external_X_ITE_X3D_X3DCast_default() ((external_X_ITE_X3D_X3DConstants_default()).X3DSingleTextureNode, this ._diffuseTexture);
2367
2269
 
2368
- this ._sheenColor .addInterest ("set_sheenColor__", this);
2369
- this ._sheenColorTexture .addInterest ("set_sheenColorTexture__", this);
2370
- this ._sheenRoughness .addInterest ("set_sheenRoughness__", this);
2371
- this ._sheenRoughnessTexture .addInterest ("set_sheenRoughnessTexture__", this);
2270
+ if (this .diffuseTextureNode)
2271
+ {
2272
+ this .diffuseTextureNode ._transparent .addInterest ("set_transparent__", this);
2273
+ this .diffuseTextureNode ._linear .addInterest (`setTexture${index}`, this, index, this .diffuseTextureNode);
2274
+ }
2372
2275
 
2373
- this .set_sheenColor__ ();
2374
- this .set_sheenColorTexture__ ();
2375
- this .set_sheenRoughness__ ();
2376
- this .set_sheenRoughnessTexture__ ();
2276
+ this .setTexture (index, this .diffuseTextureNode);
2377
2277
  },
2378
- set_sheenColor__ ()
2278
+ set_specularColor__ ()
2379
2279
  {
2380
2280
  //We cannot use this in Windows Edge:
2381
- //this .sheenColorArray .set (this ._sheenColor .getValue ());
2281
+ //this .specularColorArray .set (this ._specularColor .getValue ());
2382
2282
 
2383
2283
  const
2384
- sheenColorArray = this .sheenColorArray,
2385
- sheenColor = this ._sheenColor .getValue ();
2284
+ specularColorArray = this .specularColorArray,
2285
+ specularColor = this ._specularColor .getValue ();
2386
2286
 
2387
- sheenColorArray [0] = sheenColor .r;
2388
- sheenColorArray [1] = sheenColor .g;
2389
- sheenColorArray [2] = sheenColor .b;
2287
+ specularColorArray [0] = specularColor .r;
2288
+ specularColorArray [1] = specularColor .g;
2289
+ specularColorArray [2] = specularColor .b;
2390
2290
  },
2391
- set_sheenColorTexture__ ()
2291
+ set_glossiness__ ()
2292
+ {
2293
+ this .glossiness = external_X_ITE_X3D_Algorithm_default().clamp (this ._glossiness .getValue (), 0, 1);
2294
+ },
2295
+ set_specularGlossinessTexture__ ()
2392
2296
  {
2393
- this .sheenColorTextureNode = X3DCast_default() ((X3DConstants_default()).X3DSingleTextureNode, this ._sheenColorTexture);
2297
+ this .specularGlossinessTextureNode = external_X_ITE_X3D_X3DCast_default() ((external_X_ITE_X3D_X3DConstants_default()).X3DSingleTextureNode, this ._specularGlossinessTexture);
2394
2298
 
2395
- this .setTexture (0, this .sheenColorTextureNode);
2299
+ this .setTexture (this .getTextureIndices () .SPECULAR_GLOSSINESS_TEXTURE, this .specularGlossinessTextureNode);
2396
2300
  },
2397
- set_sheenRoughness__ ()
2301
+ set_occlusionStrength__ ()
2398
2302
  {
2399
- this .sheenRoughness = Algorithm_default().clamp (this ._sheenRoughness .getValue (), 0, 1);
2303
+ this .occlusionStrength = external_X_ITE_X3D_Algorithm_default().clamp (this ._occlusionStrength .getValue (), 0, 1);
2400
2304
  },
2401
- set_sheenRoughnessTexture__ ()
2305
+ set_occlusionTexture__ ()
2402
2306
  {
2403
- this .sheenRoughnessTextureNode = X3DCast_default() ((X3DConstants_default()).X3DSingleTextureNode, this ._sheenRoughnessTexture);
2307
+ this .occlusionTextureNode = external_X_ITE_X3D_X3DCast_default() ((external_X_ITE_X3D_X3DConstants_default()).X3DSingleTextureNode, this ._occlusionTexture);
2404
2308
 
2405
- this .setTexture (1, this .sheenRoughnessTextureNode);
2309
+ this .setTexture (this .getTextureIndices () .OCCLUSION_TEXTURE, this .occlusionTextureNode);
2406
2310
  },
2407
- getExtensionKey ()
2311
+ set_transparent__ ()
2408
2312
  {
2409
- return X_ITE_ExtensionKeys .SHEEN_MATERIAL_EXTENSION;
2313
+ this .setTransparent (this .getTransparency () ||
2314
+ this .diffuseTextureNode ?.isTransparent ());
2410
2315
  },
2411
- getShaderOptions (options)
2316
+ set_extensions__ ()
2412
2317
  {
2413
- options .push ("X3D_SHEEN_MATERIAL_EXT");
2318
+ const extensionNodes = this .extensionNodes;
2414
2319
 
2415
- if (!+this .getTextureBits ())
2416
- return;
2320
+ for (const extensionNode of extensionNodes)
2321
+ extensionNode .removeInterest ("set_extensionsKey__", this);
2417
2322
 
2418
- options .push ("X3D_MATERIAL_TEXTURES");
2323
+ extensionNodes .length = 0;
2419
2324
 
2420
- this .sheenColorTextureNode ?.getShaderOptions (options, "SHEEN_COLOR", true);
2421
- this .sheenRoughnessTextureNode ?.getShaderOptions (options, "SHEEN_ROUGHNESS", true);
2325
+ for (const node of this ._extensions)
2326
+ {
2327
+ const extensionNode = external_X_ITE_X3D_X3DCast_default() ((external_X_ITE_X3D_X3DConstants_default()).X3DMaterialExtensionNode, node);
2328
+
2329
+ if (extensionNode)
2330
+ extensionNodes .push (extensionNode);
2331
+ }
2332
+
2333
+ extensionNodes .sort ((a, b) => a .getExtensionKey () - b .getExtensionKey ());
2334
+
2335
+ for (const extensionNode of extensionNodes)
2336
+ extensionNode .addInterest ("set_extensionsKey__", this);
2337
+
2338
+ this .setTransmission (extensionNodes .some (extensionNode => extensionNode .getType () .includes ((external_X_ITE_X3D_X3DConstants_default()).TransmissionMaterialExtension)));
2339
+
2340
+ this .set_extensionsKey__ ();
2422
2341
  },
2423
- setShaderUniforms (gl, shaderObject, renderObject, textureTransformMapping, textureCoordinateMapping)
2342
+ set_extensionsKey__ ()
2424
2343
  {
2425
- gl .uniform3fv (shaderObject .x3d_SheenColorEXT, this .sheenColorArray);
2426
- gl .uniform1f (shaderObject .x3d_SheenRoughnessEXT, this .sheenRoughness);
2344
+ const extensionsKey = this .extensionNodes
2345
+ .map (extensionNode => `${extensionNode .getExtensionKey () .toString (16)}${extensionNode .getTextureBits () .toString (16)}`)
2346
+ .join ("");
2427
2347
 
2348
+ this .materialKey = `[4.${extensionsKey}]`;
2349
+ },
2350
+ createShader (key, geometryContext, renderContext)
2351
+ {
2428
2352
  const
2429
- browser = this .getBrowser (),
2430
- SheenELUTTexture = browser .getLibraryTexture ("lut_sheen_E.png"),
2431
- SheenELUTTextureUnit = browser .getTexture2DUnit ();
2353
+ browser = this .getBrowser (),
2354
+ options = this .getShaderOptions (geometryContext, renderContext);
2432
2355
 
2433
- gl .activeTexture (gl .TEXTURE0 + SheenELUTTextureUnit);
2434
- gl .bindTexture (gl .TEXTURE_2D, SheenELUTTexture .getTexture ());
2435
- gl .uniform1i (shaderObject .x3d_SheenELUTTextureEXT, SheenELUTTextureUnit);
2356
+ for (const extensionNode of this .extensionNodes)
2357
+ extensionNode .getShaderOptions (options);
2358
+
2359
+ options .push ("X3D_PHYSICAL_MATERIAL", "X3D_MATERIAL_SPECULAR_GLOSSINESS");
2360
+
2361
+ if (+this .getTextureBits ())
2362
+ {
2363
+ this .diffuseTextureNode ?.getShaderOptions (options, "DIFFUSE");
2364
+ this .specularGlossinessTextureNode ?.getShaderOptions (options, "SPECULAR_GLOSSINESS");
2365
+ this .occlusionTextureNode ?.getShaderOptions (options, "OCCLUSION");
2366
+ }
2367
+
2368
+ const shaderNode = browser .createShader ("SpecularGlossiness", "Default", "Physical", options);
2369
+
2370
+ browser .getShaders () .set (key, shaderNode);
2371
+
2372
+ return shaderNode;
2373
+ },
2374
+ setShaderUniforms (gl, shaderObject, renderObject, textureTransformMapping, textureCoordinateMapping)
2375
+ {
2376
+ external_X_ITE_X3D_X3DOneSidedMaterialNode_default().prototype .setShaderUniforms .call (this, gl, shaderObject, renderObject, textureTransformMapping, textureCoordinateMapping);
2377
+
2378
+ for (const extensionNode of this .extensionNodes)
2379
+ extensionNode .setShaderUniforms (gl, shaderObject, renderObject, textureTransformMapping, textureCoordinateMapping);
2380
+
2381
+ gl .uniform3fv (shaderObject .x3d_DiffuseColor, this .diffuseColorArray);
2382
+ gl .uniform3fv (shaderObject .x3d_SpecularColor, this .specularColorArray);
2383
+ gl .uniform1f (shaderObject .x3d_Glossiness, this .glossiness);
2436
2384
 
2437
2385
  if (!+this .getTextureBits ())
2438
2386
  return;
2439
2387
 
2440
- this .sheenColorTextureNode ?.setNamedShaderUniforms (gl,
2388
+ this .diffuseTextureNode ?.setNamedShaderUniforms (gl,
2441
2389
  shaderObject,
2442
2390
  renderObject,
2443
- shaderObject .x3d_SheenColorTextureEXT,
2444
- this ._sheenColorTextureMapping .getValue (),
2391
+ shaderObject .x3d_DiffuseTexture,
2392
+ this ._diffuseTextureMapping .getValue (),
2445
2393
  textureTransformMapping,
2446
2394
  textureCoordinateMapping);
2447
2395
 
2448
- this .sheenRoughnessTextureNode ?.setNamedShaderUniforms (gl,
2396
+ this .specularGlossinessTextureNode ?.setNamedShaderUniforms (gl,
2449
2397
  shaderObject,
2450
2398
  renderObject,
2451
- shaderObject .x3d_SheenRoughnessTextureEXT,
2452
- this ._sheenRoughnessTextureMapping .getValue (),
2399
+ shaderObject .x3d_SpecularGlossinessTexture,
2400
+ this ._specularGlossinessTextureMapping .getValue (),
2401
+ textureTransformMapping,
2402
+ textureCoordinateMapping);
2403
+
2404
+ if (this .occlusionTextureNode)
2405
+ gl .uniform1f (shaderObject .x3d_OcclusionStrength, this .occlusionStrength);
2406
+
2407
+ this .occlusionTextureNode ?.setNamedShaderUniforms (gl,
2408
+ shaderObject,
2409
+ renderObject,
2410
+ shaderObject .x3d_OcclusionTexture,
2411
+ this ._occlusionTextureMapping .getValue (),
2453
2412
  textureTransformMapping,
2454
2413
  textureCoordinateMapping);
2455
2414
  },
2456
2415
  });
2457
2416
 
2458
- Object .defineProperties (SheenMaterialExtension,
2417
+ Object .defineProperties (SpecularGlossinessMaterial,
2459
2418
  {
2460
- typeName:
2461
- {
2462
- value: "SheenMaterialExtension",
2463
- enumerable: true,
2464
- },
2465
- componentInfo:
2466
- {
2467
- value: Object .freeze ({ name: "X_ITE", level: 1 }),
2468
- enumerable: true,
2469
- },
2470
- containerField:
2471
- {
2472
- value: "extensions",
2473
- enumerable: true,
2474
- },
2475
- specificationRange:
2476
- {
2477
- value: Object .freeze ({ from: "4.0", to: "Infinity" }),
2478
- enumerable: true,
2479
- },
2419
+ ... external_X_ITE_X3D_X3DNode_default().getStaticProperties ("SpecularGlossinessMaterial", "X_ITE", 1, "material", "4.0"),
2480
2420
  fieldDefinitions:
2481
2421
  {
2482
- value: new (FieldDefinitionArray_default()) ([
2483
- new (X3DFieldDefinition_default()) ((X3DConstants_default()).inputOutput, "metadata", new (Fields_default()).SFNode ()),
2484
- new (X3DFieldDefinition_default()) ((X3DConstants_default()).inputOutput, "sheenColor", new (Fields_default()).SFColor ()),
2485
- new (X3DFieldDefinition_default()) ((X3DConstants_default()).inputOutput, "sheenColorTextureMapping", new (Fields_default()).SFString ()),
2486
- new (X3DFieldDefinition_default()) ((X3DConstants_default()).inputOutput, "sheenColorTexture", new (Fields_default()).SFNode ()),
2487
- new (X3DFieldDefinition_default()) ((X3DConstants_default()).inputOutput, "sheenRoughness", new (Fields_default()).SFFloat ()),
2488
- new (X3DFieldDefinition_default()) ((X3DConstants_default()).inputOutput, "sheenRoughnessTextureMapping", new (Fields_default()).SFString ()),
2489
- new (X3DFieldDefinition_default()) ((X3DConstants_default()).inputOutput, "sheenRoughnessTexture", new (Fields_default()).SFNode ()),
2422
+ value: new (external_X_ITE_X3D_FieldDefinitionArray_default()) ([
2423
+ new (external_X_ITE_X3D_X3DFieldDefinition_default()) ((external_X_ITE_X3D_X3DConstants_default()).inputOutput, "metadata", new (external_X_ITE_X3D_Fields_default()).SFNode ()),
2424
+ new (external_X_ITE_X3D_X3DFieldDefinition_default()) ((external_X_ITE_X3D_X3DConstants_default()).inputOutput, "diffuseColor", new (external_X_ITE_X3D_Fields_default()).SFColor (1, 1, 1)),
2425
+ new (external_X_ITE_X3D_X3DFieldDefinition_default()) ((external_X_ITE_X3D_X3DConstants_default()).inputOutput, "diffuseTextureMapping", new (external_X_ITE_X3D_Fields_default()).SFString ()),
2426
+ new (external_X_ITE_X3D_X3DFieldDefinition_default()) ((external_X_ITE_X3D_X3DConstants_default()).inputOutput, "diffuseTexture", new (external_X_ITE_X3D_Fields_default()).SFNode ()),
2427
+ new (external_X_ITE_X3D_X3DFieldDefinition_default()) ((external_X_ITE_X3D_X3DConstants_default()).inputOutput, "specularColor", new (external_X_ITE_X3D_Fields_default()).SFColor (1, 1, 1)),
2428
+ new (external_X_ITE_X3D_X3DFieldDefinition_default()) ((external_X_ITE_X3D_X3DConstants_default()).inputOutput, "glossiness", new (external_X_ITE_X3D_Fields_default()).SFFloat (1)),
2429
+ new (external_X_ITE_X3D_X3DFieldDefinition_default()) ((external_X_ITE_X3D_X3DConstants_default()).inputOutput, "specularGlossinessTextureMapping", new (external_X_ITE_X3D_Fields_default()).SFString ()),
2430
+ new (external_X_ITE_X3D_X3DFieldDefinition_default()) ((external_X_ITE_X3D_X3DConstants_default()).inputOutput, "specularGlossinessTexture", new (external_X_ITE_X3D_Fields_default()).SFNode ()),
2431
+ new (external_X_ITE_X3D_X3DFieldDefinition_default()) ((external_X_ITE_X3D_X3DConstants_default()).inputOutput, "emissiveColor", new (external_X_ITE_X3D_Fields_default()).SFColor ()),
2432
+ new (external_X_ITE_X3D_X3DFieldDefinition_default()) ((external_X_ITE_X3D_X3DConstants_default()).inputOutput, "emissiveTextureMapping", new (external_X_ITE_X3D_Fields_default()).SFString ()),
2433
+ new (external_X_ITE_X3D_X3DFieldDefinition_default()) ((external_X_ITE_X3D_X3DConstants_default()).inputOutput, "emissiveTexture", new (external_X_ITE_X3D_Fields_default()).SFNode ()),
2434
+ new (external_X_ITE_X3D_X3DFieldDefinition_default()) ((external_X_ITE_X3D_X3DConstants_default()).inputOutput, "occlusionStrength", new (external_X_ITE_X3D_Fields_default()).SFFloat (1)),
2435
+ new (external_X_ITE_X3D_X3DFieldDefinition_default()) ((external_X_ITE_X3D_X3DConstants_default()).inputOutput, "occlusionTextureMapping", new (external_X_ITE_X3D_Fields_default()).SFString ()),
2436
+ new (external_X_ITE_X3D_X3DFieldDefinition_default()) ((external_X_ITE_X3D_X3DConstants_default()).inputOutput, "occlusionTexture", new (external_X_ITE_X3D_Fields_default()).SFNode ()),
2437
+ new (external_X_ITE_X3D_X3DFieldDefinition_default()) ((external_X_ITE_X3D_X3DConstants_default()).inputOutput, "normalScale", new (external_X_ITE_X3D_Fields_default()).SFFloat (1)),
2438
+ new (external_X_ITE_X3D_X3DFieldDefinition_default()) ((external_X_ITE_X3D_X3DConstants_default()).inputOutput, "normalTextureMapping", new (external_X_ITE_X3D_Fields_default()).SFString ()),
2439
+ new (external_X_ITE_X3D_X3DFieldDefinition_default()) ((external_X_ITE_X3D_X3DConstants_default()).inputOutput, "normalTexture", new (external_X_ITE_X3D_Fields_default()).SFNode ()),
2440
+ new (external_X_ITE_X3D_X3DFieldDefinition_default()) ((external_X_ITE_X3D_X3DConstants_default()).inputOutput, "transparency", new (external_X_ITE_X3D_Fields_default()).SFFloat ()),
2441
+ new (external_X_ITE_X3D_X3DFieldDefinition_default()) ((external_X_ITE_X3D_X3DConstants_default()).inputOutput, "extensions", new (external_X_ITE_X3D_Fields_default()).MFNode ()), // experimental
2490
2442
  ]),
2491
2443
  enumerable: true,
2492
2444
  },
2493
2445
  });
2494
2446
 
2495
- const SheenMaterialExtension_default_ = SheenMaterialExtension;
2447
+ for (const index of Object .values (SpecularGlossinessMaterial .prototype .getTextureIndices ()))
2448
+ {
2449
+ SpecularGlossinessMaterial .prototype [`setTexture${index}`] = function (index, textureNode)
2450
+ {
2451
+ this .setTexture (index, textureNode);
2452
+ };
2453
+ }
2454
+
2455
+ const SpecularGlossinessMaterial_default_ = SpecularGlossinessMaterial;
2496
2456
  ;
2497
2457
 
2498
- Namespace_default().add ("SheenMaterialExtension", "x_ite/Components/X_ITE/SheenMaterialExtension", SheenMaterialExtension_default_);
2499
- /* harmony default export */ const X_ITE_SheenMaterialExtension = (SheenMaterialExtension_default_);
2458
+ /* harmony default export */ const X_ITE_SpecularGlossinessMaterial = (external_X_ITE_X3D_Namespace_default().add ("SpecularGlossinessMaterial", SpecularGlossinessMaterial_default_));
2500
2459
  ;// CONCATENATED MODULE: ./src/x_ite/Components/X_ITE/SpecularMaterialExtension.js
2501
2460
  /*******************************************************************************
2502
2461
  *
@@ -2553,6 +2512,7 @@ Namespace_default().add ("SheenMaterialExtension", "x_ite/Components/X_ITE/Sheen
2553
2512
 
2554
2513
 
2555
2514
 
2515
+
2556
2516
  /**
2557
2517
  * THIS NODE IS STILL EXPERIMENTAL.
2558
2518
  */
@@ -2561,7 +2521,7 @@ function SpecularMaterialExtension (executionContext)
2561
2521
  {
2562
2522
  X_ITE_X3DMaterialExtensionNode .call (this, executionContext);
2563
2523
 
2564
- this .addType ((X3DConstants_default()).SpecularMaterialExtension);
2524
+ this .addType ((external_X_ITE_X3D_X3DConstants_default()).SpecularMaterialExtension);
2565
2525
 
2566
2526
  this .specularColorArray = new Float32Array (3);
2567
2527
  }
@@ -2588,7 +2548,7 @@ Object .assign (Object .setPrototypeOf (SpecularMaterialExtension .prototype, X_
2588
2548
  },
2589
2549
  set_specularTexture__ ()
2590
2550
  {
2591
- this .specularTextureNode = X3DCast_default() ((X3DConstants_default()).X3DSingleTextureNode, this ._specularTexture);
2551
+ this .specularTextureNode = external_X_ITE_X3D_X3DCast_default() ((external_X_ITE_X3D_X3DConstants_default()).X3DSingleTextureNode, this ._specularTexture);
2592
2552
 
2593
2553
  this .setTexture (0, this .specularTextureNode);
2594
2554
  },
@@ -2607,7 +2567,7 @@ Object .assign (Object .setPrototypeOf (SpecularMaterialExtension .prototype, X_
2607
2567
  },
2608
2568
  set_specularColorTexture__ ()
2609
2569
  {
2610
- this .specularColorTextureNode = X3DCast_default() ((X3DConstants_default()).X3DSingleTextureNode, this ._specularColorTexture);
2570
+ this .specularColorTextureNode = external_X_ITE_X3D_X3DCast_default() ((external_X_ITE_X3D_X3DConstants_default()).X3DSingleTextureNode, this ._specularColorTexture);
2611
2571
 
2612
2572
  this .setTexture (1, this .specularColorTextureNode);
2613
2573
  },
@@ -2655,36 +2615,17 @@ Object .assign (Object .setPrototypeOf (SpecularMaterialExtension .prototype, X_
2655
2615
 
2656
2616
  Object .defineProperties (SpecularMaterialExtension,
2657
2617
  {
2658
- typeName:
2659
- {
2660
- value: "SpecularMaterialExtension",
2661
- enumerable: true,
2662
- },
2663
- componentInfo:
2664
- {
2665
- value: Object .freeze ({ name: "X_ITE", level: 1 }),
2666
- enumerable: true,
2667
- },
2668
- containerField:
2669
- {
2670
- value: "extensions",
2671
- enumerable: true,
2672
- },
2673
- specificationRange:
2674
- {
2675
- value: Object .freeze ({ from: "4.0", to: "Infinity" }),
2676
- enumerable: true,
2677
- },
2618
+ ... external_X_ITE_X3D_X3DNode_default().getStaticProperties ("SpecularMaterialExtension", "X_ITE", 1, "extensions", "4.0"),
2678
2619
  fieldDefinitions:
2679
2620
  {
2680
- value: new (FieldDefinitionArray_default()) ([
2681
- new (X3DFieldDefinition_default()) ((X3DConstants_default()).inputOutput, "metadata", new (Fields_default()).SFNode ()),
2682
- new (X3DFieldDefinition_default()) ((X3DConstants_default()).inputOutput, "specular", new (Fields_default()).SFFloat (1)),
2683
- new (X3DFieldDefinition_default()) ((X3DConstants_default()).inputOutput, "specularTextureMapping", new (Fields_default()).SFString ()),
2684
- new (X3DFieldDefinition_default()) ((X3DConstants_default()).inputOutput, "specularTexture", new (Fields_default()).SFNode ()),
2685
- new (X3DFieldDefinition_default()) ((X3DConstants_default()).inputOutput, "specularColor", new (Fields_default()).SFColor (1, 1, 1)),
2686
- new (X3DFieldDefinition_default()) ((X3DConstants_default()).inputOutput, "specularColorTextureMapping", new (Fields_default()).SFString ()),
2687
- new (X3DFieldDefinition_default()) ((X3DConstants_default()).inputOutput, "specularColorTexture", new (Fields_default()).SFNode ()),
2621
+ value: new (external_X_ITE_X3D_FieldDefinitionArray_default()) ([
2622
+ new (external_X_ITE_X3D_X3DFieldDefinition_default()) ((external_X_ITE_X3D_X3DConstants_default()).inputOutput, "metadata", new (external_X_ITE_X3D_Fields_default()).SFNode ()),
2623
+ new (external_X_ITE_X3D_X3DFieldDefinition_default()) ((external_X_ITE_X3D_X3DConstants_default()).inputOutput, "specular", new (external_X_ITE_X3D_Fields_default()).SFFloat (1)),
2624
+ new (external_X_ITE_X3D_X3DFieldDefinition_default()) ((external_X_ITE_X3D_X3DConstants_default()).inputOutput, "specularTextureMapping", new (external_X_ITE_X3D_Fields_default()).SFString ()),
2625
+ new (external_X_ITE_X3D_X3DFieldDefinition_default()) ((external_X_ITE_X3D_X3DConstants_default()).inputOutput, "specularTexture", new (external_X_ITE_X3D_Fields_default()).SFNode ()),
2626
+ new (external_X_ITE_X3D_X3DFieldDefinition_default()) ((external_X_ITE_X3D_X3DConstants_default()).inputOutput, "specularColor", new (external_X_ITE_X3D_Fields_default()).SFColor (1, 1, 1)),
2627
+ new (external_X_ITE_X3D_X3DFieldDefinition_default()) ((external_X_ITE_X3D_X3DConstants_default()).inputOutput, "specularColorTextureMapping", new (external_X_ITE_X3D_Fields_default()).SFString ()),
2628
+ new (external_X_ITE_X3D_X3DFieldDefinition_default()) ((external_X_ITE_X3D_X3DConstants_default()).inputOutput, "specularColorTexture", new (external_X_ITE_X3D_Fields_default()).SFNode ()),
2688
2629
  ]),
2689
2630
  enumerable: true,
2690
2631
  },
@@ -2693,8 +2634,7 @@ Object .defineProperties (SpecularMaterialExtension,
2693
2634
  const SpecularMaterialExtension_default_ = SpecularMaterialExtension;
2694
2635
  ;
2695
2636
 
2696
- Namespace_default().add ("SpecularMaterialExtension", "x_ite/Components/X_ITE/SpecularMaterialExtension", SpecularMaterialExtension_default_);
2697
- /* harmony default export */ const X_ITE_SpecularMaterialExtension = (SpecularMaterialExtension_default_);
2637
+ /* harmony default export */ const X_ITE_SpecularMaterialExtension = (external_X_ITE_X3D_Namespace_default().add ("SpecularMaterialExtension", SpecularMaterialExtension_default_));
2698
2638
  ;// CONCATENATED MODULE: ./src/x_ite/Components/X_ITE/TransmissionMaterialExtension.js
2699
2639
  /*******************************************************************************
2700
2640
  *
@@ -2751,6 +2691,7 @@ Namespace_default().add ("SpecularMaterialExtension", "x_ite/Components/X_ITE/Sp
2751
2691
 
2752
2692
 
2753
2693
 
2694
+
2754
2695
  /**
2755
2696
  * THIS NODE IS STILL EXPERIMENTAL.
2756
2697
  */
@@ -2759,7 +2700,7 @@ function TransmissionMaterialExtension (executionContext)
2759
2700
  {
2760
2701
  X_ITE_X3DMaterialExtensionNode .call (this, executionContext);
2761
2702
 
2762
- this .addType ((X3DConstants_default()).TransmissionMaterialExtension);
2703
+ this .addType ((external_X_ITE_X3D_X3DConstants_default()).TransmissionMaterialExtension);
2763
2704
  }
2764
2705
 
2765
2706
  Object .assign (Object .setPrototypeOf (TransmissionMaterialExtension .prototype, X_ITE_X3DMaterialExtensionNode .prototype),
@@ -2780,7 +2721,7 @@ Object .assign (Object .setPrototypeOf (TransmissionMaterialExtension .prototype
2780
2721
  },
2781
2722
  set_transmissionTexture__ ()
2782
2723
  {
2783
- this .transmissionTextureNode = X3DCast_default() ((X3DConstants_default()).X3DSingleTextureNode, this ._transmissionTexture);
2724
+ this .transmissionTextureNode = external_X_ITE_X3D_X3DCast_default() ((external_X_ITE_X3D_X3DConstants_default()).X3DSingleTextureNode, this ._transmissionTexture);
2784
2725
 
2785
2726
  this .setTexture (0, this .transmissionTextureNode);
2786
2727
  },
@@ -2828,33 +2769,14 @@ Object .assign (Object .setPrototypeOf (TransmissionMaterialExtension .prototype
2828
2769
 
2829
2770
  Object .defineProperties (TransmissionMaterialExtension,
2830
2771
  {
2831
- typeName:
2832
- {
2833
- value: "TransmissionMaterialExtension",
2834
- enumerable: true,
2835
- },
2836
- componentInfo:
2837
- {
2838
- value: Object .freeze ({ name: "X_ITE", level: 1 }),
2839
- enumerable: true,
2840
- },
2841
- containerField:
2842
- {
2843
- value: "extensions",
2844
- enumerable: true,
2845
- },
2846
- specificationRange:
2847
- {
2848
- value: Object .freeze ({ from: "4.0", to: "Infinity" }),
2849
- enumerable: true,
2850
- },
2772
+ ... external_X_ITE_X3D_X3DNode_default().getStaticProperties ("TransmissionMaterialExtension", "X_ITE", 1, "extensions", "4.0"),
2851
2773
  fieldDefinitions:
2852
2774
  {
2853
- value: new (FieldDefinitionArray_default()) ([
2854
- new (X3DFieldDefinition_default()) ((X3DConstants_default()).inputOutput, "metadata", new (Fields_default()).SFNode ()),
2855
- new (X3DFieldDefinition_default()) ((X3DConstants_default()).inputOutput, "transmission", new (Fields_default()).SFFloat ()),
2856
- new (X3DFieldDefinition_default()) ((X3DConstants_default()).inputOutput, "transmissionTextureMapping", new (Fields_default()).SFString ()),
2857
- new (X3DFieldDefinition_default()) ((X3DConstants_default()).inputOutput, "transmissionTexture", new (Fields_default()).SFNode ()),
2775
+ value: new (external_X_ITE_X3D_FieldDefinitionArray_default()) ([
2776
+ new (external_X_ITE_X3D_X3DFieldDefinition_default()) ((external_X_ITE_X3D_X3DConstants_default()).inputOutput, "metadata", new (external_X_ITE_X3D_Fields_default()).SFNode ()),
2777
+ new (external_X_ITE_X3D_X3DFieldDefinition_default()) ((external_X_ITE_X3D_X3DConstants_default()).inputOutput, "transmission", new (external_X_ITE_X3D_Fields_default()).SFFloat ()),
2778
+ new (external_X_ITE_X3D_X3DFieldDefinition_default()) ((external_X_ITE_X3D_X3DConstants_default()).inputOutput, "transmissionTextureMapping", new (external_X_ITE_X3D_Fields_default()).SFString ()),
2779
+ new (external_X_ITE_X3D_X3DFieldDefinition_default()) ((external_X_ITE_X3D_X3DConstants_default()).inputOutput, "transmissionTexture", new (external_X_ITE_X3D_Fields_default()).SFNode ()),
2858
2780
  ]),
2859
2781
  enumerable: true,
2860
2782
  },
@@ -2863,8 +2785,7 @@ Object .defineProperties (TransmissionMaterialExtension,
2863
2785
  const TransmissionMaterialExtension_default_ = TransmissionMaterialExtension;
2864
2786
  ;
2865
2787
 
2866
- Namespace_default().add ("TransmissionMaterialExtension", "x_ite/Components/X_ITE/TransmissionMaterialExtension", TransmissionMaterialExtension_default_);
2867
- /* harmony default export */ const X_ITE_TransmissionMaterialExtension = (TransmissionMaterialExtension_default_);
2788
+ /* harmony default export */ const X_ITE_TransmissionMaterialExtension = (external_X_ITE_X3D_Namespace_default().add ("TransmissionMaterialExtension", TransmissionMaterialExtension_default_));
2868
2789
  ;// CONCATENATED MODULE: ./src/x_ite/Components/X_ITE/VolumeMaterialExtension.js
2869
2790
  /*******************************************************************************
2870
2791
  *
@@ -2921,6 +2842,7 @@ Namespace_default().add ("TransmissionMaterialExtension", "x_ite/Components/X_IT
2921
2842
 
2922
2843
 
2923
2844
 
2845
+
2924
2846
  /**
2925
2847
  * THIS NODE IS STILL EXPERIMENTAL.
2926
2848
  */
@@ -2929,7 +2851,7 @@ function VolumeMaterialExtension (executionContext)
2929
2851
  {
2930
2852
  X_ITE_X3DMaterialExtensionNode .call (this, executionContext);
2931
2853
 
2932
- this .addType ((X3DConstants_default()).VolumeMaterialExtension);
2854
+ this .addType ((external_X_ITE_X3D_X3DConstants_default()).VolumeMaterialExtension);
2933
2855
 
2934
2856
  this .attenuationColorArray = new Float32Array (3);
2935
2857
  }
@@ -2956,7 +2878,7 @@ Object .assign (Object .setPrototypeOf (VolumeMaterialExtension .prototype, X_IT
2956
2878
  },
2957
2879
  set_thicknessTexture__ ()
2958
2880
  {
2959
- this .thicknessTextureNode = X3DCast_default() ((X3DConstants_default()).X3DSingleTextureNode, this ._thicknessTexture);
2881
+ this .thicknessTextureNode = external_X_ITE_X3D_X3DCast_default() ((external_X_ITE_X3D_X3DConstants_default()).X3DSingleTextureNode, this ._thicknessTexture);
2960
2882
 
2961
2883
  this .setTexture (0, this .thicknessTextureNode);
2962
2884
  },
@@ -3013,35 +2935,16 @@ Object .assign (Object .setPrototypeOf (VolumeMaterialExtension .prototype, X_IT
3013
2935
 
3014
2936
  Object .defineProperties (VolumeMaterialExtension,
3015
2937
  {
3016
- typeName:
3017
- {
3018
- value: "VolumeMaterialExtension",
3019
- enumerable: true,
3020
- },
3021
- componentInfo:
3022
- {
3023
- value: Object .freeze ({ name: "X_ITE", level: 1 }),
3024
- enumerable: true,
3025
- },
3026
- containerField:
3027
- {
3028
- value: "extensions",
3029
- enumerable: true,
3030
- },
3031
- specificationRange:
3032
- {
3033
- value: Object .freeze ({ from: "4.0", to: "Infinity" }),
3034
- enumerable: true,
3035
- },
2938
+ ... external_X_ITE_X3D_X3DNode_default().getStaticProperties ("VolumeMaterialExtension", "X_ITE", 1, "extensions", "4.0"),
3036
2939
  fieldDefinitions:
3037
2940
  {
3038
- value: new (FieldDefinitionArray_default()) ([
3039
- new (X3DFieldDefinition_default()) ((X3DConstants_default()).inputOutput, "metadata", new (Fields_default()).SFNode ()),
3040
- new (X3DFieldDefinition_default()) ((X3DConstants_default()).inputOutput, "thickness", new (Fields_default()).SFFloat ()),
3041
- new (X3DFieldDefinition_default()) ((X3DConstants_default()).inputOutput, "thicknessTextureMapping", new (Fields_default()).SFString ()),
3042
- new (X3DFieldDefinition_default()) ((X3DConstants_default()).inputOutput, "thicknessTexture", new (Fields_default()).SFNode ()),
3043
- new (X3DFieldDefinition_default()) ((X3DConstants_default()).inputOutput, "attenuationDistance", new (Fields_default()).SFFloat (1_000_000)),
3044
- new (X3DFieldDefinition_default()) ((X3DConstants_default()).inputOutput, "attenuationColor", new (Fields_default()).SFColor (1, 1, 1)),
2941
+ value: new (external_X_ITE_X3D_FieldDefinitionArray_default()) ([
2942
+ new (external_X_ITE_X3D_X3DFieldDefinition_default()) ((external_X_ITE_X3D_X3DConstants_default()).inputOutput, "metadata", new (external_X_ITE_X3D_Fields_default()).SFNode ()),
2943
+ new (external_X_ITE_X3D_X3DFieldDefinition_default()) ((external_X_ITE_X3D_X3DConstants_default()).inputOutput, "thickness", new (external_X_ITE_X3D_Fields_default()).SFFloat ()),
2944
+ new (external_X_ITE_X3D_X3DFieldDefinition_default()) ((external_X_ITE_X3D_X3DConstants_default()).inputOutput, "thicknessTextureMapping", new (external_X_ITE_X3D_Fields_default()).SFString ()),
2945
+ new (external_X_ITE_X3D_X3DFieldDefinition_default()) ((external_X_ITE_X3D_X3DConstants_default()).inputOutput, "thicknessTexture", new (external_X_ITE_X3D_Fields_default()).SFNode ()),
2946
+ new (external_X_ITE_X3D_X3DFieldDefinition_default()) ((external_X_ITE_X3D_X3DConstants_default()).inputOutput, "attenuationDistance", new (external_X_ITE_X3D_Fields_default()).SFFloat (1_000_000)),
2947
+ new (external_X_ITE_X3D_X3DFieldDefinition_default()) ((external_X_ITE_X3D_X3DConstants_default()).inputOutput, "attenuationColor", new (external_X_ITE_X3D_Fields_default()).SFColor (1, 1, 1)),
3045
2948
  ]),
3046
2949
  enumerable: true,
3047
2950
  },
@@ -3050,9 +2953,8 @@ Object .defineProperties (VolumeMaterialExtension,
3050
2953
  const VolumeMaterialExtension_default_ = VolumeMaterialExtension;
3051
2954
  ;
3052
2955
 
3053
- Namespace_default().add ("VolumeMaterialExtension", "x_ite/Components/X_ITE/VolumeMaterialExtension", VolumeMaterialExtension_default_);
3054
- /* harmony default export */ const X_ITE_VolumeMaterialExtension = (VolumeMaterialExtension_default_);
3055
- ;// CONCATENATED MODULE: ./src/assets/components/X_ITE.js
2956
+ /* harmony default export */ const X_ITE_VolumeMaterialExtension = (external_X_ITE_X3D_Namespace_default().add ("VolumeMaterialExtension", VolumeMaterialExtension_default_));
2957
+ ;// CONCATENATED MODULE: ./src/assets/components/X_ITEComponent.js
3056
2958
  /*******************************************************************************
3057
2959
  *
3058
2960
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -3117,21 +3019,23 @@ Namespace_default().add ("VolumeMaterialExtension", "x_ite/Components/X_ITE/Volu
3117
3019
 
3118
3020
 
3119
3021
 
3120
- Components_default().add ({
3022
+
3023
+ external_X_ITE_X3D_Components_default().add ({
3121
3024
  name: "X_ITE",
3122
3025
  concreteNodes:
3123
3026
  [
3124
- X_ITE_BlendMode,
3125
- X_ITE_DepthMode,
3126
- X_ITE_InstancedShape,
3127
- X_ITE_SpecularGlossinessMaterial,
3128
3027
  X_ITE_AnisotropyMaterialExtension,
3028
+ X_ITE_BlendMode,
3129
3029
  X_ITE_ClearcoatMaterialExtension,
3030
+ X_ITE_DepthMode,
3031
+ X_ITE_DiffuseTransmissionMaterialExtension,
3130
3032
  X_ITE_DispersionMaterialExtension,
3131
3033
  X_ITE_EmissiveStrengthMaterialExtension,
3034
+ X_ITE_InstancedShape,
3132
3035
  X_ITE_IORMaterialExtension,
3133
3036
  X_ITE_IridescenceMaterialExtension,
3134
3037
  X_ITE_SheenMaterialExtension,
3038
+ X_ITE_SpecularGlossinessMaterial,
3135
3039
  X_ITE_SpecularMaterialExtension,
3136
3040
  X_ITE_TransmissionMaterialExtension,
3137
3041
  X_ITE_VolumeMaterialExtension,
@@ -3142,10 +3046,9 @@ Components_default().add ({
3142
3046
  ],
3143
3047
  });
3144
3048
 
3145
- const X_ITE_default_ = undefined;
3049
+ const X_ITEComponent_default_ = undefined;
3146
3050
  ;
3147
3051
 
3148
- Namespace_default().add ("X_ITE", "assets/components/X_ITE", X_ITE_default_);
3149
- /* harmony default export */ const X_ITE = ((/* unused pure expression or super */ null && (X_ITE_default_)));
3052
+ /* harmony default export */ const X_ITEComponent = (external_X_ITE_X3D_Namespace_default().add ("X_ITEComponent", X_ITEComponent_default_));
3150
3053
  /******/ })()
3151
3054
  ;