x_ite 8.8.3 → 8.8.4

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 (246) hide show
  1. package/dist/assets/components/Annotation.js +13 -13
  2. package/dist/assets/components/Annotation.min.js +1 -1
  3. package/dist/assets/components/CADGeometry.js +13 -13
  4. package/dist/assets/components/CADGeometry.min.js +1 -1
  5. package/dist/assets/components/CubeMapTexturing.js +29 -29
  6. package/dist/assets/components/CubeMapTexturing.min.js +1 -1
  7. package/dist/assets/components/DIS.js +13 -13
  8. package/dist/assets/components/DIS.min.js +1 -1
  9. package/dist/assets/components/EventUtilities.js +9 -9
  10. package/dist/assets/components/EventUtilities.min.js +1 -1
  11. package/dist/assets/components/Geometry2D.js +22 -22
  12. package/dist/assets/components/Geometry2D.min.js +1 -1
  13. package/dist/assets/components/Geospatial.js +48 -48
  14. package/dist/assets/components/Geospatial.min.js +1 -1
  15. package/dist/assets/components/HAnim.js +19 -19
  16. package/dist/assets/components/HAnim.min.js +1 -1
  17. package/dist/assets/components/KeyDeviceSensor.js +8 -8
  18. package/dist/assets/components/KeyDeviceSensor.min.js +1 -1
  19. package/dist/assets/components/Layout.js +32 -32
  20. package/dist/assets/components/Layout.min.js +1 -1
  21. package/dist/assets/components/NURBS.js +35 -35
  22. package/dist/assets/components/NURBS.min.js +1 -1
  23. package/dist/assets/components/ParticleSystems.js +33 -33
  24. package/dist/assets/components/ParticleSystems.min.js +1 -1
  25. package/dist/assets/components/Picking.js +32 -35
  26. package/dist/assets/components/Picking.min.js +1 -1
  27. package/dist/assets/components/RigidBodyPhysics.js +47 -56
  28. package/dist/assets/components/RigidBodyPhysics.min.js +1 -1
  29. package/dist/assets/components/Scripting.js +38 -45
  30. package/dist/assets/components/Scripting.min.js +1 -1
  31. package/dist/assets/components/Text.js +26 -26
  32. package/dist/assets/components/Text.min.js +1 -1
  33. package/dist/assets/components/TextureProjector.js +16 -16
  34. package/dist/assets/components/TextureProjector.min.js +1 -1
  35. package/dist/assets/components/Texturing3D.js +37 -37
  36. package/dist/assets/components/Texturing3D.min.js +1 -1
  37. package/dist/assets/components/VolumeRendering.js +18 -18
  38. package/dist/assets/components/VolumeRendering.min.js +1 -1
  39. package/dist/assets/components/X_ITE.js +9 -9
  40. package/dist/assets/components/X_ITE.min.js +1 -1
  41. package/dist/x_ite.css +1 -1
  42. package/dist/x_ite.js +1762 -1827
  43. package/dist/x_ite.min.js +1 -1
  44. package/dist/x_ite.zip +0 -0
  45. package/docs/_config.yml +1 -1
  46. package/package.json +2 -2
  47. package/src/bookmarks.js +1 -1
  48. package/src/lib/jquery.js +8 -0
  49. package/src/lib/nurbs/src/utils/create-accessors.js +4 -4
  50. package/src/lib/nurbs/src/utils/variable.js +1 -1
  51. package/src/shim.js +1 -1
  52. package/src/standard/Math/Algorithms/Bezier.js +2 -2
  53. package/src/standard/Math/Geometry/Box2.js +4 -4
  54. package/src/standard/Math/Geometry/Box3.js +8 -8
  55. package/src/standard/Math/Geometry/Camera.js +1 -1
  56. package/src/standard/Math/Geometry/Line2.js +2 -2
  57. package/src/standard/Math/Geometry/Line3.js +4 -4
  58. package/src/standard/Math/Geometry/Sphere3.js +1 -1
  59. package/src/standard/Math/Geometry/Triangle3.js +2 -2
  60. package/src/standard/Math/Geometry/ViewVolume.js +10 -10
  61. package/src/standard/Math/Numbers/Matrix2.js +2 -2
  62. package/src/standard/Math/Numbers/Matrix3.js +10 -10
  63. package/src/standard/Math/Numbers/Matrix4.js +12 -12
  64. package/src/standard/Math/Numbers/Quaternion.js +2 -2
  65. package/src/standard/Math/Numbers/Rotation4.js +2 -2
  66. package/src/standard/Math/Numbers/Vector3.js +1 -1
  67. package/src/standard/Utility/MapUtilities.js +2 -2
  68. package/src/x_ite/Base/Events.js +6 -33
  69. package/src/x_ite/Base/FieldArray.js +1 -1
  70. package/src/x_ite/Base/FieldDefinitionArray.js +1 -1
  71. package/src/x_ite/Base/X3DArrayField.js +1 -1
  72. package/src/x_ite/Base/X3DBaseNode.js +58 -69
  73. package/src/x_ite/Base/X3DChildObject.js +46 -14
  74. package/src/x_ite/Base/X3DConstants.js +1 -1
  75. package/src/x_ite/Base/X3DField.js +4 -6
  76. package/src/x_ite/Base/X3DFieldDefinition.js +1 -1
  77. package/src/x_ite/Base/X3DInfoArray.js +1 -1
  78. package/src/x_ite/Base/X3DObject.js +5 -5
  79. package/src/x_ite/Base/X3DObjectArrayField.js +1 -1
  80. package/src/x_ite/Base/X3DTypedArrayField.js +1 -1
  81. package/src/x_ite/Browser/Core/BrowserOptions.js +7 -3
  82. package/src/x_ite/Browser/Core/BrowserTimings.js +1 -1
  83. package/src/x_ite/Browser/Core/ContextMenu.js +1 -12
  84. package/src/x_ite/Browser/Core/X3DCoreContext.js +1 -2
  85. package/src/x_ite/Browser/Geometry2D/Disk2DOptions.js +1 -1
  86. package/src/x_ite/Browser/Interpolation/CatmullRomSplineInterpolator.js +2 -2
  87. package/src/x_ite/Browser/Interpolation/CatmullRomSplineInterpolatorTemplate.js +1 -1
  88. package/src/x_ite/Browser/Interpolation/SquatInterpolator.js +1 -1
  89. package/src/x_ite/Browser/Layout/ScreenText.js +4 -4
  90. package/src/x_ite/Browser/Layout/X3DLayoutContext.js +1 -1
  91. package/src/x_ite/Browser/NURBS/NURBS.js +3 -3
  92. package/src/x_ite/Browser/Navigation/ExamineViewer.js +9 -13
  93. package/src/x_ite/Browser/Navigation/LookAtViewer.js +4 -7
  94. package/src/x_ite/Browser/Navigation/WalkViewer.js +1 -1
  95. package/src/x_ite/Browser/Navigation/X3DFlyViewer.js +5 -6
  96. package/src/x_ite/Browser/Navigation/X3DViewer.js +2 -2
  97. package/src/x_ite/Browser/Networking/URLs.js +17 -9
  98. package/src/x_ite/Browser/Networking/X3DNetworkingContext.js +0 -2
  99. package/src/x_ite/Browser/Picking/VolumePicker.js +2 -2
  100. package/src/x_ite/Browser/Text/PolygonText.js +2 -2
  101. package/src/x_ite/Browser/Texturing3D/DICOMParser.js +3 -3
  102. package/src/x_ite/Browser/Texturing3D/NRRDParser.js +2 -2
  103. package/src/x_ite/Browser/Time/X3DTimeContext.js +1 -1
  104. package/src/x_ite/Browser/VERSION.js +1 -1
  105. package/src/x_ite/Browser/X3DBrowser.js +148 -67
  106. package/src/x_ite/Browser/X3DBrowserContext.js +52 -16
  107. package/src/x_ite/Components/Core/X3DNode.js +21 -2
  108. package/src/x_ite/Components/Core/X3DPrototypeInstance.js +38 -42
  109. package/src/x_ite/Components/CubeMapTexturing/GeneratedCubeMapTexture.js +2 -2
  110. package/src/x_ite/Components/CubeMapTexturing/X3DEnvironmentTextureNode.js +1 -1
  111. package/src/x_ite/Components/EnvironmentalEffects/X3DBackgroundNode.js +4 -4
  112. package/src/x_ite/Components/EnvironmentalEffects/X3DFogObject.js +1 -1
  113. package/src/x_ite/Components/EnvironmentalSensor/ProximitySensor.js +2 -2
  114. package/src/x_ite/Components/EnvironmentalSensor/TransformSensor.js +2 -2
  115. package/src/x_ite/Components/EnvironmentalSensor/VisibilitySensor.js +1 -1
  116. package/src/x_ite/Components/Followers/X3DFollowerNode.js +1 -1
  117. package/src/x_ite/Components/Geometry2D/ArcClose2D.js +1 -1
  118. package/src/x_ite/Components/Geometry2D/Rectangle2D.js +1 -1
  119. package/src/x_ite/Components/Geometry3D/Box.js +1 -1
  120. package/src/x_ite/Components/Geometry3D/Extrusion.js +3 -3
  121. package/src/x_ite/Components/Geometry3D/IndexedFaceSet.js +3 -3
  122. package/src/x_ite/Components/Geospatial/GeoCoordinate.js +6 -6
  123. package/src/x_ite/Components/Geospatial/GeoPositionInterpolator.js +1 -1
  124. package/src/x_ite/Components/Geospatial/GeoTouchSensor.js +1 -1
  125. package/src/x_ite/Components/Geospatial/GeoViewpoint.js +7 -7
  126. package/src/x_ite/Components/Grouping/StaticGroup.js +1 -1
  127. package/src/x_ite/Components/Grouping/X3DBoundedObject.js +2 -2
  128. package/src/x_ite/Components/HAnim/HAnimHumanoid.js +1 -1
  129. package/src/x_ite/Components/Interpolation/ColorInterpolator.js +1 -1
  130. package/src/x_ite/Components/Interpolation/NormalInterpolator.js +1 -1
  131. package/src/x_ite/Components/Interpolation/OrientationInterpolator.js +1 -1
  132. package/src/x_ite/Components/Interpolation/PositionInterpolator.js +1 -1
  133. package/src/x_ite/Components/Interpolation/PositionInterpolator2D.js +1 -1
  134. package/src/x_ite/Components/Layering/X3DLayerNode.js +1 -1
  135. package/src/x_ite/Components/Lighting/X3DLightNode.js +1 -1
  136. package/src/x_ite/Components/NURBS/NurbsSurfaceInterpolator.js +1 -1
  137. package/src/x_ite/Components/NURBS/X3DNurbsSurfaceGeometryNode.js +2 -2
  138. package/src/x_ite/Components/Navigation/Billboard.js +1 -1
  139. package/src/x_ite/Components/Navigation/LOD.js +2 -2
  140. package/src/x_ite/Components/Navigation/OrthoViewpoint.js +1 -1
  141. package/src/x_ite/Components/Navigation/Viewpoint.js +1 -1
  142. package/src/x_ite/Components/Navigation/X3DViewpointNode.js +3 -3
  143. package/src/x_ite/Components/Networking/Inline.js +0 -4
  144. package/src/x_ite/Components/ParticleSystems/ForcePhysicsModel.js +1 -1
  145. package/src/x_ite/Components/ParticleSystems/ParticleSystem.js +2 -2
  146. package/src/x_ite/Components/ParticleSystems/PointEmitter.js +1 -1
  147. package/src/x_ite/Components/ParticleSystems/PolylineEmitter.js +2 -2
  148. package/src/x_ite/Components/ParticleSystems/SurfaceEmitter.js +1 -1
  149. package/src/x_ite/Components/ParticleSystems/VolumeEmitter.js +2 -2
  150. package/src/x_ite/Components/ParticleSystems/WindPhysicsModel.js +1 -1
  151. package/src/x_ite/Components/Picking/LinePickSensor.js +1 -1
  152. package/src/x_ite/Components/Picking/PickableGroup.js +1 -1
  153. package/src/x_ite/Components/Picking/PointPickSensor.js +2 -2
  154. package/src/x_ite/Components/Picking/PrimitivePickSensor.js +1 -1
  155. package/src/x_ite/Components/Picking/VolumePickSensor.js +1 -1
  156. package/src/x_ite/Components/Picking/X3DPickSensorNode.js +6 -9
  157. package/src/x_ite/Components/PointingDeviceSensor/X3DTouchSensorNode.js +1 -1
  158. package/src/x_ite/Components/Rendering/X3DComposedGeometryNode.js +1 -1
  159. package/src/x_ite/Components/Rendering/X3DCoordinateNode.js +2 -2
  160. package/src/x_ite/Components/Rendering/X3DGeometryNode.js +8 -11
  161. package/src/x_ite/Components/Rendering/X3DLineGeometryNode.js +2 -2
  162. package/src/x_ite/Components/RigidBodyPhysics/BallJoint.js +2 -2
  163. package/src/x_ite/Components/RigidBodyPhysics/CollidableShape.js +3 -3
  164. package/src/x_ite/Components/RigidBodyPhysics/CollisionCollection.js +1 -1
  165. package/src/x_ite/Components/RigidBodyPhysics/CollisionSensor.js +5 -14
  166. package/src/x_ite/Components/RigidBodyPhysics/DoubleAxisHingeJoint.js +3 -3
  167. package/src/x_ite/Components/RigidBodyPhysics/RigidBody.js +9 -9
  168. package/src/x_ite/Components/RigidBodyPhysics/RigidBodyCollection.js +1 -1
  169. package/src/x_ite/Components/RigidBodyPhysics/SingleAxisHingeJoint.js +3 -3
  170. package/src/x_ite/Components/RigidBodyPhysics/SliderJoint.js +1 -1
  171. package/src/x_ite/Components/RigidBodyPhysics/X3DNBodyCollidableNode.js +1 -1
  172. package/src/x_ite/Components/Scripting/Script.js +1 -8
  173. package/src/x_ite/Components/Shaders/ShaderPart.js +2 -2
  174. package/src/x_ite/Components/Shaders/X3DProgrammableShaderObject.js +385 -382
  175. package/src/x_ite/Components/Shape/Appearance.js +1 -1
  176. package/src/x_ite/Components/Shape/Material.js +1 -1
  177. package/src/x_ite/Components/Shape/PhysicalMaterial.js +1 -1
  178. package/src/x_ite/Components/Shape/X3DOneSidedMaterialNode.js +1 -1
  179. package/src/x_ite/Components/Sound/Sound.js +2 -2
  180. package/src/x_ite/Components/TextureProjector/X3DTextureProjectorNode.js +2 -2
  181. package/src/x_ite/Components/Texturing/MultiTexture.js +3 -3
  182. package/src/x_ite/Components/Texturing/TextureCoordinateGenerator.js +1 -1
  183. package/src/x_ite/Components/Texturing/TextureProperties.js +4 -4
  184. package/src/x_ite/Components/Texturing/TextureTransform.js +1 -1
  185. package/src/x_ite/Components/Texturing/X3DSingleTextureNode.js +2 -2
  186. package/src/x_ite/Components/Texturing3D/PixelTexture3D.js +1 -1
  187. package/src/x_ite/Components/Texturing3D/TextureTransform3D.js +1 -1
  188. package/src/x_ite/Components.js +1 -20
  189. package/src/x_ite/Configuration/AbstractNodesArray.js +1 -1
  190. package/src/x_ite/Configuration/ComponentInfo.js +1 -1
  191. package/src/x_ite/Configuration/ComponentInfoArray.js +1 -1
  192. package/src/x_ite/Configuration/ConcreteNodesArray.js +1 -1
  193. package/src/x_ite/Configuration/ProfileInfo.js +1 -1
  194. package/src/x_ite/Configuration/ProfileInfoArray.js +1 -1
  195. package/src/x_ite/Configuration/UnitInfo.js +1 -1
  196. package/src/x_ite/Configuration/UnitInfoArray.js +1 -1
  197. package/src/x_ite/Execution/BindableList.js +1 -1
  198. package/src/x_ite/Execution/BindableStack.js +1 -1
  199. package/src/x_ite/Execution/ExportedNodesArray.js +1 -1
  200. package/src/x_ite/Execution/ImportedNodesArray.js +1 -1
  201. package/src/x_ite/Execution/NamedNodesArray.js +1 -1
  202. package/src/x_ite/Execution/X3DExecutionContext.js +9 -11
  203. package/src/x_ite/Execution/X3DExportedNode.js +1 -1
  204. package/src/x_ite/Execution/X3DImportedNode.js +1 -1
  205. package/src/x_ite/Execution/X3DScene.js +2 -6
  206. package/src/x_ite/Execution/X3DWorld.js +1 -2
  207. package/src/x_ite/{Browser/Networking/Features.js → Features.js} +9 -2
  208. package/src/x_ite/Fields/ArrayFields.js +9 -51
  209. package/src/x_ite/Fields/SFBool.js +1 -1
  210. package/src/x_ite/Fields/SFColor.js +2 -2
  211. package/src/x_ite/Fields/SFColorRGBA.js +2 -2
  212. package/src/x_ite/Fields/SFDouble.js +1 -1
  213. package/src/x_ite/Fields/SFFloat.js +1 -1
  214. package/src/x_ite/Fields/SFImage.js +2 -2
  215. package/src/x_ite/Fields/SFInt32.js +1 -1
  216. package/src/x_ite/Fields/SFMatrix3.js +1 -1
  217. package/src/x_ite/Fields/SFMatrix4.js +1 -1
  218. package/src/x_ite/Fields/SFNode.js +3 -25
  219. package/src/x_ite/Fields/SFNodeCache.js +24 -3
  220. package/src/x_ite/Fields/SFRotation.js +1 -1
  221. package/src/x_ite/Fields/SFString.js +1 -1
  222. package/src/x_ite/Fields/SFTime.js +1 -1
  223. package/src/x_ite/Fields/SFVec2.js +1 -1
  224. package/src/x_ite/Fields/SFVec3.js +1 -1
  225. package/src/x_ite/Fields/SFVec4.js +1 -1
  226. package/src/x_ite/InputOutput/FileLoader.js +1 -1
  227. package/src/x_ite/InputOutput/Generator.js +8 -8
  228. package/src/x_ite/Parser/GLTF2Parser.js +5 -5
  229. package/src/x_ite/Parser/HTMLSupport.js +3 -0
  230. package/src/x_ite/Parser/SVGParser.js +2 -2
  231. package/src/x_ite/Parser/VRMLParser.js +1 -1
  232. package/src/x_ite/Parser/XMLParser.js +1 -1
  233. package/src/x_ite/Prototype/ExternProtoDeclarationArray.js +1 -1
  234. package/src/x_ite/Prototype/ProtoDeclarationArray.js +1 -1
  235. package/src/x_ite/Prototype/X3DExternProtoDeclaration.js +1 -3
  236. package/src/x_ite/Prototype/X3DProtoDeclaration.js +1 -2
  237. package/src/x_ite/Prototype/X3DProtoDeclarationNode.js +1 -2
  238. package/src/x_ite/Rendering/DependentRenderer.js +1 -1
  239. package/src/x_ite/Rendering/TextureBuffer.js +2 -2
  240. package/src/x_ite/Rendering/X3DRenderObject.js +11 -11
  241. package/src/x_ite/Routing/RouteArray.js +1 -1
  242. package/src/x_ite/Routing/X3DRoute.js +1 -1
  243. package/src/x_ite/X3D.js +2 -2
  244. package/src/x_ite.html +3 -3
  245. package/x_ite.min.html +3 -3
  246. package/src/x_ite/Base/X3DEventObject.js +0 -115
