x_ite 8.8.6 → 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 (384) hide show
  1. package/Makefile +6 -0
  2. package/build/docs/nodes.pl +434 -0
  3. package/dist/assets/components/Annotation.js +14 -14
  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 +28 -28
  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 +52 -40
  16. package/dist/assets/components/Geospatial.min.js +1 -1
  17. package/dist/assets/components/HAnim.js +19 -19
  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 +26 -26
  24. package/dist/assets/components/NURBS.min.js +1 -1
  25. package/dist/assets/components/ParticleSystems.js +76 -74
  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 +29 -30
  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 +23 -23
  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 +21 -21
  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 +1002 -133
  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 +47 -21
  49. package/docs/_posts/components/CADGeometry/CADFace.md +47 -21
  50. package/docs/_posts/components/CADGeometry/CADLayer.md +50 -21
  51. package/docs/_posts/components/CADGeometry/CADPart.md +56 -26
  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 +27 -36
  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 +39 -30
  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 +43 -18
  65. package/docs/_posts/components/DIS/DISEntityTypeMapping.md +43 -34
  66. package/docs/_posts/components/DIS/EspduTransform.md +211 -78
  67. package/docs/_posts/components/DIS/ReceiverPdu.md +95 -45
  68. package/docs/_posts/components/DIS/SignalPdu.md +98 -44
  69. package/docs/_posts/components/DIS/TransmitterPdu.md +118 -68
  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 +27 -14
  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 +25 -10
  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 +31 -23
  109. package/docs/_posts/components/Geometry3D/Cylinder.md +32 -28
  110. package/docs/_posts/components/Geometry3D/ElevationGrid.md +75 -31
  111. package/docs/_posts/components/Geometry3D/Extrusion.md +100 -48
  112. package/docs/_posts/components/Geometry3D/IndexedFaceSet.md +95 -43
  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 +85 -40
  116. package/docs/_posts/components/Geospatial/GeoLOD.md +69 -30
  117. package/docs/_posts/components/Geospatial/GeoLocation.md +66 -28
  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 +66 -21
  123. package/docs/_posts/components/Geospatial/GeoTransform.md +74 -30
  124. package/docs/_posts/components/Geospatial/GeoViewpoint.md +88 -41
  125. package/docs/_posts/components/Grouping/Group.md +34 -18
  126. package/docs/_posts/components/Grouping/StaticGroup.md +39 -18
  127. package/docs/_posts/components/Grouping/Switch.md +41 -22
  128. package/docs/_posts/components/Grouping/Transform.md +47 -30
  129. package/docs/_posts/components/HAnim/HAnimDisplacer.md +48 -37
  130. package/docs/_posts/components/HAnim/HAnimHumanoid.md +245 -55
  131. package/docs/_posts/components/HAnim/HAnimJoint.md +136 -70
  132. package/docs/_posts/components/HAnim/HAnimMotion.md +128 -18
  133. package/docs/_posts/components/HAnim/HAnimSegment.md +92 -52
  134. package/docs/_posts/components/HAnim/HAnimSite.md +95 -52
  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 +39 -14
  151. package/docs/_posts/components/Layering/LayerSet.md +21 -15
  152. package/docs/_posts/components/Layering/Viewport.md +34 -18
  153. package/docs/_posts/components/Layout/Layout.md +28 -17
  154. package/docs/_posts/components/Layout/LayoutGroup.md +37 -21
  155. package/docs/_posts/components/Layout/LayoutLayer.md +40 -15
  156. package/docs/_posts/components/Layout/ScreenFontStyle.md +74 -47
  157. package/docs/_posts/components/Layout/ScreenGroup.md +35 -19
  158. package/docs/_posts/components/Lighting/DirectionalLight.md +23 -15
  159. package/docs/_posts/components/Lighting/EnvironmentLight.md +7 -11
  160. package/docs/_posts/components/Lighting/PointLight.md +27 -15
  161. package/docs/_posts/components/Lighting/SpotLight.md +36 -23
  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 +16 -12
  166. package/docs/_posts/components/NURBS/NurbsCurve2D.md +15 -11
  167. package/docs/_posts/components/NURBS/NurbsOrientationInterpolator.md +31 -15
  168. package/docs/_posts/components/NURBS/NurbsPatchSurface.md +29 -23
  169. package/docs/_posts/components/NURBS/NurbsPositionInterpolator.md +30 -14
  170. package/docs/_posts/components/NURBS/NurbsSet.md +51 -17
  171. package/docs/_posts/components/NURBS/NurbsSurfaceInterpolator.md +48 -28
  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 +26 -22
  175. package/docs/_posts/components/NURBS/NurbsTrimmedSurface.md +36 -26
  176. package/docs/_posts/components/Navigation/Billboard.md +35 -19
  177. package/docs/_posts/components/Navigation/Collision.md +61 -24
  178. package/docs/_posts/components/Navigation/LOD.md +55 -25
  179. package/docs/_posts/components/Navigation/NavigationInfo.md +69 -26
  180. package/docs/_posts/components/Navigation/OrthoViewpoint.md +89 -38
  181. package/docs/_posts/components/Navigation/Viewpoint.md +95 -40
  182. package/docs/_posts/components/Navigation/ViewpointGroup.md +29 -18
  183. package/docs/_posts/components/Networking/Anchor.md +56 -58
  184. package/docs/_posts/components/Networking/Inline.md +44 -31
  185. package/docs/_posts/components/Networking/LoadSensor.md +43 -11
  186. package/docs/_posts/components/ParticleSystems/BoundedPhysicsModel.md +16 -8
  187. package/docs/_posts/components/ParticleSystems/ConeEmitter.md +31 -12
  188. package/docs/_posts/components/ParticleSystems/ExplosionEmitter.md +23 -12
  189. package/docs/_posts/components/ParticleSystems/ForcePhysicsModel.md +15 -8
  190. package/docs/_posts/components/ParticleSystems/ParticleSystem.md +110 -55
  191. package/docs/_posts/components/ParticleSystems/PointEmitter.md +25 -14
  192. package/docs/_posts/components/ParticleSystems/PolylineEmitter.md +28 -16
  193. package/docs/_posts/components/ParticleSystems/SurfaceEmitter.md +25 -14
  194. package/docs/_posts/components/ParticleSystems/VolumeEmitter.md +35 -16
  195. package/docs/_posts/components/ParticleSystems/WindPhysicsModel.md +12 -8
  196. package/docs/_posts/components/Picking/LinePickSensor.md +57 -31
  197. package/docs/_posts/components/Picking/PickableGroup.md +44 -26
  198. package/docs/_posts/components/Picking/PointPickSensor.md +47 -26
  199. package/docs/_posts/components/Picking/PrimitivePickSensor.md +43 -31
  200. package/docs/_posts/components/Picking/VolumePickSensor.md +43 -26
  201. package/docs/_posts/components/PointingDeviceSensor/CylinderSensor.md +46 -21
  202. package/docs/_posts/components/PointingDeviceSensor/PlaneSensor.md +43 -20
  203. package/docs/_posts/components/PointingDeviceSensor/SphereSensor.md +37 -15
  204. package/docs/_posts/components/PointingDeviceSensor/TouchSensor.md +50 -16
  205. package/docs/_posts/components/Rendering/ClipPlane.md +21 -16
  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 +55 -27
  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 +24 -12
  220. package/docs/_posts/components/RigidBodyPhysics/CollidableOffset.md +40 -17
  221. package/docs/_posts/components/RigidBodyPhysics/CollidableShape.md +37 -19
  222. package/docs/_posts/components/RigidBodyPhysics/CollisionCollection.md +24 -19
  223. package/docs/_posts/components/RigidBodyPhysics/CollisionSensor.md +21 -12
  224. package/docs/_posts/components/RigidBodyPhysics/CollisionSpace.md +36 -17
  225. package/docs/_posts/components/RigidBodyPhysics/Contact.md +20 -16
  226. package/docs/_posts/components/RigidBodyPhysics/DoubleAxisHingeJoint.md +43 -41
  227. package/docs/_posts/components/RigidBodyPhysics/MotorJoint.md +86 -34
  228. package/docs/_posts/components/RigidBodyPhysics/RigidBody.md +36 -26
  229. package/docs/_posts/components/RigidBodyPhysics/RigidBodyCollection.md +36 -20
  230. package/docs/_posts/components/RigidBodyPhysics/SingleAxisHingeJoint.md +33 -23
  231. package/docs/_posts/components/RigidBodyPhysics/SliderJoint.md +31 -19
  232. package/docs/_posts/components/RigidBodyPhysics/UniversalJoint.md +31 -23
  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 +52 -46
  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 +38 -10
  243. package/docs/_posts/components/Shape/Appearance.md +30 -23
  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 +23 -24
  249. package/docs/_posts/components/Shape/Shape.md +38 -20
  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 +151 -18
  253. package/docs/_posts/components/Sound/AudioClip.md +82 -32
  254. package/docs/_posts/components/Sound/AudioDestination.md +85 -9
  255. package/docs/_posts/components/Sound/BiquadFilter.md +160 -17
  256. package/docs/_posts/components/Sound/BufferAudioSource.md +184 -28
  257. package/docs/_posts/components/Sound/ChannelMerger.md +70 -8
  258. package/docs/_posts/components/Sound/ChannelSelector.md +73 -9
  259. package/docs/_posts/components/Sound/ChannelSplitter.md +77 -9
  260. package/docs/_posts/components/Sound/Convolver.md +138 -14
  261. package/docs/_posts/components/Sound/Delay.md +134 -15
  262. package/docs/_posts/components/Sound/DynamicsCompressor.md +146 -19
  263. package/docs/_posts/components/Sound/Gain.md +128 -13
  264. package/docs/_posts/components/Sound/ListenerPointSource.md +121 -12
  265. package/docs/_posts/components/Sound/MicrophoneSource.md +101 -10
  266. package/docs/_posts/components/Sound/OscillatorSource.md +107 -12
  267. package/docs/_posts/components/Sound/PeriodicWave.md +48 -7
  268. package/docs/_posts/components/Sound/Sound.md +61 -22
  269. package/docs/_posts/components/Sound/SpatialSound.md +136 -17
  270. package/docs/_posts/components/Sound/StreamAudioDestination.md +89 -9
  271. package/docs/_posts/components/Sound/StreamAudioSource.md +101 -10
  272. package/docs/_posts/components/Sound/WaveShaper.md +138 -15
  273. package/docs/_posts/components/Text/FontStyle.md +75 -49
  274. package/docs/_posts/components/Text/Text.md +48 -26
  275. package/docs/_posts/components/TextureProjector/TextureProjector.md +63 -12
  276. package/docs/_posts/components/TextureProjector/TextureProjectorParallel.md +64 -12
  277. package/docs/_posts/components/Texturing/ImageTexture.md +28 -20
  278. package/docs/_posts/components/Texturing/MovieTexture.md +87 -40
  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 +45 -20
  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 +28 -16
  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 +70 -27
  296. package/docs/_posts/components/VolumeRendering/BlendedVolumeStyle.md +41 -20
  297. package/docs/_posts/components/VolumeRendering/BoundaryEnhancementVolumeStyle.md +20 -10
  298. package/docs/_posts/components/VolumeRendering/CartoonVolumeStyle.md +24 -21
  299. package/docs/_posts/components/VolumeRendering/ComposedVolumeStyle.md +18 -10
  300. package/docs/_posts/components/VolumeRendering/EdgeEnhancementVolumeStyle.md +22 -14
  301. package/docs/_posts/components/VolumeRendering/IsoSurfaceVolumeData.md +59 -37
  302. package/docs/_posts/components/VolumeRendering/OpacityMapVolumeStyle.md +16 -8
  303. package/docs/_posts/components/VolumeRendering/ProjectionVolumeStyle.md +28 -6
  304. package/docs/_posts/components/VolumeRendering/SegmentedVolumeData.md +63 -30
  305. package/docs/_posts/components/VolumeRendering/ShadedVolumeStyle.md +27 -19
  306. package/docs/_posts/components/VolumeRendering/SilhouetteEnhancementVolumeStyle.md +21 -13
  307. package/docs/_posts/components/VolumeRendering/ToneMappedVolumeStyle.md +25 -16
  308. package/docs/_posts/components/VolumeRendering/VolumeData.md +43 -26
  309. package/docs/_posts/components/X_ITE/BlendMode.md +16 -9
  310. package/docs/_posts/getting-started.md +1 -0
  311. package/docs/_posts/laboratory/x3d-file-converter.md +1 -1
  312. package/docs/_tabs/playground.html +3 -1
  313. package/docs/assets/css/style.scss +4 -4
  314. package/package.json +1 -1
  315. package/src/x_ite/Base/X3DBaseNode.js +1 -1
  316. package/src/x_ite/Base/X3DInfoArray.js +2 -2
  317. package/src/x_ite/Browser/Core/X3DCoreContext.js +10 -3
  318. package/src/x_ite/Browser/DOMIntegration.js +13 -8
  319. package/src/x_ite/Browser/VERSION.js +1 -1
  320. package/src/x_ite/Components/Annotation/GroupAnnotation.js +1 -1
  321. package/src/x_ite/Components/CubeMapTexturing/ComposedCubeMapTexture.js +3 -3
  322. package/src/x_ite/Components/DIS/DISEntityManager.js +1 -1
  323. package/src/x_ite/Components/Geospatial/GeoLocation.js +1 -1
  324. package/src/x_ite/Components/Geospatial/GeoViewpoint.js +18 -6
  325. package/src/x_ite/Components/Grouping/Switch.js +1 -1
  326. package/src/x_ite/Components/HAnim/HAnimMotion.js +1 -1
  327. package/src/x_ite/Components/Layering/X3DLayerNode.js +1 -1
  328. package/src/x_ite/Components/Lighting/DirectionalLight.js +1 -1
  329. package/src/x_ite/Components/NURBS/NurbsPatchSurface.js +1 -1
  330. package/src/x_ite/Components/NURBS/NurbsTrimmedSurface.js +1 -1
  331. package/src/x_ite/Components/Navigation/Collision.js +1 -1
  332. package/src/x_ite/Components/Navigation/LOD.js +1 -1
  333. package/src/x_ite/Components/Navigation/Viewpoint.js +1 -1
  334. package/src/x_ite/Components/Navigation/X3DViewpointNode.js +1 -1
  335. package/src/x_ite/Components/Networking/LoadSensor.js +1 -1
  336. package/src/x_ite/Components/ParticleSystems/ConeEmitter.js +9 -9
  337. package/src/x_ite/Components/ParticleSystems/ExplosionEmitter.js +7 -7
  338. package/src/x_ite/Components/ParticleSystems/ParticleSystem.js +1 -1
  339. package/src/x_ite/Components/ParticleSystems/PointEmitter.js +8 -8
  340. package/src/x_ite/Components/ParticleSystems/PolylineEmitter.js +9 -9
  341. package/src/x_ite/Components/ParticleSystems/SurfaceEmitter.js +7 -7
  342. package/src/x_ite/Components/ParticleSystems/VolumeEmitter.js +12 -10
  343. package/src/x_ite/Components/RigidBodyPhysics/Contact.js +1 -1
  344. package/src/x_ite/Components/RigidBodyPhysics/MotorJoint.js +6 -6
  345. package/src/x_ite/Components/RigidBodyPhysics/SingleAxisHingeJoint.js +0 -1
  346. package/src/x_ite/Components/RigidBodyPhysics/UniversalJoint.js +4 -4
  347. package/src/x_ite/Components/Shape/AcousticProperties.js +1 -1
  348. package/src/x_ite/Components/Shape/Appearance.js +1 -1
  349. package/src/x_ite/Components/Shape/FillProperties.js +1 -1
  350. package/src/x_ite/Components/Shape/Material.js +1 -1
  351. package/src/x_ite/Components/Shape/PhysicalMaterial.js +1 -1
  352. package/src/x_ite/Components/Shape/TwoSidedMaterial.js +1 -1
  353. package/src/x_ite/Components/Sound/Analyser.js +2 -2
  354. package/src/x_ite/Components/Sound/AudioDestination.js +2 -2
  355. package/src/x_ite/Components/Sound/BiquadFilter.js +3 -3
  356. package/src/x_ite/Components/Sound/BufferAudioSource.js +2 -2
  357. package/src/x_ite/Components/Sound/ChannelMerger.js +2 -2
  358. package/src/x_ite/Components/Sound/ChannelSelector.js +2 -2
  359. package/src/x_ite/Components/Sound/ChannelSplitter.js +2 -2
  360. package/src/x_ite/Components/Sound/Convolver.js +2 -2
  361. package/src/x_ite/Components/Sound/Delay.js +2 -2
  362. package/src/x_ite/Components/Sound/DynamicsCompressor.js +2 -2
  363. package/src/x_ite/Components/Sound/Gain.js +2 -2
  364. package/src/x_ite/Components/Sound/PeriodicWave.js +1 -1
  365. package/src/x_ite/Components/Sound/StreamAudioDestination.js +2 -2
  366. package/src/x_ite/Components/Sound/WaveShaper.js +3 -3
  367. package/src/x_ite/Components/TextureProjector/TextureProjector.js +4 -4
  368. package/src/x_ite/Components/TextureProjector/TextureProjectorParallel.js +5 -5
  369. package/src/x_ite/Components/Texturing/PixelTexture.js +1 -1
  370. package/src/x_ite/Components/Texturing/TextureProperties.js +1 -1
  371. package/src/x_ite/Components/VolumeRendering/IsoSurfaceVolumeData.js +1 -1
  372. package/src/x_ite/Components/VolumeRendering/SegmentedVolumeData.js +1 -1
  373. package/src/x_ite/Components/VolumeRendering/VolumeData.js +1 -1
  374. package/src/x_ite/Configuration/SupportedComponents.js +2 -2
  375. package/src/x_ite/Fields/ArrayFields.js +2 -2
  376. package/src/x_ite/Fields/SFColor.js +1 -1
  377. package/src/x_ite/Fields/SFMatrixPrototypeTemplate.js +1 -1
  378. package/src/x_ite/Fields/SFRotation.js +3 -3
  379. package/src/x_ite/Fields/SFVecPrototypeTemplate.js +1 -1
  380. package/src/x_ite/Parser/GoldenGate.js +16 -5
  381. package/src/x_ite/Parser/PLYAParser.js +615 -0
  382. package/src/x_ite/Parser/PLYBParser.js +222 -0
  383. package/src/x_ite/Parser/STLAParser.js +0 -1
  384. /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,36 +56,41 @@ 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
 
