#include <RigidCoord.h>
Static Public Attributes | |
static constexpr sofa::Size | total_size = 7 |
Compile-time constant specifying the number of scalars within this vector (equivalent to the size() method) More... | |
static constexpr sofa::Size | spatial_dimensions = 3 |
Compile-time constant specifying the number of dimensions of space (NOT equivalent to total_size for rigids) More... | |
Protected Attributes | |
Vec3 | center |
Quat | orientation |
Public Member Functions | |
constexpr | RigidCoord (const Vec3 &posCenter, const Quat &orient) |
constexpr | RigidCoord () |
template<typename real2 > | |
constexpr | RigidCoord (const RigidCoord< 3, real2 > &c) |
constexpr void | clear () |
template<typename real2 > | |
constexpr void | operator= (const RigidCoord< 3, real2 > &c) |
constexpr void | operator= (const Vec3 &p) |
void | operator+= (const Deriv &dg) |
constexpr RigidCoord< 3, real > | operator+ (const Deriv &dg) const |
constexpr RigidCoord< 3, real > | operator- (const RigidCoord< 3, real > &a) const |
constexpr RigidCoord< 3, real > | operator+ (const RigidCoord< 3, real > &a) const |
constexpr RigidCoord< 3, real > | operator- () const |
constexpr void | operator+= (const RigidCoord< 3, real > &a) |
template<typename real2 > | |
constexpr void | operator*= (real2 a) |
template<typename real2 > | |
constexpr void | operator/= (real2 a) |
template<typename real2 > | |
constexpr RigidCoord< 3, real > | operator* (real2 a) const |
template<typename real2 > | |
constexpr RigidCoord< 3, real > | operator/ (real2 a) const |
constexpr Real | operator* (const RigidCoord< 3, real > &a) const |
dot product, mostly used to compute residuals as sqrt(x*x) More... | |
constexpr real | norm2 () const |
real | norm () const |
Euclidean norm. More... | |
constexpr Vec3 & | getCenter () |
constexpr Quat & | getOrientation () |
constexpr const Vec3 & | getCenter () const |
constexpr const Quat & | getOrientation () const |
constexpr Vec3 | rotate (const Vec3 &v) const |
constexpr RigidCoord< 3, real > | rotate (const RigidCoord< 3, real > &c) const |
constexpr Vec3 | inverseRotate (const Vec3 &v) const |
constexpr Vec3 | translate (const Vec3 &v) const |
constexpr RigidCoord< 3, real > | translate (const RigidCoord< 3, real > &c) const |
constexpr void | multRight (const RigidCoord< 3, real > &c) |
Apply a transformation with respect to itself. More... | |
constexpr Vec3 | mult (const Vec3 &v) const |
compute the product with another frame on the right More... | |
constexpr RigidCoord< 3, real > | mult (const RigidCoord< 3, real > &c) const |
compute the product with another frame on the right More... | |
template<class Mat > | |
void | fromMatrix (const Mat &m) |
Set from the given matrix. More... | |
void | toMatrix (sofa::type::Mat< 3, 3, real > &m) const |
Write to the given 3x3 matrix. More... | |
void | toMatrix (sofa::type::Mat< 4, 4, real > &m) const |
Write to the given 4x4 matrix. More... | |
constexpr void | toHomogeneousMatrix (HomogeneousMat &m) const |
template<class Mat > | |
void | writeRotationMatrix (Mat &m) const |
constexpr void | writeOpenGlMatrix (float m[16]) const |
Write the OpenGL transformation matrix. More... | |
constexpr Vec3 | projectPoint (const Vec3 &v) const |
Apply the transform to a point, i.e. project a point from the child frame to the parent frame (translation and rotation) More... | |
constexpr Vec3 | projectVector (const Vec3 &v) const |
Apply the transform to a vector, i.e. project a vector from the child frame to the parent frame (rotation only, no translation added) More... | |
constexpr Vec3 | unprojectPoint (const Vec3 &v) const |
Apply the inverse transform to a point, i.e. project a point from the parent frame to the child frame (translation and rotation) More... | |
constexpr Vec3 | unprojectVector (const Vec3 &v) const |
Apply the inverse transform to a vector, i.e. project a vector from the parent frame to the child frame (rotation only, no translation) More... | |
constexpr Vec3 | pointToParent (const Vec3 &v) const |
obsolete. Use projectPoint. More... | |
constexpr Vec3 | pointToChild (const Vec3 &v) const |
obsolete. Use unprojectPoint. More... | |
constexpr real * | ptr () |
constexpr const real * | ptr () const |
constexpr real & | operator[] (Size i) |
Access to i-th element. More... | |
constexpr const real & | operator[] (Size i) const |
Const access to i-th element. More... | |
Tests operators | |
constexpr bool | operator== (const RigidCoord< 3, real > &b) const |
constexpr bool | operator!= (const RigidCoord< 3, real > &b) const |
Static Public Member Functions | |
static RigidCoord | rand (SReal a) |
Random rigid transform composed of 3 random translations and 3 random Euler angles. More... | |
static constexpr RigidCoord< 3, real > | identity () |
template<typename V > | |
static constexpr HomogeneousVec | toHomogeneous (V v, real r=1.) |
create a homogeneous vector from a 3d vector More... | |
template<typename V > | |
static constexpr Vec3 | fromHomogeneous (V v) |
create a 3d vector from a homogeneous vector More... | |
static constexpr Size | max_size () |
static constexpr Size | size () |
Friends | |
std::ostream & | operator<< (std::ostream &out, const RigidCoord< 3, real > &v) |
write to an output stream More... | |
std::istream & | operator>> (std::istream &in, RigidCoord< 3, real > &v) |
read from an input stream More... | |
|
protected |
|
protected |
|
staticconstexpr |
Compile-time constant specifying the number of dimensions of space (NOT equivalent to total_size for rigids)
|
staticconstexpr |
Compile-time constant specifying the number of scalars within this vector (equivalent to the size() method)
|
inlineconstexpr |
|
inlineconstexpr |
|
inlineconstexpr |
|
inlineconstexpr |
|
inlinestaticconstexpr |
create a 3d vector from a homogeneous vector
|
inline |
Set from the given matrix.
|
inlineconstexpr |
|
inlineconstexpr |
|
inlineconstexpr |
|
inlineconstexpr |
|
inlinestaticconstexpr |
|
inlineconstexpr |
|
inlinestaticconstexpr |
|
inlineconstexpr |
compute the product with another frame on the right
|
inlineconstexpr |
compute the product with another frame on the right
|
inlineconstexpr |
Apply a transformation with respect to itself.
|
inline |
Euclidean norm.
|
inlineconstexpr |
Squared norm. For the rotation we use the xyz components of the quaternion. Note that this is not equivalent to the angle, so a 2d rotation and the equivalent 3d rotation have different norms.
|
inlineconstexpr |
|
inlineconstexpr |
dot product, mostly used to compute residuals as sqrt(x*x)
|
inlineconstexpr |
|
inlineconstexpr |
|
inlineconstexpr |
|
inlineconstexpr |
|
inline |
|
inlineconstexpr |
|
inlineconstexpr |
|
inlineconstexpr |
|
inlineconstexpr |
|
inlineconstexpr |
|
inlineconstexpr |
|
inlineconstexpr |
|
inlineconstexpr |
|
inlineconstexpr |
Access to i-th element.
|
inlineconstexpr |
Const access to i-th element.
|
inlineconstexpr |
obsolete. Use unprojectPoint.
|
inlineconstexpr |
obsolete. Use projectPoint.
|
inlineconstexpr |
Apply the transform to a point, i.e. project a point from the child frame to the parent frame (translation and rotation)
|
inlineconstexpr |
Apply the transform to a vector, i.e. project a vector from the child frame to the parent frame (rotation only, no translation added)
|
inlineconstexpr |
|
inlineconstexpr |
|
inlinestatic |
Random rigid transform composed of 3 random translations and 3 random Euler angles.
a | Range of each random value: (-a,+a) |
|
inlineconstexpr |
|
inlineconstexpr |
|
inlinestaticconstexpr |
|
inlinestaticconstexpr |
create a homogeneous vector from a 3d vector
|
inlineconstexpr |
|
inline |
Write to the given 3x3 matrix.
|
inline |
Write to the given 4x4 matrix.
|
inlineconstexpr |
|
inlineconstexpr |
|
inlineconstexpr |
Apply the inverse transform to a point, i.e. project a point from the parent frame to the child frame (translation and rotation)
|
inlineconstexpr |
Apply the inverse transform to a vector, i.e. project a vector from the parent frame to the child frame (rotation only, no translation)
|
inlineconstexpr |
Write the OpenGL transformation matrix.
|
inline |
|
friend |
write to an output stream
|
friend |
read from an input stream