API Documentation
Loading...
Searching...
No Matches
AngleFunctions.h File Reference
#include "DLLInfo.h"
#include <NDEVR/Angle.h>
#include <NDEVR/Vector.h>
Include dependency graph for AngleFunctions.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  AngleDefinitions
 Logic for converting between Euler angles and basic rotations or normals. More...
 

Namespaces

namespace  NDEVR
 

Functions

template<class t_angle_type >
constexpr Angle< t_angle_type > abs (const Angle< t_angle_type > &value)
 Changes an input with a negative sign, to a positive sign.
 
template<class t_type >
std::enable_if<!ObjectInfo< t_type >::Float, fltp08 >::type cos (const Angle< t_type > &angle)
 Performs optimized cosine operation on the given angle using pre-computed lookup table for optimal speed.
 
template<class t_type >
std::enable_if< ObjectInfo< t_type >::Float, fltp08 >::type cos (const Angle< t_type > &angle)
 Performs cosine operation on the given angle.
 
template<class t_type >
t_type cos (const t_type &angle)
 Performs cosine operation on the given angle assumed to be in radians.
 
template<uint01 t_dims, class t_angle_type >
constexpr Vector< t_dims, Angle< t_angle_type > > operator% (const Vector< t_dims, Angle< t_angle_type > > &vec_a, const Angle< t_angle_type > &value_b)
 Computes the remainder of an Angle given an angle and a modulo divisor.
 
template<uint01 t_dims, class t_angle_type >
constexpr Vector< t_dims, Angle< t_angle_type > > operator% (const Vector< t_dims, Angle< t_angle_type > > &vec_a, const Vector< t_dims, Angle< t_angle_type > > &vec_b)
 
template<class t_type , class t_vector_type >
constexpr std::enable_if< IsVecType< t_vector_type, Angle< fltp08 > >::value, t_vector_type >::type operator* (const t_type &mult, const t_vector_type &angle)
 
template<class t_type , class t_vector_type >
constexpr std::enable_if< IsVecType< t_vector_type, Angle< sint04 > >::value, t_vector_type >::type operator* (const t_type &mult, const t_vector_type &angle)
 
template<class t_type , class t_vector_type >
constexpr std::enable_if< IsVecType< t_vector_type, Angle< fltp08 > >::value, t_vector_type >::type operator* (const t_vector_type &angle, const t_type &mult)
 Multiplication operator for a Vector of Angles.
 
template<class t_type , class t_vector_type >
constexpr std::enable_if< IsVecType< t_vector_type, Angle< sint04 > >::value, t_vector_type >::type operator* (const t_vector_type &angle, const t_type &mult)
 Multiplication operator for a Vector of Angles.
 
template<uint01 t_dims, class t_type , class t_vector_type >
constexpr std::enable_if< std::is_base_of< Vector< t_dims, Angle< fltp08 > >, t_vector_type >::value, t_vector_type >::type operator* (const t_vector_type &angle, const Vector< t_dims, t_type > &mult)
 Multiplication operator for a Vector of Angles.
 
template<uint01 t_dims, class t_type , class t_vector_type >
constexpr std::enable_if< std::is_base_of< Vector< t_dims, Angle< sint04 > >, t_vector_type >::value, t_vector_type >::type operator* (const t_vector_type &angle, const Vector< t_dims, t_type > &mult)
 Multiplication operator for a Vector of Angles.
 
template<class t_type , class t_vector_type >
constexpr std::enable_if< IsVecType< t_vector_type, Angle< fltp08 > >::value, t_vector_type >::type operator* (const t_vector_type &mult, const t_vector_type &angle)
 
template<class t_type , class t_vector_type >
constexpr std::enable_if< IsVecType< t_vector_type, Angle< sint04 > >::value, t_vector_type >::type operator* (const t_vector_type &mult, const t_vector_type &angle)
 
template<uint01 t_dims, class t_type , class t_vector_type >
constexpr std::enable_if< std::is_base_of< Vector< t_dims, Angle< fltp08 > >, t_vector_type >::value, t_vector_type >::type operator* (const Vector< t_dims, t_type > &mult, const t_vector_type &angle)
 
