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
@@ -1,11 +1,12 @@
1
1
 
2
2
  precision highp sampler3D;
3
3
 
4
+ uniform mat4 x3d_TextureMatrix [x3d_MaxTextures];
4
5
  uniform int x3d_NumTextures;
5
- uniform int x3d_TextureType [x3d_MaxTextures]; // x3d_None, x3d_TextureType2D or x3d_TextureTypeCubeMapTexture
6
+ uniform int x3d_TextureType [x3d_MaxTextures]; // x3d_TextureType2D, x3d_TextureType3D, x3d_TextureTypeCube
6
7
  uniform sampler2D x3d_Texture2D [x3d_MaxTextures];
7
8
  uniform sampler3D x3d_Texture3D [x3d_MaxTextures];
8
- uniform samplerCube x3d_CubeMapTexture [x3d_MaxTextures];
9
+ uniform samplerCube x3d_TextureCube [x3d_MaxTextures];
9
10
 
10
11
  #ifdef X3D_MULTI_TEXTURING
11
12
 
@@ -16,7 +17,7 @@ uniform int x3d_NumProjectiveTextures;
16
17
  uniform sampler2D x3d_ProjectiveTexture [x3d_MaxTextures];
17
18
  uniform mat4 x3d_ProjectiveTextureMatrix [x3d_MaxTextures];
18
19
  uniform vec3 x3d_ProjectiveTextureLocation [x3d_MaxTextures];
19
- #endif
20
+ #endif // X3D_PROJECTIVE_TEXTURE_MAPPING
20
21
 
21
22
  uniform vec4 x3d_MultiTextureColor;
22
23
  uniform x3d_MultiTextureParameters x3d_MultiTexture [x3d_MaxTextures];
@@ -26,598 +27,617 @@ uniform x3d_TextureCoordinateGeneratorParameters x3d_TextureCoordinateGenerator
26
27
  vec4
27
28
  getTexCoord (const in int i)
28
29
  {
29
- switch (i)
30
- {
31
- #if x3d_MaxTextures > 0
32
- case 0:
33
- {
34
- return texCoord0;
35
- }
36
- #endif
37
- #if x3d_MaxTextures > 1
38
- case 1:
39
- {
40
- return texCoord1;
41
- }
42
- #endif
43
- default:
44
- {
45
- return vec4 (0.0);
46
- }
47
- }
30
+ switch (i)
31
+ {
32
+ #if x3d_MaxTextures > 0
33
+ case 0:
34
+ {
35
+ return texCoord0;
36
+ }
37
+ #endif
38
+ #if x3d_MaxTextures > 1
39
+ case 1:
40
+ {
41
+ return texCoord1;
42
+ }
43
+ #endif
44
+ default:
45
+ {
46
+ return vec4 (0.0);
47
+ }
48
+ }
48
49
  }
49
50
 
50
51
  vec4