66
- **colorIndex** values define the order in which Color|ColorRGBA values are applied to polygons (or vertices).
75
+ *coordIndex* indices provide the order in which coordinates are applied to construct each polygon face. Order starts at index 0, commas are optional between sets.
67
76
 
68
- #### Hints
77
+ #### Hint
69
78
 
70
- - If *colorIndex* array is not provided, then Color|ColorRGBA values are indexed according to the coordIndex field.
71
- - If colorPerVertex='false' then one index is provided for each polygon defined by the coordIndex array. No sentinel -1 values are included.
72
- - 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.
79
+ - Sentinel value -1 is used to separate indices for each successive polygon.
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.
73
84
 
74
85
  ### SFBool [ ] **solid** TRUE
75
86
 
76
- 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).
77
88
 
78
- #### Hint
89
+ #### Hints
79
90
 
80
- - 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.
81
94
 
82
95
  #### Warning
83
96
 
@@ -85,55 +98,80 @@ Setting solid true means draw only one side of polygons (backface culling on), s
85
98
 
86
99
  ### SFBool [ ] **ccw** TRUE
87
100
 
88
- *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).
89
102
 
90
- #### Hint
103
+ #### Hints
91
104
 
92
- - *ccw* false can reverse solid (backface culling) and normal-vector orientation.
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"}
107
+
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.
93
111
 
