Wektor floatów 2D, 3D, 4D
[Math Module]

Classes

struct  common::VEC2
 Wektor floatów 2D. More...
struct  common::VEC3
 Wektor floatów 3D. More...
struct  common::VEC4
 Wektor floatów 4D. More...

Modules

 Operacje na poszczególnych składowych wektorów
 Porównania wektorów
 Ortogonalizacja trzech wektorów

Functions

VEC2 common::operator* (const VEC2 pt, float v)
VEC2 common::operator/ (const VEC2 pt, float v)
VEC2 common::operator* (float v, const VEC2 pt)
void common::swap (VEC2 &v1, VEC2 &v2)
VEC3 common::operator* (const VEC3 pt, float v)
VEC3 common::operator/ (const VEC3 pt, float v)
VEC3 common::operator* (float v, const VEC3 pt)
void common::swap (VEC3 &v1, VEC3 &v2)
VEC4 common::operator* (const VEC4 pt, float v)
VEC4 common::operator/ (const VEC4 pt, float v)
VEC4 common::operator* (float v, const VEC4 pt)
void common::swap (VEC4 &v1, VEC4 &v2)
float common::LengthSq (const VEC2 &v)
 Zwraca kwadrat długości wektora.
float common::LengthSq (const VEC3 &v)
float common::LengthSq (const VEC4 &v)
float common::Length (const VEC2 &v)
 Zwraca długość wektora.
float common::Length (const VEC3 &v)
float common::Length (const VEC4 &v)
float common::ManhattanLength (const VEC2 &v)
float common::ManhattanLength (const VEC3 &v)
float common::ManhattanLength (const VEC4 &v)
float common::MaxLength (const VEC2 &v)
float common::MaxLength (const VEC3 &v)
float common::MaxLength (const VEC4 &v)
void common::Min (VEC2 *Out, const VEC2 &v1, const VEC2 &v2)
 Zwraca wektor złożony z mniejszych składowych podanych wektorów.
void common::Min (VEC3 *Out, const VEC3 &v1, const VEC3 &v2)
void common::Min (VEC4 *Out, const VEC4 &v1, const VEC4 &v2)
void common::Max (VEC2 *Out, const VEC2 &v1, const VEC2 &v2)
 Zwraca wektor złożony z większych składowych podanych wektorów.
void common::Max (VEC3 *Out, const VEC3 &v1, const VEC3 &v2)
void common::Max (VEC4 *Out, const VEC4 &v1, const VEC4 &v2)
void common::saturate (VEC2 &v)
void common::saturate (VEC3 &v)
void common::saturate (VEC4 &v)
float common::Dot (const VEC2 &v1, const VEC2 &v2)
 Iloczyn skalarny wektorów.
float common::Dot (const VEC3 &v1, const VEC3 &v2)
float common::Dot (const VEC4 &v1, const VEC4 &v2)
void common::Minus (VEC2 *Out, VEC2 &v)
 Odwraca znak składowych wektora.
void common::Minus (VEC3 *Out, VEC3 &v)
void common::Minus (VEC4 *Out, VEC4 &v)
void common::Minus (VEC2 *InOut)
void common::Minus (VEC3 *InOut)
void common::Minus (VEC4 *InOut)
float common::Cross (const VEC2 &v1, const VEC2 &v2)
 Iloczyn wektorowy dwóch wektorów dający liczbę mówiącą czy drugi wskazuje na lewo, czy na prawo względem pierwszego.
void common::Cross (VEC3 *Out, const VEC3 &v1, const VEC3 &v2)
 Iloczyn wektorowy dwóch wektorów 3D.
float common::DistanceSq (const VEC2 &p1, const VEC2 &p2)
 Kwadrat odległości między dwoma punktami.
float common::DistanceSq (const VEC3 &p1, const VEC3 &p2)
float common::DistanceSq (const VEC4 &p1, const VEC4 &p2)
float common::Distance (const VEC2 &p1, const VEC2 &p2)
 Odległość między dwoma punktami.