51
- getTextureCoordinate (const in x3d_TextureCoordinateGeneratorParameters textureCoordinateGenerator, const in int i)
52
+ getTexCoord (const in x3d_TextureCoordinateGeneratorParameters textureCoordinateGenerator, const in int textureTransformMapping, const in int textureCoordinateMapping)
52
53
  {
53
- int mode = textureCoordinateGenerator .mode;
54
-
55
- switch (mode)
56
- {
57
- case x3d_None:
58
- {
59
- return getTexCoord (i);
60
- }
61
- case x3d_Sphere:
62
- {
63
- vec2 N = normalize (gl_FrontFacing ? normal : -normal) .xy;
64
-
65
- return vec4 (N / 2.0 + 0.5, 0.0, 1.0);
66
- }
67
- case x3d_CameraSpaceNormal:
68
- {
69
- vec3 N = normalize (gl_FrontFacing ? normal : -normal);
70
-
71
- return vec4 (N, 1.0);
72
- }
73
- case x3d_CameraSpacePosition:
74
- {
75
- return vec4 (vertex, 1.0);
76
- }
77
- case x3d_CameraSpaceReflectionVector:
78
- {
79
- vec3 N = normalize (gl_FrontFacing ? normal : -normal);
80
-
81
- return vec4 (reflect (normalize (vertex), -N), 1.0);
82
- }
83
- case x3d_SphereLocal:
84
- {
85
- vec2 N = normalize (gl_FrontFacing ? localNormal : -localNormal) .xy;
86
-
87
- return vec4 (N / 2.0 + 0.5, 0.0, 1.0);
88
- }
89
- case x3d_Coord:
90
- {
91
- return vec4 (localVertex, 1.0);
92
- }
93
- case x3d_CoordEye:
94
- {
95
- return vec4 (vertex, 1.0);
96
- }
97
- case x3d_Noise:
98
- {
99
- vec3 scale = vec3 (textureCoordinateGenerator .parameter [0], textureCoordinateGenerator .parameter [1], textureCoordinateGenerator .parameter [2]);
100
- vec3 translation = vec3 (textureCoordinateGenerator .parameter [3], textureCoordinateGenerator .parameter [4], textureCoordinateGenerator .parameter [5]);
101
-
102
- return vec4 (perlin (localVertex * scale + translation), 1.0);
103
- }
104
- case x3d_NoiseEye:
105
- {
106
- vec3 scale = vec3 (textureCoordinateGenerator .parameter [0], textureCoordinateGenerator .parameter [1], textureCoordinateGenerator .parameter [2]);
107
- vec3 translation = vec3 (textureCoordinateGenerator .parameter [3], textureCoordinateGenerator .parameter [4], textureCoordinateGenerator .parameter [5]);
108
-
109
- return vec4 (perlin (vertex * scale + translation), 1.0);
110
- }
111
- case x3d_SphereReflect:
112
- {
113
- vec3 N = normalize (gl_FrontFacing ? normal : -normal);
114
- float eta = textureCoordinateGenerator .parameter [0];
115
-
116
- return vec4 (refract (normalize (vertex), -N, eta), 1.0);
117
- }
118
- case x3d_SphereReflectLocal:
119
- {
120
- vec3 N = normalize (gl_FrontFacing ? localNormal : -localNormal);
121
- float eta = textureCoordinateGenerator .parameter [0];
122
- vec3 eye = vec3 (textureCoordinateGenerator .parameter [1], textureCoordinateGenerator .parameter [2], textureCoordinateGenerator .parameter [3]);
123
-
124
- return vec4 (refract (normalize (localVertex - eye), -N, eta), 1.0);
125
- }
126
- default:
127
- {
128
- return getTexCoord (i);
129
- }
130
- }
54
+ int mode = textureCoordinateGenerator .mode;
55
+
56
+ switch (mode)
57
+ {
58
+ case x3d_None:
59
+ {
60
+ return x3d_TextureMatrix [textureTransformMapping] * getTexCoord (textureCoordinateMapping);
61
+ }
62
+ case x3d_Sphere:
63
+ {
64
+ vec2 N = normalize (gl_FrontFacing ? normal : -normal) .xy;
65
+
66
+ return vec4 (N / 2.0 + 0.5, 0.0, 1.0);
67
+ }
68
+ case x3d_CameraSpaceNormal:
69
+ {
70
+ vec3 N = normalize (gl_FrontFacing ? normal : -normal);
71
+
72
+ return vec4 (N, 1.0);
73
+ }
74
+ case x3d_CameraSpacePosition:
75
+ {
76
+ return vec4 (vertex, 1.0);
77
+ }
78
+ case x3d_CameraSpaceReflectionVector:
79
+ {
80
+ vec3 N = normalize (gl_FrontFacing ? normal : -normal);
81
+
82
+ return vec4 (reflect (normalize (vertex), -N), 1.0);
83
+ }
84
+ case x3d_SphereLocal:
85
+ {
86
+ vec2 N = normalize (gl_FrontFacing ? localNormal : -localNormal) .xy;
87
+
88
+ return vec4 (N / 2.0 + 0.5, 0.0, 1.0);
89
+ }
90
+ case x3d_Coord:
91
+ {
92
+ return vec4 (localVertex, 1.0);
93
+ }
94
+ case x3d_CoordEye:
95
+ {
96
+ return vec4 (vertex, 1.0);
97
+ }
98
+ case x3d_Noise:
99
+ {
100
+ vec3 scale = vec3 (textureCoordinateGenerator .parameter [0], textureCoordinateGenerator .parameter [1], textureCoordinateGenerator .parameter [2]);
101
+ vec3 translation = vec3 (textureCoordinateGenerator .parameter [3], textureCoordinateGenerator .parameter [4], textureCoordinateGenerator .parameter [5]);
102
+
103
+ return vec4 (perlin (localVertex * scale + translation), 1.0);
104
+ }
105
+ case x3d_NoiseEye:
106
+ {
107
+ vec3 scale = vec3 (textureCoordinateGenerator .parameter [0], textureCoordinateGenerator .parameter [1], textureCoordinateGenerator .parameter [2]);
108
+ vec3 translation = vec3 (textureCoordinateGenerator .parameter [3], textureCoordinateGenerator .parameter [4], textureCoordinateGenerator .parameter [5]);
109
+
110
+ return vec4 (perlin (vertex * scale + translation), 1.0);
111
+ }
112
+ case x3d_SphereReflect:
113
+ {
114
+ vec3 N = normalize (gl_FrontFacing ? normal : -normal);
115
+ float eta = textureCoordinateGenerator .parameter [0];
116
+
117
+ return vec4 (refract (normalize (vertex), -N, eta), 1.0);
118
+ }
119
+ case x3d_SphereReflectLocal:
120
+ {
121
+ vec3 N = normalize (gl_FrontFacing ? localNormal : -localNormal);
122
+ float eta = textureCoordinateGenerator .parameter [0];
123
+ vec3 eye = vec3 (textureCoordinateGenerator .parameter [1], textureCoordinateGenerator .parameter [2], textureCoordinateGenerator .parameter [3]);
124
+
125
+ return vec4 (refract (normalize (localVertex - eye), -N, eta), 1.0);
126
+ }
127
+ default:
128
+ {
129
+ return x3d_TextureMatrix [textureTransformMapping] * getTexCoord (textureCoordinateMapping);
130
+ }
131
+ }
132
+ }
133
+
134
+ vec4
135
+ getTexCoord (const in int textureTransformMapping, const in int textureCoordinateMapping)
136
+ {
137
+ vec4 texCoord = getTexCoord (x3d_TextureCoordinateGenerator [textureCoordinateMapping], textureTransformMapping, textureCoordinateMapping);
138
+
139
+ texCoord .stp /= texCoord .q;
140
+
141
+ if ((x3d_GeometryType == x3d_Geometry2D) && (gl_FrontFacing == false))
142
+ texCoord .s = 1.0 - texCoord .s;
143
+
144
+ return texCoord;
131
145
  }
