1SoTransform(3IV)() SoTransform(3IV)()
2
3
4
6 SoTransform — general 3D geometric transformation node
7
9 SoBase > SoFieldContainer > SoNode > SoTransformation > SoTransform
10
12 #include <Inventor/nodes/SoTransform.h>
13
14 Fields from class SoTransform:
15
16 SoSFVec3f translation
17 SoSFRotation rotation
18 SoSFVec3f scaleFactor
19 SoSFRotation scaleOrientation
20 SoSFVec3f center
21
22 Methods from class SoTransform:
23
24 SoTransform()
25 void pointAt(const SbVec3f &fromPoint, const SbVec3f
26 &toPoint)
27 void getScaleSpaceMatrix(SbMatrix &mat, SbMatrix &inv)
28 const
29 void getRotationSpaceMatrix(SbMatrix &mat, SbMatrix &inv)
30 const
31 void getTranslationSpaceMatrix(SbMatrix &mat, SbMatrix
32 &inv) const
33 void multLeft(const SbMatrix &mat)
34 void multRight(const SbMatrix &mat)
35 void combineLeft(SoTransformation *nodeOnRight)
36 void combineRight(SoTransformation *nodeOnLeft)
37 void setMatrix(const SbMatrix &mat)
38 void recenter(const SbVec3f &newCenter)
39 static SoType getClassTypeId()
40
41 Methods from class SoNode:
42
43 void setOverride(SbBool state)
44 SbBool isOverride() const
45 SoNode * copy(SbBool copyConnections = FALSE) const
46 virtual SbBool affectsState() const
47 static SoNode * getByName(const SbName &name)
48 static int getByName(const SbName &name, SoNodeList &list)
49
50 Methods from class SoFieldContainer:
51
52 void setToDefaults()
53 SbBool hasDefaultValues() const
54 SbBool fieldsAreEqual(const SoFieldContainer *fc) const
55 void copyFieldValues(const SoFieldContainer *fc, SbBool
56 copyConnections = FALSE)
57 SbBool set(const char *fieldDataString)
58 void get(SbString &fieldDataString)
59 virtual int getFields(SoFieldList &resultList) const
60 virtual SoField * getField(const SbName &fieldName) const
61 SbBool getFieldName(const SoField *field, SbName &fieldName)
62 const
63 SbBool isNotifyEnabled() const
64 SbBool enableNotify(SbBool flag)
65
66 Methods from class SoBase:
67
68 void ref()
69 void unref() const
70 void unrefNoDelete() const
71 void touch()
72 virtual SoType getTypeId() const
73 SbBool isOfType(SoType type) const
74 virtual void setName(const SbName &name)
75 virtual SbName getName() const
76
77
79 This node defines a geometric 3D transformation consisting of (in
80 order) a (possibly) non-uniform scale about an arbitrary point, a rota‐
81 tion about an arbitrary point and axis, and a translation. (While the
82 transformations can be thought of as being applied in that order,
83 matrices are actually premultiplied in the opposite order. Therefore,
84 the operations are listed in the reverse order throughout this refer‐
85 ence page.)
86
88 SoSFVec3f translation
89 Translation vector.
90
91 SoSFRotation rotation
92 Rotation specification.
93
94 SoSFVec3f scaleFactor
95 Scale factors.
96
97 SoSFRotation scaleOrientation
98 Rotational orientation for scale.
99
100 SoSFVec3f center
101 Origin for scale and rotation.
102
103
105 SoTransform()
106 Creates a transformation node with default settings.
107
108 void pointAt(const SbVec3f &fromPoint, const SbVec3f
109 &toPoint)
110 Sets the node to translate the origin to the fromPoint and rotate
111 the negative z-axis (0,0,-1) to lie on the vector from fromPoint to
112 toPoint. This always tries to keep the "up" direction the positive
113 y-axis, unless that is impossible. All current field values in the
114 node are replaced.
115
116 void getScaleSpaceMatrix(SbMatrix &mat, SbMatrix &inv)
117 const
118 void getRotationSpaceMatrix(SbMatrix &mat, SbMatrix &inv)
119 const
120 void getTranslationSpaceMatrix(SbMatrix &mat, SbMatrix
121 &inv) const
122 These return composite matrices that transform from object space to
123 each of the spaces after the scale, rotation, or translation.
124
125 void multLeft(const SbMatrix &mat)
126 void multRight(const SbMatrix &mat)
127 These are convenience functions that combine the effects of a matrix
128 transformation into the current transformation stored in this node.
129 The first method premultiplies the transformation and the second
130 postmultiplies it.
131
132 void combineLeft(SoTransformation *nodeOnRight)
133 void combineRight(SoTransformation *nodeOnLeft)
134 These are convenience functions that combine the effects of another
135 transformation node into the current transformation stored in this
136 node. The first method premultiplies the transformation and the sec‐
137 ond postmultiplies it.
138
139 void setMatrix(const SbMatrix &mat)
140 Sets the fields in the node to implement the transformation repre‐
141 sented by the given matrix. Note that invalid matrices (such as sin‐
142 gular ones) have undefined results.
143
144 void recenter(const SbVec3f &newCenter)
145 Changes the center of the transformation to the given point without
146 affecting the overall effect of the transformation.
147
148 static SoType getClassTypeId()
149 Returns type identifier for this class.
150
151
153 SoGLRenderAction, SoCallbackAction, SoGetBoundingBoxAction, SoRayPick‐
154 Action
155 Accumulates transformation into the current transformation.
156
157 SoGetMatrixAction
158 Returns the matrix corresponding to the total transformation.
159
160
162 Transform {
163 translation 0 0 0
164 rotation 0 0 1 0
165 scaleFactor 1 1 1
166 scaleOrientation 0 0 1 0
167 center 0 0 0
168 }
169
171 SoMatrixTransform, SoResetTransform, SoRotation, SoRotationXYZ,
172 SoScale, SoTransformManip, SoTransformSeparator, SoTranslation
173
174
175
176
177 SoTransform(3IV)()