float common::Distance (const VEC3 &p1, const VEC3 &p2)
float common::Distance (const VEC4 &p1, const VEC4 &p2)
float common::ManhattanDistance (const VEC2 &p1, const VEC2 &p2)
float common::ManhattanDistance (const VEC3 &p1, const VEC3 &p2)
float common::ManhattanDistance (const VEC4 &p1, const VEC4 &p2)
float common::MaxDistance (const VEC2 &p1, const VEC2 &p2)
float common::MaxDistance (const VEC3 &p1, const VEC3 &p2)
float common::MaxDistance (const VEC4 &p1, const VEC4 &p2)
void common::Lerp (VEC2 *Out, const VEC2 &v1, const VEC2 &v2, float t)
 Liniowa interpolacja wektorów.
void common::Lerp (VEC3 *Out, const VEC3 &v1, const VEC3 &v2, float t)
void common::Lerp (VEC4 *Out, const VEC4 &v1, const VEC4 &v2, float t)
void common::Normalize (VEC2 *Out, const VEC2 &v)
 Normalizuje wektor, czyli zmienia mu długość na 1.
void common::Normalize (VEC3 *Out, const VEC3 &v)
void common::Normalize (VEC4 *Out, const VEC4 &v)
void common::Normalize (VEC2 *v)
 Normalizuje wektor w miejscu.
void common::Normalize (VEC3 *v)
void common::Normalize (VEC4 *v)
bool common::SafeNormalize (VEC2 *v)
 Bezpieczna normalizacja wektora w miejscu. W przypadku wektora zerowego zwraca false.
bool common::SafeNormalize (VEC3 *v)
bool common::SafeNormalize (VEC4 *v)
void common::Vec3ToVec4 (VEC4 *Out, const VEC3 &v)
 Konwersja z wektora 3D na 4D dopisująca W=1.
void common::Vec4ToVec3_Ignore (VEC3 *Out, const VEC4 &v)
 Konwersja z wektora 4D na 3D ze zignorowaniem składowej W.
void common::Vec4ToVec3_Div (VEC3 *Out, const VEC4 &v)
 Konwersja z wektora 4D na 3D ze podzieleniem składowych przez W.
void common::MidPoint (VEC2 *Out, const VEC2 &p1, const VEC2 &p2)
 Zwraca punkt w połowie drogi między podanymi punktami.
void common::MidPoint (VEC3 *Out, const VEC3 &p1, const VEC3 &p2)
void common::MidPoint (VEC4 *Out, const VEC4 &p1, const VEC4 &p2)
bool common::VecEqual (const VEC2 &v1, const VEC2 &v2)
 Zwraca true, jeśli podane wektory/punkty są sobie mniej więcej równe.
bool common::VecEqual (const VEC3 &v1, const VEC3 &v2)
bool common::VecEqual (const VEC4 &v1, const VEC4 &v2)
bool common::around (const VEC2 &v1, const VEC2 &v2, float Epsilon)
bool common::around (const VEC3 &v1, const VEC3 &v2, float Epsilon)
bool common::around (const VEC4 &v1, const VEC4 &v2, float Epsilon)
void common::Perpedicular (VEC2 *Out, const VEC2 &v)
 Zwraca wektor prostopadły do podanego wektora 2D.
void common::Reflect (VEC2 *Out, const VEC2 &v, const VEC2 &PlaneNormal)
 Oblicza wektor kierunku odbicia od płaszczyzny o podanej normalnej.
void common::Reflect (VEC3 *Out, const VEC3 &v, const VEC3 &PlaneNormal)
void common::Refract (VEC2 *out, const VEC2 &I, const VEC2 &N, float eta)
 For the incident vector I and surface normal N, and the ratio of indices of refraction eta, return the refraction vector.
void common::Refract (VEC3 *out, const VEC3 &I, const VEC3 &N, float eta)
void common::Project (VEC2 *Out, const VEC2 &V, const VEC2 &N)
 Rzutowanie wektora V na wektor N.
void common::Project (VEC3 *Out, const VEC3 &V, const VEC3 &N)
void common::Project_N (VEC2 *Out, const VEC2 &V, const VEC2 &N)
 Wersja common::Project, kiedy wektor N jest już na pewno znormalizowany.
void common::Project_N (VEC3 *Out, const VEC3 &V, const VEC3 &N)
float common::ScalarTripleProduct (const VEC3 &u, const VEC3 &v, const VEC3 &w)
 Oblicza: u cross v dot w.
void common::PerpedicularVectors (VEC3 *Out1, VEC3 *Out2, const VEC3 &v)
 Wyznacza dwa dowolne wektory prostopadłe do podanego.

Variables

