1SoMFRotation(3IV)() SoMFRotation(3IV)()
2
3
4
6 SoMFRotation — Multiple-value field containing any number of SbRota‐
7 tions.
8
10 SoField > SoMField > SoMFRotation
11
13 #include <Inventor/fields/SoMFRotation.h>
14
15 Methods from class SoMFRotation:
16
17 void set1Value(int index, const SbVec3f &axis, float
18 angle)
19 void setValue(const SbVec3f &axis, float angle)
20 void set1Value(int index, float q0, float q1, float q2,
21 float q3)
22 void set1Value(int index, const float q[4])
23 void setValue(float q0, float q1, float q2, float q3)
24 void setValue(float q[4])
25 static SoType getClassTypeId()
26 virtual void getTypeId() const
27 const SbRotation & operator [](int i) const
28 const SbRotation * getValues(int start) const
29 int find(const SbRotation & targetValue, SbBool addIfNot‐
30 Found = FALSE)
31 void setValues(int start, int num, const SbRotation *new‐
32 Values)
33 void set1Value(int index, const SbRotation & newValue)
34 const SbRotation & operator =(const SbRotation & newValue)
35 void setValue(const SbRotation & newValue)
36 int operator ==(const SoMFRotation &f) const
37 int operator !=(const SoMFRotation &f) const
38 SbRotation * startEditing()
39 void finishEditing()
40
41 Methods from class SoMField:
42
43 int getNum() const
44 void setNum(int num)
45 virtual void deleteValues(int start, int num = -1)
46 virtual void insertSpace(int start, int num)
47 SbBool set1(int index, const char *valueString)
48 void get1(int index, SbString &valueString)
49
50 Methods from class SoField:
51
52 void setIgnored(SbBool ignore)
53 SbBool isIgnored() const
54 SbBool isDefault() const
55 virtual SbBool isOfType(SoType type) const
56 SbBool set(const char *valueString)
57 void get(SbString &valueString)
58 void touch()
59 SbBool connectFrom(SoField *fromField)
60 SbBool connectFrom(SoEngineOutput *fromEngine)
61 void disconnect()
62 SbBool isConnected() const
63 SbBool isConnectedFromField() const
64 SbBool getConnectedField(SoField *&writingField) const
65 SbBool isConnectedFromEngine() const
66 SbBool getConnectedEngine(SoEngineOutput *&engineOutput)
67 const
68 void enableConnection(SbBool flag)
69 SbBool isConnectionEnabled() const
70 int getForwardConnections(SoFieldList &list) const
71 SoFieldContainer * getContainer() const
72
73
75 multiple-value field that contains any number of SbRotations.
76
77 SoMFRotations are written to file as one or more sets of four floating
78 point values. Each set of 4 values is an axis of rotation followed by
79 the amount of right-handed rotation about that axis, in radians.
80
81 When more than one value is present, all of the values are enclosed in
82 square brackets and separated by commas; for example:
83
84 [ 1 0 0 0, -.707 -.707 0 1.57 ]
85
86
87
89 void set1Value(int index, const SbVec3f &axis, float
90 angle)
91 Sets the index'th value to the given axis/angle.
92
93 void setValue(const SbVec3f &axis, float angle)
94 Makes this field have exactly one value, given by axis and angle.
95
96 void set1Value(int index, float q0, float q1, float q2,
97 float q3)
98 void set1Value(int index, const float q[4])
99 Sets the index'th value to the given quaternion.
100
101 void setValue(float q0, float q1, float q2, float q3)
102 void setValue(float q[4])
103 Makes this field have exactly one value, given by the quaternion.
104
105 static SoType getClassTypeId()
106 virtual void getTypeId() const
107 Returns the type for this class or a particular object of this
108 class.
109
110 const SbRotation & operator [](int i) const
111 Returns the i'th value of the field. Indexing past the end of the
112 field (passing in i greater than getNum()) will return garbage.
113
114 const SbRotation * getValues(int start) const
115 Returns a pointer into the array of values in the field, starting at
116 index start. The values are read-only; see the startEditing()/fin‐
117 ishEditing() methods for a way of modifying values in place.
118
119 int find(const SbRotation & targetValue, SbBool addIfNot‐
120 Found = FALSE)
121 Finds the given value in the array and returns the index of that
122 value in the array. If the value is not found, -1 is returned. If
123 addIfNotFound is set, then targetValue is added to the end of the
124 array (but -1 is still returned).
125
126 void setValues(int start, int num, const SbRotation *new‐
127 Values)
128 Sets num values starting at index start to the values in newValues.
129 The array will be automatically be made larger to accomodate the new
130 values, if necessary.
131
132 void set1Value(int index, const SbRotation & newValue)
133 Sets the index'th value in the array to newValue. The array will be
134 automatically expanded, if necessary.
135
136 const SbRotation & operator =(const SbRotation & newValue)
137 void setValue(const SbRotation & newValue)
138 Sets the first value in the array to newValue, and deletes the sec‐
139 ond and subsequent values.
140
141 int operator ==(const SoMFRotation &f) const
142 int operator !=(const SoMFRotation &f) const
143 Returns TRUE if all of the values of this field equal (do not equal)
144 those of the given field. If the fields are different types FALSE
145 will always be returned (even if one field is an SoMFFloat with one
146 value of 1.0 and the other is an SoMFInt with a value of 1, for
147 example).
148
149 SbRotation * startEditing()
150 void finishEditing()
151 startEditing() returns a pointer to the internally-maintained array
152 that can be modified. The values in the array may be changed, but
153 values cannot be added or removed. It is illegal to call any other
154 editing methods between startEditing() and finishEditing() (e.g.
155 set1Value(), setValue(), etc).
156
157 Fields, engines or sensors connected to this field and sensors are
158 not notified that this field has changed until finishEditing() is
159 called. Calling finishEditing() always sets the isDefault() flag to
160 FALSE and informs engines and sensors that the field changed, even
161 if none of the values actually were changed.
162
163
165 SbRotation
166
167
168
169
170 SoMFRotation(3IV)()