common Namespace Reference

Główna przestrzeń nazw biblioteki CommonLib. More...

Namespaces

namespace  tokdoc

Classes

class  Singleton
 Wzorzec projektowy Singleton - klasa bazowa. More...
class  DeletePolicy
 Polityka zwalaniania inteligentnych wskaźników, która robi: delete p;. More...
class  DeleteArrayPolicy
 Polityka zwalaniania inteligentnych wskaźników, która robi: delete [] p;. More...
class  ReleasePolicy
 Polityka zwalaniania inteligentnych wskaźników, która robi: p->Release();. More...
class  scoped_ptr
 Inteligentny wskaźnik z wyłącznym prawem własności. More...
class  shared_ptr
 Inteligentny wskaźnik ze zliczaniem referencji. More...
class  CloseHandlePolicy
 Polityka zwalniania uchwytu - robi: CloseHandle(p);. More...
class  DeleteObjectPolicy
 Polityka zwalniania uchwytu - robi: DeleteObject(p);. More...
class  scoped_handle
 Inteligentny uchwyt - wyłączna własność. More...
class  shared_handle
 Inteligentny uchwyt ze zliczaniem referencji. More...
class  RoundInterpolator
 Interpoluje daną wielkość między wartościami kluczowymi dla parametru w zakresie 0..1 z zawinięciem. More...
class  StringNaturalCompare
 Klasa do porównywania w porządku naturalnym. More...
class  StringNaturalLess
 Predykat do sortowania łańcuchów w porządku naturalnym. More...
class  StringNaturalGreater
 Predykat do sortowania łańcuchów w porządku naturalnym. More...
class  StrLessI
 Predykat do porównywania łańcuchów bez rozróżniania wielkości liter. More...
class  StrGreaterI
 Predykat do porównywania łańcuchów bez rozróżniania wielkości liter. More...
class  RandomGenerator
 Generator liczb pseudolosowych. More...
class  MersenneTwister
 Wolniejszy w inicjalizacji, generowaniu i większy, ale za to tużo lepszy generator liczb pseudolosowych. More...
class  UniqueGenerator
 Generator unikatowych identyfikatorów. More...
class  CmdLineParser
 Parser wiersza poleceń. More...
class  CommonGUID
 Reprezentuje 128-bitowy globalnie unikatowy identyfikator, zgodnie z RFC 4122. More...
class  Format_pimpl
class  Format
 Klasa do wygodnego składania stringów z różnych informacji. More...
class  BstrString
 Wrapper for Unicode string of type BSTR used in Windows OLE Automation. More...
struct  DATESPAN
 Reprezentuje odcinek czasu. More...
struct  TIMESPAN
 Reprezentuje odcinek czasu. More...
struct  TMSTRUCT
 Reprezentuje moment czasu. More...
struct  DATETIME
 Reprezentuje moment czasu. More...
struct  GameTime
 Reprezentuje bądź to bezwzględny czas systemowy, bądź też odcinek (róznicę) czasu, jeśli odjęte dwa GameTime. More...
class  Error
 Klasa bazowa błędów. More...
class  ErrnoError
 Wyjątek utworzony z systemowego błędu errno. More...
class  SDLError
 Wyjątek z błędem pobranym z biblioteki SDL za pomocą SDLError. More...
class  OpenGLError
 Wyjątek z błędem pobranym z biblioteki OpenGL za pomocą OpenGLError. More...
class  FmodError
 Wyjątek z błędem pobranym z biblioteki dźwiękowej FMOD. More...
class  Win32Error
 Tworzy wyjątek na podstawie błędu WinAPI pobieranego za pomocą GetLastError. More...
class  DirectXError
 Tworzy wyjątek na podstawie błędu biblioteki Direct3D. More...
class  WinSockError
 Tworzy wyjątek na podstawie błędu biblioteki WinSock. More...
class  DevILError
 Tworzy wyjątek na podstawie błędu biblioteki graficznej DevIL. More...
class  AVIFileError
 Tworzy wyjątek na podstawie błędu biblioteki AviFile (część WinAPI). More...
class  FileStream
 Strumień plikowy. More...
class  DirLister
 Klasa do listowania zawartości katalogu. More...
class  FreeList
 Alokator posiadający stałą pulę pamięci. More...
class  DynamicFreeList
 Alokator z samorozszerzeającą się pulą pamięci. More...
class  Logger
 Logger - klasa główna systemu logującego. More...
class  ILog
 Abstrakcyjna kasa bazowa wszelkich logów. More...
class  TextFileLog
 Log do pliku TXT. More...
class  HtmlFileLog
 Log do pliku HTML. More...
class  OstreamLog
 Log zapisujący do strumienia wyjściowego biblioteki standardowej C++ - std::ostream. More...
struct  POINT_
 Punkt 2D z liczb całkowitych. More...
struct  VEC2
 Wektor floatów 2D. More...
struct  VEC3
 Wektor floatów 3D. More...
struct  VEC4
 Wektor floatów 4D. More...
struct  RECTI
 Prostokąt z liczb całkowitych. More...
struct  RECTF
 Prostokąt z 4 floatów. More...
struct  BOX
 AABB z 2 punktów 3D. More...
struct  OBB
 OBB - Oriented Bounding Box - prostopadłościan o dowolnej orientacji. More...
struct  RECT3D
 Płaski prostokąt, dowolnie zorientowany w przestrzeni 3D. More...
struct  COLOR
 Kolor w formacie A8R8G8B8. More...
struct  COLORF
 Kolor z 4 liczb typu float - R, G, B, A. More...
struct  PLANE
 Płaszczyzna. More...
struct  LINE2D
 Prosta 2D. More...
struct  MATRIX
 Macierz 4 x 4. More...
struct  MATRIX33
 Macierz 3 x 3. More...
struct  QUATERNION
 Kwaternion. More...
struct  AFFINE2D
 Affine transform of 2D point/vector. More...
struct  FRUSTUM_PLANES
 Frustum opisany 6 płaszczyznami z wektorami normalnymi zwróconymi do wewnątrz. More...
struct  FRUSTUM_POINTS
 Frustum zapisany jako 8 wierzchołków. More...
class  FRUSTUM_RADAR
 Frustum - reprezentacja radarowa. More...
class  SmoothCD_obj
class  CubicBezierCurveIntegral
class  RayToTriangleCalc
 Klasa, która dzięki pamiętaniu wyników pośrednich przyspiesza testowanie kolizji jednego trójkąta z wieloma promieniami. More...
class  ProfilerItem
 Pozycja danych profilera. More...
class  Profiler
 Profiler. More...
class  Profile
 Klasa, której obiekt możesz dla wygody utworzyć zamiast wywoływać Begin i End profilera. More...
class  FlatProfiler
 Class to measure duration of some code in a flat manner, without any hierarchy. More...
class  FlatProfilerSampler
 Support RIAA class to collect time sample for FlatProfiler. More...
class  Stream
 Abstrakcyjna klasa bazowa strumieni danych binarnych. More...
class  SeekableStream
 Abstrakcyjna klasa bazowa strumieni pozwalających na odczytywanie rozmiaru i zmianę pozycji. More...
class  NullStream
 Strumień pusty - nic nie robi. More...
class  CharWriter
 Nakładka przyspieszająca zapisująca do strumienia pojedyncze znaki i inne rzeczy. More...
class  WCharWriter
 Nakładka przyspieszająca zapisująca do strumienia pojedyncze znaki Unicode. More...
class  CharReader
 Nakładka przyspieszająca odczytująca ze strumienia pojedyncze znaki i inne rzeczy. More...
class  WCharReader
 Nakładka przyspieszająca odczytująca ze strumienia pojedyncze znaki Unicode. More...
class  MemoryStream
 Strumień pamięci statycznej. More...
class  VectorStream
 Strumień pamięci, ale dynamicznej. More...
class  StringStream
 Strumień oparty na łańcuchu std::string. More...
class  OverlayStream
 Abstrakcyjna klasa bazowa nakładek na strumienie. More...
class  CounterOverlayStream
 Nakładka na strumień zliczająca ilość zapisanych i odczytanych bajtów. More...
class  LimitOverlayStream
 Nakładka na strumień ograniczająca liczbę odczytywanych i zapisywanych bajtów. More...
class  BufferingStream
class  MultiWriterStream
 Zapisuje zapisywane dane do wielu podłączonych do niego strumieni na raz. More...
class  Hash_Calc
 Klasa obliczająca hash 32-bitowy z kolejno podawanych bloków danych. More...
class  CRC32_Calc
 Klasa obliczająca sumę CRC32 z kolejno podawanych bloków danych. More...
struct  MD5_SUM
 Suma MD5. More...
class  MD5_Calc
 Klasa obliczająca sumę MD5 z kolejno podawanych bloków danych. More...
class  XorCoder
 Koduje lub dekoduje zapisywane/odczytywane bajty XOR podany bajt lub ciąg bajtów. More...
class  BinEncoder
 Koduje strumień binarnych danych wejściowych na ciąg złożony ze znaków '0' i '1' (po 8 na każdy bajt). More...
class  BinDecoder
 Dekoduje ciąg znaków wejściowych zapisanych binarnie (znakami '0' i '1') na dane binarne. More...
class  HexEncoder
 Koduje strumień binarnych danych wejściowych na zapis szesnastkowy (po 2 znaki na każdy bajt). More...
class  HexDecoder
 Dekoduje ciąg znaków wejściowych zapisanych szesnastkowo na dane binarne. More...
class  Base64Encoder
 Koduje strumień binarnych danych wejściowych na ciąg znaków base64. More...
class  Base64Decoder
 Dekoduje ciąg znaków wejściowych zapisanych w standardzie base64 na dane binarne. More...
class  RingBuffer
 Bufor kołowy. More...
class  Thread
 Klasa bazowa wątku. More...
class  Mutex
 Muteks. More...
class  MutexLock
 Klasa pomagająca blokować muteks. More...
class  Semaphore
 Semafor zliczający. More...
class  Cond
 Zmienna warunkowa. More...
class  Barrier
 Bariera. More...
class  Event
 Zdarzenie. More...
class  RWLock
class  ReadLock
class  WriteLock
class  TokenizerError
 Klasa błędu dla tokenizera. More...
class  Tokenizer
 Tokenizer. More...
class  TokenWriter
class  ZlibError
 Klasa wyjątku dla błędu zgłoszonego przez bibliotekę zlib. More...
class  ZlibCompressionStream
 Strumień do zapisu, który kompresuje dane w formacie zlib. More...
class  GzipCompressionStream
 Strumień do zapisu, który kompresuje w formacie gzip dołączając nagłówek gzip z podanymi parametrami. More...
class  ZlibDecompressionStream
 Strumień do odczytu dekompresujący dane w formacie Zlib. More...
class  GzipDecompressionStream
 Strumień do odczytu, który dekompresuje dane w formacie gzip odczytując też nagłówek. More...
class  GzipFileStream
 Obsługa pliku w formacie gzip (zalecane rozszerzenie ".gz"). More...

Enumerations

enum  ORIENTATION { O_NONE, O_VERT, O_HORIZ }
 

Orientacja, czyli ułożenie - pionowa lub pozioma.

More...
enum  EOLMODE { EOL_NONE, EOL_CRLF, EOL_LF, EOL_CR }
 

Rodzaje znaków końca wiersza.

More...
enum  CHARSET {
  CHARSET_NONE = 0, CHARSET_WINDOWS, CHARSET_ISO, CHARSET_IBM,
  CHARSET_UTF8
}
 

Strona kodowa polskich znakow.

More...
enum  WEEKDAY {
  SUN, MON, TUE, WED,
  THU, FRI, SAT, INV_WEEKDAY
}
 

Dzień tygodnia.

More...
enum  MONTH {
  JAN, FEB, MAR, APR,
  MAY, JUN, JUL, AUG,
  SEP, OCT, NOV, DEC,
  INV_MONTH
}
 

Miesiąc roku.

More...
enum  NAME_FORM {
  NAME_SHORT = 0x00, NAME_LONG = 0x01, NAME_LOWERCASE = 0x00, NAME_FIRST_UPPERCASE = 0x10,
  NAME_UPPERCASE = 0x20, NAME_SHORT_LOWERCASE = 0x00, NAME_SHORT_FIRST_UPPERCASE = 0x10, NAME_SHORT_UPPERCASE = 0x20,
  NAME_LONG_LOWERCASE = 0x01, NAME_LONG_FIRST_UPPERCASE = 0x11, NAME_LONG_UPPERCASE = 0x21
}
 

Flagi bitowe - należy połączyć razem flagę SHORT/LONG z flagą LOWERCASE/FIRST_UPPERCASE/UPPERCASE lub użyć jednej z już połączonych.

More...
enum  FILE_ITEM_TYPE { IT_NONE, IT_DIR, IT_FILE }
 

Rodzaj elementu systemu plików.

More...
enum  FILE_MODE {
  FM_WRITE, FM_WRITE_PLUS, FM_READ, FM_READ_PLUS,
  FM_APPEND, FM_APPEND_PLUS
}
 

Tryb otwarcia pliku.

More...
enum  FILE_ENCODING {
  FILE_ENCODING_UTF16_LE = 1, FILE_ENCODING_UTF8 = 2, FILE_ENCODING_ANSI = 3, FILE_ENCODING_FORCE_BOM = 0x00010000,
  FILE_ENCODING_NO_BOM = 0x00020000, FILE_ENCODING_AUTODETECT = 0x00040000
}
 

Kodowanie pliku tekstowego.

More...
enum  LOG_FILE_MODE { FILE_MODE_NORMAL, FILE_MODE_FLUSH, FILE_MODE_REOPEN }
 

Tryby, w jakich może pracować logger plikowy.

More...
enum  PROFILER_UNITS { PROFILER_UNITS_MILLISECONDS, PROFILER_UNITS_SECONDS }
enum  DECODE_TOLERANCE { DECODE_TOLERANCE_NONE, DECODE_TOLERANCE_WHITESPACE, DECODE_TOLERANCE_ALL }
 

Tolerancja błędów podczas dekodowania danych zapisanych tekstowo.

More...
enum  GZIP_FILE_MODE { GZFM_WRITE, GZFM_READ }
 

Tryb otwarcia pliku GZip.

More...

Functions

template<typename _CountofType , size_t _SizeOfArray>
char(* __countof_helper (_CountofType(&_Array)[_SizeOfArray]))[_SizeOfArray]
template<typename T >
T ** new_2d (size_t cx, size_t cy)
 Alokuje nową tablicę dynamiczną 2D.
template<typename T >
void delete_2d (T **a, size_t cx)
 Zwalnia tablicę dynamiczną 2D.
void strcpy0 (tchar *dest, const tstring &src)
 Kopiuje string do char* łącznie ze znakami '\0' (czego nie zapewnia strcpy).
template<class Iterator >
void InsertionSort (Iterator b, Iterator e)
 Algorytm jak te z STL - sortowanie przez wstawianie.
template<class Iterator , typename Compare >
void InsertionSort (Iterator b, Iterator e, Compare Comp)
 Algorytm jak te z STL - sortowanie przez wstawianie, z własnym komparatorem.
template<typename IterT , typename KeyT , typename CmpT >
IterT FirstNotLessIndex (IterT beg, IterT end, const KeyT &key, CmpT cmp)
template<typename IterT , typename KeyT , typename CmpT >
IterT BinarySearch (IterT beg, IterT end, const KeyT &key, CmpT cmp)
 An STL-compatible algorithm that performs binary search in sorted container using random-access iterators and return iterator to found element.
void SwapEndian16 (void *p)
 Swaps endianess of a 2-byte value.
void SwapEndian32 (void *p)
 Swaps endianess of a 4-byte value.
void SwapEndian64 (void *p)
 Swaps endianess of a 8-byte value.
void SwapEndian16_Array (void *p, uint count)
void SwapEndian32_Array (void *p, uint count)
void SwapEndian64_Array (void *p, uint count)
void SwapEndian16_Data (void *p, uint count, int stepBytes)
void SwapEndian32_Data (void *p, uint count, int stepBytes)
void SwapEndian64_Data (void *p, uint count, int stepBytes)
void SwapEndian (bool &v)
void SwapEndian (uint1 &v)
void SwapEndian (int1 &v)
void SwapEndian (uint2 &v)
void SwapEndian (int2 &v)
void SwapEndian (uint4 &v)
void SwapEndian (int4 &v)
void SwapEndian (uint8 &v)
void SwapEndian (int8 &v)
void SwapEndian (float &v)
void SwapEndian (double &v)
void Wait (uint4 Miliseconds)
 Zatrzymuje bieżący wątek na podaną liczbę milisekund.
template<typename T >
int UniversalCmp (const T &a, const T &b)
template<typename T , typename PolicyT >
void swap (scoped_ptr< T, PolicyT > &a, scoped_ptr< T, PolicyT > &b)
template<typename T , typename PolicyT >
void swap (shared_ptr< T, PolicyT > &a, shared_ptr< T, PolicyT > &b)
template<typename T , typename PolicyT >
void swap (scoped_handle< T, PolicyT > &a, scoped_handle< T, PolicyT > &b)
template<typename T , typename PolicyT >
void swap (shared_handle< T, PolicyT > &a, shared_handle< T, PolicyT > &b)
bool is_finite (float x)
 Zwraca true, jeśli liczba jest niezwyczajna (INF lub NaN).
bool is_finite (double x)
 Zwraca true, jeśli liczba jest niezwyczajna (INF lub NaN).
bool is_nan (float x)
 Zwraca true, jeśli liczba jest NaN.
bool is_nan (double x)
 Zwraca true, jeśli liczba jest NaN.
template<typename T >
safe_add (T a, T b)
 Dodaje dwie liczby z ograniczeniem zakresu zamiast zawinięcia przy przepełnieniu.
template<typename T >
safe_sub (T a, T b)
 Odejmuje dwie liczby z ograniczeniem zakresu zamiast zawinięcia przy przepełnieniu.
template<typename T >
safe_mul (T a, T b)
 Mnoży dwie liczby z ograniczeniem zakresu zamiast zawinięcia przy przepełnieniu.
float safe_acos (float x)
 Bezpieczny arcus cosinus, ogranicza zakres wejściowy do -1...+1 zwracając w razie przekrocznia skrajne wartości wyniku.
int round (float x)
 Zaokrągla liczbę, zamiast ją obcinać.
int round (double x)
template<typename T >
ceil_div (T x, T y)
 Dzieli 2 liczby całkowite zaokrąglając wynik w górę.
template<typename T >
AlignUp (T val, T align)
 Aligns given value up to nearest multiply of align value. For example: AlignUp(11, 8) = 16. Use types like uint4, uint8 as T.
template<typename T >
AlignDown (T val, T align)
 Aligns given value down to nearest multiply of align value. For example: AlignUp(19, 8) = 16. Use types like uint4, uint8 as T.
template<typename T >
round_div (T x, T y)
 Dzielenie z zaokrągleniem matematycznie do najbliższej.
bool around (float x, float epsilon)
 Zwraca true, jeśli liczba leży w epsilonowym otoczeniu zera.
bool around (double x, double epsilon)
bool around (float x, float y, float epsilon)
 Zwraca true, jeśli liczba leży w epsilonowym otoczeniu drugiej liczby.
bool around (double x, double y, double epsilon)
bool float_equal (float x, float y)
 Zwraca true, jeśli dwie liczby zmiennoprzecinkowe są praktycznie równe.
bool double_equal (double x, double y)
template<typename T >
sqr (T v)
 Liczy kwadrat liczby.
template<typename T >
sign (T v)
 Zwraca znak podanej liczby całkowitej, czyli -1 0 lub 1.
template<typename T >
MergeBits (T a, T b, T Mask)
 Łączy bity dwóch liczb wg maski, tzn. wybiera z A te bity, które w masce mają 0 i z B te bity, które w masce mają 1.
template<typename T >
uint CountBitsSet (T v)
 Zwraca liczbę bitów, które są jedynką.
template<>
uint CountBitsSet< uint > (unsigned v)
uint CalcParity (uint v)
 Oblicza bit parzystości liczby.
uint8 CalcParity (uint8 v)
 Oblicza bit parzystości liczby.
template<typename T >
SwapBitSequences (T v, uint SrcBit, uint DstBit, uint NumBits)
 Zamienia miejscami ciąg bitów w liczbie.
template<typename T >
bool IsPow2 (T x)
 Zwraca true, jeśli podana liczba jest potęgą dwójki.
uint4 GetBitMask (uint4 n)
 Zwraca maskę bitową z ustawionymi na jedynkę n najmłodszymi bitami.
uint log2u (uint v)
 Zwraca logarytm dwójkowy z podanej liczby całkowitej bez znaku, tzn numer najstarszego niezerowego bitu.
uint log10u (uint v)
 Zwraca logarytm dziesiętny z podanej liczby całkowitej bez znaku, tzn numer najstarszej cyfry dziesiętnej.
uint next_pow2 (uint v)
 Zwraca najmniejszą potęgę dwójki większą lub równą podanej liczbie.
uint InterleaveBits (uint a, uint b)
 Przeplata młodsze 16 bitów a (do parzystych) i młodsze 16 bitów b (do nieparzystych) do liczby wynikowej.
uint Extend10BitsBy2Zeros (uint n)
uint Extend16BitsBy1Zero (uint n)
template<typename T >
powi (T a, uint4 b)
 Liczy potęge o całkowitym wykładniku (bardzo szybko!).
template<typename T , typename Predicate >
void Sort2 (T &v1, T &v2, Predicate comp)
template<typename T >
void Sort2 (T &v1, T &v2)
template<typename T , typename Predicate >
void Sort3 (T &v1, T &v2, T &v3, Predicate comp)
template<typename T >
void Sort3 (T &v1, T &v2, T &v3)
template<typename T >
max3 (const T &a, const T &b, const T &c)
 Zwraca największą z podanych 3 liczb.
template<typename T >
min3 (const T &a, const T &b, const T &c)
 Zwraca najmniejszą z podanych 3 liczb.
template<typename T >
minmax (const T &a, const T &x, const T &b)
 Zwraca liczbę x ograniczoną do podanego zakresu od a do b.
float saturate (float x)
double saturate (double x)
float trunc (float x)
 Zwraca część całkowitą liczby wraz ze znakiem.
double trunc (double x)
float frac (float x)
 Zwraca część ułamkową liczby wraz ze znakiem.
double frac (double x)
void sincos (float angle, float *sine, float *cosine)
 Oblicza sinus i cosinus za jednym zamachem. Może być szybsze, niż liczenie osobno.
float Lerp (float x, float y, float t)
 Interpolacja liniowa 1D (t = 0..1).
void Lerp (float *out, float x, float y, float t)
float SafeLerp (float x, float y, float t)
 Interpolacja liniowa 1D (t jest ograniczane do 0..1).
float Lerp2D (float x11, float x21, float x12, float x22, float tx, float ty)
 Interpolacja liniowa 2D.
float NormalizeAngle (float angle)
 Normalizuje kąt do przedziału < 0..2PI ).
float NormalizeAngle2 (float Angle)
 Normalizuje kąt do przedziału -PI..+PI.
float DegToRad (float Angle)
 Przelicza kąt ze stopni na radiany.
float RadToDeg (float Angle)
 Przelicza kąt z radianów na stopnie.
float AngleDiff (float A, float B)
 Oblicza różnicę kątów A-B, gdzie A, B należą do: 0..2*PI.
float EaseCurve (float x)
 Krzywa wygładzona 0..1 -> 0..1: e(x) = 3*x^2 - 2*x^3.
float EaseCurve2 (float x)
float smoothstep (float min, float max, float x)
 Returns 0.0 if x <= min and 1.0 if x >= max and performs smooth Hermite interpolation between 0 and 1 when min < x < max.
void SmoothCD (float *InOutPos, float Dest, float *InOutVel, float SmoothTime, float TimeDelta)
 Funkcja wygładzająca - Critically Damped Smoothing.
void SmoothCD (float *InOutPos, float Dest, float *InOutVel, float SmoothTime, float TimeDelta, float MaxSpeed)
float Trapezoidal (float x, float a, float b, float c, float d)
 Zwraca liczbę z przedziału 0..1, zależnie od wartości x względem brzegów trapezu a, b, c, d.
float Trapezoidal (float x, float a, float b, float c, float d, float min, float max)
 Jak Trapezoidal(), ale zamiast 0..1 zwraca liczbę z przedziału min..max.
int QuadraticEquation (float a, float b, float c, float *Out_x1, float *Out_x2)
 Równanie kwadratowe a*x^2 + b*x + c = 0.
void CalcMeanAndVariance (const float Numbers[], size_t NumberCount, float *OutMean, float *OutVariance=NULL, bool VarianceBiased=true)
 Oblicza średnią i opcjonalnie wariancję ze zbioru liczb typu float.
void CalcMeanAndVariance (const void *NumberData, size_t NumberCount, int NumberStride, float *OutMean, float *OutVariance=NULL, bool VarianceBiased=true)
uint MurmurHash (const void *Data, uint DataLen, uint Seed)
 MurmurHash 2.0 - podobno bardzo dobra funkcja hashująca. Dowolne dane binarne. Niestety nie inkrementacyjna.
uint SuperFastHash (const void *DataBytes, size_t DataLen)
 Bardzo szybka funkcja hashująca dane.
uint WangMix (uint key)
 Hash of 32-bit integer number (uint to uint).
float PerlinNoise1 (float x)
float PerlinNoise2 (float x, float y)
float PerlinNoise3 (float x, float y, float z)
float BrownianNoise1 (float x, uint i, float Persistence)
float BrownianNoise2 (float x, float y, uint i, float Persistence)
float BrownianNoise3 (float x, float y, float z, uint i, float Persistence)
uint MakeDEC3 (uint x, uint y, uint z)
uint MakeDEC3 (uint x, uint y, uint z, uint w)
uint GetXFromDEC3 (uint dec3)
uint GetYFromDEC3 (uint dec3)
uint GetZFromDEC3 (uint dec3)
uint GetWFromDEC3 (uint dec3)
template<typename T >
bool CalcLinearFactors (T &outA, T &outB, float x1, float x2, const T &y1, const T &y2)
 Calculates coefficients for linear equation y = A*x + B passing through given points (x1,y1), (x2,y2).
template<typename T >
bool CalcQuadraticFactors (T &outA, T &outB, T &outC, float x1, float x2, float x3, const T &y1, const T &y2, const T &y3)
 Calculates coefficients for quadratic equation y = A*x^2 + B*x + C passing through given points (x1,y1), (x2,y2), (x3,y3).
bool CharIsAlphaNumeric (tchar ch)
 Zwraca true, jesli znak jest alfanumeryczny (litera lub cyfra) wg ustawień systemu.
bool CharIsAlpha (tchar ch)
 Zwraca true, jesli znak jest litera.
bool CharIsDigit (tchar ch)
 Zwraca true, jesli znak jest cyfrą dziesietną.
bool CharIsHexDigit (tchar ch)
 Zwraca true, jeśli znak jest cyfrą szesnastkową.
bool CharIsLower (tchar ch)
 Zwraca true, jesli znak jest mala litera.
bool CharIsUpper (tchar ch)
 Zwraca true, jesli znak jest duza litera.
bool CharIsWhitespace (char ch)
 Zwraca true, jesli podany znak jest odstepem, czyli bialym znakiem wg systemu.
bool CharIsWhitespace (wchar_t ch)
bool CharIsWhitespace_f (tchar ch)
 Zwraca true, jesli podany znak jest odstepem, czyli bialym znakiem.
size_t StrStrI (const tstring &Str, const tstring &SubStr, size_t Count=0xffffffff)
 Szuka w łańcuchu Str podłańcucha SubStr, bez rozróżniania wielkości liter.
const tcharStrStrI (const tchar *Str, const tchar *SubStr, size_t Count=0xffffffff)
void ReverseString (tstring *s)
 Odwraca łańcuch w miejscu.
void Trim (tstring *s)
 Obcina białe znaki z początku i końca łańcucha w miejscu.
void Trim (tstring *Out, const tstring &s)
 Obcina białe znaki z początku i końca łańcucha.
tchar CharToLower (tchar ch)
 Jeśli to litera, konwertuje na małą.
tchar CharToUpper (tchar ch)
 Jeśli to litera, konwertuje na dużą.
void LowerCase (tstring *s)
 Konwertuje łańcuch na małe litery.
void LowerCase (tstring *Out, const tstring &s)
void UpperCase (tstring *s)
 Konwertuje łańcuch na duże.
void UpperCase (tstring *Out, const tstring &s)
bool Charset_WindowsSpecialChar (char a_c, string *a_s)
 Zmienia znak specjalny kodowania Windows-1250 na odpowiednik normalny.
char Charset_Convert_Char (char a_c, CHARSET a_Charset1, CHARSET a_Charset2)
 Zmienia znak z jednej strony kodowej na druga lub pozostawia bez zmian.
void Charset_Convert (string *out, const string &s, CHARSET Charset1, CHARSET Charset2)
 Konwertuje lancuch na podana strone kodowa.
void Rot13 (tstring *InOut)
 Szyforowanie/deszyfrowanie algorytmem ROT13.
void Rot13 (tstring *Out, const tstring &In)
void EolModeToStr (tstring *Out, EOLMODE EolMode)
 Rodzaj znaku końca wiersza na odpowiadający mu znak (lub znaki).
void Replace (tstring *result, const tstring &s, const tstring &s1, const tstring &s2)
 Zamienia w łańcuchu wszystkie wystąpienia jedego podłańcucha na drugi.
void Replace (tstring *Out, const tstring &s, tchar Ch1, tchar Ch2)
 Zmienia w łańcuchu wszystkie wystąpienia znaku Ch1 na Ch2.
void Replace (tstring *InOut, tchar Ch1, tchar Ch2)
 Zmienia w łańcuchu wszystkie wystąpienia znaku Ch1 na Ch2 w miejscu.
void ReplaceEOL (tstring *result, const tstring &s, EOLMODE EOLMode)
 Zmienia wszelkiego rodzaju znaki końca wiersza w poddanym tekście na takie same - wg podanego trybu.
void NormalizeWhitespace (tstring *result, const tstring &s)
 Zamienia wszystkie odstępy na pojedyncze spacje.
void DuplicateString (tstring *Out, const tstring &s, size_t count)
 Zwraca łańcuch powtórzony podaną liczbę razy.
void RightStr (tstring *Out, const tstring &s, size_t Length)
 Zwraca podłańcuch z prawej strony.
size_t SubstringCount (const tstring &str, const tstring &substr)
 Zwraca liczbę wystąpień podłańcucha.
int StrCmpI (const tstring &s1, const tstring &s2, size_t Count=0xffffffff)
 Porównuje dwa łańcuchy bez rozróżniania wielkości liter.
int StrCmpI (const tchar *s1, const tchar *s2, size_t Count=0xffffffff)
int SubStrCmp (const tstring &s1, size_t off1, const tstring &s2, size_t off2, size_t length)
 Zwraca true, jeśli podfragmenty podanych łańcuchów są identyczne.
int SubStrCmpI (const tstring &s1, size_t off1, const tstring &s2, size_t off2, size_t length)
 Zwraca true, jeśli podfragmenty podanych łańcuchów są identyczne nie rozróżniając wielkości liter.
bool ContainsEOL (const tstring &s)
 Czy łańcuch zawiera znaki końca wiersza?
bool StrBegins (const tstring &s, const tstring &sub, size_t Begin=0)
 Zwraca true, jesli podany lancuch zaczyna sie od podanego podlancucha.
bool StrBeginsI (const tstring &s, const tstring &sub, size_t Begin=0)
 Zwraca true, jesli podany lancuch zaczyna sie od podanego podlancucha, bez rozrozniania wielkosci liter.
bool StrEnds (const tstring &s, const tstring &Sub)
 Zwraca true, jeśli podany łańcuch kończy się podanym podłańcuchem.
bool StrEndsI (const tstring &s, const tstring &Sub)
 Zwraca true, jeśli podany łańcuch kończy się podanym podłańcuchem, bez rozrozniania wielkosci liter.
bool Split (const tstring &s, const tstring &delimiter, tstring *out, size_t *index)
 Kolejne wywołania rozdzielają łańcuch na kolejne elementy oddzielone w jego treści określonym podłańcuchem.
bool SplitFirstOf (const tstring &s, const tstring &delimiters, tstring *out, size_t *index)
 Działa jak Split(), ale łańcuchem rozdzielającym jest każdy dowolny znak z delimiters.
void Split (STRING_VECTOR *Out, const tstring &s, const tstring &Delimiter)
 Dzieli łańcuch na części i zwraca je jako wektor.
bool SplitEOL (const tstring &s, tstring *out, size_t *index)
 Kolejne wywołania rozdzielają łańcuch na kolejne elementy oddzielone w jego treści którąś z sekwencji uznawaną za koniec wiersza (czyli na kolejne wiersze).
bool SplitQuery (const tstring &s, tstring *out, size_t *index)
 Kolejne wywołania rozdzielają łańcuch na elementy oddzielone odstępami uwzględniając ciągi obięte w cudzysłowy "" jako całość.
bool ValidateWildcard (const tstring &Mask, const tstring &S, bool CaseSensitive=true, size_t MaskOff=0, size_t SOff=0)
 Sprawdza, czy podany łancuch jest zgodny z podaną maską mogącą zawierać znaki wieloznaczne.
float FineSearch (const tstring &SubStr, const tstring &Str)
 Zwraca zmiennoprzecinkową trafność wyszukiwania stringa SubStr w stringu Str.
size_t LevenshteinDistance (const tstring &s1, const tstring &s2)
 Odległość edycyjna między dwoma łańcuchami.
size_t LevenshteinDistanceI (const tstring &s1, const tstring &s2)
 Odległość edycyjna między dwoma łańcuchami bez uwzględniania wielkości liter.
bool StrIsEmpty (const char *s)
 Zwraca true, jeśli podany łańcuch jest NULL lub zawiera 0 znaków (od razu ma kończące '').
void ClearStr (char *s)
 Czyści łańcuch wpisując samo kończące ''.
bool StrIsEmpty (const wchar_t *s)
void ClearStr (wchar_t *s)
const tcharstrnistr (const tchar *str, const tchar *substr, size_t count=MAXUINT4)
 Szuka w łańcuchu str podłańcucha substr, bez rozróżniania wielkości liter.
bool StrBegins (const tchar *str, const tchar *substr, bool caseSensitive)
bool StrEnds (const tchar *str, const tchar *substr, bool caseSensitive)
 Zwraca true, jeśli łańcuch str kończy się na łańcuch substr.
void StrErase (tchar *str, size_t off, size_t count=MAXUINT4)
 Usuwa podany zakres znaków z łańcucha. Jest bezpieczny na przekroczenie zakresu.
void StrInsert (tchar *str, size_t strCapacity, const tchar *newStr, size_t off, size_t count)
 Wstawia podany podłańcuch do łańcucha w podane miejsce.
void StrInsert (tchar *str, size_t strCapacity, const tchar *newStr, size_t off)
void Trim (tchar *s)
 Obcina z początku i końca stringa białe znaki (w miejscu).
unsigned StrReplace (tchar *str, tchar from, tchar to)
 Replaces in string src all "from" chars to "to" chars. Returns number of occurences.
bool ConvertUnicodeToChars (string *Out, const wstring &S, unsigned CodePage)
bool ConvertUnicodeToChars (string *Out, const wchar_t *S, unsigned NumChars, unsigned CodePage)
bool ConvertCharsToUnicode (wstring *Out, const string &S, unsigned CodePage)
bool ConvertCharsToUnicode (wstring *Out, const char *S, unsigned NumChars, unsigned CodePage)
bool UnicodeToChars_CalcBufLen (size_t &outLen, const wchar_t *wcs, unsigned CodePage)
 Oblicza liczbę znaków (nie bajtów!) potrzebną przy konwersji między Unicode i ANSI.
bool UnicodeToChars_CalcBufLen (size_t &outLen, const wchar_t *wcs, size_t wcsLen, unsigned CodePage)
bool CharsToUnicode_CalcBufLen (size_t &outLen, const char *str, unsigned CodePage)
bool CharsToUnicode_CalcBufLen (size_t &outLen, const char *str, size_t strLen, unsigned CodePage)
bool ConvertUnicodeToChars (char *outBuf, size_t bufLen, const wchar_t *wcs, unsigned CodePage)
 Konwertuje łańcuch między Unicode i ANSI. Nie dołącza kończącego zera.
bool ConvertUnicodeToChars (char *outBuf, size_t bufLen, const wchar_t *wcs, size_t wcsLen, unsigned CodePage)
bool ConvertCharsToUnicode (wchar_t *outBuf, size_t bufLen, const char *str, unsigned CodePage)
bool ConvertCharsToUnicode (wchar_t *outBuf, size_t bufLen, const char *str, size_t strLen, unsigned CodePage)
bool TstringToString (string *Out, const tstring &S)
bool StringToTstring (tstring *Out, const string &S)
bool TstringToWstring (wstring *Out, const tstring &S)
bool WstringToTstring (tstring *Out, const wstring &S)
string TstringToStringR (const tstring &S)
tstring StringToTstringR (const string &S)
wstring TstringToWstring (const tstring &S)
tstring WstringToTstring (const wstring &S)
bool PathIsAbsolute (const tstring &s)
 Zwraca true, jeśli ścieżka jest bezwzględna.
void IncludeTrailingPathDelimiter (tstring *InOutPath)
 Dodaje do sciezki konczacy '/' lub '\', jesli go nie ma - na miejscu.
void IncludeTrailingPathDelimiter (tstring *OutPath, const tstring &InPath)
 Dodaje do sciezki konczacy '/' lub '\', jesli go nie ma - do nowego stringa.
void ExcludeTrailingPathDelimiter (tstring *InOutPath)
 Pozbawia sciezke konczacego '/' lub '\', jesli go ma - na miejscu.
void ExcludeTrailingPathDelimiter (tstring *OutPath, const tstring &InPath)
 Pozbawia sciezke konczacego '/' lub '\', jesli go ma - do nowego stringa.
void ExtractPathPrefix (tstring *OutPrefix, const tstring &s)
 Zwraca początek ścieżki, w postaci takiej jak "C:\", "\\komputer\udział\" czy "/" albo "\".
void ExtractFilePath (tstring *OutPath, const tstring &s)
 Zwraca ścieżkę do pliku bez nazwy pliku.
void ExtractFileName (tstring *OutFileName, const tstring &s)
 Zwraca samą nazwę pliku bez ścieżki.
void ExtractFileExt (tstring *OutExt, const tstring &s)
 Zwraca rozszerzenie pliku wraz z kropką.
void ChangeFileExt (tstring *Out, const tstring &FileName, const tstring &Ext)
 Zmienia w nazwie pliku rozszerzenie na nowe.
void NormalizePath (tstring *OutPath, const tstring &s)
 Pozbawia sciezke artefaktow typu ".\\" czy "..\\".
void RelativeToAbsolutePath (tstring *Out, const tstring &Base, const tstring &Path)
 Przetwarza sciezke wzgledna na bezwzgledna wzgledem okreslonej sciezki.
void AbsoluteToRelativePath (tstring *Out, const tstring &Base, const tstring &Target)
 Przetwarza sciezke bezwzgledna na wzgledna wzgledem okreslonej sciezki.
int HexDigitToNumber (char Ch)
 Zwraca liczbowy odpowiednik cyfry szesnastkowej.
int HexDigitToNumber (wchar_t Ch)
template<typename T >
void UintToStr (tstring *Out, T x, uint4 Base=10, bool UpperCase=true)
 Konwersja liczby całkowitej na łańcuch.
template<typename T >
void IntToStr (tstring *Out, T x, uint4 Base=10, bool UpperCase=true)
template<typename T >
bool _CharToDigit (T *Digit, tchar ch)
 Konwertuje znak cyfry w dowolnym systemie ('0'..'9', 'A'..'Z', 'a'..'z') na liczbę, zwraca false jeśli błąd.
template<typename T >
int StrToUint (T *Number, const tstring &str, unsigned Base=10)
 Konwersja łańcucha na liczbę całkowitą.
template<typename T >
int StrToInt (T *Number, const tstring &str, unsigned Base=10)
template<typename T >
tstring IntToStrR (T x, int base=10, bool UpperCase=true)
template<typename T >
tstring UintToStrR (T x, int base=10, bool UpperCase=true)
void Size_tToStr (tstring *Out, size_t x, size_t Base=10, bool UpperCase=true)
tstring Size_tToStrR (size_t x, size_t Base=10, bool UpperCase=true)
template<typename T >
void UintToStr2 (tstring *Out, T x, unsigned Length, int base=10)
 Konwersja liczby na łańcuch o minimalnej podanej długości.
template<typename T >
void IntToStr2 (tstring *Out, T x, unsigned Length, int base=10)
template<typename T >
tstring UintToStr2R (T x, unsigned Length, int Base=10)
template<typename T >
tstring IntToStr2R (T x, unsigned Length, int Base=10)
void CharToStr (tstring *Out, tchar ch)
 Konwertuje znak na łańcuch, jako że automatycznie to się niestety nie odbywa.
tstring CharToStrR (tchar ch)
void DoubleToStr (tstring *Out, double x, char Mode= 'g', int Precision=6)
 Konwersja liczb zmiennoprzecinkowych na łańcuch.
void FloatToStr (tstring *Out, float x, char Mode= 'g', int Precision=6)
tstring DoubleToStrR (double x, char Mode= 'g', int Precision=6)
tstring FloatToStrR (float x, char Mode= 'g', int Precision=6)
int StrToDouble (double *out, const tstring &s)
 Konwersja łańcucha na liczbę zmiennoprzecinkową.
int StrToFloat (float *out, const tstring &s)
void BoolToStr (tstring *Out, bool x, char mode= 'f')
 Konwertuje wartość logiczną na łańcuch.
tstring BoolToStrR (bool x, char mode= 'f')
bool StrToBool (bool *result, const tstring &s)
 Konwertuje łańcuch na wartość logiczną.
void PtrToStr (tstring *Out, const void *p)
 Konwertuje wskaźnik na łańcuch 8 znaków zapisany szesnastkowo.
tstring PtrToStrR (const void *p)
template<typename T >
void SizeToStr (tstring *str, T size, bool Space, int Precision)
 Liczba bajtów na łańcuch z rozmiarem np. "1 B", "10.5 kB".
template<typename T >
tstring SizeToStrR (T Size, bool Space, int Precision)
float WaveformSine (float x, float Base, float Amplitude, float Frequency, float Phase)
 Standard sine wave which smoothly changes from low to high and back again.
float WaveformSine (float x)
float WaveformTriangle (float x, float Base, float Amplitude, float Frequency, float Phase)
 An angular wave with a constant increase / decrease speed with pointed peaks.
float WaveformTriangle (float x)
float WaveformSquare (float x, float Base, float Amplitude, float Frequency, float Phase)
 Half of the time is spent at the min, half at the max with instant transition between.
float WaveformSquare (float x)
float WaveformSawtooth (float x, float Base, float Amplitude, float Frequency, float Phase)
 Gradual steady increase from min to max over the period with an instant return to min at the end.
float WaveformSawtooth (float x)
float WaveformInvSawtooth (float x, float Base, float Amplitude, float Frequency, float Phase)
 Gradual steady decrease from max to min over the period, with an instant return to max at the end.
float WaveformInvSawtooth (float x)
float WaveformPWM (float x, float DutyCycle, float Base, float Amplitude, float Frequency, float Phase)
 Pulse Width Modulation.
float WaveformPWM (float x, float DutyCycle)
template<typename T >
const Format operator% (const Format &fmt, const T &x)
const Format operator% (const Format &fmt, const tchar *x)
DATESPAN operator+ (const DATESPAN &ds1, const DATESPAN &ds2)
DATESPAN operator- (const DATESPAN &ds1, const DATESPAN &ds2)
DATESPAN operator* (const DATESPAN &ds, int n)
DATESPAN operator* (int n, const DATESPAN &ds)
TIMESPAN operator* (const TIMESPAN &t, int n)
TIMESPAN operator* (int n, const TIMESPAN &t)
TIMESPAN operator+ (const TIMESPAN &t1, const TIMESPAN &t2)
TIMESPAN operator- (const TIMESPAN &t1, const TIMESPAN &t2)
TMSTRUCT operator+ (const TMSTRUCT &tm, const DATESPAN &ds)
TMSTRUCT operator- (const TMSTRUCT &tm, const DATESPAN &ds)
TIMESPAN operator- (const DATETIME &dt1, const DATETIME &dt2)
DATETIME operator+ (const DATETIME &dt, const TIMESPAN &ts)
DATETIME operator- (const DATETIME &dt, const TIMESPAN &ts)
bool IsLeapYear (int Year)
 Zwraca true, jeśli podany rok jest przestępny.
uint GetNumOfDaysInYear (int Year)
 Zwraca liczbę dni w podanym roku (365 lub 366).
uint GetNumOfDaysInMonth (int Year, uint Month)
 Zwraca liczbę dni w podanym miesiącu podanego roku.
int GetCentury (int Year)
 Zwraca wiek podanego roku.
time_t GetTimeNow ()
 Zwraca bieżącą datę i czas jako time_t.
void GetTmNow (struct tm *Out)
 Zwraca bieżącą datę i czas jako struct tm.
DATETIME Now ()
 Zwraca bieżącą datę i czas, dokładność co do sekund.
DATETIME UNow ()
 Zwraca bieżącą datę i czas, dokładność co do milisekund.
const tcharGetWeekDayName (WEEKDAY WeekDay, NAME_FORM Form)
 Zwraca nazwę dnia tygodnia w podanej formie (W jezyku polskim!!!).
const tcharGetMonthName (MONTH Month, NAME_FORM Form)
 Zwraca nazwę miesiąca w podanej formie (W jezyku polskim!!!).
void DateToStr (tstring *Out, const TMSTRUCT &tm, const tstring &Format)
 Konwertuje datę na łańcuch.
WEEKDAY StrToWeekDay (const tstring &s)
 Konwertuje łańcuch na dzień tygodnia. Łańcuch może być w dowolnej formie.
MONTH StrToMonth (const tstring &s)
 Konwertuje łańcuch na miesiąc. Łańcuch może być w dowolnej formie.
bool StrToDate (TMSTRUCT *Out, const tstring &s, const tstring &Format)
 Konwertuje łańcuch na datę.
GameTime operator* (int8 v, const GameTime &t)
GameTime GetCurrentGameTime ()
GameTime MillisecondsToGameTime (int Milliseconds)
GameTime MillisecondsToGameTime (int8 Milliseconds)
GameTime SecondsToGameTime (float Seconds)
GameTime SecondsToGameTime (double Seconds)
void SaveStringToFile (const tstring &FileName, const string &Data)
 Zapisuje podany łańcuch jako treść pliku.
void SaveDataToFile (const tstring &FileName, const void *Data, size_t NumBytes)
 Zapisuje podany łańcuch jako treść pliku.
void LoadStringFromFile (const tstring &FileName, string *Data)
 Wczytuje całą zawartość pliku do łańcucha.
void SaveStringToFile (const tstring &FileName, const wstring &Data)
 Wersje Unicode.
void LoadStringFromFile (const tstring &FileName, wstring *Data)
bool GetFileItemInfo (const tstring &Path, FILE_ITEM_TYPE *OutType, uint *OutSize, DATETIME *OutModificationTime, DATETIME *OutCreationTime=NULL, DATETIME *OutAccessTime=NULL)
 Zwraca wybrane informacje na temat pliku/katalogu.
void MustGetFileItemInfo (const tstring &Path, FILE_ITEM_TYPE *OutType, uint *OutSize, DATETIME *OutModificationTime, DATETIME *OutCreationTime=NULL, DATETIME *OutAccessTime=NULL)
FILE_ITEM_TYPE GetFileItemType (const tstring &Path)
 Zwraca typ - czy to jest plik, katalog czy błąd/nie-istnieje.
bool UpdateFileTimeToNow (const tstring &FileName)
 Ustawia czas dostępu i modyfikacji podanego pliku na bieżący.
void MustUpdateFileTimeToNow (const tstring &FileName)
bool UpdateFileTime (const tstring &FileName, const DATETIME &ModificationTime, const DATETIME &AccessTime)
 Ustawia czas dostępu i modyfikacji podanego pliku na podane.
void MustUpdateFileTime (const tstring &FileName, const DATETIME &ModificationTime, const DATETIME &AccessTime)
bool CreateDirectory (const tstring &Path)
 Tworzy katalog.
void MustCreateDirectory (const tstring &Path)
bool DeleteDirectory (const tstring &Path)
 Usuwa katalog.
void MustDeleteDirectory (const tstring &Path)
bool CreateDirectoryChain (const tstring &Path)
 Tworzy całą ścieżkę katalogów aż po podanego, np. "C:\A\B\C" nawet jeśli nie istniał nawet "C:\A".
void MustCreateDirectoryChain (const tstring &Path)
bool DeleteFile (const tstring &FileName)
 Usuwa plik.
void MustDeleteFile (const tstring &FileName)
bool MoveItem (const tstring &OldPath, const tstring &NewPath)
 Przenosi lub zmienia nazwę pliku lub katalogu.
void MustMoveItem (const tstring &OldPath, const tstring &NewPath)
void SaveUnicodeToFile (const tstring &FileName, const wstring &Data, unsigned Encoding)
 Zapisuje tekst Unicode do pliku w podanym kodowaniu.
void SaveUnicodeToFile (const tstring &FileName, const wchar_t *Data, unsigned NumChars, unsigned Encoding)
void SaveUnicodeToStream (Stream *Dest, const wstring &Data, unsigned Encoding)
void SaveUnicodeToStream (Stream *Dest, const wchar_t *Data, unsigned NumChars, unsigned Encoding)
void LoadUnicodeFromFile (const tstring &FileName, wstring *Out, unsigned Encoding, FILE_ENCODING *OutEncoding=NULL)
 Wczytuje plik tekstowy do łańcucha Unicode.
void LoadUnicodeFromFile (const tstring &FileName, string *Out, unsigned Encoding, FILE_ENCODING *OutEncoding=NULL)
 Wczytuje plik tekstowy do łańcucha ANSI.
void LoadUnicodeFromStream (SeekableStream *Src, wstring *Out, unsigned Encoding, FILE_ENCODING *OutEncoding=NULL)
void LoadUnicodeFromStream (SeekableStream *Src, string *Out, unsigned Encoding, FILE_ENCODING *OutEncoding=NULL)
void CreateLogger (bool UseQueue)
 Tworzy logger.
void DestroyLogger ()
 Usuwa logger.
LoggerGetLogger ()
 Pobiera logger.
bool IsLogger ()
 Zwraca true, jeśli Logger jest zainicjowany.
template<typename DestT , typename SrcT >
DestT & math_cast (const SrcT &x)
 Szablon bazowy do konwersji między typami matematycznymi.
POINT_ operator* (const POINT_ pt, int v)
POINT_ operator/ (const POINT_ pt, int v)
POINT_ operator* (int v, const POINT_ pt)
POINT_ operator/ (int v, const POINT_ pt)
template<>
::POINT & math_cast<::POINT, POINT_ > (const POINT_ &x)
 Konwersja z common::POINT_ do POINT.
template<>
POINT_math_cast< POINT_,::POINT > (const ::POINT &x)
 Konwersja z POINT do common::POINT_.
