Defines a 2D transformation. More...
#include <Inventor/VRMLnodes/SoVRMLTextureTransform.h>
Public Member Functions | |
virtual SoType | getTypeId () const |
SoVRMLTextureTransform () | |
Static Public Member Functions | |
static SoType | getClassTypeId () |
Public Attributes | |
SoSFVec2f | translation |
SoSFFloat | rotation |
SoSFVec2f | scale |
SoSFVec2f | center |
The SoVRMLTextureTransform node defines a 2D transformation that is applied to texture coordinates (see SoVRMLTextureCoordinate). This node affects the way textures are applied to the surface of geometry. The transformation consists of (in order) a non-uniform scale about an arbitrary center point, a rotation about the center point, and a translation. This allows for changes to the size, orientation, and position of textures on shapes. Note that these changes appear reversed when viewed in the surface of geometry. For example, a scale value of 2 2 will scale the texture coordinates and have the net effect of shrinking the texture size by a factor of 2 (texture coordinates are twice as large and thus cause the texture to repeat). A translation of 0.5 0.0 translates the texture coordinates +.5 units along the S-axis and has the net effect of translating the texture -0.5 along the S-axis on the geometry's surface. A rotation of pi/2 of the texture coordinates results in a - pi/2 rotation of the texture on the geometry.
Note: The VRML97 specification indicates that transformations should be performed in the order translate, rotate, and scale. Open Inventor performs the transformations in the order scale, rotate, translate.
NOTE: This class does not exist in Open Inventor 10.0 and later.This section may reference portions of the VRML97 specification that are not present in this help file. The complete VRML97 spec is available at http://www.web3d.org .
The SoVRMLTextureTransform node defines a 2D transformation that is applied to texture coordinates (see SoVRMLTextureCoordinate). This node affects the way textures are applied to the surface of geometry. The transformation consists of (in order) a translation, a rotation about an arbitrary center point, and a non-uniform scale about the center point. This allows for changes to the size, orientation, and position of textures on shapes. Note that these changes appear reversed when viewed in the surface of geometry. For example, a scale value of 2 2 will scale the texture coordinates and have the net effect of shrinking the texture size by a factor of 2 (texture coordinates are twice as large and thus cause the texture to repeat). A translation of 0.5 0.0 translates the texture coordinates +.5 units along the S-axis and has the net effect of translating the texture -0.5 along the S-axis on the geometry's surface. A rotation of pi/2 of the texture coordinates results in a - pi/2 rotation of the texture on the geometry.
The center field specifies a translation offset in texture coordinate space about which the rotation and scale fields are applied. The scale field specifies a scaling factor in S and T of the texture coordinates about the center point - scale values must be >= 0.0. The rotation field specifies a rotation in radians of the texture coordinates about the center point after the scale has taken place. The translation field specifies a translation of the texture coordinates.
Given a 2-dimensional texture coordinate T and an SoVRMLTextureTransform node, T is transformed into point T ' by a series of intermediate transformations. In matrix-transformation notation, where C (center), T (translation), R (rotation), and S (scale) are the equivalent transformation matrices,
T' = TT x C x R x S x -TC x T (where T is a column vector)
Note that SoVRMLTextureTransforms cannot combine or accumulate.
center | 0 0 |
rotation | 0 |
scale | 1 1 |
translation | 0 0 |
metadata | NULL |
SoSFVec2f | set_center |
SoSFFloat | set_rotation |
SoSFVec2f | set_scale |
SoSFVec2f | set_translation |
SoSFNode | set_metadata |
SoSFVec2f | center_changed |
SoSFFloat | rotation_changed |
SoSFVec2f | scale_changed |
SoSFVec2f | translation_changed |
SoSFNode | metadata_changed |
SoVRMLTextureTransform::SoVRMLTextureTransform | ( | ) |
Constructor.
static SoType SoVRMLTextureTransform::getClassTypeId | ( | ) | [static] |
Returns the type identifier for this class.
Reimplemented from SoVRMLNode.
virtual SoType SoVRMLTextureTransform::getTypeId | ( | ) | const [virtual] |
Returns the type identifier for this specific instance.
Reimplemented from SoVRMLNode.
Specifies a translation offset in texture coordinate space about which the rotation and scale fields are applied.
Specifies a rotation in radians of the texture coordinates about the center after the scale has taken place.
Scaling factors in S and T.
Translation in S and T.