@@ -421,112 +421,115 @@ Object .assign (X3DProgrammableShaderObject .prototype,
421
421
 
422
422
  for (const field of this .getUserDefinedFields ())
423
423
  {
424
+ if (field .getAccessType () === X3DConstants .outputOnly)
425
+ continue;
426
+
424
427
  const location = gl .getUniformLocation (program, field .getName ());
425
428
 
426
- if (location)
429
+ if (!location)
430
+ continue;
431
+
432
+ switch (field .getType ())
427
433
  {
428
- switch (field .getType ())
434
+ case X3DConstants .SFImage:
429
435
  {
430
- case X3DConstants .SFImage:
431
- {
432
- location .array = new Int32Array (3 + field .array .length);
433
- break;
434
- }
435
- case X3DConstants .SFMatrix3d:
436
- case X3DConstants .SFMatrix3f:
437
- case X3DConstants .SFRotation:
438
- {
439
- location .array = new Float32Array (9);
440
- break;
441
- }
442
- case X3DConstants .SFMatrix4d:
443
- case X3DConstants .SFMatrix4f:
444
- {
445
- location .array = new Float32Array (16);
446
- break;
447
- }
448
- case X3DConstants .SFNode:
449
- {
450
- break;
451
- }
452
- case X3DConstants .MFBool:
453
- case X3DConstants .MFInt32:
454
- {
455
- location .array = new Int32Array (this .getLocationLength (gl, program, field));
456
- break;
457
- }
458
- case X3DConstants .MFFloat:
459
- case X3DConstants .MFDouble:
460
- case X3DConstants .MFTime:
461
- {
462
- location .array = new Float32Array (this .getLocationLength (gl, program, field));
463
- break;
464
- }
465
- case X3DConstants .MFImage:
466
- {
467
- location .array = new Int32Array (this .getImagesLength (field));
468
- break;
469
- }
470
- case X3DConstants .MFMatrix3d:
471
- case X3DConstants .MFMatrix3f:
472
- case X3DConstants .MFRotation:
473
- {
474
- location .array = new Float32Array (9 * this .getLocationLength (gl, program, field));
475
- break;
476
- }
477
- case X3DConstants .MFMatrix4d:
478
- case X3DConstants .MFMatrix4f:
479
- {
480
- location .array = new Float32Array (16 * this .getLocationLength (gl, program, field));
481
- break;
482
- }
483
- case X3DConstants .MFNode:
484
- {
485
- const locations = location .locations = [ ];
486
-
487
- for (let i = 0;; ++ i)
488
- {
489
- const l = gl .getUniformLocation (program, field .getName () + "[" + i + "]");
436
+ location .array = new Int32Array (3 + field .array .length);
437
+ break;
438
+ }
439
+ case X3DConstants .SFMatrix3d:
440
+ case X3DConstants .SFMatrix3f:
441
+ case X3DConstants .SFRotation:
442
+ {
443
+ location .array = new Float32Array (9);
444
+ break;
445
+ }
446
+ case X3DConstants .SFMatrix4d:
447
+ case X3DConstants .SFMatrix4f:
448
+ {
449
+ location .array = new Float32Array (16);
450
+ break;
451
+ }
452
+ case X3DConstants .SFNode:
453
+ {
454
+ break;
455
+ }
456
+ case X3DConstants .MFBool:
457
+ case X3DConstants .MFInt32:
458
+ {
459
+ location .array = new Int32Array (this .getLocationLength (gl, program, field));
460
+ break;
461
+ }
462
+ case X3DConstants .MFFloat:
463
+ case X3DConstants .MFDouble:
464
+ case X3DConstants .MFTime:
465
+ {
466
+ location .array = new Float32Array (this .getLocationLength (gl, program, field));
467
+ break;
468
+ }
469
+ case X3DConstants .MFImage:
470
+ {
471
+ location .array = new Int32Array (this .getImagesLength (field));
472
+ break;
473
+ }
474
+ case X3DConstants .MFMatrix3d:
475
+ case X3DConstants .MFMatrix3f:
476
+ case X3DConstants .MFRotation:
477
+ {
478
+ location .array = new Float32Array (9 * this .getLocationLength (gl, program, field));
479
+ break;
480
+ }
481
+ case X3DConstants .MFMatrix4d:
482
+ case X3DConstants .MFMatrix4f:
483
+ {
484
+ location .array = new Float32Array (16 * this .getLocationLength (gl, program, field));
485
+ break;
486
+ }
487
+ case X3DConstants .MFNode:
488
+ {
489
+ const locations = location .locations = [ ];
490
490
 
491
- if (! l)
492
- break;
491
+ for (let i = 0;; ++ i)
492
+ {
493
+ const l = gl .getUniformLocation (program, field .getName () + "[" + i + "]");
493
494
 
494
- locations .push (l);
495
- }
495
+ if (! l)
496
+ break;
496
497
 
497
- break;
498
- }
499
- case X3DConstants .MFVec2d:
500
- case X3DConstants .MFVec2f:
501
- {
502
- location .array = new Float32Array (2 * this .getLocationLength (gl, program, field));
503
- break;
504
- }
505
- case X3DConstants .MFVec3d:
506
- case X3DConstants .MFVec3f:
507
- case X3DConstants .MFColor:
508
- {
509
- location .array = new Float32Array (3 * this .getLocationLength (gl, program, field));
510
- break;
511
- }
512
- case X3DConstants .MFVec4d:
513
- case X3DConstants .MFVec4f:
514
- case X3DConstants .MFColorRGBA:
515
- {
516
- location .array = new Float32Array (4 * this .getLocationLength (gl, program, field));
517
- break;
498
+ locations .push (l);
518
499
  }
500
+
501
+ break;
502
+ }
503
+ case X3DConstants .MFVec2d:
504
+ case X3DConstants .MFVec2f:
505
+ {
506
+ location .array = new Float32Array (2 * this .getLocationLength (gl, program, field));
507
+ break;
519
508
  }
509
+ case X3DConstants .MFVec3d:
510
+ case X3DConstants .MFVec3f:
511
+ case X3DConstants .MFColor:
512
+ {
513
+ location .array = new Float32Array (3 * this .getLocationLength (gl, program, field));
514
+ break;
515
+ }
516
+ case X3DConstants .MFVec4d:
517
+ case X3DConstants .MFVec4f:
518
+ case X3DConstants .MFColorRGBA:
519
+ {
520
+ location .array = new Float32Array (4 * this .getLocationLength (gl, program, field));
521
+ break;
522
+ }
523
+ }
520
524
 
521
- if (location .array)
522
- field [_uniformLocation] = location .array .length ? location : null;
523
- else
524
- field [_uniformLocation] = location;
525
+ if (location .array)
526
+ field [_uniformLocation] = location .array .length ? location : null;
527
+ else
528
+ field [_uniformLocation] = location;
525
529
 
526
- field .addInterest ("set_field__", this);
530
+ field .addInterest ("set_field__", this);
527
531
 
528
- this .set_field__ (field);
529
- }
532
+ this .set_field__ (field);
530
533
  }
531
534
  },
