Nebula
Loading...
Searching...
No Matches
vec3.h File Reference
#include "core/types.h"
#include "math/scalar.h"
#include "core/simd.h"

Go to the source code of this file.

Classes

struct  Math::vec3
 A 3D vector. More...
 

Namespaces

namespace  Math
 Different curves.
 

Functions

__forceinline vec3 Math::operator- (const vec3 &lhs)
 
__forceinline vec3 Math::operator* (const vec3 &lhs, scalar t)
 Component-wise multiply with scalar.
 
__forceinline vec3 Math::operator* (const vec3 &lhs, const vec3 &rhs)
 Component-wise multiply with another vector.
 
__forceinline vec3 Math::operator/ (const vec3 &lhs, scalar t)
 Component-wise divide by scalar.
 
__forceinline vec3 Math::operator+ (const vec3 &lhs, const vec3 &rhs)
 
__forceinline vec3 Math::operator- (const vec3 &lhs, const vec3 &rhs)
 
__forceinline scalar Math::length (const vec3 &v)
 
__forceinline scalar Math::lengthsq (const vec3 &v)
 
__forceinline vec3 Math::reciprocal (const vec3 &v)
 
__forceinline vec3 Math::reciprocalapprox (const vec3 &v)
 
__forceinline vec3 Math::multiply (const vec3 &v0, const vec3 &v1)
 
__forceinline vec3 Math::multiplyadd (const vec3 &v0, const vec3 &v1, const vec3 &v2)
 
__forceinline vec3 Math::divide (const vec3 &v0, const vec3 &v1)
 
__forceinline vec3 Math::abs (const vec3 &v)
 
__forceinline vec3 Math::cross (const vec3 &v0, const vec3 &v1)
 
__forceinline scalar Math::dot (const vec3 &v0, const vec3 &v1)
 
__forceinline vec3 Math::barycentric (const vec3 &v0, const vec3 &v1, const vec3 &v2, scalar f, scalar g)
 calculates Result = v0 + f * (v1 - v0) + g * (v2 - v0)
 
__forceinline vec3 Math::catmullrom (const vec3 &v0, const vec3 &v1, const vec3 &v2, const vec3 &v3, scalar s)
 
__forceinline vec3 Math::hermite (const vec3 &v1, const vec3 &t1, const vec3 &v2, const vec3 &t2, scalar s)
 
__forceinline scalar Math::angle (const vec3 &v0, const vec3 &v1)
 
__forceinline vec3 Math::lerp (const vec3 &v0, const vec3 &v1, scalar s)
 
__forceinline vec3 Math::maximize (const vec3 &v0, const vec3 &v1)
 
__forceinline vec3 Math::minimize (const vec3 &v0, const vec3 &v1)
 
__forceinline vec3 Math::clamp (const vec3 &clamp, const vec3 &min, const vec3 &max)
 
__forceinline vec3 Math::normalize (const vec3 &v)
 
__forceinline vec3 Math::normalizeapprox (const vec3 &v)
 
__forceinline vec3 Math::reflect (const vec3 &normal, const vec3 &incident)
 
__forceinline bool Math::less_any (const vec3 &v0, const vec3 &v1)
 
__forceinline bool Math::less_all (const vec3 &v0, const vec3 &v1)
 
__forceinline bool Math::lessequal_any (const vec3 &v0, const vec3 &v1)
 
__forceinline bool Math::lessequal_all (const vec3 &v0, const vec3 &v1)
 
__forceinline bool Math::greater_any (const vec3 &v0, const vec3 &v1)
 
__forceinline bool Math::greater_all (const vec3 &v0, const vec3 &v1)
 
__forceinline bool Math::greaterequal_any (const vec3 &v0, const vec3 &v1)
 
__forceinline bool Math::greaterequal_all (const vec3 &v0, const vec3 &v1)
 
__forceinline bool Math::equal_any (const vec3 &v0, const vec3 &v1)
 
__forceinline bool Math::nearequal (const vec3 &v0, const vec3 &v1, float epsilon)
 
__forceinline bool Math::nearequal (const vec3 &v0, const vec3 &v1, const vec3 &epsilon)
 
__forceinline vec3 Math::less (const vec3 &v0, const vec3 &v1)
 
__forceinline vec3 Math::greater (const vec3 &v0, const vec3 &v1)
 
__forceinline vec3 Math::equal (const vec3 &v0, const vec3 &v1)
 
__forceinline vec3 Math::splat (const vec3 &v, uint element)
 
__forceinline vec3 Math::splat_x (const vec3 &v)
 
__forceinline vec3 Math::splat_y (const vec3 &v)
 
__forceinline vec3 Math::splat_z (const vec3 &v)
 
__forceinline vec3 Math::permute (const vec3 &v0, const vec3 &v1, unsigned int i0, unsigned int i1, unsigned int i2)
 
__forceinline vec3 Math::select (const vec3 &v0, const vec3 &v1, const uint i0, const uint i1, const uint i2)
 
__forceinline vec3 Math::select (const vec3 &v0, const vec3 &v1, const vec3 &control)
 
__forceinline vec3 Math::floor (const vec3 &v)
 
__forceinline vec3 Math::ceiling (const vec3 &v)
 

Variables

static const f32x4 Math::_id_x = set_f32x4(1.0f, 0.0f, 0.0f, 0.0f)
 
static const f32x4 Math::_id_y = set_f32x4(0.0f, 1.0f, 0.0f, 0.0f)
 
static const f32x4 Math::_id_z = set_f32x4(0.0f, 0.0f, 1.0f, 0.0f)
 
static const f32x4 Math::_id_w = set_f32x4(0.0f, 0.0f, 0.0f, 1.0f)
 
static const f32x4 Math::_minus1 = set_f32x4(-1.0f, -1.0f, -1.0f, -1.0f)
 
static const f32x4 Math::_plus1 = set_f32x4(1.0f, 1.0f, 1.0f, 1.0f)
 
static const f32x4 Math::_zero = set_f32x4(0.0f, 0.0f, 0.0f, 0.0f)
 
static const i32x4 Math::_sign = set_i32x4(0x80000000, 0x80000000, 0x80000000, 0x80000000)
 
static const f32x4 Math::_mask_xyz = cast_i32x4_to_f32x4(set_i32x4( 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0 ))