x_ite 5.0.2 → 6.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 (340) hide show
  1. package/.vscode/settings.json +12 -5
  2. package/.vscode/tasks.json +21 -0
  3. package/Makefile +10 -15
  4. package/README.md +6 -11
  5. package/build/bin/dist.pl +0 -6
  6. package/build/bin/version.pl +1 -4
  7. package/dist/assets/components/annotation.js +2 -2
  8. package/dist/assets/components/annotation.min.js +1 -1
  9. package/dist/assets/components/cad-geometry.js +2 -2
  10. package/dist/assets/components/cad-geometry.min.js +1 -1
  11. package/dist/assets/components/cube-map-texturing.js +6 -19
  12. package/dist/assets/components/cube-map-texturing.min.js +1 -1
  13. package/dist/assets/components/dis.js +2 -2
  14. package/dist/assets/components/dis.min.js +1 -1
  15. package/dist/assets/components/event-utilities.js +3 -3
  16. package/dist/assets/components/event-utilities.min.js +1 -1
  17. package/dist/assets/components/geometry2d.js +4 -4
  18. package/dist/assets/components/geometry2d.min.js +1 -1
  19. package/dist/assets/components/geospatial.js +32 -1685
  20. package/dist/assets/components/geospatial.min.js +1 -1
  21. package/dist/assets/components/h-anim.js +70 -77
  22. package/dist/assets/components/h-anim.min.js +1 -1
  23. package/dist/assets/components/key-device-sensor.js +3 -3
  24. package/dist/assets/components/key-device-sensor.min.js +1 -1
  25. package/dist/assets/components/layout.js +38 -52
  26. package/dist/assets/components/layout.min.js +1 -1
  27. package/dist/assets/components/nurbs.js +277 -194
  28. package/dist/assets/components/nurbs.min.js +1 -1
  29. package/dist/assets/components/particle-systems.js +1918 -1658
  30. package/dist/assets/components/particle-systems.min.js +1 -1
  31. package/dist/assets/components/picking.js +33 -41
  32. package/dist/assets/components/picking.min.js +1 -1
  33. package/dist/assets/components/projective-texture-mapping.js +72 -86
  34. package/dist/assets/components/projective-texture-mapping.min.js +1 -1
  35. package/dist/assets/components/rigid-body-physics.js +36 -57
  36. package/dist/assets/components/rigid-body-physics.min.js +1 -1
  37. package/dist/assets/components/scripting.js +2 -2
  38. package/dist/assets/components/scripting.min.js +1 -1
  39. package/dist/assets/components/texturing-3d.js +26 -75
  40. package/dist/assets/components/texturing-3d.min.js +3 -3
  41. package/dist/assets/components/volume-rendering.js +10 -10
  42. package/dist/assets/components/volume-rendering.min.js +1 -1
  43. package/dist/assets/components/x_ite.js +2 -2
  44. package/dist/assets/components/x_ite.min.js +1 -1
  45. package/dist/assets/linetype/1.png +0 -0
  46. package/dist/assets/linetype/10.png +0 -0
  47. package/dist/assets/linetype/11.png +0 -0
  48. package/dist/assets/linetype/12.png +0 -0
  49. package/dist/assets/linetype/13.png +0 -0
  50. package/dist/assets/linetype/14.png +0 -0
  51. package/dist/assets/linetype/15.png +0 -0
  52. package/dist/assets/linetype/16.png +0 -0
  53. package/dist/assets/linetype/2.png +0 -0
  54. package/dist/assets/linetype/3.png +0 -0
  55. package/dist/assets/linetype/4.png +0 -0
  56. package/dist/assets/linetype/5.png +0 -0
  57. package/dist/assets/linetype/6.png +0 -0
  58. package/dist/assets/linetype/7.png +0 -0
  59. package/dist/assets/linetype/8.png +0 -0
  60. package/dist/assets/linetype/9.png +0 -0
  61. package/dist/assets/shaders/webgl1/Line.fs +0 -21
  62. package/dist/assets/shaders/webgl1/Line.vs +0 -10
  63. package/dist/assets/shaders/webgl1/PBR.vs +1 -1
  64. package/dist/assets/shaders/webgl2/Depth.vs +29 -1
  65. package/dist/assets/shaders/webgl2/Gouraud.vs +31 -3
  66. package/dist/assets/shaders/webgl2/Line.fs +24 -12
  67. package/dist/assets/shaders/webgl2/Line.vs +36 -11
  68. package/dist/assets/shaders/webgl2/LineTransform.fs +4 -0
  69. package/dist/assets/shaders/webgl2/LineTransform.vs +57 -0
  70. package/dist/assets/shaders/webgl2/PBR.vs +35 -7
  71. package/dist/assets/shaders/webgl2/Phong.vs +31 -3
  72. package/dist/assets/shaders/webgl2/Point.vs +29 -1
  73. package/dist/assets/shaders/webgl2/Unlit.vs +31 -3
  74. package/dist/example.html +6 -6
  75. package/dist/x_ite.css +180 -208
  76. package/dist/x_ite.js +16477 -16629
  77. package/dist/x_ite.min.js +17 -17
  78. package/dist/x_ite.zip +0 -0
  79. package/docs/404.md +6 -0
  80. package/docs/Accessing-the-External-Browser.md +20 -14
  81. package/docs/Browser-Support.md +6 -0
  82. package/docs/Custom-Shaders.md +17 -24
  83. package/docs/Features.md +7 -1
  84. package/docs/Gemfile +44 -0
  85. package/docs/Gemfile.lock +122 -0
  86. package/docs/Glossary.md +6 -0
  87. package/docs/How-To-Configure-Your-Web-Server.md +6 -0
  88. package/docs/Supported-Nodes.md +9 -1
  89. package/docs/What's-New.md +31 -0
  90. package/docs/XHTML-DOM-Integration.md +6 -0
  91. package/docs/_config.yml +1 -1
  92. package/docs/assets/css/main.scss +26 -0
  93. package/docs/index.md +38 -46
  94. package/docs/reference/Browser-Services.md +9 -3
  95. package/docs/reference/Constants-Services.md +6 -0
  96. package/docs/reference/ECMAScript-Object-and-Function-Definitions.md +6 -0
  97. package/docs/reference/Field-Services-and-Objects.md +6 -0
  98. package/docs/reference/Prototype-Services.md +6 -0
  99. package/docs/reference/Route-Services.md +6 -0
  100. package/docs/reference/Scene-Services.md +8 -2
  101. package/docs/reference/Script-Node-Authoring-Interface.md +7 -1
  102. package/docs/tutorials/Adding-backgrounds.md +6 -0
  103. package/docs/tutorials/Adding-fog.md +6 -0
  104. package/docs/tutorials/Adding-sound.md +6 -0
  105. package/docs/tutorials/Animating-transforms.md +6 -0
  106. package/docs/tutorials/Basic-Nodes.md +6 -0
  107. package/docs/tutorials/Building-a-X3D-world.md +6 -0
  108. package/docs/tutorials/Building-elevation-grids.md +6 -0
  109. package/docs/tutorials/Building-extruded-shapes.md +6 -0
  110. package/docs/tutorials/Building-primitive-shapes.md +6 -0
  111. package/docs/tutorials/Building-shapes-out-of-points,-lines,-and-faces.md +6 -0
  112. package/docs/tutorials/Controlling-appearance-with-materials.md +6 -0
  113. package/docs/tutorials/Controlling-color-on-coordinate-based-geometry.md +6 -0
  114. package/docs/tutorials/Controlling-detail.md +6 -0
  115. package/docs/tutorials/Controlling-how-textures-are-mapped.md +6 -0
  116. package/docs/tutorials/Controlling-navigation.md +6 -0
  117. package/docs/tutorials/Controlling-shading-on-coordinate-based-geometry.md +6 -0
  118. package/docs/tutorials/Controlling-the-viewpoint.md +6 -0
  119. package/docs/tutorials/Creating-new-node-types.md +6 -0
  120. package/docs/tutorials/Grouping-nodes.md +6 -0
  121. package/docs/tutorials/Hello,-World!.md +6 -0
  122. package/docs/tutorials/Improving-Performance.md +6 -0
  123. package/docs/tutorials/Increasing-Rendering-Speed.md +6 -0
  124. package/docs/tutorials/Introducing-X3D.md +6 -0
  125. package/docs/tutorials/Introducing-animation.md +6 -0
  126. package/docs/tutorials/Introducing-script-use.md +6 -0
  127. package/docs/tutorials/Lighting-your-world.md +6 -0
  128. package/docs/tutorials/Mapping-textures.md +6 -0
  129. package/docs/tutorials/Naming-nodes.md +6 -0
  130. package/docs/tutorials/Providing-information-about-your-world.md +6 -0
  131. package/docs/tutorials/Sensing-the-viewer.md +6 -0
  132. package/docs/tutorials/Sensing-viewer-actions.md +6 -0
  133. package/docs/tutorials/Transforming-Shapes.md +6 -0
  134. package/docs/tutorials/Writing-program-scripts-with-ECMAScript.md +6 -0
  135. package/docs/tutorials/index.md +6 -0
  136. package/package.json +6 -7
  137. package/src/assets/components/geometry2d.js +1 -1
  138. package/src/assets/components/key-device-sensor.js +1 -1
  139. package/src/assets/components/layout.js +1 -1
  140. package/src/assets/components/particle-systems.js +1 -1
  141. package/src/assets/components/volume-rendering.js +1 -1
  142. package/src/assets/linetype/1.png +0 -0
  143. package/src/assets/linetype/10.png +0 -0
  144. package/src/assets/linetype/11.png +0 -0
  145. package/src/assets/linetype/12.png +0 -0
  146. package/src/assets/linetype/13.png +0 -0
  147. package/src/assets/linetype/14.png +0 -0
  148. package/src/assets/linetype/15.png +0 -0
  149. package/src/assets/linetype/16.png +0 -0
  150. package/src/assets/linetype/2.png +0 -0
  151. package/src/assets/linetype/3.png +0 -0
  152. package/src/assets/linetype/4.png +0 -0
  153. package/src/assets/linetype/5.png +0 -0
  154. package/src/assets/linetype/6.png +0 -0
  155. package/src/assets/linetype/7.png +0 -0
  156. package/src/assets/linetype/8.png +0 -0
  157. package/src/assets/linetype/9.png +0 -0
  158. package/src/assets/shaders/Types.glsl +1 -9
  159. package/src/assets/shaders/webgl1/Line.fs +3 -28
  160. package/src/assets/shaders/webgl1/Line.vs +5 -19
  161. package/src/assets/shaders/webgl1/PBR.vs +1 -1
  162. package/src/assets/shaders/webgl1/Point.vs +2 -3
  163. package/src/assets/shaders/webgl2/Depth.vs +4 -1
  164. package/src/assets/shaders/webgl2/Gouraud.vs +5 -3
  165. package/src/assets/shaders/webgl2/Line.fs +11 -17
  166. package/src/assets/shaders/webgl2/Line.vs +16 -20
  167. package/src/assets/shaders/webgl2/LineTransform.fs +6 -0
  168. package/src/assets/shaders/webgl2/LineTransform.vs +77 -0
  169. package/src/assets/shaders/webgl2/PBR.vs +10 -7
  170. package/src/assets/shaders/webgl2/Phong.vs +6 -3
  171. package/src/assets/shaders/webgl2/Point.vs +6 -6
  172. package/src/assets/shaders/webgl2/Unlit.vs +6 -3
  173. package/src/assets/shaders/webgl2/include/Line2.glsl +20 -0
  174. package/src/assets/shaders/webgl2/include/Particle.glsl +36 -0
  175. package/src/example.html +6 -6
  176. package/src/standard/Math/Algorithm.js +12 -28
  177. package/src/standard/Math/Geometry/Plane3.js +0 -2
  178. package/src/standard/Math/Geometry/ViewVolume.js +88 -83
  179. package/src/standard/Math/Numbers/Color3.js +6 -0
  180. package/src/standard/Math/Numbers/Color4.js +7 -0
  181. package/src/standard/Math/Numbers/Complex.js +5 -0
  182. package/src/standard/Math/Numbers/Matrix2.js +20 -2
  183. package/src/standard/Math/Numbers/Matrix3.js +129 -110
  184. package/src/standard/Math/Numbers/Matrix4.js +138 -119
  185. package/src/standard/Math/Numbers/Quaternion.js +7 -0
  186. package/src/standard/Math/Numbers/Rotation4.js +7 -0
  187. package/src/standard/Math/Numbers/Vector2.js +8 -5
  188. package/src/standard/Math/Numbers/Vector3.js +16 -10
  189. package/src/standard/Math/Numbers/Vector4.js +12 -7
  190. package/src/standard/Math/Utility/BVH.js +45 -17
  191. package/src/tests.js +6 -1
  192. package/src/x_ite/Base/X3DBaseNode.js +22 -11
  193. package/src/x_ite/Base/X3DField.js +1 -1
  194. package/src/x_ite/Browser/Core/BrowserOptions.js +2 -2
  195. package/src/x_ite/Browser/Core/BrowserTimings.js +4 -2
  196. package/src/x_ite/Browser/Core/Context.js +185 -0
  197. package/src/x_ite/Browser/Core/ContextMenu.js +299 -193
  198. package/src/x_ite/Browser/Core/Notification.js +1 -0
  199. package/src/x_ite/Browser/Core/X3DCoreContext.js +35 -146
  200. package/src/x_ite/Browser/Layout/ScreenText.js +11 -4
  201. package/src/x_ite/Browser/Layout/X3DLayoutContext.js +4 -15
  202. package/src/x_ite/Browser/Navigation/ExamineViewer.js +12 -19
  203. package/src/x_ite/Browser/Navigation/LookAtViewer.js +0 -3
  204. package/src/x_ite/Browser/Navigation/PlaneViewer.js +0 -3
  205. package/src/x_ite/Browser/Navigation/X3DFlyViewer.js +14 -7
  206. package/src/x_ite/Browser/Navigation/X3DViewer.js +12 -20
  207. package/src/x_ite/Browser/Networking/X3DNetworkingContext.js +11 -7
  208. package/src/x_ite/Browser/ParticleSystems/BVH.glsl +183 -0
  209. package/src/x_ite/Browser/ParticleSystems/Box3.glsl +47 -0
  210. package/src/x_ite/Browser/ParticleSystems/GeometryTypes.js +66 -0
  211. package/src/x_ite/Browser/ParticleSystems/Line3.glsl +55 -0
  212. package/src/x_ite/Browser/ParticleSystems/Plane3.glsl +160 -0
  213. package/src/x_ite/Browser/PointingDeviceSensor/PointingDevice.js +27 -3
  214. package/src/x_ite/Browser/PointingDeviceSensor/X3DPointingDeviceSensorContext.js +37 -37
  215. package/src/x_ite/Browser/Rendering/X3DRenderingContext.js +19 -13
  216. package/src/x_ite/Browser/Shaders/Shader.js +33 -12
  217. package/src/x_ite/Browser/Shaders/ShaderSource.js +6 -0
  218. package/src/x_ite/Browser/Shaders/ShaderTest.js +16 -10
  219. package/src/x_ite/Browser/Shape/X3DShapeContext.js +50 -9
  220. package/src/x_ite/Browser/Text/X3DTextContext.js +4 -13
  221. package/src/x_ite/Browser/Texturing/X3DTexturingContext.js +23 -33
  222. package/src/x_ite/Browser/Texturing3D/DICOMParser.js +2 -2
  223. package/src/x_ite/Browser/Time/X3DTimeContext.js +3 -1
  224. package/src/x_ite/Browser/VERSION.js +1 -1
  225. package/src/x_ite/Browser/X3DBrowser.js +7 -6
  226. package/src/x_ite/Browser/X3DBrowserContext.js +35 -10
  227. package/src/x_ite/Components/Core/X3DNode.js +4 -0
  228. package/src/x_ite/Components/Core/X3DPrototypeInstance.js +0 -2
  229. package/src/x_ite/Components/CubeMapTexturing/ComposedCubeMapTexture.js +3 -4
  230. package/src/x_ite/Components/CubeMapTexturing/GeneratedCubeMapTexture.js +1 -12
  231. package/src/x_ite/Components/CubeMapTexturing/ImageCubeMapTexture.js +0 -1
  232. package/src/x_ite/Components/EnvironmentalEffects/TextureBackground.js +1 -1
  233. package/src/x_ite/Components/EnvironmentalEffects/X3DBackgroundNode.js +76 -77
  234. package/src/x_ite/Components/EnvironmentalEffects/X3DFogObject.js +2 -9
  235. package/src/x_ite/Components/EnvironmentalSensor/ProximitySensor.js +51 -65
  236. package/src/x_ite/Components/EventUtilities/X3DSequencerNode.js +1 -1
  237. package/src/x_ite/Components/Followers/X3DChaserNode.js +18 -32
  238. package/src/x_ite/Components/Followers/X3DDamperNode.js +1 -6
  239. package/src/x_ite/Components/Geometry2D/TriangleSet2D.js +1 -1
  240. package/src/x_ite/Components/Geometry3D/ElevationGrid.js +12 -4
  241. package/src/x_ite/Components/Geometry3D/IndexedFaceSet.js +4 -4
  242. package/src/x_ite/Components/Geospatial/GeoCoordinate.js +10 -27
  243. package/src/x_ite/Components/Geospatial/GeoPositionInterpolator.js +5 -10
  244. package/src/x_ite/Components/Geospatial/GeoTouchSensor.js +9 -16
  245. package/src/x_ite/Components/Geospatial/GeoTransform.js +6 -18
  246. package/src/x_ite/Components/Geospatial/X3DGeospatialObject.js +20 -27
  247. package/src/x_ite/Components/Grouping/X3DGroupingNode.js +8 -8
  248. package/src/x_ite/Components/Grouping/X3DTransformNode.js +0 -4
  249. package/src/x_ite/Components/HAnim/HAnimHumanoid.js +68 -75
  250. package/src/x_ite/Components/Interpolation/OrientationInterpolator.js +4 -11
  251. package/src/x_ite/Components/Interpolation/X3DInterpolatorNode.js +1 -1
  252. package/src/x_ite/Components/Layout/LayoutGroup.js +4 -9
  253. package/src/x_ite/Components/Layout/ScreenFontStyle.js +1 -1
  254. package/src/x_ite/Components/Layout/ScreenGroup.js +18 -23
  255. package/src/x_ite/Components/Lighting/DirectionalLight.js +28 -36
  256. package/src/x_ite/Components/Lighting/PointLight.js +32 -47
  257. package/src/x_ite/Components/Lighting/SpotLight.js +33 -48
  258. package/src/x_ite/Components/Navigation/Billboard.js +49 -56
  259. package/src/x_ite/Components/Navigation/LOD.js +1 -1
  260. package/src/x_ite/Components/Navigation/X3DViewpointNode.js +82 -111
  261. package/src/x_ite/Components/Networking/Anchor.js +10 -4
  262. package/src/x_ite/Components/ParticleSystems/BoundedPhysicsModel.js +6 -6
  263. package/src/x_ite/Components/ParticleSystems/ConeEmitter.js +44 -36
  264. package/src/x_ite/Components/ParticleSystems/ExplosionEmitter.js +26 -17
  265. package/src/x_ite/Components/ParticleSystems/ForcePhysicsModel.js +20 -7
  266. package/src/x_ite/Components/ParticleSystems/ParticleSystem.js +461 -876
  267. package/src/x_ite/Components/ParticleSystems/PointEmitter.js +39 -35
  268. package/src/x_ite/Components/ParticleSystems/PolylineEmitter.js +112 -128
  269. package/src/x_ite/Components/ParticleSystems/SurfaceEmitter.js +105 -112
  270. package/src/x_ite/Components/ParticleSystems/VolumeEmitter.js +138 -176
  271. package/src/x_ite/Components/ParticleSystems/WindPhysicsModel.js +16 -11
  272. package/src/x_ite/Components/ParticleSystems/X3DParticleEmitterNode.js +807 -217
  273. package/src/x_ite/Components/Picking/LinePickSensor.js +31 -39
  274. package/src/x_ite/Components/PointingDeviceSensor/CylinderSensor.js +90 -107
  275. package/src/x_ite/Components/PointingDeviceSensor/PlaneSensor.js +48 -55
  276. package/src/x_ite/Components/PointingDeviceSensor/SphereSensor.js +53 -70
  277. package/src/x_ite/Components/PointingDeviceSensor/TouchSensor.js +8 -15
  278. package/src/x_ite/Components/ProjectiveTextureMapping/TextureProjectorParallel.js +43 -50
  279. package/src/x_ite/Components/ProjectiveTextureMapping/TextureProjectorPerspective.js +32 -39
  280. package/src/x_ite/Components/Rendering/ClipPlane.js +3 -11
  281. package/src/x_ite/Components/Rendering/Color.js +12 -37
  282. package/src/x_ite/Components/Rendering/ColorRGBA.js +13 -38
  283. package/src/x_ite/Components/Rendering/IndexedLineSet.js +12 -4
  284. package/src/x_ite/Components/Rendering/LineSet.js +21 -13
  285. package/src/x_ite/Components/Rendering/PointSet.js +21 -13
  286. package/src/x_ite/Components/Rendering/X3DColorNode.js +13 -0
  287. package/src/x_ite/Components/Rendering/X3DComposedGeometryNode.js +13 -5
  288. package/src/x_ite/Components/Rendering/X3DGeometryNode.js +248 -325
  289. package/src/x_ite/Components/Rendering/X3DLineGeometryNode.js +305 -134
  290. package/src/x_ite/Components/Rendering/X3DPointGeometryNode.js +99 -122
  291. package/src/x_ite/Components/RigidBodyPhysics/DoubleAxisHingeJoint.js +24 -38
  292. package/src/x_ite/Components/RigidBodyPhysics/SingleAxisHingeJoint.js +10 -17
  293. package/src/x_ite/Components/Shaders/ComposedShader.js +35 -75
  294. package/src/x_ite/Components/Shaders/FloatVertexAttribute.js +5 -15
  295. package/src/x_ite/Components/Shaders/Matrix3VertexAttribute.js +7 -24
  296. package/src/x_ite/Components/Shaders/Matrix4VertexAttribute.js +7 -24
  297. package/src/x_ite/Components/Shaders/ShaderPart.js +1 -10
  298. package/src/x_ite/Components/Shaders/X3DProgrammableShaderObject.js +219 -209
  299. package/src/x_ite/Components/Shaders/X3DShaderNode.js +1 -1
  300. package/src/x_ite/Components/Shaders/X3DVertexAttributeNode.js +23 -1
  301. package/src/x_ite/Components/Shape/Appearance.js +12 -0
  302. package/src/x_ite/Components/Shape/FillProperties.js +12 -1
  303. package/src/x_ite/Components/Shape/LineProperties.js +33 -1
  304. package/src/x_ite/Components/Shape/PointProperties.js +23 -1
  305. package/src/x_ite/Components/Shape/Shape.js +27 -34
  306. package/src/x_ite/Components/Sound/Sound.js +30 -40
  307. package/src/x_ite/Components/Text/Text.js +6 -20
  308. package/src/x_ite/Components/Texturing/TextureCoordinate.js +5 -26
  309. package/src/x_ite/Components/Texturing/TextureProperties.js +4 -4
  310. package/src/x_ite/Components/Texturing/X3DSingleTextureCoordinateNode.js +21 -0
  311. package/src/x_ite/Components/Texturing/X3DSingleTextureNode.js +5 -4
  312. package/src/x_ite/Components/Texturing/X3DTexture2DNode.js +24 -33
  313. package/src/x_ite/Components/Texturing3D/TextureCoordinate3D.js +5 -26
  314. package/src/x_ite/Components/Texturing3D/TextureCoordinate4D.js +5 -26
  315. package/src/x_ite/Components/Texturing3D/X3DTexture3DNode.js +12 -19
  316. package/src/x_ite/Components/VolumeRendering/X3DVolumeDataNode.js +7 -7
  317. package/src/x_ite/Components.js +2 -2
  318. package/src/x_ite/Fallback.js +9 -3
  319. package/src/x_ite/Fields/SFColor.js +4 -0
  320. package/src/x_ite/Fields/SFColorRGBA.js +4 -0
  321. package/src/x_ite/Fields/SFMatrixPrototypeTemplate.js +4 -0
  322. package/src/x_ite/Fields/SFRotation.js +4 -0
  323. package/src/x_ite/Fields/SFString.js +4 -0
  324. package/src/x_ite/Fields/SFVecPrototypeTemplate.js +4 -0
  325. package/src/x_ite/Parser/XMLParser.js +1 -1
  326. package/src/x_ite/Rendering/TextureBuffer.js +43 -36
  327. package/src/x_ite/Rendering/VertexArray.js +101 -0
  328. package/src/x_ite/Rendering/X3DRenderObject.js +123 -144
  329. package/src/x_ite/X3D.js +32 -26
  330. package/src/x_ite.config.js +0 -5
  331. package/src/x_ite.css +200 -162
  332. package/src/x_ite.html +26 -10
  333. package/src/x_ite.js +42 -0
  334. package/x_ite.min.html +26 -10
  335. package/dist/assets/hatching/0.png +0 -0
  336. package/dist/assets/linetype/0.png +0 -0
  337. package/src/assets/hatching/0.png +0 -0
  338. package/src/assets/linetype/0.png +0 -0
  339. package/src/spinner.css +0 -67
  340. package/src/x_ite/Browser/Shape/LineStipples.xcf +0 -0