void swap (POINT_ &v1, POINT_ &v2)
void Mul (POINT_ *out, const POINT_ &p1, const POINT_ &p2)
void Div (POINT_ *out, const POINT_ &p1, const POINT_ &p2)
void Mul (POINT_ *inout, const POINT_ &v)
void Div (POINT_ *inout, const POINT_ &v)
void Min (common::POINT_ *out, const common::POINT_ &a, const common::POINT_ &b)
void Max (common::POINT_ *out, const common::POINT_ &a, const common::POINT_ &b)
VEC2 operator* (const VEC2 pt, float v)
VEC2 operator/ (const VEC2 pt, float v)
VEC2 operator* (float v, const VEC2 pt)
void swap (VEC2 &v1, VEC2 &v2)
VEC3 operator* (const VEC3 pt, float v)
VEC3 operator/ (const VEC3 pt, float v)
VEC3 operator* (float v, const VEC3 pt)
void swap (VEC3 &v1, VEC3 &v2)
VEC4 operator* (const VEC4 pt, float v)
VEC4 operator/ (const VEC4 pt, float v)
VEC4 operator* (float v, const VEC4 pt)
void swap (VEC4 &v1, VEC4 &v2)
float LengthSq (const VEC2 &v)
 Zwraca kwadrat długości wektora.
float LengthSq (const VEC3 &v)
float LengthSq (const VEC4 &v)
float Length (const VEC2 &v)
 Zwraca długość wektora.
float Length (const VEC3 &v)
float Length (const VEC4 &v)
float ManhattanLength (const VEC2 &v)
float ManhattanLength (const VEC3 &v)
float ManhattanLength (const VEC4 &v)
float MaxLength (const VEC2 &v)
float MaxLength (const VEC3 &v)
float MaxLength (const VEC4 &v)
void Min (VEC2 *Out, const VEC2 &v1, const VEC2 &v2)
 Zwraca wektor złożony z mniejszych składowych podanych wektorów.
void Min (VEC3 *Out, const VEC3 &v1, const VEC3 &v2)
void Min (VEC4 *Out, const VEC4 &v1, const VEC4 &v2)
void Max (VEC2 *Out, const VEC2 &v1, const VEC2 &v2)
 Zwraca wektor złożony z większych składowych podanych wektorów.
void Max (VEC3 *Out, const VEC3 &v1, const VEC3 &v2)
void Max (VEC4 *Out, const VEC4 &v1, const VEC4 &v2)
void saturate (VEC2 &v)
void saturate (VEC3 &v)
void saturate (VEC4 &v)
void Mul (VEC2 *Out, const VEC2 &v, float f)
void Mul (VEC3 *Out, const VEC3 &v, float f)
void Mul (VEC4 *Out, const VEC4 &v, float f)
void Add (VEC2 *Out, const VEC2 &v1, const VEC2 &v2)
void Add (VEC3 *Out, const VEC3 &v1, const VEC3 &v2)
void Add (VEC4 *Out, const VEC4 &v1, const VEC4 &v2)
void Sub (VEC2 *Out, const VEC2 &v1, const VEC2 &v2)
void Sub (VEC3 *Out, const VEC3 &v1, const VEC3 &v2)
void Sub (VEC4 *Out, const VEC4 &v1, const VEC4 &v2)
void Mul (VEC2 *Out, const VEC2 &v1, const VEC2 &v2)
void Mul (VEC3 *Out, const VEC3 &v1, const VEC3 &v2)
void Mul (VEC4 *Out, const VEC4 &v1, const VEC4 &v2)
void Div (VEC2 *Out, const VEC2 &v1, const VEC2 &v2)
void Div (VEC3 *Out, const VEC3 &v1, const VEC3 &v2)
void Div (VEC4 *Out, const VEC4 &v1, const VEC4 &v2)
void Mul (VEC2 *inout, const VEC2 &v)
void Mul (VEC3 *inout, const VEC3 &v)
void Mul (VEC4 *inout, const VEC4 &v)
void Div (VEC2 *inout, const VEC2 &v)
void Div (VEC3 *inout, const VEC3 &v)
void Div (VEC4 *inout, const VEC4 &v)
void Abs (VEC2 *v)
void Abs (VEC3 *v)
void Abs (VEC4 *v)
float Dot (const VEC2 &v1, const VEC2 &v2)
 Iloczyn skalarny wektorów.
float Dot (const VEC3 &v1, const VEC3 &v2)
float Dot (const VEC4 &v1, const VEC4 &v2)
void Minus (VEC2 *Out, VEC2 &v)
 Odwraca znak składowych wektora.
void Minus (VEC3 *Out, VEC3 &v)
void Minus (VEC4 *Out, VEC4 &v)
void Minus (VEC2 *InOut)
void Minus (VEC3 *InOut)
void Minus (VEC4 *InOut)
float 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 Cross (VEC3 *Out, const VEC3 &v1, const VEC3 &v2)
 Iloczyn wektorowy dwóch wektorów 3D.
float DistanceSq (const VEC2 &p1, const VEC2 &p2)
 Kwadrat odległości między dwoma punktami.
float DistanceSq (const VEC3 &p1, const VEC3 &p2)
float DistanceSq (const VEC4 &p1, const VEC4 &p2)
float Distance (const VEC2 &p1, const VEC2 &p2)
 Odległość między dwoma punktami.
float Distance (const VEC3 &p1, const VEC3 &p2)
float Distance (const VEC4 &p1, const VEC4 &p2)
float ManhattanDistance (const VEC2 &p1, const VEC2 &p2)
float ManhattanDistance (const VEC3 &p1, const VEC3 &p2)
float ManhattanDistance (const VEC4 &p1, const VEC4 &p2)
float MaxDistance (const VEC2 &p1, const VEC2 &p2)
float MaxDistance (const VEC3 &p1, const VEC3 &p2)
float MaxDistance (const VEC4 &p1, const VEC4 &p2)
void Lerp (VEC2 *Out, const VEC2 &v1, const VEC2 &v2, float t)
 Liniowa interpolacja wektorów.
void Lerp (VEC3 *Out, const VEC3 &v1, const VEC3 &v2, float t)
void Lerp (VEC4 *Out, const VEC4 &v1, const VEC4 &v2, float t)
void Normalize (VEC2 *Out, const VEC2 &v)
 Normalizuje wektor, czyli zmienia mu długość na 1.
void Normalize (VEC3 *Out, const VEC3 &v)
void Normalize (VEC4 *Out, const VEC4 &v)
void Normalize (VEC2 *v)
 Normalizuje wektor w miejscu.
void Normalize (VEC3 *v)
void Normalize (VEC4 *v)
bool SafeNormalize (VEC2 *v)
 Bezpieczna normalizacja wektora w miejscu. W przypadku wektora zerowego zwraca false.
bool SafeNormalize (VEC3 *v)
bool SafeNormalize (VEC4 *v)
void Vec3ToVec4 (VEC4 *Out, const VEC3 &v)
 Konwersja z wektora 3D na 4D dopisująca W=1.
void Vec4ToVec3_Ignore (VEC3 *Out, const VEC4 &v)
 Konwersja z wektora 4D na 3D ze zignorowaniem składowej W.
void Vec4ToVec3_Div (VEC3 *Out, const VEC4 &v)
 Konwersja z wektora 4D na 3D ze podzieleniem składowych przez W.
void MidPoint (VEC2 *Out, const VEC2 &p1, const VEC2 &p2)
 Zwraca punkt w połowie drogi między podanymi punktami.
void MidPoint (VEC3 *Out, const VEC3 &p1, const VEC3 &p2)
void MidPoint (VEC4 *Out, const VEC4 &p1, const VEC4 &p2)
bool VecEqual (const VEC2 &v1, const VEC2 &v2)
 Zwraca true, jeśli podane wektory/punkty są sobie mniej więcej równe.
bool VecEqual (const VEC3 &v1, const VEC3 &v2)
bool VecEqual (const VEC4 &v1, const VEC4 &v2)
bool Less (const VEC2 &v1, const VEC2 &v2)
bool Less (const VEC3 &v1, const VEC3 &v2)
bool Less (const VEC4 &v1, const VEC4 &v2)
bool LessOrEqual (const VEC2 &v1, const VEC2 &v2)
bool LessOrEqual (const VEC3 &v1, const VEC3 &v2)
bool LessOrEqual (const VEC4 &v1, const VEC4 &v2)
bool Greater (const VEC2 &v1, const VEC2 &v2)
bool Greater (const VEC3 &v1, const VEC3 &v2)
bool Greater (const VEC4 &v1, const VEC4 &v2)
bool GreaterOrEqual (const VEC2 &v1, const VEC2 &v2)
bool GreaterOrEqual (const VEC3 &v1, const VEC3 &v2)
bool GreaterOrEqual (const VEC4 &v1, const VEC4 &v2)
bool around (const VEC2 &v1, const VEC2 &v2, float Epsilon)
bool around (const VEC3 &v1, const VEC3 &v2, float Epsilon)
bool around (const VEC4 &v1, const VEC4 &v2, float Epsilon)
void Perpedicular (VEC2 *Out, const VEC2 &v)
 Zwraca wektor prostopadły do podanego wektora 2D.
void Reflect (VEC2 *Out, const VEC2 &v, const VEC2 &PlaneNormal)
 Oblicza wektor kierunku odbicia od płaszczyzny o podanej normalnej.
void Reflect (VEC3 *Out, const VEC3 &v, const VEC3 &PlaneNormal)
void 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 Refract (VEC3 *out, const VEC3 &I, const VEC3 &N, float eta)
void Project (VEC2 *Out, const VEC2 &V, const VEC2 &N)
 Rzutowanie wektora V na wektor N.
void Project (VEC3 *Out, const VEC3 &V, const VEC3 &N)
void Project_N (VEC2 *Out, const VEC2 &V, const VEC2 &N)
 Wersja common::Project, kiedy wektor N jest już na pewno znormalizowany.
void Project_N (VEC3 *Out, const VEC3 &V, const VEC3 &N)
float ScalarTripleProduct (const VEC3 &u, const VEC3 &v, const VEC3 &w)
 Oblicza: u cross v dot w.
void Orthogonalize_Fast (VEC3 *OutR1, VEC3 *OutR2, VEC3 *OutR3, const VEC3 &R1, const VEC3 &R2, const VEC3 &R3)
 Ortogonalizacja trzech wektorów - Metoda szybka.
void Orthogonalize (VEC3 *OutR1, VEC3 *OutR2, VEC3 *OutR3, const VEC3 &R1, const VEC3 &R2, const VEC3 &R3)
 Ortogonalizacja trzech wektorów - Metoda dokładna.
void PerpedicularVectors (VEC3 *Out1, VEC3 *Out2, const VEC3 &v)
 Wyznacza dwa dowolne wektory prostopadłe do podanego.
float TriangleArea (const VEC2 &p1, const VEC2 &p2, const VEC2 &p3)
 Oblicza signed pole powierzchni trójkąta.
float TriangleArea (const VEC3 &p1, const VEC3 &p2, const VEC3 &p3)
bool TriangleIsCW (const VEC2 &p1, const VEC2 &p2, const VEC2 &p3)
 Zwraca true, jeśli wierzchołki trójkąta są CW.
float TrianglePerimeter (const VEC2 &p1, const VEC2 &p2, const VEC2 &p3)
 Znajduje obwód trójkąta.
float TrianglePerimeter (const VEC3 &p1, const VEC3 &p2, const VEC3 &p3)
void Barycentric (VEC2 *Out, const VEC2 &p1, const VEC2 &p2, const VEC2 &p3, float f, float g)
 Oblicza punkt na powierzhchni trójkąta we wsp. barycentrycznych.
void Barycentric (VEC3 *Out, const VEC3 &p1, const VEC3 &p2, const VEC3 &p3, float f, float g)
void Barycentric (VEC4 *Out, const VEC4 &p1, const VEC4 &p2, const VEC4 &p3, float f, float g)
void CalcBarycentric (const VEC2 &p, const VEC2 &p1, const VEC2 &p2, const VEC2 &p3, float *out_e, float *out_f, float *out_g)
 Współrzędne barycentryczne punktu p względem trójkąta p1-p2-p3.
void CalcBarycentric (const VEC3 &p, const VEC3 &p1, const VEC3 &p2, const VEC3 &p3, const VEC3 *Normal, float *out_e, float *out_f, float *out_g)
 Współrzędne barycentryczne punktu p względem trójkąta p1-p2-p3.
void TriangleInscribedCircle (VEC2 *OutCenter, float *OutRadius, const VEC2 &v1, const VEC2 &v2, const VEC2 &v3)
 Znajduje okrąg wpisany w trójkąt.
void TriangleInscribedCircle (VEC3 *OutCenter, float *OutRadius, const VEC3 &v1, const VEC3 &v2, const VEC3 &v3)
void TriangleCircumscribedCircle (VEC2 *OutCenter, float *OutRadius, const VEC2 &v1, const VEC2 &v2, const VEC2 &v3)
 Znajduje okrąg opisany na trójkącie.
void TriangleCircumscribedCircle (VEC3 *OutCenter, float *OutRadius, const VEC3 &v1, const VEC3 &v2, const VEC3 &v3)
void PointOnRay (VEC2 *Out, const VEC2 &Origin, const VEC2 &Direction, float t)
 Zwraca punkt na promieniu.
void PointOnRay (VEC3 *Out, const VEC3 &Origin, const VEC3 &Direction, float t)
template<>
::RECT & math_cast<::RECT, RECTI > (const RECTI &x)
 Konwersja z common::RECTI do RECT z WinAPI.
template<>
RECTImath_cast< RECTI,::RECT > (const ::RECT &x)
 Konwersja z RECT z WinAPI do common::RECTI.
void swap (RECTI &r1, RECTI &r2)
void swap (RECTF &r1, RECTF &r2)
void Mul (RECTI *out, const RECTI &rect, const POINT_ &v)
void Mul (RECTF *out, const RECTF &rect, const VEC2 &v)
void Div (RECTI *out, const RECTI &rect, const POINT_ &v)
void Div (RECTF *out, const RECTF &rect, const VEC2 &v)
void Mul (RECTI *inout, const POINT_ &v)
void Mul (RECTF *inout, const VEC2 &v)
void Div (RECTI *inout, const POINT_ &v)
void Div (RECTF *inout, const VEC2 &v)
bool PointInRect (const POINT_ &p, const RECTI &r)
 Zwraca true, jeśli punkt należy do prostokąta.
bool PointInRect (const VEC2 &p, const RECTF &r)
bool RectInRect (const RECTI &sr, const RECTI &r)
 Zwraca true, jeśli prostokąt sr zawiera się w całości wewnątrz r.
bool RectInRect (const RECTF &sr, const RECTF &r)
bool RectToRect (const RECTI &r1, const RECTI &r2)
 Zwraca true, jeśli podane prostokąty zachodzą na siebie.
bool RectToRect (const RECTF &r1, const RECTF &r2)
bool Intersection (RECTI *Out, const RECTI &r1, const RECTI &r2)
 Jeśli prostokąty posiadają część wspólną, zwraca ją przez Out i zwraca true.
bool Intersection (RECTF *Out, const RECTF &r1, const RECTF &r2)
void Union (RECTI *Out, const RECTI &r1, const RECTI &r2)
 Zwraca prostokąt opisany na podanych dwóch prostokątach.
void Union (RECTF *Out, const RECTF &r1, const RECTF &r2)
void Lerp (RECTF *out, const RECTF &v1, const RECTF &v2, float t)
void ClosestPointInRect (POINT_ *Out, const RECTI &Rect, const POINT_ &p)
 Wyznacza najbliższy punkt wewnątrz prostokąta względem punktu p.
void ClosestPointInRect (VEC2 *Out, const RECTF &Rect, const VEC2 &p)
 Wyznacza najbliższy punkt wewnątrz prostokąta względem punktu p.
void swap (BOX &b1, BOX &b2)
void Mul (BOX *Out, const BOX &b, const VEC3 &v)
void Div (BOX *Out, const BOX &b, const VEC3 &v)
void Mul (BOX *inout, const VEC3 &v)
void Div (BOX *inout, const VEC3 &v)
bool PointInBox (const VEC3 &p, const BOX &b)
 Zwraca true, jeśli punkt należy do boksa.
bool BoxInBox (const BOX &sb, const BOX &b)
 Zwraca true, jeśli boks sb zawiera się w całości wewnątrz b.
bool BoxToBox (const BOX &b1, const BOX &b2)
 Zwraca true, jeśli podane boksy zachodzą na siebie.
bool Intersection (BOX *Out, const BOX &b1, const BOX &b2)
 Jeśli boksy posiadają część wspólną, zwraca ją przez Out i zwraca true.
void Union (BOX *Out, const BOX &b1, const BOX &b2)
 Zwraca boks opisany na podanych dwóch boksach.
void Lerp (BOX *out, const BOX &v1, const BOX &v2, float t)
bool ObbToObb (const OBB &a, const OBB &b)
 Zwraca true, jeśli dwa prostopadłościany OBB nachodzą na siebie.
