Euphoria
Public Member Functions | Static Public Member Functions | Public Attributes | List of all members
eu::v3 Struct Reference

a 3d vector More...

Inheritance diagram for eu::v3:
eu::n3

Public Member Functions

 v3 (float a)
 
 v3 (const std::tuple< float, float, float > &a)
 
constexpr v3 (float ax, float ay, float az)
 
 v3 (const float *a)
 assumes the given pointer is a array of 3 floats
 
float dot (const v3 &rhs) const
 
v3 cross (const v3 &u) const
 
void operator+= (const v3 &rhs)
 
void operator-= (const v3 &rhs)
 
void operator/= (float rhs)
 
void operator*= (float rhs)
 
v3 operator- () const
 
floatget_data_ptr ()
 Returns an array to the data.
 
const floatget_data_ptr () const
 Returns an array to the data.
 
constexpr float get_length_squared () const
 Returns the squared length of the vector.
 
float get_length () const
 Returns the length of the vector.
 
bool normalize ()
 Changes the length to 1.
 
std::optional< n3get_normalized () const
 Returns a unit vector.
 
bool operator== (const v3 &rhs)=delete
 

Static Public Member Functions

static v3 from_to (const v3 &from, const v3 &to)
 creates a vector going from from to to
 
static v3 from_localspace_rui (const Q &rotation, float right, float up, float in)
 Creates a vector in quaterion local space from Right Up In.
 

Public Attributes

float x
 
float y
 
float z
 

Detailed Description

a 3d vector

Definition at line 26 of file vec3.h.

Constructor & Destructor Documentation

◆ v3() [1/4]

eu::v3::v3 ( float  a)
explicit

◆ v3() [2/4]

eu::v3::v3 ( const std::tuple< float, float, float > &  a)
explicit

◆ v3() [3/4]

constexpr eu::v3::v3 ( float  ax,
float  ay,
float  az 
)
inlineconstexpr

Definition at line 34 of file vec3.h.

◆ v3() [4/4]

eu::v3::v3 ( const float a)
explicit

assumes the given pointer is a array of 3 floats

Member Function Documentation

◆ cross()

v3 eu::v3::cross ( const v3 u) const

◆ dot()

float eu::v3::dot ( const v3 rhs) const

◆ from_localspace_rui()

static v3 eu::v3::from_localspace_rui ( const Q rotation,
float  right,
float  up,
float  in 
)
static

Creates a vector in quaterion local space from Right Up In.

◆ from_to()

static v3 eu::v3::from_to ( const v3 from,
const v3 to 
)
static

creates a vector going from from to to

◆ get_data_ptr() [1/2]

float * eu::v3::get_data_ptr ( )

Returns an array to the data.

non const so it's useful for letting an API tweak the members.

◆ get_data_ptr() [2/2]

const float * eu::v3::get_data_ptr ( ) const

Returns an array to the data.

◆ get_length()

float eu::v3::get_length ( ) const

Returns the length of the vector.

◆ get_length_squared()

constexpr float eu::v3::get_length_squared ( ) const
inlineconstexpr

Returns the squared length of the vector.

This is useful if you want to compare to zero, sort by length or similar, otherwise see get_length()

Definition at line 66 of file vec3.h.

◆ get_normalized()

std::optional< n3 > eu::v3::get_normalized ( ) const

Returns a unit vector.

if the length is zero, nullopt is returend

◆ normalize()

bool eu::v3::normalize ( )

Changes the length to 1.

If the calculated length is zero, the vector is changed to a known value and false is returned

◆ operator*=()

void eu::v3::operator*= ( float  rhs)

◆ operator+=()

void eu::v3::operator+= ( const v3 rhs)

◆ operator-()

v3 eu::v3::operator- ( ) const

◆ operator-=()

void eu::v3::operator-= ( const v3 rhs)

◆ operator/=()

void eu::v3::operator/= ( float  rhs)

◆ operator==()

bool eu::v3::operator== ( const v3 rhs)
delete

Member Data Documentation

◆ x

float eu::v3::x

Definition at line 28 of file vec3.h.

◆ y

float eu::v3::y

Definition at line 29 of file vec3.h.

◆ z

float eu::v3::z

Definition at line 30 of file vec3.h.


The documentation for this struct was generated from the following file: