x_ite 8.8.7 → 8.9.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 (341) hide show
  1. package/Makefile +6 -0
  2. package/build/docs/nodes.pl +434 -0
  3. package/dist/assets/components/Annotation.js +13 -13
  4. package/dist/assets/components/Annotation.min.js +1 -1
  5. package/dist/assets/components/CADGeometry.js +13 -13
  6. package/dist/assets/components/CADGeometry.min.js +1 -1
  7. package/dist/assets/components/CubeMapTexturing.js +26 -26
  8. package/dist/assets/components/CubeMapTexturing.min.js +1 -1
  9. package/dist/assets/components/DIS.js +14 -14
  10. package/dist/assets/components/DIS.min.js +1 -1
  11. package/dist/assets/components/EventUtilities.js +9 -9
  12. package/dist/assets/components/EventUtilities.min.js +1 -1
  13. package/dist/assets/components/Geometry2D.js +19 -19
  14. package/dist/assets/components/Geometry2D.min.js +1 -1
  15. package/dist/assets/components/Geospatial.js +33 -33
  16. package/dist/assets/components/Geospatial.min.js +1 -1
  17. package/dist/assets/components/HAnim.js +18 -18
  18. package/dist/assets/components/HAnim.min.js +1 -1
  19. package/dist/assets/components/KeyDeviceSensor.js +8 -8
  20. package/dist/assets/components/KeyDeviceSensor.min.js +1 -1
  21. package/dist/assets/components/Layout.js +27 -27
  22. package/dist/assets/components/Layout.min.js +1 -1
  23. package/dist/assets/components/NURBS.js +24 -24
  24. package/dist/assets/components/NURBS.min.js +1 -1
  25. package/dist/assets/components/ParticleSystems.js +24 -24
  26. package/dist/assets/components/ParticleSystems.min.js +1 -1
  27. package/dist/assets/components/Picking.js +18 -18
  28. package/dist/assets/components/Picking.min.js +1 -1
  29. package/dist/assets/components/RigidBodyPhysics.js +18 -18
  30. package/dist/assets/components/RigidBodyPhysics.min.js +1 -1
  31. package/dist/assets/components/Scripting.js +37 -37
  32. package/dist/assets/components/Scripting.min.js +1 -1
  33. package/dist/assets/components/Text.js +24 -24
  34. package/dist/assets/components/Text.min.js +1 -1
  35. package/dist/assets/components/TextureProjector.js +14 -14
  36. package/dist/assets/components/TextureProjector.min.js +1 -1
  37. package/dist/assets/components/Texturing3D.js +30 -30
  38. package/dist/assets/components/Texturing3D.min.js +1 -1
  39. package/dist/assets/components/VolumeRendering.js +18 -18
  40. package/dist/assets/components/VolumeRendering.min.js +1 -1
  41. package/dist/assets/components/X_ITE.js +9 -9
  42. package/dist/assets/components/X_ITE.min.js +1 -1
  43. package/dist/x_ite.css +1 -1
  44. package/dist/x_ite.js +965 -96
  45. package/dist/x_ite.min.js +1 -1
  46. package/dist/x_ite.zip +0 -0
  47. package/docs/_config.yml +2 -2
  48. package/docs/_posts/components/CADGeometry/CADAssembly.md +45 -19
  49. package/docs/_posts/components/CADGeometry/CADFace.md +44 -18
  50. package/docs/_posts/components/CADGeometry/CADLayer.md +48 -19
  51. package/docs/_posts/components/CADGeometry/CADPart.md +54 -24
  52. package/docs/_posts/components/CADGeometry/IndexedQuadSet.md +55 -26
  53. package/docs/_posts/components/CADGeometry/QuadSet.md +52 -20
  54. package/docs/_posts/components/Core/MetadataBoolean.md +29 -18
  55. package/docs/_posts/components/Core/MetadataDouble.md +31 -16
  56. package/docs/_posts/components/Core/MetadataFloat.md +31 -16
  57. package/docs/_posts/components/Core/MetadataInteger.md +31 -16
  58. package/docs/_posts/components/Core/MetadataSet.md +30 -15
  59. package/docs/_posts/components/Core/MetadataString.md +31 -16
  60. package/docs/_posts/components/Core/WorldInfo.md +21 -10
  61. package/docs/_posts/components/CubeMapTexturing/ComposedCubeMapTexture.md +30 -25
  62. package/docs/_posts/components/CubeMapTexturing/GeneratedCubeMapTexture.md +19 -10
  63. package/docs/_posts/components/CubeMapTexturing/ImageCubeMapTexture.md +22 -18
  64. package/docs/_posts/components/DIS/DISEntityManager.md +40 -15
  65. package/docs/_posts/components/DIS/DISEntityTypeMapping.md +34 -25
  66. package/docs/_posts/components/DIS/EspduTransform.md +174 -41
  67. package/docs/_posts/components/DIS/ReceiverPdu.md +77 -27
  68. package/docs/_posts/components/DIS/SignalPdu.md +82 -28
  69. package/docs/_posts/components/DIS/TransmitterPdu.md +86 -36
  70. package/docs/_posts/components/EnvironmentalEffects/Background.md +80 -39
  71. package/docs/_posts/components/EnvironmentalEffects/Fog.md +39 -18
  72. package/docs/_posts/components/EnvironmentalEffects/FogCoordinate.md +10 -6
  73. package/docs/_posts/components/EnvironmentalEffects/LocalFog.md +21 -14
  74. package/docs/_posts/components/EnvironmentalEffects/TextureBackground.md +83 -31
  75. package/docs/_posts/components/EnvironmentalSensor/ProximitySensor.md +36 -8
  76. package/docs/_posts/components/EnvironmentalSensor/TransformSensor.md +31 -7
  77. package/docs/_posts/components/EnvironmentalSensor/VisibilitySensor.md +23 -7
  78. package/docs/_posts/components/EventUtilities/BooleanFilter.md +23 -10
  79. package/docs/_posts/components/EventUtilities/BooleanSequencer.md +46 -17
  80. package/docs/_posts/components/EventUtilities/BooleanToggle.md +29 -8
  81. package/docs/_posts/components/EventUtilities/BooleanTrigger.md +24 -7
  82. package/docs/_posts/components/EventUtilities/IntegerSequencer.md +46 -17
  83. package/docs/_posts/components/EventUtilities/IntegerTrigger.md +34 -9
  84. package/docs/_posts/components/EventUtilities/TimeTrigger.md +30 -9
  85. package/docs/_posts/components/Followers/ColorChaser.md +35 -11
  86. package/docs/_posts/components/Followers/ColorDamper.md +32 -12
  87. package/docs/_posts/components/Followers/CoordinateChaser.md +33 -9
  88. package/docs/_posts/components/Followers/CoordinateDamper.md +30 -10
  89. package/docs/_posts/components/Followers/OrientationChaser.md +34 -10
  90. package/docs/_posts/components/Followers/OrientationDamper.md +31 -11
  91. package/docs/_posts/components/Followers/PositionChaser.md +33 -9
  92. package/docs/_posts/components/Followers/PositionChaser2D.md +33 -9
  93. package/docs/_posts/components/Followers/PositionDamper.md +30 -10
  94. package/docs/_posts/components/Followers/PositionDamper2D.md +30 -10
  95. package/docs/_posts/components/Followers/ScalarChaser.md +33 -9
  96. package/docs/_posts/components/Followers/ScalarDamper.md +30 -10
  97. package/docs/_posts/components/Followers/TexCoordChaser2D.md +33 -9
  98. package/docs/_posts/components/Followers/TexCoordDamper2D.md +30 -10
  99. package/docs/_posts/components/Geometry2D/Arc2D.md +39 -14
  100. package/docs/_posts/components/Geometry2D/ArcClose2D.md +43 -19
  101. package/docs/_posts/components/Geometry2D/Circle2D.md +21 -10
  102. package/docs/_posts/components/Geometry2D/Disk2D.md +32 -14
  103. package/docs/_posts/components/Geometry2D/Polyline2D.md +24 -9
  104. package/docs/_posts/components/Geometry2D/Polypoint2D.md +16 -8
  105. package/docs/_posts/components/Geometry2D/Rectangle2D.md +23 -12
  106. package/docs/_posts/components/Geometry2D/TriangleSet2D.md +23 -12
  107. package/docs/_posts/components/Geometry3D/Box.md +26 -13
  108. package/docs/_posts/components/Geometry3D/Cone.md +30 -22
  109. package/docs/_posts/components/Geometry3D/Cylinder.md +30 -26
  110. package/docs/_posts/components/Geometry3D/ElevationGrid.md +73 -29
  111. package/docs/_posts/components/Geometry3D/Extrusion.md +100 -48
  112. package/docs/_posts/components/Geometry3D/IndexedFaceSet.md +92 -38
  113. package/docs/_posts/components/Geometry3D/Sphere.md +25 -13
  114. package/docs/_posts/components/Geospatial/GeoCoordinate.md +30 -14
  115. package/docs/_posts/components/Geospatial/GeoElevationGrid.md +82 -37
  116. package/docs/_posts/components/Geospatial/GeoLOD.md +66 -27
  117. package/docs/_posts/components/Geospatial/GeoLocation.md +64 -26
  118. package/docs/_posts/components/Geospatial/GeoMetadata.md +28 -22
  119. package/docs/_posts/components/Geospatial/GeoOrigin.md +34 -19
  120. package/docs/_posts/components/Geospatial/GeoPositionInterpolator.md +64 -18
  121. package/docs/_posts/components/Geospatial/GeoProximitySensor.md +67 -18
  122. package/docs/_posts/components/Geospatial/GeoTouchSensor.md +63 -18
  123. package/docs/_posts/components/Geospatial/GeoTransform.md +72 -28
  124. package/docs/_posts/components/Geospatial/GeoViewpoint.md +79 -40
  125. package/docs/_posts/components/Grouping/Group.md +32 -16
  126. package/docs/_posts/components/Grouping/StaticGroup.md +37 -16
  127. package/docs/_posts/components/Grouping/Switch.md +39 -20
  128. package/docs/_posts/components/Grouping/Transform.md +45 -28
  129. package/docs/_posts/components/HAnim/HAnimDisplacer.md +38 -27
  130. package/docs/_posts/components/HAnim/HAnimHumanoid.md +197 -38
  131. package/docs/_posts/components/HAnim/HAnimJoint.md +104 -38
  132. package/docs/_posts/components/HAnim/HAnimMotion.md +117 -7
  133. package/docs/_posts/components/HAnim/HAnimSegment.md +72 -32
  134. package/docs/_posts/components/HAnim/HAnimSite.md +75 -32
  135. package/docs/_posts/components/Interpolation/ColorInterpolator.md +41 -11
  136. package/docs/_posts/components/Interpolation/CoordinateInterpolator.md +39 -13
  137. package/docs/_posts/components/Interpolation/CoordinateInterpolator2D.md +43 -14
  138. package/docs/_posts/components/Interpolation/EaseInEaseOut.md +36 -12
  139. package/docs/_posts/components/Interpolation/NormalInterpolator.md +40 -10
  140. package/docs/_posts/components/Interpolation/OrientationInterpolator.md +40 -10
  141. package/docs/_posts/components/Interpolation/PositionInterpolator.md +40 -10
  142. package/docs/_posts/components/Interpolation/PositionInterpolator2D.md +43 -14
  143. package/docs/_posts/components/Interpolation/ScalarInterpolator.md +39 -13
  144. package/docs/_posts/components/Interpolation/SplinePositionInterpolator.md +41 -16
  145. package/docs/_posts/components/Interpolation/SplinePositionInterpolator2D.md +41 -16
  146. package/docs/_posts/components/Interpolation/SplineScalarInterpolator.md +40 -24
  147. package/docs/_posts/components/Interpolation/SquadOrientationInterpolator.md +35 -11
  148. package/docs/_posts/components/KeyDeviceSensor/KeySensor.md +51 -9
  149. package/docs/_posts/components/KeyDeviceSensor/StringSensor.md +31 -9
  150. package/docs/_posts/components/Layering/Layer.md +27 -14
  151. package/docs/_posts/components/Layering/LayerSet.md +19 -13
  152. package/docs/_posts/components/Layering/Viewport.md +31 -15
  153. package/docs/_posts/components/Layout/Layout.md +27 -16
  154. package/docs/_posts/components/Layout/LayoutGroup.md +34 -18
  155. package/docs/_posts/components/Layout/LayoutLayer.md +28 -15
  156. package/docs/_posts/components/Layout/ScreenFontStyle.md +72 -45
  157. package/docs/_posts/components/Layout/ScreenGroup.md +32 -16
  158. package/docs/_posts/components/Lighting/DirectionalLight.md +19 -11
  159. package/docs/_posts/components/Lighting/EnvironmentLight.md +2 -6
  160. package/docs/_posts/components/Lighting/PointLight.md +23 -11
  161. package/docs/_posts/components/Lighting/SpotLight.md +32 -19
  162. package/docs/_posts/components/NURBS/Contour2D.md +17 -9
  163. package/docs/_posts/components/NURBS/ContourPolyline2D.md +10 -6
  164. package/docs/_posts/components/NURBS/CoordinateDouble.md +13 -9
  165. package/docs/_posts/components/NURBS/NurbsCurve.md +15 -11
  166. package/docs/_posts/components/NURBS/NurbsCurve2D.md +14 -10
  167. package/docs/_posts/components/NURBS/NurbsOrientationInterpolator.md +28 -12
  168. package/docs/_posts/components/NURBS/NurbsPatchSurface.md +19 -13
  169. package/docs/_posts/components/NURBS/NurbsPositionInterpolator.md +27 -11
  170. package/docs/_posts/components/NURBS/NurbsSet.md +48 -14
  171. package/docs/_posts/components/NURBS/NurbsSurfaceInterpolator.md +31 -11
  172. package/docs/_posts/components/NURBS/NurbsSweptSurface.md +31 -14
  173. package/docs/_posts/components/NURBS/NurbsSwungSurface.md +25 -14
  174. package/docs/_posts/components/NURBS/NurbsTextureCoordinate.md +11 -7
  175. package/docs/_posts/components/NURBS/NurbsTrimmedSurface.md +26 -16
  176. package/docs/_posts/components/Navigation/Billboard.md +33 -17
  177. package/docs/_posts/components/Navigation/Collision.md +59 -22
  178. package/docs/_posts/components/Navigation/LOD.md +53 -23
  179. package/docs/_posts/components/Navigation/NavigationInfo.md +68 -25
  180. package/docs/_posts/components/Navigation/OrthoViewpoint.md +80 -37
  181. package/docs/_posts/components/Navigation/Viewpoint.md +86 -39
  182. package/docs/_posts/components/Navigation/ViewpointGroup.md +28 -17
  183. package/docs/_posts/components/Networking/Anchor.md +54 -56
  184. package/docs/_posts/components/Networking/Inline.md +42 -29
  185. package/docs/_posts/components/Networking/LoadSensor.md +41 -9
  186. package/docs/_posts/components/ParticleSystems/BoundedPhysicsModel.md +16 -8
  187. package/docs/_posts/components/ParticleSystems/ConeEmitter.md +25 -10
  188. package/docs/_posts/components/ParticleSystems/ExplosionEmitter.md +18 -11
  189. package/docs/_posts/components/ParticleSystems/ForcePhysicsModel.md +15 -8
  190. package/docs/_posts/components/ParticleSystems/ParticleSystem.md +92 -46
  191. package/docs/_posts/components/ParticleSystems/PointEmitter.md +19 -12
  192. package/docs/_posts/components/ParticleSystems/PolylineEmitter.md +23 -15
  193. package/docs/_posts/components/ParticleSystems/SurfaceEmitter.md +21 -14
  194. package/docs/_posts/components/ParticleSystems/VolumeEmitter.md +25 -18
  195. package/docs/_posts/components/ParticleSystems/WindPhysicsModel.md +11 -7
  196. package/docs/_posts/components/Picking/LinePickSensor.md +37 -15
  197. package/docs/_posts/components/Picking/PickableGroup.md +40 -22
  198. package/docs/_posts/components/Picking/PointPickSensor.md +29 -12
  199. package/docs/_posts/components/Picking/PrimitivePickSensor.md +25 -17
  200. package/docs/_posts/components/Picking/VolumePickSensor.md +25 -12
  201. package/docs/_posts/components/PointingDeviceSensor/CylinderSensor.md +43 -18
  202. package/docs/_posts/components/PointingDeviceSensor/PlaneSensor.md +40 -17
  203. package/docs/_posts/components/PointingDeviceSensor/SphereSensor.md +35 -13
  204. package/docs/_posts/components/PointingDeviceSensor/TouchSensor.md +48 -14
  205. package/docs/_posts/components/Rendering/ClipPlane.md +20 -15
  206. package/docs/_posts/components/Rendering/Color.md +14 -14
  207. package/docs/_posts/components/Rendering/ColorRGBA.md +13 -9
  208. package/docs/_posts/components/Rendering/Coordinate.md +11 -7
  209. package/docs/_posts/components/Rendering/IndexedLineSet.md +58 -24
  210. package/docs/_posts/components/Rendering/IndexedTriangleFanSet.md +44 -23
  211. package/docs/_posts/components/Rendering/IndexedTriangleSet.md +45 -24
  212. package/docs/_posts/components/Rendering/IndexedTriangleStripSet.md +45 -20
  213. package/docs/_posts/components/Rendering/LineSet.md +26 -14
  214. package/docs/_posts/components/Rendering/Normal.md +28 -6
  215. package/docs/_posts/components/Rendering/PointSet.md +24 -11
  216. package/docs/_posts/components/Rendering/TriangleFanSet.md +44 -19
  217. package/docs/_posts/components/Rendering/TriangleSet.md +44 -19
  218. package/docs/_posts/components/Rendering/TriangleStripSet.md +45 -20
  219. package/docs/_posts/components/RigidBodyPhysics/BallJoint.md +22 -10
  220. package/docs/_posts/components/RigidBodyPhysics/CollidableOffset.md +37 -14
  221. package/docs/_posts/components/RigidBodyPhysics/CollidableShape.md +34 -16
  222. package/docs/_posts/components/RigidBodyPhysics/CollisionCollection.md +17 -12
  223. package/docs/_posts/components/RigidBodyPhysics/CollisionSensor.md +21 -12
  224. package/docs/_posts/components/RigidBodyPhysics/CollisionSpace.md +31 -12
  225. package/docs/_posts/components/RigidBodyPhysics/Contact.md +19 -15
  226. package/docs/_posts/components/RigidBodyPhysics/DoubleAxisHingeJoint.md +33 -27
  227. package/docs/_posts/components/RigidBodyPhysics/MotorJoint.md +63 -11
  228. package/docs/_posts/components/RigidBodyPhysics/RigidBody.md +22 -12
  229. package/docs/_posts/components/RigidBodyPhysics/RigidBodyCollection.md +30 -14
  230. package/docs/_posts/components/RigidBodyPhysics/SingleAxisHingeJoint.md +26 -14
  231. package/docs/_posts/components/RigidBodyPhysics/SliderJoint.md +24 -12
  232. package/docs/_posts/components/RigidBodyPhysics/UniversalJoint.md +23 -15
  233. package/docs/_posts/components/Scripting/Script.md +43 -27
  234. package/docs/_posts/components/Shaders/ComposedShader.md +30 -17
  235. package/docs/_posts/components/Shaders/FloatVertexAttribute.md +18 -9
  236. package/docs/_posts/components/Shaders/Matrix3VertexAttribute.md +17 -8
  237. package/docs/_posts/components/Shaders/Matrix4VertexAttribute.md +17 -8
  238. package/docs/_posts/components/Shaders/PackagedShader.md +36 -30
  239. package/docs/_posts/components/Shaders/ProgramShader.md +35 -15
  240. package/docs/_posts/components/Shaders/ShaderPart.md +27 -18
  241. package/docs/_posts/components/Shaders/ShaderProgram.md +28 -17
  242. package/docs/_posts/components/Shape/AcousticProperties.md +34 -6
  243. package/docs/_posts/components/Shape/Appearance.md +29 -22
  244. package/docs/_posts/components/Shape/FillProperties.md +19 -12
  245. package/docs/_posts/components/Shape/LineProperties.md +18 -10
  246. package/docs/_posts/components/Shape/Material.md +64 -38
  247. package/docs/_posts/components/Shape/PhysicalMaterial.md +49 -25
  248. package/docs/_posts/components/Shape/PointProperties.md +21 -14
  249. package/docs/_posts/components/Shape/Shape.md +35 -17
  250. package/docs/_posts/components/Shape/TwoSidedMaterial.md +35 -36
  251. package/docs/_posts/components/Shape/UnlitMaterial.md +29 -17
  252. package/docs/_posts/components/Sound/Analyser.md +133 -4
  253. package/docs/_posts/components/Sound/AudioClip.md +64 -30
  254. package/docs/_posts/components/Sound/AudioDestination.md +76 -4
  255. package/docs/_posts/components/Sound/BiquadFilter.md +143 -4
  256. package/docs/_posts/components/Sound/BufferAudioSource.md +165 -13
  257. package/docs/_posts/components/Sound/ChannelMerger.md +62 -4
  258. package/docs/_posts/components/Sound/ChannelSelector.md +64 -4
  259. package/docs/_posts/components/Sound/ChannelSplitter.md +68 -4
  260. package/docs/_posts/components/Sound/Convolver.md +124 -4
  261. package/docs/_posts/components/Sound/Delay.md +119 -4
  262. package/docs/_posts/components/Sound/DynamicsCompressor.md +127 -4
  263. package/docs/_posts/components/Sound/Gain.md +115 -4
  264. package/docs/_posts/components/Sound/ListenerPointSource.md +109 -4
  265. package/docs/_posts/components/Sound/MicrophoneSource.md +91 -4
  266. package/docs/_posts/components/Sound/OscillatorSource.md +95 -4
  267. package/docs/_posts/components/Sound/PeriodicWave.md +43 -5
  268. package/docs/_posts/components/Sound/Sound.md +53 -20
  269. package/docs/_posts/components/Sound/SpatialSound.md +120 -4
  270. package/docs/_posts/components/Sound/StreamAudioDestination.md +80 -4
  271. package/docs/_posts/components/Sound/StreamAudioSource.md +91 -4
  272. package/docs/_posts/components/Sound/WaveShaper.md +123 -4
  273. package/docs/_posts/components/Text/FontStyle.md +73 -47
  274. package/docs/_posts/components/Text/Text.md +48 -26
  275. package/docs/_posts/components/TextureProjector/TextureProjector.md +55 -6
  276. package/docs/_posts/components/TextureProjector/TextureProjectorParallel.md +56 -6
  277. package/docs/_posts/components/Texturing/ImageTexture.md +28 -20
  278. package/docs/_posts/components/Texturing/MovieTexture.md +69 -38
  279. package/docs/_posts/components/Texturing/MultiTexture.md +47 -19
  280. package/docs/_posts/components/Texturing/MultiTextureCoordinate.md +27 -10
  281. package/docs/_posts/components/Texturing/MultiTextureTransform.md +32 -10
  282. package/docs/_posts/components/Texturing/PixelTexture.md +34 -14
  283. package/docs/_posts/components/Texturing/TextureCoordinate.md +20 -10
  284. package/docs/_posts/components/Texturing/TextureCoordinateGenerator.md +22 -12
  285. package/docs/_posts/components/Texturing/TextureProperties.md +44 -19
  286. package/docs/_posts/components/Texturing/TextureTransform.md +17 -8
  287. package/docs/_posts/components/Texturing3D/ComposedTexture3D.md +21 -13
  288. package/docs/_posts/components/Texturing3D/ImageTexture3D.md +32 -23
  289. package/docs/_posts/components/Texturing3D/ImageTextureAtlas.md +22 -16
  290. package/docs/_posts/components/Texturing3D/PixelTexture3D.md +25 -13
  291. package/docs/_posts/components/Texturing3D/TextureCoordinate3D.md +22 -10
  292. package/docs/_posts/components/Texturing3D/TextureCoordinate4D.md +21 -9
  293. package/docs/_posts/components/Texturing3D/TextureTransform3D.md +17 -8
  294. package/docs/_posts/components/Texturing3D/TextureTransformMatrix3D.md +20 -10
  295. package/docs/_posts/components/Time/TimeSensor.md +66 -23
  296. package/docs/_posts/components/VolumeRendering/BlendedVolumeStyle.md +36 -15
  297. package/docs/_posts/components/VolumeRendering/BoundaryEnhancementVolumeStyle.md +15 -5
  298. package/docs/_posts/components/VolumeRendering/CartoonVolumeStyle.md +20 -17
  299. package/docs/_posts/components/VolumeRendering/ComposedVolumeStyle.md +15 -7
  300. package/docs/_posts/components/VolumeRendering/EdgeEnhancementVolumeStyle.md +16 -8
  301. package/docs/_posts/components/VolumeRendering/IsoSurfaceVolumeData.md +43 -21
  302. package/docs/_posts/components/VolumeRendering/OpacityMapVolumeStyle.md +16 -8
  303. package/docs/_posts/components/VolumeRendering/ProjectionVolumeStyle.md +17 -7
  304. package/docs/_posts/components/VolumeRendering/SegmentedVolumeData.md +50 -17
  305. package/docs/_posts/components/VolumeRendering/ShadedVolumeStyle.md +18 -10
  306. package/docs/_posts/components/VolumeRendering/SilhouetteEnhancementVolumeStyle.md +16 -8
  307. package/docs/_posts/components/VolumeRendering/ToneMappedVolumeStyle.md +20 -11
  308. package/docs/_posts/components/VolumeRendering/VolumeData.md +32 -15
  309. package/docs/_posts/components/X_ITE/BlendMode.md +9 -2
  310. package/docs/_posts/getting-started.md +1 -0
  311. package/docs/_posts/laboratory/x3d-file-converter.md +1 -1
  312. package/package.json +1 -1
  313. package/src/x_ite/Browser/Core/X3DCoreContext.js +10 -3
  314. package/src/x_ite/Browser/DOMIntegration.js +13 -8
  315. package/src/x_ite/Browser/VERSION.js +1 -1
  316. package/src/x_ite/Components/CubeMapTexturing/ComposedCubeMapTexture.js +1 -1
  317. package/src/x_ite/Components/DIS/DISEntityManager.js +1 -1
  318. package/src/x_ite/Components/Grouping/Switch.js +1 -1
  319. package/src/x_ite/Components/Layering/X3DLayerNode.js +1 -1
  320. package/src/x_ite/Components/Lighting/DirectionalLight.js +1 -1
  321. package/src/x_ite/Components/Navigation/Collision.js +1 -1
  322. package/src/x_ite/Components/Navigation/LOD.js +1 -1
  323. package/src/x_ite/Components/Navigation/X3DViewpointNode.js +1 -1
  324. package/src/x_ite/Components/Networking/LoadSensor.js +1 -1
  325. package/src/x_ite/Components/ParticleSystems/ParticleSystem.js +1 -1
  326. package/src/x_ite/Components/Shape/AcousticProperties.js +1 -1
  327. package/src/x_ite/Components/Shape/Appearance.js +1 -1
  328. package/src/x_ite/Components/Shape/Material.js +1 -1
  329. package/src/x_ite/Components/Shape/TwoSidedMaterial.js +1 -1
  330. package/src/x_ite/Components/Sound/PeriodicWave.js +1 -1
  331. package/src/x_ite/Components/Texturing/TextureProperties.js +1 -1
  332. package/src/x_ite/Fields/ArrayFields.js +2 -2
  333. package/src/x_ite/Fields/SFColor.js +1 -1
  334. package/src/x_ite/Fields/SFMatrixPrototypeTemplate.js +1 -1
  335. package/src/x_ite/Fields/SFRotation.js +3 -3
  336. package/src/x_ite/Fields/SFVecPrototypeTemplate.js +1 -1
  337. package/src/x_ite/Parser/GoldenGate.js +16 -5
  338. package/src/x_ite/Parser/PLYAParser.js +615 -0
  339. package/src/x_ite/Parser/PLYBParser.js +222 -0
  340. package/src/x_ite/Parser/STLAParser.js +0 -1
  341. /package/build/{bin → docs}/components.js +0 -0
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  title: Extrusion
3
- date: 2022-01-07
3
+ date: 2023-01-07
4
4
  nav: components-Geometry3D
