Class X3DConcreteNode

java.lang.Object
org.web3d.x3d.jsail.X3DConcreteElement
org.web3d.x3d.jsail.X3DConcreteNode
Direct Known Subclasses:
AcousticProperties, Analyser, Anchor, Appearance, Arc2D, ArcClose2D, AudioClip, AudioDestination, Background, BallJoint, Billboard, BiquadFilter, BlendedVolumeStyle, BooleanFilter, BooleanSequencer, BooleanToggle, BooleanTrigger, BoundaryEnhancementVolumeStyle, BoundedPhysicsModel, Box, BufferAudioSource, CADAssembly, CADFace, CADLayer, CADPart, CartoonVolumeStyle, ChannelMerger, ChannelSelector, ChannelSplitter, Circle2D, ClipPlane, CollidableOffset, CollidableShape, Collision, CollisionCollection, CollisionSensor, CollisionSpace, Color, ColorChaser, ColorDamper, ColorInterpolator, ColorRGBA, ComposedCubeMapTexture, ComposedShader, ComposedTexture3D, ComposedVolumeStyle, Cone, ConeEmitter, Contact, Contour2D, ContourPolyline2D, Convolver, Coordinate, CoordinateChaser, CoordinateDamper, CoordinateDouble, CoordinateInterpolator, CoordinateInterpolator2D, Cylinder, CylinderSensor, Delay, DirectionalLight, DISEntityManager, DISEntityTypeMapping, Disk2D, DoubleAxisHingeJoint, DynamicsCompressor, EaseInEaseOut, EdgeEnhancementVolumeStyle, ElevationGrid, EnvironmentLight, EspduTransform, ExplosionEmitter, Extrusion, FillProperties, FloatVertexAttribute, Fog, FogCoordinate, FontStyle, ForcePhysicsModel, Gain, GeneratedCubeMapTexture, GeoCoordinate, GeoElevationGrid, GeoLocation, GeoLOD, GeoMetadata, GeoOrigin, GeoPositionInterpolator, GeoProximitySensor, GeoTouchSensor, GeoTransform, GeoViewpoint, Group, HAnimDisplacer, HAnimHumanoid, HAnimJoint, HAnimMotion, HAnimSegment, HAnimSite, ImageCubeMapTexture, ImageTexture, ImageTexture3D, IndexedFaceSet, IndexedLineSet, IndexedQuadSet, IndexedTriangleFanSet, IndexedTriangleSet, IndexedTriangleStripSet, Inline, IntegerSequencer, IntegerTrigger, IsoSurfaceVolumeData, KeySensor, Layer, LayerSet, Layout, LayoutGroup, LayoutLayer, LinePickSensor, LineProperties, LineSet, ListenerPointSource, LoadSensor, LocalFog, LOD, Material, Matrix3VertexAttribute, Matrix4VertexAttribute, MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataSet, MetadataString, MicrophoneSource, MotorJoint, MovieTexture, MultiTexture, MultiTextureCoordinate, MultiTextureTransform, NavigationInfo, Normal, NormalInterpolator, NurbsCurve, NurbsCurve2D, NurbsOrientationInterpolator, NurbsPatchSurface, NurbsPositionInterpolator, NurbsSet, NurbsSurfaceInterpolator, NurbsSweptSurface, NurbsSwungSurface, NurbsTextureCoordinate, NurbsTrimmedSurface, OpacityMapVolumeStyle, OrientationChaser, OrientationDamper, OrientationInterpolator, OrthoViewpoint, OscillatorSource, PackagedShader, ParticleSystem, PeriodicWave, PhysicalMaterial, PickableGroup, PixelTexture, PixelTexture3D, PlaneSensor, PointEmitter, PointLight, PointPickSensor, PointProperties, PointSet, Polyline2D, PolylineEmitter, Polypoint2D, PositionChaser, PositionChaser2D, PositionDamper, PositionDamper2D, PositionInterpolator, PositionInterpolator2D, PrimitivePickSensor, ProgramShader, ProjectionVolumeStyle, ProtoInstance, ProximitySensor, QuadSet, ReceiverPdu, Rectangle2D, RigidBody, RigidBodyCollection, ScalarChaser, ScalarDamper, ScalarInterpolator, ScreenFontStyle, ScreenGroup, Script, SegmentedVolumeData, ShadedVolumeStyle, ShaderPart, ShaderProgram, Shape, SignalPdu, SilhouetteEnhancementVolumeStyle, SingleAxisHingeJoint, SliderJoint, Sound, SpatialSound, Sphere, SphereSensor, SplinePositionInterpolator, SplinePositionInterpolator2D, SplineScalarInterpolator, SpotLight, SquadOrientationInterpolator, StaticGroup, StreamAudioDestination, StreamAudioSource, StringSensor, SurfaceEmitter, Switch, TexCoordChaser2D, TexCoordDamper2D, Text, TextureBackground, TextureCoordinate, TextureCoordinate3D, TextureCoordinate4D, TextureCoordinateGenerator, TextureProjector, TextureProjectorParallel, TextureProperties, TextureTransform, TextureTransform3D, TextureTransformMatrix3D, TimeSensor, TimeTrigger, ToneMappedVolumeStyle, TouchSensor, Transform, TransformSensor, TransmitterPdu, TriangleFanSet, TriangleSet, TriangleSet2D, TriangleStripSet, TwoSidedMaterial, UniversalJoint, UnlitMaterial, Viewpoint, ViewpointGroup, Viewport, VisibilitySensor, VolumeData, VolumeEmitter, VolumePickSensor, WaveShaper, WindPhysicsModel, WorldInfo

