Dokumentacja pliku Base.hpp

Moduł podstawowy. Więcej...

#include <cassert>
#include <string>
#include <vector>
#include <limits>
#include <cmath>
#include <tchar.h>
#include <wchar.h>

Idź do kodu źródłowego tego pliku.

Przestrzenie nazw

namespace  common

Komponenty

class  common::Singleton< T >
 Wzorzec projektowy Singleton - klasa bazowa. Więcej...
class  common::DeletePolicy
 Polityka zwalaniania inteligentnych wskaźników, która robi: delete p;. Więcej...
class  common::DeleteArrayPolicy
 Polityka zwalaniania inteligentnych wskaźników, która robi: delete [] p;. Więcej...
class  common::ReleasePolicy
 Polityka zwalaniania inteligentnych wskaźników, która robi: p->Release();. Więcej...
class  common::scoped_ptr< T, PolicyT >
 Inteligentny wskaźnik z wyłącznym prawem własności. Więcej...
class  common::shared_ptr< T, PolicyT >
 Inteligentny wskaźnik ze zliczaniem referencji. Więcej...
class  common::CloseHandlePolicy
 Polityka zwalniania uchwytu - robi: CloseHandle(p);. Więcej...
class  common::DeleteObjectPolicy
 Polityka zwalniania uchwytu - robi: DeleteObject(p);. Więcej...
class  common::scoped_handle< T, PolicyT >
 Inteligentny uchwyt - wyłączna własność. Więcej...
class  common::shared_handle< T, PolicyT >
 Inteligentny uchwyt ze zliczaniem referencji. Więcej...
class  common::StringNaturalCompare
 Klasa do porównywania w porządku naturalnym. Więcej...
class  common::StringNaturalLess
 Predykat do sortowania łańcuchów w porządku naturalnym. Więcej...
class  common::StringNaturalGreater
 Predykat do sortowania łańcuchów w porządku naturalnym. Więcej...
class  common::StrLessCi
 Predykat do porównywania łańcuchów bez rozróżniania wielkości liter. Więcej...
class  common::StrGreaterCi
 Predykat do porównywania łańcuchów bez rozróżniania wielkości liter. Więcej...
class  common::TimeMeasurer
 Klasa do precyzyjnego mierzenie czasu. Więcej...
class  common::RandomGenerator
 Generator liczb pseudolosowych. Więcej...
class  common::UniqueGenerator
 Generator unikatowych identyfikatorów. Więcej...
class  common::CmdLineParser
 Parser wiersza poleceń. Więcej...
struct  SthToStr_obj< T >
struct  StrToSth_obj< T >
class  common::Format_pimpl
class  common::Format
 Klasa do wygodnego składania stringów z różnych informacji. Więcej...
struct  SthToStr_obj< bool >
struct  SthToStr_obj< tchar >
struct  SthToStr_obj< int2 >
struct  SthToStr_obj< int4 >
struct  SthToStr_obj< long >
struct  SthToStr_obj< int8 >
struct  SthToStr_obj< uint1 >
struct  SthToStr_obj< uint2 >
struct  SthToStr_obj< uint4 >
struct  SthToStr_obj< unsigned long >
struct  SthToStr_obj< uint8 >
struct  SthToStr_obj< float >
struct  SthToStr_obj< double >
struct  SthToStr_obj< tstring >
struct  SthToStr_obj< std::vector< T > >
struct  SthToStr_obj< char * >
struct  SthToStr_obj< const tchar * >
struct  SthToStr_obj< void * >
struct  SthToStr_obj< const void * >
struct  StrToSth_obj< bool >
struct  StrToSth_obj< tchar >
struct  StrToSth_obj< int2 >
struct  StrToSth_obj< int4 >
struct  StrToSth_obj< long >
struct  StrToSth_obj< int8 >
struct  StrToSth_obj< uint1 >
struct  StrToSth_obj< uint2 >
struct  StrToSth_obj< uint4 >
struct  StrToSth_obj< unsigned long >
struct  StrToSth_obj< uint8 >
struct  StrToSth_obj< float >
struct  StrToSth_obj< double >
struct  StrToSth_obj< tstring >
struct  StrToSth_obj< std::vector< T > >

Definicje

#define NOMINMAX
 To jest na wypadek włączania gdzieś niżej przez użytkownika <windows.h>.