@@ -1,3 +1,9 @@
1
+ ---
2
+ # Feel free to add content and custom Front Matter to this file.
3
+ # To modify the layout, see https://jekyllrb.com/docs/themes/#overriding-theme-defaults
4
+
5
+ layout: single
6
+ ---
1
7
  # Naming Nodes
2
8
 
3
9
  ## Motivation
@@ -1,3 +1,9 @@
1
+ ---
2
+ # Feel free to add content and custom Front Matter to this file.
3
+ # To modify the layout, see https://jekyllrb.com/docs/themes/#overriding-theme-defaults
4
+
5
+ layout: single
6
+ ---
1
7
  # Providing Information About Your World
2
8
 
3
9
  ## Motivation
@@ -1,3 +1,9 @@
1
+ ---
2
+ # Feel free to add content and custom Front Matter to this file.
3
+ # To modify the layout, see https://jekyllrb.com/docs/themes/#overriding-theme-defaults
4
+
5
+ layout: single
6
+ ---
1
7
  # Sensing the Viewer
2
8
 
3
9
  ## Motivation
@@ -1,3 +1,9 @@
1
+ ---
2
+ # Feel free to add content and custom Front Matter to this file.
3
+ # To modify the layout, see https://jekyllrb.com/docs/themes/#overriding-theme-defaults
4
+
5
+ layout: single
6
+ ---
1
7
  # Sensing Viewer Actions
