Interface ParticleSystem
- All Superinterfaces:
X3DBoundedObject
,X3DChildNode
,X3DNode
,X3DShapeNode
- All Known Implementing Classes:
ParticleSystem
ParticleSystem specifies a complete particle system.
Warning: this is an abstract interface that cannot be instantiated as a concrete object. Java programmers typically only need to use concrete objects provided by the
Package hint: This interface is defined by the X3D Java Language Binding Specification for the Scene Authoring Interface (SAI).
Warning: this is an abstract interface that cannot be instantiated as a concrete object. Java programmers typically only need to use concrete objects provided by the
org.web3d.x3d.jsail
classes.
ParticleSystem node tooltip: (X3D version 3.2 or later) [X3DShapeNode] ParticleSystem specifies a complete particle system. It can contain Appearance for particle appearance, a geometry node if gemoetryType='GEOMETRY', a color field with Color|ColorRGBA node for changing base color over each particle's lifetime, a texcoord TextureCoordinate node to control texture coordinates of provided texture(s) in the Appearance node over time, a single emitter X3DParticleEmitterNode, and an array of physics X3DParticlePhysicsModelNode nodes.
- Hint: event timing details are explained in X3D Specification 4.4.8.3 Execution model https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/concepts.html#ExecutionModelHint: Wikipedia, particle system https://en.wikipedia.org/wiki/Particle_system
Package hint: This interface is defined by the X3D Java Language Binding Specification for the Scene Authoring Interface (SAI).
- See Also:
-
Method Summary
Modifier and TypeMethodDescriptionvoid
addPhysics
(X3DNode[] newValue) Add array of child physics nodes to array of existing nodes (if any).Provide org.web3d.x3d.sai.Shape.X3DAppearanceNode instance (using a properly typed node) from inputOutput SFNode field appearance.float[]
Provide array of 3-tuple float results from initializeOnly SFVec3f field named bboxCenter.boolean
Provide boolean value from inputOutput SFBool field named bboxDisplay.float[]
Provide array of 3-tuple float results within allowed range of [0,infinity), or default value [-1 -1 -1], from initializeOnly SFVec3f field named bboxSize.boolean
Provide boolean value from inputOutput SFBool field named castShadow.getColor()
Provide org.web3d.x3d.sai.Rendering.X3DColorNode instance (using a properly typed node) using RGB values [0..1] from initializeOnly SFNode field color.float[]
Provide array of float results using RGB values [0..1] from initializeOnly MFFloat field named colorKey.boolean
Provide boolean value from inputOutput SFBool field named createParticles.Provide org.web3d.x3d.sai.ParticleSystems.X3DParticleEmitterNode instance (using a properly typed node) from initializeOnly SFNode field emitter.boolean
Provide boolean value from inputOutput SFBool field named enabled.Provide org.web3d.x3d.sai.Rendering.X3DGeometryNode instance (using a properly typed node) from inputOutput SFNode field geometry.Provide String enumeration value (baseType xs:NMTOKEN) ["LINE" | "POINT" | "QUAD" | "SPRITE" | "TRIANGLE" | "GEOMETRY" | 'etc.'] from initializeOnly SFString field named geometryType.boolean
Provide boolean value from outputOnly SFBool field named isActive.float
Provide float value within allowed range of [0,1] from inputOutput SFFloat field named lifetimeVariation.int
Provide int value within allowed range of [0,infinity) from inputOutput SFInt32 field named maxParticles.Provide org.web3d.x3d.sai.Core.X3DMetadataObject instance (using a properly typed node) from inputOutput SFNode field metadata.float
Provide float value within allowed range of [0,infinity) from inputOutput SFFloat field named particleLifetime.float[]
Provide array of 2-tuple float results within allowed range of [0,infinity) from inputOutput SFVec2f field named particleSize.X3DNode[]
Provide array of org.web3d.x3d.sai.Core.X3DNode results (using an array consisting of properly typed nodes or ProtoInstances) from initializeOnly MFNode field physics.Provide org.web3d.x3d.sai.Core.X3DNode instance (using a properly typed node) with acceptable node types limited to TextureCoordinate|TextureCoordinateGenerator, from initializeOnly SFNode field texCoord.float[]
Provide array of float results within allowed range of [0,infinity) from initializeOnly MFFloat field named texCoordKey.boolean
Provide boolean value from inputOutput SFBool field named visible.setAppearance
(X3DAppearanceNode newValue) Accessor method to assign org.web3d.x3d.sai.Shape.X3DAppearanceNode instance (using a properly typed node) to inputOutput SFNode field appearance.setBboxCenter
(float[] newValue) Accessor method to assign 3-tuple float array to initializeOnly SFVec3f field named bboxCenter.setBboxDisplay
(boolean newValue) Accessor method to assign boolean value to inputOutput SFBool field named bboxDisplay.setBboxSize
(float[] newValue) Accessor method to assign 3-tuple float array to initializeOnly SFVec3f field named bboxSize.setCastShadow
(boolean newValue) Accessor method to assign boolean value to inputOutput SFBool field named castShadow.setColor
(X3DColorNode newValue) Accessor method to assign org.web3d.x3d.sai.Rendering.X3DColorNode instance (using a properly typed node) to initializeOnly SFNode field color.setColorKey
(float[] newValue) Accessor method to assign float array to initializeOnly MFFloat field named colorKey.setCreateParticles
(boolean newValue) Accessor method to assign boolean value to inputOutput SFBool field named createParticles.setEmitter
(X3DParticleEmitterNode newValue) Accessor method to assign org.web3d.x3d.sai.ParticleSystems.X3DParticleEmitterNode instance (using a properly typed node) to initializeOnly SFNode field emitter.setEnabled
(boolean newValue) Accessor method to assign boolean value to inputOutput SFBool field named enabled.setGeometry
(X3DGeometryNode newValue) Accessor method to assign org.web3d.x3d.sai.Rendering.X3DGeometryNode instance (using a properly typed node) to inputOutput SFNode field geometry.setGeometryType
(String newValue) Accessor method to assign String enumeration value ("LINE" | "POINT" | "QUAD" | "SPRITE" | "TRIANGLE" | "GEOMETRY") to initializeOnly SFString field named geometryType.setLifetimeVariation
(float newValue) Accessor method to assign float value to inputOutput SFFloat field named lifetimeVariation.setMaxParticles
(int newValue) Accessor method to assign int value to inputOutput SFInt32 field named maxParticles.setMetadata
(X3DMetadataObject newValue) Accessor method to assign org.web3d.x3d.sai.Core.X3DMetadataObject instance (using a properly typed node) to inputOutput SFNode field metadata.setParticleLifetime
(float newValue) Accessor method to assign float value to inputOutput SFFloat field named particleLifetime.setParticleSize
(float[] newValue) Accessor method to assign 2-tuple float array to inputOutput SFVec2f field named particleSize.void
setPhysics
(X3DNode newValue) Set single child physics node, replacing prior array of existing nodes (if any).setPhysics
(X3DNode[] newValue) Accessor method to assign org.web3d.x3d.sai.Core.X3DNode array (using an array consisting of properly typed nodes or ProtoInstances) to initializeOnly MFNode field physics.setTexCoord
(X3DNode newValue) Accessor method to assign org.web3d.x3d.sai.Core.X3DNode instance (using a properly typed node) to initializeOnly SFNode field texCoord.setTexCoordKey
(float[] newValue) Accessor method to assign float array to initializeOnly MFFloat field named texCoordKey.setVisible
(boolean newValue) Accessor method to assign boolean value to inputOutput SFBool field named visible.
-
Method Details
-
getAppearance
X3DAppearanceNode getAppearance()Provide org.web3d.x3d.sai.Shape.X3DAppearanceNode instance (using a properly typed node) from inputOutput SFNode field appearance.
Tooltip: [X3DAppearanceNode] The appearance field holds an Appearance node that is used for the geometry. All effects, such as material colors and/or multi-textures, are applied to each particle.- Hint: if a texture coordinate ramp and key is supplied with this geometry, it shall be used in preference to any automatic texture coordinate generation.
- Hint: if automatic texture coordinate generation is used, results shall be based on the entire volume that the particles consume, not locally applied to each particle.
- Specified by:
getAppearance
in interfaceX3DShapeNode
- Returns:
- value of appearance field
-
setAppearance
Accessor method to assign org.web3d.x3d.sai.Shape.X3DAppearanceNode instance (using a properly typed node) to inputOutput SFNode field appearance.
Tooltip: [X3DAppearanceNode] The appearance field holds an Appearance node that is used for the geometry. All effects, such as material colors and/or multi-textures, are applied to each particle.- Hint: if a texture coordinate ramp and key is supplied with this geometry, it shall be used in preference to any automatic texture coordinate generation.
- Hint: if automatic texture coordinate generation is used, results shall be based on the entire volume that the particles consume, not locally applied to each particle.
- Specified by:
setAppearance
in interfaceX3DShapeNode
- Parameters:
newValue
- is new value for the appearance field.- Returns:
ParticleSystem
- namely this same object to allow sequential method pipelining (i.e. consecutive method invocations on the same object).
-
getBboxCenter
float[] getBboxCenter()Provide array of 3-tuple float results from initializeOnly SFVec3f field named bboxCenter.
Tooltip: Bounding box center accompanies bboxSize and provides an optional hint for bounding box position offset from origin of local coordinate system.- Hint: precomputation and inclusion of bounding box information can speed up the initialization of large detailed models, with a corresponding cost of increased file size.
- Hint: X3D Architecture, 10.2.2 Bounding boxes https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/grouping.html#BoundingBoxes
- Hint: X3D Architecture, 10.3.1 X3DBoundedObject https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/grouping.html#X3DBoundedObject
- Specified by:
getBboxCenter
in interfaceX3DBoundedObject
- Specified by:
getBboxCenter
in interfaceX3DShapeNode
- Returns:
- value of bboxCenter field
-
setBboxCenter
Accessor method to assign 3-tuple float array to initializeOnly SFVec3f field named bboxCenter.
Tooltip: Bounding box center accompanies bboxSize and provides an optional hint for bounding box position offset from origin of local coordinate system.- Hint: precomputation and inclusion of bounding box information can speed up the initialization of large detailed models, with a corresponding cost of increased file size.
- Hint: X3D Architecture, 10.2.2 Bounding boxes https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/grouping.html#BoundingBoxes
- Hint: X3D Architecture, 10.3.1 X3DBoundedObject https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/grouping.html#X3DBoundedObject
- Specified by:
setBboxCenter
in interfaceX3DBoundedObject
- Specified by:
setBboxCenter
in interfaceX3DShapeNode
- Parameters:
newValue
- is new value for the bboxCenter field.- Returns:
ParticleSystem
- namely this same object to allow sequential method pipelining (i.e. consecutive method invocations on the same object).
-
getBboxDisplay
boolean getBboxDisplay()Provide boolean value from inputOutput SFBool field named bboxDisplay.
Tooltip: Whether to display bounding box for associated geometry, aligned with world coordinates.- Hint: the bounding box is displayed regardless of whether contained content is visible.
- Specified by:
getBboxDisplay
in interfaceX3DBoundedObject
- Specified by:
getBboxDisplay
in interfaceX3DShapeNode
- Returns:
- value of bboxDisplay field
-
setBboxDisplay
Accessor method to assign boolean value to inputOutput SFBool field named bboxDisplay.
Tooltip: Whether to display bounding box for associated geometry, aligned with world coordinates.- Hint: the bounding box is displayed regardless of whether contained content is visible.
- Specified by:
setBboxDisplay
in interfaceX3DBoundedObject
- Specified by:
setBboxDisplay
in interfaceX3DShapeNode
- Parameters:
newValue
- is new value for the bboxDisplay field.- Returns:
ParticleSystem
- namely this same object to allow sequential method pipelining (i.e. consecutive method invocations on the same object).
-
getBboxSize
float[] getBboxSize()Provide array of 3-tuple float results within allowed range of [0,infinity), or default value [-1 -1 -1], from initializeOnly SFVec3f field named bboxSize.
Tooltip: or [0,+infinity) Bounding box size is usually omitted, and can easily be calculated automatically by an X3D player at scene-loading time with minimal computational cost. Bounding box size can also be defined as an optional authoring hint that suggests an optimization or constraint.- Hint: can be useful for collision computations or inverse-kinematics (IK) engines.
- Hint: precomputation and inclusion of bounding box information can speed up the initialization of large detailed models, with a corresponding cost of increased file size.
- Hint: X3D Architecture, 10.2.2 Bounding boxes https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/grouping.html#BoundingBoxes
- Hint: X3D Architecture, 10.3.1 X3DBoundedObject https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/grouping.html#X3DBoundedObject
- Specified by:
getBboxSize
in interfaceX3DBoundedObject
- Specified by:
getBboxSize
in interfaceX3DShapeNode
- Returns:
- value of bboxSize field
-
setBboxSize
Accessor method to assign 3-tuple float array to initializeOnly SFVec3f field named bboxSize.
Tooltip: or [0,+infinity) Bounding box size is usually omitted, and can easily be calculated automatically by an X3D player at scene-loading time with minimal computational cost. Bounding box size can also be defined as an optional authoring hint that suggests an optimization or constraint.- Hint: can be useful for collision computations or inverse-kinematics (IK) engines.
- Hint: precomputation and inclusion of bounding box information can speed up the initialization of large detailed models, with a corresponding cost of increased file size.
- Hint: X3D Architecture, 10.2.2 Bounding boxes https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/grouping.html#BoundingBoxes
- Hint: X3D Architecture, 10.3.1 X3DBoundedObject https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/grouping.html#X3DBoundedObject
- Specified by:
setBboxSize
in interfaceX3DBoundedObject
- Specified by:
setBboxSize
in interfaceX3DShapeNode
- Parameters:
newValue
- is new value for the bboxSize field.- Returns:
ParticleSystem
- namely this same object to allow sequential method pipelining (i.e. consecutive method invocations on the same object).
-
getCastShadow
boolean getCastShadow()Provide boolean value from inputOutput SFBool field named castShadow.
Tooltip: The castShadow field defines whether this Shape casts shadows as produced by lighting nodes.- Hint: if the visible field is FALSE, then the Shape does not cast any shadows, regardless of the castShadow value.
- Hint: if prior X3D3 content is loaded into an X3D4 model, then legacy Shape nodes have shadows set to true.
- Specified by:
getCastShadow
in interfaceX3DShapeNode
- Returns:
- value of castShadow field
-
setCastShadow
Accessor method to assign boolean value to inputOutput SFBool field named castShadow.
Tooltip: The castShadow field defines whether this Shape casts shadows as produced by lighting nodes.- Hint: if the visible field is FALSE, then the Shape does not cast any shadows, regardless of the castShadow value.
- Hint: if prior X3D3 content is loaded into an X3D4 model, then legacy Shape nodes have shadows set to true.
- Specified by:
setCastShadow
in interfaceX3DShapeNode
- Parameters:
newValue
- is new value for the castShadow field.- Returns:
ParticleSystem
- namely this same object to allow sequential method pipelining (i.e. consecutive method invocations on the same object).
-
getColor
X3DColorNode getColor()Provide org.web3d.x3d.sai.Rendering.X3DColorNode instance (using a properly typed node) using RGB values [0..1] from initializeOnly SFNode field color.
Tooltip: [X3DColorNode] The color field contains Color|ColorRGBA nodes as a series of color values to be used at the given colorKey points in time.- Warning: field originally named 'colorRamp' in X3Dv3. https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#fieldNameChanges
- Hint: color values are defined as per-vertex color values.
- Warning: if an Appearance and Material nodes are provided, those material properties override color field interpolation.
- Hint: number of colorKey values must match length of the per-vertex color field array values!
- Hint: X3D Scene Authoring Hints, Color https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#Color
- Returns:
- value of color field
-
setColor
Accessor method to assign org.web3d.x3d.sai.Rendering.X3DColorNode instance (using a properly typed node) to initializeOnly SFNode field color.
Tooltip: [X3DColorNode] The color field contains Color|ColorRGBA nodes as a series of color values to be used at the given colorKey points in time.- Warning: field originally named 'colorRamp' in X3Dv3. https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#fieldNameChanges
- Hint: color values are defined as per-vertex color values.
- Warning: if an Appearance and Material nodes are provided, those material properties override color field interpolation.
- Hint: number of colorKey values must match length of the per-vertex color field array values!
- Hint: X3D Scene Authoring Hints, Color https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#Color
- Parameters:
newValue
- is new value for the color field.- Returns:
ParticleSystem
- namely this same object to allow sequential method pipelining (i.e. consecutive method invocations on the same object).
-
getColorKey
float[] getColorKey()Provide array of float results using RGB values [0..1] from initializeOnly MFFloat field named colorKey.
Tooltip: [0,+infinity) Array of time intervals in seconds, corresponding to particle lifetime, that are used to interpolate color array values.- Hint: color values are interpolated in linear Hue Saturation Value (HSV) space, similar to ColorInterpolator node.
- Hint: color values are defined as per-vertex color values.
- Warning: if an Appearance and Material nodes are provided, those material properties override color field interpolation.
- Hint: number of colorKey values must match length of the per-vertex color field array values!
- Hint: X3D Scene Authoring Hints, Color https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#Color
- Returns:
- value of colorKey field
-
setColorKey
Accessor method to assign float array to initializeOnly MFFloat field named colorKey.
Tooltip: [0,+infinity) Array of time intervals in seconds, corresponding to particle lifetime, that are used to interpolate color array values.- Hint: color values are interpolated in linear Hue Saturation Value (HSV) space, similar to ColorInterpolator node.
- Hint: color values are defined as per-vertex color values.
- Warning: if an Appearance and Material nodes are provided, those material properties override color field interpolation.
- Hint: number of colorKey values must match length of the per-vertex color field array values!
- Hint: X3D Scene Authoring Hints, Color https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#Color
- Parameters:
newValue
- is new value for the colorKey field.- Returns:
ParticleSystem
- namely this same object to allow sequential method pipelining (i.e. consecutive method invocations on the same object).
-
getCreateParticles
boolean getCreateParticles()Provide boolean value from inputOutput SFBool field named createParticles.
Tooltip: Enables/disables creation of new particles, while any existing particles remain in existence and continue to animate until the end of their lifetimes.- Hint: if no particles are left in scene, system is considered both active and enabled.
- Returns:
- value of createParticles field
-
setCreateParticles
Accessor method to assign boolean value to inputOutput SFBool field named createParticles.
Tooltip: Enables/disables creation of new particles, while any existing particles remain in existence and continue to animate until the end of their lifetimes.- Hint: if no particles are left in scene, system is considered both active and enabled.
- Parameters:
newValue
- is new value for the createParticles field.- Returns:
ParticleSystem
- namely this same object to allow sequential method pipelining (i.e. consecutive method invocations on the same object).
-
getEmitter
X3DParticleEmitterNode getEmitter()Provide org.web3d.x3d.sai.ParticleSystems.X3DParticleEmitterNode instance (using a properly typed node) from initializeOnly SFNode field emitter.
Tooltip: [X3DParticleEmitterNode] The emitter field specifies the type of emitter geometry and properties that the particles are given for their initial positions. *- Returns:
- value of emitter field
-
setEmitter
Accessor method to assign org.web3d.x3d.sai.ParticleSystems.X3DParticleEmitterNode instance (using a properly typed node) to initializeOnly SFNode field emitter.
Tooltip: [X3DParticleEmitterNode] The emitter field specifies the type of emitter geometry and properties that the particles are given for their initial positions. *- Parameters:
newValue
- is new value for the emitter field.- Returns:
ParticleSystem
- namely this same object to allow sequential method pipelining (i.e. consecutive method invocations on the same object).
-
getEnabled
boolean getEnabled()Provide boolean value from inputOutput SFBool field named enabled.
Tooltip: Enables/disables node operation. *- Returns:
- value of enabled field
-
setEnabled
Accessor method to assign boolean value to inputOutput SFBool field named enabled.
Tooltip: Enables/disables node operation. *- Parameters:
newValue
- is new value for the enabled field.- Returns:
ParticleSystem
- namely this same object to allow sequential method pipelining (i.e. consecutive method invocations on the same object).
-
getGeometry
X3DGeometryNode getGeometry()Provide org.web3d.x3d.sai.Rendering.X3DGeometryNode instance (using a properly typed node) from inputOutput SFNode field geometry.
Tooltip: [X3DGeometryNode] Single contained geometry node provides geometry used for each particle when geometryType=GEOMETRY.- Hint: X3D for Advanced Modeling (X3D4AM) slideset https://x3dgraphics.com/slidesets/X3dForAdvancedModeling/GeospatialComponentX3dEarth.pdf
- Warning: requires X3D profile='Full' or else include <component name='Geospatial' level='1'/>
- Specified by:
getGeometry
in interfaceX3DShapeNode
- Returns:
- value of geometry field
-
setGeometry
Accessor method to assign org.web3d.x3d.sai.Rendering.X3DGeometryNode instance (using a properly typed node) to inputOutput SFNode field geometry.
Tooltip: [X3DGeometryNode] Single contained geometry node provides geometry used for each particle when geometryType=GEOMETRY.- Hint: X3D for Advanced Modeling (X3D4AM) slideset https://x3dgraphics.com/slidesets/X3dForAdvancedModeling/GeospatialComponentX3dEarth.pdf
- Warning: requires X3D profile='Full' or else include <component name='Geospatial' level='1'/>
- Specified by:
setGeometry
in interfaceX3DShapeNode
- Parameters:
newValue
- is new value for the geometry field.- Returns:
ParticleSystem
- namely this same object to allow sequential method pipelining (i.e. consecutive method invocations on the same object).
-
getGeometryType
String getGeometryType()Provide String enumeration value (baseType xs:NMTOKEN) ["LINE" | "POINT" | "QUAD" | "SPRITE" | "TRIANGLE" | "GEOMETRY" | 'etc.'] from initializeOnly SFString field named geometryType.
Tooltip: specifies type of geometry used to represent individual particles. Typically, a particle is calculated as point in space at which the geometry is placed. Changing the value of the geometry field or the definition of the geometry node shall be applied during current computation of the next frame to be rendered.- Hint: LINE means that a line is drawn along the particle's current velocity vector, for this frame, centered about the particle's position. The length of the line is specified by the particle's height from the particleSize field value.
- Hint: POINT means that a point geometry is rendered at the particle's position.
- Hint: QUAD means that a 2D quad is rendered aligned in the local coordinate space of the particle system with the face normal pointing along the positive Z axis. Individual quads are not aligned to the user's eye position but are affected in depth by the physics model. The particle's position is at the center of the quad.
- Hint: SPRITE means that a point sprite that uses a 2D point position to locate a screen-aligned quad at the center of the particle's location is rendered.
- Hint: TRIANGLE means that a 2D quad is rendered using a pair of triangles aligned in the local coordinate space of the particle system with the face normal pointing along the positive Z axis. Individual triangles are not aligned to the user's eye position, but are affected in depth by the physics model. The particle's position is at the center of the triangle.
- Hint: GEOMETRY means that the geometry specified by the geometry field is rendered for each particle using the local coordinate system.
- Warning: do not wrap extra quotation marks around these SFString enumeration values, since "quotation" "marks" are only used for MFString values.
- Hint: X3D for Advanced Modeling (X3D4AM) slideset https://x3dgraphics.com/slidesets/X3dForAdvancedModeling/GeospatialComponentX3dEarth.pdf
- Warning: requires X3D profile='Full' or else include <component name='Geospatial' level='1'/>
- Returns:
- value of geometryType field
-
setGeometryType
Accessor method to assign String enumeration value ("LINE" | "POINT" | "QUAD" | "SPRITE" | "TRIANGLE" | "GEOMETRY") to initializeOnly SFString field named geometryType.
Tooltip: specifies type of geometry used to represent individual particles. Typically, a particle is calculated as point in space at which the geometry is placed. Changing the value of the geometry field or the definition of the geometry node shall be applied during current computation of the next frame to be rendered.- Hint: LINE means that a line is drawn along the particle's current velocity vector, for this frame, centered about the particle's position. The length of the line is specified by the particle's height from the particleSize field value.
- Hint: POINT means that a point geometry is rendered at the particle's position.
- Hint: QUAD means that a 2D quad is rendered aligned in the local coordinate space of the particle system with the face normal pointing along the positive Z axis. Individual quads are not aligned to the user's eye position but are affected in depth by the physics model. The particle's position is at the center of the quad.
- Hint: SPRITE means that a point sprite that uses a 2D point position to locate a screen-aligned quad at the center of the particle's location is rendered.
- Hint: TRIANGLE means that a 2D quad is rendered using a pair of triangles aligned in the local coordinate space of the particle system with the face normal pointing along the positive Z axis. Individual triangles are not aligned to the user's eye position, but are affected in depth by the physics model. The particle's position is at the center of the triangle.
- Hint: GEOMETRY means that the geometry specified by the geometry field is rendered for each particle using the local coordinate system.
- Warning: do not wrap extra quotation marks around these SFString enumeration values, since "quotation" "marks" are only used for MFString values.
- Hint: X3D for Advanced Modeling (X3D4AM) slideset https://x3dgraphics.com/slidesets/X3dForAdvancedModeling/GeospatialComponentX3dEarth.pdf
- Warning: requires X3D profile='Full' or else include <component name='Geospatial' level='1'/>
- Parameters:
newValue
- is new value for the geometryType field.- Returns:
ParticleSystem
- namely this same object to allow sequential method pipelining (i.e. consecutive method invocations on the same object).
-
getIsActive
boolean getIsActive()Provide boolean value from outputOnly SFBool field named isActive.
Tooltip: isActive true/false events are sent when playback starts/stops.- Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events.
- Returns:
- value of isActive field
-
getLifetimeVariation
float getLifetimeVariation()Provide float value within allowed range of [0,1] from inputOutput SFFloat field named lifetimeVariation.
Tooltip: [0,1) TODO not properly defined in X3D spedification. Multiplier for the randomness used to control the range of possible output values. The bigger the value, the more random the output and the bigger the range of initial values possible.- Hint: variation of zero does not allow any randomness.
- Returns:
- value of lifetimeVariation field
-
setLifetimeVariation
Accessor method to assign float value to inputOutput SFFloat field named lifetimeVariation.
Tooltip: [0,1) TODO not properly defined in X3D spedification. Multiplier for the randomness used to control the range of possible output values. The bigger the value, the more random the output and the bigger the range of initial values possible.- Hint: variation of zero does not allow any randomness.
- Parameters:
newValue
- is new value for the lifetimeVariation field.- Returns:
ParticleSystem
- namely this same object to allow sequential method pipelining (i.e. consecutive method invocations on the same object).
-
getMaxParticles
int getMaxParticles()Provide int value within allowed range of [0,infinity) from inputOutput SFInt32 field named maxParticles.
Tooltip: [0,+infinity) Maximum number of particles to be generated at one time (subject to player limitations). *- Returns:
- value of maxParticles field
-
setMaxParticles
Accessor method to assign int value to inputOutput SFInt32 field named maxParticles.
Tooltip: [0,+infinity) Maximum number of particles to be generated at one time (subject to player limitations). *- Parameters:
newValue
- is new value for the maxParticles field.- Returns:
ParticleSystem
- namely this same object to allow sequential method pipelining (i.e. consecutive method invocations on the same object).
-
getMetadata
X3DMetadataObject getMetadata()Provide org.web3d.x3d.sai.Core.X3DMetadataObject instance (using a properly typed node) from inputOutput SFNode field metadata.
Tooltip: [X3DMetadataObject] Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.- Hint: X3D Architecture 7.2.4 Metadata https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/core.html#Metadata
- Specified by:
getMetadata
in interfaceX3DChildNode
- Specified by:
getMetadata
in interfaceX3DNode
- Specified by:
getMetadata
in interfaceX3DShapeNode
- Returns:
- value of metadata field
- See Also:
-
setMetadata
Accessor method to assign org.web3d.x3d.sai.Core.X3DMetadataObject instance (using a properly typed node) to inputOutput SFNode field metadata.
Tooltip: [X3DMetadataObject] Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.- Hint: X3D Architecture 7.2.4 Metadata https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/core.html#Metadata
- Specified by:
setMetadata
in interfaceX3DChildNode
- Specified by:
setMetadata
in interfaceX3DNode
- Specified by:
setMetadata
in interfaceX3DShapeNode
- Parameters:
newValue
- is new value for the metadata field.- Returns:
ParticleSystem
- namely this same object to allow sequential method pipelining (i.e. consecutive method invocations on the same object).- See Also:
-
getParticleLifetime
float getParticleLifetime()Provide float value within allowed range of [0,infinity) from inputOutput SFFloat field named particleLifetime.
Tooltip: [0,+infinity) TODO not properly defined in X3D spedification. Particle animation lifetime in base time units (default is seconds). *- Returns:
- value of particleLifetime field
-
setParticleLifetime
Accessor method to assign float value to inputOutput SFFloat field named particleLifetime.
Tooltip: [0,+infinity) TODO not properly defined in X3D spedification. Particle animation lifetime in base time units (default is seconds). *- Parameters:
newValue
- is new value for the particleLifetime field.- Returns:
ParticleSystem
- namely this same object to allow sequential method pipelining (i.e. consecutive method invocations on the same object).
-
getParticleSize
float[] getParticleSize()Provide array of 2-tuple float results within allowed range of [0,infinity) from inputOutput SFVec2f field named particleSize.
Tooltip: [0,+infinity) particleSize describes width and height dimensions for each particle in length base units (default is meters). Changing this value dynamically will only change new particles created after the change.- Hint: particles created before this timestamp will remain at the old size.
- Hint: his field only effects particles using LINE, QUAD, SPRITE, and TRIANGLE geometry types.
- Returns:
- value of particleSize field
-
setParticleSize
Accessor method to assign 2-tuple float array to inputOutput SFVec2f field named particleSize.
Tooltip: [0,+infinity) particleSize describes width and height dimensions for each particle in length base units (default is meters). Changing this value dynamically will only change new particles created after the change.- Hint: particles created before this timestamp will remain at the old size.
- Hint: his field only effects particles using LINE, QUAD, SPRITE, and TRIANGLE geometry types.
- Parameters:
newValue
- is new value for the particleSize field.- Returns:
ParticleSystem
- namely this same object to allow sequential method pipelining (i.e. consecutive method invocations on the same object).
-
getPhysics
X3DNode[] getPhysics()Provide array of org.web3d.x3d.sai.Core.X3DNode results (using an array consisting of properly typed nodes or ProtoInstances) from initializeOnly MFNode field physics.
Tooltip: [X3DParticlePhysicsModelNode] After being created, the individual particles are then manipulated according to the physics model(s) specified in the physics field. *
Warning: according to X3D Unified Object Model (X3DUOM), acceptable node types are limited to X3DParticlePhysicsModelNode.- Returns:
- value of physics field
- See Also:
-
setPhysics
Accessor method to assign org.web3d.x3d.sai.Core.X3DNode array (using an array consisting of properly typed nodes or ProtoInstances) to initializeOnly MFNode field physics.
Tooltip: [X3DParticlePhysicsModelNode] After being created, the individual particles are then manipulated according to the physics model(s) specified in the physics field. *
Note: according to X3D Unified Object Model (X3DUOM), acceptable node types are limited to X3DParticlePhysicsModelNode.- Parameters:
newValue
- is new value for the physics field.- Returns:
ParticleSystem
- namely this same object to allow sequential method pipelining (i.e. consecutive method invocations on the same object).
-
addPhysics
Add array of child physics nodes to array of existing nodes (if any).
Note: according to X3D Unified Object Model (X3DUOM), acceptable node types are limited to X3DParticlePhysicsModelNode.- Parameters:
newValue
- is new value array to be appended the physics field.
-
setPhysics
Set single child physics node, replacing prior array of existing nodes (if any).- Parameters:
newValue
- is new node for the physics field
-
getTexCoord
X3DNode getTexCoord()Provide org.web3d.x3d.sai.Core.X3DNode instance (using a properly typed node) with acceptable node types limited to TextureCoordinate|TextureCoordinateGenerator, from initializeOnly SFNode field texCoord.
Tooltip: [TextureCoordinate|TextureCoordinateGenerator] texture coordinates of the provided texture(s) in the Appearance node, over time. Particle systems frequently like to change the texture on a particle as it ages, yet there is no good way of accomplishing this through standard interpolators because interpolators have no concept of particle time. This pair of fields hold time-dependent values for the texture coordinates to be applied to the particle. When a particle reaches the next time stamp it moves to the next set of texture coordinates.- Warning: field originally named 'texCoordRamp' in X3Dv3. https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#fieldNameChanges
- Hint: texture-coordinate values map textures to vertices in the geometry.
- Hint: number of texCoordKey values must match length of the per-vertex texCoord arrays!
- Returns:
- value of texCoord field
-
setTexCoord
Accessor method to assign org.web3d.x3d.sai.Core.X3DNode instance (using a properly typed node) to initializeOnly SFNode field texCoord.
Tooltip: [TextureCoordinate|TextureCoordinateGenerator] texture coordinates of the provided texture(s) in the Appearance node, over time. Particle systems frequently like to change the texture on a particle as it ages, yet there is no good way of accomplishing this through standard interpolators because interpolators have no concept of particle time. This pair of fields hold time-dependent values for the texture coordinates to be applied to the particle. When a particle reaches the next time stamp it moves to the next set of texture coordinates.- Warning: field originally named 'texCoordRamp' in X3Dv3. https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#fieldNameChanges
- Hint: texture-coordinate values map textures to vertices in the geometry.
- Hint: number of texCoordKey values must match length of the per-vertex texCoord arrays!
- Parameters:
newValue
- is new value for the texCoord field.- Returns:
ParticleSystem
- namely this same object to allow sequential method pipelining (i.e. consecutive method invocations on the same object).
-
getTexCoordKey
float[] getTexCoordKey()Provide array of float results within allowed range of [0,infinity) from initializeOnly MFFloat field named texCoordKey.
Tooltip: [0,+infinity) Array of time intervals in seconds, corresponding to particle lifetime, that are used to sequence texCoord array values.- Hint: no interpolation is performed, texture coordinates are simply sequenced in order.
- Hint: texture-coordinate values map textures to vertices in the geometry.
- Hint: number of texCoordKey values must match length of the per-vertex texCoord arrays!.
- Returns:
- value of texCoordKey field
-
setTexCoordKey
Accessor method to assign float array to initializeOnly MFFloat field named texCoordKey.
Tooltip: [0,+infinity) Array of time intervals in seconds, corresponding to particle lifetime, that are used to sequence texCoord array values.- Hint: no interpolation is performed, texture coordinates are simply sequenced in order.
- Hint: texture-coordinate values map textures to vertices in the geometry.
- Hint: number of texCoordKey values must match length of the per-vertex texCoord arrays!.
- Parameters:
newValue
- is new value for the texCoordKey field.- Returns:
ParticleSystem
- namely this same object to allow sequential method pipelining (i.e. consecutive method invocations on the same object).
-
getVisible
boolean getVisible()Provide boolean value from inputOutput SFBool field named visible.
Tooltip: Whether or not renderable content within this node is visually displayed.- Hint: the visible field has no effect on animation behaviors, event passing or other non-visual characteristics.
- Hint: content must be visible to be collidable and to be pickable.
- Specified by:
getVisible
in interfaceX3DBoundedObject
- Specified by:
getVisible
in interfaceX3DShapeNode
- Returns:
- value of visible field
-
setVisible
Accessor method to assign boolean value to inputOutput SFBool field named visible.
Tooltip: Whether or not renderable content within this node is visually displayed.- Hint: the visible field has no effect on animation behaviors, event passing or other non-visual characteristics.
- Hint: content must be visible to be collidable and to be pickable.
- Specified by:
setVisible
in interfaceX3DBoundedObject
- Specified by:
setVisible
in interfaceX3DShapeNode
- Parameters:
newValue
- is new value for the visible field.- Returns:
ParticleSystem
- namely this same object to allow sequential method pipelining (i.e. consecutive method invocations on the same object).
-