public abstract class X3DConcreteNode extends X3DConcreteElement
Abstract parent class for concrete X3D nodes, containing common methods and member variables.

See Also:
X3D Tooltips, X3D Scene Authoring Hints
  • Field Details

    • DEF_DEFAULT_VALUE

      public static final String DEF_DEFAULT_VALUE
      SFString field named DEF has default value equal to an empty string.
      See Also:
      Constant Field Values
    • USE_DEFAULT_VALUE

      public static final String USE_DEFAULT_VALUE
      SFString field named USE has default value equal to an empty string.
      See Also:
      Constant Field Values
    • containerField_ALTERNATE_VALUES

      public String[] containerField_ALTERNATE_VALUES
      containerField describes the field relationship of a node to its parent. Modification of this value is not needed when using this API, since alternative values are provided for informational purposes. When relevant, a concrete class independently overrides this array with final values.
      See Also:
      X3D Scene Authoring Hints: containerField
  • Constructor Details

    • X3DConcreteNode

      public X3DConcreteNode()
  • Method Details

    • isNode

      public static final boolean isNode()
      Utility method to indicate whether this element is an X3D Graphics node (implementing X3DConcreteNode), returns true.

      Returns:
      whether this element is an X3D Graphics node: true
      See Also:
      X3DConcreteNode, X3D Abstract Specification, Terms and definitions: node
    • isStatement

      public static final boolean isStatement()
      Utility method to indicate whether this element is an X3D Graphics statement (implementing X3DConcreteStatement), returns false.

      Returns:
      whether this element is an X3D Graphics statement: false
      See Also:
      X3DConcreteStatement, CommentsBlock, X3D Abstract Specification: 7.2.5 Abstract X3D structure
    • initialize

      public void initialize()
      Initialize all member variables to default values.
      Overrides:
      initialize in class X3DConcreteElement
    • includesNameField

      protected void includesNameField()
      Protected method for X3DJSAIL class initialize() methods to indicate whether the current concrete node has a getName() method
    • hasNameField

      public boolean hasNameField()
      Whether or not this class has a getName() method
      Returns:
      whether this X3D node includes a name field
    • getName

      public String getName()
      Utility method to permit querying name value
      Returns:
      name value if available for this class
    • getDEF

      public String getDEF()
      Provide String value from inputOutput SFString field named DEF.

      Tooltip: DEF defines a unique ID name for this node, referenceable by other nodes.
      • Hint: descriptive DEF names improve clarity and help document a model.
      • Hint: well-defined names can simplify design and debugging through improved author understanding.
      • Hint: USE references to previously defined DEF geometry (instead of duplicating nodes) can improve performance.
      • Warning: each USE value must match a corresponding DEF value that is defined earlier in the scene.
      Returns:
      value of DEF field
      See Also:
      X3D Scene Authoring Hints: Naming Conventions
    • hasDEF

      public boolean hasDEF()
      Utility method to indicate whether this element has a DEF identifier.

      Tooltip: DEF defines a unique ID name for this node, referenceable by other nodes.
      • Hint: descriptive DEF names improve clarity and help document a model.
      • Hint: well-defined names can simplify design and debugging through improved author understanding.
      • Hint: USE references to previously defined DEF geometry (instead of duplicating nodes) can improve performance.
      • Warning: each USE value must match a corresponding DEF value that is defined earlier in the scene.
      Returns:
      whether this node is a USE reference
      See Also:
      X3D Scene Authoring Hints: Naming Conventions
    • getUSE

      public String getUSE()
      Provide String value from inputOutput SFString field named USE.

      Tooltip: USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value).
      • Hint: USE references to previously defined DEF geometry (instead of duplicating nodes) can improve performance.
      • Warning: each USE value must match a corresponding DEF value that is defined earlier in the scene.
      Returns:
      value of USE field
      See Also:
      X3D Scene Authoring Hints: Naming Conventions
    • hasUSE

      public boolean hasUSE()
      Utility method to indicate whether this element has a USE reference to another previously defined element (which means other fields must be empty).

      Tooltip: USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value).
      • Hint: USE references to previously defined DEF geometry (instead of duplicating nodes) can improve performance.
      • Warning: each USE value must match a corresponding DEF value that is defined earlier in the scene.
      Returns:
      whether this node is a USE reference
      See Also:
      X3D Scene Authoring Hints: Naming Conventions
    • setConcreteDEF

      protected void setConcreteDEF(String newValue)
      Protected internal superclass method to keep DEF private, scene authors should use method setDEF(newValue) instead.
      Parameters:
      newValue - is new value for the DEF field.
      See Also:
      SFString.isNMTOKEN(String), X3D Tooltips: type NMTOKEN, X3D Regular Expressions (regexes)
    • setConcreteUSE

      protected final void setConcreteUSE(String newValue)
      Protected internal superclass method to keep USE private, scene authors should use method setUse(newValue) instead.
      Parameters:
      newValue - is new value for the USE field.
      See Also:
      SFString.isNMTOKEN(String), X3D Tooltips: type NMTOKEN
    • setDEF

      public abstract X3DConcreteNode setDEF(String DEFlabel)
      Each concrete class must independently override this abstract method to enable object-specific method pipelining.
      Parameters:
      DEFlabel - is new value for the DEF field.
      Returns:
      X3DConcreteNode - namely this same object to allow sequential method pipelining (i.e. consecutive method invocations on the same object).
    • setUSE

      public abstract X3DConcreteNode setUSE(String USEname)
      Each concrete class must independently override this abstract method to enable object-specific method pipelining.
      • Warning: note that the setUSE() method on this node resets all other fields to their default values (except for containerField) and also releases all child nodes.
      • Warning: no other operations can be performed to modify a USE node other than setting an alternate containerField value.
      Parameters:
      USEname - is new value for the USE field.
      Returns:
      X3DConcreteNode - namely this same object to allow sequential method pipelining (i.e. consecutive method invocations on the same object).
    • setCssClass

      public abstract X3DConcreteNode setCssClass(String cssClass)
      Each concrete class must independently override this abstract method to enable object-specific method pipelining. This attribute is only functional if the X3D model is loaded within an HTML page. Tooltip: The class attribute is a space-separated list of classes, reserved for use by CSS cascading stylesheets.
      Parameters:
      cssClass - is new value for the class field.
      Returns:
      X3DConcreteNode - namely this same object to allow sequential method pipelining (i.e. consecutive method invocations on the same object).
      See Also:
      X3D Architecture Annex L - HTML authoring guidelines, CSS considerations, W3C Cascading Style Sheets, W3C CSS Snapshot, Wikibooks: XML - Managing Data Exchange/XSLT and Style Sheets
    • setHtmlID

      public abstract X3DConcreteNode setHtmlID(String htmlID)
      Each concrete class must independently override this abstract method to enable object-specific method pipelining. This attribute is only functional if the X3D model is loaded within an HTML page. Tooltip: the id attribute on each X3D node is considered a unique identifier when used as part of an encompassing HTML/DOM context.
      Parameters:
      htmlID - is new value for the id field.
      Returns:
      X3DConcreteNode - namely this same object to allow sequential method pipelining (i.e. consecutive method invocations on the same object).
      See Also:
      X3D Architecture Annex L - HTML authoring guidelines, CSS considerations
      Warning: the id attribute is in a distinct separate namespace from DEF identifiers and thus not applicable for USE nodes, ROUTE statements, or Script references., X3D Architecture Annex L - HTML authoring guidelines, L.3.1 Content definition and page presentation, HTML 5.2 W3C Recommendation, Document Object Model (DOM) Technical Reports, Wikibooks: XML - Managing Data Exchange/XSLT and Style Sheets
    • setCssStyle

      public abstract X3DConcreteNode setCssStyle(String cssStyle)
      Each concrete class must independently override this abstract method to enable object-specific method pipelining. This attribute is only functional if the X3D model is loaded within an HTML page. Tooltip: The style attribute provides an inline block of CSS source for element styling, reserved for use by CSS cascading stylesheets.
      Parameters:
      cssStyle - is new value for the class field.
      Returns:
      X3DConcreteNode - namely this same object to allow sequential method pipelining (i.e. consecutive method invocations on the same object).
      See Also:
      X3D Architecture Annex L - HTML authoring guidelines, CSS considerations, W3C Cascading Style Sheets, W3C CSS Snapshot, Wikibooks: XML - Managing Data Exchange/XSLT and Style Sheets
    • setMetadata

      public abstract X3DConcreteNode setMetadata(X3DMetadataObject newValue)
      Assign X3DMetadataObject instance (using a properly typed node) to inputOutput SFNode field metadata.
      Parameters:
      newValue - is new value for the metadata field.
      Returns:
      X3DConcreteNode - namely this same object to allow sequential method pipelining (i.e. consecutive method invocations on the same object).
      See Also:
      X3D Scene Authoring Hints: Metadata Nodes
    • setMetadata

      public abstract X3DConcreteNode setMetadata(ProtoInstance newValue)
      Assign X3DMetadataObject instance (using a properly typed ProtoInstance) to inputOutput SFNode field metadata.
      Parameters:
      newValue - is new value for the metadata field.
      Returns:
      X3DConcreteNode - namely this same object to allow sequential method pipelining (i.e. consecutive method invocations on the same object).
      See Also:
      X3D Scene Authoring Hints: Metadata Nodes
    • setIS

      public abstract X3DConcreteNode setIS(IS newValue)
      Assign field named IS for establishing IS/connect field connections between ProtoInterface fields and internal ProtoBody nodes. The IS statement connects node fields defined inside a ProtoBody declaration back to corresponding ProtoInterface fields.
      Parameters:
      newValue - is new value for the description field.
      Returns:
      this same object to allow sequential method pipelining (i.e. consecutive method invocations on the same node object).
      See Also:
      X3D Tooltips: IS, X3D Tooltips: connect
    • getIS

      public abstract IS getIS()
      Provide field named IS for establishing IS/connect field connections between ProtoInterface fields and internal ProtoBody nodes. The IS statement connects node fields defined inside a ProtoBody declaration back to corresponding ProtoInterface fields.
      Returns:
      current IS, if any
      See Also:
      X3D Tooltips: IS, X3D Tooltips: connect
    • getContainerFieldDefault

      public abstract String getContainerFieldDefault()
      containerField describes the field relationship of a node to its parent. Modification of this value is not needed when using this API, since alternative values are provided for informational purposes. Each concrete class must independently override this array with a final value.
      Returns:
      default containerField value for this node
      See Also:
      X3D Scene Authoring Hints: containerField, StackOverflow: Why can't static methods be abstract in Java
    • getContainerFieldAlternateValues

      public String[] getContainerFieldAlternateValues()
      containerField describes the field relationship of a node to its parent. Modification of this value is not ordinarily needed when using this API, since alternative values are provided for informational purposes.
      Returns:
      array of allowed String values
      See Also:
      X3D Scene Authoring Hints: containerField
    • getContainerFieldOverride

      public String getContainerFieldOverride()
      containerField describes current field relationship of a node to its parent, overriding the default containerField value. Usage is not ordinarily needed when using this API.
      Returns:
      containerFieldOverride value, if any
      See Also:
      X3D Scene Authoring Hints: containerField
    • setContainerFieldOverride

      public X3DConcreteNode setContainerFieldOverride(String value)
      containerField describes current field relationship of a node to its parent, overriding the default containerField value. Usage is not ordinarily needed when using this API. TODO make this unnecessary for ProtoInstance usage
      Parameters:
      value - to set containerFieldOverride, must be allowed in containerField_ALTERNATE_VALUES
      Returns:
      object reference to node
      See Also:
      X3D Scene Authoring Hints: containerField
    • resetContainerFieldOverride

      public void resetContainerFieldOverride()
      containerField describes current field relationship of a node to its parent, overriding the default containerField value. Usage is not ordinarily needed when using this API.