x_ite 4.7.12 → 5.0.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 (759) hide show
  1. package/.vscode/settings.json +9 -2
  2. package/Makefile +27 -24
  3. package/build/bin/version-number.pl +1 -1
  4. package/build/bin/version.pl +3 -3
  5. package/build/parts/default.start.frag.js +2 -2
  6. package/build/parts/x_ite.end.frag.js +1 -2
  7. package/build/parts/x_ite.start.frag.js +4 -7
  8. package/dist/assets/components/annotation.js +312 -312
  9. package/dist/assets/components/annotation.min.js +1 -1
  10. package/dist/assets/components/cad-geometry.js +536 -538
  11. package/dist/assets/components/cad-geometry.min.js +1 -1
  12. package/dist/assets/components/cube-map-texturing.js +797 -796
  13. package/dist/assets/components/cube-map-texturing.min.js +1 -1
  14. package/dist/assets/components/dis.js +487 -472
  15. package/dist/assets/components/dis.min.js +1 -1
  16. package/dist/assets/components/event-utilities.js +486 -505
  17. package/dist/assets/components/event-utilities.min.js +1 -1
  18. package/dist/assets/components/geometry2d.js +1221 -1271
  19. package/dist/assets/components/geometry2d.min.js +1 -1
  20. package/dist/assets/components/geospatial.js +2657 -2653
  21. package/dist/assets/components/geospatial.min.js +1 -2
  22. package/dist/assets/components/h-anim.js +640 -640
  23. package/dist/assets/components/h-anim.min.js +1 -1
  24. package/dist/assets/components/key-device-sensor.js +547 -549
  25. package/dist/assets/components/key-device-sensor.min.js +1 -1
  26. package/dist/assets/components/layout.js +1435 -1433
  27. package/dist/assets/components/layout.min.js +1 -1
  28. package/dist/assets/components/nurbs.js +3942 -3964
  29. package/dist/assets/components/nurbs.min.js +1 -2
  30. package/dist/assets/components/particle-systems.js +3227 -3238
  31. package/dist/assets/components/particle-systems.min.js +1 -2
  32. package/dist/assets/components/picking.js +1704 -1712
  33. package/dist/assets/components/picking.min.js +1 -1
  34. package/dist/assets/components/projective-texture-mapping.js +553 -553
  35. package/dist/assets/components/projective-texture-mapping.min.js +1 -1
  36. package/dist/assets/components/rigid-body-physics.js +3255 -3265
  37. package/dist/assets/components/rigid-body-physics.min.js +1 -59
  38. package/dist/assets/components/scripting.js +544 -549
  39. package/dist/assets/components/scripting.min.js +1 -1
  40. package/dist/assets/components/texturing-3d.js +2716 -2651
  41. package/dist/assets/components/texturing-3d.min.js +131 -48
  42. package/dist/assets/components/volume-rendering.js +2815 -2804
  43. package/dist/assets/components/volume-rendering.min.js +1 -3
  44. package/dist/assets/components/x_ite.js +142 -144
  45. package/dist/assets/components/x_ite.min.js +1 -1
  46. package/dist/assets/shaders/webgl1/Gouraud.fs +52 -15
  47. package/dist/assets/shaders/webgl1/Gouraud.vs +8 -9
  48. package/dist/assets/shaders/webgl1/{Wireframe.fs → Line.fs} +0 -0
  49. package/dist/assets/shaders/webgl1/{Wireframe.vs → Line.vs} +1 -1
  50. package/dist/assets/shaders/webgl1/PBR.fs +785 -0
  51. package/dist/assets/shaders/webgl1/PBR.vs +37 -0
  52. package/dist/assets/shaders/webgl1/Phong.fs +204 -32
  53. package/dist/assets/shaders/webgl1/Phong.vs +2 -3
  54. package/dist/assets/shaders/webgl1/{PointSet.fs → Point.fs} +59 -33
  55. package/dist/assets/shaders/webgl1/{PointSet.vs → Point.vs} +2 -2
  56. package/dist/assets/shaders/webgl1/Unlit.fs +73 -18
  57. package/dist/assets/shaders/webgl1/Unlit.vs +2 -3
  58. package/dist/assets/shaders/webgl2/Gouraud.fs +31 -19
  59. package/dist/assets/shaders/webgl2/Gouraud.vs +8 -9
  60. package/dist/assets/shaders/webgl2/{Wireframe.fs → Line.fs} +0 -0
  61. package/dist/assets/shaders/webgl2/{Wireframe.vs → Line.vs} +1 -1
  62. package/dist/assets/shaders/webgl2/PBR.fs +913 -0
  63. package/dist/assets/shaders/webgl2/PBR.vs +37 -0
  64. package/dist/assets/shaders/webgl2/Phong.fs +196 -35
  65. package/dist/assets/shaders/webgl2/Phong.vs +2 -3
  66. package/dist/assets/shaders/webgl2/{PointSet.fs → Point.fs} +87 -86
  67. package/dist/assets/shaders/webgl2/{PointSet.vs → Point.vs} +2 -2
  68. package/dist/assets/shaders/webgl2/Unlit.fs +55 -22
  69. package/dist/assets/shaders/webgl2/Unlit.vs +2 -3
  70. package/dist/example.html +2 -2
  71. package/dist/x_ite.css +316 -328
  72. package/dist/x_ite.js +55663 -52034
  73. package/dist/x_ite.min.js +79 -41
  74. package/dist/x_ite.zip +0 -0
  75. package/docs/Custom-Shaders.md +4 -3
  76. package/docs/_config.yml +1 -1
  77. package/docs/index.md +60 -7
  78. package/package.json +20 -20
  79. package/src/assets/components/annotation.js +24 -24
  80. package/src/assets/components/cad-geometry.js +24 -25
  81. package/src/assets/components/cube-map-texturing.js +18 -19
  82. package/src/assets/components/dis.js +22 -23
  83. package/src/assets/components/event-utilities.js +28 -29
  84. package/src/assets/components/geometry2d.js +28 -29
  85. package/src/assets/components/geospatial.js +34 -35
  86. package/src/assets/components/h-anim.js +22 -22
  87. package/src/assets/components/key-device-sensor.js +18 -19
  88. package/src/assets/components/layout.js +24 -25
  89. package/src/assets/components/nurbs.js +44 -45
  90. package/src/assets/components/particle-systems.js +36 -37
  91. package/src/assets/components/picking.js +25 -25
  92. package/src/assets/components/projective-texture-mapping.js +16 -16
  93. package/src/assets/components/rigid-body-physics.js +48 -48
  94. package/src/assets/components/scripting.js +14 -15
  95. package/src/assets/components/texturing-3d.js +26 -27
  96. package/src/assets/components/volume-rendering.js +46 -46
  97. package/src/assets/components/x_ite.js +12 -12
  98. package/src/assets/shaders/Types.glsl +230 -51
  99. package/src/assets/shaders/webgl1/Background.fs +2 -2
  100. package/src/assets/shaders/webgl1/Background.vs +4 -4
  101. package/src/assets/shaders/webgl1/Depth.fs +2 -2
  102. package/src/assets/shaders/webgl1/Depth.vs +3 -3
  103. package/src/assets/shaders/webgl1/Fallback.fs +15 -15
  104. package/src/assets/shaders/webgl1/Fallback.vs +5 -5
  105. package/src/assets/shaders/webgl1/FallbackUnlit.fs +4 -4
  106. package/src/assets/shaders/webgl1/FallbackUnlit.vs +3 -3
  107. package/src/assets/shaders/webgl1/Gouraud.fs +14 -14
  108. package/src/assets/shaders/webgl1/Gouraud.vs +54 -69
  109. package/src/assets/shaders/webgl1/Line.fs +74 -0
  110. package/src/assets/shaders/webgl1/Line.vs +63 -0
  111. package/src/assets/shaders/webgl1/PBR.fs +364 -0
  112. package/src/assets/shaders/webgl1/PBR.vs +46 -0
  113. package/src/assets/shaders/webgl1/Phong.fs +207 -84
  114. package/src/assets/shaders/webgl1/Phong.vs +17 -18
  115. package/src/assets/shaders/webgl1/Point.fs +88 -0
  116. package/src/assets/shaders/webgl1/Point.vs +70 -0
  117. package/src/assets/shaders/webgl1/Unlit.fs +53 -28
  118. package/src/assets/shaders/webgl1/Unlit.vs +17 -18
  119. package/src/assets/shaders/webgl1/include/ClipPlanes.glsl +7 -7
  120. package/src/assets/shaders/webgl1/include/Colors.glsl +27 -0
  121. package/src/assets/shaders/webgl1/include/Fog.glsl +17 -17
  122. package/src/assets/shaders/webgl1/include/Hatch.glsl +8 -8
  123. package/src/assets/shaders/webgl1/include/Normal.glsl +44 -0
  124. package/src/assets/shaders/webgl1/include/Pack.glsl +11 -11
  125. package/src/assets/shaders/webgl1/include/Perlin.glsl +19 -19
  126. package/src/assets/shaders/webgl1/include/Shadow.glsl +212 -212
  127. package/src/assets/shaders/webgl1/include/SpotFactor.glsl +12 -0
  128. package/src/assets/shaders/webgl1/include/Texture.glsl +444 -393
  129. package/src/assets/shaders/webgl2/Background.fs +2 -2
  130. package/src/assets/shaders/webgl2/Background.vs +4 -4
  131. package/src/assets/shaders/webgl2/Depth.fs +2 -2
  132. package/src/assets/shaders/webgl2/Depth.vs +3 -3
  133. package/src/assets/shaders/webgl2/Gouraud.fs +14 -14
  134. package/src/assets/shaders/webgl2/Gouraud.vs +54 -69
  135. package/src/assets/shaders/webgl2/Line.fs +73 -0
  136. package/src/assets/shaders/webgl2/Line.vs +64 -0
  137. package/src/assets/shaders/webgl2/PBR.fs +370 -0
  138. package/src/assets/shaders/webgl2/PBR.vs +48 -0
  139. package/src/assets/shaders/webgl2/Phong.fs +219 -84
  140. package/src/assets/shaders/webgl2/Phong.vs +17 -18
  141. package/src/assets/shaders/webgl2/Point.fs +87 -0
  142. package/src/assets/shaders/webgl2/Point.vs +71 -0
  143. package/src/assets/shaders/webgl2/Unlit.fs +56 -28
  144. package/src/assets/shaders/webgl2/Unlit.vs +17 -18
  145. package/src/assets/shaders/webgl2/include/ClipPlanes.glsl +7 -7
  146. package/src/assets/shaders/webgl2/include/Colors.glsl +27 -0
  147. package/src/assets/shaders/webgl2/include/Fog.glsl +34 -34
  148. package/src/assets/shaders/webgl2/include/Hatch.glsl +8 -8
  149. package/src/assets/shaders/webgl2/include/Normal.glsl +46 -0
  150. package/src/assets/shaders/webgl2/include/Pack.glsl +11 -11
  151. package/src/assets/shaders/webgl2/include/Perlin.glsl +19 -20
  152. package/src/assets/shaders/webgl2/include/Shadow.glsl +226 -226
  153. package/src/assets/shaders/webgl2/include/SpotFactor.glsl +12 -0
  154. package/src/assets/shaders/webgl2/include/Texture.glsl +557 -537
  155. package/src/bookmarks.js +92 -92
  156. package/src/examples.js +147 -147
  157. package/src/lib/ammojs/AmmoJS.js +2 -2
  158. package/src/lib/ammojs/Makefile +14 -15
  159. package/src/lib/jquery.fullscreen-min.js +2 -2
  160. package/src/lib/nurbs/extras/sample.js +215 -215
  161. package/src/lib/nurbs/nurbs.js +326 -326
  162. package/src/lib/nurbs/src/evaluate.js +405 -405
  163. package/src/lib/nurbs/src/numerical-derivative.js +48 -48
  164. package/src/lib/nurbs/src/support.js +143 -143
  165. package/src/lib/nurbs/src/transform.js +70 -70
  166. package/src/lib/nurbs/src/utils/accessor-preamble.js +23 -23
  167. package/src/lib/nurbs/src/utils/bisection-search.js +18 -18
  168. package/src/lib/nurbs/src/utils/cache-key.js +49 -50
  169. package/src/lib/nurbs/src/utils/create-accessors.js +101 -101
  170. package/src/lib/nurbs/src/utils/infer-type.js +43 -43
  171. package/src/lib/nurbs/src/utils/is-array-like.js +5 -5
  172. package/src/lib/nurbs/src/utils/is-ndarray-like.js +11 -11
  173. package/src/lib/nurbs/src/utils/is-ndarray.js +13 -13
  174. package/src/lib/nurbs/src/utils/ndloop.js +18 -18
  175. package/src/lib/nurbs/src/utils/size-getter.js +15 -15
  176. package/src/lib/nurbs/src/utils/variable.js +25 -25
  177. package/src/lib/opentype.js/bin/ot +27 -27
  178. package/src/lib/opentype.js/dist/opentype.js +5 -5
  179. package/src/lib/opentype.js/font-inspector.html +1 -1
  180. package/src/lib/opentype.js/site.css +1 -3
  181. package/src/locale/gettext.js +73 -73
  182. package/src/spinner.css +40 -43
  183. package/src/standard/Geospatial/Geodetic.js +195 -195
  184. package/src/standard/Geospatial/ReferenceEllipsoids.js +43 -43
  185. package/src/standard/Geospatial/UniversalTransverseMercator.js +159 -159
  186. package/src/standard/Math/Algorithm.js +199 -187
  187. package/src/standard/Math/Algorithms/Bezier.js +80 -80
  188. package/src/standard/Math/Algorithms/MergeSort.js +49 -49
  189. package/src/standard/Math/Algorithms/PartialSort.js +36 -36
  190. package/src/standard/Math/Algorithms/QuickSort.js +51 -51
  191. package/src/standard/Math/Algorithms/SAT.js +62 -62
  192. package/src/standard/Math/Algorithms/eigendecomposition.js +141 -141
  193. package/src/standard/Math/Geometry/Box2.js +205 -205
  194. package/src/standard/Math/Geometry/Box3.js +624 -624
  195. package/src/standard/Math/Geometry/Camera.js +68 -68
  196. package/src/standard/Math/Geometry/Cylinder3.js +112 -112
  197. package/src/standard/Math/Geometry/Line3.js +188 -153
  198. package/src/standard/Math/Geometry/Plane3.js +120 -120
  199. package/src/standard/Math/Geometry/Sphere3.js +148 -148
  200. package/src/standard/Math/Geometry/Spheroid3.js +38 -38
  201. package/src/standard/Math/Geometry/Triangle2.js +19 -19
  202. package/src/standard/Math/Geometry/Triangle3.js +148 -148
  203. package/src/standard/Math/Geometry/ViewVolume.js +359 -359
  204. package/src/standard/Math/Numbers/Color3.js +219 -214
  205. package/src/standard/Math/Numbers/Color4.js +148 -142
  206. package/src/standard/Math/Numbers/Complex.js +139 -139
  207. package/src/standard/Math/Numbers/Matrix2.js +193 -193
  208. package/src/standard/Math/Numbers/Matrix3.js +679 -679
  209. package/src/standard/Math/Numbers/Matrix4.js +883 -883
  210. package/src/standard/Math/Numbers/Quaternion.js +496 -496
  211. package/src/standard/Math/Numbers/Rotation4.js +421 -415
  212. package/src/standard/Math/Numbers/Vector2.js +220 -220
  213. package/src/standard/Math/Numbers/Vector3.js +280 -280
  214. package/src/standard/Math/Numbers/Vector4.js +296 -296
  215. package/src/standard/Math/Utility/BVH.js +303 -303
  216. package/src/standard/Math/Utility/MatrixStack.js +64 -64
  217. package/src/standard/Networking/BinaryTransport.js +67 -67
  218. package/src/standard/Time/MicroTime.js +22 -22
  219. package/src/standard/Utility/DataStorage.js +85 -81
  220. package/src/standard/Utility/MapUtilities.js +14 -1
  221. package/src/standard/Utility/ObjectCache.js +24 -24
  222. package/src/standard/Utility/Shuffle.js +13 -13
  223. package/src/tests.js +355 -384
  224. package/src/x_ite/Base/Events.js +64 -55
  225. package/src/x_ite/{Basic/X3DArrayField.js → Base/FieldArray.js} +19 -12
  226. package/src/x_ite/Base/FieldDefinitionArray.js +75 -0
  227. package/src/x_ite/{Basic/FieldDefinitionArray.js → Base/X3DArrayField.js} +35 -59
  228. package/src/x_ite/Base/X3DBaseNode.js +588 -0
  229. package/src/x_ite/{Bits → Base}/X3DCast.js +23 -22
  230. package/src/x_ite/Base/X3DChildObject.js +68 -62
  231. package/src/x_ite/{Bits → Base}/X3DConstants.js +85 -85
  232. package/src/x_ite/Base/X3DEventObject.js +73 -68
  233. package/src/x_ite/Base/X3DField.js +450 -0
  234. package/src/x_ite/Base/X3DFieldDefinition.js +78 -0
  235. package/src/x_ite/Base/X3DInfoArray.js +291 -0
  236. package/src/x_ite/Base/X3DObject.js +152 -109
  237. package/src/x_ite/Base/X3DObjectArrayField.js +573 -0
  238. package/src/x_ite/Base/X3DTypedArrayField.js +866 -0
  239. package/src/x_ite/Browser/Core/BrowserOptions.js +376 -394
  240. package/src/x_ite/Browser/Core/BrowserProperties.js +38 -38
  241. package/src/x_ite/Browser/Core/BrowserTimings.js +173 -172
  242. package/src/x_ite/Browser/Core/ContextMenu.js +547 -551
  243. package/src/x_ite/Browser/Core/Notification.js +57 -56
  244. package/src/x_ite/Browser/Core/PrimitiveQuality.js +8 -8
  245. package/src/x_ite/Browser/Core/RenderingProperties.js +55 -55
  246. package/src/x_ite/Browser/Core/Shading.js +10 -10
  247. package/src/x_ite/Browser/Core/TextureQuality.js +8 -8
  248. package/src/x_ite/Browser/Core/X3DCoreContext.js +746 -724
  249. package/src/x_ite/Browser/EnvironmentalEffects/X3DEnvironmentalEffectsContext.js +33 -25
  250. package/src/x_ite/Browser/Followers/X3DArrayChaserTemplate.js +23 -23
  251. package/src/x_ite/Browser/Followers/X3DArrayFollowerTemplate.js +127 -127
  252. package/src/x_ite/Browser/Geometry2D/Arc2DOptions.js +25 -25
  253. package/src/x_ite/Browser/Geometry2D/ArcClose2DOptions.js +25 -25
  254. package/src/x_ite/Browser/Geometry2D/Circle2DOptions.js +56 -55
  255. package/src/x_ite/Browser/Geometry2D/Disk2DOptions.js +116 -116
  256. package/src/x_ite/Browser/Geometry2D/Rectangle2DOptions.js +59 -59
  257. package/src/x_ite/Browser/Geometry2D/X3DGeometry2DContext.js +80 -77
  258. package/src/x_ite/Browser/Geometry3D/BoxOptions.js +70 -70
  259. package/src/x_ite/Browser/Geometry3D/ConeOptions.js +26 -26
  260. package/src/x_ite/Browser/Geometry3D/CylinderOptions.js +27 -27
  261. package/src/x_ite/Browser/Geometry3D/IcoSphere.js +357 -357
  262. package/src/x_ite/Browser/Geometry3D/IcoSphereOptions.js +61 -61
  263. package/src/x_ite/Browser/Geometry3D/QuadSphereOptions.js +243 -241
  264. package/src/x_ite/Browser/Geometry3D/X3DGeometry3DContext.js +37 -34
  265. package/src/x_ite/Browser/Geospatial/Geocentric.js +27 -27
  266. package/src/x_ite/Browser/Geospatial/Geospatial.js +157 -156
  267. package/src/x_ite/Browser/Grouping/X3DGroupingContext.js +38 -33
  268. package/src/x_ite/Browser/Interpolation/CatmullRomSplineInterpolator.js +128 -130
  269. package/src/x_ite/Browser/Interpolation/CatmullRomSplineInterpolator1.js +39 -41
  270. package/src/x_ite/Browser/Interpolation/CatmullRomSplineInterpolator2.js +3 -3
  271. package/src/x_ite/Browser/Interpolation/CatmullRomSplineInterpolator3.js +3 -3
  272. package/src/x_ite/Browser/Interpolation/CatmullRomSplineInterpolatorTemplate.js +54 -56
  273. package/src/x_ite/Browser/Interpolation/SquatInterpolator.js +54 -56
  274. package/src/x_ite/Browser/KeyDeviceSensor/X3DKeyDeviceSensorContext.js +44 -41
  275. package/src/x_ite/Browser/Layering/X3DLayeringContext.js +20 -18
  276. package/src/x_ite/Browser/Layout/ScreenText.js +406 -405
  277. package/src/x_ite/Browser/Layout/X3DLayoutContext.js +36 -30
  278. package/src/x_ite/Browser/Lighting/X3DLightingContext.js +54 -50
  279. package/src/x_ite/Browser/NURBS/NURBS.js +417 -417
  280. package/src/x_ite/Browser/Navigation/ExamineViewer.js +753 -753
  281. package/src/x_ite/Browser/Navigation/FlyViewer.js +39 -39
  282. package/src/x_ite/Browser/Navigation/LookAtViewer.js +461 -461
  283. package/src/x_ite/Browser/Navigation/NoneViewer.js +18 -18
  284. package/src/x_ite/Browser/Navigation/PlaneViewer.js +193 -193
  285. package/src/x_ite/Browser/Navigation/WalkViewer.js +61 -61
  286. package/src/x_ite/Browser/Navigation/X3DFlyViewer.js +709 -710
  287. package/src/x_ite/Browser/Navigation/X3DNavigationContext.js +188 -182
  288. package/src/x_ite/Browser/Navigation/X3DViewer.js +160 -160
  289. package/src/x_ite/Browser/Networking/X3DNetworkingContext.js +152 -143
  290. package/src/x_ite/Browser/Networking/urls.js +31 -31
  291. package/src/x_ite/Browser/ParticleSystems/X3DParticleSystemsContext.js +17 -13
  292. package/src/x_ite/Browser/Picking/IntersectionType.js +7 -7
  293. package/src/x_ite/Browser/Picking/MatchCriterion.js +8 -8
  294. package/src/x_ite/Browser/Picking/SortOrder.js +9 -9
  295. package/src/x_ite/Browser/Picking/VolumePicker.js +138 -138
  296. package/src/x_ite/Browser/Picking/X3DPickingContext.js +80 -69
  297. package/src/x_ite/Browser/PointingDeviceSensor/PointingDevice.js +208 -209
  298. package/src/x_ite/Browser/PointingDeviceSensor/PointingDeviceSensorContainer.js +34 -34
  299. package/src/x_ite/Browser/PointingDeviceSensor/X3DPointingDeviceSensorContext.js +269 -263
  300. package/src/x_ite/Browser/Rendering/X3DRenderingContext.js +132 -119
  301. package/src/x_ite/Browser/RigidBodyPhysics/AppliedParametersType.js +14 -14
  302. package/src/x_ite/Browser/Scripting/X3DScriptingContext.js +20 -19
  303. package/src/x_ite/Browser/Scripting/evaluate.js +7 -7
  304. package/src/x_ite/Browser/Shaders/Shader.js +152 -159
  305. package/src/x_ite/Browser/Shaders/ShaderSource.js +81 -63
  306. package/src/x_ite/Browser/Shaders/ShaderTest.js +97 -98
  307. package/src/x_ite/Browser/Shaders/X3DShadersContext.js +256 -249
  308. package/src/x_ite/Browser/Shape/AlphaMode.js +9 -9
  309. package/src/x_ite/Browser/Shape/X3DShapeContext.js +111 -89
  310. package/src/x_ite/Browser/Sound/X3DSoundContext.js +11 -11
  311. package/src/x_ite/Browser/Text/PolygonText.js +319 -319
  312. package/src/x_ite/Browser/Text/TextAlignment.js +9 -9
  313. package/src/x_ite/Browser/Text/X3DTextContext.js +72 -65
  314. package/src/x_ite/Browser/Text/X3DTextGeometry.js +506 -506
  315. package/src/x_ite/Browser/Texturing/MultiTextureFunctionType.js +8 -8
  316. package/src/x_ite/Browser/Texturing/MultiTextureModeType.js +25 -25
  317. package/src/x_ite/Browser/Texturing/MultiTextureSourceType.js +9 -9
  318. package/src/x_ite/Browser/Texturing/TextureCoordinateGeneratorModeType.js +17 -17
  319. package/src/x_ite/Browser/Texturing/X3DTexturingContext.js +259 -224
  320. package/src/x_ite/Browser/Texturing3D/DICOMParser.js +1066 -1066
  321. package/src/x_ite/Browser/Texturing3D/NRRDParser.js +641 -630
  322. package/src/x_ite/Browser/Time/X3DTimeContext.js +54 -37
  323. package/src/x_ite/Browser/VERSION.js +1 -1
  324. package/src/x_ite/Browser/VolumeRendering/VolumeStyle.fs +55 -55
  325. package/src/x_ite/Browser/VolumeRendering/VolumeStyle.vs +5 -5
  326. package/src/x_ite/Browser/VolumeRendering/X3DVolumeRenderingContext.js +52 -41
  327. package/src/x_ite/Browser/X3DBrowser.js +819 -755
  328. package/src/x_ite/Browser/X3DBrowserContext.js +253 -220
  329. package/src/x_ite/Components/Annotation/AnnotationLayer.js +43 -43
  330. package/src/x_ite/Components/Annotation/AnnotationTarget.js +38 -38
  331. package/src/x_ite/Components/Annotation/GroupAnnotation.js +48 -48
  332. package/src/x_ite/Components/Annotation/IconAnnotation.js +46 -46
  333. package/src/x_ite/Components/Annotation/TextAnnotation.js +39 -39
  334. package/src/x_ite/Components/Annotation/URLAnnotation.js +38 -38
  335. package/src/x_ite/Components/Annotation/X3DAnnotationNode.js +16 -16
  336. package/src/x_ite/Components/CADGeometry/CADAssembly.js +41 -41
  337. package/src/x_ite/Components/CADGeometry/CADFace.js +189 -189
  338. package/src/x_ite/Components/CADGeometry/CADLayer.js +38 -38
  339. package/src/x_ite/Components/CADGeometry/CADPart.js +46 -46
  340. package/src/x_ite/Components/CADGeometry/IndexedQuadSet.js +67 -67
  341. package/src/x_ite/Components/CADGeometry/QuadSet.js +64 -63
  342. package/src/x_ite/Components/CADGeometry/X3DProductStructureChildNode.js +13 -15
  343. package/src/x_ite/Components/Core/MetadataBoolean.js +38 -40
  344. package/src/x_ite/Components/Core/MetadataDouble.js +38 -40
  345. package/src/x_ite/Components/Core/MetadataFloat.js +38 -40
  346. package/src/x_ite/Components/Core/MetadataInteger.js +38 -40
  347. package/src/x_ite/Components/Core/MetadataSet.js +38 -40
  348. package/src/x_ite/Components/Core/MetadataString.js +38 -40
  349. package/src/x_ite/Components/Core/WorldInfo.js +42 -42
  350. package/src/x_ite/Components/Core/X3DBindableNode.js +20 -20
  351. package/src/x_ite/Components/Core/X3DChildNode.js +38 -40
  352. package/src/x_ite/Components/Core/X3DInfoNode.js +13 -15
  353. package/src/x_ite/Components/Core/X3DMetadataObject.js +11 -13
  354. package/src/x_ite/Components/Core/X3DNode.js +795 -14
  355. package/src/x_ite/Components/Core/X3DPrototypeInstance.js +585 -479
  356. package/src/x_ite/Components/Core/X3DSensorNode.js +13 -15
  357. package/src/x_ite/Components/Core.js +39 -39
  358. package/src/x_ite/Components/CubeMapTexturing/ComposedCubeMapTexture.js +193 -200
  359. package/src/x_ite/Components/CubeMapTexturing/GeneratedCubeMapTexture.js +209 -206
  360. package/src/x_ite/Components/CubeMapTexturing/ImageCubeMapTexture.js +213 -219
  361. package/src/x_ite/Components/CubeMapTexturing/X3DEnvironmentTextureNode.js +69 -60
  362. package/src/x_ite/Components/DIS/DISEntityManager.js +38 -40
  363. package/src/x_ite/Components/DIS/DISEntityTypeMapping.js +59 -41
  364. package/src/x_ite/Components/DIS/EspduTransform.js +128 -128
  365. package/src/x_ite/Components/DIS/ReceiverPdu.js +68 -68
  366. package/src/x_ite/Components/DIS/SignalPdu.js +68 -68
  367. package/src/x_ite/Components/DIS/TransmitterPdu.js +84 -84
  368. package/src/x_ite/Components/EnvironmentalEffects/Background.js +87 -89
  369. package/src/x_ite/Components/EnvironmentalEffects/Fog.js +59 -59
  370. package/src/x_ite/Components/EnvironmentalEffects/FogCoordinate.js +78 -78
  371. package/src/x_ite/Components/EnvironmentalEffects/LocalFog.js +56 -56
  372. package/src/x_ite/Components/EnvironmentalEffects/TextureBackground.js +86 -88
  373. package/src/x_ite/Components/EnvironmentalEffects/X3DBackgroundNode.js +582 -589
  374. package/src/x_ite/Components/EnvironmentalEffects/X3DFogObject.js +105 -105
  375. package/src/x_ite/Components/EnvironmentalEffects.js +25 -25
  376. package/src/x_ite/Components/EnvironmentalSensor/ProximitySensor.js +229 -229
  377. package/src/x_ite/Components/EnvironmentalSensor/TransformSensor.js +256 -256
  378. package/src/x_ite/Components/EnvironmentalSensor/VisibilitySensor.js +114 -114
  379. package/src/x_ite/Components/EnvironmentalSensor/X3DEnvironmentalSensorNode.js +71 -71
  380. package/src/x_ite/Components/EnvironmentalSensor.js +19 -19
  381. package/src/x_ite/Components/EventUtilities/BooleanFilter.js +50 -52
  382. package/src/x_ite/Components/EventUtilities/BooleanSequencer.js +50 -52
  383. package/src/x_ite/Components/EventUtilities/BooleanToggle.js +43 -45
  384. package/src/x_ite/Components/EventUtilities/BooleanTrigger.js +42 -44
  385. package/src/x_ite/Components/EventUtilities/IntegerSequencer.js +50 -52
  386. package/src/x_ite/Components/EventUtilities/IntegerTrigger.js +43 -45
  387. package/src/x_ite/Components/EventUtilities/TimeTrigger.js +43 -45
  388. package/src/x_ite/Components/EventUtilities/X3DSequencerNode.js +92 -94
  389. package/src/x_ite/Components/EventUtilities/X3DTriggerNode.js +13 -15
  390. package/src/x_ite/Components/Followers/ColorChaser.js +78 -78
  391. package/src/x_ite/Components/Followers/ColorDamper.js +78 -78
  392. package/src/x_ite/Components/Followers/CoordinateChaser.js +46 -46
  393. package/src/x_ite/Components/Followers/CoordinateDamper.js +48 -48
  394. package/src/x_ite/Components/Followers/OrientationChaser.js +64 -64
  395. package/src/x_ite/Components/Followers/OrientationDamper.js +61 -61
  396. package/src/x_ite/Components/Followers/PositionChaser.js +42 -42
  397. package/src/x_ite/Components/Followers/PositionChaser2D.js +42 -42
  398. package/src/x_ite/Components/Followers/PositionDamper.js +44 -44
  399. package/src/x_ite/Components/Followers/PositionDamper2D.js +44 -44
  400. package/src/x_ite/Components/Followers/ScalarChaser.js +70 -70
  401. package/src/x_ite/Components/Followers/ScalarDamper.js +60 -60
  402. package/src/x_ite/Components/Followers/TexCoordChaser2D.js +46 -46
  403. package/src/x_ite/Components/Followers/TexCoordDamper2D.js +48 -48
  404. package/src/x_ite/Components/Followers/X3DChaserNode.js +194 -194
  405. package/src/x_ite/Components/Followers/X3DDamperNode.js +120 -120
  406. package/src/x_ite/Components/Followers/X3DFollowerNode.js +83 -83
  407. package/src/x_ite/Components/Followers.js +45 -45
  408. package/src/x_ite/Components/Geometry2D/Arc2D.js +99 -113
  409. package/src/x_ite/Components/Geometry2D/ArcClose2D.js +164 -166
  410. package/src/x_ite/Components/Geometry2D/Circle2D.js +59 -67
  411. package/src/x_ite/Components/Geometry2D/Disk2D.js +207 -211
  412. package/src/x_ite/Components/Geometry2D/Polyline2D.js +43 -52
  413. package/src/x_ite/Components/Geometry2D/Polypoint2D.js +43 -60
  414. package/src/x_ite/Components/Geometry2D/Rectangle2D.js +76 -73
  415. package/src/x_ite/Components/Geometry2D/TriangleSet2D.js +69 -71
  416. package/src/x_ite/Components/Geometry3D/Box.js +90 -86
  417. package/src/x_ite/Components/Geometry3D/Cone.js +185 -187
  418. package/src/x_ite/Components/Geometry3D/Cylinder.js +246 -246
  419. package/src/x_ite/Components/Geometry3D/ElevationGrid.js +383 -384
  420. package/src/x_ite/Components/Geometry3D/Extrusion.js +653 -647
  421. package/src/x_ite/Components/Geometry3D/IndexedFaceSet.js +437 -445
  422. package/src/x_ite/Components/Geometry3D/Sphere.js +72 -74
  423. package/src/x_ite/Components/Geometry3D.js +25 -25
  424. package/src/x_ite/Components/Geospatial/GeoCoordinate.js +189 -191
  425. package/src/x_ite/Components/Geospatial/GeoElevationGrid.js +381 -383
  426. package/src/x_ite/Components/Geospatial/GeoLOD.js +397 -397
  427. package/src/x_ite/Components/Geospatial/GeoLocation.js +56 -56
  428. package/src/x_ite/Components/Geospatial/GeoMetadata.js +54 -36
  429. package/src/x_ite/Components/Geospatial/GeoOrigin.js +50 -52
  430. package/src/x_ite/Components/Geospatial/GeoPositionInterpolator.js +81 -83
  431. package/src/x_ite/Components/Geospatial/GeoProximitySensor.js +95 -97
  432. package/src/x_ite/Components/Geospatial/GeoTouchSensor.js +77 -79
  433. package/src/x_ite/Components/Geospatial/GeoTransform.js +79 -79
  434. package/src/x_ite/Components/Geospatial/GeoViewpoint.js +278 -278
  435. package/src/x_ite/Components/Geospatial/X3DGeospatialObject.js +216 -218
  436. package/src/x_ite/Components/Grouping/Group.js +37 -37
  437. package/src/x_ite/Components/Grouping/StaticGroup.js +245 -245
  438. package/src/x_ite/Components/Grouping/Switch.js +234 -234
  439. package/src/x_ite/Components/Grouping/Transform.js +42 -42
  440. package/src/x_ite/Components/Grouping/X3DBoundedObject.js +93 -93
  441. package/src/x_ite/Components/Grouping/X3DGroupingNode.js +654 -649
  442. package/src/x_ite/Components/Grouping/X3DTransformMatrix3DNode.js +99 -99
  443. package/src/x_ite/Components/Grouping/X3DTransformNode.js +31 -31
  444. package/src/x_ite/Components/Grouping.js +27 -27
  445. package/src/x_ite/Components/HAnim/HAnimDisplacer.js +35 -35
  446. package/src/x_ite/Components/HAnim/HAnimHumanoid.js +293 -293
  447. package/src/x_ite/Components/HAnim/HAnimJoint.js +137 -137
  448. package/src/x_ite/Components/HAnim/HAnimMotion.js +50 -50
  449. package/src/x_ite/Components/HAnim/HAnimSegment.js +44 -44
  450. package/src/x_ite/Components/HAnim/HAnimSite.js +43 -43
  451. package/src/x_ite/Components/Interpolation/ColorInterpolator.js +61 -63
  452. package/src/x_ite/Components/Interpolation/CoordinateInterpolator.js +60 -62
  453. package/src/x_ite/Components/Interpolation/CoordinateInterpolator2D.js +57 -59
  454. package/src/x_ite/Components/Interpolation/EaseInEaseOut.js +79 -80
  455. package/src/x_ite/Components/Interpolation/NormalInterpolator.js +96 -93
  456. package/src/x_ite/Components/Interpolation/OrientationInterpolator.js +70 -70
  457. package/src/x_ite/Components/Interpolation/PositionInterpolator.js +57 -59
  458. package/src/x_ite/Components/Interpolation/PositionInterpolator2D.js +57 -59
  459. package/src/x_ite/Components/Interpolation/ScalarInterpolator.js +53 -55
  460. package/src/x_ite/Components/Interpolation/SplinePositionInterpolator.js +78 -80
  461. package/src/x_ite/Components/Interpolation/SplinePositionInterpolator2D.js +77 -79
  462. package/src/x_ite/Components/Interpolation/SplineScalarInterpolator.js +78 -80
  463. package/src/x_ite/Components/Interpolation/SquadOrientationInterpolator.js +66 -66
  464. package/src/x_ite/Components/Interpolation/X3DInterpolatorNode.js +67 -69
  465. package/src/x_ite/Components/Interpolation.js +39 -39
  466. package/src/x_ite/Components/KeyDeviceSensor/KeySensor.js +304 -306
  467. package/src/x_ite/Components/KeyDeviceSensor/StringSensor.js +102 -104
  468. package/src/x_ite/Components/KeyDeviceSensor/X3DKeyDeviceSensorNode.js +51 -51
  469. package/src/x_ite/Components/Layering/Layer.js +50 -50
  470. package/src/x_ite/Components/Layering/LayerSet.js +160 -161
  471. package/src/x_ite/Components/Layering/Viewport.js +118 -118
  472. package/src/x_ite/Components/Layering/X3DLayerNode.js +322 -322
  473. package/src/x_ite/Components/Layering/X3DViewportNode.js +13 -13
  474. package/src/x_ite/Components/Layering.js +21 -21
  475. package/src/x_ite/Components/Layout/Layout.js +576 -578
  476. package/src/x_ite/Components/Layout/LayoutGroup.js +126 -126
  477. package/src/x_ite/Components/Layout/LayoutLayer.js +53 -53
  478. package/src/x_ite/Components/Layout/ScreenFontStyle.js +48 -48
  479. package/src/x_ite/Components/Layout/ScreenGroup.js +136 -136
  480. package/src/x_ite/Components/Layout/X3DLayoutNode.js +12 -14
  481. package/src/x_ite/Components/Lighting/DirectionalLight.js +239 -246
  482. package/src/x_ite/Components/Lighting/PointLight.js +296 -303
  483. package/src/x_ite/Components/Lighting/SpotLight.js +321 -316
  484. package/src/x_ite/Components/Lighting/X3DLightNode.js +153 -153
  485. package/src/x_ite/Components/Lighting.js +19 -19
  486. package/src/x_ite/Components/NURBS/Contour2D.js +81 -83
  487. package/src/x_ite/Components/NURBS/ContourPolyline2D.js +100 -102
  488. package/src/x_ite/Components/NURBS/CoordinateDouble.js +32 -34
  489. package/src/x_ite/Components/NURBS/NurbsCurve.js +167 -169
  490. package/src/x_ite/Components/NURBS/NurbsCurve2D.js +149 -149
  491. package/src/x_ite/Components/NURBS/NurbsOrientationInterpolator.js +166 -166
  492. package/src/x_ite/Components/NURBS/NurbsPatchSurface.js +45 -47
  493. package/src/x_ite/Components/NURBS/NurbsPositionInterpolator.js +154 -154
  494. package/src/x_ite/Components/NURBS/NurbsSet.js +125 -125
  495. package/src/x_ite/Components/NURBS/NurbsSurfaceInterpolator.js +128 -130
  496. package/src/x_ite/Components/NURBS/NurbsSweptSurface.js +120 -122
  497. package/src/x_ite/Components/NURBS/NurbsSwungSurface.js +120 -122
  498. package/src/x_ite/Components/NURBS/NurbsTextureCoordinate.js +93 -93
  499. package/src/x_ite/Components/NURBS/NurbsTrimmedSurface.js +88 -90
  500. package/src/x_ite/Components/NURBS/X3DNurbsControlCurveNode.js +13 -15
  501. package/src/x_ite/Components/NURBS/X3DNurbsSurfaceGeometryNode.js +339 -339
  502. package/src/x_ite/Components/NURBS/X3DParametricGeometryNode.js +18 -20
  503. package/src/x_ite/Components/Navigation/Billboard.js +132 -132
  504. package/src/x_ite/Components/Navigation/Collision.js +116 -116
  505. package/src/x_ite/Components/Navigation/LOD.js +308 -308
  506. package/src/x_ite/Components/Navigation/NavigationInfo.js +279 -285
  507. package/src/x_ite/Components/Navigation/OrthoViewpoint.js +258 -258
  508. package/src/x_ite/Components/Navigation/Viewpoint.js +137 -137
  509. package/src/x_ite/Components/Navigation/ViewpointGroup.js +169 -171
  510. package/src/x_ite/Components/Navigation/X3DViewpointNode.js +450 -453
  511. package/src/x_ite/Components/Navigation.js +27 -27
  512. package/src/x_ite/Components/Networking/Anchor.js +140 -128
  513. package/src/x_ite/Components/Networking/Inline.js +156 -197
  514. package/src/x_ite/Components/Networking/LoadSensor.js +193 -195
  515. package/src/x_ite/Components/Networking/X3DNetworkSensorNode.js +13 -15
  516. package/src/x_ite/Components/Networking/X3DUrlObject.js +170 -116
  517. package/src/x_ite/Components/Networking.js +21 -21
  518. package/src/x_ite/Components/ParticleSystems/BoundedPhysicsModel.js +62 -64
  519. package/src/x_ite/Components/ParticleSystems/ConeEmitter.js +81 -83
  520. package/src/x_ite/Components/ParticleSystems/ExplosionEmitter.js +59 -61
  521. package/src/x_ite/Components/ParticleSystems/ForcePhysicsModel.js +42 -44
  522. package/src/x_ite/Components/ParticleSystems/ParticleSystem.js +1433 -1433
  523. package/src/x_ite/Components/ParticleSystems/PointEmitter.js +77 -79
  524. package/src/x_ite/Components/ParticleSystems/PolylineEmitter.js +196 -196
  525. package/src/x_ite/Components/ParticleSystems/SurfaceEmitter.js +195 -195
  526. package/src/x_ite/Components/ParticleSystems/VolumeEmitter.js +250 -250
  527. package/src/x_ite/Components/ParticleSystems/WindPhysicsModel.js +69 -71
  528. package/src/x_ite/Components/ParticleSystems/X3DParticleEmitterNode.js +346 -346
  529. package/src/x_ite/Components/ParticleSystems/X3DParticlePhysicsModelNode.js +15 -17
  530. package/src/x_ite/Components/Picking/LinePickSensor.js +284 -286
  531. package/src/x_ite/Components/Picking/PickableGroup.js +155 -155
  532. package/src/x_ite/Components/Picking/PointPickSensor.js +272 -272
  533. package/src/x_ite/Components/Picking/PrimitivePickSensor.js +207 -209
  534. package/src/x_ite/Components/Picking/VolumePickSensor.js +182 -184
  535. package/src/x_ite/Components/Picking/X3DPickSensorNode.js +382 -382
  536. package/src/x_ite/Components/Picking/X3DPickableObject.js +28 -30
  537. package/src/x_ite/Components/PointingDeviceSensor/CylinderSensor.js +257 -259
  538. package/src/x_ite/Components/PointingDeviceSensor/PlaneSensor.js +245 -247
  539. package/src/x_ite/Components/PointingDeviceSensor/SphereSensor.js +173 -175
  540. package/src/x_ite/Components/PointingDeviceSensor/TouchSensor.js +61 -63
  541. package/src/x_ite/Components/PointingDeviceSensor/X3DDragSensorNode.js +14 -16
  542. package/src/x_ite/Components/PointingDeviceSensor/X3DPointingDeviceSensorNode.js +57 -59
  543. package/src/x_ite/Components/PointingDeviceSensor/X3DTouchSensorNode.js +19 -21
  544. package/src/x_ite/Components/PointingDeviceSensor.js +25 -25
  545. package/src/x_ite/Components/ProjectiveTextureMapping/TextureProjectorParallel.js +191 -191
  546. package/src/x_ite/Components/ProjectiveTextureMapping/TextureProjectorPerspective.js +162 -162
  547. package/src/x_ite/Components/ProjectiveTextureMapping/X3DTextureProjectorNode.js +156 -156
  548. package/src/x_ite/Components/Rendering/ClipPlane.js +120 -120
  549. package/src/x_ite/Components/Rendering/Color.js +112 -112
  550. package/src/x_ite/Components/Rendering/ColorRGBA.js +114 -114
  551. package/src/x_ite/Components/Rendering/Coordinate.js +33 -35
  552. package/src/x_ite/Components/Rendering/IndexedLineSet.js +236 -243
  553. package/src/x_ite/Components/Rendering/IndexedTriangleFanSet.js +102 -102
  554. package/src/x_ite/Components/Rendering/IndexedTriangleSet.js +55 -55
  555. package/src/x_ite/Components/Rendering/IndexedTriangleStripSet.js +110 -110
  556. package/src/x_ite/Components/Rendering/LineSet.js +172 -179
  557. package/src/x_ite/Components/Rendering/Normal.js +100 -100
  558. package/src/x_ite/Components/Rendering/PointSet.js +142 -154
  559. package/src/x_ite/Components/Rendering/TriangleFanSet.js +73 -73
  560. package/src/x_ite/Components/Rendering/TriangleSet.js +51 -53
  561. package/src/x_ite/Components/Rendering/TriangleStripSet.js +76 -76
  562. package/src/x_ite/Components/Rendering/X3DColorNode.js +25 -27
  563. package/src/x_ite/Components/Rendering/X3DComposedGeometryNode.js +318 -321
  564. package/src/x_ite/Components/Rendering/X3DCoordinateNode.js +132 -132
  565. package/src/x_ite/Components/Rendering/X3DGeometricPropertyNode.js +13 -15
  566. package/src/x_ite/Components/Rendering/X3DGeometryNode.js +1190 -1171
  567. package/src/x_ite/Components/Rendering/X3DLineGeometryNode.js +231 -189
  568. package/src/x_ite/Components/Rendering/X3DNormalNode.js +13 -15
  569. package/src/x_ite/Components/Rendering/X3DPointGeometryNode.js +267 -0
  570. package/src/x_ite/Components/Rendering.js +53 -53
  571. package/src/x_ite/Components/RigidBodyPhysics/BallJoint.js +149 -149
  572. package/src/x_ite/Components/RigidBodyPhysics/CollidableOffset.js +229 -229
  573. package/src/x_ite/Components/RigidBodyPhysics/CollidableShape.js +465 -465
  574. package/src/x_ite/Components/RigidBodyPhysics/CollisionCollection.js +152 -154
  575. package/src/x_ite/Components/RigidBodyPhysics/CollisionSensor.js +223 -223
  576. package/src/x_ite/Components/RigidBodyPhysics/CollisionSpace.js +117 -117
  577. package/src/x_ite/Components/RigidBodyPhysics/Contact.js +54 -56
  578. package/src/x_ite/Components/RigidBodyPhysics/DoubleAxisHingeJoint.js +245 -245
  579. package/src/x_ite/Components/RigidBodyPhysics/MotorJoint.js +68 -70
  580. package/src/x_ite/Components/RigidBodyPhysics/RigidBody.js +453 -453
  581. package/src/x_ite/Components/RigidBodyPhysics/RigidBodyCollection.js +326 -326
  582. package/src/x_ite/Components/RigidBodyPhysics/SingleAxisHingeJoint.js +171 -171
  583. package/src/x_ite/Components/RigidBodyPhysics/SliderJoint.js +169 -169
  584. package/src/x_ite/Components/RigidBodyPhysics/UniversalJoint.js +50 -52
  585. package/src/x_ite/Components/RigidBodyPhysics/X3DNBodyCollidableNode.js +101 -101
  586. package/src/x_ite/Components/RigidBodyPhysics/X3DNBodyCollisionSpaceNode.js +15 -15
  587. package/src/x_ite/Components/RigidBodyPhysics/X3DRigidJointNode.js +161 -163
  588. package/src/x_ite/Components/Scripting/Script.js +506 -510
  589. package/src/x_ite/Components/Scripting/X3DScriptNode.js +15 -15
  590. package/src/x_ite/Components/Shaders/ComposedShader.js +215 -178
  591. package/src/x_ite/Components/Shaders/FloatVertexAttribute.js +84 -83
  592. package/src/x_ite/Components/Shaders/Matrix3VertexAttribute.js +74 -74
  593. package/src/x_ite/Components/Shaders/Matrix4VertexAttribute.js +73 -73
  594. package/src/x_ite/Components/Shaders/PackagedShader.js +52 -49
  595. package/src/x_ite/Components/Shaders/ProgramShader.js +36 -38
  596. package/src/x_ite/Components/Shaders/ShaderPart.js +135 -147
  597. package/src/x_ite/Components/Shaders/ShaderProgram.js +49 -46
  598. package/src/x_ite/Components/Shaders/X3DProgrammableShaderObject.js +1259 -1255
  599. package/src/x_ite/Components/Shaders/X3DShaderNode.js +83 -93
  600. package/src/x_ite/Components/Shaders/X3DVertexAttributeNode.js +13 -15
  601. package/src/x_ite/Components/Shaders.js +33 -33
  602. package/src/x_ite/{Execution/ExportedNode.js → Components/Shape/AcousticProperties.js} +41 -71
  603. package/src/x_ite/Components/Shape/Appearance.js +331 -318
  604. package/src/x_ite/Components/Shape/FillProperties.js +101 -98
  605. package/src/x_ite/Components/Shape/LineProperties.js +71 -69
  606. package/src/x_ite/Components/Shape/Material.js +344 -116
  607. package/src/x_ite/Components/Shape/PhysicalMaterial.js +310 -0
  608. package/src/x_ite/Components/Shape/PointProperties.js +79 -95
  609. package/src/x_ite/Components/Shape/Shape.js +178 -181
  610. package/src/x_ite/Components/Shape/TwoSidedMaterial.js +200 -200
  611. package/src/x_ite/Components/Shape/UnlitMaterial.js +93 -46
  612. package/src/x_ite/Components/Shape/X3DAppearanceChildNode.js +13 -15
  613. package/src/x_ite/Components/Shape/X3DAppearanceNode.js +24 -24
  614. package/src/x_ite/Components/Shape/X3DMaterialNode.js +24 -24
  615. package/src/x_ite/Components/Shape/X3DOneSidedMaterialNode.js +158 -54
  616. package/src/x_ite/Components/Shape/X3DShapeNode.js +147 -147
  617. package/src/x_ite/Components/Shape.js +43 -37
  618. package/src/x_ite/Components/Sound/AudioClip.js +135 -140
  619. package/src/x_ite/Components/Sound/Sound.js +246 -246
  620. package/src/x_ite/Components/Sound/X3DSoundNode.js +13 -15
  621. package/src/x_ite/Components/Sound/X3DSoundSourceNode.js +165 -179
  622. package/src/x_ite/Components/Sound.js +19 -19
  623. package/src/x_ite/Components/Text/FontStyle.js +49 -49
  624. package/src/x_ite/Components/Text/Text.js +135 -135
  625. package/src/x_ite/Components/Text/X3DFontStyleNode.js +207 -205
  626. package/src/x_ite/Components/Text.js +17 -17
  627. package/src/x_ite/Components/Texturing/ImageTexture.js +181 -194
  628. package/src/x_ite/Components/Texturing/MovieTexture.js +180 -190
  629. package/src/x_ite/Components/Texturing/MultiTexture.js +255 -262
  630. package/src/x_ite/Components/Texturing/MultiTextureCoordinate.js +124 -118
  631. package/src/x_ite/Components/Texturing/MultiTextureTransform.js +82 -76
  632. package/src/x_ite/Components/Texturing/PixelTexture.js +222 -221
  633. package/src/x_ite/Components/Texturing/TextureCoordinate.js +116 -116
  634. package/src/x_ite/Components/Texturing/TextureCoordinateGenerator.js +90 -90
  635. package/src/x_ite/Components/Texturing/TextureProperties.js +158 -160
  636. package/src/x_ite/Components/Texturing/TextureTransform.js +99 -99
  637. package/src/x_ite/Components/Texturing/X3DSingleTextureCoordinateNode.js +33 -28
  638. package/src/x_ite/Components/Texturing/X3DSingleTextureNode.js +54 -54
  639. package/src/x_ite/Components/Texturing/X3DSingleTextureTransformNode.js +22 -17
  640. package/src/x_ite/Components/Texturing/X3DTexture2DNode.js +135 -124
  641. package/src/x_ite/Components/Texturing/X3DTextureCoordinateNode.js +16 -16
  642. package/src/x_ite/Components/Texturing/X3DTextureNode.js +24 -24
  643. package/src/x_ite/Components/Texturing/X3DTextureTransformNode.js +22 -22
  644. package/src/x_ite/Components/Texturing.js +45 -45
  645. package/src/x_ite/Components/Texturing3D/ComposedTexture3D.js +125 -123
  646. package/src/x_ite/Components/Texturing3D/ImageTexture3D.js +115 -131
  647. package/src/x_ite/Components/Texturing3D/PixelTexture3D.js +158 -160
  648. package/src/x_ite/Components/Texturing3D/TextureCoordinate3D.js +116 -116
  649. package/src/x_ite/Components/Texturing3D/TextureCoordinate4D.js +116 -116
  650. package/src/x_ite/Components/Texturing3D/TextureTransform3D.js +88 -88
  651. package/src/x_ite/Components/Texturing3D/TextureTransformMatrix3D.js +46 -46
  652. package/src/x_ite/Components/Texturing3D/X3DTexture3DNode.js +135 -121
  653. package/src/x_ite/Components/Time/TimeSensor.js +155 -152
  654. package/src/x_ite/Components/Time/X3DTimeDependentNode.js +299 -302
  655. package/src/x_ite/Components/Time.js +15 -15
  656. package/src/x_ite/Components/VolumeRendering/BlendedVolumeStyle.js +338 -338
  657. package/src/x_ite/Components/VolumeRendering/BoundaryEnhancementVolumeStyle.js +80 -80
  658. package/src/x_ite/Components/VolumeRendering/CartoonVolumeStyle.js +228 -228
  659. package/src/x_ite/Components/VolumeRendering/ComposedVolumeStyle.js +163 -163
  660. package/src/x_ite/Components/VolumeRendering/EdgeEnhancementVolumeStyle.js +117 -117
  661. package/src/x_ite/Components/VolumeRendering/IsoSurfaceVolumeData.js +334 -334
  662. package/src/x_ite/Components/VolumeRendering/OpacityMapVolumeStyle.js +116 -116
  663. package/src/x_ite/Components/VolumeRendering/ProjectionVolumeStyle.js +167 -167
  664. package/src/x_ite/Components/VolumeRendering/SegmentedVolumeData.js +247 -247
  665. package/src/x_ite/Components/VolumeRendering/ShadedVolumeStyle.js +198 -198
  666. package/src/x_ite/Components/VolumeRendering/SilhouetteEnhancementVolumeStyle.js +116 -116
  667. package/src/x_ite/Components/VolumeRendering/ToneMappedVolumeStyle.js +126 -126
  668. package/src/x_ite/Components/VolumeRendering/VolumeData.js +173 -173
  669. package/src/x_ite/Components/VolumeRendering/X3DComposableVolumeRenderStyleNode.js +12 -12
  670. package/src/x_ite/Components/VolumeRendering/X3DVolumeDataNode.js +167 -167
  671. package/src/x_ite/Components/VolumeRendering/X3DVolumeRenderStyleNode.js +70 -70
  672. package/src/x_ite/Components/X_ITE/BlendMode.js +143 -145
  673. package/src/x_ite/Components.js +47 -47
  674. package/src/x_ite/Configuration/ComponentInfo.js +47 -42
  675. package/src/x_ite/Configuration/ComponentInfoArray.js +21 -19
  676. package/src/x_ite/Configuration/ProfileInfo.js +33 -23
  677. package/src/x_ite/Configuration/ProfileInfoArray.js +26 -16
  678. package/src/x_ite/Configuration/SupportedComponents.js +311 -311
  679. package/src/x_ite/Configuration/SupportedNodes.js +53 -38
  680. package/src/x_ite/Configuration/SupportedProfiles.js +190 -190
  681. package/src/x_ite/Configuration/UnitInfo.js +60 -51
  682. package/src/x_ite/Configuration/UnitInfoArray.js +17 -10
  683. package/src/x_ite/DEBUG.js +2 -2
  684. package/src/x_ite/Execution/BindableList.js +146 -149
  685. package/src/x_ite/Execution/BindableStack.js +130 -123
  686. package/src/x_ite/Execution/ExportedNodesArray.js +75 -0
  687. package/src/x_ite/Execution/ImportedNodesArray.js +75 -0
  688. package/src/x_ite/{Basic/X3DFieldDefinition.js → Execution/NamedNodesArray.js} +20 -10
  689. package/src/x_ite/Execution/Scene.js +93 -90
  690. package/src/x_ite/Execution/X3DExecutionContext.js +957 -781
  691. package/src/x_ite/Execution/X3DExportedNode.js +152 -0
  692. package/src/x_ite/Execution/X3DImportedNode.js +393 -0
  693. package/src/x_ite/Execution/X3DScene.js +546 -493
  694. package/src/x_ite/Execution/X3DWorld.js +171 -0
  695. package/src/x_ite/Fallback.js +31 -31
  696. package/src/x_ite/Fields/ArrayFields.js +463 -443
  697. package/src/x_ite/Fields/SFBool.js +50 -47
  698. package/src/x_ite/Fields/SFColor.js +163 -160
  699. package/src/x_ite/Fields/SFColorRGBA.js +155 -152
  700. package/src/x_ite/Fields/SFDouble.js +51 -48
  701. package/src/x_ite/Fields/SFFloat.js +51 -48
  702. package/src/x_ite/Fields/SFImage.js +216 -213
  703. package/src/x_ite/Fields/SFInt32.js +47 -44
  704. package/src/x_ite/Fields/SFMatrix3.js +74 -71
  705. package/src/x_ite/Fields/SFMatrix4.js +68 -65
  706. package/src/x_ite/Fields/SFMatrixPrototypeTemplate.js +98 -98
  707. package/src/x_ite/Fields/SFNode.js +392 -299
  708. package/src/x_ite/Fields/SFNodeCache.js +22 -33
  709. package/src/x_ite/Fields/SFRotation.js +178 -175
  710. package/src/x_ite/Fields/SFString.js +71 -68
  711. package/src/x_ite/Fields/SFTime.js +47 -44
  712. package/src/x_ite/Fields/SFVec2.js +73 -70
  713. package/src/x_ite/Fields/SFVec3.js +105 -102
  714. package/src/x_ite/Fields/SFVec4.js +118 -115
  715. package/src/x_ite/Fields/SFVecPrototypeTemplate.js +94 -94
  716. package/src/x_ite/Fields.js +44 -44
  717. package/src/x_ite/InputOutput/FileLoader.js +426 -531
  718. package/src/x_ite/InputOutput/Generator.js +379 -376
  719. package/src/x_ite/{Configuration/X3DInfoArray.js → Parser/GoldenGate.js} +54 -86
  720. package/src/x_ite/Parser/HTMLSupport.js +28 -6
  721. package/src/x_ite/Parser/JSONParser.js +414 -388
  722. package/src/x_ite/Parser/VRMLParser.js +2964 -0
  723. package/src/x_ite/Parser/X3DParser.js +128 -128
  724. package/src/x_ite/Parser/XMLParser.js +1231 -1178
  725. package/src/x_ite/Prototype/ExternProtoDeclarationArray.js +17 -27
  726. package/src/x_ite/Prototype/ProtoDeclarationArray.js +17 -27
  727. package/src/x_ite/Prototype/X3DExternProtoDeclaration.js +279 -297
  728. package/src/x_ite/Prototype/X3DProtoDeclaration.js +264 -263
  729. package/src/x_ite/Prototype/X3DProtoDeclarationNode.js +58 -35
  730. package/src/x_ite/Rendering/DependentRenderer.js +83 -80
  731. package/src/x_ite/Rendering/TextureBuffer.js +171 -168
  732. package/src/x_ite/{Bits → Rendering}/TraverseType.js +11 -11
  733. package/src/x_ite/Rendering/X3DRenderObject.js +895 -906
  734. package/src/x_ite/Routing/RouteArray.js +19 -71
  735. package/src/x_ite/Routing/X3DRoute.js +185 -179
  736. package/src/x_ite/Routing/X3DRoutingContext.js +60 -54
  737. package/src/x_ite/X3D.js +191 -175
  738. package/src/x_ite.config.js +83 -83
  739. package/src/x_ite.css +279 -288
  740. package/src/x_ite.html +226 -193
  741. package/src/x_ite.js +100 -127
  742. package/x_ite.min.html +220 -187
  743. package/src/assets/shaders/webgl1/PointSet.fs +0 -100
  744. package/src/assets/shaders/webgl1/PointSet.vs +0 -70
  745. package/src/assets/shaders/webgl1/Wireframe.fs +0 -74
  746. package/src/assets/shaders/webgl1/Wireframe.vs +0 -63
  747. package/src/assets/shaders/webgl2/PointSet.fs +0 -99
  748. package/src/assets/shaders/webgl2/PointSet.vs +0 -71
  749. package/src/assets/shaders/webgl2/Wireframe.fs +0 -73
  750. package/src/assets/shaders/webgl2/Wireframe.vs +0 -64
  751. package/src/x_ite/Basic/X3DBaseNode.js +0 -1253
  752. package/src/x_ite/Basic/X3DField.js +0 -370
  753. package/src/x_ite/Basic/X3DObjectArrayField.js +0 -545
  754. package/src/x_ite/Basic/X3DTypedArrayField.js +0 -839
  755. package/src/x_ite/Browser/Core/X3DCoreContext.js.~1~ +0 -714
  756. package/src/x_ite/Components/Texturing/X3DTexture2DNode.js.~1~ +0 -209
  757. package/src/x_ite/Execution/ImportedNode.js +0 -375
  758. package/src/x_ite/Execution/World.js +0 -162
  759. package/src/x_ite/Parser/Parser.js +0 -2944
