22 #ifndef _vctMatrixRotation3_h
23 #define _vctMatrixRotation3_h
51 template <
class _elementType,
bool _rowMajor>
135 inline vctMatrixRotation3(
const value_type & element00,
const value_type & element01,
const value_type & element02,
136 const value_type & element10,
const value_type & element11,
const value_type & element12,
137 const value_type & element20,
const value_type & element21,
const value_type & element22)
138 throw(std::runtime_error)
140 this->
From(element00, element01, element02,
141 element10, element11, element12,
142 element20, element21, element22);
151 template <
stride_type __stride1,
class __dataPtrType1,
157 bool vectorsAreColumns =
true)
158 throw(std::runtime_error)
160 this->
From(v1, v2, v3, vectorsAreColumns);
169 template <
class __vectorOwnerType1,
170 class __vectorOwnerType2,
171 class __vectorOwnerType3>
175 bool vectorsAreColumns =
true)
176 throw(std::runtime_error)
178 this->
From(v1, v2, v3, vectorsAreColumns);
183 throw(std::runtime_error)
185 this->
From(axisAngleRotation);
195 template <
class __containerType>
197 throw(std::runtime_error)
199 this->
From(quaternionRotation);
203 template <
class __containerType>
205 throw(std::runtime_error)
207 this->
From(rodriguezRotation);
211 template <vctEulerRotation3Order::OrderType __order>
213 throw(std::runtime_error)
215 this->
From(eulerRotation);
252 inline vctMatrixRotation3(
const value_type & element00,
const value_type & element01,
const value_type & element02,
253 const value_type & element10,
const value_type & element11,
const value_type & element12,
254 const value_type & element20,
const value_type & element21,
const value_type & element22,
257 if (normalizeInput) {
259 element10, element11, element12,
260 element20, element21, element22);
262 this->
FromRaw(element00, element01, element02,
263 element10, element11, element12,
264 element20, element21, element22);
274 template <
stride_type __stride1,
class __dataPtrType1,
280 bool vectorsAreColumns,
bool normalizeInput)
282 if (normalizeInput) {
285 this->
FromRaw(v1, v2, v3, vectorsAreColumns);
295 template <
class __vectorOwnerType1,
296 class __vectorOwnerType2,
297 class __vectorOwnerType3>
301 bool vectorsAreColumns,
bool normalizeInput)
303 if (normalizeInput) {
306 this->
FromRaw(v1, v2, v3, vectorsAreColumns);
314 if (normalizeInput) {
317 this->
FromRaw(axisAngleRotation);
329 template <
class __containerType>
333 if (normalizeInput) {
336 this->
FromRaw(quaternionRotation);
341 template <
class __containerType>
345 if (normalizeInput) {
348 this->
FromRaw(rodriguezRotation);
353 template <vctEulerRotation3Order::OrderType __order>
357 if (normalizeInput) {
376 template <str
ide_type __rowStr
ide, str
ide_type __colStr
ide,
class __dataPtrType>
387 template <
class _containerType>
396 template <
class _containerType>
405 #endif // _vctMatrixRotation3_h
vctMatrixRotation3(const value_type &element00, const value_type &element01, const value_type &element02, const value_type &element10, const value_type &element11, const value_type &element12, const value_type &element20, const value_type &element21, const value_type &element22, bool normalizeInput)
Definition: vctMatrixRotation3.h:252
A template for a fixed size matrix with fixed spacing in memory.
Definition: vctFixedSizeConstMatrixBase.h:103
Definition: vctEulerRotation3.h:153
vctMatrixRotation3(void)
Definition: vctMatrixRotation3.h:66
RotationValueType Normalized(void) const
Definition: vctMatrixRotation3.h:389
vctMatrixRotation3(const ThisType &other)
Definition: vctMatrixRotation3.h:72
vctMatrixRotation3(const vctAxisAngleRotation3< value_type > &axisAngleRotation)
Definition: vctMatrixRotation3.h:182
vctMatrixRotation3(const vctFixedSizeMatrixBase< ROWS, COLS, __rowStride, __colStride, value_type, __dataPtrType > &matrix)
Definition: vctMatrixRotation3.h:378
vctMatrixRotation3(const BaseType &other)
Definition: vctMatrixRotation3.h:78
vctFixedSizeMatrix< value_type, ROWS, COLS, _rowMajor > ContainerType
Definition: vctMatrixRotation3.h:59
ThisType & Assign(const vctFixedSizeConstMatrixBase< _rows, _cols, __rowStride, __colStride, __elementType, __dataPtrType > &other)
Definition: vctFixedSizeMatrixBase.h:475
vctMatrixRotation3(const vctDynamicMatrixRef< value_type > &other)
Definition: vctMatrixRotation3.h:84
Declaration of vctFixedSizeMatrix.
Definition: vctMatrixRotation3.h:58
vctMatrixRotation3(const vctQuaternionRotation3Base< __containerType > &quaternionRotation)
Definition: vctMatrixRotation3.h:196
vctMatrixRotation3(const vctDynamicConstVectorBase< __vectorOwnerType1, value_type > &v1, const vctDynamicConstVectorBase< __vectorOwnerType2, value_type > &v2, const vctDynamicConstVectorBase< __vectorOwnerType3, value_type > &v3, bool vectorsAreColumns=true)
Definition: vctMatrixRotation3.h:172
vctMatrixRotation3Base< ContainerType > BaseType
Definition: vctMatrixRotation3.h:60
ThisType & InverseSelf(void)
Definition: vctMatrixRotation3Base.h:515
vctMatrixRotation3(const vctFixedSizeConstVectorBase< DIMENSION, __stride1, value_type, __dataPtrType1 > &v1, const vctFixedSizeConstVectorBase< DIMENSION, __stride2, value_type, __dataPtrType2 > &v2, const vctFixedSizeConstVectorBase< DIMENSION, __stride3, value_type, __dataPtrType3 > &v3, bool vectorsAreColumns, bool normalizeInput)
Definition: vctMatrixRotation3.h:277
Dynamic matrix referencing existing memory.
Definition: vctDynamicMatrixRef.h:74
ThisType & From(const vctMatrixRotation3Base< __containerType > &other)
Definition: vctMatrixRotation3Base.h:108
vctMatrixRotation3(const vctRodriguezRotation3Base< __containerType > &rodriguezRotation)
Definition: vctMatrixRotation3.h:204
Define a rotation based on an axis and an angle for a space of dimension 3.
Definition: vctAxisAngleRotation3.h:94
vctMatrixRotation3(const vctFixedSizeConstVectorBase< DIMENSION, __stride1, value_type, __dataPtrType1 > &v1, const vctFixedSizeConstVectorBase< DIMENSION, __stride2, value_type, __dataPtrType2 > &v2, const vctFixedSizeConstVectorBase< DIMENSION, __stride3, value_type, __dataPtrType3 > &v3, bool vectorsAreColumns=true)
Definition: vctMatrixRotation3.h:154
vctMatrixRotation3(const vctRodriguezRotation3Base< __containerType > &rodriguezRotation, bool normalizeInput)
Definition: vctMatrixRotation3.h:342
A template for a fixed size matrix with fixed spacings in memory.
Definition: vctFixedSizeMatrixBase.h:58
RotationValueType Inverse(void) const
Definition: vctMatrixRotation3.h:398
vctMatrixRotation3(const vctEulerRotation3< __order > &eulerRotation)
Definition: vctMatrixRotation3.h:212
Define a rotation matrix for a space of dimension 3.
Definition: vctForwardDeclarations.h:199
vctMatrixRotation3< value_type, _rowMajor > ThisType
Definition: vctMatrixRotation3.h:61
vctMatrixRotation3(const vctDynamicConstVectorBase< __vectorOwnerType1, value_type > &v1, const vctDynamicConstVectorBase< __vectorOwnerType2, value_type > &v2, const vctDynamicConstVectorBase< __vectorOwnerType3, value_type > &v3, bool vectorsAreColumns, bool normalizeInput)
Definition: vctMatrixRotation3.h:298
Definition: vctMatrixRotation3.h:57
cmnTypeTraits< value_type > TypeTraits
Definition: vctMatrixRotation3.h:63
Declaration of vctDynamicMatrixRef.
vctMatrixRotation3(const vctAxisAngleRotation3< value_type > &axisAngleRotation, bool normalizeInput)
Definition: vctMatrixRotation3.h:311
ThisType & FromRaw(const vctMatrixRotation3Base< __containerType > &other)
Definition: vctMatrixRotation3Base.h:354
Implementation of a fixed-size matrix using template metaprogramming.
Definition: vctFixedSizeMatrix.h:52
Definition: vctMatrixRotation3.h:57
vctMatrixRotation3(const value_type &element00, const value_type &element01, const value_type &element02, const value_type &element10, const value_type &element11, const value_type &element12, const value_type &element20, const value_type &element21, const value_type &element22)
Definition: vctMatrixRotation3.h:135
static CISST_EXPORT const RotationValueType & Identity()
Declaration of vctMatrixRotation3Base.
vctMatrixRotation3(const vctQuaternionRotation3Base< __containerType > &quaternionRotation, bool normalizeInput)
Definition: vctMatrixRotation3.h:330
ThisType & operator=(const ContainerType &other)
Definition: vctMatrixRotation3.h:96
ptrdiff_t stride_type
Definition: vctContainerTraits.h:37
Definition: vctDynamicConstVectorBase.h:77
VCT_CONTAINER_TRAITS_TYPEDEFS(_elementType)
A template for a fixed length vector with fixed spacing in memory.
Definition: vctFixedSizeConstVectorBase.h:107
ThisType & NormalizedSelf(void)
Definition: vctMatrixRotation3Base.h:493
Define a rotation quaternion for a space of dimension 3.
Definition: vctForwardDeclarations.h:208
Macros to export the symbols of cisstVector (in a Dll).
A collection of useful information about the C++ basic types, represented in a generic programming wa...
Definition: cmnTypeTraits.h:155
ThisType & FromNormalized(const vctMatrixRotation3Base< __containerType > &other)
Definition: vctMatrixRotation3Base.h:234
Define a rotation based on the rodriguez representation for a space of dimension 3.
Definition: vctForwardDeclarations.h:214
vctMatrixRotation3(const vctEulerRotation3< __order > &eulerRotation, bool normalizeInput)
Definition: vctMatrixRotation3.h:354
Define a rotation matrix for a space of dimension 3.
Definition: vctForwardDeclarations.h:200