94
112
  ### SFBool [ ] **convex** TRUE
95
113
 
96
- 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"}
97
122
 
98
123
  #### Warning
99
124
 
100
- - 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.
101
126
 
102
127
  ### SFFloat [ ] **creaseAngle** 0 <small>[0,∞)</small>
103
128
 
104
- *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.
105
130
 
106
- #### Hint
131
+ #### Hints
107
132
 
108
- - 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"}
109
135
 
110
136
  ### SFBool [ ] **colorPerVertex** TRUE
111
137
 
112
- 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).
113
139
 
114
- #### See Also
140
+ #### Hint
115
141
 
116
142
  - [X3D Scene Authoring Hints, Color](https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#Color){:target="_blank"}
117
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
+
118
148
  ### SFBool [ ] **normalPerVertex** TRUE
119
149
 
120
- 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.
121
155
 
122
156
  ### MFInt32 [ ] **colorIndex** [ ] <small>[0,∞) or -1</small>
123
157
 
124
- *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).
125
159
 
126
160
  #### Hints
127
161
 
128
- - 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.
129
163
  - If colorPerVertex='false' then one index is provided for each polygon defined by the coordIndex array. No sentinel -1 values are included.
130
- - 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.
131
169
 
132
170
  ### MFInt32 [ ] **texCoordIndex** [ ] <small>[-1,∞)</small>
