#include <SpatialVector.h>
A spatial vector. When representing a velocity, lineVec is the angular velocity and freeVec is the linear velocity. When representing a spatial force, lineVec is the force and freeVec is the torque.
Public Attributes | |
Vec | lineVec { type::NOINIT } |
Vec | freeVec { type::NOINIT } |
Public Member Functions | |
void | clear () |
SpatialVector ()=default | |
SpatialVector (const Vec &l, const Vec &f) | |
SpatialVector & | operator+= (const SpatialVector &v) |
SpatialVector | operator* (Real a) const |
SpatialVector & | operator*= (Real a) |
SpatialVector | operator+ (const SpatialVector &v) const |
SpatialVector | operator- (const SpatialVector &v) const |
SpatialVector | operator- () const |
Real | operator* (const SpatialVector &v) const |
Spatial dot product (cross terms) More... | |
SpatialVector | cross (const SpatialVector &v) const |
Spatial cross product. More... | |
SpatialVector | operator* (const Mat66 &) const |
product with a dense matrix More... | |
Vec & | getLinearVelocity () |
const Vec & | getLinearVelocity () const |
void | setLinearVelocity (const Vec &v) |
Vec & | getAngularVelocity () |
const Vec & | getAngularVelocity () const |
void | setAngularVelocity (const Vec &v) |
Vec & | getTorque () |
const Vec & | getTorque () const |
void | setTorque (const Vec &v) |
Vec & | getForce () |
const Vec & | getForce () const |
void | setForce (const Vec &v) |
Friends | |
std::ostream & | operator<< (std::ostream &out, const SpatialVector &t) |
write to an output stream More... | |
std::istream & | operator>> (std::istream &in, SpatialVector &t) |
read from an input stream More... | |
Vec sofa::type::SpatialVector< TReal >::freeVec { type::NOINIT } |
Vec sofa::type::SpatialVector< TReal >::lineVec { type::NOINIT } |
|
default |
sofa::type::SpatialVector< TReal >::SpatialVector | ( | const Vec & | l, |
const Vec & | f | ||
) |
l | The line vector: angular velocity, or force |
f | The free vector: linear velocity, or torque |
void sofa::type::SpatialVector< TReal >::clear |
SpatialVector< TReal > sofa::type::SpatialVector< TReal >::cross | ( | const SpatialVector< TReal > & | v | ) | const |
Spatial cross product.
|
inline |
If the SpatialVector models a spatial velocity, then the angular velocity is the lineVec. Otherwise, the SpatialVector models a spatial force, and this method returns a force.
|
inline |
|
inline |
If the SpatialVector models a spatial force, then the torque is the lineVec. Otherwise, the SpatialVector models a spatial velocity, and this method returns an angular velocity.
|
inline |
|
inline |
If the SpatialVector models a spatial velocity, then the linear velocity is the freeVec. Otherwise, the SpatialVector models a spatial force, and this method returns a torque.
|
inline |
|
inline |
If the SpatialVector models a spatial force, then the torque is the freeVec. Otherwise, the SpatialVector models a spatial velocity, and this method returns a linear velocity.
|
inline |
SpatialVector< TReal > sofa::type::SpatialVector< TReal >::operator* | ( | const Mat66 & | m | ) | const |
product with a dense matrix
TReal sofa::type::SpatialVector< TReal >::operator* | ( | const SpatialVector< TReal > & | v | ) | const |
Spatial dot product (cross terms)
|
inline |
|
inline |
SpatialVector< TReal > sofa::type::SpatialVector< TReal >::operator+ | ( | const SpatialVector< TReal > & | v | ) | const |
SpatialVector< TReal > & sofa::type::SpatialVector< TReal >::operator+= | ( | const SpatialVector< TReal > & | v | ) |
SpatialVector< TReal > sofa::type::SpatialVector< TReal >::operator- |
SpatialVector< TReal > sofa::type::SpatialVector< TReal >::operator- | ( | const SpatialVector< TReal > & | v | ) | const |
|
inline |
|
inline |
|
inline |
|
inline |
|
friend |
write to an output stream
|
friend |
read from an input stream