@@ -0,0 +1,37 @@
1
+ #version 300 es
2
+ precision highp float;
3
+ precision highp int;
4
+ uniform mat4 x3d_ProjectionMatrix;
5
+ uniform mat4 x3d_ModelViewMatrix;
6
+ uniform mat3 x3d_NormalMatrix;
7
+ in vec4 x3d_Vertex;
8
+ in vec3 x3d_Normal;
9
+ in vec4 x3d_TexCoord0;
10
+ in vec4 x3d_TexCoord1;
11
+ in vec4 x3d_Color;
12
+ out vec3 vertex;
13
+ out vec3 normal;
14
+ out vec4 texCoord0;
15
+ out vec4 texCoord1;
16
+ out vec4 color;
17
+ out vec3 localNormal;
18
+ out vec3 localVertex;
19
+ #ifdef X3D_LOGARITHMIC_DEPTH_BUFFER
20
+ out float depth;
21
+ #endif
22
+ void
23
+ main ()
24
+ {
25
+ vec4 position = x3d_ModelViewMatrix * x3d_Vertex;
26
+ vertex = position .xyz;
27
+ normal = normalize (x3d_NormalMatrix * x3d_Normal);
28
+ texCoord0 = x3d_TexCoord0;
29
+ texCoord1 = x3d_TexCoord1;
30
+ color = x3d_Color;
31
+ localNormal = x3d_Normal;
32
+ localVertex = x3d_Vertex .xyz;
33
+ gl_Position = x3d_ProjectionMatrix * position;
34
+ #ifdef X3D_LOGARITHMIC_DEPTH_BUFFER
35
+ depth = 1.0 + gl_Position .w;
36
+ #endif
37
+ }
@@ -290,19 +290,20 @@ return 0.0;
290
290
  }
291
291
  #endif
292
292
  precision highp sampler3D;
293
+ uniform mat4 x3d_TextureMatrix [x3d_MaxTextures];
293
294
  uniform int x3d_NumTextures;
294
295
  uniform int x3d_TextureType [x3d_MaxTextures];
295
296
  uniform sampler2D x3d_Texture2D [x3d_MaxTextures];
296
297
  uniform sampler3D x3d_Texture3D [x3d_MaxTextures];
297
- uniform samplerCube x3d_CubeMapTexture [x3d_MaxTextures];
298
+ uniform samplerCube x3d_TextureCube [x3d_MaxTextures];
298
299
  #ifdef X3D_MULTI_TEXTURING
299
- #define M_PI 3.14159265358979323846
300
300
  float rand (vec2 co) { return fract (sin (dot (co.xy, vec2 (12.9898,78.233))) * 43758.5453); }
301
301
  float rand (vec2 co, float l) { return rand (vec2 (rand (co), l)); }
302
302
  float rand (vec2 co, float l, float t) { return rand (vec2 (rand (co, l), t)); }
303
303
  float
304
304
  perlin (vec2 p, float dim, float time)
305
305
  {
306
+ const float M_PI = 3.14159265358979323846;
306
307
  vec2 pos = floor (p * dim);
307
308
  vec2 posx = pos + vec2 (1.0, 0.0);
308
309
  vec2 posy = pos + vec2 (0.0, 1.0);
@@ -330,7 +331,7 @@ uniform int x3d_NumProjectiveTextures;
330
331
  uniform sampler2D x3d_ProjectiveTexture [x3d_MaxTextures];
331
332
  uniform mat4 x3d_ProjectiveTextureMatrix [x3d_MaxTextures];
332
333
  uniform vec3 x3d_ProjectiveTextureLocation [x3d_MaxTextures];
333
- #endif
334
+ #endif
334
335
  uniform vec4 x3d_MultiTextureColor;
335
336
  uniform x3d_MultiTextureParameters x3d_MultiTexture [x3d_MaxTextures];
336
337
  uniform x3d_TextureCoordinateGeneratorParameters x3d_TextureCoordinateGenerator [x3d_MaxTextures];
@@ -358,14 +359,14 @@ return vec4 (0.0);
358
359
  }
359
360
  }
360
361
  vec4
361
- getTextureCoordinate (const in x3d_TextureCoordinateGeneratorParameters textureCoordinateGenerator, const in int i)
362
+ getTexCoord (const in x3d_TextureCoordinateGeneratorParameters textureCoordinateGenerator, const in int textureTransformMapping, const in int textureCoordinateMapping)
362
363
  {
363
364
  int mode = textureCoordinateGenerator .mode;
364
365
  switch (mode)
365
366
  {
366
367
  case x3d_None:
367
368
  {
368
- return getTexCoord (i);
369
+ return x3d_TextureMatrix [textureTransformMapping] * getTexCoord (textureCoordinateMapping);
369
370
  }
370
371
  case x3d_Sphere:
371
372
  {
@@ -426,9 +427,18 @@ return vec4 (refract (normalize (localVertex - eye), -N, eta), 1.0);
426
427
  }
427
428
  default:
428
429
  {
429
- return getTexCoord (i);
430
+ return x3d_TextureMatrix [textureTransformMapping] * getTexCoord (textureCoordinateMapping);
431
+ }
430
432
  }
431
433
  }
434
+ vec4
435
+ getTexCoord (const in int textureTransformMapping, const in int textureCoordinateMapping)
436
+ {
437
+ vec4 texCoord = getTexCoord (x3d_TextureCoordinateGenerator [textureCoordinateMapping], textureTransformMapping, textureCoordinateMapping);
438
+ texCoord .stp /= texCoord .q;
439
+ if ((x3d_GeometryType == x3d_Geometry2D) && (gl_FrontFacing == false))
440
+ texCoord .s = 1.0 - texCoord .s;
441
+ return texCoord;
432
442
  }
