22#ifndef _vctQuaternionBase_h
23#define _vctQuaternionBase_h
48template <
class _containerType>
101 const_reference
R(
void)
const {
115 template <
class __containerTypeOther>
117 this->
X() = - otherQuaternion.X();
118 this->
Y() = - otherQuaternion.Y();
119 this->
Z() = - otherQuaternion.Z();
120 this->
R() = otherQuaternion.
R();
127 this->
X() = - this->
X();
128 this->
Y() = - this->
Y();
129 this->
Z() = - this->
Z();
148 template <
class __containerType1,
class __containerType2>
151 this->
X() = quat1.
R() * quat2.X() + quat1.X() * quat2.
R() + quat1.Y() * quat2.Z() - quat1.Z() * quat2.Y();
152 this->
Y() = quat1.
R() * quat2.Y() - quat1.X() * quat2.Z() + quat1.Y() * quat2.
R() + quat1.Z() * quat2.X();
153 this->
Z() = quat1.
R() * quat2.Z() + quat1.X() * quat2.Y() - quat1.Y() * quat2.X() + quat1.Z() * quat2.
R();
154 this->
R() = quat1.
R() * quat2.
R() - quat1.X() * quat2.X() - quat1.Y() * quat2.Y() - quat1.Z() * quat2.Z();
160 template <
class __containerType1,
class __containerType2>
165 quat2I.
Assign(-quat2.X() / quat2Norm, -quat2.Y() / quat2Norm, -quat2.Z() / quat2Norm, quat2.
R() / quat2Norm);
166 this->
X() = quat1.
R() * quat2I.X() + quat1.X() * quat2.
R() + quat1.Y() * quat2I.Z() - quat1.Z() * quat2I.Y();
167 this->
Y() = quat1.
R() * quat2I.Y() - quat1.X() * quat2I.Z() + quat1.Y() * quat2.
R() + quat1.Z() * quat2I.X();
168 this->
Z() = quat1.
R() * quat2I.Z() + quat1.X() * quat2I.Y() - quat1.Y() * quat2I.X() + quat1.Z() * quat2.
R();
169 this->
R() = quat1.
R() * quat2.
R() - quat1.X() * quat2I.X() - quat1.Y() * quat2I.Y() - quat1.Z() * quat2I.Z();
176 template <
class __containerTypeOther>
187 template <
class __containerTypeOther>
196 template <
class __containerTypeOther>
237template <
class _containerType>
253template <
class _containerType>
A collection of useful information about the C++ basic types, represented in a generic programming wa...
Definition cmnTypeTraits.h:155
_elementType value_type
Definition mtsGenericObjectProxy.h:329
ThisType & Assign(const vctDynamicConstNArrayBase< __nArrayOwnerType, value_type, DIMENSION > &other)
Definition vctDynamicNArrayBase.h:370
Define a quaternion container.
Definition vctQuaternionBase.h:50
ThisType & Divide(const vctQuaternionBase< __containerTypeOther > &other)
Definition vctQuaternionBase.h:197
@ SIZE
Definition vctQuaternionBase.h:59
ContainerType BaseType
Definition vctQuaternionBase.h:60
void Allocate(void)
Definition vctQuaternionBase.h:56
cmnTypeTraits< value_type > TypeTraits
Definition vctQuaternionBase.h:66
ThisType Conjugate(void) const
Definition vctQuaternionBase.h:136
ThisType & ConjugateSelf(void)
Definition vctQuaternionBase.h:126
ThisType & ProductOf(const vctQuaternionBase< __containerType1 > &quat1, const vctQuaternionBase< __containerType2 > &quat2)
Definition vctQuaternionBase.h:149
VCT_CONTAINER_TRAITS_TYPEDEFS(typename ContainerType::value_type)
vctQuaternionBase(const value_type &x, const value_type &y, const value_type &z, const value_type &r)
Definition vctQuaternionBase.h:83
const_reference R(void) const
Definition vctQuaternionBase.h:101
vctQuaternionBase(void)
Definition vctQuaternionBase.h:70
ThisType & QuotientOf(const vctQuaternionBase< __containerType1 > &quat1, const vctQuaternionBase< __containerType2 > &quat2)
Definition vctQuaternionBase.h:161
ContainerType ContainerType
Definition vctQuaternionBase.h:61
ThisType & Divide(const value_type s)
Definition vctQuaternionBase.h:208
ThisType & PostMultiply(const vctQuaternionBase< __containerTypeOther > &other)
Definition vctQuaternionBase.h:177
reference R(void)
Definition vctQuaternionBase.h:108
vctQuaternionBase< ContainerType > ThisType
Definition vctQuaternionBase.h:62
ThisType & ConjugateOf(const vctQuaternionBase< __containerTypeOther > &otherQuaternion)
Definition vctQuaternionBase.h:116
ThisType & PreMultiply(const vctQuaternionBase< __containerTypeOther > &other)
Definition vctQuaternionBase.h:188
Declaration of the class cmnTypeTraits.
Basic traits for the cisstVector containers.
const_pointer Pointer(index_type rowIndex, index_type colIndex) const
Definition vctDynamicConstMatrixBase.h:306
const value_type & Y(void) const
Definition vctDynamicConstVectorBase.h:271
const value_type & Z(void) const
Definition vctDynamicConstVectorBase.h:279
const value_type & X(void) const
Definition vctDynamicConstVectorBase.h:263
void SetSize(size_type rows, size_type cols, bool storageOrder)
Definition vctDynamicMatrix.h:364
Declaration of vctDynamicVector.
Macros to export the symbols of cisstVector (in a Dll).
vctQuaternionBase< _containerType > operator*(const vctQuaternionBase< _containerType > &quat1, const vctQuaternionBase< _containerType > &quat2)
Definition vctQuaternionBase.h:239
vctQuaternionBase< _containerType > operator/(const vctQuaternionBase< _containerType > &quat1, const vctQuaternionBase< _containerType > &quat2)
Definition vctQuaternionBase.h:255