133
171
 
134
172
  List of texture-coordinate indices mapping attached texture to corresponding coordinates.
135
173
 
136
- #### Hint
174
+ #### Hints
137
175
 
138
176
  - If *texCoordIndex* array is not provided, then TextureCoordinate values are indexed according to the coordIndex field.
139
177
  - Use a tool!
@@ -146,7 +184,7 @@ List of texture-coordinate indices mapping attached texture to corresponding coo
146
184
 
147
185
  - If normalPerVertex='false' then one index is provided for each polygon defined by the coordIndex array. No sentinel -1 values are included.
148
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.
149
- - 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.
150
188
 
151
189
  #### Warning
152
190
 
@@ -160,9 +198,13 @@ List of texture-coordinate indices mapping attached texture to corresponding coo
160
198
 
161
199
  - Sentinel value -1 is used to separate indices for each successive polygon.
162
200
 
201
+ #### Warning
202
+
203
+ - *coordIndex* is required in order to connect contained coordinate point values.
204
+
163
205
  ### MFNode [in, out] **attrib** [ ] <small>[X3DVertexAttributeNode]</small>
164
206
 
165
- 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.
166
208
 
167
209
  #### Hint
168
210
 
@@ -174,7 +216,7 @@ Single contained FogCoordinate node that can specify depth parameters for fog in
174
216
 