void swap (COLORF &c1, COLORF &c2)
COLORF operator* (float s, const COLORF &c)
COLORF operator/ (float s, const COLORF &c)
COLOR operator* (float s, const COLOR &c)
COLOR operator/ (float s, const COLOR &c)
template<>
uint4math_cast< uint4, COLOR > (const COLOR &x)
template<>
unsigned long & math_cast< unsigned long, COLOR > (const COLOR &x)
template<>
COLORmath_cast< COLOR, uint4 > (const uint4 &x)
template<>
COLORmath_cast< COLOR, unsigned long > (const unsigned long &x)
template<>
D3DXCOLOR & math_cast< D3DXCOLOR, COLORF > (const COLORF &x)
template<>
COLORFmath_cast< COLORF, D3DXCOLOR > (const D3DXCOLOR &x)
void ColorToColorf (COLORF *Out, COLOR c)
 Konwersje między tymi dwoma reprezentacjami kolorów.
COLOR ColorfToColor (const COLORF &c)
void ColorToStr (tstring *Out, COLOR Color, char Format= 'X')
 Konwersja koloru na łańcuch.
void ColorToStr (tstring *Out, const COLORF &Color, char Format= 'F')
bool StrToColor (COLOR *Out, const tstring &Str)
 Konwersja łańcucha na kolor.
bool StrToColor (COLORF *Out, const tstring &Str)
void Add (COLORF *Out, const COLORF &c1, const COLORF &c2)
void Sub (COLORF *Out, const COLORF &c1, const COLORF &c2)
void Mul (COLORF *Out, const COLORF &c1, const COLORF &c2)
void Mul (COLORF *inout, const COLORF &c)
void Mul (COLORF *Out, const COLORF &c, float s)
void Div (COLORF *Out, const COLORF &c, float s)
void Negative (COLORF *Out, const COLORF &c)
COLOR ARGB_ABGR (COLOR color)
 Konwertuje kolor między systemami ARGB i ABGR.
uint2 ColorToR5G6B5 (COLOR color)
 Konwertuje zwykły kolor COLOR (A8R8G8B8) na R5G6B5.
COLOR R5G6B5ToColor (uint2 color)
 Konwertuje kolor R5G6B5 na zwykły kolor COLOR (A8R8G8B8).
void Lerp (COLORF *Out, const COLORF &c1, const COLORF &c2, float t)
COLOR Lerp (COLOR c1, COLOR c2, float t)
void saturate (COLORF &v)
void HsbToRgb (COLORF *Out, float hue, float saturation, float brightness)
 Konwertuje kolor między HSB a RGB.
void RgbToHsb (float *OutHue, float *OutSaturation, float *OutBrightness, const COLORF &Color)
 Konwertuje kolor RGB na HSB.
void ColorRainbow (COLORF *Out, float t)
 Zwraca kolor tęczy od czerwonego (odpowiada mu t = 0) do niebieskiego (t = 1).
float ColorToGrayscale (const COLORF &c)
 Zwraca jasność podanego koloru (odcień szarości) z zakresu 0..1.
float ColorToGrayscale (COLOR &c)
void GrayscaleToColor (COLORF *Out, float t)
 Zwraca kolor szary o podanej jasności t = 0..1.
void GrayscaleToColor (COLOR *Out, float t)
void AdjustContrast (COLORF *Color, float t)
 Zmienia kolorowi kontrast na miejscu.
void AdjustSaturation (COLORF *Color, float t)
 Zmienia kolorowi nasycenie na miejscu.
COLOR VectorToColor (const VEC3 &v)
 Przetwarza znormalizowany wektor na kolor XRGB. A zwraca 0.
void ColorToVector (VEC3 *Out, COLOR color)
 Przetwarza kolor na wektor.
uint ColorDistance (COLOR Color1, COLOR Color2)
 Zwraca "odległość" dwóch kolorów wg jakiejśtam byle jakiej metryki. Uwzględnia składowe R, G, B.
VEC4 ColorfToVec4 (const COLORF &c)
 Converts between COLORF and VEC4, where (x,y,z,w) = (R,G,B,A).
COLORF Vec4ToColorf (const VEC4 &v)
PLANE operator* (float s, const PLANE &p)
void swap (PLANE &p1, PLANE &p2)
VEC3GetPlaneNormal (PLANE &Plane)
 Daje dostęp do wektora normalnego podanej płaszczyzny, czyli jej składowych a, b, c zrzutowanych jako VEC3.
const VEC3GetPlaneNormal (const PLANE &Plane)
 Zwraca wektor normalny płaszczyzny, czyli jej składowe a, b, c zrzutowane jako VEC3.
void GetPlaneMemberPoint (VEC3 *Out, const PLANE &Plane)
 Zwraca jakiś punkt leżący na tej płaszczyźnie.
void RecalcPlaneD (PLANE *Plane, const VEC3 &p)
 Zmienia odległość od początku układu współrzędnych.
bool PlaneEqual (const PLANE &p1, const PLANE &p2)
 Zwraca true, jeśli podane płaszczyzny są sobie mniej więcej równe.
void PointsToPlane (PLANE *Out, const VEC3 &p1, const VEC3 &p2, const VEC3 &p3)
 Tworzy płaszczyznę na podstawie trzech punktów.
void PointNormalToPlane (PLANE *Out, const VEC3 &Point, const VEC3 &Normal)
 Tworzy płaszczyznę z wektora normalnego i punktu leżącego na tej płaszczyźnie.
void Mul (PLANE *Out, const PLANE &p, float s)
 Skalowanie płaszczyzny.
void Div (PLANE *Out, const PLANE &p, float s)
float Dot (const PLANE &p, const VEC4 &pt)
 Iloczyn skalarny płaszczyzny i punktu we współrzędnych jednorodnych.
float DotCoord (const PLANE &p, const VEC3 &pt)
 Iloczyn skalarny płaszczyzny z punktem 3D: a*x+b*y+c*z+d*1.
float DotNormal (const PLANE &p, const VEC3 &v)
 Iloczyn skalarny płaszczyzny z wektorem 3D: a*x+b*y+c*z+d*0.
void Normalize (PLANE *Out, const PLANE &p)
 Normalizacja płaszczyzny.
void Normalize (PLANE *p)
 Normalizacja płaszczyzny w miejscu.
void GetBoxPlane (PLANE *out, const BOX &box, uint index)
 Returns plane of one of 6 possible box faces.
LINE2D operator* (float s, const LINE2D &p)
LINE2D operator/ (float s, const LINE2D &p)
VEC2GetLineNormal (LINE2D &line)
 Daje dostęp do wektora normalnego podanej prostej, czyli jej składowych a, b zrzutowanych na VEC2.
const VEC2GetLineNormal (const LINE2D &line)
 Zwraca wektor normalny prostej, czyli jej składowe a, b zrzutowane na VEC2.
bool LineEqual (const LINE2D &p1, const LINE2D &p2)
 Zwraca true, jeśli podane proste są sobie mniej więcej równe.
void swap (LINE2D &p1, LINE2D &p2)
void PointsToLine (LINE2D *Out, const VEC2 &p1, const VEC2 &p2)
 Tworzy prostą na podstwie dwóch punktów.
void PointNormalToLine (LINE2D *Out, const VEC2 &Point, const VEC2 &Normal)
 Tworzy prostą z wektora normalnego i punktu leżącego na tej prostej.
bool LinesParallel (const LINE2D &L1, const LINE2D &L2)
 Zwraca true, jeśli podane proste są równoległe.
bool LinesPerpedicular (const LINE2D &L1, const LINE2D &L2)
 Zwraca true, jeśli podane proste są prostopadłe.
float Dot (const LINE2D &L1, const LINE2D &L2)
 Zwraca dot z wektorów normalnych dwóch prostych.
float LineDistance (const LINE2D &L1, const LINE2D &L2)
 Zwraca signed odległość dwóch prostych na płaszczyźnie.
bool LinesIntersection (VEC2 *Out, const LINE2D &L1, const LINE2D &L2)
 Oblicza punkt przeciecia dwóch prostych.
bool PointsColinear (const VEC2 &p1, const VEC2 &p2, const VEC2 &p3)
 Zwraca true, jeśli podane trzy punkty leżą na jednej prostej.
void Mul (LINE2D *Out, const LINE2D &p, float s)
 Skalowanie prostej.
void Div (LINE2D *Out, const LINE2D &p, float s)
float Dot (const LINE2D &p, const VEC3 &pt)
 Iloczyn skalarny płaszczyzny i punktu we współrzędnych jednorodnych 2D.
float DotCoord (const LINE2D &p, const VEC2 &pt)
 Iloczyn skalarny prostej 2D z punktem 2D: a*x + b*y + c*1.
float DotNormal (const LINE2D &p, const VEC2 &v)
 Iloczyn skalarny prostej 2D z wektorem 2D: a*x + b*y + c*z + d*0.
void Normalize (LINE2D *Out, const LINE2D &p)
 Normalizacja prostej 2D.
void Normalize (LINE2D *p)
 Normalizacja prostej w miejscu.
void GetRectLine (LINE2D *out, const RECTF &rect, uint index)
 Returns line of one of 4 possible box edges.
void MatrixToStr (tstring *Out, const MATRIX &m)
bool StrToMatrix (MATRIX *Out, const tstring &Str)
void swap (MATRIX &m1, MATRIX &m2)
bool MatrixEqual (const MATRIX &m1, const MATRIX &m2)
 Zwraca true, jeśli podane macierze są sobie mniej więcej równe.
void Minus (MATRIX *m)
 Negacja macierzy w miejscu.
void Add (MATRIX *Out, const MATRIX &m1, const MATRIX &m2)
 Dodawanie macierzy.
void Sub (MATRIX *Out, const MATRIX &m1, const MATRIX &m2)
 Odejmowanie macierzy.
void Mul (MATRIX *Out, const MATRIX &m1, const MATRIX &m2)
 Mnożenie macierzy.
void Mul (MATRIX *m, float s)
 Mnożenie macierzy przez skalar w miejscu.
void Div (MATRIX *m, float s)
 Dzielenie macierzy przez skalar w miejscu.
void Mul3x3 (MATRIX &out, const MATRIX &m1, const MATRIX &m2)
 Multiplication of 3x3 submatrices.
void Mul4x3 (MATRIX &out, const MATRIX &m1, const MATRIX &m2)
 Multiplication of 4x3 submatrices.
void Transform (VEC4 *Out, const VEC2 &v, const MATRIX &m)
 Mnożenie wektora 2D jako [x,y,0,1] przez macierz, wychodzi wektor 4D.
void Transform (VEC2 *Out, const VEC2 &v, const MATRIX &m)
 Mnożenie wektora 2D jako [x,y,0,1] przez macierz z olaniem wyjściowego W.
void TransformCoord (VEC2 *Out, const VEC2 &v, const MATRIX &m)
 Mnożenie wektora 2D jako [x,y,0,1] przez macierz i sprowadzenie z powrotem do 2D przez podzielenie przez W.
void TransformNormal (VEC2 *Out, const VEC2 &v, const MATRIX &m)
 Mnożenie wektora 2D jako [x,y,0,0] przez macierz.
void Transform (VEC4 *Out, const VEC3 &v, const MATRIX &m)
 Mnożenie wektora 3D jako [X,Y,Z,1] przez macierz, wychodzi wektor 4D.
void Transform (VEC3 *Out, const VEC3 &v, const MATRIX &m)
 Mnożenie wektora 3D jako [X,Y,Z,1] przez macierz z olaniem wyjściowego W.
void TransformCoord (VEC3 *Out, const VEC3 &v, const MATRIX &m)
 Mnożenie wektora 3D jako [X,Y,Z,1] przez macierz i sprowadzenie z powrotem do 3D przez podzielenie przez W.
void TransformNormal (VEC3 *Out, const VEC3 &v, const MATRIX &m)
 Mnożenie wektora 3D jako [X,Y,Z,0] przez macierz.
void TransformArray (VEC3 OutPoints[], const VEC3 InPoints[], size_t PointCount, const MATRIX &M)
 Przekształca na raz całą tablicę wektorów - w miejscu lub z tablicy wejściowej do wyjściowej.
void TransformArray (VEC3 InOutPoints[], size_t PointCount, const MATRIX &M)
void TransformNormalArray (VEC3 OutPoints[], const VEC3 InPoints[], size_t PointCount, const MATRIX &M)
void TransformNormalArray (VEC3 InOutPoints[], size_t PointCount, const MATRIX &M)
void TransformCoordArray (VEC3 OutPoints[], const VEC3 InPoints[], size_t PointCount, const MATRIX &M)
void TransformCoordArray (VEC3 InOutPoints[], size_t PointCount, const MATRIX &M)
void Transform (VEC4 *Out, const VEC4 &v, const MATRIX &m)
 Mnożenie wektora 4D przez macierz.
void TransformNormalByTranspose (VEC3 *Out, const VEC3 &v, const MATRIX &m)
 Mnoży wektor przez transpozycję podanej macierzy m (jej podmacierzy 3x3).
void Untransform (VEC3 *Out, const VEC3 &v, const MATRIX &m)
 Mnoży punkt przez odwrotnosć podanej macierzy m (jej podmacierzy 4x3), ale bez odwracania.
void UntransformNormal (VEC3 *Out, const VEC3 &v, const MATRIX &m)
 Mnoży wektor przez odwrotnosć podanej macierzy m (jej podmacierzy 3x3), ale bez odwracania.
void Transform (PLANE *Out, const PLANE &p, const MATRIX &m)
 Przekształca płaszczyznę przez macierz.
void TransformRay (VEC3 *OutOrigin, VEC3 *OutDir, const VEC3 &RayOrigin, const VEC3 &RayDir, const MATRIX &m)
 Przekształca promień przez macierz.
void TransformBox (BOX *Out, const BOX &In, const MATRIX &M)
 Przekształca AABB przez podaną macierz i wylicza AABB tego co wyszło po przekształceniu.
void TransformBoxCoord (BOX *Out, const BOX &In, const MATRIX &M)
 Przekształca AABB przez podaną macierz i wylicza AABB tego co wyszło po przekształceniu.
void MatrixSetTranslation (MATRIX *InOut, float TranslationX, float TranslationY, float TranslationZ)
 Ustawia translację w macierzy.
void MatrixSetTranslation (MATRIX *InOut, const VEC3 &Translation)
 Ustawia translację w macierzy.
void MatrixGetTranslation (float *OutTranslationX, float *OutTranslationY, float *OutTranslationZ, const MATRIX &m)
 Pobiera translację z macierzy.
void MatrixGetTranslation (VEC3 *OutTranslation, const MATRIX &m)
 Pobiera translację z macierzy.
void AxesToMatrix (MATRIX *Out, const VEC3 &AxisX, const VEC3 &AxisY, const VEC3 &AxisZ)
 Tworzy macierz przekształcającą do lokalnego układu współrzędnych wyznaczonego przez podane 3 osie.
void AxesToMatrixTranslation (MATRIX *Out, const VEC3 &Origin, const VEC3 &AxisX, const VEC3 &AxisY, const VEC3 &AxisZ)
 Tworzy macierz przekształcającą do lokalnego układu współrzędnych wyznaczonego przez podane 3 osie i pozycję początku tego układu.
void LookAtLH (MATRIX *Out, const VEC3 &Eye, const VEC3 &Forward, const VEC3 &Up)
 Macierz kamery.
void LookAtRH (MATRIX *Out, const VEC3 &Eye, const VEC3 &Forward, const VEC3 &Up)
void Identity (MATRIX *Out)
 Tworzy macierz identycznościową.
void Translation (MATRIX *Out, float x, float y, float z)
 Tworzy macierz translacji (przesuwania).
void Translation (MATRIX *Out, const VEC3 &v)
void Scaling (MATRIX *Out, float sx, float sy, float sz)
 Tworzy macierz skalowania (powiększania, pomniejszania, rozciągania).
void Scaling (MATRIX *Out, const VEC3 &sv)
void Scaling (MATRIX *Out, float s)
void ScalingAxis (MATRIX *Out, const VEC3 &n, float k)
 Tworzy macierz skalowania wzdłuż podanego kierunku.
void Rotation2D (MATRIX *Out, float Angle)
 Macierz obrotu 2D.
void RotationX (MATRIX *Out, float Angle)
 Macierz obrotu wokół osi X.
void RotationY (MATRIX *Out, float Angle)
 Macierz obrotu wokół osi Y.
void RotationZ (MATRIX *Out, float Angle)
 Macierz obrotu wokół osi Z.
void RotationAxisLH (MATRIX *Out, const VEC3 &Axis, float Angle)
void RotationAxisRH (MATRIX *Out, const VEC3 &Axis, float Angle)
void RotationYawPitchRoll (MATRIX *Out, float Yaw, float Pitch, float Roll)
 Macierz obrotu wokół trzech osi w kolejności Yaw-Pitch-Roll (ZXY) - tzw. kąty Eulera.
void RotationYawPitchRoll (MATRIX *Out, const VEC3 &EulerAngles)
void RotationYawPitchRollInv (MATRIX *Out, float Yaw, float Pitch, float Roll)
 Przekształca ze wsp. świata do obiektu (interial -> object space).
void RotationYawPitchRollInv (MATRIX *Out, const VEC3 &EulerAngles)
void OrthoLH (MATRIX *Out, float Width, float Height, float ZNear, float ZFar)
 Tworzy macierz rzutowania ortogonalnego.