2
8
 
3
9
  ## Motivation
@@ -1,3 +1,9 @@
1
+ ---
2
+ # Feel free to add content and custom Front Matter to this file.
3
+ # To modify the layout, see https://jekyllrb.com/docs/themes/#overriding-theme-defaults
4
+
5
+ layout: single
6
+ ---
1
7
  # Transforming Shapes
2
8
 
3
9
  ## Motivation
@@ -1,3 +1,9 @@
1
+ ---
2
+ # Feel free to add content and custom Front Matter to this file.
3
+ # To modify the layout, see https://jekyllrb.com/docs/themes/#overriding-theme-defaults
4
+
5
+ layout: single
6
+ ---
1
7
  # Writing Program Scripts with ECMAScript
2
8
 
3
9
  ## Motivation
@@ -1,3 +1,9 @@
1
+ ---
2
+ # Feel free to add content and custom Front Matter to this file.
3
+ # To modify the layout, see https://jekyllrb.com/docs/themes/#overriding-theme-defaults
4
+
5
+ layout: single
6
+ ---
1
7
  # Tutorials
2
8
 
3
9
  ## Overview
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "x_ite",
3
- "version": "5.0.2",
4
- "revision": "1147",
3
+ "version": "6.0.0",
4
+ "revision": "1154",
5
5
  "description": "X_ITE X3D Browser, a framework for integrating and manipulating X3D and VRML scenes in HTML.",
