Blender V4.3
BLI_math_angle_types.hh File Reference
#include <ostream>
#include "BLI_math_base.hh"
#include "BLI_struct_equality_utils.hh"

Go to the source code of this file.

Classes

struct  blender::math::AngleRadianBase< T >
 
struct  blender::math::AngleCartesianBase< T >
 
struct  blender::math::AngleFraction< T >
 

Namespaces

namespace  blender
 
namespace  blender::math
 

Typedefs

using blender::math::AngleRadian = AngleRadianBase<float>
 
using blender::math::AngleCartesian = AngleCartesianBase<float>
 

Functions

template<typename T >
T blender::math::cos (const AngleRadianBase< T > &a)
 
template<typename T >
T blender::math::sin (const AngleRadianBase< T > &a)
 
template<typename T >
T blender::math::tan (const AngleRadianBase< T > &a)
 
template<typename T >
T blender::math::cos (const AngleCartesianBase< T > &a)
 
template<typename T >
T blender::math::sin (const AngleCartesianBase< T > &a)
 
template<typename T >
T blender::math::tan (const AngleCartesianBase< T > &a)
 
template<typename T >
T blender::math::cos (const AngleFraction< T > &a)
 
template<typename T >
T blender::math::sin (const AngleFraction< T > &a)
 
template<typename T >
T blender::math::tan (const AngleFraction< T > &a)
 

Detailed Description

Classes to represent rotation angles. They can be used as 2D rotation or as building blocks for other rotation types.

Each blender::math::Angle***<T> implements the same interface and can be swapped easily. However, they differ in each operation's efficiency, storage size and the range or group of angles that can be stored.

This design allows some function overloads to be more efficient with certain types.

Definition in file BLI_math_angle_types.hh.