void OrthoRH (MATRIX *Out, float Width, float Height, float ZNear, float ZFar)
void OrthoOffCenterLH (MATRIX *Out, float Left, float Right, float Bottom, float Top, float ZNear, float ZFar)
void OrthoOffCenterRH (MATRIX *Out, float Left, float Right, float Bottom, float Top, float ZNear, float ZFar)
void PerspectiveLH (MATRIX *Out, float Width, float Height, float ZNear, float ZFar)
 Tworzy macierz rzutowania perspektywicznego.
void PerspectiveRH (MATRIX *Out, float Width, float Height, float ZNear, float ZFar)
void PerspectiveFovLH (MATRIX *Out, float FovY, float Aspect, float ZNear, float ZFar)
void PerspectiveFovRH (MATRIX *Out, float FovY, float Aspect, float ZNear, float ZFar)
void PerspectiveOffCenterLH (MATRIX *Out, float Left, float Right, float Bottom, float Top, float ZNear, float ZFar)
void PerspectiveOffCenterRH (MATRIX *Out, float Left, float Right, float Bottom, float Top, float ZNear, float ZFar)
void PerspectiveFovLH_Inf (MATRIX *Out, float FovY, float Aspect, float ZNear)
 Wersja tworząca macierz z Z-Far = INFINITY.
void MatrixShadow (MATRIX *Out, const VEC4 &Light, const PLANE &Plane)
 Tworzy macierz spłaszczającą geometrię na podaną płaszczyznę w podanym kierunku padania światła.
void MatrixReflect (MATRIX *Out, const PLANE &p)
 Tworzy macierz odbijającą geometrię względem podanej płaszczyzny.
void Transpose (MATRIX *m)
 Transpozycja macierzy na miejscu.
void Transpose (MATRIX *Out, const MATRIX &m)
 Transpozycja macierzy.
void Lerp (MATRIX *Out, const MATRIX &m1, const MATRIX &m2, float t)
 Interpolacja liniowa macierzy.
float Det (const MATRIX &m)
 Wyznacznik macierzy.
bool Inverse (MATRIX *Out, const MATRIX &m)
 Odwrotność macierzy.
void Matrix33ToMatrix (MATRIX *Out, const MATRIX33 &m)
 Konwertuje macierz 3x3 na macierz 4x4.
void MatrixToMatrix33 (MATRIX33 *Out, const MATRIX &m)
 Wyciąga podmacierz 3x3 z macierzy 4x4.
void Identity (MATRIX33 *Out)
 Tworzy macierz identycznościową.
void Transpose (MATRIX33 *m)
 Transpozycja macierzy na miejscu.
void Transpose (MATRIX33 *Out, const MATRIX33 &m)
 Transpozycja macierzy.
QUATERNION operator* (const QUATERNION pt, float v)
QUATERNION operator/ (const QUATERNION pt, float v)
QUATERNION operator* (float v, const QUATERNION pt)
QUATERNION operator/ (float v, const QUATERNION pt)
void swap (QUATERNION &v1, QUATERNION &v2)
float CalcQuaternionAngle (const QUATERNION &Q)
 Zwraca kąt obrotu jaki reprezentuje ten kwaternion.
void CalcQuaternionAxis (VEC3 *Out, const QUATERNION &Q)
 Zwraca oś obrotu jaką reprezentuje ten kwaternion.
bool QuaternionEqual (const QUATERNION &q1, const QUATERNION &q2)
 Zwraca true, jeśli podane kwaterniony są sobie mniej więcej równe.
void Minus (QUATERNION *q)
 Ujemny kwaternion.
void Minus (QUATERNION *Out, const QUATERNION &q)
void Add (QUATERNION *Out, const QUATERNION &q1, const QUATERNION &q2)
 Dodawanie, odejmowanie, mnożenie kwaternionów.
void Sub (QUATERNION *Out, const QUATERNION &q1, const QUATERNION &q2)
void Mul (QUATERNION *Out, const QUATERNION &q1, const QUATERNION &q2)
void Mul (QUATERNION *q, float v)
 Mnożenie i dzielenie kwaterniona przez skalar.
void Div (QUATERNION *q, float v)
void Mul (QUATERNION *Out, const QUATERNION &q, float v)
void Div (QUATERNION *Out, const QUATERNION &q, float v)
void RotationMatrixToQuaternion (QUATERNION *Out, const MATRIX &RotationMatrix)
 Tworzy kwaternion na podstawie macierzy obrotu.
void QuaternionToRotationMatrix (MATRIX *Out, const QUATERNION &q)
 Przekształca kwaternion w macierz obrotu.
void QuaternionTransform (VEC3 *Out, const VEC3 &p, const QUATERNION &q)
 Przekształca punkt/wektor przez kwaternion obracając go o ten kwaternion.
void EulerAnglesToQuaternionO2I (QUATERNION *Out, float Yaw, float Pitch, float Roll)
 Konwersja kątów Eulera na kwaternion (który obraca ze wsp. obiektu do świata, czyli object -> interial space) [a może odwrotnie?].
void EulerAnglesToQuaternionI2O (QUATERNION *Out, float Yaw, float Pitch, float Roll)
 Konwersja kątów Eulera na kwaternion (który obraca ze wsp. świata do obiektu, czyli interial -> object space) [a może odwrotnie?].
void QuaternionO2IToEulerAngles (float *Yaw, float *Pitch, float *Roll, const QUATERNION &q)
 Konwersja kwaterniona który obraca ze wsp. obiektu do świata, czyli object -> interial space, na kąty Eulera.
void QuaternionI2OToEulerAngles (float *Yaw, float *Pitch, float *Roll, const QUATERNION &q)
 Konwersja kwaterniona który obraca ze wsp. świata do obiektu, czyli interial -> object space, na kąty Eulera.
void QuaternionRotationX (QUATERNION *Out, float a)
 Tworzy kwaternion obracający wokół osi X.
void QuaternionRotationY (QUATERNION *Out, float a)
 Tworzy kwaternion obracający wokół osi Y.
void QuaternionRotationZ (QUATERNION *Out, float a)
 Tworzy kwaternion obracający wokół osi Z.
void AxisToQuaternion (QUATERNION *Out, const VEC3 &Axis, float Angle)
 Tworzy kwaternion na podstawie osi obrotu i kąta.
void QuaternionDiff (QUATERNION *Out, const QUATERNION &a, const QUATERNION &b)
 Oblica "różnicę" dwóch kwaternionów reprezentującą taki obrót że a*Out = b.
void Conjugate (QUATERNION *q)
 Kwaternion sprzężony do danego.
void Conjugate (QUATERNION *Out, const QUATERNION &q)
void Inverse (QUATERNION *Out, const QUATERNION &q)
 Odwrotność kwaterniona.
void Normalize (QUATERNION *Out, const QUATERNION &q)
 Normalizacja kwaternion.
void Normalize (QUATERNION *InOut)
float Dot (const QUATERNION &q1, const QUATERNION &q2)
 Iloczyn skalarny dwóch kwaternionów.
float LengthSq (const QUATERNION &q)
 Kwadrat długości kwaterniona.
float Length (const QUATERNION &q)
 Długość kwaterniona.
void Log (QUATERNION *Out, const QUATERNION &q)
void Exp (QUATERNION *Out, const QUATERNION &q)
void Pow (QUATERNION *InOut, float t)
 Podnieś kwaternion do potęgi.
void Pow (QUATERNION *Out, const QUATERNION &q, float t)
void Lerp (QUATERNION *Out, const QUATERNION &q1, const QUATERNION &q2, float t)
 Interpolacja normalna kwaternionów.
void Slerp (QUATERNION *Out, const QUATERNION &q0, const QUATERNION &q1, float t)
 Interpolacja sferyczna kwaternionów.
void Squad (QUATERNION *Out, const QUATERNION &Q1, const QUATERNION &A, const QUATERNION &B, const QUATERNION &C, float t)
void SquadSetup (QUATERNION *OutA, QUATERNION *OutB, QUATERNION *OutC, const QUATERNION &Q0, const QUATERNION &Q1, const QUATERNION &Q2, const QUATERNION &Q3)
void Affine2dToStr (tstring *Out, const AFFINE2D &aff)
bool StrToAffine2d (AFFINE2D *Out, const tstring &Str)
void swap (AFFINE2D &aff1, AFFINE2D &aff2)
void Mul (AFFINE2D &out, const AFFINE2D &lhs, const AFFINE2D &rhs)
 Per component multiplication.
void Div (AFFINE2D &out, const AFFINE2D &lhs, const AFFINE2D &rhs)
 Per component division.
void Transform (VEC2 &out, const VEC2 &v, const AFFINE2D &aff)
 2D point transformation, including translation.
void TransformNormal (VEC2 &out, const VEC2 &v, const AFFINE2D &aff)
 2D vector transformation by 2x2 submatrix, with no translation.
void Translation (AFFINE2D &out, const VEC2 &v)
void Translation (AFFINE2D &out, float x, float y)
void Scaling (AFFINE2D &out, float s)
void Scaling (AFFINE2D &out, const VEC2 &v)
void Scaling (AFFINE2D &out, float x, float y)
void Rotation (AFFINE2D &out, float angle)
void Transpose (AFFINE2D &inout)
 Transposes the 2x2 submatrix.
void Lerp (AFFINE2D &out, const AFFINE2D &lhs, const AFFINE2D &rhs, float t)
void Inverse (AFFINE2D &out, const AFFINE2D &aff)
void Affine2dToMatrix (MATRIX &out, const AFFINE2D &aff)
void MatrixToAffine2d (AFFINE2D &out, const MATRIX &m)
float CapsuleVolume (const VEC3 &p1, const VEC3 &p2, float R)
 Objętość kapsuły.
void RandomPointInCapsule (VEC3 *Out, const VEC3 &p1, const VEC3 &p2, float R, RandomGenerator &Rand)
 Losuje punkt z wnętrza kapsuły. Rozkład równomierny.
void RandomPointInCapsule (VEC3 *Out, const VEC3 &p1, const VEC3 &p2, float R)
template<typename T >
void SmoothCD_T (T *InOutPos, const T &Dest, T *InOutVel, float SmoothTime, float TimeDelta)
template<>
void SmoothCD_T< float > (float *InOutPos, const float &Dest, float *InOutVel, float SmoothTime, float TimeDelta)
template<>
void SmoothCD_T< VEC2 > (VEC2 *InOutPos, const VEC2 &Dest, VEC2 *InOutVel, float SmoothTime, float TimeDelta)
template<>
void SmoothCD_T< VEC3 > (VEC3 *InOutPos, const VEC3 &Dest, VEC3 *InOutVel, float SmoothTime, float TimeDelta)
void SphericalToCartesian (VEC3 *Out, float Yaw, float Pitch, float R)
 Tu można podawać co się chce.
void CartesianToSpherical (float *OutYaw, float *OutPitch, float *OutR, const VEC3 &Pos)
void ConvexHull2D (std::vector< VEC2 > *OutPoints, const VEC2 InPoints[], size_t InPointCount)
 Zwraca wypukłą otoczkę zbioru punktów 2D.
template<typename T >
void EvalCatmullRomCurve (T *out, const T &a, const T &b, const T &c, const T &d, float t)
 Calculates value of Catmull-Rom curve at given point t = 0..1 between points b and c.
template<typename T >
void EvalCatmullRomCurveDiff (T *out, const T &a, const T &b, const T &c, const T &d, float t)
 Evaluates tangent (not normalized) of Catmull-Rom curve at given point t = 0..1 between points b and c.
template<typename T >
void EvalQuadraticBezierCurve (T *out, const T &a, const T &b, const T &c, float t)
 Calculates value of quadratic Bezier curve at given point t = 0..1 between points a and c.
template<typename T >
void EvalCubicBezierCurve (T *out, const T &a, const T &b, const T &c, const T &d, float t)
 Calculates value of cubic Bezier curve at given point t = 0..1 between points a and d.
template<typename T >
void EvalCubicBezierCurveDiff (T *out, const T &a, const T &b, const T &c, const T &d, float t)
 Evaluates tangent (not normalized) of cubic Bezier curve at given point t = 0..1 between points a and d.
template<typename T >
void SplitCubicBezierCurve (T out1[4], T out2[4], const T &a, const T &b, const T &c, const T &d)
 Splits cubic Bezier curve in the middle (at t=0.5) into two cubic Bezier curves.
template<typename T >
void SplitCubicBezierCurve (T out1[4], T out2[4], const T &a, const T &b, const T &c, const T &d, float t)
 Splits cubic Bezier curve in the given point (at parameter t) into two cubic Bezier curves.
float CalcCubicBezierCurveLength (const VEC3 &a, const VEC3 &b, const VEC3 &c, const VEC3 &d, float t1, float t2)
float GetCubicBezierCurveArcLengthParam (const VEC3 &a, const VEC3 &b, const VEC3 &c, const VEC3 &d, float len, float epsilon)
bool IntersectCubicBezierCurve2DWithX (const VEC2 curve[4], float x, float eps, float *outY, float *outT, float t0=0.f, float t1=1.f)
 Calculates Y value and T parameter of cubic Bezier curve intersected with axis-aligned line x.
float Orient2D (const VEC2 &a, const VEC2 &b, const VEC2 &c)
 Funkcja wielofunkcyjna.
float Orient3D (const VEC3 &a, const VEC3 &b, const VEC3 &c, const VEC3 &d)
 Funkcja wielofunkcyjna.
bool PointInCircle (const VEC2 &pt, const VEC2 &circleCenter, float circleRadius)
bool PointInTriangle (const VEC2 &p, const VEC2 &a, const VEC2 &b, const VEC2 &c)
 Zwraca true, jeśli punkt p należy do trójkąta abc.
bool IsQuadConvex (const VEC2 &a, const VEC2 &b, const VEC2 &c, const VEC2 &d)
 Zwraca true, jeśli podany czworokąt jest wypukły.
bool IsQuadConvex (const VEC3 &a, const VEC3 &b, const VEC3 &c, const VEC3 &d)
 Zwraca true, jeśli podany czworokąt jest wypukły (nie zdegenerowany, nie wklęsły, nie samoprzecinający się).
float ClosestPointOnLine (const VEC3 &p, const VEC3 &RayOrig, const VEC3 &RayDir)
 Dany punkt p i promień (RayOrig, RayDir), oblicza parametr t dla punktu na tym promieniu będącego rzutem tego punktu na ten promień.
float ClosestPointSegmentSegment (const VEC3 &Seg1_Beg, const VEC3 &Seg1_End, const VEC3 &Seg2_Beg, const VEC3 &Seg2_End, float &OutSeg1_t, float &OutSeg2_t, VEC3 &OutSeg1_pt, VEC3 &OutSeg2_pt)
 Oblicza najbliższe sobie punkty na dwóch odcinkach.
float PointToLineDistanceSq (const VEC2 &P, const VEC2 &LineOrig, const VEC2 &LineDir)
 Zwraca kwadrat odległości punktu od prostej.
float PointToLineDistanceSq (const VEC3 &P, const VEC3 &LineOrig, const VEC3 &LineDir)
float PointToSegmentDistanceSq (const VEC2 &p, const VEC2 &segment_p1, const VEC2 &segment_p2)
 Zwraca kwadrat odległości punktu od odcinka.
float PointToSegmentDistanceSq (const VEC3 &p, const VEC3 &segment_p1, const VEC3 &segment_p2)
 Zwraca kwadrat odległości punktu od odcinka.
bool PointOnLine (const VEC3 &P, const VEC3 &LineOrig, const VEC3 &LineDir)
 Zwraca true, jeśli punkt leży na prostej.
float PointToLine (const VEC3 &P, const VEC3 &LineOrig, const VEC3 &LineDir)
 Zwraca parametr T punktu leżącego na prostej.
bool PointInLineSegment (const VEC3 &P, const VEC3 &SegmentBeg, const VEC3 &SegmentEnd)
 Zwraca true, jeśli punkt leży na odcinku.
float ClosestPointOnSegment (VEC2 *Out, const VEC2 &p, const VEC2 &p1, const VEC2 &p2)
 Wyznacza najbliższy punkt leżący na odcinku p1-p2 względem punktu p.
float ClosestPointOnSegment (VEC3 *Out, const VEC3 &p, const VEC3 &p1, const VEC3 &p2)
float ClosestPointOnRay (VEC2 *Out, const VEC2 &p, const VEC2 &RayOrig, const VEC2 &RayDir)
 Wyznacza najbliższy punkt leżący na półprostej względem punktu p.
float ClosestPointOnRay (VEC3 *Out, const VEC3 &p, const VEC3 &RayOrig, const VEC3 &RayDir)
void ClosestPointInBox (VEC3 *Out, const BOX &Box, const VEC3 &p)
 Wyznacza najbliższy punkt wewnątrz prostopadłościanu względem punktu p.
void ClosestPointInObb (VEC3 *OutPoint, const VEC3 &Point, const OBB &Obb)
 Znajduje punkt OutPoint należący do podanego OBB, najbliższy do punktu Point.
void ClosestPointInRect3d (VEC3 *OutPoint, const VEC3 &Point, const RECT3D &Rect3d)
 Znajduje punkt OutPoint należący do podanego prostokąta 3D, najbliższy do punktu Point.