433
443
  vec4
434
444
  getTexture2D (const in int i, const in vec2 texCoord)
@@ -484,13 +494,13 @@ switch (i)
484
494
  #if x3d_MaxTextures > 0
485
495
  case 0:
486
496
  {
487
- return texture (x3d_CubeMapTexture [0], texCoord);
497
+ return texture (x3d_TextureCube [0], texCoord);
488
498
  }
489
499
  #endif
490
500
  #if x3d_MaxTextures > 1
491
501
  case 1:
492
502
  {
493
- return texture (x3d_CubeMapTexture [1], texCoord);
503
+ return texture (x3d_TextureCube [1], texCoord);
494
504
  }
495
505
  #endif
496
506
  default:
@@ -507,11 +517,8 @@ for (int i = 0; i < x3d_MaxTextures; ++ i)
507
517
  {
508
518
  if (i == x3d_NumTextures)
509
519
  break;
510
- vec4 texCoord = getTextureCoordinate (x3d_TextureCoordinateGenerator [i], i);
520
+ vec4 texCoord = getTexCoord (i, i);
511
521
  vec4 textureColor = vec4 (1.0);
512
- texCoord .stp /= texCoord .q;
513
- if ((x3d_GeometryType == x3d_Geometry2D) && (gl_FrontFacing == false))
514
- texCoord .s = 1.0 - texCoord .s;
515
522
  switch (x3d_TextureType [i])
516
523
  {
517
524
  case x3d_TextureType2D:
@@ -524,7 +531,7 @@ case x3d_TextureType3D:
524
531
  textureColor = getTexture3D (i, texCoord .stp);
525
532
  break;
526
533
  }
527
- case x3d_TextureTypeCubeMapTexture:
534
+ case x3d_TextureTypeCube:
528
535
  {
529
536
  textureColor = getTextureCube (i, texCoord .stp);
530
537
  break;
@@ -825,14 +832,19 @@ currentColor *= getProjectiveTexture (i, texCoord .st);
825
832
  }
826
833
  return currentColor;
827
834
  }