const VEC2 common::VEC2_ZERO
const VEC2 common::VEC2_ONE
const VEC2 common::VEC2_POSITIVE_X
const VEC2 common::VEC2_POSITIVE_Y
const VEC2 common::VEC2_NEGATIVE_X
const VEC2 common::VEC2_NEGATIVE_Y
const VEC3 common::VEC3_ZERO
const VEC3 common::VEC3_ONE
const VEC3 common::VEC3_POSITIVE_X
const VEC3 common::VEC3_POSITIVE_Y
const VEC3 common::VEC3_POSITIVE_Z
const VEC3 common::VEC3_NEGATIVE_X
const VEC3 common::VEC3_NEGATIVE_Y
const VEC3 common::VEC3_NEGATIVE_Z
const VEC4 common::VEC4_ZERO
const VEC4 common::VEC4_ONE
const VEC4 common::VEC4_POSITIVE_X
const VEC4 common::VEC4_POSITIVE_Y
const VEC4 common::VEC4_POSITIVE_Z
const VEC4 common::VEC4_POSITIVE_W
const VEC4 common::VEC4_NEGATIVE_X
const VEC4 common::VEC4_NEGATIVE_Y
const VEC4 common::VEC4_NEGATIVE_Z
const VEC4 common::VEC4_NEGATIVE_W

Detailed Description


Function Documentation

bool common::around ( const VEC4 &  v1,
const VEC4 &  v2,
float  Epsilon 
) [inline]
bool common::around ( const VEC3 &  v1,
const VEC3 &  v2,
float  Epsilon 
) [inline]
bool common::around ( const VEC2 &  v1,
const VEC2 &  v2,
float  Epsilon 
) [inline]
void common::Cross ( VEC3 *  Out,
const VEC3 &  v1,
const VEC3 &  v2 
) [inline]

Iloczyn wektorowy dwóch wektorów 3D.

float common::Cross ( const VEC2 &  v1,
const VEC2 &  v2 
) [inline]

Iloczyn wektorowy dwóch wektorów dający liczbę mówiącą czy drugi wskazuje na lewo, czy na prawo względem pierwszego.

W układzie gdzie X jest w prawo a Y do góry, > 0 znaczy na lewo
W układzie gdzie X jest w prawo a Y w dół, > 0 znaczy na prawo

float common::Distance ( const VEC4 &  p1,
const VEC4 &  p2 
) [inline]
float common::Distance ( const VEC3 &  p1,
const VEC3 &  p2 
) [inline]
float common::Distance ( const VEC2 &  p1,
const VEC2 &  p2 
) [inline]

Odległość między dwoma punktami.

float common::DistanceSq ( const VEC4 &  p1,
const VEC4 &  p2 
) [inline]
float common::DistanceSq ( const VEC3 &  p1,
const VEC3 &  p2 
) [inline]
float common::DistanceSq ( const VEC2 &  p1,
const VEC2 &  p2 
) [inline]

Kwadrat odległości między dwoma punktami.

float common::Dot ( const VEC4 &  v1,
const VEC4 &  v2 
) [inline]
float common::Dot ( const VEC3 &  v1,
const VEC3 &  v2 
) [inline]
float common::Dot ( const VEC2 &  v1,
const VEC2 &  v2 
) [inline]

Iloczyn skalarny wektorów.

float common::Length ( const VEC4 &  v  )  [inline]

Zwraca długość wektora.

float common::Length ( const VEC3 &  v  )  [inline]

Zwraca długość wektora.

float common::Length ( const VEC2 &  v  )  [inline]

Zwraca długość wektora.

float common::LengthSq ( const VEC4 &  v  )  [inline]

Zwraca kwadrat długości wektora.

float common::LengthSq ( const VEC3 &  v  )  [inline]

Zwraca kwadrat długości wektora.

float common::LengthSq ( const VEC2 &  v  )  [inline]

Zwraca kwadrat długości wektora.

void common::Lerp ( VEC4 *  Out,
const VEC4 &  v1,
const VEC4 &  v2,
float  t 
) [inline]
void common::Lerp ( VEC3 *  Out,
const VEC3 &  v1,
const VEC3 &  v2,
float  t 
) [inline]
void common::Lerp ( VEC2 *  Out,
const VEC2 &  v1,
const VEC2 &  v2,
float  t 
) [inline]

Liniowa interpolacja wektorów.

