Interface Transform

  • All Superinterfaces:
    X3DBoundedObject, X3DChildNode, X3DGroupingNode, X3DNode
    All Known Implementing Classes:
    TransformObject

    public interface Transform
    extends X3DGroupingNode
    Abstract node interface, defined by X3D Java Scene Access Interface (SAI) Specification to support X3D Java interoperability.

    X3D node tooltip: [X3DGroupingNode] Transform is a Grouping node that can contain most nodes. Transform translates, orients and scales child geometry within the local world coordinate system.
    • Hint: each transformation creates a new coordinate system relative to the parent coordinate system.
    • Hint: +Y axis is the up direction. (Similarly some scenes may consider +X is North and +Z is East.)
    • Hint: best authoring approach is to keep +Y axis pointing towards local up direction, supporting scene composability and effective navigation response (which is based on gravity direction).
    • Hint: insert a Shape node before adding geometry or Appearance.
    • Hint: translation/rotation/scaling field attributes can be defined in any order in the scene. The applied order of translation/rotation/scaling transformation-matrix operations remains consistent.
    • Hint: authors can modify order of translation/rotation/scaling operations by splitting them into separate nested parent/child Transform nodes.
    • Warning: Transform contained by CADFace can only hold a single LOD or Shape node.
    • Hint: X3D Scene Authoring Hints, Coordinate Systems http://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#CoordinateSystems
    • Hint: X3D Scene Authoring Hints, Scale Factors and Unit Conversions http://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#Scale
    • Hint: apply containerField='shape' if parent node is CADFace.

    Package hint: This interface is defined by the X3D Java Language Binding Specification for the Scene Authoring Interface (SAI).
    See Also:
    SAI Java Specification: TODO, X3D Abstract Specification: Transform, X3D Tooltips: Transform, X3D Scene Authoring Hints: CoordinateSystems
    • Method Summary

      Modifier and Type Method Description
      void addChildren​(X3DNode[] newValue)
      Add array of children nodes to array of existing nodes (if any).
      float[] getBboxCenter()
      Provide array of 3-tuple float results from initializeOnly SFVec3f field named bboxCenter.
      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.
      float[] getCenter()
      Provide array of 3-tuple float results from inputOutput SFVec3f field named center.
      X3DNode[] getChildren()
      Provide array of X3DNode results (using an array consisting of properly typed nodes or ProtoInstanceObjects) from inputOutput MFNode field children.
      X3DMetadataObject getMetadata()
      Provide X3DMetadataObject instance (using a properly typed node) from inputOutput SFNode field metadata.
      float[] getRotation()
      Provide array of 4-tuple float results unit axis, angle (in radians) from inputOutput SFRotation field named rotation.
      float[] getScale()
      Provide array of 3-tuple float results from inputOutput SFVec3f field named scale.
      float[] getScaleOrientation()
      Provide array of 4-tuple float results unit axis, angle (in radians) from inputOutput SFRotation field named scaleOrientation.
      float[] getTranslation()
      Provide array of 3-tuple float results from inputOutput SFVec3f field named translation.
      Transform setBboxCenter​(float[] newValue)
      Accessor method to assign 3-tuple float array to initializeOnly SFVec3f field named bboxCenter.
      Transform setBboxSize​(float[] newValue)
      Accessor method to assign 3-tuple float array to initializeOnly SFVec3f field named bboxSize.
      Transform setCenter​(float[] newValue)
      Accessor method to assign 3-tuple float array to inputOutput SFVec3f field named center.
      void setChildren​(X3DNode newValue)
      Set single children node, replacing prior array of existing nodes (if any).
      Transform setChildren​(X3DNode[] newValue)
      Accessor method to assign X3DNode array (using an array consisting of properly typed nodes or ProtoInstanceObjects) to inputOutput MFNode field children.
      Transform setMetadata​(X3DMetadataObject newValue)
      Accessor method to assign X3DMetadataObject instance (using a properly typed node) to inputOutput SFNode field metadata.
      Transform setRotation​(float[] newValue)
      Accessor method to assign 4-tuple float array unit axis, angle (in radians) to inputOutput SFRotation field named rotation.
      Transform setScale​(float[] newValue)
      Accessor method to assign 3-tuple float array to inputOutput SFVec3f field named scale.
      Transform setScaleOrientation​(float[] newValue)
      Accessor method to assign 4-tuple float array unit axis, angle (in radians) to inputOutput SFRotation field named scaleOrientation.
      Transform setTranslation​(float[] newValue)
      Accessor method to assign 3-tuple float array to inputOutput SFVec3f field named translation.
    • Method Detail

      • setBboxCenter

        Transform setBboxCenter​(float[] newValue)
        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.
        Specified by:
        setBboxCenter in interface X3DBoundedObject
        Specified by:
        setBboxCenter in interface X3DGroupingNode
        Parameters:
        newValue - is new value for the bboxCenter field.
        Returns:
        Transform - 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: 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.
        Specified by:
        getBboxSize in interface X3DBoundedObject
        Specified by:
        getBboxSize in interface X3DGroupingNode
        Returns:
        value of bboxSize field
      • setBboxSize

        Transform setBboxSize​(float[] newValue)
        Accessor method to assign 3-tuple float array to initializeOnly SFVec3f field named bboxSize.

        Tooltip: 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.
        Specified by:
        setBboxSize in interface X3DBoundedObject
        Specified by:
        setBboxSize in interface X3DGroupingNode
        Parameters:
        newValue - is new value for the bboxSize field.
        Returns:
        Transform - namely this same object to allow sequential method pipelining (i.e. consecutive method invocations on the same object).
      • getCenter

        float[] getCenter()
        Provide array of 3-tuple float results from inputOutput SFVec3f field named center.

        Tooltip: Translation offset from origin of local coordinate system, applied prior to rotation or scaling.
        • Hint: The order of operation is first apply the center offset, then scaleOrientation and scale, then rotation, then restore the center offset, then translation.
        Returns:
        value of center field
      • setCenter

        Transform setCenter​(float[] newValue)
        Accessor method to assign 3-tuple float array to inputOutput SFVec3f field named center.

        Tooltip: Translation offset from origin of local coordinate system, applied prior to rotation or scaling.
        • Hint: The order of operation is first apply the center offset, then scaleOrientation and scale, then rotation, then restore the center offset, then translation.
        Parameters:
        newValue - is new value for the center field.
        Returns:
        Transform - namely this same object to allow sequential method pipelining (i.e. consecutive method invocations on the same object).
      • getChildren

        X3DNode[] getChildren()
        Provide array of X3DNode results (using an array consisting of properly typed nodes or ProtoInstanceObjects) from inputOutput MFNode field children.

        Tooltip: [X3DChildNode] Grouping nodes contain an ordered list of children nodes.
        • Hint: Each grouping node defines a coordinate space for its children, relative to the coordinate space of its parent node. Thus transformations accumulate down the scene graph hierarchy.
        • Hint: inputOnly MFNode addChildren field can append new X3DChildNode nodes via a ROUTE connection, duplicate input nodes (i.e. matching DEF, USE values) are ignored.
        • Hint: inputOnly MFNode removeChildren field can remove nodes from the children list, unrecognized input nodes (i.e. nonmatching DEF, USE values) are ignored.
        • Hint: X3D Architecture 10.2.1 Grouping and children node types, http://www.web3d.org/documents/specifications/19775-1/V3.3/Part01/components/group.html#GroupingAndChildrenNodes


        Warning: according to X3D Unified Object Model (X3DUOM), acceptable node types are limited to X3DChildNode.
        Specified by:
        getChildren in interface X3DGroupingNode
        Returns:
        value of children field
        See Also:
        X3DChildNode
      • setChildren

        Transform setChildren​(X3DNode[] newValue)
        Accessor method to assign X3DNode array (using an array consisting of properly typed nodes or ProtoInstanceObjects) to inputOutput MFNode field children.

        Tooltip: [X3DChildNode] Grouping nodes contain an ordered list of children nodes.
        • Hint: Each grouping node defines a coordinate space for its children, relative to the coordinate space of its parent node. Thus transformations accumulate down the scene graph hierarchy.
        • Hint: inputOnly MFNode addChildren field can append new X3DChildNode nodes via a ROUTE connection, duplicate input nodes (i.e. matching DEF, USE values) are ignored.
        • Hint: inputOnly MFNode removeChildren field can remove nodes from the children list, unrecognized input nodes (i.e. nonmatching DEF, USE values) are ignored.
        • Hint: X3D Architecture 10.2.1 Grouping and children node types, http://www.web3d.org/documents/specifications/19775-1/V3.3/Part01/components/group.html#GroupingAndChildrenNodes


        Note: according to X3D Unified Object Model (X3DUOM), acceptable node types are limited to X3DChildNode.
        Specified by:
        setChildren in interface X3DGroupingNode
        Parameters:
        newValue - is new value for the children field.
        Returns:
        Transform - namely this same object to allow sequential method pipelining (i.e. consecutive method invocations on the same object).
      • addChildren

        void addChildren​(X3DNode[] newValue)
        Add array of children nodes to array of existing nodes (if any).

        Note: according to X3D Unified Object Model (X3DUOM), acceptable node types are limited to X3DChildNode.
        Specified by:
        addChildren in interface X3DGroupingNode
        Parameters:
        newValue - is new value array to be appended the children field.
      • setChildren

        void setChildren​(X3DNode newValue)
        Set single children node, replacing prior array of existing nodes (if any).
        Specified by:
        setChildren in interface X3DGroupingNode
        Parameters:
        newValue - is new node for the children field
      • getRotation

        float[] getRotation()
        Provide array of 4-tuple float results unit axis, angle (in radians) from inputOutput SFRotation field named rotation.

        Tooltip: Orientation (axis, angle in radians) of children relative to local coordinate system.
        • Hint: The order of operation is first apply the center offset, then scaleOrientation and scale, then rotation, then restore the center offset, then translation.
        Returns:
        value of rotation field
      • setRotation

        Transform setRotation​(float[] newValue)
        Accessor method to assign 4-tuple float array unit axis, angle (in radians) to inputOutput SFRotation field named rotation.

        Tooltip: Orientation (axis, angle in radians) of children relative to local coordinate system.
        • Hint: The order of operation is first apply the center offset, then scaleOrientation and scale, then rotation, then restore the center offset, then translation.
        Parameters:
        newValue - is new value for the rotation field.
        Returns:
        Transform - namely this same object to allow sequential method pipelining (i.e. consecutive method invocations on the same object).
      • getScale

        float[] getScale()
        Provide array of 3-tuple float results from inputOutput SFVec3f field named scale.

        Tooltip: Non-uniform x-y-z scale of child coordinate system, adjusted by center and scaleOrientation.
        • Hint: The order of operation is first apply the center offset, then scaleOrientation and scale, then rotation, then restore the center offset, then translation.
        Returns:
        value of scale field
      • setScale

        Transform setScale​(float[] newValue)
        Accessor method to assign 3-tuple float array to inputOutput SFVec3f field named scale.

        Tooltip: Non-uniform x-y-z scale of child coordinate system, adjusted by center and scaleOrientation.
        • Hint: The order of operation is first apply the center offset, then scaleOrientation and scale, then rotation, then restore the center offset, then translation.
        Parameters:
        newValue - is new value for the scale field.
        Returns:
        Transform - namely this same object to allow sequential method pipelining (i.e. consecutive method invocations on the same object).
      • getScaleOrientation

        float[] getScaleOrientation()
        Provide array of 4-tuple float results unit axis, angle (in radians) from inputOutput SFRotation field named scaleOrientation.

        Tooltip: Preliminary rotation of coordinate system before scaling (to allow scaling around arbitrary orientations).
        • Hint: The order of operation is first apply the center offset, then scaleOrientation and scale, then rotation, then restore the center offset, then translation.
        Returns:
        value of scaleOrientation field
      • setScaleOrientation

        Transform setScaleOrientation​(float[] newValue)
        Accessor method to assign 4-tuple float array unit axis, angle (in radians) to inputOutput SFRotation field named scaleOrientation.

        Tooltip: Preliminary rotation of coordinate system before scaling (to allow scaling around arbitrary orientations).
        • Hint: The order of operation is first apply the center offset, then scaleOrientation and scale, then rotation, then restore the center offset, then translation.
        Parameters:
        newValue - is new value for the scaleOrientation field.
        Returns:
        Transform - namely this same object to allow sequential method pipelining (i.e. consecutive method invocations on the same object).
      • getTranslation

        float[] getTranslation()
        Provide array of 3-tuple float results from inputOutput SFVec3f field named translation.

        Tooltip: Position (x, y, z in meters) of children relative to local coordinate system.
        • Hint: The order of operation is first apply the center offset, then scaleOrientation and scale, then rotation, then restore the center offset, then translation.
        Returns:
        value of translation field
      • setTranslation

        Transform setTranslation​(float[] newValue)
        Accessor method to assign 3-tuple float array to inputOutput SFVec3f field named translation.

        Tooltip: Position (x, y, z in meters) of children relative to local coordinate system.
        • Hint: The order of operation is first apply the center offset, then scaleOrientation and scale, then rotation, then restore the center offset, then translation.
        Parameters:
        newValue - is new value for the translation field.
        Returns:
        Transform - namely this same object to allow sequential method pipelining (i.e. consecutive method invocations on the same object).