Package org.web3d.x3d.sai.Grouping
Interface Transform
- All Superinterfaces:
X3DBoundedObject
,X3DChildNode
,X3DGroupingNode
,X3DNode
- All Known Implementing Classes:
Transform
Transform is a Grouping node that can contain most nodes.
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.
Transform node tooltip: [X3DGroupingNode,X3DVisibleObject] 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 https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#CoordinateSystems
- Hint: X3D Scene Authoring Hints, Scale Factors and Unit Conversions https://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:
-
Method Summary
Modifier and TypeMethodDescriptionvoid
addChildren
(X3DNode[] newValue) Add array of children nodes to array of existing nodes (if any).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.float[]
Provide array of 3-tuple float results from inputOutput SFVec3f field named center.X3DNode[]
Provide array of org.web3d.x3d.sai.Core.X3DNode results (using an array consisting of properly typed nodes or ProtoInstances) from inputOutput MFNode field children.Provide org.web3d.x3d.sai.Core.X3DMetadataObject instance (using a properly typed node) from inputOutput SFNode field metadata.float[]
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[]
Provide array of 4-tuple float results unit axis, angle (in radians) from inputOutput SFRotation field named scaleOrientation.float[]
Provide array of 3-tuple float results from inputOutput SFVec3f field named translation.boolean
Provide boolean value from inputOutput SFBool field named visible.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.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).setChildren
(X3DNode[] newValue) Accessor method to assign org.web3d.x3d.sai.Core.X3DNode array (using an array consisting of properly typed nodes or ProtoInstances) to inputOutput MFNode field children.setMetadata
(X3DMetadataObject newValue) Accessor method to assign org.web3d.x3d.sai.Core.X3DMetadataObject instance (using a properly typed node) to inputOutput SFNode field metadata.setRotation
(float[] newValue) Accessor method to assign 4-tuple float array unit axis, angle (in radians) to inputOutput SFRotation field named rotation.setScale
(float[] newValue) Accessor method to assign 3-tuple float array to inputOutput SFVec3f field named scale.setScaleOrientation
(float[] newValue) Accessor method to assign 4-tuple float array unit axis, angle (in radians) to inputOutput SFRotation field named scaleOrientation.setTranslation
(float[] newValue) Accessor method to assign 3-tuple float array to inputOutput SFVec3f field named translation.setVisible
(boolean newValue) Accessor method to assign boolean value to inputOutput SFBool field named visible.
-
Method Details
-
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 interfaceX3DGroupingNode
- 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 interfaceX3DGroupingNode
- 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).
-
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 interfaceX3DGroupingNode
- 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 interfaceX3DGroupingNode
- Parameters:
newValue
- is new value for the bboxDisplay 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: 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 interfaceX3DGroupingNode
- 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 interfaceX3DGroupingNode
- 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
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 org.web3d.x3d.sai.Core.X3DNode results (using an array consisting of properly typed nodes or ProtoInstances) 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, https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS /Part01/components/grouping.html#GroupingAndChildrenNodes
Warning: according to X3D Unified Object Model (X3DUOM), acceptable node types are limited to X3DChildNode.- Specified by:
getChildren
in interfaceX3DGroupingNode
- Returns:
- value of children field
- See Also:
-
setChildren
Accessor method to assign org.web3d.x3d.sai.Core.X3DNode array (using an array consisting of properly typed nodes or ProtoInstances) 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, https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS /Part01/components/grouping.html#GroupingAndChildrenNodes
Note: according to X3D Unified Object Model (X3DUOM), acceptable node types are limited to X3DChildNode.- Specified by:
setChildren
in interfaceX3DGroupingNode
- 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
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 interfaceX3DGroupingNode
- Parameters:
newValue
- is new value array to be appended the children field.
-
setChildren
Set single children node, replacing prior array of existing nodes (if any).- Specified by:
setChildren
in interfaceX3DGroupingNode
- Parameters:
newValue
- is new node for the children field
-
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 interfaceX3DGroupingNode
- Specified by:
getMetadata
in interfaceX3DNode
- 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 interfaceX3DGroupingNode
- Specified by:
setMetadata
in interfaceX3DNode
- Parameters:
newValue
- is new value for the metadata field.- Returns:
Transform
- namely this same object to allow sequential method pipelining (i.e. consecutive method invocations on the same object).- See Also:
-
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
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.
- Hint: negative scale values allowed beginning with X3D version 3.1.
- Returns:
- value of scale field
-
setScale
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.
- Hint: negative scale values allowed beginning with X3D version 3.1.
- 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
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
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).
-
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 interfaceX3DGroupingNode
- 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 interfaceX3DGroupingNode
- Parameters:
newValue
- is new value for the visible field.- Returns:
Transform
- namely this same object to allow sequential method pipelining (i.e. consecutive method invocations on the same object).
-