6
6
  "main": "dist/x_ite.js",
7
7
  "repository": {
@@ -52,11 +52,10 @@
52
52
  "ammojs": "^0.0.2",
53
53
  "CharLS.js": "^2.0.1",
54
54
  "css-element-queries": "^1.2.3",
55
- "dicom-parser": "^1.8.13",
56
- "jpeg-js": "^0.4.3",
55
+ "dicom-parser": "^1.8.19",
56
+ "jpeg-js": "^0.4.4",
57
57
  "jpeg-lossless-decoder-js": "^2.0.4",
58
- "jquery": "^3.6.0",
59
- "jquery-contextmenu": "^2.9.2",
58
+ "jquery": "^3.6.1",
60
59
  "jquery-mousewheel": "^3.1.13",
61
60
  "jquery.fullscreen": "^0.6.0",
62
61
  "libtess": "^1.2.2",
@@ -66,7 +65,7 @@
66
65
  "require": "^2.4.20",
67
66
  "requirejs": "^2.3.6",
68
67
  "requirejs-text": "^2.0.16",
69
- "terser": "^5.12.1"
68
+ "terser": "^5.15.1"
70
69
  },
71
70
  "scripts": {
72
71
  "lint": "jshint **",
@@ -87,6 +87,6 @@ function (Components,
87
87
  abstractTypes:
88
88
  {
89
89
  },
90
- browser: X3DGeometry2DContext,
90
+ context: X3DGeometry2DContext,
91
91
  });
