public class SoVRMLTransform extends SoVRMLGroup
SoVRMLTransform
is a grouping node that defines a coordinate system for its children that is relative to the coordinate systems of its parents.
<font color="#0000FF">NOTE:</font> This class does not exist in Open Inventor 10.0 and later.
This section describes the expected behavior of the node in a conforming VRML97 browser application. In some cases, the application is responsible for implementing portions of the expected behavior. Open Inventor viewer classes and IVF classes implement some of the application behaviors.
This section may reference portions of the VRML97 specification that are not present in this help file. The complete VRML97 spec is available at
A SoVRMLTransform
is a grouping node that defines a coordinate system for its children that is relative to the coordinate systems of its parents. See also "Concepts - Coordinate Systems and Transformations."
See the "Concepts - Grouping and Children Nodes" section for a description of the children , addChildren , and removeChildren fields and eventIns.
The bboxCenter and bboxSize fields specify a bounding box that encloses the SoVRMLTransform
's children. This is a hint that may be used for optimization purposes. If the specified bounding box is smaller than the actual bounding box of the children at any time, then the results are undefined. A default bboxSize value, (-1 -1 -1), implies that the bounding box is not specified and if needed must be calculated by the browser. See "Concepts -
Bounding Boxes" for a description of the bboxCenter and bboxSize fields.
The translation
, rotation
, scale
, scaleOrientation
and center
fields define a geometric 3D transformation consisting of (in order) a (possibly) non-uniform scale about an arbitrary point, a rotation about an arbitrary point and axis, and a translation. The center
field specifies a translation offset from the local coordinate system's origin, (0,0,0). The rotation
field specifies a rotation of the coordinate system. The scale
field specifies a non-uniform scale of the coordinate system - scale
values must be >= 0.0. The scaleOrientation
specifies a rotation of the coordinate system before the scale (to specify scales in arbitrary orientations). The scaleOrientation
applies only to the scale operation. The translation
field specifies a translation to the coordinate system.
Given a 3-dimensional point P and Transform node, P is transformed into point P ' in its parent's coordinate system by a series of intermediate transformations. In matrix-transformation notation, where C (center), SR (scaleOrientation), T (translation), R (rotation), and S (scale) are the equivalent transformation matrices,
TheP' = T x C x R x SR x S x -SR x -TC x P (where P is a column vector)
SoVRMLTransform
node:
is equivalent to the nested sequence of:Transform { center C rotation R scale S scaleOrientation SR translation T children [...] }
Transform { translation T Transform { translation C Transform { rotation R Transform { rotation SR Transform { scale S Transform { rotation -SR Transform { translation -C ... }}}}}}}
File format/default:
VRMLTransform {
center | 0 0 0 |
children | [] |
rotation | 0 0 1 0 |
scale | 1 1 1 |
scaleOrientation | 0 0 1 0 |
translation | 0 0 0 |
bboxCenter | 0 0 0 |
bboxSize | -1 -1 -1 |
metadata | NULL |
Action behavior:
SoGLRenderAction
, SoCallbackAction
, SoGetBoundingBoxAction
, SoRayPickAction
, SoGetMatrixAction
, SoSearchAction
, SoWriteAction
Sets: SoModelMatrixElement
SoMFNode | addChildren |
SoMFNode | removeChildren |
SoSFVec3f | set_center |
SoMFNode | set_children |
SoSFRotation | set_rotation |
SoSFVec3f | set_scale |
SoSFRotation | set_scaleOrientation |
SoSFVec3f | set_translation |
SoSFNode | set_metadata |
SoSFVec3f | center_changed |
SoMFNode | children_changed |
SoSFRotation | rotation_changed |
SoSFVec3f | scale_changed |
SoSFRotation | scaleOrientation_changed |
SoSFVec3f | translation_changed |
SoSFNode | metadata_changed |
SoVRMLGroup.Cachings
Inventor.ConstructorCommand
Modifier and Type | Field and Description |
---|---|
SoSFVec3f |
center
Deprecated.
Origin of scale and rotation.
|
SoSFRotation |
rotation
Deprecated.
Rotation.
|
SoSFVec3f |
scale
Deprecated.
Scale factor.
|
SoSFRotation |
scaleOrientation
Deprecated.
Rotational orientation for scale.
|
SoSFVec3f |
translation
Deprecated.
Translation vector.
|
AUTO, boundingBoxCaching, directVizCaching, OFF, ON, pickCulling, renderCaching, renderCulling, renderUnitId
bboxCenter, bboxSize, children, metadata
boundingBoxIgnoring
VERBOSE_LEVEL, ZeroHandle
Constructor and Description |
---|
SoVRMLTransform()
Deprecated.
Constructor.
|
SoVRMLTransform(int nChildren)
Deprecated.
Constructor that takes approximate number of children.
|
Modifier and Type | Method and Description |
---|---|
void |
combineLeft(SoVRMLTransform nodeOnLeft)
Deprecated.
Same as
multLeft() except that the transformation to multiply into this node comes from another transformation node. |
void |
combineRight(SoVRMLTransform nodeOnRight)
Deprecated.
Same as
multRight() except that the transformation to multiply into this node comes from another transformation node. |
SbMatrix[] |
getRotationSpaceMatrix()
Deprecated.
Returns composite matrix that transforms from object space to rotation space (the space after the scale and rotation).
|
SbMatrix[] |
getScaleSpaceMatrix()
Deprecated.
Returns composite matrix that transforms from object space to scale space (the space after the scale).
|
SbMatrix[] |
getTranslationSpaceMatrix()
Deprecated.
Returns composite matrix that transforms from object space to translation space (the space after scale, rotation, and translation).
|
void |
multLeft(SbMatrix mat)
Deprecated.
Convenience function that combines the effects of a matrix transformation into the transformation stored in this node.
|
void |
multRight(SbMatrix mat)
Deprecated.
Convenience function that combines the effects of a matrix transformation into the transformation stored in this node.
|
void |
pointAt(SbVec3f fromPoint,
SbVec3f toPoint)
Deprecated.
Sets the transform to translate the origin to the fromPoint and rotate the negative z-axis (0,0,-1) to lie on the vector from fromPoint to toPoint.
|
void |
recenter(SbVec3f newCenter)
Deprecated.
Changes the center of the transformation to the given point without affecting the overall effect of the transformation.
|
void |
setMatrix(SbMatrix mat)
Deprecated.
Sets the fields in the node to implement the transformation represented by the given matrix.
|
getNumRenderCaches, setNumRenderCaches
addChild, findChild, getChild, getNumChildren, insertChild, removeAllChildren, removeChild, removeChild, replaceChild, replaceChild
affectsState, callback, copy, copy, distribute, doAction, getAlternateRep, getBoundingBox, getByName, getMatrix, getPrimitiveCount, getRenderUnitID, GLRender, GLRenderBelowPath, GLRenderInPath, GLRenderOffPath, grabEventsCleanup, grabEventsSetup, handleEvent, isBoundingBoxIgnoring, isOverride, pick, rayPick, search, setOverride, touch, write
copyFieldValues, copyFieldValues, enableNotify, fieldsAreEqual, get, getAllFields, getEventIn, getEventOut, getField, getFieldName, hasDefaultValues, isNotifyEnabled, set, setToDefaults
dispose, getEXTERNPROTO, getName, getPROTO, isDisposable, isSynchronizable, setName, setSynchronizable
getAddress, getNativeResourceHandle, startInternalThreads, stopInternalThreads
public final SoSFVec3f translation
public final SoSFRotation rotation
public final SoSFVec3f scale
public final SoSFRotation scaleOrientation
public final SoSFVec3f center
public SoVRMLTransform()
public SoVRMLTransform(int nChildren)
public void setMatrix(SbMatrix mat)
public SbMatrix[] getTranslationSpaceMatrix()
public SbMatrix[] getRotationSpaceMatrix()
public void multLeft(SbMatrix mat)
public void multRight(SbMatrix mat)
public void combineRight(SoVRMLTransform nodeOnRight)
multRight()
except that the transformation to multiply into this node comes from another transformation node.public void combineLeft(SoVRMLTransform nodeOnLeft)
multLeft()
except that the transformation to multiply into this node comes from another transformation node.public void pointAt(SbVec3f fromPoint, SbVec3f toPoint)
public void recenter(SbVec3f newCenter)
public SbMatrix[] getScaleSpaceMatrix()
Generated on January 23, 2025, Copyright © Thermo Fisher Scientific. All rights reserved. http://www.openinventor.com