132
146
 
133
147
  vec4
134
148
  getTexture2D (const in int i, const in vec2 texCoord)
135
149
  {
136
- switch (i)
137
- {
138
- #if x3d_MaxTextures > 0
139
- case 0:
140
- {
141
- return texture (x3d_Texture2D [0], texCoord);
142
- }
143
- #endif
144
- #if x3d_MaxTextures > 1
145
- case 1:
146
- {
147
- return texture (x3d_Texture2D [1], texCoord);
148
- }
149
- #endif
150
- default:
151
- {
152
- return vec4 (0.0);
153
- }
154
- }
150
+ switch (i)
151
+ {
152
+ #if x3d_MaxTextures > 0
153
+ case 0:
154
+ {
155
+ return texture (x3d_Texture2D [0], texCoord);
156
+ }
157
+ #endif
158
+ #if x3d_MaxTextures > 1
159
+ case 1:
160
+ {
161
+ return texture (x3d_Texture2D [1], texCoord);
162
+ }
163
+ #endif
164
+ default:
165
+ {
166
+ return vec4 (0.0);
167
+ }
168
+ }
155
169
  }
156
170
 
157
171
  vec4
158
172
  getTexture3D (const in int i, const in vec3 texCoord)
159
173
  {
160
- switch (i)
161
- {
162
- #if x3d_MaxTextures > 0
163
- case 0:
164
- {
165
- return texture (x3d_Texture3D [0], texCoord);
166
- }
167
- #endif
168
- #if x3d_MaxTextures > 1
169
- case 1:
170
- {
171
- return texture (x3d_Texture3D [1], texCoord);
172
- }
173
- #endif
174
- default:
175
- {
176
- return vec4 (0.0);
177
- }
178
- }
174
+ switch (i)
175
+ {
176
+ #if x3d_MaxTextures > 0
177
+ case 0:
178
+ {
179
+ return texture (x3d_Texture3D [0], texCoord);
180
+ }
181
+ #endif
182
+ #if x3d_MaxTextures > 1
183
+ case 1:
184
+ {
185
+ return texture (x3d_Texture3D [1], texCoord);
186
+ }
187
+ #endif
188
+ default:
189
+ {
190
+ return vec4 (0.0);
191
+ }
192
+ }
179
193
  }
180
194
 
181
195
  vec4
182
196
  getTextureCube (const in int i, const in vec3 texCoord)
183
197
  {
184
- switch (i)
185
- {
186
- #if x3d_MaxTextures > 0
187
- case 0:
188
- {
189
- return texture (x3d_CubeMapTexture [0], texCoord);
190
- }
191
- #endif
192
- #if x3d_MaxTextures > 1
193
- case 1:
194
- {
195
- return texture (x3d_CubeMapTexture [1], texCoord);
196
- }
197
- #endif
198
- default:
199
- {
200
- return vec4 (0.0);
201
- }
202
- }
198
+ switch (i)
199
+ {
200
+ #if x3d_MaxTextures > 0
201
+ case 0:
202
+ {
203
+ return texture (x3d_TextureCube [0], texCoord);
204
+ }
205
+ #endif
206
+ #if x3d_MaxTextures > 1
207
+ case 1:
208
+ {
209
+ return texture (x3d_TextureCube [1], texCoord);
210
+ }
211
+ #endif
212
+ default:
213
+ {
214
+ return vec4 (0.0);
215
+ }
216
+ }
203
217
  }
204
218
 
205
219
  vec4
206
220
  getTextureColor (const in vec4 diffuseColor, const in vec4 specularColor)
