Prosta 2D
[Math Module]

Classes

struct  common::LINE2D
 Prosta 2D. More...

Functions

LINE2D common::operator* (float s, const LINE2D &p)
LINE2D common::operator/ (float s, const LINE2D &p)
VEC2 & common::GetLineNormal (LINE2D &line)
 Daje dostęp do wektora normalnego podanej prostej, czyli jej składowych a, b zrzutowanych na VEC2.
const VEC2 & common::GetLineNormal (const LINE2D &line)
 Zwraca wektor normalny prostej, czyli jej składowe a, b zrzutowane na VEC2.
bool common::LineEqual (const LINE2D &p1, const LINE2D &p2)
 Zwraca true, jeśli podane proste są sobie mniej więcej równe.
void common::swap (LINE2D &p1, LINE2D &p2)
void common::PointsToLine (LINE2D *Out, const VEC2 &p1, const VEC2 &p2)
 Tworzy prostą na podstwie dwóch punktów.
void common::PointNormalToLine (LINE2D *Out, const VEC2 &Point, const VEC2 &Normal)
 Tworzy prostą z wektora normalnego i punktu leżącego na tej prostej.
bool common::LinesParallel (const LINE2D &L1, const LINE2D &L2)
 Zwraca true, jeśli podane proste są równoległe.
bool common::LinesPerpedicular (const LINE2D &L1, const LINE2D &L2)
 Zwraca true, jeśli podane proste są prostopadłe.
float common::Dot (const LINE2D &L1, const LINE2D &L2)
 Zwraca dot z wektorów normalnych dwóch prostych.
float common::LineDistance (const LINE2D &L1, const LINE2D &L2)
 Zwraca signed odległość dwóch prostych na płaszczyźnie.
bool common::LinesIntersection (VEC2 *Out, const LINE2D &L1, const LINE2D &L2)
 Oblicza punkt przeciecia dwóch prostych.
bool common::PointsColinear (const VEC2 &p1, const VEC2 &p2, const VEC2 &p3)
 Zwraca true, jeśli podane trzy punkty leżą na jednej prostej.
void common::Mul (LINE2D *Out, const LINE2D &p, float s)
 Skalowanie prostej.
void common::Div (LINE2D *Out, const LINE2D &p, float s)
float common::Dot (const LINE2D &p, const VEC3 &pt)
 Iloczyn skalarny płaszczyzny i punktu we współrzędnych jednorodnych 2D.
float common::DotCoord (const LINE2D &p, const VEC2 &pt)
 Iloczyn skalarny prostej 2D z punktem 2D: a*x + b*y + c*1.
float common::DotNormal (const LINE2D &p, const VEC2 &v)
 Iloczyn skalarny prostej 2D z wektorem 2D: a*x + b*y + c*z + d*0.
void common::Normalize (LINE2D *Out, const LINE2D &p)
 Normalizacja prostej 2D.
void common::Normalize (LINE2D *p)
 Normalizacja prostej w miejscu.
void common::GetRectLine (LINE2D *out, const RECTF &rect, uint index)
 Returns line of one of 4 possible box edges.

Variables

const LINE2D common::LINE2D_ZERO
const LINE2D common::LINE2D_POSITIVE_X
const LINE2D common::LINE2D_NEGATIVE_X
const LINE2D common::LINE2D_POSITIVE_Y
const LINE2D common::LINE2D_NEGATIVE_Y

Detailed Description


Function Documentation

void common::Div ( LINE2D *  Out,
const LINE2D &  p,
float  s 
) [inline]
float common::Dot ( const LINE2D &  p,
const VEC3 &  pt 
) [inline]

Iloczyn skalarny płaszczyzny i punktu we współrzędnych jednorodnych 2D.

Można użyć do wyznaczenia czy tak zapisany punkt leży na płaszczyźnie, po której stronie i jak daleko.