5
5
  categories: [components, Geometry3D]
6
6
  tags: [Extrusion, Geometry3D]
@@ -13,9 +13,9 @@ tags: [Extrusion, Geometry3D]
13
13
 
14
14
  ## Overview
15
15
 
16
- Extrusion is a geometry node stretching a 2D cross section along a 3D-spine path in the local coordinate system. Scaling/rotating cross-sections can produce a variety of shapes.
16
+ Extrusion is a geometry node that sequentially stretches a 2D cross section along a 3D-spine path in the local coordinate system, creating an outer hull. Scaling and rotating the crossSection 2D outline at each control point can modify the outer hull of the Extrusion to produce a wide variety of interesting shapes.
17
17
 
18
- The Extrusion node belongs to the **Geometry3D** component and its default container field is *geometry.* It is available since X3D version 2.0 or later.
18
+ The Extrusion node belongs to the **Geometry3D** component and its default container field is *geometry.* It is available from X3D version 2.0 or higher.
19
19
 
20
20
  ## Hierarchy
21
21
 
@@ -29,43 +29,60 @@ The Extrusion node belongs to the **Geometry3D** component and its default conta
29
29
 
30
30
  ### SFNode [in, out] **metadata** NULL <small>[X3DMetadataObject]</small>
31
31
 
