Blender V4.3
BLI_math_vector.hh File Reference
#include <cmath>
#include <type_traits>
#include "BLI_math_base.hh"
#include "BLI_math_vector_types.hh"
#include "BLI_span.hh"
#include "BLI_utildefines.h"

Go to the source code of this file.

Classes

struct  blender::math::isect_result< T >
 

Namespaces

namespace  blender
 
namespace  blender::math
 

Functions

template<typename T , int Size>
bool blender::math::almost_equal_relative (const VecBase< T, Size > &a, const VecBase< T, Size > &b, const T &epsilon_factor)
 
template<typename T , int Size>
VecBase< T, Size > blender::math::abs (const VecBase< T, Size > &a)
 
template<typename T , int Size>
VecBase< T, Size > blender::math::sign (const VecBase< T, Size > &a)
 
template<typename T , int Size>
VecBase< T, Size > blender::math::min (const VecBase< T, Size > &a, const VecBase< T, Size > &b)
 
template<typename T , int Size>
VecBase< T, Size > blender::math::max (const VecBase< T, Size > &a, const VecBase< T, Size > &b)
 
template<typename T , int Size>
VecBase< T, Size > blender::math::clamp (const VecBase< T, Size > &a, const VecBase< T, Size > &min, const VecBase< T, Size > &max)
 
template<typename T , int Size>
VecBase< T, Size > blender::math::clamp (const VecBase< T, Size > &a, const T &min, const T &max)
 
template<typename T , int Size>
VecBase< T, Size > blender::math::step (const VecBase< T, Size > &edge, const VecBase< T, Size > &value)
 
template<typename T , int Size>
VecBase< T, Size > blender::math::step (const T &edge, const VecBase< T, Size > &value)
 
template<typename T , int Size>
VecBase< T, Size > blender::math::mod (const VecBase< T, Size > &a, const VecBase< T, Size > &b)
 
template<typename T , int Size>
VecBase< T, Size > blender::math::mod (const VecBase< T, Size > &a, const T &b)
 
template<typename T , int Size>
VecBase< T, Size > blender::math::safe_mod (const VecBase< T, Size > &a, const VecBase< T, Size > &b)
 
template<typename T , int Size>
VecBase< T, Size > blender::math::safe_mod (const VecBase< T, Size > &a, const T &b)
 
template<typename T , int Size>
VecBase< T, Size > blender::math::pow (const VecBase< T, Size > &x, const T &y)
 
template<typename T , int Size>
VecBase< T, Size > blender::math::pow (const VecBase< T, Size > &x, const VecBase< T, Size > &y)
 
template<typename T , int Size>
VecBase< T, Size > blender::math::square (const VecBase< T, Size > &a)
 
template<typename T , int Size>
VecBase< T, Size > blender::math::exp (const VecBase< T, Size > &x)
 
template<typename T , int Size>
VecBase< T, Size > blender::math::ceil_to_multiple (const VecBase< T, Size > &a, const VecBase< T, Size > &b)
 
template<typename T , int Size>
VecBase< T, Size > blender::math::divide_ceil (const VecBase< T, Size > &a, const VecBase< T, Size > &b)
 
template<typename T , int Size>
void blender::math::min_max (const VecBase< T, Size > &vector, VecBase< T, Size > &min, VecBase< T, Size > &max)
 
template<typename T , int Size>
VecBase< T, Size > blender::math::safe_divide (const VecBase< T, Size > &a, const VecBase< T, Size > &b)
 
template<typename T , int Size>
VecBase< T, Size > blender::math::safe_divide (const VecBase< T, Size > &a, const T &b)
 
template<typename T , int Size>
VecBase< T, Size > blender::math::floor (const VecBase< T, Size > &a)
 
template<typename T , int Size>
VecBase< T, Size > blender::math::round (const VecBase< T, Size > &a)
 
template<typename T , int Size>
VecBase< T, Size > blender::math::ceil (const VecBase< T, Size > &a)
 
template<typename T , int Size>
VecBase< T, Size > blender::math::sqrt (const VecBase< T, Size > &a)
 
template<typename T , int Size>
VecBase< T, Size > blender::math::safe_sqrt (const VecBase< T, Size > &a)
 
template<typename T , int Size>
VecBase< T, Size > blender::math::rcp (const VecBase< T, Size > &a)
 
template<typename T , int Size>
VecBase< T, Size > blender::math::safe_rcp (const VecBase< T, Size > &a)
 
template<typename T , int Size>
VecBase< T, Size > blender::math::fract (const VecBase< T, Size > &a)
 
template<typename T , int Size>
T blender::math::dot (const VecBase< T, Size > &a, const VecBase< T, Size > &b)
 