207
221
  {
208
- vec4 currentColor = diffuseColor;
209
-
210
- for (int i = 0; i < x3d_MaxTextures; ++ i)
211
- {
212
- if (i == x3d_NumTextures)
213
- break;
214
-
215
- // Get texture color.
216
-
217
- vec4 texCoord = getTextureCoordinate (x3d_TextureCoordinateGenerator [i], i);
218
- vec4 textureColor = vec4 (1.0);
219
-
220
- texCoord .stp /= texCoord .q;
221
-
222
- if ((x3d_GeometryType == x3d_Geometry2D) && (gl_FrontFacing == false))
223
- texCoord .s = 1.0 - texCoord .s;
224
-
225
- switch (x3d_TextureType [i])
226
- {
227
- case x3d_TextureType2D:
228
- {
229
- textureColor = getTexture2D (i, texCoord .st);
230
- break;
231
- }
232
- case x3d_TextureType3D:
233
- {
234
- textureColor = getTexture3D (i, texCoord .stp);
235
- break;
236
- }
237
- case x3d_TextureTypeCubeMapTexture:
238
- {
239
- textureColor = getTextureCube (i, texCoord .stp);
240
- break;
241
- }
242
- }
243
-
244
- // Multi texturing
245
-
246
- x3d_MultiTextureParameters multiTexture = x3d_MultiTexture [i];
247
-
248
- vec4 arg1 = textureColor;
249
- vec4 arg2 = currentColor;
250
-
251
- // Source
252
-
253
- int source = multiTexture .source;
254
-
255
- switch (source)
256
- {
257
- case x3d_Diffuse:
258
- {
259
- arg1 = diffuseColor;
260
- break;
261
- }
262
- case x3d_Specular:
263
- {
264
- arg1 = specularColor;
265
- break;
266
- }
267
- case x3d_Factor:
268
- {
269
- arg1 = x3d_MultiTextureColor;
270
- break;
271
- }
272
- }
273
-
274
- // Function
275
-
276
- int function = multiTexture .function;
277
-
278
- switch (function)
279
- {
280
- case x3d_Complement:
281
- {
282
- arg1 = 1.0 - arg1;
283
- break;
284
- }
285
- case x3d_AlphaReplicate:
286
- {
287
- arg1 .a = arg2 .a;
288
- break;
289
- }
290
- }
291
-
292
- // Mode
293
-
294
- int mode = multiTexture .mode;
295
- int alphaMode = multiTexture .alphaMode;
296
-
297
- // RGB
298
-
299
- switch (mode)
300
- {
301
- case x3d_Replace:
302
- {
303
- currentColor .rgb = arg1 .rgb;
304
- break;
305
- }
306
- case x3d_Modulate:
307
- {
308
- currentColor .rgb = arg1 .rgb * arg2 .rgb;
309
- break;
310
- }
311
- case x3d_Modulate2X:
312
- {
313
- currentColor .rgb = (arg1 .rgb * arg2 .rgb) * 2.0;
314
- break;
315
- }
316
- case x3d_Modulate4X:
317
- {
318
- currentColor .rgb = (arg1 .rgb * arg2 .rgb) * 4.0;
319
- break;
320
- }
321
- case x3d_Add:
322
- {
323
- currentColor .rgb = arg1 .rgb + arg2 .rgb;
324
- break;
325
- }
326
- case x3d_AddSigned:
327
- {
328
- currentColor .rgb = arg1 .rgb + arg2 .rgb - 0.5;
329
- break;
330
- }
331
- case x3d_AddSigned2X:
332
- {
333
- currentColor .rgb = (arg1 .rgb + arg2 .rgb - 0.5) * 2.0;
334
- break;
335
- }
336
- case x3d_AddSmooth:
337
- {
338
- currentColor .rgb = arg1 .rgb + (1.0 - arg1 .rgb) * arg2 .rgb;
339
- break;
340
- }
341
- case x3d_Subtract:
342
- {
343
- currentColor .rgb = arg1 .rgb - arg2 .rgb;
344
- break;
345
- }
346
- case x3d_BlendDiffuseAlpha:
347
- {
348
- currentColor .rgb = arg1 .rgb * diffuseColor .a + arg2 .rgb * (1.0 - diffuseColor .a);
349
- break;
350
- }
351
- case x3d_BlendTextureAlpha:
352
- {
353
- currentColor .rgb = arg1 .rgb * arg1 .a + arg2 .rgb * (1.0 - arg1 .a);
354
- break;
355
- }
356
- case x3d_BlendFactorAlpha:
357
- {
358
- currentColor .rgb = arg1 .rgb * x3d_MultiTextureColor .a + arg2 .rgb * (1.0 - x3d_MultiTextureColor .a);
359
- break;
360
- }
361
- case x3d_BlendCurrentAlpha:
362
- {
363
- currentColor .rgb = arg1 .rgb * arg2 .a + arg2 .rgb * (1.0 - arg2 .a);
364
- break;
365
- }
366
- case x3d_ModulateAlphaAddColor:
367
- {
368
- currentColor .rgb = arg1 .rgb + arg1 .a * arg2 .rgb;
369
- break;
370
- }
371
- case x3d_ModulateInvAlphaAddColor:
372
- {
373
- currentColor .rgb = (1.0 - arg1 .a) * arg2 .rgb + arg1 .rgb;
374
- break;
375
- }
376
- case x3d_ModulateInvColorAddAlpha:
377
- {
378
- currentColor .rgb = (1.0 - arg1 .rgb) * arg2 .rgb + arg1 .a;
379
- break;
380
- }
381
- case x3d_DotProduct3:
382
- {
383
- currentColor .rgb = vec3 (dot (arg1 .rgb * 2.0 - 1.0, arg2 .rgb * 2.0 - 1.0));
384
- break;
385
- }
386
- case x3d_SelectArg1:
387
- {
388
- currentColor .rgb = arg1 .rgb;
389
- break;
390
- }
391
- case x3d_SelectArg2:
392
- {
393
- currentColor .rgb = arg2 .rgb;
394
- break;
395
- }
396
- case x3d_Off:
397
- {
398
- break;
399
- }
400
- }
401
-
402
- // Alpha
403
-
404
- switch (alphaMode)
405
- {
406
- case x3d_Replace:
407
- {
408
- currentColor .a = arg1 .a;
409
- break;
410
- }
411
- case x3d_Modulate:
412
- {
413
- currentColor .a = arg1 .a * arg2 .a;
414
- break;
415
- }
416
- case x3d_Modulate2X:
417
- {
418
- currentColor .a = (arg1 .a * arg2 .a) * 2.0;
419
- break;
420
- }
421
- case x3d_Modulate4X:
422
- {
423
- currentColor .a = (arg1 .a * arg2 .a) * 4.0;
424
- break;
425
- }
426
- case x3d_Add:
427
- {
428
- currentColor .a = arg1 .a + arg2 .a;
429
- break;
430
- }
431
- case x3d_AddSigned:
432
- {
433
- currentColor .a = arg1 .a + arg2 .a - 0.5;
434
- break;
435
- }
436
- case x3d_AddSigned2X:
437
- {
438
- currentColor .a = (arg1 .a + arg2 .a - 0.5) * 2.0;
439
- break;
440
- }
441
- case x3d_AddSmooth:
442
- {
443
- currentColor .a = arg1 .a + (1.0 - arg1 .a) * arg2 .a;
444
- break;
445
- }
446
- case x3d_Subtract:
447
- {
448
- currentColor .a = arg1 .a - arg2 .a;
449
- break;
450
- }
451
- case x3d_BlendDiffuseAlpha:
452
- {
453
- currentColor .a = arg1 .a * diffuseColor .a + arg2 .a * (1.0 - diffuseColor .a);
454
- break;
455
- }
456
- case x3d_BlendTextureAlpha:
457
- {
458
- currentColor .a = arg1 .a * arg1 .a + arg2 .a * (1.0 - arg1 .a);
459
- break;
460
- }
461
- case x3d_BlendFactorAlpha:
462
- {
463
- currentColor .a = arg1 .a * x3d_MultiTextureColor .a + arg2 .a * (1.0 - x3d_MultiTextureColor .a);
464
- break;
465
- }
466
- case x3d_BlendCurrentAlpha:
467
- {
468
- currentColor .a = arg1 .a * arg2 .a + arg2 .a * (1.0 - arg2 .a);
469
- break;
470
- }
471
- case x3d_ModulateAlphaAddColor:
472
- {
473
- currentColor .a = arg1 .a + arg1 .a * arg2 .a;
474
- break;
475
- }
476
- case x3d_ModulateInvAlphaAddColor:
477
- {
478
- currentColor .a = (1.0 - arg1 .a) * arg2 .a + arg1 .a;
479
- break;
480
- }
481
- case x3d_ModulateInvColorAddAlpha:
482
- {
483
- currentColor .a = (1.0 - arg1 .a) * arg2 .a + arg1 .a;
484
- break;
485
- }
486
- case x3d_DotProduct3:
487
- {
488
- currentColor .a = dot (arg1 .rgb * 2.0 - 1.0, arg2 .rgb * 2.0 - 1.0);
489
- break;
490
- }
491
- case x3d_SelectArg1:
492
- {
493
- currentColor .a = arg1 .a;
494
- break;
495
- }
496
- case x3d_SelectArg2:
497
- {
498
- currentColor .a = arg2 .a;
499
- break;
500
- }
501
- case x3d_Off:
502
- {
503
- break;
504
- }
505
- }
506
- }
507
-
508
- return currentColor;
222
+ vec4 currentColor = diffuseColor;
223
+
224
+ for (int i = 0; i < x3d_MaxTextures; ++ i)
225
+ {
226
+ if (i == x3d_NumTextures)
227
+ break;
228
+
229
+ // Get texture color.
230
+
231
+ vec4 texCoord = getTexCoord (i, i);
232
+ vec4 textureColor = vec4 (1.0);
233
+
234
+ switch (x3d_TextureType [i])
235
+ {
236
+ case x3d_TextureType2D:
237
+ {
238
+ textureColor = getTexture2D (i, texCoord .st);
239
+ break;
240
+ }
241
+ case x3d_TextureType3D:
242
+ {
243
+ textureColor = getTexture3D (i, texCoord .stp);
244
+ break;
245
+ }
246
+ case x3d_TextureTypeCube:
247
+ {
248
+ textureColor = getTextureCube (i, texCoord .stp);
249
+ break;
250
+ }
251
+ }
252
+
253
+ // Multi texturing
254
+
255
+ x3d_MultiTextureParameters multiTexture = x3d_MultiTexture [i];
256
+
257
+ vec4 arg1 = textureColor;
258
+ vec4 arg2 = currentColor;
259
+
260
+ // Source
261
+
262
+ int source = multiTexture .source;
263
+
264
+ switch (source)
265
+ {
266
+ case x3d_Diffuse:
267
+ {
268
+ arg1 = diffuseColor;
269
+ break;
270
+ }
271
+ case x3d_Specular:
272
+ {
273
+ arg1 = specularColor;
274
+ break;
275
+ }
276
+ case x3d_Factor:
277
+ {
278
+ arg1 = x3d_MultiTextureColor;
279
+ break;
280
+ }
281
+ }
282
+
283
+ // Function
284
+
285
+ int function = multiTexture .function;
286
+
287
+ switch (function)
288
+ {
289
+ case x3d_Complement:
290
+ {
291
+ arg1 = 1.0 - arg1;
292
+ break;
293
+ }
294
+ case x3d_AlphaReplicate:
295
+ {
296
+ arg1 .a = arg2 .a;
297
+ break;
298
+ }
299
+ }
300
+
301
+ // Mode
302
+
303
+ int mode = multiTexture .mode;
304
+ int alphaMode = multiTexture .alphaMode;
305
+
306
+ // RGB
307
+
308
+ switch (mode)
309
+ {
310
+ case x3d_Replace:
311
+ {
312
+ currentColor .rgb = arg1 .rgb;
313
+ break;
314
+ }
315
+ case x3d_Modulate:
316
+ {
317
+ currentColor .rgb = arg1 .rgb * arg2 .rgb;
318
+ break;
319
+ }
320
+ case x3d_Modulate2X:
321
+ {
322
+ currentColor .rgb = (arg1 .rgb * arg2 .rgb) * 2.0;
323
+ break;
324
+ }
325
+ case x3d_Modulate4X:
326
+ {
327
+ currentColor .rgb = (arg1 .rgb * arg2 .rgb) * 4.0;
328
+ break;
329
+ }
330
+ case x3d_Add:
331
+ {
332
+ currentColor .rgb = arg1 .rgb + arg2 .rgb;
333
+ break;
334
+ }
335
+ case x3d_AddSigned:
336
+ {
337
+ currentColor .rgb = arg1 .rgb + arg2 .rgb - 0.5;
338
+ break;
339
+ }
340
+ case x3d_AddSigned2X:
341
+ {
342
+ currentColor .rgb = (arg1 .rgb + arg2 .rgb - 0.5) * 2.0;
343
+ break;
344
+ }
345
+ case x3d_AddSmooth:
346
+ {
347
+ currentColor .rgb = arg1 .rgb + (1.0 - arg1 .rgb) * arg2 .rgb;
348
+ break;
349
+ }
350
+ case x3d_Subtract:
351
+ {
352
+ currentColor .rgb = arg1 .rgb - arg2 .rgb;
353
+ break;
354
+ }
355
+ case x3d_BlendDiffuseAlpha:
356
+ {
357
+ currentColor .rgb = arg1 .rgb * diffuseColor .a + arg2 .rgb * (1.0 - diffuseColor .a);
358
+ break;
359
+ }
360
+ case x3d_BlendTextureAlpha:
361
+ {
362
+ currentColor .rgb = arg1 .rgb * arg1 .a + arg2 .rgb * (1.0 - arg1 .a);
363
+ break;
364
+ }
365
+ case x3d_BlendFactorAlpha:
366
+ {
367
+ currentColor .rgb = arg1 .rgb * x3d_MultiTextureColor .a + arg2 .rgb * (1.0 - x3d_MultiTextureColor .a);
368
+ break;
369
+ }
370
+ case x3d_BlendCurrentAlpha:
371
+ {
372
+ currentColor .rgb = arg1 .rgb * arg2 .a + arg2 .rgb * (1.0 - arg2 .a);
373
+ break;
374
+ }
375
+ case x3d_ModulateAlphaAddColor:
376
+ {
377
+ currentColor .rgb = arg1 .rgb + arg1 .a * arg2 .rgb;
378
+ break;
379
+ }
380
+ case x3d_ModulateInvAlphaAddColor:
381
+ {
382
+ currentColor .rgb = (1.0 - arg1 .a) * arg2 .rgb + arg1 .rgb;
383
+ break;
384
+ }
385
+ case x3d_ModulateInvColorAddAlpha:
386
+ {
387
+ currentColor .rgb = (1.0 - arg1 .rgb) * arg2 .rgb + arg1 .a;
388
+ break;
389
+ }
390
+ case x3d_DotProduct3:
391
+ {
392
+ currentColor .rgb = vec3 (dot (arg1 .rgb * 2.0 - 1.0, arg2 .rgb * 2.0 - 1.0));
393
+ break;
394
+ }
395
+ case x3d_SelectArg1:
396
+ {
397
+ currentColor .rgb = arg1 .rgb;
398
+ break;
399
+ }
400
+ case x3d_SelectArg2:
401
+ {
402
+ currentColor .rgb = arg2 .rgb;
403
+ break;
404
+ }
405
+ case x3d_Off:
406
+ {
407
+ break;
408
+ }
409
+ }
410
+
411
+ // Alpha
412
+
413
+ switch (alphaMode)
414
+ {
415
+ case x3d_Replace:
416
+ {
417
+ currentColor .a = arg1 .a;
418
+ break;
419
+ }
420
+ case x3d_Modulate:
421
+ {
422
+ currentColor .a = arg1 .a * arg2 .a;
423
+ break;
424
+ }
425
+ case x3d_Modulate2X:
426
+ {
427
+ currentColor .a = (arg1 .a * arg2 .a) * 2.0;
428
+ break;
429
+ }
430
+ case x3d_Modulate4X:
431
+ {
432
+ currentColor .a = (arg1 .a * arg2 .a) * 4.0;
433
+ break;
434
+ }
435
+ case x3d_Add:
436
+ {
437
+ currentColor .a = arg1 .a + arg2 .a;
438
+ break;
439
+ }
440
+ case x3d_AddSigned:
441
+ {
442
+ currentColor .a = arg1 .a + arg2 .a - 0.5;
443
+ break;
444
+ }
445
+ case x3d_AddSigned2X:
446
+ {
447
+ currentColor .a = (arg1 .a + arg2 .a - 0.5) * 2.0;
448
+ break;
449
+ }
450
+ case x3d_AddSmooth:
451
+ {
452
+ currentColor .a = arg1 .a + (1.0 - arg1 .a) * arg2 .a;
453
+ break;
454
+ }
455
+ case x3d_Subtract:
456
+ {
457
+ currentColor .a = arg1 .a - arg2 .a;
458
+ break;
459
+ }
460
+ case x3d_BlendDiffuseAlpha:
461
+ {
462
+ currentColor .a = arg1 .a * diffuseColor .a + arg2 .a * (1.0 - diffuseColor .a);
463
+ break;
464
+ }
465
+ case x3d_BlendTextureAlpha:
466
+ {
467
+ currentColor .a = arg1 .a * arg1 .a + arg2 .a * (1.0 - arg1 .a);
468
+ break;
469
+ }
470
+ case x3d_BlendFactorAlpha:
471
+ {
472
+ currentColor .a = arg1 .a * x3d_MultiTextureColor .a + arg2 .a * (1.0 - x3d_MultiTextureColor .a);
473
+ break;
474
+ }
475
+ case x3d_BlendCurrentAlpha:
476
+ {
477
+ currentColor .a = arg1 .a * arg2 .a + arg2 .a * (1.0 - arg2 .a);
478
+ break;
479
+ }
480
+ case x3d_ModulateAlphaAddColor:
481
+ {
482
+ currentColor .a = arg1 .a + arg1 .a * arg2 .a;
483
+ break;
484
+ }
485
+ case x3d_ModulateInvAlphaAddColor:
486
+ {
487
+ currentColor .a = (1.0 - arg1 .a) * arg2 .a + arg1 .a;
488
+ break;
489
+ }
490
+ case x3d_ModulateInvColorAddAlpha:
491
+ {
492
+ currentColor .a = (1.0 - arg1 .a) * arg2 .a + arg1 .a;
493
+ break;
494
+ }
495
+ case x3d_DotProduct3:
496
+ {
497
+ currentColor .a = dot (arg1 .rgb * 2.0 - 1.0, arg2 .rgb * 2.0 - 1.0);
498
+ break;
499
+ }
500
+ case x3d_SelectArg1:
501
+ {
502
+ currentColor .a = arg1 .a;
503
+ break;
504
+ }
505
+ case x3d_SelectArg2:
506
+ {
507
+ currentColor .a = arg2 .a;
508
+ break;
509
+ }
510
+ case x3d_Off:
511
+ {
512
+ break;
513
+ }
514
+ }
515
+ }
516
+
517
+ return currentColor;
509
518
  }
