70 const eulerOrder order,
75 scalar angle1(angles.
x());
76 scalar angle2(angles.
y());
77 scalar angle3(angles.
z());
86 const scalar c1(
cos(angle1));
const scalar s1(
sin(angle1));
87 const scalar c2(
cos(angle2));
const scalar s2(
sin(angle2));
88 const scalar c3(
cos(angle3));
const scalar s3(
sin(angle3));
100 ( c2 ), ( -c3*s2 ), ( s2*s3 ),
101 ( c1*s2 ), ( c1*c2*c3 - s1*s3 ), ( -c3*s1 - c1*c2*s3 ),
102 ( s1*s2 ), ( c1*s3 + c2*c3*s1 ), ( c1*c3 - c2*s1*s3 )
107 case eulerOrder::XYX:
111 ( c2 ), ( s2*s3 ), ( c3*s2 ),
112 ( s1*s2 ), ( c1*c3 - c2*s1*s3 ), ( -c1*s3 - c2*c3*s1 ),
113 ( -c1*s2 ), ( c3*s1 + c1*c2*s3 ), ( c1*c2*c3 - s1*s3 )
118 case eulerOrder::YXY:
122 ( c1*c3 - c2*s1*s3 ), ( s1*s2 ), ( c1*s3 + c2*c3*s1 ),
123 ( s2*s3 ), ( c2 ), ( -c3*s2 ),
124 ( -c3*s1 -c1*c2*s3 ), ( c1*s2 ), ( c1*c2*c3 - s1*s3 )
129 case eulerOrder::YZY:
133 ( c1*c2*c3 - s1*s3 ), ( -c1*s2 ), ( c3*s1 + c1*c2*s3 ),
134 ( c3*s2 ), ( c2 ), ( s2*s3 ),
135 (-c1*s3 - c2*c3*s1 ), ( s1*s2 ), ( c1*c3 - c2*s1*s3 )
140 case eulerOrder::ZYZ:
144 ( c1*c2*c3 - s1*s3 ), ( -c3*s1 - c1*c2*s3 ), ( c1*s2 ),
145 ( c1*s3 + c2*c3*s1 ), ( c1*c3 - c2*s1*s3 ), ( s1*s2 ),
146 ( -c3*s2 ), ( s2*s3 ), ( c2 )
151 case eulerOrder::ZXZ:
155 ( c1*c3 - c2*s1*s3 ), ( -c1*s3 - c2*c3*s1 ), ( s1*s2 ),
156 ( c3*s1 + c1*c2*s3 ), ( c1*c2*c3 - s1*s3 ), ( -c1*s2 ),
157 ( s2*s3 ), ( c3*s2 ), ( c2 )
165 case eulerOrder::XZY:
169 ( c2*c3 ), ( -s2 ), ( c2*s3 ),
170 ( s1*s3 + c1*c3*s2 ), ( c1*c2 ), ( c1*s2*s3 - c3*s1 ),
171 ( c3*s1*s2 - c1*s3 ), ( c2*s1 ), ( c1*c3 + s1*s2*s3 )
176 case eulerOrder::XYZ:
180 ( c2*c3 ), ( -c2*s3 ), ( s2 ),
181 ( c1*s3 + c3*s1*s2 ), ( c1*c3 - s1*s2*s3 ), ( -c2*s1 ),
182 ( s1*s3 - c1*c3*s2 ), ( c3*s1 + c1*s2*s3 ), ( c1*c2 )
187 case eulerOrder::YXZ:
191 ( c1*c3 + s1*s2*s3 ), ( c3*s1*s2 - c1*s3 ), ( c2*s1 ),
192 ( c2*s3 ), ( c2*c3 ), ( -s2 ),
193 ( c1*s2*s3 - c3*s1 ), ( c1*c3*s2 + s1*s3 ), ( c1*c2 )
198 case eulerOrder::YZX:
202 ( c1*c2 ), ( s1*s3 - c1*c3*s2 ), ( c3*s1 + c1*s2*s3 ),
203 ( s2 ), ( c2*c3 ), ( -c2*s3 ),
204 ( -c2*s1 ), ( c1*s3 + c3*s1*s2 ), ( c1*c3 - s1*s2*s3 )
209 case eulerOrder::ZYX:
213 ( c1*c2 ), ( c1*s2*s3 - c3*s1 ), ( s1*s3 + c1*c3*s2 ),
214 ( c2*s1 ), ( c1*c3 + s1*s2*s3 ), ( c3*s1*s2 - c1*s3 ),
215 ( -s2 ), ( c2*s3 ), ( c2*c3 )
220 case eulerOrder::ZXY:
224 ( c1*c3 - s1*s2*s3 ), ( -c2*s1 ), ( c1*s3 + c3*s1*s2 ),
225 ( c3*s1 + c1*s2*s3 ), ( c1*c2 ), ( s1*s3 - c1*c3*s2 ),
226 ( -c2*s3 ), ( s2 ), ( c2*c3 )