float common::ManhattanDistance ( const VEC4 &  p1,
const VEC4 &  p2 
) [inline]
float common::ManhattanDistance ( const VEC3 &  p1,
const VEC3 &  p2 
) [inline]
float common::ManhattanDistance ( const VEC2 &  p1,
const VEC2 &  p2 
) [inline]
float common::ManhattanLength ( const VEC4 &  v  )  [inline]
float common::ManhattanLength ( const VEC3 &  v  )  [inline]
float common::ManhattanLength ( const VEC2 &  v  )  [inline]
void common::Max ( VEC4 *  Out,
const VEC4 &  v1,
const VEC4 &  v2 
) [inline]
void common::Max ( VEC3 *  Out,
const VEC3 &  v1,
const VEC3 &  v2 
) [inline]
void common::Max ( VEC2 *  Out,
const VEC2 &  v1,
const VEC2 &  v2 
) [inline]

Zwraca wektor złożony z większych składowych podanych wektorów.

float common::MaxDistance ( const VEC4 &  p1,
const VEC4 &  p2 
) [inline]
float common::MaxDistance ( const VEC3 &  p1,
const VEC3 &  p2 
) [inline]
float common::MaxDistance ( const VEC2 &  p1,
const VEC2 &  p2 
) [inline]
float common::MaxLength ( const VEC4 &  v  )  [inline]
float common::MaxLength ( const VEC3 &  v  )  [inline]
float common::MaxLength ( const VEC2 &  v  )  [inline]
void common::MidPoint ( VEC4 *  Out,
const VEC4 &  p1,
const VEC4 &  p2 
) [inline]
void common::MidPoint ( VEC3 *  Out,
const VEC3 &  p1,
const VEC3 &  p2 
) [inline]
void common::MidPoint ( VEC2 *  Out,
const VEC2 &  p1,
const VEC2 &  p2 
) [inline]

Zwraca punkt w połowie drogi między podanymi punktami.

void common::Min ( VEC4 *  Out,
const VEC4 &  v1,
const VEC4 &  v2 
) [inline]
void common::Min ( VEC3 *  Out,
const VEC3 &  v1,
const VEC3 &  v2 
) [inline]
void common::Min ( VEC2 *  Out,
const VEC2 &  v1,
const VEC2 &  v2 
) [inline]

Zwraca wektor złożony z mniejszych składowych podanych wektorów.

void common::Minus ( VEC4 *  InOut  )  [inline]
void common::Minus ( VEC3 *  InOut  )  [inline]
void common::Minus ( VEC2 *  InOut  )  [inline]
void common::Minus ( VEC4 *  Out,
VEC4 &  v 
) [inline]
void common::Minus ( VEC3 *  Out,
VEC3 &  v 
) [inline]
void common::Minus ( VEC2 *  Out,
VEC2 &  v 
) [inline]

Odwraca znak składowych wektora.

void common::Normalize ( VEC4 *  v  )  [inline]
void common::Normalize ( VEC3 *  v  )  [inline]
void common::Normalize ( VEC2 *  v  )  [inline]

Normalizuje wektor w miejscu.

void common::Normalize ( VEC4 *  Out,
const VEC4 &  v 
) [inline]
void common::Normalize ( VEC3 *  Out,
const VEC3 &  v 
) [inline]
void common::Normalize ( VEC2 *  Out,
const VEC2 &  v 
) [inline]

Normalizuje wektor, czyli zmienia mu długość na 1.

VEC4 common::operator* ( float  v,
const VEC4  pt 
) [inline]
VEC4 common::operator* ( const VEC4  pt,
float  v 
) [inline]
VEC3 common::operator* ( float  v,
const VEC3  pt 
) [inline]
VEC3 common::operator* ( const VEC3  pt,
float  v 
) [inline]
VEC2 common::operator* ( float  v,
const VEC2  pt 
) [inline]
VEC2 common::operator* ( const VEC2  pt,
float  v 
) [inline]
VEC4 common::operator/ ( const VEC4  pt,
float  v 
) [inline]
VEC3 common::operator/ ( const VEC3  pt,
float  v 
) [inline]
VEC2 common::operator/ ( const VEC2  pt,
float  v 
) [inline]
void common::Perpedicular ( VEC2 *  Out,
const VEC2 &  v 
) [inline]

Zwraca wektor prostopadły do podanego wektora 2D.

W układzie w którym X jest w prawo a Y do góry wektor leży na lewo od danego. W układzie w którym X jest w prawo a Y w dół, leży na prawo.