828
- #else
835
+ #else
829
836
  vec4
830
837
  getProjectiveTextureColor (in vec4 currentColor)
831
838
  {
832
839
  return currentColor;
833
840
  }
834
- #endif
835
- #else
841
+ #endif
842
+ #else
843
+ vec4
844
+ getTexCoord (const in int textureTransformMapping, const in int textureCoordinateMapping)
845
+ {
846
+ return texCoord0;
847
+ }
836
848
  vec4
837
849
  getTextureColor (const in vec4 diffuseColor, const in vec4 specularColor)
838
850
  {
@@ -853,9 +865,9 @@ case x3d_TextureType3D:
853
865
  textureColor = texture (x3d_Texture3D [0], texCoord .stp);
854
866
  break;
855
867
  }
856
- case x3d_TextureTypeCubeMapTexture:
868
+ case x3d_TextureTypeCube:
857
869
  {
858
- textureColor = texture (x3d_CubeMapTexture [0], texCoord .stp);
870
+ textureColor = texture (x3d_TextureCube [0], texCoord .stp);
859
871
  break;
860
872
  }
861
873
  }
@@ -866,7 +878,44 @@ getProjectiveTextureColor (in vec4 currentColor)
866
878
  {
867
879
  return currentColor;
868
880
  }
881
+ #endif
882
+ #ifdef X3D_MATERIAL_TEXTURES
883
+ uniform x3d_NormalTextureParameters x3d_NormalTexture;
884
+ mat3
885
+ getTBNMatrix (const in vec2 texCoord)
886
+ {
887
+ vec3 pos_dx = dFdx (vertex);
888
+ vec3 pos_dy = dFdy (vertex);
889
+ vec3 tex_dx = dFdx (vec3 (texCoord, 0.0));
890
+ vec3 tex_dy = dFdy (vec3 (texCoord, 0.0));
891
+ vec3 t = (tex_dy .t * pos_dx - tex_dx .t * pos_dy) / (tex_dx .s * tex_dy.t - tex_dy .s * tex_dx .t);
892
+ vec3 N = normalize (normal);
893
+ vec3 T = normalize (t - N * dot (N, t));
894
+ vec3 B = normalize (cross (N, T));
895
+ mat3 tbn = mat3 (T, B, N);
896
+ return tbn;
897
+ }
898
+ #endif
899
+ vec3
900
+ getNormalVector ()
901
+ {
902
+ float facing = gl_FrontFacing ? 1.0 : -1.0;
903
+ #if defined(X3D_NORMAL_TEXTURE)
904
+ vec4 texCoord = getTexCoord (x3d_NormalTexture .textureTransformMapping, x3d_NormalTexture .textureCoordinateMapping);
905
+ vec3 normalScale = vec3 (vec2 (x3d_Material .normalScale), 1.0);
906
+ mat3 tbn = getTBNMatrix (texCoord .st);
907
+ #if defined(X3D_NORMAL_TEXTURE_2D)
908
+ vec3 n = texture (x3d_NormalTexture .texture2D, texCoord .st) .rgb;
909
+ #elif defined(X3D_NORMAL_TEXTURE_3D)
910
+ vec3 n = texture (x3d_NormalTexture .texture3D, texCoord .stp) .rgb;
911
+ #elif defined(X3D_NORMAL_TEXTURE_CUBE)
912
+ vec3 n = texture (x3d_NormalTexture .textureCube, texCoord .stp) .rgb;
913
+ #endif
914
+ return normalize (tbn * ((n * 2.0 - 1.0) * normalScale)) * facing;
915
+ #else
916
+ return normalize (normal) * facing;
869
917
  #endif
918
+ }
870
919
  uniform x3d_FillPropertiesParameters x3d_FillProperties;
871
920
  vec4
872
921
  getHatchColor (vec4 color)
@@ -938,21 +987,130 @@ else if (spotAngle <= beamWidth)
938
987
  return 1.0;
939
988
  return (spotAngle - cutOffAngle) / (beamWidth - cutOffAngle);
940
989
  }