float common::Dot ( const LINE2D &  L1,
const LINE2D &  L2 
) [inline]

Zwraca dot z wektorów normalnych dwóch prostych.

Jeśli te proste są znormalizowane, wynikiem jest cos kąta między tymi prostymi.

float common::DotCoord ( const LINE2D &  p,
const VEC2 &  pt 
) [inline]

Iloczyn skalarny prostej 2D z punktem 2D: a*x + b*y + c*1.

Można użyć do wyznaczenia czy punkt leży na prostej 2D, po której stronie i jak daleko.

float common::DotNormal ( const LINE2D &  p,
const VEC2 &  v 
) [inline]

Iloczyn skalarny prostej 2D z wektorem 2D: a*x + b*y + c*z + d*0.

Przydatny do wyznaczania kąta między prostą 2D (jej normalną) a wektorem.

const VEC2& common::GetLineNormal ( const LINE2D &  line  )  [inline]

Zwraca wektor normalny prostej, czyli jej składowe a, b zrzutowane na VEC2.

VEC2& common::GetLineNormal ( LINE2D &  line  )  [inline]

Daje dostęp do wektora normalnego podanej prostej, czyli jej składowych a, b zrzutowanych na VEC2.

void common::GetRectLine ( LINE2D *  out,
const RECTF &  rect,
uint  index 
)

Returns line of one of 4 possible box edges.

Face order is: -X, +X, -Y, +Y. Returned line is normalized and points to the outside.

float common::LineDistance ( const LINE2D &  L1,
const LINE2D &  L2 
) [inline]

Zwraca signed odległość dwóch prostych na płaszczyźnie.

Proste muszą być znormalizowane.

bool common::LineEqual ( const LINE2D &  p1,
const LINE2D &  p2 
) [inline]

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

bool common::LinesIntersection ( VEC2 *  Out,
const LINE2D &  L1,
const LINE2D &  L2 
)

Oblicza punkt przeciecia dwóch prostych.

Jeśli proste nie przecinają się, tylko są równoległe lub się pokrywaną, to nie oblicza tylko zwraca false.

bool common::LinesParallel ( const LINE2D &  L1,
const LINE2D &  L2 
) [inline]

Zwraca true, jeśli podane proste są równoległe.

bool common::LinesPerpedicular ( const LINE2D &  L1,
const LINE2D &  L2 
) [inline]

Zwraca true, jeśli podane proste są prostopadłe.

void common::Mul ( LINE2D *  Out,
const LINE2D &  p,
float  s 
) [inline]

Skalowanie prostej.

void common::Normalize ( LINE2D *  p  )  [inline]

Normalizacja prostej w miejscu.

void common::Normalize ( LINE2D *  Out,
const LINE2D &  p 
) [inline]

Normalizacja prostej 2D.

Po tej operacji wektor normalny prostej jest znormalizowany. Prosta pozostaje położona i zorientowana tam gdzie była.

LINE2D common::operator* ( float  s,
const LINE2D &  p 
) [inline]
LINE2D common::operator/ ( float  s,
const LINE2D &  p 
) [inline]
void common::PointNormalToLine ( LINE2D *  Out,
const VEC2 &  Point,
const VEC2 &  Normal 
) [inline]

Tworzy prostą z wektora normalnego i punktu leżącego na tej prostej.

bool common::PointsColinear ( const VEC2 &  p1,
const VEC2 &  p2,
const VEC2 &  p3 
)

Zwraca true, jeśli podane trzy punkty leżą na jednej prostej.

void common::PointsToLine ( LINE2D *  Out,
const VEC2 &  p1,
const VEC2 &  p2 
) [inline]

Tworzy prostą na podstwie dwóch punktów.

Wynikowa prosta nie jest znormalizowana.

void common::swap ( LINE2D &  p1,
LINE2D &  p2 
) [inline]

Variable Documentation

const LINE2D common::LINE2D_ZERO

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