void common::PerpedicularVectors ( VEC3 *  Out1,
VEC3 *  Out2,
const VEC3 &  v 
)

Wyznacza dwa dowolne wektory prostopadłe do podanego.

Zwrócone wektory nie są znormalizowane.

Parameters:
v nie musi być znormalizowany.
void common::Project ( VEC3 *  Out,
const VEC3 &  V,
const VEC3 &  N 
) [inline]
void common::Project ( VEC2 *  Out,
const VEC2 &  V,
const VEC2 &  N 
) [inline]

Rzutowanie wektora V na wektor N.

Jeśli chcemy rozłożyć wektor V na wektor prostopadły i równoległy do N, to wektorem równoległym jest Out, a prostopadły obliczamy jako V - Out.

Parameters:
[out] Out Będzie równoległy do N.
void common::Project_N ( VEC3 *  Out,
const VEC3 &  V,
const VEC3 &  N 
) [inline]
void common::Project_N ( VEC2 *  Out,
const VEC2 &  V,
const VEC2 &  N 
) [inline]

Wersja common::Project, kiedy wektor N jest już na pewno znormalizowany.

void common::Reflect ( VEC3 *  Out,
const VEC3 &  v,
const VEC3 &  PlaneNormal 
) [inline]
void common::Reflect ( VEC2 *  Out,
const VEC2 &  v,
const VEC2 &  PlaneNormal 
) [inline]

Oblicza wektor kierunku odbicia od płaszczyzny o podanej normalnej.

Parameters:
v wskazuje na kierunek *do* tej płaszczyzny.
PlaneNormal musi być znormalizowany.
void common::Refract ( VEC3 *  out,
const VEC3 &  I,
const VEC3 &  N,
float  eta 
) [inline]

void common::Refract ( VEC2 *  out,
const VEC2 &  I,
const VEC2 &  N,
float  eta 
) [inline]

For the incident vector I and surface normal N, and the ratio of indices of refraction eta, return the refraction vector.

The input parameters for the incident vector I and the surface normal N must already be normalized to get the desired results.

bool common::SafeNormalize ( VEC4 *  v  )  [inline]
bool common::SafeNormalize ( VEC3 *  v  )  [inline]
bool common::SafeNormalize ( VEC2 *  v  )  [inline]

Bezpieczna normalizacja wektora w miejscu. W przypadku wektora zerowego zwraca false.

void common::saturate ( VEC4 &  v  )  [inline]
void common::saturate ( VEC3 &  v  )  [inline]
void common::saturate ( VEC2 &  v  )  [inline]
float common::ScalarTripleProduct ( const VEC3 &  u,
const VEC3 &  v,
const VEC3 &  w 
) [inline]

Oblicza: u cross v dot w.

void common::swap ( VEC4 &  v1,
VEC4 &  v2 
) [inline]
void common::swap ( VEC3 &  v1,
VEC3 &  v2 
) [inline]
void common::swap ( VEC2 &  v1,
VEC2 &  v2 
) [inline]
void common::Vec3ToVec4 ( VEC4 *  Out,
const VEC3 &  v 
) [inline]

Konwersja z wektora 3D na 4D dopisująca W=1.

void common::Vec4ToVec3_Div ( VEC3 *  Out,
const VEC4 &  v 
) [inline]

Konwersja z wektora 4D na 3D ze podzieleniem składowych przez W.

void common::Vec4ToVec3_Ignore ( VEC3 *  Out,
const VEC4 &  v 
) [inline]

Konwersja z wektora 4D na 3D ze zignorowaniem składowej W.

bool common::VecEqual ( const VEC4 &  v1,
const VEC4 &  v2 
) [inline]
bool common::VecEqual ( const VEC3 &  v1,
const VEC3 &  v2 
) [inline]
bool common::VecEqual ( const VEC2 &  v1,
const VEC2 &  v2 
) [inline]

Zwraca true, jeśli podane wektory/punkty są sobie mniej więcej równe.


Variable Documentation

const VEC2 common::VEC2_ONE
const VEC2 common::VEC2_ZERO
const VEC3 common::VEC3_ONE
const VEC3 common::VEC3_ZERO
const VEC4 common::VEC4_ONE
const VEC4 common::VEC4_ZERO

Generated on Wed Dec 16 20:44:53 2009 for CommonLib by  doxygen 1.6.1