32
- Metadata are not part of the X3D world and not interpreted by the X3D browser, but they can be accessed via the ECMAScript interface.
32
+ Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.
33
+
34
+ #### Hint
35
+
36
+ - [X3D Architecture 7.2.4 Metadata](https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/core.html#Metadata){:target="_blank"}
33
37
 
34
38
  ### MFVec2f [in] **set_crossSection** <small>(-∞,∞)</small>
35
39
 
36
- An ordered set of 2D points drawing a piecewise-linear curve and forming a planar series of connected vertices. This provides a silhouette of the outer surface.
40
+ The *crossSection* array defines a silhouette outline of the outer Extrusion surface. *crossSection* is an ordered set of 2D points that draw a piecewise-linear curve which is extruded to form a series of connected vertices.
37
41
 
38
- #### Warning
42
+ #### Warnings
39
43
 
40
- - Match clockwise/counterclockwise or impossible/inverted geometry can result!
44
+ - If the order of *crossSection* point definition does not match clockwise/counterclockwise setting of ccw field, then self-intersecting, impossible or inverted geometry can result!
45
+ - It is an error to define this transient inputOnly field in an X3D file, instead only use it a destination for ROUTE events.
41
46
 
42
47
  ### MFRotation [in] **set_orientation** <small>[-1,1] or (-∞,∞)</small>
43
48
 
44
- Orientation is a list of axis-angle orientation 4-tuples applied at each spine-aligned cross-section plane.
49
+ The *orientation* array is a list of axis-angle 4-tuple values applied at each spine-aligned cross-section plane.
45
50
 
46
- #### Hint
51
+ #### Hints
52
+
53
+ - If the *orientation* array contains a single 4-tuple value, it is applied at all spine-aligned crossSection planes.
54
+ - Number of values must all match for 3-tuple spine points, 2-tuple scale values, and 4-tuple *orientation* values.
55
+
56
+ #### Warning
47
57
 
48
- - Number of spine points, scale values and orientation values must be the same.
58
+ - It is an error to define this transient inputOnly field in an X3D file, instead only use it a destination for ROUTE events.
49
59
 
50
60
  ### MFVec2f [in] **set_scale** <small>(0,∞)</small>
51
61
 
52
- Scale is a list of 2D-scale parameters applied at each spine-aligned cross-section plane.
62
+ *scale* is a list of 2D-*scale* parameters applied at each spine-aligned cross-section plane.
53
63
 
54
64
  #### Hint
55
65
 
56
- - Number of spine points, scale values and orientation values must be the same.
66
+ - Number of values must all match for 3-tuple spine points, 2-tuple *scale* values, and 4-tuple orientation values.
57
67
 
58
- #### Warning
68
+ #### Warnings
59
69
 
60
- - Zero or negative scale values not allowed.
70
+ - Zero or negative *scale* values not allowed.
71
+ - It is an error to define this transient inputOnly field in an X3D file, instead only use it a destination for ROUTE events.
61
72
 
62
73
  ### MFVec3f [in] **set_spine** <small>(-∞,∞)</small>
63
74
 
64
- Spine is a list of 3D points for a piecewise-linear curve forming a series of connected vertices, open or closed. This is the path along which the crossSection is extruded.
75
+ The *spine* array defines a center-line sequence of 3D points that define a piecewise-linear curve forming a series of connected vertices. The *spine* is set of points along which a 2D crossSection is extruded, scaled and oriented.
65
76
 
66
- #### Hint
77
+ #### Hints
78
+
79
+ - The *spine* array can be open or closed (closed means that endpoints are coincident).
80
+ - Number of values must all match for 3-tuple *spine* points, 2-tuple scale values, and 4-tuple orientation values.
81
+
82
+ #### Warnings
67
83
 
68
- - Number of spine points, scale values and orientation values must be the same.
84
+ - Special care is needed if creating loops or spirals since self-intersecting, impossible or inverted geometry can result!
85
+ - It is an error to define this transient inputOnly field in an X3D file, instead only use it a destination for ROUTE events.
69
86
 
70
87
  ### SFBool [ ] **beginCap** TRUE
71
88
 
@@ -73,23 +90,25 @@ Whether beginning cap is drawn (similar to Cylinder top cap).
73
90
 
74
91
  #### Warning
75
92
 
76
- - Cannot be changed after initial creation.
93
+ - Since this field has accessType initializeOnly, the value cannot be changed after initial creation.
77
94
 
78
95
  ### SFBool [ ] **endCap** TRUE
79
96
 
80
- Whether end cap is drawn (similar to Cylinder end cap).
97
+ Whether end cap is drawn (similar to Cylinder bottom cap).
81
98
 
82
99
  #### Warning
83
100
 
84
- - Cannot be changed after initial creation.
101
+ - Since this field has accessType initializeOnly, the value cannot be changed after initial creation.
85
102
 
86
103
  ### SFBool [ ] **solid** TRUE
87
104
 
88
- Setting solid true means draw only one side of polygons (backface culling on), setting solid false means draw both sides of polygons (backface culling off).
105
+ Setting *solid* true means draw only one side of polygons (backface culling on), setting *solid* false means draw both sides of polygons (backface culling off).
89
106
 
90
- #### Hint
107
+ #### Hints
91
108
 
92
- - If in doubt, use solid='false' for maximum visibility.
109
+ - Mnemonic "this geometry is *solid* like a brick" (you don't render the inside of a brick).
110
+ - If in doubt, use *solid*='false' for maximum visibility.
111
+ - (X3D version 4.0 draft) accessType relaxed to inputOutput in order to support animation and visualization.
93
112
 
94
113
  #### Warning
95
114
 
@@ -97,74 +116,107 @@ Setting solid true means draw only one side of polygons (backface culling on), s
97
116
 
98
117
  ### SFBool [ ] **ccw** TRUE
99
118
 
100
- *ccw* = counterclockwise: ordering of vertex-coordinates orientation.
119
+ The *ccw* field indicates counterclockwise ordering of vertex-coordinates orientation.
101
120
 
102
- #### Hint
121
+ #### Hints
122
+
123
+ - A good debugging technique for problematic polygons is to try changing the value of *ccw*, which can reverse solid effects (single-sided backface culling) and normal-vector direction.
124
+ - [Clockwise](https://en.wikipedia.org/wiki/Clockwise){:target="_blank"}
103
125
 
104
- - *ccw* false can reverse solid (backface culling) and normal-vector orientation.
126
+ #### Warning
127
+
128
+ - Consistent and correct ordering of left-handed or right-handed point sequences is important throughout the coord array of point values.
105
129
 
106
130
  ### SFBool [ ] **convex** TRUE
107
131
 
108
- Whether all polygons in a shape are convex (true), or possibly concave (false). A convex polygon is planar, does not intersect itself, and has all interior angles \< 180 degrees.
132
+ The *convex* field is a hint to renderers whether all polygons in a shape are *convex* (true), or possibly concave (false). A *convex* polygon is planar, does not intersect itself, and has all interior angles \< 180 degrees.
133
+
134
+ #### Hints
135
+
136
+ - Concave is the opposite of *convex*.
137
+ - Select *convex*=false (i.e. concave) and solid=false (i.e. two-sided display) for greatest visibility of geometry.
138
+ - [*convex* polygon](https://en.wikipedia.org/wiki/Convex_polygon){:target="_blank"}
139
+ - [Tessellation](https://en.wikipedia.org/wiki/Tessellation){:target="_blank"}
109
140
 
110
141
  #### Warning
111
142
 
112
- - Concave geometry may be invisible default convex=true.
143
+ - Concave or inverted geometry may be invisible when using default value *convex*=true, since some renderers use more-efficient algorithms to perform tessellation that may inadvertently fail on concave geometry.
113
144
 
114
145
  ### SFFloat [ ] **creaseAngle** 0 <small>[0,∞)</small>
115
146
 
116
- *creaseAngle* defines angle (in radians) where adjacent polygons are drawn with sharp edges or smooth shading. If angle between normals of two adjacent polygons is less than creaseAngle, smooth shading is rendered across the shared line segment.
147
+ *creaseAngle* defines angle (in radians) where adjacent polygons are drawn with sharp edges or smooth shading. If angle between normals of two adjacent polygons is less than *creaseAngle*, smooth shading is rendered across the shared line segment.
117
148
 
118
- #### Hint
149
+ #### Hints
119
150
 
120
- - CreaseAngle=0 means render all edges sharply, creaseAngle=3.14159 means render all edges smoothly.
151
+ - *creaseAngle*=0 means render all edges sharply, *creaseAngle*=3.14159 means render all edges smoothly.
152
+ - [Radian units for angular measure](https://en.wikipedia.org/wiki/Radian){:target="_blank"}
121
153
 
122
154
  ### MFVec2f [ ] **crossSection** [ 1 1, 1 -1, -1 -1, -1 1, 1 1 ] <small>(-∞,∞)</small>
123
155
 
124
- An ordered set of 2D points drawing a piecewise-linear curve and forming a planar series of connected vertices. This provides a silhouette of the outer surface.
156
+ The *crossSection* array defines a silhouette outline of the outer Extrusion surface. *crossSection* is an ordered set of 2D points that draw a piecewise-linear curve which is extruded to form a series of connected vertices.
125
157
 
126
- #### Warning
158
+ #### Hints
159
+
160
+ - The *crossSection* array can be open or closed (closed means that endpoints are coincident).
161
+ - Number of values must all match for 3-tuple spine points, 2-tuple scale values, and 4-tuple orientation values.
162
+
163
+ #### Warnings
127
164
 
128
- - Match clockwise/counterclockwise or impossible/inverted geometry can result!
165
+ - If the order of *crossSection* point definition does not match clockwise/counterclockwise setting of ccw field, then self-intersecting, impossible or inverted geometry can result!
166
+ - Avoid self-intersecting polygon line segments, otherwise defined geometry is irregular and rendering results are undefined (especially for end caps).
129
167
 
130
168
  ### MFRotation [ ] **orientation** 0 0 1 0 <small>[-1,1] or (-∞,∞)</small>
131
169
 
132
- *orientation* is a list of axis-angle orientation 4-tuples applied at each spine-aligned cross-section plane.
170
+ The *orientation* array is a list of axis-angle 4-tuple values applied at each spine-aligned cross-section plane.
133
171
 
134
- #### Hint
172
+ #### Hints
135
173
 
136
- - Number of spine points, scale values and orientation values must be the same.
174
+ - If the *orientation* array contains a single 4-tuple value, it is applied at all spine-aligned crossSection planes.
175
+ - Number of values must all match for 3-tuple spine points, 2-tuple scale values, and 4-tuple *orientation* values.
137
176
 
138
177
  ### MFVec2f [ ] **scale** 1 1 <small>(0,∞)</small>
139
178
 
140
- *scale* is a list of 2D-scale parameters applied at each spine-aligned cross-section plane.
179
+ *scale* is a list of 2D-*scale* parameters applied at each spine-aligned cross-section plane.
141
180
 
142
- #### Hint
181
+ #### Hints
143
182
 
144
- - Number of spine points, scale values and orientation values must be the same.
183
+ - Number of values must all match for 3-tuple spine points, 2-tuple *scale* values, and 4-tuple orientation values.
184
+ - If the *scale* array contains one value, it is applied at all spine-aligned crossSection planes.
145
185
 
146
186
  #### Warning
147
187
 
148
- - Zero or negative scale values not allowed.
188
+ - Zero or negative *scale* values not allowed.
149
189
 
150
190
  ### MFVec3f [ ] **spine** [ 0 0 0, 0 1 0 ] <small>(-∞,∞)</small>
151
191
 
152
- *spine* is a list of 3D points for a piecewise-linear curve forming a series of connected vertices, open or closed. This is the path along which the crossSection is extruded.
192
+ The *spine* array defines a center-line sequence of 3D points that define a piecewise-linear curve forming a series of connected vertices. The *spine* is set of points along which a 2D crossSection is extruded, scaled and oriented.
153
193
 
154
- #### Hint
194
+ #### Hints
195
+
196
+ - The *spine* array can be open or closed (closed means that endpoints are coincident).
197
+ - Number of values must all match for 3-tuple *spine* points, 2-tuple scale values, and 4-tuple orientation values.
198
+ - If a *spine* is closed (or nearly closed) then the inner diameter usually needs to be greater than the corresponding crossSection width.
155
199
 
156
- - Number of spine points, scale values and orientation values must be the same.
200
+ #### Warnings
157
201
 
158
- ## Description
202
+ - Special care is needed if creating loops or spirals since self-intersecting, impossible or inverted geometry can result!
203
+ - Ensure that *spine* segments have non-zero length and are not coincident with each other.
159
204
 
160
- ### Hint
205
+ ## Advisories
161
206
 
207
+ ### Hints
208
+
209
+ - [Extrusion](https://en.wikipedia.org/wiki/Extrusion){:target="_blank"}
162
210
  - Insert a Shape node before adding geometry or Appearance.
163
211
 
212
+ ### Warning
213
+
214
+ - Take care to avoid defining parameter combinations that create self-intersecting, impossible or inverted geometry.
215
+
164
216
  ## Example
165
217
 
166
218
  <x3d-canvas src="https://create3000.github.io/media/examples/Geometry3D/Extrusion/Extrusion.x3d" update="auto"></x3d-canvas>
167
219
 
168
- ## External Links
220
+ ## See Also
169
221
 
170
- - [X3D Specification of Extrusion](https://www.web3d.org/documents/specifications/19775-1/V4.0/Part01/components/geometry3D.html#Extrusion){:target="_blank"}
222
+ - [X3D Specification of Extrusion node](https://www.web3d.org/documents/specifications/19775-1/V4.0/Part01/components/geometry3D.html#Extrusion){:target="_blank"}
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  title: IndexedFaceSet
3
- date: 2022-01-07
3
+ date: 2023-01-07
4
4
  nav: components-Geometry3D
5
5
  categories: [components, Geometry3D]
6
6
  tags: [IndexedFaceSet, Geometry3D]
@@ -13,9 +13,9 @@ tags: [IndexedFaceSet, Geometry3D]
13
13
 
14
14
  ## Overview
15
15
 
16
- IndexedFaceSet is a geometry node that can contain a Color/ColorRGBA, Coordinate/CoordinateDouble, Normal and TextureCoordinate nodes.
16
+ IndexedFaceSet defines polygons using index lists corresponding to vertex coordinates. IndexedFaceSet is a geometry node containing a Coordinate or CoordinateDouble node, and can also contain Color or ColorRGBA, Normal and TextureCoordinate nodes.
17
17
 
18
- The IndexedFaceSet node belongs to the **Geometry3D** component and its default container field is *geometry.* It is available since X3D version 2.0 or later.
18
+ The IndexedFaceSet node belongs to the **Geometry3D** component and its default container field is *geometry.* It is available from X3D version 2.0 or higher.
19
19
 
20
20
  ## Hierarchy
21
21
 
@@ -30,17 +30,25 @@ The IndexedFaceSet node belongs to the **Geometry3D** component and its default
30
30
 
31
31
  ### SFNode [in, out] **metadata** NULL <small>[X3DMetadataObject]</small>
32
32
 
33
- Metadata are not part of the X3D world and not interpreted by the X3D browser, but they can be accessed via the ECMAScript interface.
33
+ Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.
34
+
35
+ #### Hint
36
+
37
+ - [X3D Architecture 7.2.4 Metadata](https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/core.html#Metadata){:target="_blank"}
34
38
 
35
39
  ### MFInt32 [in] **set_colorIndex** <small>[0,∞) or -1</small>
36
40
 
37
- *colorIndex* values define the order in which Color|ColorRGBA values are applied to polygons (or vertices).
41
+ *colorIndex* values define the order in which Color or ColorRGBA values are applied to polygons (or vertices).
38
42
 
39
43
  #### Hints
40
44
 
41
- - If *colorIndex* array is not provided, then Color|ColorRGBA values are indexed according to the coordIndex field.
45
+ - If *colorIndex* array is not provided, then Color or ColorRGBA values are indexed according to the coordIndex field.
42
46
  - If colorPerVertex='false' then one index is provided for each polygon defined by the coordIndex array. No sentinel -1 values are included.
43
- - If colorPerVertex='true' then a matching set of indices is provided, each separated by sentinel -1, that exactly corresponds to individual
47
+ - If colorPerVertex='true' then a matching set of indices is provided, each separated by sentinel -1, that exactly corresponds to individual values in the coordIndex array polygon definitions.
48
+
49
+ #### Warning
50
+
51
+ - It is an error to define this transient inputOnly field in an X3D file, instead only use it a destination for ROUTE events.
44
52
 
45
53
  ### MFInt32 [in] **set_texCoordIndex** <small>[-1,∞)</small>
46
54
 
@@ -48,18 +56,19 @@ List of texture-coordinate indices mapping attached texture to corresponding coo
48
56
 
49
57
  #### Hint
50
58
 
51
- - If *texCoordIndex* array is not provided, then TextureCoordinate values are indexed according to the coordIndex field.
52
59
  - Use a tool!
53
60
 
61
+ #### Warning
62
+
63
+ - It is an error to define this transient inputOnly field in an X3D file, instead only use it a destination for ROUTE events.
64
+
54
65
  ### MFInt32 [in] **set_normalIndex** <small>[0,∞) or -1</small>
55
66
 
56
- *normalIndex* values define the order in which normal vectors are applied to polygons (or vertices).
67
+ *normalIndex* values define the order in which normal vectors are applied to polygons (or vertices). Interchange profile hint: this field may be ignored, applying the default value regardless.
57
68
 
58
- #### Hints
69
+ #### Warning
59
70
 
60
- - If normalPerVertex='false' then one index is provided for each polygon defined by the coordIndex array. No sentinel -1 values are included.
61
- - If normalPerVertex='true' then a matching set of indices is provided, each separated by sentinel -1, that exactly corresponds to individual values in the coordIndex array polygon definitions.
62
- - If no child Normal node is provided, the X3D browser shall automatically generate normals, using creaseAngle to determine smoothed shading across shared vertices.
71
+ - It is an error to define this transient inputOnly field in an X3D file, instead only use it a destination for ROUTE events.
63
72
 
64
73
  ### MFInt32 [in] **set_coordIndex** <small>[0,∞) or -1</small>
65
74
 
@@ -69,13 +78,19 @@ List of texture-coordinate indices mapping attached texture to corresponding coo
69
78
 
70
79
  - Sentinel value -1 is used to separate indices for each successive polygon.
71
80
 
81
+ #### Warning
82
+
83
+ - It is an error to define this transient inputOnly field in an X3D file, instead only use it a destination for ROUTE events.
84
+
72
85
  ### SFBool [ ] **solid** TRUE
73
86
 
74
- Setting solid true means draw only one side of polygons (backface culling on), setting solid false means draw both sides of polygons (backface culling off).
87
+ Setting *solid* true means draw only one side of polygons (backface culling on), setting *solid* false means draw both sides of polygons (backface culling off).
75
88
 
76
- #### Hint
89
+ #### Hints
77
90
 
78
- - If in doubt, use solid='false' for maximum visibility.
91
+ - Mnemonic "this geometry is *solid* like a brick" (you don't render the inside of a brick).
92
+ - If in doubt, use *solid*='false' for maximum visibility.
93
+ - (X3D version 4.0 draft) accessType relaxed to inputOutput in order to support animation and visualization.
79
94
 
80
95
  #### Warning
81
96
 
@@ -83,55 +98,80 @@ Setting solid true means draw only one side of polygons (backface culling on), s
83
98
 
84
99
  ### SFBool [ ] **ccw** TRUE
85
100
 
86
- *ccw* = counterclockwise: ordering of vertex coordinates orientation.
101
+ *ccw* defines clockwise/counterclockwise ordering of vertex coordinates, which in turn defines front/back orientation of polygon normals according to Right-Hand Rule (RHR).
87
102
 
88
- #### Hint
103
+ #### Hints
104
+
105
+ - A good debugging technique for problematic polygons is to try changing the value of *ccw*, which can reverse solid effects (single-sided backface culling) and normal-vector direction.
106
+ - [Clockwise](https://en.wikipedia.org/wiki/Clockwise){:target="_blank"}
89
107
 
90
- - *ccw* false can reverse solid (backface culling) and normal-vector orientation.
108
+ #### Warning
109
+
110
+ - Consistent and correct ordering of left-handed or right-handed point sequences is important throughout the coord array of point values.
91
111
 
92
112
  ### SFBool [ ] **convex** TRUE
93
113
 
94
- Whether all polygons in a shape are convex (true), or possibly concave (false) A convex polygon is planar, does not intersect itself, and has all interior angles \< 180 degrees. Interchange profile hint: only convex=true IndexedFaceSets are supported.
114
+ The *convex* field is a hint to renderers whether all polygons in a shape are *convex* (true), or possibly concave (false). A *convex* polygon is planar, does not intersect itself, and has all interior angles \< 180 degrees.
115
+
116
+ #### Hints
117
+
118
+ - Concave is the opposite of *convex*. Interchange profile hint: only *convex*=true IndexedFaceSets have guaranteed support.
119
+ - Select *convex*=false (i.e. concave) and solid=false (i.e. two-sided display) for greatest visibility of geometry.
120
+ - [*convex* polygon](https://en.wikipedia.org/wiki/Convex_polygon){:target="_blank"}
121
+ - [Tessellation](https://en.wikipedia.org/wiki/Tessellation){:target="_blank"}
95
122
 
96
123
  #### Warning
97
124
 
98
- - Concave geometry may be invisible default convex=true.
125
+ - Concave or inverted geometry may be invisible when using default value *convex*=true, since some renderers use more-efficient algorithms to perform tessellation that may inadvertently fail on concave geometry.
99
126
 
100
127
  ### SFFloat [ ] **creaseAngle** 0 <small>[0,∞)</small>
101
128
 
102
- *creaseAngle* defines angle (in radians) for determining whether adjacent polygons are drawn with sharp edges or smooth shading. If angle between normals of two adjacent polygons is less than creaseAngle, smooth shading is rendered across the shared line segment. Interchange profile hint: only 0 and π radians supported.
129
+ *creaseAngle* defines angle (in radians) for determining whether adjacent polygons are drawn with sharp edges or smooth shading. If angle between normals of two adjacent polygons is less than *creaseAngle*, smooth shading is rendered across the shared line segment. Interchange profile hint: only 0 and π radians supported.
103
130
 
104
- #### Hint
131
+ #### Hints
105
132
 
106
- - CreaseAngle=0 means render all edges sharply, creaseAngle=3.14159 means render all edges smoothly.
133
+ - *creaseAngle*=0 means render all edges sharply, *creaseAngle*=3.14159 means render all edges smoothly.
134
+ - [Radian units for angular measure](https://en.wikipedia.org/wiki/Radian){:target="_blank"}
107
135
 
108
136
  ### SFBool [ ] **colorPerVertex** TRUE
109
137
 
110
- Whether Color node color values are applied to each vertex (true) or to each polygon face (false).
138
+ Whether Color or ColorRGBA values are applied to each point vertex (true) or to each polygon face (false).
111
139
 
112
- #### See Also
140
+ #### Hint
113
141
 
114
142
  - [X3D Scene Authoring Hints, Color](https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#Color){:target="_blank"}
115
143
 
144
+ #### Warning
145
+
146
+ - If child Color or ColorRGBA node is not provided, then geometry is rendered using corresponding Appearance and material/texture values.
147
+
116
148
  ### SFBool [ ] **normalPerVertex** TRUE
117
149
 
118
- Whether Normal node vector values are applied to each vertex (true) or to each polygon face (false).
150
+ Whether Normal node vector values are applied to each point vertex (true) or to each polygon face (false).
151
+
152
+ #### Hint
153
+
154
+ - If no child Normal node is provided, the X3D browser shall automatically generate normals, using creaseAngle to determine smoothed shading across shared vertices.
119
155
 
120
156
  ### MFInt32 [ ] **colorIndex** [ ] <small>[0,∞) or -1</small>
121
157
 
122
- *colorIndex* values define the order in which Color|ColorRGBA values are applied to polygons (or vertices).
158
+ *colorIndex* values define the order in which Color or ColorRGBA values are applied to polygons (or vertices).
123
159
 
124
160
  #### Hints
125
161
 
126
- - If *colorIndex* array is not provided, then Color|ColorRGBA values are indexed according to the coordIndex field.
162
+ - If *colorIndex* array is not provided, then Color or ColorRGBA values are indexed according to the coordIndex field.
127
163
  - If colorPerVertex='false' then one index is provided for each polygon defined by the coordIndex array. No sentinel -1 values are included.
128
- - If colorPerVertex='true' then a matching set of indices is provided, each separated by sentinel -1, that exactly corresponds to individual
164
+ - If colorPerVertex='true' then a matching set of indices is provided, each separated by sentinel -1, that exactly corresponds to individual values in the coordIndex array polygon definitions.
165
+
166
+ #### Warning
167
+
168
+ - If child Color or ColorRGBA node is not provided, then geometry is rendered using corresponding Appearance and material/texture values.
129
169
 
130
170
  ### MFInt32 [ ] **texCoordIndex** [ ] <small>[-1,∞)</small>
131
171
 
132
172
  List of texture-coordinate indices mapping attached texture to corresponding coordinates.
133
173
 
134
- #### Hint
174
+ #### Hints
135
175
 
136
176
  - If *texCoordIndex* array is not provided, then TextureCoordinate values are indexed according to the coordIndex field.
137
177
  - Use a tool!
@@ -144,7 +184,7 @@ List of texture-coordinate indices mapping attached texture to corresponding coo
144
184
 
145
185
  - If normalPerVertex='false' then one index is provided for each polygon defined by the coordIndex array. No sentinel -1 values are included.
146
186
  - If normalPerVertex='true' then a matching set of indices is provided, each separated by sentinel -1, that exactly corresponds to individual values in the coordIndex array polygon definitions.
147
- - If no child Normal node is provided, the X3D browser shall automatically generate normals, using creaseAngle to determine smoothed shading across shared vertices.
187
+ - If no child Normal node is provided, the X3D browser shall automatically generate normals, using creaseAngle to determine smoothed shading across shared vertices. Interchange profile hint: this field may be ignored, applying the default value regardless.
148
188
 
149
189
  #### Warning
150
190
 
@@ -158,9 +198,13 @@ List of texture-coordinate indices mapping attached texture to corresponding coo
158
198
 
159
199
  - Sentinel value -1 is used to separate indices for each successive polygon.
160
200
 
201
+ #### Warning
202
+
203
+ - *coordIndex* is required in order to connect contained coordinate point values.
204
+
161
205
  ### MFNode [in, out] **attrib** [ ] <small>[X3DVertexAttributeNode]</small>
162
206
 
163
- Multiple contained FloatVertexAttribute nodes that can specify list of per-vertex attribute information for programmable shaders.
207
+ Single contained FloatVertexAttribute node that can specify list of per-vertex attribute information for programmable shaders.
164
208
 
165
209
  #### Hint
166
210
 
@@ -172,7 +216,7 @@ Single contained FogCoordinate node that can specify depth parameters for fog in
172
216
 
173
217
  ### SFNode [in, out] **color** NULL <small>[X3DColorNode]</small>
174
218
 
175
- Single contained Color or ColorRGBA node that can specify color values applied to corresponding vertices according to colorIndex and colorPerVertex fields.
219
+ Single contained Color or ColorRGBA node that can specify *color* values applied to corresponding vertices according to colorIndex and colorPerVertex fields.
176
220
 
177
221
  ### SFNode [in, out] **texCoord** NULL <small>[X3DTextureCoordinateNode]</small>
178
222
 
@@ -186,21 +230,31 @@ Single contained Normal node that can specify perpendicular vectors for correspo
186
230
 
187
231
  - Useful for special effects. Normal vector computation by 3D graphics hardware is quite fast so adding normals to a scene is typically unnecessary.
188
232
 
233
+ #### Warning
234
+
235
+ - *normal* vectors increase file size, typically doubling geometry definitions.
236
+
189
237
  ### SFNode [in, out] **coord** NULL <small>[X3DCoordinateNode]</small>
190
238
 
191
239
  Single contained Coordinate or CoordinateDouble node that can specify a list of vertex values.
192
240
 
193
- ## Description
241
+ ## Advisories
194
242
 
195
243
  ### Hints
196
244
 
245
+ - [Polygon](https://en.wikipedia.org/wiki/Polygon){:target="_blank"}
197
246
  - Insert a Shape node before adding geometry or Appearance.
198
- - You can also substitute a type-matched ProtoInstance node for contained content.
247
+ - For advanced extensibility, authors can substitute a type-matched ProtoInstance node (with correct containerField value) for contained node content.
248
+
249
+ ### Warnings
250
+
251
+ - Rendering characteristics are undefined if polygons are not planar.
252
+ - Avoid self-intersecting polygon line segments, otherwise defined geometry is irregular and rendering results are undefined.
199
253
 
200
254
  ## Example
201
255
 
202
256
  <x3d-canvas src="https://create3000.github.io/media/examples/Geometry3D/IndexedFaceSet/IndexedFaceSet.x3d" update="auto"></x3d-canvas>
203
257
 
204
- ## External Links
258
+ ## See Also
205
259
 
206
- - [X3D Specification of IndexedFaceSet](https://www.web3d.org/documents/specifications/19775-1/V4.0/Part01/components/geometry3D.html#IndexedFaceSet){:target="_blank"}
260
+ - [X3D Specification of IndexedFaceSet node](https://www.web3d.org/documents/specifications/19775-1/V4.0/Part01/components/geometry3D.html#IndexedFaceSet){:target="_blank"}
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  title: Sphere
3
- date: 2022-01-07
3
+ date: 2023-01-07
4
4
  nav: components-Geometry3D
5
5
  categories: [components, Geometry3D]
6
6
  tags: [Sphere, Geometry3D]
@@ -13,9 +13,9 @@ tags: [Sphere, Geometry3D]
13
13
 
14
14
  ## Overview
15
15
 
16
- Sphere is a geometry node.
16
+ Sphere is a geometry node, representing a perfectly round geometrical object that is the surface of a completely round ball.
17
17
 
18
- The Sphere node belongs to the **Geometry3D** component and its default container field is *geometry.* It is available since X3D version 2.0 or later.
18
+ The Sphere node belongs to the **Geometry3D** component and its default container field is *geometry.* It is available from X3D version 2.0 or higher.
19
19
 
20
20
  ## Hierarchy
21
21
 
@@ -29,38 +29,50 @@ The Sphere node belongs to the **Geometry3D** component and its default containe
29
29
 
30
30
  ### SFNode [in, out] **metadata** NULL <small>[X3DMetadataObject]</small>
31
31
 
32
- Metadata are not part of the X3D world and not interpreted by the X3D browser, but they can be accessed via the ECMAScript interface.
32
+ Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.
33
+
34
+ #### Hint
35
+
36
+ - [X3D Architecture 7.2.4 Metadata](https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/core.html#Metadata){:target="_blank"}
33
37
 
34
38
  ### SFFloat [ ] **radius** 1 <small>(0,∞)</small>
35
39
 
36
40
  Size in meters.
37
41
 
42
+ #### Hint
43
+
44
+ - For size animation, modify the scale of a parent/ancestor Transform node instead.
45
+
38
46
  #### Warning
39
47
 
40
- - Simple-geometry dimensions are initializeOnly and cannot be changed after initial creation, for animation use Transform scale instead.
48
+ - Simple-geometry dimensions are initializeOnly and cannot be changed after initial creation, avoiding the need for potentially expensive tessellation at run time.
41
49
 
42
50
  ### SFBool [ ] **solid** TRUE
43
51
 
44
- Setting solid true means draw only one side of polygons (backface culling on), setting solid false means draw both sides of polygons (backface culling off).
52
+ Setting *solid* true means draw only one side of polygons (backface culling on), setting *solid* false means draw both sides of polygons (backface culling off).
45
53
 
46
- #### Hint
54
+ #### Hints
47
55
 
48
- - If in doubt, use solid='false' for maximum visibility.
56
+ - Mnemonic "this geometry is *solid* like a brick" (you don't render the inside of a brick).
57
+ - If in doubt, use *solid*='false' for maximum visibility.
58
+ - (X3D version 4.0 draft) accessType relaxed to inputOutput in order to support animation and visualization.
49
59
 
50
60
  #### Warnings
51
61
 
52
- - Default value true can completely hide geometry if viewed from wrong side! Solid false not supported in VRML97.
62
+ - Default value true can completely hide geometry if viewed from wrong side!
63
+ - *solid* false not supported in VRML97.
53
64
 
54
- ## Description
65
+ ## Advisories
55
66
 
56
- ### Hint
67
+ ### Hints
57
68
 
69
+ - [Sphere](https://en.wikipedia.org/wiki/Sphere){:target="_blank"}
58
70
  - Insert a Shape node before adding geometry or Appearance.
59
71
 
60
72
  ## Example
61
73
 
62
74
  <x3d-canvas src="https://create3000.github.io/media/examples/Geometry3D/Sphere/Sphere.x3d" update="auto"></x3d-canvas>
63
75
 
64
- ## External Links
76
+ ## See Also
65
77
 
66
- - [X3D Specification of Sphere](https://www.web3d.org/documents/specifications/19775-1/V4.0/Part01/components/geometry3D.html#Sphere){:target="_blank"}
78
+ - [X3D Specification of Sphere node](https://www.web3d.org/documents/specifications/19775-1/V4.0/Part01/components/geometry3D.html#Sphere){:target="_blank"}