510
519
 
511
520
  #ifdef X3D_PROJECTIVE_TEXTURE_MAPPING
521
+
512
522
  vec4
513
523
  getProjectiveTexture (const in int i, const in vec2 texCoord)
514
524
  {
515
- switch (i)
516
- {
517
- #if x3d_MaxTextures > 0
518
- case 0:
519
- {
520
- return texture (x3d_ProjectiveTexture [0], texCoord);
521
- }
522
- #endif
523
- #if x3d_MaxTextures > 1
524
- case 1:
525
- {
526
- return texture (x3d_ProjectiveTexture [1], texCoord);
527
- }
528
- #endif
529
- default:
530
- {
531
- return vec4 (0.0);
532
- }
533
- }
525
+ switch (i)
526
+ {
527
+ #if x3d_MaxTextures > 0
528
+ case 0:
529
+ {
530
+ return texture (x3d_ProjectiveTexture [0], texCoord);
531
+ }
532
+ #endif
533
+ #if x3d_MaxTextures > 1
534
+ case 1:
535
+ {
536
+ return texture (x3d_ProjectiveTexture [1], texCoord);
537
+ }
538
+ #endif
539
+ default:
540
+ {
541
+ return vec4 (0.0);
542
+ }
543
+ }
534
544
  }
535
545
 