void ClosestPointInRect3d (VEC3 *OutPoint, const VEC3 &p, const VEC3 &a, const VEC3 &b, const VEC3 &c)
 Znajduje punkt OutPoint należący do podanego prostokąta 3D wyznaczonego przez trzy wierzchołki: a, b, c, najbliższy do punktu Point.
void ClosestPointInTriangle (VEC3 *OutPoint, const VEC3 &p, const VEC3 &a, const VEC3 &b, const VEC3 &c)
 Znajduje punkt OutPoint należący do trójkąta (a, b, c) najbliższy do punktu p.
void ClosestPointInTriangle (VEC2 *out, const VEC2 &pt, const VEC2 &triA, const VEC2 &triB, const VEC2 &triC)
void ClosestPointInTetrahedron (VEC3 *OutPoint, const VEC3 &p, const VEC3 &a, const VEC3 &b, const VEC3 &c, const VEC3 &d)
 Znajduje punkt OutPoint należący do podanego czworościanu wyznaczonego przez wierzchołki: a, b, c, d, najbliższy do punktu p.
float PointToRectDistanceSq (const VEC2 &p, const RECTF &rect)
 Returns squared distance from point to rectangle. Returns 0 if point inside rectangle.
float PointToRectManhattanDistance (const VEC2 &p, const RECTF &rect)
float PointToRectMaxDistance (const VEC2 &p, const RECTF &rect)
float PointToBoxDistanceSq (const VEC3 &p, const BOX &box)
 Kwadrat odległości punktu od prostopadłościanu.
float PointToBoxManhattanDistance (const VEC3 &p, const BOX &box)
float PointToBoxMaxDistance (const VEC3 &p, const BOX &box)
float RectToRectDistanceSq (const RECTF &rect1, const RECTF &rect2)
 Returns squared distance between two rectangles. Returns 0 if given rectangles overlap.
float RectToRectManhattanDistance (const RECTF &rect1, const RECTF &rect2)
float RectToRectMaxDistance (const RECTF &rect1, const RECTF &rect2)
float BoxToBoxDistanceSq (const BOX &box1, const BOX &box2)
 Returns squared distance between two axis-aligned boxes. Returns 0 if given boxes overlap.
float BoxToBoxManhattanDistance (const BOX &box1, const BOX &box2)
float BoxToBoxMaxDistance (const BOX &box1, const BOX &box2)
float PointToObbDistanceSq (const VEC3 &Point, const OBB &Obb)
 Kwadrat odległości punktu od OBB.
bool CircleToRect (const VEC2 &circleCenter, float circleRadius, const RECTF &rect)
bool PointInSphere (const VEC3 &p, const VEC3 &SphereCenter, float SphereRadius)
 Zwraca true, jeśli podany punkt należy do sfery.
float PointToSphereDistance (const VEC3 &p, const VEC3 &SphereCenter, float SphereRadius)
 Zwraca odległość punktu od powierzchni sfery.
void ClosestPointOnSphere (VEC3 *Out, const VEC3 &SphereCenter, float SphereRadius, const VEC3 &p)
 Wyznacza najbliższy punkt na powierzchni sfery względem punktu p.
bool PointOnPlane (const VEC3 &p, const PLANE &plane)
 Zwraca true, jeśli podany punkt należy do płaszczyzny.
void ClosestPointOnPlane (VEC3 *Out, const PLANE &Plane, const VEC3 &p)
 Wyznacza najbliższy punkt na płaszczyźnie względem punktu p.
bool PointInTriangle (const VEC3 &point, const VEC3 &pa, const VEC3 &pb, const VEC3 &pc)
 Zwraca true, jeśli punkt należy do trójkąta.
bool PointInFrustum (const VEC3 &p, const FRUSTUM_PLANES &Frustum)
 Zwraca true, jeśli punkt należy do wnętrza podanego frustuma.
bool PointInFrustum (const VEC3 &p, const FRUSTUM_RADAR &Frustum)
bool ClosestPointsOnLines (float *OutT1, float *OutT2, const VEC3 &RayOrig1, const VEC3 &RayDir1, const VEC3 &RayOrig2, const VEC3 &RayDir2)
 Funkcja wyznacza parametry t1 i t2 dla punktów na dwóch prostych, w których te proste są najbliżej siebie.
bool RayToBox (float *OutT, const VEC3 &RayOrig, const VEC3 &RayDir, const BOX &Box)
 Kolizja promienia z prostopadłościanem.
bool RayToSphere (const VEC3 &RayOrig, const VEC3 &RayDir, const VEC3 &SphereCenter, float SphereRadius, float *OutT)
 Wylicza kolizję promienia ze sferą.
bool RayToPlane (const VEC3 &RayOrig, const VEC3 &RayDir, const PLANE &Plane, float *OutT, float *OutVD)
 Przecięcie promienia z płaszczyzną.
bool RayToTriangle (const VEC3 &RayOrig, const VEC3 &RayDir, const VEC3 &p0, const VEC3 &p1, const VEC3 &p2, bool BackfaceCulling, float *OutT)
 Kolizja promienia z trójkątem.
bool RayToQuad (const VEC3 &RayOrig, const VEC3 &RayDir, const VEC3 QuadPoints[4], VEC3 *OutPoint=NULL)
 Kolizja promienia z czworokątem w 3D.
bool RayToFrustum (const VEC3 &RayOrig, const VEC3 &RayDir, const FRUSTUM_PLANES &Frustum, float *t_near, float *t_far)
 Kolizja promienia z frustumem.
bool RayToCylinder (const VEC3 &RayOrig, const VEC3 &RayDir, const VEC3 &CylinderBeg, const VEC3 &CylinderEnd, float CylinderRadius, float *OutT)
 Kolizja promienia z dowolnie zorientowanym cylindrem.
bool PointInConvexPolyhedron (const VEC3 &Point, const PLANE PolyhedronPlanes[], size_t PolyhedronPlaneCount)
 Czy punkt leży wewnątrz wielościana wypukłego.
bool PointInConvexPolyhedron (const VEC3 &Point, const void *PolyhedronPlanes, size_t PolyhedronPlaneCount, int PolyhedronPlaneStride)
bool RayToConvexPolyhedron (const VEC3 &RayOrig, const VEC3 &RayDir, const PLANE PolyhedronPlanes[], size_t PolyhedronPlaneCount, float *OutBegT, float *OutEndT)
 Kolizja promienia z wielościanem wypukłym.
bool RayToConvexPolyhedron (const VEC3 &RayOrig, const VEC3 &RayDir, const void *PolyhedronPlanes, size_t PolyhedronPlaneCount, int PolyhedronPlaneStride, float *OutBegT, float *OutEndT)
bool SphereToBox (const VEC3 &SphereCenter, float SphereRadius, const BOX &Box)
 Zwraca true jeśli kula koliduje z prostopadłościanem (także jeśli jest w jego środku).
bool SphereToObb (const VEC3 &SphereCenter, float SphereRadius, const OBB &Obb)
 Zwraca true, jeśli sfera koliduje z prostopadłościanem zorientowanym.
bool SphereToTriangle (const VEC3 &SphereCenter, float SphereRadius, const VEC3 &TriA, const VEC3 &TriB, const VEC3 &TriC)
 Zwraca true, jeśli sfera koliduje z trójkątem.
bool SphereInBox (const VEC3 &SphereCenter, float SphereRadius, const BOX &Box)
 Zwraca true, jeśli sfera zawiera się w całości w prostopadłościanie.
bool BoxInSphere (const BOX &Box, const VEC3 &SphereCenter, float SphereRadius)
 Zwraca true, jeśli prostopadłościan zawiera się w całości w sferze.
int ClassifyBoxToPlane (const PLANE &plane, const BOX &box)
 Klasyfikuje położenie prostopadłościanu względem płaszczyzny.
int ClassifyObbToPlane (const PLANE &Plane, const OBB &Obb)
 Klasyfikuje położenie zorientowanego prostopadłościanu OBB względem płaszczyzny. Zwraca -1, 0, 1.
bool PlaneToBox (const PLANE &plane, const BOX &box)
 Kolizja płaszczyzny z prostopadłościanem.
bool TriangleInBox (const VEC3 &p1, const VEC3 &p2, const VEC3 &p3, const BOX &Box)
 Zwraca true, jeśli trójkąt zawiera się w prostopadłościanie.
bool TriangleToBox (const VEC3 &TriA, const VEC3 &TriB, const VEC3 &TriC, const BOX &Box)
 Zwraca true, jeśli trójkąt przecina prostopadłościan lub się w nim zawiera.
bool BoxToFrustum_Fast (const BOX &Box, const FRUSTUM_PLANES &Frustum)
 Zwraca true, jeśli podany prostopadłościan jest widoczny choć trochę w bryle widzenia.
bool BoxToFrustum (const BOX &Box, const FRUSTUM_PLANES &FrustumPlanes, const FRUSTUM_POINTS *OptFrustumPoints=NULL)
 Zwraca true, jeśli podany prostopadłościan jest widoczny choć trochę w bryle widzenia.
bool BoxToFrustum (const BOX &Box, const FRUSTUM_RADAR &Frustum)
bool BoxInFrustum (const BOX &Box, const FRUSTUM_PLANES &Frustum)
 Zwraca true, jeśli AABB jest w całości wewnątrz frustuma.
bool SphereToSphere (const VEC3 &Center1, float Radius1, const VEC3 &Center2, float Radius2)
 Zwraca true jeśli podane dwie sfery kolidują ze sobą.
bool SphereToPlane (const VEC3 &SphereCenter, float SphereRadius, const PLANE &Plane)
 Zwraca true, jeśli sfera koliduje z płaszczyzną.
int ClassifySphereToPlane (const VEC3 &SphereCenter, float SphereRadius, const PLANE &Plane)
 Klasyfikuje położenie sfery względem płaszczyzny.
bool CapsuleToPlane (const VEC3 &CapsuleBeg, const VEC3 &CapsuleEnd, float CapsuleRadius, const PLANE &Plane)
 Kolizja kapsuły (lub sfery poruszającej się od CapsuleBeg do CapsuleEnd) z płaszczyzną.
bool SphereToFrustum_Fast (const VEC3 &SphereCenter, float SphereRadius, const FRUSTUM_PLANES &Frustum)
 Zwraca true, jeśli sfera koliduje z frustumem.
bool SphereToFrustum (const VEC3 &SphereCenter, float SphereRadius, const FRUSTUM_PLANES &FrustumPlanes, const FRUSTUM_POINTS *OptFrustumPoints=NULL)
 Zwraca true, jeśli sfera koliduje z frustumem.
bool SphereToFrustum (const VEC3 &SphereCenter, float SphereRadius, const FRUSTUM_RADAR &Frustum)
 Testuje przecięcie sfery z frustumem.
bool SphereInFrustum (const VEC3 &SphereCenter, float SphereRadius, const FRUSTUM_PLANES &Frustum)
 Zwraca true, jeśli sfera zawiera się w całości wewnątrz frustuma.
bool Intersect2Planes (const PLANE &Plane1, const PLANE &Plane2, VEC3 *OutLineOrig, VEC3 *OutLineDir)
 Wylicza kolizję dwóch płaszczyzn zwracając parametry prostej tworzącej ich przecięcie.
bool Intersect3Planes (const PLANE &P1, const PLANE &P2, const PLANE &P3, VEC3 *OutP)
 Zwraca punkt przecięcia trzech płaszczyzn lub false, jeśli taki punkt nie istnieje.
bool PlaneToTriangle (const PLANE &Plane, const VEC3 &p0, const VEC3 &p1, const VEC3 &p2)
 Kolizja płaszczyzny z trójkątem.
int ClassifyPlaneToTriangle (const PLANE &Plane, const VEC3 &p0, const VEC3 &p1, const VEC3 &p2)
 Klasyfikuje położenie trójkąta względem płaszczyzny.
int ClassifyFrustumToPlane (const FRUSTUM_POINTS &Frustum, const PLANE &Plane)
 Kolizja płaszczyzny z frustumem (klasyfikacja).
bool SegmentToSegment (const VEC2 &Seg1_Beg, const VEC2 &Seg1_End, const VEC2 &Seg2_Beg, const VEC2 &Seg2_End, float *OutSeg1_t=NULL)
 Zwraca true, jeśli dwa odcinki 2D zachodzą na siebie.
bool TriangleToTriangle (const VEC3 &V0, const VEC3 &V1, const VEC3 &V2, const VEC3 &U0, const VEC3 &U1, const VEC3 &U2)
 Testuje kolizję dwóch trójkątów 3D.
bool TriangleInFrustum (const VEC3 &t1, const VEC3 &t2, const VEC3 &t3, const FRUSTUM_PLANES &Frustum)
 Testuje, czy trójkąt leży w całości wewnątrz frustuma.
bool TriangleToFrustum (const VEC3 &t1, const VEC3 &t2, const VEC3 &t3, const PLANE *OptTrianglePlane, const FRUSTUM_PLANES &FrustumPlanes, const FRUSTUM_POINTS *OptFrustumPoints)
 Testuje kolizję trójkąta z frustumem.
bool FrustumToFrustum (const FRUSTUM_PLANES &Frustum1_Planes, const FRUSTUM_POINTS &Frustum1_Points, const FRUSTUM_PLANES &Frustum2_Planes, const FRUSTUM_POINTS &Frustum2_Points)
 Testuje kolizję między dwoma frustumami.
bool SphereToCapsule (const VEC3 &SphereCenter, float SphereRadius, const VEC3 &Capsule_Beg, const VEC3 &Capsule_End, float Capsule_Radius)
 Kolizja sfery z kapsułą.
bool CapsuleToCapsule (const VEC3 &Capsule1_Beg, const VEC3 &Capsule1_End, float Capsule1_Radius, const VEC3 &Capsule2_Beg, const VEC3 &Capsule2_End, float Capsule2_Radius)
 Kolizja kapsuły z kapsułą.
bool PointInConvexPolygon (const VEC2 &Point, const VEC2 PolygonPoints[], size_t PolygonPointCount)
 Sprawdza, czy punkt leży wewnątrz wypukłego wielokąta 2D.
bool PointInConvexPolygon (const VEC2 &Point, const void *PolygonPoints, size_t PolygonPointCount, int PolygonPointStride)
bool PointInPolygon (const VEC2 &Point, const VEC2 PolygonPoints[], size_t PolygonPointCount)
 Zwraca true, jeśli podany punkt leży wewnątrz podanego wielokąta (2D).
bool PointInPolygon (const VEC2 &Point, const void *PolygonPoints, size_t PolygonPointCount, int PolygonPointStride)
bool RayToConvexPolygon (const VEC3 &RayOrig, const VEC3 &RayDir, const VEC3 PolygonPoints[], size_t PolygonPointCount, bool BackfaceCulling, float *OutT, VEC3 *OutPoint, const PLANE *PolygonPlane=NULL)
 Zwraca true, jeśli promień przecina wielokąt wypukły 3D i wtedy przez OutT zwraca parametr dla promienia.
bool RayToConvexPolygon (const VEC3 &RayOrig, const VEC3 &RayDir, const void *PolygonPoints, size_t PolygonPointCount, int PolygonPointStride, bool BackfaceCulling, float *OutT, VEC3 *OutPoint, const PLANE *PolygonPlane=NULL)
bool RayToPolygon (const VEC3 &RayOrig, const VEC3 &RayDir, const VEC3 PolygonPoints[], size_t PolygonPointCount, bool BackfaceCulling, float *OutT, VEC3 *OutPoint, const PLANE *PolygonPlane=NULL)
 Zwraca true, jeśli promień przecina wielokąt 3D i wtedy przez OutT zwraca parametr dla promienia.
bool RayToPolygon (const VEC3 &RayOrig, const VEC3 &RayDir, const void *PolygonPoints, size_t PolygonPointCount, int PolygonPointStride, bool BackfaceCulling, float *OutT, VEC3 *OutPoint, const PLANE *PolygonPlane=NULL)
bool SweptSphereToPlane (const VEC3 &SphereCenter, float SphereRadius, const VEC3 &SphereSweepDir, const PLANE &Plane, float *OutT0, float *OutT1)
 Liczy kolizję poruszającej się sfery z płaszczyzną.
bool SweptSphereToFrustum (const VEC3 &SphereCenter, float SphereRadius, const VEC3 &SphereSweepDir, const FRUSTUM_PLANES &Frustum)
 Oblicza kolizję poruszającej się sfery z frustumem.
bool SweptSphereToSphere (const VEC3 &SphereCenter1, float SphereRadius1, const VEC3 &SphereCenter2, float SphereRadius2, const VEC3 &SphereSweepDir1, float *OutT1, float *OutT2)
 Analityczna kolizja dwóch poruszających się sfer.
bool SweptBoxToBox (const BOX &Box1, const BOX &Box2, const VEC3 &SweepDirBox1, float *OutT1, float *OutT2)
 Kolizja poruszającego się AABB z drugim AABB.