template<uint01 t_dims, class t_type , class t_vector_type >
constexpr std::enable_if< std::is_base_of< Vector< t_dims, Angle< sint04 > >, t_vector_type >::value, t_vector_type >::type operator* (const Vector< t_dims, t_type > &mult, const t_vector_type &angle)
 
template<class t_type , class t_vector_type , class t_angle_type >
constexpr std::enable_if< IsVecType< t_vector_type, Angle< t_angle_type > >::value, t_vector_type >::type operator/ (const t_vector_type &angle, const t_type &den)
 Division operator for a Vector of Angles.
 
template<class t_type , class t_vector_type >
constexpr std::enable_if< IsVecType< t_vector_type, Angle< fltp08 > >::value, t_vector_type >::type operator/ (const t_vector_type &angle, const t_type &den)
 Division operator for a Vector of Angles.
 
template<class t_type , class t_vector_type >
constexpr std::enable_if< IsVecType< t_vector_type, Angle< sint04 > >::value, t_vector_type >::type operator/ (const t_vector_type &angle, const t_type &den)
 Division operator for a Vector of Angles.
 
template<uint01 t_dims, class t_vector_type , class t_angle_type >
constexpr std::enable_if< std::is_base_of< Vector< t_dims, Angle< t_angle_type > >, t_vector_type >::value, Vector< t_dims, fltp08 > >::type operator/ (const t_vector_type &angle, const Vector< t_dims, Angle< t_angle_type > > &den)
 Division operator for a Vector of Angles.
 
template<uint01 t_dims, class t_type , class t_vector_type , class t_angle_type >
constexpr std::enable_if< std::is_base_of< Vector< t_dims, Angle< t_angle_type > >, t_vector_type >::value, t_vector_type >::type operator/ (const t_vector_type &angle, const Vector< t_dims, t_type > &den)
 Division operator for a Vector of Angles.
 
template<uint01 t_dims, class t_angle_type >
constexpr Vector< t_dims, fltp08operator/ (const Vector< t_dims, Angle< t_angle_type > > &angle, const Vector< t_dims, Angle< t_angle_type > > &den)
 Division operator for a Vector of Angles.
 
template<class t_type , class t_vector_type , class t_angle_type >
constexpr std::enable_if< IsVecType< t_vector_type, Angle< t_angle_type > >::value, t_vector_type >::type operator/ (t_type num, const t_vector_type &angle)
 
template<uint01 t_dims, class t_angle_type >
constexpr Vector< t_dims, Angle< t_angle_type > > quantize (const Vector< t_dims, Angle< t_angle_type > > &value, Angle< t_angle_type > d=Angle< t_angle_type >(DEGREES, 1.0))
 
template<uint01 t_dims, class t_angle_type >
constexpr Vector< t_dims, Angle< t_angle_type > > quantize (const Vector< t_dims, Angle< t_angle_type > > &value, Vector< t_dims, Angle< t_angle_type > > d=Vector< t_dims, Angle< t_angle_type > >(Angle< t_angle_type >(DEGREES, 1.0)))
 
template<class t_type >
std::enable_if<!ObjectInfo< t_type >::Float, fltp08 >::type sin (const Angle< t_type > &angle)
 Performs optimized sine operation on the given angle using pre-computed lookup table for optimal speed.
 
template<class t_type >
std::enable_if< ObjectInfo< t_type >::Float, fltp08 >::type sin (const Angle< t_type > &angle)
 Performs sine operation on the given angle.
 
template<class t_type >
t_type sin (const t_type &angle)
 Performs sine operation on the given number assumed to be in radians.
 
template<class t_type >
std::enable_if<!ObjectInfo< t_type >::Float, fltp08 >::type tan (const Angle< t_type > &angle)
 Performs optimized tangent operation on the given angle using pre-computed lookup table for optimal speed.
 
template<class t_type >
std::enable_if< ObjectInfo< t_type >::Float, fltp08 >::type tan (const Angle< t_type > &angle)
 Performs tan operation on the given angle.
 
template<class t_type >
t_type tan (const t_type &angle)
 Performs tan operation on the given angle assumed to be in radians.
 
template<class t_new_type , uint01 t_dims, class t_angle_type >
constexpr Vector< t_dims, Angle< t_new_type > > ToTypeAngle (const Vector< t_dims, Angle< t_angle_type > > &old)
 Converts a Vector of one angle to a different container type.
 

Variables

const fltp08 *const s_index_sin