536
546
  vec4
537
547
  getProjectiveTextureColor (in vec4 currentColor)
538
548
  {
539
- if (x3d_NumProjectiveTextures > 0)
540
- {
541
- vec3 N = gl_FrontFacing ? normal : -normal;
549
+ if (x3d_NumProjectiveTextures > 0)
550
+ {
551
+ vec3 N = gl_FrontFacing ? normal : -normal;
542
552
 
543
- for (int i = 0; i < x3d_MaxTextures; ++ i)
544
- {
545
- if (i == x3d_NumProjectiveTextures)
546
- break;
553
+ for (int i = 0; i < x3d_MaxTextures; ++ i)
554
+ {
555
+ if (i == x3d_NumProjectiveTextures)
556
+ break;
547
557
 
548
- vec4 texCoord = x3d_ProjectiveTextureMatrix [i] * vec4 (vertex, 1.0);
558
+ vec4 texCoord = x3d_ProjectiveTextureMatrix [i] * vec4 (vertex, 1.0);
549
559
 
550
- texCoord .stp /= texCoord .q;
560
+ texCoord .stp /= texCoord .q;
551
561
 
552
- if (texCoord .s < 0.0 || texCoord .s > 1.0)
553
- continue;
562
+ if (texCoord .s < 0.0 || texCoord .s > 1.0)
563
+ continue;
554
564
 
555
- if (texCoord .t < 0.0 || texCoord .t > 1.0)
556
- continue;
565
+ if (texCoord .t < 0.0 || texCoord .t > 1.0)
566
+ continue;
557
567
 
558
- if (texCoord .p < 0.0 || texCoord .p > 1.0)
559
- continue;
568
+ if (texCoord .p < 0.0 || texCoord .p > 1.0)
569
+ continue;
560
570
 
561
- // We do not need to normalze p, as we only need the sign of the dot product.
562
- vec3 p = x3d_ProjectiveTextureLocation [i] - vertex;
571
+ // We do not need to normalze p, as we only need the sign of the dot product.
572
+ vec3 p = x3d_ProjectiveTextureLocation [i] - vertex;
563
573
 
564
- if (dot (N, p) < 0.0)
565
- continue;
574
+ if (dot (N, p) < 0.0)
575
+ continue;
566
576
 
567
- currentColor *= getProjectiveTexture (i, texCoord .st);
568
- }
569
- }
577
+ currentColor *= getProjectiveTexture (i, texCoord .st);
578
+ }
579
+ }
570
580
 
571
- return currentColor;
581
+ return currentColor;
572
582
  }