990
+ #ifdef X3D_MATERIAL_TEXTURES
991
+ uniform x3d_AmbientTextureParameters x3d_AmbientTexture;
992
+ uniform x3d_DiffuseTextureParameters x3d_DiffuseTexture;
993
+ uniform x3d_SpecularTextureParameters x3d_SpecularTexture;
994
+ uniform x3d_EmissiveTextureParameters x3d_EmissiveTexture;
995
+ uniform x3d_ShininessTextureParameters x3d_ShininessTexture;
996
+ uniform x3d_OcclusionTextureParameters x3d_OcclusionTexture;
997
+ #endif
998
+ vec3
999
+ getAmbientColor ()
1000
+ {
1001
+ vec3 ambientParameter = x3d_Material .ambientIntensity * x3d_Material .diffuseColor;
1002
+ #if defined(X3D_AMBIENT_TEXTURE)
1003
+ vec4 texCoord = getTexCoord (x3d_AmbientTexture .textureTransformMapping, x3d_AmbientTexture .textureCoordinateMapping);
1004
+ #if defined(X3D_AMBIENT_TEXTURE_2D)
1005
+ return ambientParameter * texture (x3d_AmbientTexture .texture2D, texCoord .st) .rgb;
1006
+ #elif defined(X3D_AMBIENT_TEXTURE_3D)
1007
+ return ambientParameter * texture (x3d_AmbientTexture .texture3D, texCoord .stp) .rgb;
1008
+ #elif defined(X3D_AMBIENT_TEXTURE_CUBE)
1009
+ return ambientParameter * texture (x3d_AmbientTexture .textureCube, texCoord .stp) .rgb;
1010
+ #endif
1011
+ #else
1012
+ return ambientParameter;
1013
+ #endif
1014
+ }
1015
+ vec4
1016
+ getDiffuseColor ()
1017
+ {
1018
+ float alpha = 1.0 - x3d_Material .transparency;
1019
+ vec4 diffuseParameter = x3d_ColorMaterial ? vec4 (color .rgb, color .a * alpha) : vec4 (x3d_Material .diffuseColor, alpha);
1020
+ #if defined(X3D_DIFFUSE_TEXTURE)
1021
+ vec4 texCoord = getTexCoord (x3d_DiffuseTexture .textureTransformMapping, x3d_DiffuseTexture .textureCoordinateMapping);
1022
+ #if defined(X3D_DIFFUSE_TEXTURE_2D)
1023
+ return diffuseParameter * texture (x3d_DiffuseTexture .texture2D, texCoord .st) .rgba;
1024
+ #elif defined(X3D_DIFFUSE_TEXTURE_3D)
1025
+ return diffuseParameter * texture (x3d_DiffuseTexture .texture3D, texCoord .stp) .rgba;
1026
+ #elif defined(X3D_DIFFUSE_TEXTURE_CUBE)
1027
+ return diffuseParameter * texture (x3d_DiffuseTexture .textureCube, texCoord .stp) .rgba;
1028
+ #endif
1029
+ #else
1030
+ return getTextureColor (diffuseParameter, vec4 (x3d_Material .specularColor, alpha));
1031
+ #endif
1032
+ }
1033
+ vec3
1034
+ getSpecularColor ()
1035
+ {
1036
+ vec3 specularParameter = x3d_Material .specularColor;
1037
+ #if defined(X3D_SPECULAR_TEXTURE)
1038
+ vec4 texCoord = getTexCoord (x3d_SpecularTexture .textureTransformMapping, x3d_SpecularTexture .textureCoordinateMapping);
1039
+ #if defined(X3D_SPECULAR_TEXTURE_2D)
1040
+ return specularParameter * texture (x3d_SpecularTexture .texture2D, texCoord .st) .rgb;
1041
+ #elif defined(X3D_SPECULAR_TEXTURE_3D)
1042
+ return specularParameter * texture (x3d_SpecularTexture .texture3D, texCoord .stp) .rgb;
1043
+ #elif defined(X3D_SPECULAR_TEXTURE_CUBE)
1044
+ return specularParameter * texture (x3d_SpecularTexture .textureCube, texCoord .stp) .rgb;
1045
+ #endif
1046
+ #else
1047
+ return specularParameter;
1048
+ #endif
1049
+ }
1050
+ vec3
1051
+ getEmissiveColor ()
1052
+ {
1053
+ vec3 emissiveParameter = x3d_Material .emissiveColor;
1054
+ #if defined(X3D_EMISSIVE_TEXTURE)
1055
+ vec4 texCoord = getTexCoord (x3d_EmissiveTexture .textureTransformMapping, x3d_EmissiveTexture .textureCoordinateMapping);
1056
+ #if defined(X3D_EMISSIVE_TEXTURE_2D)
1057
+ return emissiveParameter * texture (x3d_EmissiveTexture .texture2D, texCoord .st) .rgb;
1058
+ #elif defined(X3D_EMISSIVE_TEXTURE_3D)
1059
+ return emissiveParameter * texture (x3d_EmissiveTexture .texture3D, texCoord .stp) .rgb;
1060
+ #elif defined(X3D_EMISSIVE_TEXTURE_CUBE)
1061
+ return emissiveParameter * texture (x3d_EmissiveTexture .textureCube, texCoord .stp) .rgb;
1062
+ #endif
1063
+ #else
1064
+ return emissiveParameter;
1065
+ #endif
1066
+ }
1067
+ float
1068
+ getShininessFactor ()
1069
+ {
1070
+ float shininess = x3d_Material .shininess;
1071
+ #if defined(X3D_SHININESS_TEXTURE)
1072
+ vec4 texCoord = getTexCoord (x3d_ShininessTexture .textureTransformMapping, x3d_ShininessTexture .textureCoordinateMapping);
1073
+ #if defined(X3D_SHININESS_TEXTURE_2D)
1074
+ return shininess * texture (x3d_ShininessTexture .texture2D, texCoord .st) .a * 128.0;
1075
+ #elif defined(X3D_SHININESS_TEXTURE_3D)
1076
+ return shininess * texture (x3d_ShininessTexture .texture3D, texCoord .stp) .a * 128.0;
1077
+ #elif defined(X3D_SHININESS_TEXTURE_CUBE)
1078
+ return shininess * texture (x3d_ShininessTexture .textureCube, texCoord .stp) .a * 128.0;
1079
+ #endif
1080
+ #else
1081
+ return shininess * 128.0;
1082
+ #endif
1083
+ }
1084
+ float
1085
+ getOcclusionFactor ()
1086
+ {
1087
+ #if defined(X3D_OCCLUSION_TEXTURE)
1088
+ vec4 texCoord = getTexCoord (x3d_OcclusionTexture .textureTransformMapping, x3d_OcclusionTexture .textureCoordinateMapping);
1089
+ #if defined(X3D_OCCLUSION_TEXTURE_2D)
1090
+ return texture (x3d_OcclusionTexture .texture2D, texCoord .st) .r;
1091
+ #elif defined(X3D_OCCLUSION_TEXTURE_3D)
1092
+ return texture (x3d_OcclusionTexture .texture3D, texCoord .stp) .r;
1093
+ #elif defined(X3D_OCCLUSION_TEXTURE_CUBE)
1094
+ return texture (x3d_OcclusionTexture .textureCube, texCoord .stp) .r;
1095
+ #endif
1096
+ #else
1097
+ return 1.0;
1098
+ #endif
1099
+ }
941
1100
  vec4
942
1101
  getMaterialColor ()
943
1102
  {
944
- vec3 N = normalize (gl_FrontFacing ? normal : -normal);
1103
+ vec3 N = getNormalVector ();
945
1104
  vec3 V = normalize (-vertex);
946
- vec3 diffuseFactor = vec3 (1.0);
947
- float alpha = 1.0 - x3d_Material .transparency;
948
- vec4 D = x3d_ColorMaterial ? vec4 (color .rgb, color .a * alpha) : vec4 (x3d_Material .diffuseColor, alpha);
949
- vec4 T = getTextureColor (D, vec4 (x3d_Material .specularColor, alpha));
950
- diffuseFactor = T .rgb;
951
- alpha = T .a;
1105
+ vec4 diffuseColorAlpha = getDiffuseColor ();
1106
+ float alpha = diffuseColorAlpha .a;
1107
+ vec3 diffuseColor = diffuseColorAlpha .rgb;
1108
+ vec3 ambientColor = getAmbientColor ();
1109
+ vec3 specularColor = getSpecularColor ();
1110
+ float shininessFactor = getShininessFactor ();
952
1111
  vec4 P = getProjectiveTextureColor (vec4 (1.0));
953
- diffuseFactor *= P .rgb;
1112
+ diffuseColor *= P .rgb;
954
1113
  alpha *= P .a;
955
- vec3 ambientTerm = diffuseFactor * x3d_Material .ambientIntensity;
956
1114
  vec3 finalColor = vec3 (0.0);
957
1115
  for (int i = 0; i < x3d_MaxLights; i ++)
958
1116
  {
@@ -969,22 +1127,25 @@ vec3 c = light .attenuation;
969
1127
  vec3 L = di ? -d : normalize (vL);
970
1128
  vec3 H = normalize (L + V);
971
1129
  float lightAngle = max (dot (N, L), 0.0);
972
- vec3 diffuseTerm = diffuseFactor * lightAngle;
973
- float specularFactor = x3d_Material .shininess > 0.0 ? pow (max (dot (N, H), 0.0), x3d_Material .shininess * 128.0) : 1.0;
974
- vec3 specularTerm = x3d_Material .specularColor * specularFactor;
1130
+ vec3 diffuseTerm = diffuseColor * lightAngle;
1131
+ float specularFactor = shininessFactor > 0.0 ? pow (max (dot (N, H), 0.0), shininessFactor) : 1.0;
1132
+ vec3 specularTerm = specularColor * specularFactor;
975
1133
  float attenuationFactor = di ? 1.0 : 1.0 / max (c [0] + c [1] * dL + c [2] * (dL * dL), 1.0);
976
1134
  float spotFactor = light .type == x3d_SpotLight ? getSpotFactor (light .cutOffAngle, light .beamWidth, L, d) : 1.0;
977
1135
  float attenuationSpotFactor = attenuationFactor * spotFactor;
978
- vec3 ambientColor = light .ambientIntensity * ambientTerm;
979
- vec3 diffuseSpecularColor = light .intensity * (diffuseTerm + specularTerm);
1136
+ vec3 ambientTerm = light .ambientIntensity * ambientColor;
1137
+ vec3 diffuseSpecularTerm = light .intensity * (diffuseTerm + specularTerm);
980
1138
  #ifdef X3D_SHADOWS
981
1139
  if (lightAngle > 0.0)
982
- diffuseSpecularColor = mix (diffuseSpecularColor, light .shadowColor, getShadowIntensity (i, light));
1140
+ diffuseSpecularTerm = mix (diffuseSpecularTerm, light .shadowColor, getShadowIntensity (i, light));
983
1141
  #endif
984
- finalColor += attenuationSpotFactor * light .color * (ambientColor + diffuseSpecularColor);
1142
+ finalColor += attenuationSpotFactor * light .color * (ambientTerm + diffuseSpecularTerm);
985
1143
  }
986
1144
  }
987
- finalColor += x3d_Material .emissiveColor;
1145
+ #ifdef X3D_OCCLUSION_TEXTURE
1146
+ finalColor = mix (finalColor, finalColor * getOcclusionFactor (), x3d_Material .occlusionStrength);
1147
+ #endif
1148
+ finalColor += getEmissiveColor ();
988
1149
  return vec4 (finalColor, alpha);
989
1150
  }
990
1151
  void
@@ -1,7 +1,6 @@
1
1
  #version 300 es
2
2
  precision highp float;
3
3
  precision highp int;
4
- uniform mat4 x3d_TextureMatrix [x3d_MaxTextures];
5
4
  uniform mat3 x3d_NormalMatrix;
6
5
  uniform mat4 x3d_ProjectionMatrix;
7
6
  uniform mat4 x3d_ModelViewMatrix;
@@ -41,10 +40,10 @@ vertex = position .xyz;
41
40
  localNormal = x3d_Normal;
42
41
  localVertex = x3d_Vertex .xyz;
43
42
  #if x3d_MaxTextures > 0
44
- texCoord0 = x3d_TextureMatrix [0] * x3d_TexCoord0;
43
+ texCoord0 = x3d_TexCoord0;
45
44
  #endif
46
45
  #if x3d_MaxTextures > 1
47
- texCoord1 = x3d_TextureMatrix [1] * x3d_TexCoord1;
46
+ texCoord1 = x3d_TexCoord1;
48
47
  #endif
49
48
  gl_Position = x3d_ProjectionMatrix * position;
50
49
  #ifdef X3D_LOGARITHMIC_DEPTH_BUFFER