#define TCHAR_TO_INT(c)   ( (int)(c) )
 Konwertuje znak na liczbę naturalną.
#define INT_TO_TCHAR(i)   ( (wchar_t)(i) )
 Konwertuje liczbę 0..255 na znak.
#define __TFILE__   _T(__FILE__)
 Nazwa bieżącego pliku źródłowego jako łańcuch, zależnie od makra _UNICODE jest w Unikodzie.
#define __TFUNCSIG__   _T(__FUNCSIG__)
 Pełna pygnatura bieżącej funkcji w kodzie, zależnie od makra _UNICODE jest w Unikodzie.
#define SAFE_DELETE(x)   { delete (x); (x) = 0; }
 Jeśli wskaźnik niezerowy, zwalnia go i zeruje.
#define SAFE_DELARR(x)   { delete [] (x); (x) = 0; }
 Jeśli wskaźnik niezerowy, zwalnia go jako tablicę i zeruje.
#define SAFE_RELEASE(x)   { if (x) { (x)->Release(); (x) = 0; } }
 Jeśli wskaźnik niezerowy, wywołuje mu Release() i zeruje.
#define PACKED   __attribute__((packed))
 Do robienia alignacji co do jednego bajtu dla struktur, czyli bez wypełniaczy.
#define DECLARE_NO_COPY_CLASS(ClassName)
 Makro do umieszczania w klasach, żeby klasa nie miała konstruktora kopiującego ani operatora przypisania.
#define FLOAT_ALMOST_ZERO(F)   ((absolute_cast<uint4>(F) & 0x7f800000L) == 0)
 Liczba zmiennoprzecinkowa bliska zeru.

Definicje typów

typedef TCHAR tchar
 Typ znakowy, zależnie od makra _UNICODE zdefiniowany jako char lub wchar_t.
typedef std::wstring tstring
 Typ łańcuchowy, zależnie od makra _UNICODE zdefiniowany jako std::string lub std::wstring.
typedef unsigned __int32 uint
 Liczba 32-bitowa bez znaku.
typedef __int8 int1
 Liczba 8-bitowa ze znakiem.
typedef unsigned __int8 uint1
 Liczba 8-bitowa bez znaku.
typedef __int16 int2
 Liczba 16-bitowa ze znakiem.
typedef unsigned __int16 uint2
 Liczba 16-bitowa bez znaku.
typedef __int32 int4
 Liczba 32-bitowa ze znakiem.
typedef unsigned __int32 uint4
 Liczba 32-bitowa bez znaku.
typedef __int64 int8
 Liczba 64-bitowa ze znakiem.
typedef unsigned __int64 uint8
 Liczba 64-bitowa bez znaku.
typedef std::vector< tstring > STRING_VECTOR
 Wektor łańcuchów.

Wyliczenia

enum  common::ORIENTATION { common::O_NONE, common::O_VERT, common::O_HORIZ }
 Orientacja, czyli ułożenie - pionowa lub pozioma. Więcej...
enum  common::EOLMODE { common::EOL_NONE, common::EOL_CRLF, common::EOL_LF, common::EOL_CR }
 Rodzaje znaków końca wiersza. Więcej...
enum  common::CHARSET {
  common::CHARSET_NONE = 0, common::CHARSET_WINDOWS, common::CHARSET_ISO, common::CHARSET_IBM,
  common::CHARSET_UTF8
}
 Strona kodowa polskich znakow. Więcej...

Funkcje

template<typename destT, typename srcT>
destT & absolute_cast (srcT &v)
 Uniwersalny, brakujący w C++ operator dosłownego rzutowania (reintepretacji bitowej).
template<typename destT, typename srcT>
const destT & absolute_cast (const srcT &v)
template<typename T>
bool common::IsPow2 (T x)
 Zwraca true, jeśli podana liczba jest potęgą dwójki.
uint4 common::log2u (uint4 x)
 Zwraca logarytm dwójkowy z podanej liczby całkowitej bez znaku, tzn numer najstarszego niezerowego bitu.
uint4 common::GetBitMask (uint4 n)
 Zwraca maskę bitową z ustawionymi na jedynkę n najmłodszymi bitami.
template<typename T>
T ** common::new_2d (size_t cx, size_t cy)
 Alokuje nową tablicę dynamiczną 2D.
template<typename T>
void common::delete_2d (T **a, size_t cx)
 Zwalnia tablicę dynamiczną 2D.