92
92
  });
@@ -72,6 +72,6 @@ function (Components,
72
72
  {
73
73
  X3DKeyDeviceSensorNode: X3DKeyDeviceSensorNode,
74
74
  },
75
- browser: X3DKeyDeviceSensorContext,
75
+ context: X3DKeyDeviceSensorContext,
76
76
  });
77
77
  });
@@ -81,6 +81,6 @@ function (Components,
81
81
  {
82
82
  X3DLayoutNode: X3DLayoutNode,
83
83
  },
84
- browser: X3DLayoutContext,
84
+ context: X3DLayoutContext,
85
85
  });
86
86
  });
@@ -99,6 +99,6 @@ function (Components,
99
99
  X3DParticleEmitterNode: X3DParticleEmitterNode,
100
100
  X3DParticlePhysicsModelNode: X3DParticlePhysicsModelNode,
101
101
  },
102
- browser: X3DParticleSystemsContext,
102
+ context: X3DParticleSystemsContext,
103
103
  });
104
104
  });
@@ -113,6 +113,6 @@ function (Components,
113
113
  X3DVolumeDataNode: X3DVolumeDataNode,
114
114
  X3DVolumeRenderStyleNode: X3DVolumeRenderStyleNode,
115
115
  },
116
- browser: X3DVolumeRenderingContext,
116
+ context: X3DVolumeRenderingContext,
117
117
  });
118
118
  });
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
@@ -45,6 +45,7 @@ struct x3d_LinePropertiesParameters
45
45
  {
46
46
  bool applied;
47
47
  mediump float linewidthScaleFactor;
48
+ mediump float lineStippleScale;
48
49
  sampler2D linetype;
49
50
  };
50
51
 
@@ -270,12 +271,3 @@ struct x3d_TextureCoordinateGeneratorParameters
270
271
  };
271
272
 
272
273
  //uniform x3d_TextureCoordinateGeneratorParameters x3d_TextureCoordinateGenerator [x3d_MaxTextures];
273
-
274
- struct x3d_ParticleParameters
275
- {
276
- mediump int id;
277
- mediump int life;
278
- mediump float elapsedTime;
279
- };
280
-
281
- //uniform x3d_ParticleParameters x3d_Particle;
@@ -10,14 +10,9 @@ uniform float x3d_AlphaCutoff;
10
10
  uniform x3d_LinePropertiesParameters x3d_LineProperties;
11
11
  uniform ivec4 x3d_Viewport;
12
12
 
13
- varying float fogDepth; // fog depth
14
- varying vec4 color; // color
15
- varying vec3 vertex; // point on geometry
16
-
17
- #ifdef X_ITE
18
- varying vec3 startPosition; // line stipple start
19
- varying vec3 vertexPosition; // current line stipple position
20
- #endif
13
+ varying float fogDepth; // fog depth
14
+ varying vec4 color; // color
15
+ varying vec3 vertex; // point on geometry
21
16
 