template<typename T , int Size>
T blender::math::length_manhattan (const VecBase< T, Size > &a)
 
template<typename T , int Size>
T blender::math::length_squared (const VecBase< T, Size > &a)
 
template<typename T , int Size>
T blender::math::length (const VecBase< T, Size > &a)
 
template<typename T , int Size>
bool blender::math::is_unit_scale (const VecBase< T, Size > &v)
 
template<typename T , int Size>
T blender::math::distance_manhattan (const VecBase< T, Size > &a, const VecBase< T, Size > &b)
 
template<typename T , int Size>
T blender::math::distance_squared (const VecBase< T, Size > &a, const VecBase< T, Size > &b)
 
template<typename T , int Size>
T blender::math::distance (const VecBase< T, Size > &a, const VecBase< T, Size > &b)
 
template<typename T , int Size>
VecBase< T, Size > blender::math::reflect (const VecBase< T, Size > &incident, const VecBase< T, Size > &normal)
 
template<typename T , int Size>
VecBase< T, Size > blender::math::refract (const VecBase< T, Size > &incident, const VecBase< T, Size > &normal, const T &eta)
 
template<typename T , int Size>
VecBase< T, Size > blender::math::project (const VecBase< T, Size > &p, const VecBase< T, Size > &v_proj)
 
template<typename T , int Size>
VecBase< T, Size > blender::math::normalize_and_get_length (const VecBase< T, Size > &v, T &out_length)
 
template<typename T , int Size>
VecBase< T, Size > blender::math::normalize (const VecBase< T, Size > &v)
 
template<typename T >
VecBase< T, 3 > blender::math::cross (const VecBase< T, 3 > &a, const VecBase< T, 3 > &b)
 
VecBase< float, 3 > blender::math::cross_high_precision (const VecBase< float, 3 > &a, const VecBase< float, 3 > &b)
 
template<typename T >
VecBase< T, 3 > blender::math::cross_poly (Span< VecBase< T, 3 > > poly)
 
template<typename T >
VecBase< T, 3 > blender::math::cross_tri (const VecBase< T, 3 > &v1, const VecBase< T, 3 > &v2, const VecBase< T, 3 > &v3)
 
template<typename T >
VecBase< T, 3 > blender::math::normal_tri (const VecBase< T, 3 > &v1, const VecBase< T, 3 > &v2, const VecBase< T, 3 > &v3)
 
template<typename T , typename FactorT , int Size>
VecBase< T, Size > blender::math::interpolate (const VecBase< T, Size > &a, const VecBase< T, Size > &b, const FactorT &t)
 
template<typename T , int Size>
VecBase< T, Size > blender::math::midpoint (const VecBase< T, Size > &a, const VecBase< T, Size > &b)
 
template<typename T , int Size>
VecBase< T, Size > blender::math::faceforward (const VecBase< T, Size > &vector, const VecBase< T, Size > &incident, const VecBase< T, Size > &reference)
 
template<typename T >
int blender::math::dominant_axis (const VecBase< T, 3 > &a)
 
template<typename T , int Size>
T blender::math::reduce_max (const VecBase< T, Size > &a)
 
template<typename T , int Size>
T blender::math::reduce_min (const VecBase< T, Size > &a)
 
template<typename T , int Size>
T blender::math::reduce_add (const VecBase< T, Size > &a)
 
template<typename T , int Size>
T blender::math::reduce_mul (const VecBase< T, Size > &a)
 
template<typename T , int Size>
T blender::math::average (const VecBase< T, Size > &a)
 
template<typename T >
VecBase< T, 3 > blender::math::orthogonal (const VecBase< T, 3 > &v)
 
template<typename T >
VecBase< T, 2 > blender::math::orthogonal (const VecBase< T, 2 > &v)
 
template<typename T , int Size>
bool blender::math::is_equal (const VecBase< T, Size > &a, const VecBase< T, Size > &b, const T epsilon=T(0))
 
template<typename T , int Size>
bool blender::math::is_zero (const VecBase< T, Size > &a, const T epsilon=T(0))
 
template<typename T , int Size>
bool blender::math::is_any_zero (const VecBase< T, Size > &a)
 
template<typename T , int Size>
bool blender::math::is_unit (const VecBase< T, Size > &a, const T epsilon=T(10) *std::numeric_limits< T >::epsilon())
 
template<typename T , int Size>
isect_result< VecBase< T, Size > > blender::math::isect_seg_seg (const VecBase< T, Size > &v1, const VecBase< T, Size > &v2, const VecBase< T, Size > &v3, const VecBase< T, Size > &v4)