void common::strcpy0 (tchar *dest, const tstring &src)
 Kopiuje string do char* łącznie ze znakami '\0' (czego nie zapewnia strcpy).
void common::ZeroMem (void *Data, size_t NumBytes)
 Zeruje pamięć.
void common::CopyMem (void *Out, const void *In, size_t NumBytes)
 Kopuje pamięć.
bool common::CompareMem (const void *Data1, const void *Data2, size_t NumBytes)
 Zwraca true, jeśli pamięć jest identyczna.
void common::FillMem (void *Data, size_t NumBytes, uint1 Byte)
 Wypełnia pamięć podanym bajtem.
template<class Iterator>
void common::InsertionSort (Iterator b, Iterator e)
 Algorytm jak te z STL - sortowanie przez wstawianie.
template<class Iterator, typename Compare>
void common::InsertionSort (Iterator b, Iterator e, Compare Comp)
 Algorytm jak te z STL - sortowanie przez wstawianie, z własnym komparatorem.
template<typename T, typename PolicyT>
void common::swap (scoped_ptr< T, PolicyT > &a, scoped_ptr< T, PolicyT > &b)
template<typename T, typename PolicyT>
void common::swap (shared_ptr< T, PolicyT > &a, shared_ptr< T, PolicyT > &b)
template<typename T, typename PolicyT>
void common::swap (scoped_handle< T, PolicyT > &a, scoped_handle< T, PolicyT > &b)
template<typename T, typename PolicyT>
void common::swap (shared_handle< T, PolicyT > &a, shared_handle< T, PolicyT > &b)
bool common::CharIsAlphaNumeric (tchar ch)
 Zwraca true, jesli znak jest alfanumeryczny (litera lub cyfra) wg ustawień systemu.
bool common::CharIsAlpha (tchar ch)
 Zwraca true, jesli znak jest litera.
bool common::CharIsDigit (tchar ch)
 Zwraca true, jesli znak jest cyfrą dziesietną.
bool common::CharIsHexDigit (tchar ch)
 Zwraca true, jeśli znak jest cyfrą szesnastkową.
bool common::CharIsLower (tchar ch)
 Zwraca true, jesli znak jest mala litera.
bool common::CharIsUpper (tchar ch)
 Zwraca true, jesli znak jest duza litera.
bool common::CharIsWhitespace (char ch)
 Zwraca true, jesli podany znak jest odstepem, czyli bialym znakiem wg systemu.
bool common::CharIsWhitespace (wchar_t ch)
bool common::CharIsWhitespace_f (tchar ch)
 Zwraca true, jesli podany znak jest odstepem, czyli bialym znakiem.
void common::ReverseString (tstring *s)
 Odwraca łańcuch w miejscu.
void common::Trim (tstring *s)
 Obcina białe znaki z początku i końca łańcucha w miejscu.
void common::Trim (tstring *Out, const tstring &s)
 Obcina białe znaki z początku i końca łańcucha.
tchar common::CharToLower (tchar ch)
 Jeśli to litera, konwertuje na małą.
tchar common::CharToUpper (tchar ch)
 Jeśli to litera, konwertuje na dużą.
void common::LowerCase (tstring *s)
 Konwertuje łańcuch na małe litery.
void common::LowerCase (tstring *Out, const tstring &s)
void common::UpperCase (tstring *s)
 Konwertuje łańcuch na duże.
void common::UpperCase (tstring *Out, const tstring &s)
bool common::Charset_WindowsSpecialChar (char a_c, string *a_s)
 Zmienia znak specjalny kodowania Windows-1250 na odpowiednik normalny.
char common::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 common::Charset_Convert (string *out, const string &s, CHARSET Charset1, CHARSET Charset2)
 Konwertuje lancuch na podana strone kodowa.
void common::Rot13 (tstring *InOut)
 Szyforowanie/deszyfrowanie algorytmem ROT13.
void common::Rot13 (tstring *Out, const tstring &In)
void common::EolModeToStr (tstring *Out, EOLMODE EolMode)
 Rodzaj znaku końca wiersza na odpowiadający mu znak (lub znaki).
void common::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 common::Replace (tstring *Out, const tstring &s, tchar Ch1, tchar Ch2)
 Zmienia w łańcuchu wszystkie wystąpienia znaku Ch1 na Ch2.