@@ -18,68 +18,21 @@ uniform float x3d_LogarithmicFarFactor1_2;
18
18
  in float depth;
19
19
  #endif
20
20
  out vec4 x3d_FragColor;
21
- uniform x3d_FogParameters x3d_Fog;
22
- float
23
- getFogInterpolant ()
24
- {
25
- if (x3d_Fog .type == x3d_None)
26
- return 1.0;
27
- if (x3d_Fog .fogCoord)
28
- return clamp (1.0 - fogDepth, 0.0, 1.0);
29
- float visibilityRange = x3d_Fog .visibilityRange;
30
- if (visibilityRange <= 0.0)
31
- return 1.0;
32
- float dV = length (x3d_Fog .matrix * vertex);
33
- if (dV >= visibilityRange)
34
- return 0.0;
35
- switch (x3d_Fog .type)
36
- {
37
- case x3d_LinearFog:
38
- {
39
- return (visibilityRange - dV) / visibilityRange;
40
- }
41
- case x3d_ExponentialFog:
42
- {
43
- return exp (-dV / (visibilityRange - dV));
44
- }
45
- default:
46
- {
47
- return 1.0;
48
- }
49
- }
50
- }
51
- vec3
52
- getFogColor (const in vec3 color)
53
- {
54
- return mix (x3d_Fog .color, color, getFogInterpolant ());
55
- }
56
- uniform int x3d_NumClipPlanes;
57
- uniform vec4 x3d_ClipPlane [x3d_MaxClipPlanes];
58
- void
59
- clip ()
60
- {
61
- for (int i = 0; i < x3d_MaxClipPlanes; ++ i)
62
- {
63
- if (i == x3d_NumClipPlanes)
64
- break;
65
- if (dot (vertex, x3d_ClipPlane [i] .xyz) - x3d_ClipPlane [i] .w < 0.0)
66
- discard;
67
- }
68
- }
69
21
  precision highp sampler3D;
22
+ uniform mat4 x3d_TextureMatrix [x3d_MaxTextures];
70
23
  uniform int x3d_NumTextures;
71
24
  uniform int x3d_TextureType [x3d_MaxTextures];
72
25
  uniform sampler2D x3d_Texture2D [x3d_MaxTextures];
73
26
  uniform sampler3D x3d_Texture3D [x3d_MaxTextures];
74
- uniform samplerCube x3d_CubeMapTexture [x3d_MaxTextures];
27
+ uniform samplerCube x3d_TextureCube [x3d_MaxTextures];
75
28
  #ifdef X3D_MULTI_TEXTURING
76
- #define M_PI 3.14159265358979323846
77
29
  float rand (vec2 co) { return fract (sin (dot (co.xy, vec2 (12.9898,78.233))) * 43758.5453); }
78
30
  float rand (vec2 co, float l) { return rand (vec2 (rand (co), l)); }
79
31
  float rand (vec2 co, float l, float t) { return rand (vec2 (rand (co, l), t)); }
80
32
  float
81
33
  perlin (vec2 p, float dim, float time)
82
34
  {
35
+ const float M_PI = 3.14159265358979323846;
83
36
  vec2 pos = floor (p * dim);
84
37
  vec2 posx = pos + vec2 (1.0, 0.0);
85
38
  vec2 posy = pos + vec2 (0.0, 1.0);
@@ -107,7 +60,7 @@ uniform int x3d_NumProjectiveTextures;
107
60
  uniform sampler2D x3d_ProjectiveTexture [x3d_MaxTextures];
108
61
  uniform mat4 x3d_ProjectiveTextureMatrix [x3d_MaxTextures];
109
62
  uniform vec3 x3d_ProjectiveTextureLocation [x3d_MaxTextures];
110
- #endif
63
+ #endif
111
64
  uniform vec4 x3d_MultiTextureColor;
112
65
  uniform x3d_MultiTextureParameters x3d_MultiTexture [x3d_MaxTextures];
113
66
  uniform x3d_TextureCoordinateGeneratorParameters x3d_TextureCoordinateGenerator [x3d_MaxTextures];
@@ -135,14 +88,14 @@ return vec4 (0.0);
135
88
  }
136
89
  }
137
90
  vec4
138
- getTextureCoordinate (const in x3d_TextureCoordinateGeneratorParameters textureCoordinateGenerator, const in int i)
91
+ getTexCoord (const in x3d_TextureCoordinateGeneratorParameters textureCoordinateGenerator, const in int textureTransformMapping, const in int textureCoordinateMapping)
139
92
  {
140
93
  int mode = textureCoordinateGenerator .mode;
141
94
  switch (mode)
142
95
  {
143
96
  case x3d_None:
144
97
  {
145
- return getTexCoord (i);
98
+ return x3d_TextureMatrix [textureTransformMapping] * getTexCoord (textureCoordinateMapping);
146
99
  }
147
100
  case x3d_Sphere:
148
101
  {
@@ -203,11 +156,20 @@ return vec4 (refract (normalize (localVertex - eye), -N, eta), 1.0);
203
156
  }
204
157
  default:
205
158
  {
206
- return getTexCoord (i);
159
+ return x3d_TextureMatrix [textureTransformMapping] * getTexCoord (textureCoordinateMapping);
207
160
  }
208
161
  }
209
162
  }
210
163
  vec4
164
+ getTexCoord (const in int textureTransformMapping, const in int textureCoordinateMapping)
165
+ {
166
+ vec4 texCoord = getTexCoord (x3d_TextureCoordinateGenerator [textureCoordinateMapping], textureTransformMapping, textureCoordinateMapping);
167
+ texCoord .stp /= texCoord .q;
168
+ if ((x3d_GeometryType == x3d_Geometry2D) && (gl_FrontFacing == false))
169
+ texCoord .s = 1.0 - texCoord .s;
170
+ return texCoord;
171
+ }
172
+ vec4
211
173
  getTexture2D (const in int i, const in vec2 texCoord)
212
174
  {
213
175
  switch (i)
@@ -261,13 +223,13 @@ switch (i)
261
223
  #if x3d_MaxTextures > 0
262
224
  case 0:
263
225
  {
264
- return texture (x3d_CubeMapTexture [0], texCoord);
226
+ return texture (x3d_TextureCube [0], texCoord);
265
227
  }
266
228
  #endif
267
229
  #if x3d_MaxTextures > 1
268
230
  case 1:
269
231
  {
270
- return texture (x3d_CubeMapTexture [1], texCoord);
232
+ return texture (x3d_TextureCube [1], texCoord);
271
233
  }
272
234
  #endif
273
235
  default:
@@ -284,11 +246,8 @@ for (int i = 0; i < x3d_MaxTextures; ++ i)
284
246
  {
285
247
  if (i == x3d_NumTextures)
286
248
  break;
287
- vec4 texCoord = getTextureCoordinate (x3d_TextureCoordinateGenerator [i], i);
249
+ vec4 texCoord = getTexCoord (i, i);
288
250
  vec4 textureColor = vec4 (1.0);
289
- texCoord .stp /= texCoord .q;
290
- if ((x3d_GeometryType == x3d_Geometry2D) && (gl_FrontFacing == false))
291
- texCoord .s = 1.0 - texCoord .s;
292
251
  switch (x3d_TextureType [i])
293
252
  {
294
253
  case x3d_TextureType2D:
@@ -301,7 +260,7 @@ case x3d_TextureType3D:
301
260
  textureColor = getTexture3D (i, texCoord .stp);
302
261
  break;
303
262
  }
304
- case x3d_TextureTypeCubeMapTexture:
263
+ case x3d_TextureTypeCube:
305
264
  {
306
265
  textureColor = getTextureCube (i, texCoord .stp);
307
266
  break;
@@ -602,14 +561,19 @@ currentColor *= getProjectiveTexture (i, texCoord .st);
602
561
  }
603
562
  return currentColor;
604
563
  }
605
- #else
564
+ #else
606
565
  vec4
607
566
  getProjectiveTextureColor (in vec4 currentColor)
608
567
  {
609
568
  return currentColor;
610
569
  }
611
- #endif
612
- #else
570
+ #endif
571
+ #else
572
+ vec4
573
+ getTexCoord (const in int textureTransformMapping, const in int textureCoordinateMapping)
574
+ {
575
+ return texCoord0;
576
+ }
613
577
  vec4
614
578
  getTextureColor (const in vec4 diffuseColor, const in vec4 specularColor)
615
579
  {
@@ -630,9 +594,9 @@ case x3d_TextureType3D:
630
594
  textureColor = texture (x3d_Texture3D [0], texCoord .stp);
631
595
  break;
632
596
  }
633
- case x3d_TextureTypeCubeMapTexture:
597
+ case x3d_TextureTypeCube:
634
598
  {
635
- textureColor = texture (x3d_CubeMapTexture [0], texCoord .stp);
599
+ textureColor = texture (x3d_TextureCube [0], texCoord .stp);
636
600
  break;
637
601
  }
638
602
  }
@@ -643,36 +607,73 @@ getProjectiveTextureColor (in vec4 currentColor)
643
607
  {
644
608
  return currentColor;
645
609
  }
646
- #endif
610
+ #endif
611
+ uniform x3d_FogParameters x3d_Fog;
612
+ float
613
+ getFogInterpolant ()
614
+ {
615
+ if (x3d_Fog .type == x3d_None)
616
+ return 1.0;
617
+ if (x3d_Fog .fogCoord)
618
+ return clamp (1.0 - fogDepth, 0.0, 1.0);
619
+ float visibilityRange = x3d_Fog .visibilityRange;
620
+ if (visibilityRange <= 0.0)
621
+ return 1.0;
622
+ float dV = length (x3d_Fog .matrix * vertex);
623
+ if (dV >= visibilityRange)
624
+ return 0.0;
625
+ switch (x3d_Fog .type)
626
+ {
627
+ case x3d_LinearFog:
628
+ {
629
+ return (visibilityRange - dV) / visibilityRange;
630
+ }
631
+ case x3d_ExponentialFog:
632
+ {
633
+ return exp (-dV / (visibilityRange - dV));
634
+ }
635
+ default:
636
+ {
637
+ return 1.0;
638
+ }
639
+ }
640
+ }
641
+ vec3
642
+ getFogColor (const in vec3 color)
643
+ {
644
+ return mix (x3d_Fog .color, color, getFogInterpolant ());
645
+ }
646
+ uniform int x3d_NumClipPlanes;
647
+ uniform vec4 x3d_ClipPlane [x3d_MaxClipPlanes];
648
+ void
649
+ clip ()
650
+ {
651
+ for (int i = 0; i < x3d_MaxClipPlanes; ++ i)
652
+ {
653
+ if (i == x3d_NumClipPlanes)
654
+ break;
655
+ if (dot (vertex, x3d_ClipPlane [i] .xyz) - x3d_ClipPlane [i] .w < 0.0)
656
+ discard;
657
+ }
658
+ }
647
659
  vec4
648
660
  getPointColor ()
649
661
  {
650
- vec4 finalColor = color;
651
- if (x3d_NumTextures > 0)
652
- {
653
662
  vec4 texCoord = vec4 (gl_PointCoord .x, 1.0 - gl_PointCoord .y, 0.0, 1.0);
654
663
  texCoord0 = texCoord;
655
664
  texCoord1 = texCoord;
656
- vec4 textureColor = getTextureColor (vec4 (1.0), vec4 (1.0));
657
- switch (x3d_PointProperties .colorMode)
665
+ vec4 finalColor = getTextureColor (color, vec4 (1.0));
666
+ if (x3d_NumTextures == 0)
658
667
  {
659
- case x3d_PointColor:
660
- finalColor .a *= textureColor .a;
661
- break;
662
- case x3d_TextureColor:
663
- finalColor = textureColor;
664
- break;
665
- case x3d_TextureAndPointColor:
666
- finalColor .rgb += textureColor .rgb;
667
- finalColor .a *= textureColor .a;
668
- break;
669
- }
668
+ if (pointSize > 1.0)
669
+ {
670
+ float t = max (distance (vec2 (0.5), gl_PointCoord) * pointSize - max (pointSize / 2.0 - 1.0, 0.0), 0.0);
671
+ finalColor .a = mix (finalColor .a, 0.0, t);
670
672
  }
671
673
  else
672
674
  {
673
- float ps = (pointSize + 1.0) / 2.0;
674
- float t = distance (vec2 (0.5, 0.5), gl_PointCoord) * 2.0 * ps - ps + 1.0;
675
- finalColor .a = mix (finalColor .a, 0.0, clamp (t, 0.0, 1.0));
675
+ finalColor .a *= pointSize;
676
+ }
676
677
  }
677
678
  return finalColor;
678
679
  }