Home | Hierarchy | Members | Alphabetical | Related Pages |
#include <transform.h>
Inherits Node.
Inheritance diagram for Transform:
Public Member Functions | |
Transform (const char *name="") | |
virtual | ~Transform () |
virtual unsigned int | nbFields () const |
virtual FieldHandle | field (const std::string &n) |
virtual FieldHandle | field (const unsigned int i) |
virtual bool | isSetToDefaultValue (const unsigned int i) const |
virtual unsigned int | nbEventsIn () const |
virtual EventInHandle | eventIn (const std::string &n) |
virtual EventInHandle | eventIn (const unsigned int i) |
virtual unsigned int | nbEventsOut () const |
virtual EventOutHandle | eventOut (const std::string &n) |
virtual EventOutHandle | eventOut (const unsigned int i) |
const char * | typeName () const |
virtual Node * | duplicate () const |
virtual Node * | duplicate (std::map< const Node *, Node * > &) const |
Public Attributes | |
Exposed Fields | |
A field that is capable of receiving events via an eventIn to change its value(s), and generating events via an eventOut when its value(s) change. | |
SFVec3f | center |
MFNode | children |
SFRotation | rotation |
SFVec3f | scale |
SFRotation | scaleOrientation |
SFVec3f | translation |
Fields | |
A property or attribute of a node. Each node type has a fixed set of fields. Fields may contain various kinds of data and one or many values. Each field has a default value. | |
SFVec3f | bboxCenter |
SFVec3f | bboxSize |
Events In | |
EventIn< MFNode > | addChildren |
EventIn< MFNode > | removeChildren |
EventIn< SFVec3f > | set_center |
EventIn< MFNode > | set_children |
EventIn< SFRotation > | set_rotation |
EventIn< SFVec3f > | set_scale |
EventIn< SFRotation > | set_scaleOrientation |
EventIn< SFVec3f > | set_translation |
Events Out | |
EventOut< SFVec3f > | center_changed |
EventOut< MFNode > | children_changed |
EventOut< SFRotation > | rotation_changed |
EventOut< SFVec3f > | scale_changed |
EventOut< SFRotation > | scaleOrientation_changed |
EventOut< SFVec3f > | translation_changed |
The Transform node is a grouping node that defines a coordinate system for its children that is relative to the coordinate systems of its ancestors. See 4.4.4, Transformation hierarchy, and 4.4.5, Standard units and coordinate system, for a description of coordinate systems and transformations.
4.6.5, Grouping and children nodes, provides a description of the children, addChildren, and removeChildren fields and eventIns.
The bboxCenter and bboxSize fields specify a bounding box that encloses the children of the Transform node. This is a hint that may be used for optimization purposes. The results are undefined if the specified bounding box is smaller than the actual bounding box of the children at any time. A default bboxSize value, (-1, -1, -1), implies that the bounding box is not specified and, if needed, shall be calculated by the browser. The bounding box shall be large enough at all times to enclose the union of the group's children's bounding boxes; it shall not include any transformations performed by the group itself (i.e., the bounding box is defined in the local coordinate system of the children). The results are undefined if the specified bounding box is smaller than the true bounding box of the group. A description of the bboxCenter and bboxSize fields is provided in 4.6.4, Bounding boxes.
The translation, rotation, scale, scaleOrientation and center fields define a geometric 3D transformation consisting of (in order):
The center field specifies a translation offset from the origin of the local coordinate system (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 shall be greater than zero. 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,
P' = T × C × R × SR × S × -SR × -C × P
The following Transform node:
Transform { center C rotation R scale S scaleOrientation SR translation T children [...] }
is equivalent to the nested sequence of:
Transform { translation T children Transform { translation C children Transform { rotation R children Transform { rotation SR children Transform { scale S children Transform { rotation -SR children Transform { translation -C children [...] }}}}}}}
|
Construct a node with all its fields set to default value, which is equivalent to the code below: center.setXYZ(0,0,0); rotation.setAxisAndAngle(0,0,1,0); scale.setXYZ(1,1,1); scaleOrientation.setAxisAndAngle(0,0,1,0); translation.setXYZ(0,0,0); bboxCenter.setXYZ(0,0,0); bboxSize.setXYZ(-1,-1,-1); |
|
Virtual destructor, does nothing |
|
Implements Node. |
|
Returns a deep copy of this node, that is a fully independant node with all children (if any) also copied. This is mainly useful for instanciating protos. Implements Node. |
|
Return a handle on the
This function is useful, with nbEventsIn() if you want to traverse all events in of a Node. Implements Node. |
|
Return a handle on the event in named
Implements Node. |
|
Return a handle on the
Implements Node. |
|
Return a handle on the event out named
Implements Node. |
|
Return a handle on the
Implements Node. |
|
Return a handle on the field named
Implements Node. |
|
Implements Node. |
|
Returns the number of events in for this node type. Implements Node. |
|
Returns the number of events out for this node type. Implements Node. |
|
Returns the number of fields (exposed or not) for this node type. Implements Node. |
|
Returns Implements Node. |
|
See Detailed Description for meaning of this event. |
|
See Detailed Description for meaning of this field. Default value is set to bboxCenter.setXYZ(0,0,0); |
|
See Detailed Description for meaning of this field. Default value is set to bboxSize.setXYZ(-1,-1,-1); |
|
See Detailed Description for meaning of this field. Default value is set to center.setXYZ(0,0,0); |
|
Changed event associated to exposedField center |
|
See Detailed Description for meaning of this field. Default value is set to MFNode default value |
|
Changed event associated to exposedField children |
|
See Detailed Description for meaning of this event. |
|
See Detailed Description for meaning of this field. Default value is set to rotation.setAxisAndAngle(0,0,1,0); |
|
Changed event associated to exposedField rotation |
|
See Detailed Description for meaning of this field. Default value is set to scale.setXYZ(1,1,1); |
|
Changed event associated to exposedField scale |
|
See Detailed Description for meaning of this field. Default value is set to scaleOrientation.setAxisAndAngle(0,0,1,0); |
|
Changed event associated to exposedField scaleOrientation |
|
Set event associated to exposedField center |
|
Set event associated to exposedField children |
|
Set event associated to exposedField rotation |
|
Set event associated to exposedField scale |
|
Set event associated to exposedField scaleOrientation |
|
Set event associated to exposedField translation |
|
See Detailed Description for meaning of this field. Default value is set to translation.setXYZ(0,0,0); |
|
Changed event associated to exposedField translation |
Generated on 24 Feb 2005 with version 1.3.9.1. |