void common::Replace (tstring *InOut, tchar Ch1, tchar Ch2)
 Zmienia w łańcuchu wszystkie wystąpienia znaku Ch1 na Ch2 w miejscu.
void common::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 common::NormalizeWhitespace (tstring *result, const tstring &s)
 Zamienia wszystkie odstępy na pojedyncze spacje.
void common::DupeString (tstring *Out, const tstring &s, size_t count)
 Zwraca łańcuch powtórzony podaną liczbę razy.
void common::RightStr (tstring *Out, const tstring &s, size_t Length)
 Zwraca podłańcuch z prawej strony.
size_t common::SubstringCount (const tstring &str, const tstring &substr)
 Zwraca liczbę wystąpień podłańcucha.
bool common::StrEqualI (const tstring &s1, const tstring &s2)
 Zwraca true, jeśli podane łańcuchy są równe bez rozróżniania wielkości liter.
bool common::SubStrEqual (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.
bool common::SubStrEqualI (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 common::ContainsEOL (const tstring &s)
 Czy łańcuch zawiera znaki końca wiersza?
bool common::StrBegins (const tstring &s, const tstring &sub, size_t Begin=0)
 Zwraca true, jesli podany lancuch zaczyna sie od podanego podlancucha.
bool common::StrEnds (const tstring &s, const tstring &Sub)
 Zwraca true, jeśli podany łańcuch kończy się podanym podłańcuchem.
bool common::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 common::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 common::Split (STRING_VECTOR *Out, const tstring &s, const tstring &Delimiter)
 Dzieli łańcuch na części i zwraca je jako wektor.
bool common::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 common::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 common::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 common::FineSearch (const tstring &SubStr, const tstring &Str)
 Zwraca zmiennoprzecinkową trafność wyszukiwania stringa SubStr w stringu Str.
size_t common::LevenshteinDistance (const tstring &s1, const tstring &s2)
 Odległość edycyjna między dwoma łańcuchami.
size_t common::LevenshteinDistanceI (const tstring &s1, const tstring &s2)
 Odległość edycyjna między dwoma łańcuchami bez uwzględniania wielkości liter.
bool common::ConvertUnicodeToChars (string *Out, const wstring &S, unsigned CodePage)
bool common::ConvertUnicodeToChars (string *Out, const wchar_t *S, unsigned NumChars, unsigned CodePage)
bool common::ConvertCharsToUnicode (wstring *Out, const string &S, unsigned CodePage)
bool common::ConvertCharsToUnicode (wstring *Out, const char *S, unsigned NumChars, unsigned CodePage)
bool common::TstringToString (string *Out, const tstring &S)
bool common::StringToTstring (tstring *Out, const string &S)
bool common::TstringToWstring (wstring *Out, const tstring &S)
bool common::WstringToTstring (tstring *Out, const wstring &S)
string common::TstringToStringR (const tstring &S)
tstring common::StringToTstringR (const string &S)
wstring common::TstringToWstring (const tstring &S)
tstring common::WstringToTstring (const wstring &S)
bool common::PathIsAbsolute (const tstring &s)
 Zwraca true, jeśli ścieżka jest bezwzględna.
void common::IncludeTrailingPathDelimiter (tstring *InOutPath)
 Dodaje do sciezki konczacy '/' lub '\', jesli go nie ma - na miejscu.
void common::IncludeTrailingPathDelimiter (tstring *OutPath, const tstring &InPath)
 Dodaje do sciezki konczacy '/' lub '\', jesli go nie ma - do nowego stringa.
void common::ExcludeTrailingPathDelimiter (tstring *InOutPath)
 Pozbawia sciezke konczacego '/' lub '\', jesli go ma - na miejscu.
void common::ExcludeTrailingPathDelimiter (tstring *OutPath, const tstring &InPath)
 Pozbawia sciezke konczacego '/' lub '\', jesli go ma - do nowego stringa.
void common::ExtractPathPrefix (tstring *OutPrefix, const tstring &s)
 Zwraca początek ścieżki, w postaci takiej jak "C:\", "\\komputer\udział\" czy "/" albo "\".
void common::ExtractFilePath (tstring *OutPath, const tstring &s)
 Zwraca ścieżkę do pliku bez nazwy pliku.
void common::ExtractFileName (tstring *OutFileName, const tstring &s)
 Zwraca samą nazwę pliku bez ścieżki.
void common::ExtractFileExt (tstring *OutExt, const tstring &s)
 Zwraca rozszerzenie pliku wraz z kropką.
void common::ChangeFileExt (tstring *Out, const tstring &FileName, const tstring &Ext)
 Zmienia w nazwie pliku rozszerzenie na nowe.
void common::NormalizePath (tstring *OutPath, const tstring &s)
 Pozbawia sciezke artefaktow typu ".\\" czy "..\\".
void common::RelativeToAbsolutePath (tstring *Out, const tstring &Base, const tstring &Path)
 Przetwarza sciezke wzgledna na bezwzgledna wzgledem okreslonej sciezki.
void common::AbsoluteToRelativePath (tstring *Out, const tstring &Base, const tstring &Target)
 Przetwarza sciezke bezwzgledna na wzgledna wzgledem okreslonej sciezki.
int common::HexDigitToNumber (char Ch)
 Zwraca liczbowy odpowiednik cyfry szesnastkowej.
int common::HexDigitToNumber (wchar_t Ch)
template<typename T>
void common::UintToStr (tstring *Out, T x, uint4 Base=10, bool UpperCase=true)
 Konwersja liczby całkowitej na łańcuch.
template<typename T>
void common::IntToStr (tstring *Out, T x, uint4 Base=10, bool UpperCase=true)
template<typename T>
bool common::_CharToDigit (T *Digit, tchar ch)
 Konwertuje znak cyfry w dowolknym systemie ('0'..'9', 'A'..'Z', 'a'..'z') na liczbę, zwraca false jeśli błąd.
template<typename T>
int common::StrToUint (T *Number, const tstring &str, unsigned Base=10)
 Konwersja łańcucha na liczbę całkowitą.
template<typename T>
int common::StrToInt (T *Number, const tstring &str, unsigned Base=10)
template<typename T>
tstring common::IntToStrR (T x, int base=10, bool UpperCase=true)
template<typename T>
tstring common::UintToStrR (T x, int base=10, bool UpperCase=true)
void common::Size_tToStr (tstring *Out, size_t x, size_t Base=10, bool UpperCase=true)
tstring common::Size_tToStrR (size_t x, size_t Base=10, bool UpperCase=true)
template<typename T>
void common::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 common::IntToStr2 (tstring *Out, T x, unsigned Length, int base=10)
template<typename T>
tstring common::UintToStr2R (T x, unsigned Length, int Base=10)
template<typename T>
tstring common::IntToStr2R (T x, unsigned Length, int Base=10)
void common::CharToStr (tstring *Out, tchar ch)
 Konwertuje znak na łańcuch, jako że automatycznie to się niestety nie odbywa.
tstring common::CharToStrR (tchar ch)
void common::DoubleToStr (tstring *Out, double x, char Mode= 'g', int Precision=6)
 Konwersja liczb zmiennoprzecinkowych na łańcuch.
void common::FloatToStr (tstring *Out, float x, char Mode= 'g', int Precision=6)
tstring common::DoubleToStrR (double x, char Mode= 'g', int Precision=6)
tstring common::FloatToStrR (float x, char Mode= 'g', int Precision=6)
int common::StrToDouble (double *out, const tstring &s)
 Konwersja łańcucha na liczbę zmiennoprzecinkową.
int common::StrToFloat (float *out, const tstring &s)
void common::BoolToStr (tstring *Out, bool x, char mode= 'f')
 Konwertuje wartość logiczną na łańcuch.
tstring common::BoolToStrR (bool x, char mode= 'f')
bool common::StrToBool (bool *result, const tstring &s)
 Konwertuje łańcuch na wartość logiczną.
void common::PtrToStr (tstring *Out, const void *p)
 Konwertuje wskaźnik na łańcuch 8 znaków zapisany szesnastkowo.
tstring common::PtrToStrR (const void *p)
template<typename T>
void common::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 common::SizeToStrR (T Size, bool Space, int Precision)
void common::Wait (uint4 Miliseconds)
 Zatrzymuje bieżący wątek na podaną liczbę milisekund.
bool common::is_finite (float x)
 Zwraca true, jeśli liczba jest niezwyczajna (INF lub NaN).
bool common::is_finite (double x)
 Zwraca true, jeśli liczba jest niezwyczajna (INF lub NaN).
bool common::is_nan (float x)
 Zwraca true, jeśli liczba jest NaN.
bool common::is_nan (double x)
 Zwraca true, jeśli liczba jest NaN.
template<typename T>
T common::safe_add (T a, T b)
 Dodaje dwie liczby z ograniczeniem zakresu zamiast zawinięcia przy przepełnieniu.
template<typename T>
T common::safe_sub (T a, T b)
 Odejmuje dwie liczby z ograniczeniem zakresu zamiast zawinięcia przy przepełnieniu.
template<typename T>
T common::safe_mul (T a, T b)
 Mnoży dwie liczby z ograniczeniem zakresu zamiast zawinięcia przy przepełnieniu.
float common::safe_acos (float x)
 Bezpieczny arcus cosinus, ogranicza zakres wejściowy do -1...+1 zwracając w razie przekrocznia skrajne wartości wyniku.
int common::round (float x)
 Zaokrągla liczbę, zamiast ją obcinać.
int common::round (double x)
template<typename T>
T common::ceil_div (T x, T y)
 Dzieli 2 liczby całkowite zaokrąglając wynik w górę.
bool common::around (float x, float epsilon)
 Zwraca true, jeśli liczba leży w epsilonowym otoczeniu zera.
bool common::around (double x, double epsilon)
bool common::around (float x, float y, float epsilon)
 Zwraca true, jeśli liczba leży w epsilonowym otoczeniu drugiej liczby.
bool common::around (double x, double y, double epsilon)
bool common::float_equal (float x, float y)
 Zwraca true, jeśli dwie liczby zmiennoprzecinkowe są praktycznie równe.
bool common::double_equal (double x, double y)
uint4 common::greater_power_of_2 (uint4 x)
 Zwraca najmniejszą potęgę dwójki większą lub równą podanej liczbie.
template<typename T>
T common::powi (T a, uint4 b)
 Liczy potęge o całkowitym wykładniku (bardzo szybko!).
template<typename T>
T common::max3 (const T &a, const T &b, const T &c)
 Zwraca największą z podanych 3 liczb.
template<typename T>
T common::min3 (const T &a, const T &b, const T &c)
 Zwraca najmniejszą z podanych 3 liczb.
template<typename T>
T common::minmax (const T &a, const T &x, const T &b)
 Zwraca liczbę x ograniczoną do podanego zakresu od a do b.
float common::trunc (float x)
 Zwraca część całkowitą liczby wraz ze znakiem.
double common::trunc (double x)
float common::frac (float x)
 Zwraca część ułamkową liczby wraz ze znakiem.
double common::frac (double x)
float common::Lerp (float x, float y, float t)
 Interpolacja liniowa 1D (t = 0..1).
float common::SafeLerp (float x, float y, float t)
 Interpolacja liniowa 1D (t jest ograniczane do 0..1).
float common::Lerp2D (float x11, float x21, float x12, float x22, float tx, float ty)
 Interpolacja liniowa 2D.
float common::NormalizeAngle (float angle)
 Normalizuje kąt do przedziału < 0..2PI ).
float common::NormalizeAngle2 (float Angle)
 Normalizuje kąt do przedziału -PI..+PI.
float common::DegToRad (float Angle)
 Przelicza kąt ze stopni na radiany.
float common::RadToDeg (float Angle)
 Przelicza kąt z radianów na stopnie.
float common::AngleDiff (float A, float B)
 Oblicza różnicę kątów A-B, gdzie A, B należą do: 0..2*PI.
void common::SmoothCD (float *InOutPos, float Dest, float *InOutVel, float SmoothTime, float TimeDelta)
 Funkcja wygładzająca - Critically Damped Smoothing.
void common::SmoothCD (float *InOutPos, float Dest, float *InOutVel, float SmoothTime, float TimeDelta, float MaxSpeed)
float common::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 common::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 common::QuadraticEquation (float a, float b, float c, float *Out_x1, float *Out_x2)
 Równanie kwadratowe a*x^2 + b*x + c = 0.
float common::PerlinNoise1 (float x)
float common::PerlinNoise2 (float x, float y)
float common::PerlinNoise3 (float x, float y, float z)
float common::BrownianNoise1 (float x, uint i, float Persistence)
float common::BrownianNoise2 (float x, float y, uint i, float Persistence)
float common::BrownianNoise3 (float x, float y, float z, uint i, float Persistence)
float common::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 common::WaveformSine (float x)
float common::WaveformTriangle (float x, float Base, float Amplitude, float Frequency, float Phase)
 An angular wave with a constant increase / decrease speed with pointed peaks.
float common::WaveformTriangle (float x)
float common::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 common::WaveformSquare (float x)
float common::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 common::WaveformSawtooth (float x)
float common::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 common::WaveformInvSawtooth (float x)
float common::WaveformPWM (float x, float DutyCycle, float Base, float Amplitude, float Frequency, float Phase)
 Pulse Width Modulation.
float common::WaveformPWM (float x, float DutyCycle)
template<typename T>
void SthToStr (tstring *Str, const T &Sth)
template<typename T>
bool StrToSth (T *Sth, const tstring &Str)
template<typename T>
const Format common::operator% (const Format &fmt, const T &x)
const Format common::operator% (const Format &fmt, const tchar *x)

Zmienne

const tstring common::EMPTY_STRING
 Łańcuch pusty - do wykorzystania aby można było pobierać do niego referencje itp.
const tchar *const common::EOL
 Standardowy łańcuch końca wiersza zależny od systemu.
const char *const common::BOM_UTF8
const char *const common::BOM_UTF16_LE
const char *const common::BOM_UTF16_BE
const tchar common::DIR_SEP = _T('\\')
 Separator katalogów w ścieżce, zależny od platformy.
const tchar common::_DIGITS_L []
const tchar common::_DIGITS_U []
TimeMeasurer common::g_Timer
 Główny miernik czasu dla wątku głównego.
const int1 common::MININT1 = std::numeric_limits<int1>::min()
const int1 common::MAXINT1 = std::numeric_limits<int1>::max()
const int2 common::MININT2 = std::numeric_limits<int2>::min()
const int2 common::MAXINT2 = std::numeric_limits<int2>::max()
const int4 common::MININT4 = std::numeric_limits<int4>::min()
const int4 common::MAXINT4 = std::numeric_limits<int4>::max()
const int8 common::MININT8 = std::numeric_limits<int8>::min()
const int8 common::MAXINT8 = std::numeric_limits<int8>::max()
const uint1 common::MAXUINT1 = std::numeric_limits<uint1>::max()
const uint2 common::MAXUINT2 = std::numeric_limits<uint2>::max()
const uint4 common::MAXUINT4 = std::numeric_limits<uint4>::max()
const uint8 common::MAXUINT8 = std::numeric_limits<uint8>::max()
const float common::MINFLOAT = std::numeric_limits<float>::min()
const float common::MAXFLOAT = std::numeric_limits<float>::max()
const float common::E = 2.71828182845904523536f
 e
const float common::LOG2E = 1.44269504088896340736f
 log2(e)
const float common::LOG10E = 0.434294481903251827651f
 log10(e)
const float common::LN2 = 0.693147180559945309417f
 ln(2)
const float common::LN10 = 2.30258509299404568402f
 ln(10)
const float common::PI = 3.14159265358979323846264338327950288419716939937510582f
 pi
const float common::PI_2 = 1.57079632679489661923f
 pi/2
const float common::PI_4 = 0.785398163397448309616f
 pi/4
const float common::PI_X_2 = 6.28318530717958647692f
 2*pi
const float common::_1_PI = 0.318309886183790671538f
 1/pi
const float common::_2_PI = 0.636619772367581343076f
 2/pi
const float common::_2_SQRTPI = 1.12837916709551257390f
 2/sqrt(pi)
const float common::SQRT2 = 1.41421356237309504880f
 sqrt(2)
const float common::SQRT3 = 1.7320508075688772935274463415059f
 sqrt(3)
const float common::SQRT1_2 = 0.707106781186547524401f
 1/sqrt(2)
RandomGenerator common::g_Rand
 Domyślny generator liczb losowych do używania w wątku głównym i kiedy nie musi być deterministyczny.
UniqueGenerator common::g_Unique
 Generator domyślny do użytku w wątku głównym.


Opis szczegółowy

Moduł podstawowy.

Autor:
Adam Sawicki - sawickiap@poczta.onet.pl - http://regedit.gamedev.pl/
Część biblioteki CommonLib
Kodowanie Windows-1250, koniec wiersza CR+LF, test: Zażółć gęślą jaźń
Licencja: GNU GPL.
Dokumentacja: Module_Base
Elementy modułu: Moduł Base

Wygenerowano Sat Mar 29 18:17:00 2008 dla CommonLib programem  doxygen 1.5.5