532
535
  removeShaderFields ()
@@ -534,7 +537,7 @@ Object .assign (X3DProgrammableShaderObject .prototype,
534
537
  for (const field of this .getUserDefinedFields ())
535
538
  field .removeInterest ("set_field__", this);
536
539
  },
537
- set_field__: (function ()
540
+ set_field__: (() =>
538
541
  {
539
542
  const rotation = new Float32Array (9);
540
543
 
@@ -547,361 +550,361 @@ Object .assign (X3DProgrammableShaderObject .prototype,
547
550
 
548
551
  gl .useProgram (program);
549
552
 
550
- if (location)
553
+ if (!location)
554
+ return;
555
+
556
+ switch (field .getType ())
551
557
  {
552
- switch (field .getType ())
558
+ case X3DConstants .SFBool:
559
+ case X3DConstants .SFInt32:
553
560
  {
554
- case X3DConstants .SFBool:
555
- case X3DConstants .SFInt32:
556
- {
557
- gl .uniform1i (location, field .getValue ());
558
- return;
559
- }
560
- case X3DConstants .SFColor:
561
- {
562
- const value = field .getValue ();
563
- gl .uniform3f (location, value .r, value .g, value .b);
564
- return;
565
- }
566
- case X3DConstants .SFColorRGBA:
567
- {
568
- const value = field .getValue ();
569
- gl .uniform4f (location, value .r, value .g, value .b, value .a);
570
- return;
571
- }
572
- case X3DConstants .SFDouble:
573
- case X3DConstants .SFFloat:
574
- case X3DConstants .SFTime:
575
- {
576
- gl .uniform1f (location, field .getValue ());
577
- return;
578
- }
579
- case X3DConstants .SFImage:
580
- {
581
- let array = location .array;
582
-
583
- const
584
- pixels = field .array,
585
- length = 3 + pixels .length;
586
-
587
- if (length !== array .length)
588
- array = location .array = new Int32Array (length);
561
+ gl .uniform1i (location, field .getValue ());
562
+ return;
563
+ }
564
+ case X3DConstants .SFColor:
565
+ {
566
+ const value = field .getValue ();
567
+ gl .uniform3f (location, value .r, value .g, value .b);
568
+ return;
569
+ }
570
+ case X3DConstants .SFColorRGBA:
571
+ {
572
+ const value = field .getValue ();
573
+ gl .uniform4f (location, value .r, value .g, value .b, value .a);
574
+ return;
575
+ }
576
+ case X3DConstants .SFDouble:
577
+ case X3DConstants .SFFloat:
578
+ case X3DConstants .SFTime:
579
+ {
580
+ gl .uniform1f (location, field .getValue ());
581
+ return;
582
+ }
583
+ case X3DConstants .SFImage:
584
+ {
585
+ let array = location .array;
589
586
 
590
- array [0] = field .width;
591
- array [1] = field .height;
592
- array [2] = field .comp;
587
+ const
588
+ pixels = field .array,
589
+ length = 3 + pixels .length;
593
590
 
594
- for (let a = 3, p = 0, pl = pixels .length; p < pl; ++ p, ++ a)
595
- array [a] = pixels [p];
591
+ if (length !== array .length)
592
+ array = location .array = new Int32Array (length);
596
593
 
597
- gl .uniform1iv (location, array);
598
- return;
599
- }
600
- case X3DConstants .SFMatrix3d:
601
- case X3DConstants .SFMatrix3f:
602
- {
603
- location .array .set (field .getValue ());
594
+ array [0] = field .width;
595
+ array [1] = field .height;
596
+ array [2] = field .comp;
604
597
 
605
- gl .uniformMatrix3fv (location, false, location .array);
606
- return;
607
- }
608
- case X3DConstants .SFMatrix4d:
609
- case X3DConstants .SFMatrix4f:
610
- {
611
- location .array .set (field .getValue ());
598
+ for (let a = 3, p = 0, pl = pixels .length; p < pl; ++ p, ++ a)
599
+ array [a] = pixels [p];
612
600
 
613
- gl .uniformMatrix4fv (location, false, location .array);
614
- return;
615
- }
616
- case X3DConstants .SFNode:
617
- {
618
- const texture = X3DCast (X3DConstants .X3DTextureNode, field);
601
+ gl .uniform1iv (location, array);
602
+ return;
603
+ }
604
+ case X3DConstants .SFMatrix3d:
605
+ case X3DConstants .SFMatrix3f:
606
+ {
607
+ location .array .set (field .getValue ());
619
608
 
620
- if (texture)
621
- {
622
- location .name = field .getName ();
623
- location .texture = texture;
609
+ gl .uniformMatrix3fv (location, false, location .array);
610
+ return;
611
+ }
612
+ case X3DConstants .SFMatrix4d:
613
+ case X3DConstants .SFMatrix4f:
614
+ {
615
+ location .array .set (field .getValue ());
624
616
 
625
- this .textures .add (location);
626
- }
627
- else
628
- {
629
- this .textures .delete (location);
630
- }
617
+ gl .uniformMatrix4fv (location, false, location .array);
618
+ return;
619
+ }
620
+ case X3DConstants .SFNode:
621
+ {
622
+ const texture = X3DCast (X3DConstants .X3DTextureNode, field);
631
623
 
632
- return;
633
- }
634
- case X3DConstants .SFRotation:
624
+ if (texture)
635
625
  {
636
- field .getValue () .getMatrix (location .array);
626
+ location .name = field .getName ();
627
+ location .texture = texture;
637
628
 
638
- gl .uniformMatrix3fv (location, false, location .array);
639
- return;
629
+ this .textures .add (location);
640
630
  }
641
- case X3DConstants .SFString:
631
+ else
642
632
  {
643
- return;
633
+ this .textures .delete (location);
644
634
  }
645
- case X3DConstants .SFVec2d:
646
- case X3DConstants .SFVec2f:
647
- {
648
- const value = field .getValue ();
649
- gl .uniform2f (location, value .x, value .y);
650
- return;
651
- }
652
- case X3DConstants .SFVec3d:
653
- case X3DConstants .SFVec3f:
654
- {
655
- const value = field .getValue ();
656
- gl .uniform3f (location, value .x, value .y, value .z);
657
- return;
658
- }
659
- case X3DConstants .SFVec4d:
660
- case X3DConstants .SFVec4f:
661
- {
662
- const value = field .getValue ();
663
- gl .uniform4f (location, value .x, value .y, value .z, value .w);
664
- return;
665
- }
666
- case X3DConstants .MFBool:
667
- case X3DConstants .MFInt32:
668
- {
669
- const array = location .array;
670
635
 
671
- for (var i = 0, length = field .length; i < length; ++ i)
672
- array [i] = field [i];
636
+ return;
637
+ }
638
+ case X3DConstants .SFRotation:
639
+ {
640
+ field .getValue () .getMatrix (location .array);
673
641
 
674
- for (let length = array .length; i < length; ++ i)
675
- array [i] = 0;
642
+ gl .uniformMatrix3fv (location, false, location .array);
643
+ return;
644
+ }
645
+ case X3DConstants .SFString:
646
+ {
647
+ return;
648
+ }
649
+ case X3DConstants .SFVec2d:
650
+ case X3DConstants .SFVec2f:
651
+ {
652
+ const value = field .getValue ();
653
+ gl .uniform2f (location, value .x, value .y);
654
+ return;
655
+ }
656
+ case X3DConstants .SFVec3d:
657
+ case X3DConstants .SFVec3f:
658
+ {
659
+ const value = field .getValue ();
660
+ gl .uniform3f (location, value .x, value .y, value .z);
661
+ return;
662
+ }
663
+ case X3DConstants .SFVec4d:
664
+ case X3DConstants .SFVec4f:
665
+ {
666
+ const value = field .getValue ();
667
+ gl .uniform4f (location, value .x, value .y, value .z, value .w);
668
+ return;
669
+ }
670
+ case X3DConstants .MFBool:
671
+ case X3DConstants .MFInt32:
672
+ {
673
+ const array = location .array;
676
674
 
677
- gl .uniform1iv (location, array);
678
- return;
679
- }
680
- case X3DConstants .MFColor:
681
- {
682
- const array = location .array;
675
+ for (var i = 0, length = field .length; i < length; ++ i)
676
+ array [i] = field [i];
683
677
 
684
- for (var i = 0, k = 0, length = field .length; i < length; ++ i)
685
- {
686
- const color = field [i];
678
+ for (let length = array .length; i < length; ++ i)
679
+ array [i] = 0;
687
680
 
688
- array [k++] = color .r;
689
- array [k++] = color .g;
690
- array [k++] = color .b;
691
- }
681
+ gl .uniform1iv (location, array);
682
+ return;
683
+ }
684
+ case X3DConstants .MFColor:
685
+ {
686
+ const array = location .array;
692
687
 
693
- for (let length = array .length; k < length; ++ k)
694
- array [k] = 0;
688
+ for (var i = 0, k = 0, length = field .length; i < length; ++ i)
689
+ {
690
+ const color = field [i];
695
691
 
696
- gl .uniform3fv (location, array);
697
- return;
692
+ array [k++] = color .r;
693
+ array [k++] = color .g;
694
+ array [k++] = color .b;
698
695
  }
699
- case X3DConstants .MFColorRGBA:
700
- {
701
- const array = location .array;
702
696
 
703
- for (var i = 0, k = 0, length = field .length; i < length; ++ i)
704
- {
705
- const color = field [i];
697
+ for (let length = array .length; k < length; ++ k)
698
+ array [k] = 0;
706
699
 
707
- array [k++] = color .r;
708
- array [k++] = color .g;
709
- array [k++] = color .b;
710
- array [k++] = color .a;
711
- }
700
+ gl .uniform3fv (location, array);
701
+ return;
702
+ }
703
+ case X3DConstants .MFColorRGBA:
704
+ {
705
+ const array = location .array;
712
706
 
713
- for (let length = array .length; k < length; ++ k)
714
- array [k] = 0;
707
+ for (var i = 0, k = 0, length = field .length; i < length; ++ i)
708
+ {
709
+ const color = field [i];
715
710
 
716
- gl .uniform4fv (location, array);
717
- return;
711
+ array [k++] = color .r;
712
+ array [k++] = color .g;
713
+ array [k++] = color .b;
714
+ array [k++] = color .a;
718
715
  }
719
- case X3DConstants .MFDouble:
720
- case X3DConstants .MFFloat:
721
- case X3DConstants .MFTime:
722
- {
723
- const array = location .array;
724
716
 
725
- for (var i = 0, length = field .length; i < length; ++ i)
726
- array [i] = field [i];
717
+ for (let length = array .length; k < length; ++ k)
718
+ array [k] = 0;
727
719
 
728
- for (let length = array .length; i < length; ++ i)
729
- array [i] = 0;
720
+ gl .uniform4fv (location, array);
721
+ return;
722
+ }
723
+ case X3DConstants .MFDouble:
724
+ case X3DConstants .MFFloat:
725
+ case X3DConstants .MFTime:
726
+ {
727
+ const array = location .array;
730
728
 
731
- gl .uniform1fv (location, array);
732
- return;
733
- }
734
- case X3DConstants .MFImage:
735
- {
736
- const array = location .array;
729
+ for (var i = 0, length = field .length; i < length; ++ i)
730
+ array [i] = field [i];
737
731
 
738
- for (let i = 0, a = 0, length = field .length; i < length; ++ i)
739
- {
740
- const
741
- value = field [i],
742
- pixels = value .array;
732
+ for (let length = array .length; i < length; ++ i)
733
+ array [i] = 0;
734
+
735
+ gl .uniform1fv (location, array);
736
+ return;
737
+ }
738
+ case X3DConstants .MFImage:
739
+ {
740
+ const array = location .array;
743
741
 
744
- array [a ++] = value .width;
745
- array [a ++] = value .height;
746
- array [a ++] = value .comp;
742
+ for (let i = 0, a = 0, length = field .length; i < length; ++ i)
743
+ {
744
+ const
745
+ value = field [i],
746
+ pixels = value .array;
747
747
 
748
- for (let p = 0, pl = pixels .length; p < pl; ++ p)
749
- array [a ++] = pixels [p];
750
- }
748
+ array [a ++] = value .width;
749
+ array [a ++] = value .height;
750
+ array [a ++] = value .comp;
751
751
 
752
- gl .uniform1iv (location, array);
753
- return;
752
+ for (let p = 0, pl = pixels .length; p < pl; ++ p)
753
+ array [a ++] = pixels [p];
754
754
  }
755
- case X3DConstants .MFMatrix3d:
756
- case X3DConstants .MFMatrix3f:
755
+
756
+ gl .uniform1iv (location, array);
757
+ return;
758
+ }
759
+ case X3DConstants .MFMatrix3d:
760
+ case X3DConstants .MFMatrix3f:
761
+ {
762
+ const array = location .array;
763
+
764
+ for (var i = 0, k = 0, length = field .length; i < length; ++ i)
757
765
  {
758
- const array = location .array;
766
+ const matrix = field [i];
759
767
 
760
- for (var i = 0, k = 0, length = field .length; i < length; ++ i)
761
- {
762
- const matrix = field [i];
768
+ for (let m = 0; m < 9; ++ m)
769
+ array [k++] = matrix [m];
770
+ }
763
771
 
764
- for (let m = 0; m < 9; ++ m)
765
- array [k++] = matrix [m];
766
- }
772
+ for (let length = array .length; k < length; ++ k)
773
+ array [k] = 0;
767
774
 
768
- for (let length = array .length; k < length; ++ k)
769
- array [k] = 0;
775
+ gl .uniformMatrix3fv (location, false, array);
776
+ return;
777
+ }
778
+ case X3DConstants .MFMatrix4d:
779
+ case X3DConstants .MFMatrix4f:
780
+ {
781
+ const array = location .array;
770
782
 
771
- gl .uniformMatrix3fv (location, false, array);
772
- return;
773
- }
774
- case X3DConstants .MFMatrix4d:
775
- case X3DConstants .MFMatrix4f:
783
+ for (var i = 0, k = 0, length = field .length; i < length; ++ i)
776
784
  {
777
- const array = location .array;
785
+ const matrix = field [i];
778
786
 
779
- for (var i = 0, k = 0, length = field .length; i < length; ++ i)
780
- {
781
- const matrix = field [i];
787
+ for (let m = 0; m < 16; ++ m)
788
+ array [k++] = matrix [m];
789
+ }
782
790
 
783
- for (let m = 0; m < 16; ++ m)
784
- array [k++] = matrix [m];
785
- }
791
+ for (let length = array .length; k < length; ++ k)
792
+ array [k] = 0;
786
793
 
787
- for (let length = array .length; k < length; ++ k)
788
- array [k] = 0;
794
+ gl .uniformMatrix4fv (location, false, array);
795
+ return;
796
+ }
797
+ case X3DConstants .MFNode:
798
+ {
799
+ const locations = location .locations;
789
800
 
790
- gl .uniformMatrix4fv (location, false, array);
791
- return;
792
- }
793
- case X3DConstants .MFNode:
801
+ for (let i = 0, length = field .length; i < length; ++ i)
794
802
  {
795
- const locations = location .locations;
803
+ const texture = X3DCast (X3DConstants .X3DTextureNode, field [i]);
796
804
 
797
- for (let i = 0, length = field .length; i < length; ++ i)
805
+ if (texture)
798
806
  {
799
- const texture = X3DCast (X3DConstants .X3DTextureNode, field [i]);
800
-
801
- if (texture)
802
- {
803
- locations [i] .name = field .getName ();
804
- locations [i] .texture = texture;
805
-
806
- this .textures .add (locations [i]);
807
- }
808
- else
809
- {
810
- this .textures .delete (locations [i]);
811
- }
812
- }
813
-
814
- return;
815
- }
816
- case X3DConstants .MFRotation:
817
- {
818
- const array = location .array;
807
+ locations [i] .name = field .getName ();
808
+ locations [i] .texture = texture;
819
809
 
820
- for (var i = 0, k = 0, length = field .length; i < length; ++ i)
810
+ this .textures .add (locations [i]);
811
+ }
812
+ else
821
813
  {
822
- field [i] .getValue () .getMatrix (rotation);
823
-
824
- array [k++] = rotation [0];
825
- array [k++] = rotation [1];
826
- array [k++] = rotation [2];
827
- array [k++] = rotation [3];
828
- array [k++] = rotation [4];
829
- array [k++] = rotation [5];
830
- array [k++] = rotation [6];
831
- array [k++] = rotation [7];
832
- array [k++] = rotation [8];
814
+ this .textures .delete (locations [i]);
833
815
  }
816
+ }
834
817
 
835
- for (let length = array .length; k < length; ++ k)
836
- array [k] = 0;
818
+ return;
819
+ }
820
+ case X3DConstants .MFRotation:
821
+ {
822
+ const array = location .array;
837
823
 
838
- gl .uniformMatrix3fv (location, false, array);
839
- return;
840
- }
841
- case X3DConstants .MFString:
824
+ for (var i = 0, k = 0, length = field .length; i < length; ++ i)
842
825
  {
843
- return;
826
+ field [i] .getValue () .getMatrix (rotation);
827
+
828
+ array [k++] = rotation [0];
829
+ array [k++] = rotation [1];
830
+ array [k++] = rotation [2];
831
+ array [k++] = rotation [3];
832
+ array [k++] = rotation [4];
833
+ array [k++] = rotation [5];
834
+ array [k++] = rotation [6];
835
+ array [k++] = rotation [7];
836
+ array [k++] = rotation [8];
844
837
  }
845
- case X3DConstants .MFVec2d:
846
- case X3DConstants .MFVec2f:
847
- {
848
- const array = location .array;
849
838
 
850
- for (var i = 0, k = 0, length = field .length; i < length; ++ i)
851
- {
852
- const vector = field [i];
839
+ for (let length = array .length; k < length; ++ k)
840
+ array [k] = 0;
853
841
 
854
- array [k++] = vector .x;
855
- array [k++] = vector .y;
856
- }
842
+ gl .uniformMatrix3fv (location, false, array);
843
+ return;
844
+ }
845
+ case X3DConstants .MFString:
846
+ {
847
+ return;
848
+ }
849
+ case X3DConstants .MFVec2d:
850
+ case X3DConstants .MFVec2f:
851
+ {
852
+ const array = location .array;
857
853
 
858
- for (let length = array .length; k < length; ++ k)
859
- array [k] = 0;
854
+ for (var i = 0, k = 0, length = field .length; i < length; ++ i)
855
+ {
856
+ const vector = field [i];
860
857
 
861
- gl .uniform2fv (location, array);
862
- return;
858
+ array [k++] = vector .x;
859
+ array [k++] = vector .y;
863
860
  }
864
- case X3DConstants .MFVec3d:
865
- case X3DConstants .MFVec3f:
866
- {
867
- const array = location .array;
868
861
 
869
- for (var i = 0, k = 0, length = field .length; i < length; ++ i)
870
- {
871
- const vector = field [i];
862
+ for (let length = array .length; k < length; ++ k)
863
+ array [k] = 0;
872
864
 
873
- array [k++] = vector .x;
874
- array [k++] = vector .y;
875
- array [k++] = vector .z;
876
- }
865
+ gl .uniform2fv (location, array);
866
+ return;
867
+ }
868
+ case X3DConstants .MFVec3d:
869
+ case X3DConstants .MFVec3f:
870
+ {
871
+ const array = location .array;
877
872
 
878
- for (let length = array .length; k < length; ++ k)
879
- array [k] = 0;
873
+ for (var i = 0, k = 0, length = field .length; i < length; ++ i)
874
+ {
875
+ const vector = field [i];
880
876
 
881
- gl .uniform3fv (location, array);
882
- return;
877
+ array [k++] = vector .x;
878
+ array [k++] = vector .y;
879
+ array [k++] = vector .z;
883
880
  }
884
- case X3DConstants .MFVec4d:
885
- case X3DConstants .MFVec4f:
886
- {
887
- const array = location .array;
888
881
 
889
- for (var i = 0, k = 0, length = field .length; i < length; ++ i)
890
- {
891
- const vector = field [i];
882
+ for (let length = array .length; k < length; ++ k)
883
+ array [k] = 0;
892
884
 
893
- array [k++] = vector .x;
894
- array [k++] = vector .y;
895
- array [k++] = vector .z;
896
- array [k++] = vector .w;
897
- }
885
+ gl .uniform3fv (location, array);
886
+ return;
887
+ }
888
+ case X3DConstants .MFVec4d:
889
+ case X3DConstants .MFVec4f:
890
+ {
891
+ const array = location .array;
898
892
 
899
- for (let length = array .length; k < length; ++ k)
900
- array [k] = 0;
893
+ for (var i = 0, k = 0, length = field .length; i < length; ++ i)
894
+ {
895
+ const vector = field [i];
901
896
 
902
- gl .uniform4fv (location, array);
903
- return;
897
+ array [k++] = vector .x;
898
+ array [k++] = vector .y;
899
+ array [k++] = vector .z;
900
+ array [k++] = vector .w;
904
901
  }
902
+
903
+ for (let length = array .length; k < length; ++ k)
904
+ array [k] = 0;
905
+
906
+ gl .uniform4fv (location, array);
907
+ return;
905
908
  }
906
909
  }
907
910
  };
@@ -963,7 +966,7 @@ Object .assign (X3DProgrammableShaderObject .prototype,
963
966
  for (const clipPlane of clipPlanes)
964
967
  clipPlane .setShaderUniforms (gl, this);
965
968
  },
966
- setUniforms: (function ()
969
+ setUniforms: (() =>
967
970
  {
968
971
  const normalMatrix = new Float32Array (9);
969
972
 
@@ -1301,8 +1304,8 @@ Object .assign (X3DProgrammableShaderObject .prototype,
1301
1304
  result .attributeCount += attribute .size;
1302
1305
  }
1303
1306
 
1304
- result .uniforms .sort (function (a, b) { return cmp (a .name, b .name); });
1305
- result .attributes .sort (function (a, b) { return cmp (a .name, b .name); });
1307
+ result .uniforms .sort ((a, b) => cmp (a .name, b .name));
1308
+ result .attributes .sort ((a, b) => cmp (a .name, b .name));
1306
1309
 
1307
1310
  return result;
1308
1311
  },