22
17
  #ifdef X3D_LOGARITHMIC_DEPTH_BUFFER
23
18
  uniform float x3d_LogarithmicFarFactor1_2;
@@ -27,31 +22,11 @@ varying float depth;
27
22
  #pragma X3D include "include/Fog.glsl"
28
23
  #pragma X3D include "include/ClipPlanes.glsl"
29
24
 
30
- #ifdef X_ITE
31
- void
32
- stipple ()
33
- {
34
- if (x3d_LineProperties .applied)
35
- {
36
- vec2 direction = (vertexPosition .xy - startPosition .xy) * vec2 (x3d_Viewport .zw) * 0.5;
37
- float distance = length (direction) / 16.0;
38
- float color = texture2D (x3d_LineProperties .linetype, vec2 (distance, distance)) .a;
39
-
40
- if (color == 0.0)
41
- discard;
42
- }
43
- }
44
- #endif
45
-
46
25
  void
47
26
  main ()
48
27
  {
49
28
  clip ();
50
29
 
51
- #ifdef X_ITE
52
- stipple ();
53
- #endif
54
-
55
30
  vec4 finalColor = vec4 (0.0);
56
31
 
57
32
  finalColor .rgb = getFogColor (color .rgb);
@@ -12,15 +12,9 @@ attribute float x3d_FogDepth;
12
12
  attribute vec4 x3d_Color;
13
13
  attribute vec4 x3d_Vertex;
14
14
 
15
- varying float fogDepth; // fog depth
16
- varying vec4 color; // color
17
- varying vec3 vertex; // point on geometry
18
-
19
- #ifdef X_ITE
20
- attribute vec4 x3d_TexCoord0;
21
- varying vec3 startPosition; // line stipple start
22
- varying vec3 vertexPosition; // current line stipple position
23
- #endif
15
+ varying float fogDepth; // fog depth
16
+ varying vec4 color; // color
17
+ varying vec3 vertex; // point on geometry
24
18
 
25
19
  #ifdef X3D_LOGARITHMIC_DEPTH_BUFFER
26
20
  varying float depth;
@@ -31,19 +25,11 @@ main ()
31
25
  {
32
26
  vec4 position = x3d_ModelViewMatrix * x3d_Vertex;
33
27
 
34
- fogDepth = x3d_FogDepth;
35
- vertex = position .xyz;
28
+ fogDepth = x3d_FogDepth;
29
+ vertex = position .xyz;
36
30
 
37
31
  gl_Position = x3d_ProjectionMatrix * position;
38
32
 
39
- #ifdef X_ITE
40
- // Line Stipple
41
- vec4 start = x3d_ProjectionMatrix * x3d_ModelViewMatrix * x3d_TexCoord0;
42
-
43
- startPosition = start .xyz / start .w;
44
- vertexPosition = gl_Position .xyz / gl_Position .w;
45
- #endif
46
-
47
33
  #ifdef X3D_LOGARITHMIC_DEPTH_BUFFER
48
34
  depth = 1.0 + gl_Position .w;
49
35
  #endif
@@ -31,7 +31,7 @@ main ()
31
31
  vec4 position = x3d_ModelViewMatrix * x3d_Vertex;
32
32
 
33
33
  vertex = position .xyz;
34
- normal = normalize (x3d_NormalMatrix * x3d_Normal);
34
+ normal = x3d_NormalMatrix * x3d_Normal;
35
35
  texCoord0 = x3d_TexCoord0;
36
36
  texCoord1 = x3d_TexCoord1;
37
37
  color = x3d_Color;
@@ -6,7 +6,6 @@ uniform x3d_PointPropertiesParameters x3d_PointProperties;
6
6
 
7
7
  uniform bool x3d_ColorMaterial; // true if a X3DColorNode is attached, otherwise false
8
8
  uniform x3d_UnlitMaterialParameters x3d_Material;
9
- uniform int x3d_NumTextures;
10
9
 
11
10
  uniform mat4 x3d_ProjectionMatrix;
12
11
  uniform mat4 x3d_ModelViewMatrix;
@@ -48,10 +47,10 @@ main ()
48
47
  float dL = length (vertex);
49
48
 
50
49
  pointSize = x3d_PointProperties .pointSizeScaleFactor;
51
- pointSize *= 1.0 / (pointSizeAttenuation [0] + pointSizeAttenuation [1] * dL + pointSizeAttenuation [2] * (dL * dL));
50
+ pointSize /= pointSizeAttenuation [0] + pointSizeAttenuation [1] * dL + pointSizeAttenuation [2] * (dL * dL);
52
51
  pointSize = clamp (pointSize, pointSizeMinValue, pointSizeMaxValue);
53
52
 
54
- gl_PointSize = pointSize > 1.0 && x3d_NumTextures == 0 ? pointSize + 1.0 : pointSize;
53
+ gl_PointSize = pointSize > 1.0 ? pointSize + 1.0 : pointSize;
55
54
 
56
55
  // Determine color.
57
56
 
@@ -2,6 +2,7 @@
2
2
 
3
3
  precision highp float;
4
4
  precision highp int;
5
+ precision highp sampler2D;
5
6
 
6
7
  uniform mat4 x3d_ProjectionMatrix;
7
8
  uniform mat4 x3d_ModelViewMatrix;
@@ -10,10 +11,12 @@ in vec4 x3d_Vertex;
10
11
 
11
12
  out vec3 vertex; // point on geometry
12
13
 
14
+ #pragma X3D include "include/Particle.glsl"
15
+
13
16
  void
14
17
  main ()
15
18
  {
16
- vec4 position = x3d_ModelViewMatrix * x3d_Vertex;
19
+ vec4 position = x3d_ModelViewMatrix * getVertex (x3d_Vertex);
17
20
 
18
21
  vertex = position .xyz;
19
22
 
@@ -2,6 +2,7 @@
2
2
 
3
3
  precision highp float;
4
4
  precision highp int;
5
+ precision highp sampler2D;
5
6
 
6
7
  uniform mat3 x3d_NormalMatrix;
7
8
  uniform mat4 x3d_ProjectionMatrix;
@@ -46,6 +47,7 @@ out vec4 texCoord1; // texCoord1
46
47
  out float depth;
47
48
  #endif
48
49
 
50
+ #pragma X3D include "include/Particle.glsl"
49
51
  #pragma X3D include "include/SpotFactor.glsl"
50
52
 
51
53
  vec4
@@ -106,7 +108,7 @@ getMaterialColor (const in vec3 N,
106
108
  void
107
109
  main ()
108
110
  {
109
- vec4 position = x3d_ModelViewMatrix * x3d_Vertex;
111
+ vec4 position = x3d_ModelViewMatrix * getVertex (x3d_Vertex);
110
112
 
111
113
  fogDepth = x3d_FogDepth;
112
114
  vertex = position .xyz;
@@ -115,11 +117,11 @@ main ()
115
117
  localVertex = x3d_Vertex .xyz;
116
118
 
117
119
  #if x3d_MaxTextures > 0
118
- texCoord0 = x3d_TexCoord0;
120
+ texCoord0 = getTexCoord (x3d_TexCoord0);
119
121
  #endif
120
122
 
121
123
  #if x3d_MaxTextures > 1
122
- texCoord1 = x3d_TexCoord1;
124
+ texCoord1 = getTexCoord (x3d_TexCoord1);
123
125
  #endif
124
126
 
125
127
  gl_Position = x3d_ProjectionMatrix * position;
@@ -7,14 +7,12 @@ uniform float x3d_AlphaCutoff;
7
7
  uniform x3d_LinePropertiesParameters x3d_LineProperties;
8
8
  uniform ivec4 x3d_Viewport;
9
9
 
10
- in float fogDepth; // fog depth
11
- in vec4 color; // color
12
- in vec3 vertex; // point on geometry
13
-
14
- #ifdef X_ITE
15
- in vec3 startPosition; // line stipple start
16
- in vec3 vertexPosition; // current line stipple position
17
- #endif
10
+ flat in float lengthSoFar; // in px, stipple support
11
+ flat in vec2 startPoint; // in px, stipple support
12
+ in vec2 midPoint; // in px, stipple support
13
+ in float fogDepth; // fog depth
14
+ in vec4 color; // color
15
+ in vec3 vertex; // point on geometry
18
16
 
19
17
  #ifdef X3D_LOGARITHMIC_DEPTH_BUFFER
20
18
  uniform float x3d_LogarithmicFarFactor1_2;
@@ -25,31 +23,27 @@ out vec4 x3d_FragColor;
25
23
 
26
24
  #pragma X3D include "include/Fog.glsl"
27
25
  #pragma X3D include "include/ClipPlanes.glsl"
26
+ #pragma X3D include "include/Line2.glsl"
28
27
 
29
- #ifdef X_ITE
30
28
  void
31
29
  stipple ()
32
30
  {
33
31
  if (x3d_LineProperties .applied)
34
32
  {
35
- vec2 direction = (vertexPosition .xy - startPosition .xy) * vec2 (x3d_Viewport .zw) * 0.5;
36
- float distance = length (direction) / 16.0;
37
- float color = texture (x3d_LineProperties .linetype, vec2 (distance, distance)) .a;
33
+ vec2 point = closest_point (line2 (startPoint, midPoint), gl_FragCoord .xy);
34
+ float s = (lengthSoFar + length (point - startPoint)) * x3d_LineProperties .lineStippleScale;
35
+ float alpha = texture (x3d_LineProperties .linetype, vec2 (s, 0.5)) .a;
38
36
 
39
- if (color == 0.0)
37
+ if (alpha != 1.0)
40
38
  discard;
41
39
  }
42
40
  }
43
- #endif
44
41
 
45
42
  void
46
43
  main ()
47
44
  {
48
45
  clip ();
49
-
50
- #ifdef X_ITE
51
46
  stipple ();
52
- #endif
53
47
 
54
48
  vec4 finalColor = vec4 (0.0);
55
49
 
@@ -2,6 +2,7 @@
2
2
 
3
3
  precision highp float;
4
4
  precision highp int;
5
+ precision highp sampler2D;
5
6
 
6
7
  uniform bool x3d_ColorMaterial; // true if a X3DColorNode is attached, otherwise false
7
8
  uniform x3d_UnlitMaterialParameters x3d_Material;
@@ -10,41 +11,36 @@ uniform mat4 x3d_ProjectionMatrix;
10
11
  uniform mat4 x3d_ModelViewMatrix;
11
12
 
12
13
  in float x3d_FogDepth;
14
+ in vec4 x3d_TexCoord0;
13
15
  in vec4 x3d_Color;
14
16
  in vec4 x3d_Vertex;
15
17
 
16
- out float fogDepth; // fog depth
17
- out vec4 color; // color
18
- out vec3 vertex; // point on geometry
19
-
20
- #ifdef X_ITE
21
- in vec4 x3d_TexCoord0;
22
- out vec3 startPosition; // line stipple start
23
- out vec3 vertexPosition; // current line stipple position
24
- #endif
18
+ flat out float lengthSoFar; // in px, stipple support
19
+ flat out vec2 startPoint; // in px, stipple support
20
+ out vec2 midPoint; // in px, stipple support
21
+ out float fogDepth; // fog depth
22
+ out vec4 color; // color
23
+ out vec3 vertex; // point on geometry
25
24
 
26
25
  #ifdef X3D_LOGARITHMIC_DEPTH_BUFFER
27
26
  out float depth;
28
27
  #endif
29
28
 
29
+ #pragma X3D include "include/Particle.glsl"
30
+
30
31
  void
31
32
  main ()
32
33
  {
33
- vec4 position = x3d_ModelViewMatrix * x3d_Vertex;
34
+ vec4 position = x3d_ModelViewMatrix * getVertex (x3d_Vertex);
34
35
 
35
- fogDepth = x3d_FogDepth;
36
- vertex = position .xyz;
36
+ lengthSoFar = x3d_TexCoord0 .z;
37
+ startPoint = x3d_TexCoord0 .xy;
38
+ midPoint = x3d_TexCoord0 .xy;
39
+ fogDepth = x3d_FogDepth;
40
+ vertex = position .xyz;
37
41
 
38
42
  gl_Position = x3d_ProjectionMatrix * position;
39
43
 
40
- #ifdef X_ITE
41
- // Line Stipple
42
- vec4 start = x3d_ProjectionMatrix * x3d_ModelViewMatrix * x3d_TexCoord0;
43
-
44
- startPosition = start .xyz / start .w;
45
- vertexPosition = gl_Position .xyz / gl_Position .w;
46
- #endif
47
-
48
44
  #ifdef X3D_LOGARITHMIC_DEPTH_BUFFER
49
45
  depth = 1.0 + gl_Position .w;
50
46
  #endif
@@ -0,0 +1,6 @@
1
+ #version 300 es
2
+
3
+ precision highp float;
4
+
5
+ void
6
+ main () { }
@@ -0,0 +1,77 @@
1
+ #version 300 es
2
+
3
+ precision highp float;
4
+
5
+ uniform vec4 viewport;
6
+ uniform mat4 modelViewProjectionMatrix;
7
+ uniform mat4 invModelViewProjectionMatrix;
8
+ uniform float scale;
9
+
10
+ in float x3d_FogDepth0; in vec4 x3d_Color0; in vec4 x3d_TexCoord0; in vec4 x3d_Vertex0;
11
+ in float x3d_FogDepth1; in vec4 x3d_Color1; in vec4 x3d_TexCoord1; in vec4 x3d_Vertex1;
12
+
13
+ out float fogDepth0; out vec4 color0; out vec4 texCoord0; out vec4 vertex0;
14
+ out float fogDepth1; out vec4 color1; out vec4 texCoord1; out vec4 vertex1;
15
+ out float fogDepth2; out vec4 color2; out vec4 texCoord2; out vec4 vertex2;
16
+
17
+ vec3
18
+ projectPoint (const in vec4 point, const in mat4 modelViewProjectionMatrix, const in vec4 viewport)
19
+ {
20
+ vec4 vin = modelViewProjectionMatrix * point;
21
+
22
+ vin .xyz = vin .xyz / (2.0 * vin .w) + 0.5;
23
+
24
+ return vec3 (vin .xy * viewport .zw + viewport .xy, vin .z);
25
+ }
26
+
27
+ vec4
28
+ unProjectPoint (const in vec3 win, const in mat4 invModelViewProjection, const in vec4 viewport)
29
+ {
30
+ vec4 vin = vec4 ((win .xy - viewport .xy) / viewport .zw * 2.0 - 1.0, 2.0 * win .z - 1.0, 1.0);
31
+
32
+ vin = invModelViewProjection * vin;
33
+
34
+ return vec4 (vin .xyz / vin .w, 1.0);
35
+ }
36
+
37
+ void
38
+ main ()
39
+ {
40
+ vec3 projected0 = projectPoint (x3d_Vertex0, modelViewProjectionMatrix, viewport);
41
+ vec3 projected1 = projectPoint (x3d_Vertex1, modelViewProjectionMatrix, viewport);
42
+ vec2 normal = normalize (projected1 .xy - projected0 .xy);
43
+ vec2 offset = vec2 (-normal .y, normal .x) * scale;
44
+
45
+ // 0 - 3
46
+ // | \ |
47
+ // 1 - 2
48
+
49
+ if (gl_InstanceID == 0)
50
+ {
51
+ vec2 pq0 = projected0 .xy + offset;
52
+ vec2 pq1 = projected0 .xy - offset;
53
+ vec2 pq2 = projected1 .xy - offset;
54
+
55
+ vec4 p0 = unProjectPoint (vec3 (pq0 .xy, projected0 .z), invModelViewProjectionMatrix, viewport);
56
+ vec4 p1 = unProjectPoint (vec3 (pq1 .xy, projected0 .z), invModelViewProjectionMatrix, viewport);
57
+ vec4 p2 = unProjectPoint (vec3 (pq2 .xy, projected1 .z), invModelViewProjectionMatrix, viewport);
58
+
59
+ fogDepth0 = x3d_FogDepth0; color0 = x3d_Color0; texCoord0 = x3d_TexCoord0; vertex0 = p0;
60
+ fogDepth1 = x3d_FogDepth0; color1 = x3d_Color0; texCoord1 = x3d_TexCoord0; vertex1 = p1;
61
+ fogDepth2 = x3d_FogDepth1; color2 = x3d_Color1; texCoord2 = x3d_TexCoord1; vertex2 = p2;
62
+ }
63
+ else
64
+ {
65
+ vec2 pq0 = projected0 .xy + offset;
66
+ vec2 pq2 = projected1 .xy - offset;
67
+ vec2 pq3 = projected1 .xy + offset;
68
+
69
+ vec4 p0 = unProjectPoint (vec3 (pq0 .xy, projected0 .z), invModelViewProjectionMatrix, viewport);
70
+ vec4 p2 = unProjectPoint (vec3 (pq2 .xy, projected1 .z), invModelViewProjectionMatrix, viewport);
71
+ vec4 p3 = unProjectPoint (vec3 (pq3 .xy, projected1 .z), invModelViewProjectionMatrix, viewport);
72
+
73
+ fogDepth0 = x3d_FogDepth0; color0 = x3d_Color0; texCoord0 = x3d_TexCoord0; vertex0 = p0;
74
+ fogDepth1 = x3d_FogDepth1; color1 = x3d_Color1; texCoord1 = x3d_TexCoord1; vertex1 = p2;
75
+ fogDepth2 = x3d_FogDepth1; color2 = x3d_Color1; texCoord2 = x3d_TexCoord1; vertex2 = p3;
76
+ }
77
+ }
@@ -4,16 +4,17 @@
4
4
 
5
5
  precision highp float;
6
6
  precision highp int;
7
+ precision highp sampler2D;
7
8
 
8
9
  uniform mat4 x3d_ProjectionMatrix;
9
10
  uniform mat4 x3d_ModelViewMatrix;
10
11
  uniform mat3 x3d_NormalMatrix;
11
12
 
12
- in vec4 x3d_Vertex;
13
- in vec3 x3d_Normal;
13
+ in vec4 x3d_Color;
14
14
  in vec4 x3d_TexCoord0;
15
15
  in vec4 x3d_TexCoord1;
16
- in vec4 x3d_Color;
16
+ in vec3 x3d_Normal;
17
+ in vec4 x3d_Vertex;
17
18
 
18
19
  out vec3 vertex;
19
20
  out vec3 normal;
@@ -27,15 +28,17 @@ out vec3 localVertex; // point on geometry in local coordinates
27
28
  out float depth;
28
29
  #endif
29
30
 
31
+ #pragma X3D include "include/Particle.glsl"
32
+
30
33
  void
31
34
  main ()
32
35
  {
33
- vec4 position = x3d_ModelViewMatrix * x3d_Vertex;
36
+ vec4 position = x3d_ModelViewMatrix * getVertex (x3d_Vertex);
34
37
 
35
38
  vertex = position .xyz;
36
- normal = normalize (x3d_NormalMatrix * x3d_Normal);
37
- texCoord0 = x3d_TexCoord0;
38
- texCoord1 = x3d_TexCoord1;
39
+ normal = x3d_NormalMatrix * x3d_Normal;
40
+ texCoord0 = getTexCoord (x3d_TexCoord0);
41
+ texCoord1 = getTexCoord (x3d_TexCoord1);
39
42
  color = x3d_Color;
40
43
  localNormal = x3d_Normal;
41
44
  localVertex = x3d_Vertex .xyz;