573
- #else
583
+
584
+ #else // X3D_PROJECTIVE_TEXTURE_MAPPING
585
+
574
586
  vec4
575
587
  getProjectiveTextureColor (in vec4 currentColor)
576
588
  {
577
- return currentColor;
589
+ return currentColor;
578
590
  }
579
- #endif
580
591
 
581
- #else
592
+ #endif // X3D_PROJECTIVE_TEXTURE_MAPPING
593
+
594
+ #else // X3D_MULTI_TEXTURING
595
+
596
+ vec4
597
+ getTexCoord (const in int textureTransformMapping, const in int textureCoordinateMapping)
598
+ {
599
+ return texCoord0;
600
+ }
582
601
 
583
602
  vec4
584
603
  getTextureColor (const in vec4 diffuseColor, const in vec4 specularColor)
585
604
  {
586
- // Get texture color.
587
-
588
- vec4 texCoord = texCoord0;
589
- vec4 textureColor = vec4 (1.0);
590
-
591
- texCoord .stp /= texCoord .q;
592
-
593
- if ((x3d_GeometryType == x3d_Geometry2D) && (gl_FrontFacing ? false : true))
594
- texCoord .s = 1.0 - texCoord .s;
595
-
596
- switch (x3d_TextureType [0])
597
- {
598
- case x3d_TextureType2D:
599
- {
600
- textureColor = texture (x3d_Texture2D [0], texCoord .st);
601
- break;
602
- }
603
- case x3d_TextureType3D:
604
- {
605
- textureColor = texture (x3d_Texture3D [0], texCoord .stp);
606
- break;
607
- }
608
- case x3d_TextureTypeCubeMapTexture:
609
- {
610
- textureColor = texture (x3d_CubeMapTexture [0], texCoord .stp);
611
- break;
612
- }
613
- }
614
-
615
- return diffuseColor * textureColor;
605
+ // Get texture color.
606
+
607
+ vec4 texCoord = texCoord0;
608
+ vec4 textureColor = vec4 (1.0);
609
+
610
+ texCoord .stp /= texCoord .q;
611
+
612
+ if ((x3d_GeometryType == x3d_Geometry2D) && (gl_FrontFacing ? false : true))
613
+ texCoord .s = 1.0 - texCoord .s;
614
+
615
+ switch (x3d_TextureType [0])
616
+ {
617
+ case x3d_TextureType2D:
618
+ {
619
+ textureColor = texture (x3d_Texture2D [0], texCoord .st);
620
+ break;
621
+ }
622
+ case x3d_TextureType3D:
623
+ {
624
+ textureColor = texture (x3d_Texture3D [0], texCoord .stp);
625
+ break;
626
+ }
627
+ case x3d_TextureTypeCube:
628
+ {
629
+ textureColor = texture (x3d_TextureCube [0], texCoord .stp);
630
+ break;
631
+ }
632
+ }
633
+
634
+ return diffuseColor * textureColor;
616
635
  }
617
636
 
618
637
  vec4
619
638
  getProjectiveTextureColor (in vec4 currentColor)
620
639
  {
621
- return currentColor;
640
+ return currentColor;
622
641
  }
623
- #endif
642
+
643
+ #endif // X3D_MULTI_TEXTURING