Classes | Namespaces | Functions
LinearMotionArithmetic.h File Reference
#include <array>
#include <iostream>
#include <Eigen/Core>
#include "SurgSim/Math/IntervalArithmetic.h"
#include "SurgSim/Math/PolynomialValues.h"
#include "SurgSim/Math/Vector.h"
#include "SurgSim/Math/LinearMotionArithmetic-inl.h"

Go to the source code of this file.

Classes

class  SurgSim::Math::LinearMotion< T >
 LinearMotion is (intentionally) a lot like Interval, but it deals with linear motion where all operands start and end their motion simultaneously. More...
 
class  SurgSim::Math::LinearMotionND< T, N >
 LinearMotionND<T, N> defines the concept of a group of linear motions and provides operations on them including arithmetic operations, construction, and I/O. More...
 
class  SurgSim::Math::LinearMotionND< T, 3 >
 LinearMotionND<T, 3> specializes the LinearMotionND<T, N> class for 3 dimensions. More...
 

Namespaces

 SurgSim
 
 SurgSim::Math
 

Functions

template<typename T >
std::ostream & SurgSim::Math::operator<< (std::ostream &o, const LinearMotion< T > &motion)
 Write a textual version of a linear motion to an output stream. More...
 
template<typename T , int N>
std::ostream & SurgSim::Math::operator<< (std::ostream &o, const LinearMotionND< T, N > &motion)
 Write a textual version of a linear motion group to an output stream. More...
 
template<typename T >
Polynomial< T, 2 > SurgSim::Math::analyticDotProduct (const LinearMotionND< T, 3 > &a, const LinearMotionND< T, 3 > &b)
 Calculate an analytic dot product as a Polynomial. More...
 
template<typename T , int A>
Polynomial< T, 2 > SurgSim::Math::analyticCrossProductAxis (const LinearMotionND< T, 3 > &a, const LinearMotionND< T, 3 > &b)
 Calculate a single axis of an analytic cross product as a Polynomial. More...
 
template<typename T >
Polynomial< T, 2 > SurgSim::Math::analyticCrossProductXAxis (const LinearMotionND< T, 3 > &a, const LinearMotionND< T, 3 > &b)
 Calculate the X axis of an analytic cross product as a Polynomial. More...
 
template<typename T >
Polynomial< T, 2 > SurgSim::Math::analyticCrossProductYAxis (const LinearMotionND< T, 3 > &a, const LinearMotionND< T, 3 > &b)
 Calculate the Y axis of an analytic cross product as a Polynomial. More...
 
template<typename T >
Polynomial< T, 2 > SurgSim::Math::analyticCrossProductZAxis (const LinearMotionND< T, 3 > &a, const LinearMotionND< T, 3 > &b)
 Calculate the Z axis of an analytic cross product as a Polynomial. More...
 
template<typename T >
void SurgSim::Math::analyticCrossProduct (const LinearMotionND< T, 3 > &a, const LinearMotionND< T, 3 > &b, Polynomial< T, 2 > *resultXAxis, Polynomial< T, 2 > *resultYAxis, Polynomial< T, 2 > *resultZAxis)
 Calculate an analytic cross product as a Polynomial. More...
 
template<typename T >
Polynomial< T, 3 > SurgSim::Math::analyticTripleProduct (const LinearMotionND< T, 3 > &a, const LinearMotionND< T, 3 > &b, const LinearMotionND< T, 3 > &c)
 Calculate an analytic cross product as a Polynomial, as a polynomial whose value for t=0..1 is the value of the triple product. More...
 
template<class T >
Interval< T > SurgSim::Math::tripleProduct (const LinearMotionND< T, 3 > &a, const LinearMotionND< T, 3 > &b, const LinearMotionND< T, 3 > &c, const Interval< T > &range)
 Calculate the triple product, as an interval. More...
 
template<typename T >
Polynomial< T, 2 > SurgSim::Math::analyticMagnitudeSquared (const LinearMotionND< T, 3 > &motion)
 Calculate the magnitude squared of a linear motion 3 group as a polynomial. More...