22 #ifndef _vctMatrixRotation3ConstBase_h
23 #define _vctMatrixRotation3ConstBase_h
56 template <
class _containerType>
80 cmnThrow(std::runtime_error(
"vctMatrixRotation3ConstBase: This rotation is not normalized"));
88 template <
class _inputType>
90 if (! input.IsNormalized()) {
91 cmnThrow(std::runtime_error(
"vctMatrixRotation3ConstBase: Input is not normalized"));
120 columnNorm = this->Column(0).Norm();
123 columnNorm = this->Column(1).Norm();
126 columnNorm = this->Column(2).Norm();
129 value_type columnDot;
155 template <
stride_type __stride1,
class __dataPtrType1,
179 template <str
ide_type __str
ide,
class __dataPtrType>
198 CMN_ASSERT(input.Pointer() != this->Pointer());
209 template <
class __vectorOwnerType1,
class __vectorOwnerType2>
213 throw(std::runtime_error)
215 CMN_ASSERT(input.Pointer() != output.Pointer());
226 template <
class __vectorOwnerType, str
ide_type __str
ide,
class __dataPtrType>
230 throw(std::runtime_error)
232 CMN_ASSERT(input.Pointer() != output.Pointer());
245 template <
class __vectorOwnerType>
260 template <
stride_type __stride1,
class __dataPtrType1,
282 template <str
ide_type __str
ide,
class __dataPtrType>
293 template <
class __vectorOwnerType>
311 CMN_ASSERT(input.Pointer() != output.Pointer());
312 output.ProductOf(this->TransposeRef(), input);
325 CMN_ASSERT(input.Pointer() != this->Pointer());
336 template <
class __vectorOwnerType1,
class __vectorOwnerType2>
355 template <
class __vectorOwnerType, str
ide_type __str
ide,
class __dataPtrType>
383 template <
class __matrixOwnerType1,
class __matrixOwnerType2>
402 output.
ProductOf(this->TransposeRef(), input);
407 template <
class __matrixOwnerType1,
class __matrixOwnerType2>
432 template <str
ide_type __str
ide,
class __dataPtrType>
443 template <
class __vectorOwnerType1>
460 return this->AlmostEqual(other, tolerance);
465 #endif // _vctMatrixRotation3ConstBase_h
#define CISST_EXPORT
Definition: cmnExportMacros.h:50
A template for a fixed size matrix with fixed spacing in memory.
Definition: vctFixedSizeConstMatrixBase.h:103
void ApplyTo(const vctFixedSizeConstMatrixBase< DIMENSION, __cols, __rowStride1, __colStride1, value_type, __dataPtrType1 > &input, vctFixedSizeMatrixBase< DIMENSION, __cols, __rowStride2, __colStride2, value_type, __dataPtrType2 > &output) const
Definition: vctMatrixRotation3ConstBase.h:374
Declaration of vctDynamicMatrix.
ThisType ApplyInverseTo(const ThisType &input) const
Definition: vctMatrixRotation3ConstBase.h:324
vctFixedSizeVector< value_type, DIMENSION > ApplyInverseTo(const vctDynamicConstVectorBase< __vectorOwnerType, value_type > &input) const
Definition: vctMatrixRotation3ConstBase.h:295
#define CMN_ASSERT(expr)
Definition: cmnAssert.h:90
void ApplyTo(const vctDynamicConstVectorBase< __vectorOwnerType, value_type > &input, vctFixedSizeVectorBase< DIMENSION, __stride, value_type, __dataPtrType > &output) const
Definition: vctMatrixRotation3ConstBase.h:228
void ApplyTo(const vctDynamicConstMatrixBase< __matrixOwnerType1, value_type > &input, vctDynamicMatrixBase< __matrixOwnerType2, value_type > &output) const
Definition: vctMatrixRotation3ConstBase.h:384
Definition: vctDynamicMatrixBase.h:42
RotationValueType Normalized(void) const
Definition: vctMatrixRotation3.h:389
void ApplyInverseTo(const vctDynamicConstVectorBase< __vectorOwnerType, value_type > &input, vctFixedSizeVectorBase< DIMENSION, __stride, value_type, __dataPtrType > &output) const
Definition: vctMatrixRotation3ConstBase.h:357
Definition: vctMatrixRotation3ConstBase.h:61
void ApplyInverseTo(const ThisType &input, ThisType &output) const
Definition: vctMatrixRotation3ConstBase.h:310
_containerType ContainerType
Definition: vctMatrixRotation3ConstBase.h:63
static Type Tolerance(void)
Definition: cmnTypeTraits.h:170
Declaration of vctFixedSizeMatrix.
Forward declarations and #define for cisstVector.
ThisType & ProductOf(const vctFixedSizeConstMatrixBase< _rows, _cols, __rowStride, __colStride, value_type, __dataPtrType > &matrix, const value_type scalar)
Definition: vctFixedSizeMatrixBase.h:909
cmnTypeTraits< value_type > TypeTraits
Definition: vctMatrixRotation3ConstBase.h:73
size_t size_type
Definition: vctContainerTraits.h:35
void ApplyInverseTo(const vctDynamicConstMatrixBase< __matrixOwnerType1, value_type > &input, vctDynamicMatrixBase< __matrixOwnerType2, value_type > &output) const
Definition: vctMatrixRotation3ConstBase.h:408
void ThrowUnlessIsNormalized(void) const
Definition: vctMatrixRotation3ConstBase.h:78
vctMatrixRotation3< value_type > RotationValueType
Definition: vctMatrixRotation3ConstBase.h:70
vctFixedSizeVector< value_type, DIMENSION > ApplyInverseTo(const vctFixedSizeConstVectorBase< DIMENSION, __stride, value_type, __dataPtrType > &input) const
Definition: vctMatrixRotation3ConstBase.h:284
_containerType BaseType
Definition: vctMatrixRotation3ConstBase.h:62
ThisType & ProductOf(const vctDynamicConstMatrixBase< __matrixOwnerType, _elementType > &matrix, const value_type scalar)
Definition: vctDynamicMatrixBase.h:971
Definition: vctDynamicConstMatrixBase.h:77
Implementation of a fixed-size vector using template metaprogramming.
Definition: vctFixedSizeVector.h:52
void ApplyTo(const vctDynamicConstVectorBase< __vectorOwnerType1, value_type > &input, vctDynamicVectorBase< __vectorOwnerType2, value_type > &output) const
Definition: vctMatrixRotation3ConstBase.h:211
Define unary operations on an object as classes.
Definition: vctUnaryOperations.h:55
ThisType operator*(const ThisType &input) const
Definition: vctMatrixRotation3ConstBase.h:423
size_type size(void) const
Definition: vctDynamicConstVectorBase.h:164
ThisType ApplyTo(const ThisType &input) const
Definition: vctMatrixRotation3ConstBase.h:197
A template for a fixed size matrix with fixed spacings in memory.
Definition: vctFixedSizeMatrixBase.h:58
RotationValueType Inverse(void) const
Definition: vctMatrixRotation3.h:398
pointer Pointer(size_type rowIndex, size_type colIndex)
Definition: vctDynamicMatrixBase.h:143
Definition: vctMatrixRotation3ConstBase.h:60
Dynamic matrix referencing existing memory (const)
Definition: vctDynamicConstMatrixRef.h:79
vctFixedSizeVector< value_type, DIMENSION > ApplyTo(const vctDynamicConstVectorBase< __vectorOwnerType, value_type > &input) const
Definition: vctMatrixRotation3ConstBase.h:247
size_type rows() const
Definition: vctDynamicConstMatrixBase.h:238
size_type cols() const
Definition: vctDynamicConstMatrixBase.h:243
Definition: vctMatrixRotation3ConstBase.h:60
_elementType vctDotProduct(const vctDynamicConstVectorBase< _vector1OwnerType, _elementType > &vector1, const vctDynamicConstVectorBase< _vector2OwnerType, _elementType > &vector2)
Definition: vctDynamicConstVectorBase.h:1067
Define a rotation matrix for a space of dimension 3.
Definition: vctForwardDeclarations.h:198
const_pointer Pointer(size_type index=0) const
Definition: vctFixedSizeConstVectorBase.h:268
const_pointer Pointer(index_type rowIndex, index_type colIndex) const
Definition: vctDynamicConstMatrixBase.h:306
void ApplyInverseTo(const vctFixedSizeConstVectorBase< DIMENSION, __stride1, value_type, __dataPtrType1 > &input, vctFixedSizeVectorBase< DIMENSION, __stride2, value_type, __dataPtrType2 > &output) const
Definition: vctMatrixRotation3ConstBase.h:263
bool AlmostEquivalent(const ThisType &other, value_type tolerance=TypeTraits::Tolerance()) const
Definition: vctMatrixRotation3ConstBase.h:458
#define cmnThrow(a)
Definition: MinimalCmn.h:4
VCT_CONTAINER_TRAITS_TYPEDEFS(typename ContainerType::value_type)
static CISST_EXPORT const RotationValueType & Identity()
const_pointer Pointer(index_type index=0) const
Definition: vctDynamicConstVectorBase.h:221
pointer Pointer(index_type index=0)
Definition: vctDynamicVectorBase.h:155
A template for a fixed length vector with fixed spacing in memory.
Definition: vctFixedSizeVectorBase.h:76
ptrdiff_t stride_type
Definition: vctContainerTraits.h:37
Definition: vctDynamicConstVectorBase.h:77
void ApplyInverseTo(const vctFixedSizeConstMatrixBase< DIMENSION, __cols, __rowStride1, __colStride1, value_type, __dataPtrType1 > &input, vctFixedSizeMatrixBase< DIMENSION, __cols, __rowStride2, __colStride2, value_type, __dataPtrType2 > &output) const
Definition: vctMatrixRotation3ConstBase.h:398
A template for a fixed length vector with fixed spacing in memory.
Definition: vctFixedSizeConstVectorBase.h:107
pointer Pointer(size_type index=0)
Definition: vctFixedSizeVectorBase.h:226
void ApplyTo(const vctFixedSizeConstVectorBase< DIMENSION, __stride1, value_type, __dataPtrType1 > &input, vctFixedSizeVectorBase< DIMENSION, __stride2, value_type, __dataPtrType2 > &output) const
Definition: vctMatrixRotation3ConstBase.h:158
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
vctMatrixRotation3ConstBase< ContainerType > ThisType
Definition: vctMatrixRotation3ConstBase.h:64
void ApplyInverseTo(const vctDynamicConstVectorBase< __vectorOwnerType1, value_type > &input, vctDynamicVectorBase< __vectorOwnerType2, value_type > &output) const
Definition: vctMatrixRotation3ConstBase.h:338
void ThrowUnlessIsNormalized(const _inputType &input) const
Definition: vctMatrixRotation3ConstBase.h:89
vctFixedSizeVector< value_type, DIMENSION > ApplyTo(const vctFixedSizeConstVectorBase< DIMENSION, __stride, value_type, __dataPtrType > &input) const
Definition: vctMatrixRotation3ConstBase.h:181
pointer Pointer(size_type rowIndex, size_type colIndex)
Definition: vctFixedSizeMatrixBase.h:161
bool IsNormalized(value_type tolerance=TypeTraits::Tolerance()) const
Definition: vctMatrixRotation3ConstBase.h:118
Definition: vctDynamicVectorBase.h:61
Define a rotation matrix for a space of dimension 3.
Definition: vctForwardDeclarations.h:200