Fang-Robotics-MCB
Fang Robotics Team Codebase
Loading...
Searching...
No Matches
fang::math Namespace Reference

Classes

class  CoolLerp
 
struct  Range
 
struct  Vector2D
 

Typedefs

template<uint16_t ROWS, uint16_t COLS>
using Matrix = tap::algorithms::CMSISMat< ROWS, COLS >
 
using AbstractVector2D = math::Vector2D< double >
 

Functions

template<typename Unit >
Vector2D< Unit > rotateVector2D (const Vector2D< Unit > &vector, const Radians &rotationAngle)
 
Matrix< 2, 2 > rotationMatrix2D (const Radians &angle)
 
template<typename ScaleUnit >
Vector2D< ScaleUnit > operator* (const Vector2D< double > &vector, const ScaleUnit &scale)
 
template<typename ScaleUnit >
Vector2D< ScaleUnit > operator* (const ScaleUnit &scale, const Vector2D< double > &vector)
 
template<typename Unit >
Vector2D< Unit > operator* (const double &scale, const Vector2D< Unit > &vector)
 

Typedef Documentation

◆ AbstractVector2D

◆ Matrix

template<uint16_t ROWS, uint16_t COLS>
using fang::math::Matrix = typedef tap::algorithms::CMSISMat<ROWS, COLS>

Function Documentation

◆ operator*() [1/3]

template<typename Unit >
Vector2D< Unit > fang::math::operator* ( const double &  scale,
const Vector2D< Unit > &  vector 
)

◆ operator*() [2/3]

template<typename ScaleUnit >
Vector2D< ScaleUnit > fang::math::operator* ( const ScaleUnit &  scale,
const Vector2D< double > &  vector 
)

◆ operator*() [3/3]

template<typename ScaleUnit >
Vector2D< ScaleUnit > fang::math::operator* ( const Vector2D< double > &  vector,
const ScaleUnit &  scale 
)

◆ rotateVector2D()

template<typename Unit >
Vector2D< Unit > fang::math::rotateVector2D ( const Vector2D< Unit > &  vector,
const Radians rotationAngle 
)

This algorithm has an accuracy of within 1e-14; however, rotating the vector back will produce accuracy to only within 1e-10

◆ rotationMatrix2D()

Matrix< 2, 2 > fang::math::rotationMatrix2D ( const Radians angle)

Generates a 2d rotation matrix