int RayToCone (const VEC3 &rayOrig, const VEC3 &rayDir, const VEC3 &coneVertex, const VEC3 &coneDirVec, float coneHalfAngle, VEC3 intersections[2])
bool PointInCone (const VEC3 &pt, const VEC3 &coneVertex, const VEC3 &coneDirVec, float coneHalfAngle)
bool SegmentIntersectsOrIsContainedInCone (const VEC3 &segmentPoint1, const VEC3 &segmentPoint2, const VEC3 &coneVertex, const VEC3 &coneDirVec, const float coneHalfAngle, VEC3 intersections[2], int &numIntersectionsFound)
bool SegmentIntersectsOrIsContainedInCone (const VEC3 &segmentPoint1, const VEC3 &segmentPoint2, const VEC3 &coneVertex, const VEC3 &coneDirVec, const float coneHalfAngle)
size_t ClosestPoint (const VEC2 &p, const VEC2 Points[], size_t PointCount, float *OutDistance=NULL)
 Z podanej tablicy punktów typu VEC2 znajduje punkt najbliższy względem p, zwraca jego indeks.
size_t ClosestPoint (const VEC2 &p, const void *Data, size_t PointCount, int Stride, float *OutDistance=NULL)
size_t ClosestPoint (const VEC3 &p, const VEC3 Points[], size_t PointCount, float *OutDistance=NULL)
 Z podanej tablicy punktów typu VEC3 znajduje punkt najbliższy względem p, zwraca jego indeks.
size_t ClosestPoint (const VEC3 &p, const void *Data, size_t PointCount, int Stride, float *OutDistance=NULL)
size_t FurthestPoint (const VEC2 &p, const VEC2 Points[], size_t PointCount, float *OutDistance=NULL)
 Z podanej tablicy punktów typu VEC2 znajduje punkt najdalszy względem p, zwraca jego indeks.
size_t FurthestPoint (const VEC2 &p, const void *Data, size_t PointCount, int Stride, float *OutDistance=NULL)
size_t FurthestPoint (const VEC3 &p, const VEC3 Points[], size_t PointCount, float *OutDistance=NULL)
 Z podanej tablicy punktów typu VEC3 znajduje punkt najdalszy względem p, zwraca jego indeks.
size_t FurthestPoint (const VEC3 &p, const void *Data, size_t PointCount, int Stride, float *OutDistance=NULL)
size_t FurthestPointForDir (const VEC2 &Dir, const VEC2 Points[], size_t PointCount)
 Z podanej tablicy punktów typu VEC2 znajduje najbardziej wysunięty w kierunku określonym przez Dir. Zwraca jego indeks.
size_t FurthestPointForDir (const VEC2 &Dir, const void *Data, size_t PointCount, int Stride)
size_t FurthestPointForDir (const VEC3 &Dir, const VEC3 Points[], size_t PointCount)
 Z podanej tablicy punktów typu VEC3 znajduje najbardziej wysunięty w kierunku określonym przez Dir. Zwraca jego indeks.
size_t FurthestPointForDir (const VEC3 &Dir, const void *Data, size_t PointCount, int Stride)
void RectBoundingPoints (RECTF *OutRect, const VEC2 Points[], size_t PointCount)
 Tworzy najmniejszy prostokąt otaczający podany zbiór punktów typu VEC2.
void RectBoundingPoints (RECTF *OutRect, const void *Data, size_t PointCount, int Stride)
void BoxBoundingPoints (BOX *box, const VEC3 points[], size_t PointCount)
 Tworzy najmniejszy boks otaczający podany zbiór punktów typu VEC3.
void BoxBoundingPoints (BOX *box, const void *Data, size_t PointCount, int Stride)
void SphereBoundingSpheres (VEC3 *OutCenter, float *OutRadius, const VEC3 &Center1, float Radius1, const VEC3 &Center2, float Radius2)
 Liczy sferę otaczającą dwie sfery.
void CircleBoundingPoints (VEC2 *OutSphereCenter, float *OutSphereRadius, const VEC2 Points[], size_t PointCount)
 Znajduje okrąg otaczający podany zbiór punktów typu VEC2.
void CircleBoundingPoints (VEC2 *OutSphereCenter, float *OutSphereRadius, const void *PointData, size_t PointCount, int PointStride)
void SphereBoundingPoints (VEC3 *OutSphereCenter, float *OutSphereRadius, const VEC3 Points[], size_t PointCount)
 Znajduje sferę otaczającą podany zbiór punktów typu VEC3.
void SphereBoundingPoints (VEC3 *OutSphereCenter, float *OutSphereRadius, const void *PointData, size_t PointCount, int PointStride)
void OriginCircleBoundingPoints (float *OutRadius, const VEC2 Points[], size_t PointCount)
 Znajduje promień najmniejszego okręgu o środku (0,0) otaczającego podany zbiór punktów 2D.
void OriginCircleBoundingPoints (float *OutRadius, const void *PointData, size_t PointCount, int PointStride)
void OriginSphereBoundingPoints (float *OutRadius, const VEC3 Points[], size_t PointCount)
 Znajduje promień najmniejszej sfery o środku (0,0) otaczającej podany zbiór punktów 3D.
void OriginSphereBoundingPoints (float *OutRadius, const void *PointData, size_t PointCount, int PointStride)
void CalcCentroid (VEC2 *OutCentroid, const VEC2 Points[], size_t PointCount)
 Dla podanego zbioru punktów typu VEC2 oblicza ich centroid, czyli po prostu średnią.
void CalcCentroid (VEC2 *OutCentroid, const void *PointData, size_t PointCount, int PointStride)
void CalcCentroid (VEC3 *OutCentroid, const VEC3 Points[], size_t PointCount)
 Dla podanego zbioru punktów typu VEC3 oblicza ich centroid, czyli po prostu średnią.
void CalcCentroid (VEC3 *OutCentroid, const void *PointData, size_t PointCount, int PointStride)
void CalcCovarianceMatrix (MATRIX33 *OutCov, const VEC3 Points[], size_t PointCount)
 Oblicza macierz kowariancji dla podanego zbioru punktów typu VEC3.
void CalcCovarianceMatrix (MATRIX33 *OutCov, const void *PointData, size_t PointCount, int PointStride)
void CalcEigenvaluesAndEigenvectors (MATRIX33 *InCovOutEigenvalues, MATRIX33 *OutEigenvectors)
 Oblicza wartości własne i wektory własne dla podanej macierzy symetrycznej (np. macierz kowariancji).
void BoxBoundingSphere (VEC3 *SphereCenter, float *SphereRadius, const BOX &Box)
 Oblicza sferę otaczającą box.
void SphereBoundingBox (BOX *Out, const VEC3 &SphereCenter, float SphereRadius)
 Oblicza box otaczający sferę.
void BoxBoundingSpheres (BOX *OutBox, const VEC3 SpheresCenter[], const float SpheresRadius[], size_t SphereCount)
 Wylicza AABB otaczający podany zbiór sfer.
void RandomPointInUnitSphere (VEC3 *Out, RandomGenerator &Rand)
 Losuje punkt wewnątrz kuli o środku w (0,0,0) i promieniu 1. Rozkład równomierny.
void RandomPointInUnitSphere (VEC3 *Out)
void RandomPointInUnitCircle (VEC2 *Out, RandomGenerator &Rand)
 Losuje punkt wewnątrz koła o środku w (0,0) i promieniu 1. Rozkład równomierny.
void RandomPointInUnitCircle (VEC2 *Out)
void CalcBillboardOrientation (VEC3 *OutRight, VEC3 *OutUp, unsigned DegreesOfFreedom, bool UseRealDir, const VEC3 &DefinedRight, const VEC3 &DefinedUp, const VEC3 &CamRightDir, const VEC3 &CamRealUpDir, const VEC3 &CameraToObjectDir)
 Calculates orientation of a 3D billboard in according to its parameters and camera parameters.
void _ThrowBufEndError (const tchar *File, int Line)
void MD5ToStr (tstring *Out, const MD5_SUM MD5)
bool StrToMD5 (MD5_SUM *Out, const tstring &s)
size_t Copy (Stream *Dst, Stream *Src, size_t MaxLength)
 Kopiuje dane z jednego strumienia do drugiego - co najwyżej MaxLength bajtów.
void MustCopy (Stream *Dst, Stream *Src, size_t Length)
 Kopiuje dane z jednego strumienia do drugiego - dokładnie Length bajtów.
size_t CopyToEnd (Stream *Dst, Stream *Src)
 Kopiuje dane z jednego strumienia do drugiego aż do końca tego źródłowego.

Variables

const int1 MININT1 = std::numeric_limits<int1>::min()
const int1 MAXINT1 = std::numeric_limits<int1>::max()
const int2 MININT2 = std::numeric_limits<int2>::min()
const int2 MAXINT2 = std::numeric_limits<int2>::max()
const int4 MININT4 = std::numeric_limits<int4>::min()
const int4 MAXINT4 = std::numeric_limits<int4>::max()
const int8 MININT8 = std::numeric_limits<int8>::min()
const int8 MAXINT8 = std::numeric_limits<int8>::max()
const uint1 MAXUINT1 = std::numeric_limits<uint1>::max()
const uint2 MAXUINT2 = std::numeric_limits<uint2>::max()
const uint4 MAXUINT4 = std::numeric_limits<uint4>::max()
const uint8 MAXUINT8 = std::numeric_limits<uint8>::max()
const float MINFLOAT = std::numeric_limits<float>::min()
const float MAXFLOAT = std::numeric_limits<float>::max()
const float E = 2.71828182845904523536f
 e
const float LOG2E = 1.44269504088896340736f
 log2(e)
const float LOG10E = 0.434294481903251827651f
 log10(e)
const float LN2 = 0.693147180559945309417f
 ln(2)
const float LN10 = 2.30258509299404568402f
 ln(10)
const float PI = 3.14159265358979323846264338327950288419716939937510582f
 pi
const float PI_2 = 1.57079632679489661923f
 pi/2
const float PI_4 = 0.785398163397448309616f
 pi/4
const float PI_X_2 = 6.28318530717958647692f
 2*pi
const float _1_PI = 0.318309886183790671538f
 1/pi
const float _2_PI = 0.636619772367581343076f
 2/pi
const float _2_SQRTPI = 1.12837916709551257390f
 2/sqrt(pi)
const float SQRT2 = 1.41421356237309504880f
 sqrt(2)
const float SQRT3 = 1.7320508075688772935274463415059f
 sqrt(3)
const float SQRT1_2 = 0.707106781186547524401f
 1/sqrt(2)
const tstring EMPTY_STRING
 Łańcuch pusty - do wykorzystania aby można było pobierać do niego referencje itp.
const tchar *const EOL
 Standardowy łańcuch końca wiersza zależny od systemu.
const char *const BOM_UTF8
const char *const BOM_UTF16_LE
const char *const BOM_UTF16_BE
const tchar DIR_SEP = _T('\\')
 Separator katalogów w ścieżce, zależny od platformy.
const tchar _DIGITS_L []
const tchar _DIGITS_U []
RandomGenerator g_Rand
 Domyślny generator liczb losowych do używania w wątku głównym i kiedy nie musi być deterministyczny.
const tchar *const DEFAULT_FORMAT
 Domyślny format dla StrToDate() i DateToStr().
const float FLOAT_EPSILON = 1e-6f
 Mała stała.
const common::POINT_ POINT_ZERO
const common::POINT_ POINT_ONE
const common::POINT_ POINT_NEGATIVE_X
const common::POINT_ POINT_NEGATIVE_Y
const common::POINT_ POINT_POSITIVE_X
const common::POINT_ POINT_POSITIVE_Y
const VEC2 VEC2_ZERO
const VEC2 VEC2_ONE
const VEC2 VEC2_POSITIVE_X
const VEC2 VEC2_POSITIVE_Y
const VEC2 VEC2_NEGATIVE_X
const VEC2 VEC2_NEGATIVE_Y
const VEC3 VEC3_ZERO
const VEC3 VEC3_ONE
const VEC3 VEC3_POSITIVE_X
const VEC3 VEC3_POSITIVE_Y
const VEC3 VEC3_POSITIVE_Z
const VEC3 VEC3_NEGATIVE_X
const VEC3 VEC3_NEGATIVE_Y
const VEC3 VEC3_NEGATIVE_Z
const VEC4 VEC4_ZERO
const VEC4 VEC4_ONE
const VEC4 VEC4_POSITIVE_X
const VEC4 VEC4_POSITIVE_Y
const VEC4 VEC4_POSITIVE_Z
const VEC4 VEC4_POSITIVE_W
const VEC4 VEC4_NEGATIVE_X
const VEC4 VEC4_NEGATIVE_Y
const VEC4 VEC4_NEGATIVE_Z
const VEC4 VEC4_NEGATIVE_W
const RECTI RECTI_ZERO
const RECTI RECTI_ZERO_ONE
const RECTI RECTI_MINUS_ONE_ONE
const RECTI RECTI_MAX
const RECTI RECTI_INV_MAX
const RECTF RECTF_ZERO
const RECTF RECTF_ZERO_ONE
const RECTF RECTF_MINUS_ONE_ONE
const RECTF RECTF_MAX
 Maximal possible rectangle: -FLT_MAX..FLT_MAX.
const RECTF RECTF_INV_MAX
 Inverted maximal rectangle: FLT_MAX..-FLT_MAX. It's invalid. Use it to initialize rectangle for finding min-max.
const BOX BOX_ZERO
const BOX BOX_ZERO_ONE
const BOX BOX_MINUS_ONE_ONE
const BOX BOX_MAX
 Maximal possible box: -FLT_MAX..FLT_MAX.
const BOX BOX_INV_MAX
 Inverted maximal box: FLT_MAX..-FLT_MAX. It's invalid. Use it to initialize box for finding min-max.
const COLOR COLOR_TRANSPARENT_
const COLOR COLOR_BLACK
const COLOR COLOR_GRAY
const COLOR COLOR_SILVER
const COLOR COLOR_WHITE
const COLOR COLOR_FUCHSIA
const COLOR COLOR_RED
const COLOR COLOR_ORANGE
const COLOR COLOR_YELLOW
const COLOR COLOR_LIME
const COLOR COLOR_AQUA
const COLOR COLOR_BLUE
const COLOR COLOR_PURPLE
const COLOR COLOR_MAROON
const COLOR COLOR_OLIVE
const COLOR COLOR_GREEN
const COLOR COLOR_TEAL
const COLORF COLORF_TRANSPARENT_
const COLORF COLORF_BLACK
const COLORF COLORF_GRAY
const COLORF COLORF_SILVER
const COLORF COLORF_WHITE
const COLORF COLORF_FUCHSIA
const COLORF COLORF_RED
const COLORF COLORF_ORANGE
const COLORF COLORF_YELLOW
const COLORF COLORF_LIME
const COLORF COLORF_AQUA
const COLORF COLORF_BLUE
const COLORF COLORF_PURPLE
const COLORF COLORF_MAROON
const COLORF COLORF_OLIVE
const COLORF COLORF_GREEN
const COLORF COLORF_TEAL
const PLANE PLANE_ZERO
const PLANE PLANE_POSITIVE_X
 Płaszczyzna pionowa, równoległa do Y i Z, wskazująca na prawo na X.
const PLANE PLANE_POSITIVE_Y
 Płaszczyzna pozioma, równoległa do X i Z, wskazująca do góry na Y.
const PLANE PLANE_POSITIVE_Z
 Płaszczyzna pionowa, równoległa do X i Y, wskazująca w głąb na Z.
const PLANE PLANE_NEGATIVE_X
 Płaszczyzna pionowa, równoległa do Y i Z, wskazująca na lewo na X.
const PLANE PLANE_NEGATIVE_Y
 Płaszczyzna pozioma, równoległa do X i Z, wskazująca w dół na Y.
const PLANE PLANE_NEGATIVE_Z
 Płaszczyzna pionowa, równoległa do X i Y, wskazująca do gracza na Z.
const LINE2D LINE2D_ZERO
const LINE2D LINE2D_POSITIVE_X
const LINE2D LINE2D_NEGATIVE_X
const LINE2D LINE2D_POSITIVE_Y
const LINE2D LINE2D_NEGATIVE_Y
const MATRIX MATRIX_ZERO
const MATRIX MATRIX_IDENTITY
const MATRIX33 MATRIX33_ZERO
const MATRIX33 MATRIX33_IDENTITY
const QUATERNION QUATERNION_ZERO
const QUATERNION QUATERNION_IDENTITY
const AFFINE2D AFFINE2D_ZERO
const AFFINE2D AFFINE2D_IDENTITY
const MATRIX HL2_TO_TANGENT_MATRIX
const MATRIX TANGENT_TO_HL2_MATRIX
const VEC3 HL2_BASIS_VECTORS [3]
 Wektory bazowe HL2 Space wyrażone w Tangent Space.
const float POISSON_DISC_1D []
const uint4 POISSON_DISC_1D_COUNT = 100
const VEC2 POISSON_DISC_2D []
const uint4 POISSON_DISC_2D_COUNT = 100
const VEC3 POISSON_DISC_3D []
const uint4 POISSON_DISC_3D_COUNT = 100
const size_t BUFFER_SIZE
Poziomy kompresji Zlib.



const int ZLIB_STORE_LEVEL = 0
 Brak kompresji (co nie znaczy że dane zostaną dosłownie przepisane).
const int ZLIB_FASTEST_LEVEL = 1
 Najsłabsza kompresja, ale najszybsza.
const int ZLIB_BEST_LEVEL = 9
 Najlepsza jakość kompresji.
const int ZLIB_DEFAULT_LEVEL
 Domyślny poziom kompresji.

Detailed Description

Główna przestrzeń nazw biblioteki CommonLib.


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