175
217
  ### SFNode [in, out] **color** NULL <small>[X3DColorNode]</small>
176
218
 
177
- 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.
178
220
 
179
221
  ### SFNode [in, out] **texCoord** NULL <small>[X3DTextureCoordinateNode]</small>
180
222
 
@@ -188,21 +230,31 @@ Single contained Normal node that can specify perpendicular vectors for correspo
188
230
 
189
231
  - Useful for special effects. Normal vector computation by 3D graphics hardware is quite fast so adding normals to a scene is typically unnecessary.
190
232
 
233
+ #### Warning
234
+
235
+ - *normal* vectors increase file size, typically doubling geometry definitions.
236
+
191
237
  ### SFNode [in, out] **coord** NULL <small>[X3DCoordinateNode]</small>
192
238
 
193
239
  Single contained Coordinate or CoordinateDouble node that can specify a list of vertex values.
194
240
 
195
- ## Description
241
+ ## Advisories
196
242
 
197
243
  ### Hints
198
244
 
245
+ - [Polygon](https://en.wikipedia.org/wiki/Polygon){:target="_blank"}
199
246
  - Insert a Shape node before adding geometry or Appearance.
200
- - 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.
201
253
 
202
254
  ## Example
203
255
 
204
256
  <x3d-canvas src="https://create3000.github.io/media/examples/Geometry3D/IndexedFaceSet/IndexedFaceSet.x3d" update="auto"></x3d-canvas>
205
257
 
206
- ## External Links
258
+ ## See Also
207
259
 
208
- - [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"}