Class SpatialMomentum#

Inheritance Relationships#

Base Type#

Class Documentation#

class SpatialMomentum : public Karana::Math::SpatialVector#

A momentum SpatialVector.

Public Functions

SpatialMomentum(const SpatialMomentum &other)#

Copy constructor.

Parameters:

other – The SpatialMomentum to copy from.

SpatialMomentum &operator=(const SpatialMomentum &other)#

Copy assignment operator.

Parameters:

other – The SpatialMomentum to assign from.

Returns:

Reference to this object.

template<class Derived>
inline SpatialMomentum &operator=(const Eigen::MatrixBase<Derived> &expression)#

Copy assignment operator.

Template Parameters:

Derived – The derived Eigen type.

Parameters:

expression – The Eigen expression to copy into the SpatialMomentum.

Returns:

A reference to this SpatialMomentum.

SpatialMomentum(SpatialMomentum &&other) noexcept#

Move constructor.

Parameters:

other – The SpatialMomentum to move from.

SpatialMomentum &operator=(SpatialMomentum &&other) noexcept#

Move assignment operator.

Parameters:

other – The SpatialMomentum to move from.

Returns:

Reference to this object.

SpatialMomentum operator*(double scale) const#

Scalar multiplication.

Parameters:

scale – Scalar value to multiply by.

Returns:

Scaled SpatialMomentum.

SpatialMomentum operator+(const SpatialMomentum &other) const#

Component-wise addition.

Parameters:

other – The SpatialMomentum to add to this one.

Returns:

Resulting SpatialMomentum sum.

SpatialMomentum &operator+=(const SpatialMomentum &other)#

In-place component-wise addition.

Parameters:

other – The SpatialMomentum to add to this one in-place.

Returns:

Reference to this object.

SpatialMomentum operator-() const#

Negation operator.

Returns:

Negated SpatialMomentum.

SpatialMomentum operator-(const SpatialMomentum &other) const#

Subtract another SpatialMomentum.

Parameters:

other – The SpatialMomentum to subtract from this one.

Returns:

Resulting SpatialMomentum.

SpatialMomentum &operator-=(const SpatialMomentum &other)#

In-place subtraction.

Parameters:

other – The SpatialMomentum to subtract from this one.

Returns:

Reference to this object.

SpatialMomentum operator+(const Vec6 &vec) const#

Add a Vec6 to this spatial momentum.

Parameters:

vec – The 6D momentum to add to this SpatialMomentum.

Returns:

Resulting SpatialMomentum.

SpatialMomentum operator-(const Vec6 &vec) const#

Subtract a Vec6 from this spatial momentum.

Parameters:

vec – The 6D momentum to subtract from this SpatialMomentum.

Returns:

Resulting SpatialMomentum.

SpatialMomentum cross(const SpatialMomentum &other)#

Compute 6-D cross product with another spatial momentum.

\[\begin{split} A \times B = \tilde A B = \begin{bmatrix} \tilde A_w & \tilde A_v \\ 0 & \tilde A_w \end{bmatrix} \begin{bmatrix} B_w \\ B_v \end{bmatrix} \end{split}\]

Parameters:

other – The SpatialMomentum to compute the cross product with.

Returns:

Resulting SpatialMomentum.

SpatialMomentum barprod(const SpatialMomentum &other)#

Compute the bar product with another spatial momentum.

\[\begin{split} \bar A B = - {\tilde A}^* B = \begin{bmatrix} \tilde A_w & \tilde A_v \\ 0 & \tilde A_w \end{bmatrix} \begin{bmatrix} B_w \\ B_v \end{bmatrix} \end{split}\]

Parameters:

other – The SpatialMomentum to compute the bar product with.

Returns:

Resulting SpatialMomentum.

SpatialMomentum multiplyFromLeft(const Mat66 &mat) const#

Multiply the momentum from left with a matrix, i.e v * mat.

Parameters:

mat – Matrix to multiply.

Returns:

Resulting SpatialMomentum.

SpatialVector()#

Construct initialized to zero.

template<typename Derived>
inline explicit SpatialVector(const Eigen::MatrixBase<Derived> &sv)#

Construct using a 6 vector. The first 3 components will be put into w and the last 3 components will be put into v.

Template Parameters:

Derived – The derived Eigen type.

Parameters:

sv – The Eigen expression to copy into the SpatialVector. This should be a 6-element vector.

template<typename WDerived, typename VDerived>
inline explicit SpatialVector(const Eigen::MatrixBase<WDerived> &w, const Eigen::MatrixBase<VDerived> &v)#

Construct using two 3-element vectors. The first will become w and the second will become v.

Template Parameters:
  • WDerived – The derived eigen type for w.

  • VDerived – The derived eigen type for v.

Parameters:
  • w – Angular portion of the spatial vector.

  • v – Linear portion of the spatial vector.

SpatialVector(const SpatialVector &other)#

Copy constructor.

Parameters:

other – The SpatialVector to copy from.

SpatialVector(SpatialVector &&other) noexcept#

Move constructor.

Parameters:

other – The SpatialVector to move from.