Home | Namespaces | Hierarchy | Alphabetical List | Class list | Files | Namespace Members | Class members | File members | Tutorials

irr::core Namespace Reference

In this namespace can be found basic classes like vectors, planes, arrays, lists and so on. More...


Classes

class  aabbox3d
 Axis aligned bounding box in 3d dimensional space. More...
class  array
 Self reallocating template array (like stl vector) with additional features. More...
class  CMatrix4
 4x4 matrix. Mostly used as transformation matrix for 3d calculations. More...
class  dimension2d
 Specifies a 2 dimensional size. More...
union  inttofloat
class  irrAllocator
 Very simple allocator implementation, containers using it can be used across dll boundaries. More...
class  irrAllocatorFast
 Fast allocator, only to be used in containers inside the same memory heap. More...
class  line2d
 2D line between two points with intersection methods. More...
class  line3d
 3D line between two points with intersection methods. More...
class  list
 Doubly linked list template. More...
class  map
 map template for associative arrays using a red-black tree More...
class  plane3d
 Template plane class with some intersection testing methods. More...
class  position2d
 Simple class for holding 2d coordinates. More...
class  quaternion
 Quaternion class for representing rotations. More...
class  rect
 Rectangle template. More...
class  string
 Very simple string class with some useful features. More...
class  triangle3d
 3d triangle template class for doing collision detection and other things. More...
class  vector2d
 2d vector template class with lots of operators and methods. More...
class  vector3d
 3d vector template class with lots of operators and methods. More...

Typedefs

typedef aabbox3d< f32aabbox3df
 Typedef for a f32 3d bounding box.
typedef aabbox3d< s32aabbox3di
 Typedef for an integer 3d bounding box.
typedef dimension2d< f32dimension2df
 Typedef for an f32 dimension.
typedef dimension2d< s32dimension2di
 Typedef for an integer dimension.
typedef line2d< f32line2df
 Typedef for an f32 line.
typedef line2d< s32line2di
 Typedef for an integer line.
typedef line3d< f32line3df
 Typedef for an f32 line.
typedef line3d< s32line3di
 Typedef for an integer line.
typedef CMatrix4< f32matrix4
 Typedef for f32 matrix.
typedef plane3d< f32plane3df
 Typedef for a f32 3d plane.
typedef plane3d< s32plane3di
 Typedef for an integer 3d plane.
typedef position2d< f32position2df
 Typedef for an f32 position.
typedef position2d< s32position2di
 Typedef for an integer position.
typedef string< c8stringc
 Typedef for character strings.
typedef string< wchar_t > stringw
 Typedef for wide character strings.
typedef triangle3d< f32triangle3df
 Typedef for a f32 3d triangle.
typedef triangle3d< s32triangle3di
 Typedef for an integer 3d triangle.
typedef vector2d< f32vector2df
 Typedef for f32 2d vector.
typedef vector2d< s32vector2di
 Typedef for integer 2d vector.
typedef vector3d< f32vector3df
 Typedef for a f32 3d vector.
typedef vector3d< s32vector3di
 Typedef for an integer 3d vector.

Enumerations

enum  EIntersectionRelation3D {
  ISREL3D_FRONT = 0, ISREL3D_BACK, ISREL3D_PLANAR, ISREL3D_SPANNING,
  ISREL3D_CLIPPED
}
 Enumeration for intersection relations of 3d objects. More...

Functions

template<class T>
abs_ (const T &a)
 returns abs of two values. Own implementation to get rid of STL (VS6 problems)
REALINLINE s32 ceil32 (f32 x)
template<class T>
const T clamp (const T &value, const T &low, const T &high)
 clamps a value between low and high
REALINLINE void clearFPUException ()
stringccutFilenameExtension (stringc &dest, const stringc &source)
 cut the filename extension from a string
f64 degToRad (f64 degrees)
 Utility function to convert a degrees value to radians.
f32 degToRad (f32 degrees)
 Utility function to convert a degrees value to radians.
bool equals (const u32 a, const u32 b, const u32 tolerance=0)
 returns if a equals b, taking possible rounding errors into account
bool equals (const s32 a, const s32 b, const s32 tolerance=0)
 returns if a equals b, taking possible rounding errors into account
bool equals (const f32 a, const f32 b, const f32 tolerance=ROUNDING_ERROR_32)
 returns if a equals b, taking possible rounding errors into account
bool equals (const f64 a, const f64 b, const f64 tolerance=ROUNDING_ERROR_64)
 returns if a equals b, taking possible rounding errors into account
f32 f32_max3 (const f32 a, const f32 b, const f32 c)
f32 f32_min3 (const f32 a, const f32 b, const f32 c)
float fast_atof (const char *floatAsString)
const char * fast_atof_move (const char *in, f32 &out)
REALINLINE s32 floor32 (f32 x)
f32 FR (s32 x)
f32 FR (u32 x)
 Floating-point representation of an integer value.
f32 fract (f32 x)
stringcgetFileNameExtension (stringc &dest, const stringc &source)
 get the filename extension from a string
template<class T>
void heapsink (T *array, s32 element, s32 max)
 Sinks an element into the heap.
template<class T>
void heapsort (T *array_, s32 size)
 Sorts an array with size 'size' using heapsort.
REALINLINE u32 if_c_a_else_0 (const s32 condition, const u32 a)
 conditional set based on mask and arithmetic shift
REALINLINE u32 if_c_a_else_b (const s32 condition, const u32 a, const u32 b)
 conditional set based on mask and arithmetic shift
u32 IR (f32 x)
s32 isdigit (s32 c)
 some standard function ( to remove dependencies )
s32 isspace (s32 c)
s32 isupper (s32 c)
bool iszero (const u32 a, const u32 tolerance=0)
 returns if a equals zero, taking rounding errors into account
bool iszero (const s32 a, const s32 tolerance=0)
 returns if a equals zero, taking rounding errors into account
bool iszero (const f32 a, const f32 tolerance=ROUNDING_ERROR_32)
 returns if a equals zero, taking rounding errors into account
template<class T>
lerp (const T &a, const T &b, const f32 t)
template<class T>
const T & max_ (const T &a, const T &b, const T &c)
 returns maximum of three values. Own implementation to get rid of the STL (VS6 problems)
template<class T>
const T & max_ (const T &a, const T &b)
 returns maximum of two values. Own implementation to get rid of the STL (VS6 problems)
template<class T>
const T & min_ (const T &a, const T &b, const T &c)
 returns minimum of three values. Own implementation to get rid of the STL (VS6 problems)
template<class T>
const T & min_ (const T &a, const T &b)
 returns minimum of two values. Own implementation to get rid of the STL (VS6 problems)
template<class S, class T>
vector3d< T > operator* (const S scalar, const vector3d< T > &vector)
 Function multiplying a scalar and a vector component-wise.
template<class S, class T>
vector2d< T > operator* (const S scalar, const vector2d< T > &vector)
template<class T>
CMatrix4< T > operator* (const T scalar, const CMatrix4< T > &mat)
f64 radToDeg (f64 radians)
 Utility function to convert a radian value to degrees.
f32 radToDeg (f32 radians)
 Utility function to convert a radian value to degrees.
REALINLINE f32 reciprocal (const f32 f)
REALINLINE f32 reciprocal_approxim (const f32 p)
REALINLINE f32 reciprocal_squareroot (const f32 x)
REALINLINE s32 round32 (f32 x)
f32 round_ (f32 x)
s32 s32_clamp (s32 value, s32 low, s32 high)
s32 s32_max (s32 a, s32 b)
s32 s32_min (s32 a, s32 b)
REALINLINE void setbit_cond (u32 &state, s32 condition, u32 mask)
f32 strtof10 (const char *in, const char **out=0)
s32 strtol10 (const char *in, const char **out=0)

Variables

const f32 DEGTORAD = PI / 180.0f
 32bit Constant for converting from degrees to radians
const f64 DEGTORAD64 = PI64 / 180.0
 64bit constant for converting from degrees to radians (formally known as GRAD_PI2)
const float fast_atof_table [16]
const f32 HALF_PI = PI/2.0f
 Constant for half of PI.
IRRLICHT_API const matrix4 IdentityMatrix
 global const identity matrix
const f32 PI = 3.14159265359f
 Constant for PI.
const f64 PI64 = 3.1415926535897932384626433832795028841971693993751
 Constant for 64bit PI.
const f32 RADTODEG = 180.0f / PI
 32bit constant for converting from radians to degrees (formally known as GRAD_PI)
const f64 RADTODEG64 = 180.0 / PI64
 64bit constant for converting from radians to degrees
const f32 RECIPROCAL_PI = 1.0f/PI
 Constant for reciprocal of PI.
const f64 RECIPROCAL_PI64 = 1.0/PI64
 Constant for 64bit reciprocal of PI.
const f32 ROUNDING_ERROR_32 = 0.000001f
 Rounding error constant often used when comparing f32 values.
const f64 ROUNDING_ERROR_64 = 0.00000001


Detailed Description

In this namespace can be found basic classes like vectors, planes, arrays, lists and so on.

Typedef Documentation

Typedef for a f32 3d bounding box.

Definition at line 324 of file aabbox3d.h.

Typedef for an integer 3d bounding box.

Definition at line 326 of file aabbox3d.h.

Typedef for an f32 dimension.

Definition at line 160 of file dimension2d.h.

Typedef for an integer dimension.

Definition at line 162 of file dimension2d.h.

Typedef for an f32 line.

Definition at line 190 of file line2d.h.

Typedef for an integer line.

Definition at line 192 of file line2d.h.

Typedef for an f32 line.

Definition at line 136 of file line3d.h.

Typedef for an integer line.

Definition at line 138 of file line3d.h.

Typedef for f32 matrix.

Definition at line 1728 of file matrix4.h.

Typedef for a f32 3d plane.

Definition at line 230 of file plane3d.h.

Typedef for an integer 3d plane.

Definition at line 232 of file plane3d.h.

Typedef for an f32 position.

Definition at line 112 of file position2d.h.

Typedef for an integer position.

Definition at line 114 of file position2d.h.

Typedef for character strings.

Definition at line 904 of file irrString.h.

typedef string<wchar_t> irr::core::stringw

Typedef for wide character strings.

Definition at line 907 of file irrString.h.

Typedef for a f32 3d triangle.

Definition at line 223 of file triangle3d.h.

Typedef for an integer 3d triangle.

Definition at line 226 of file triangle3d.h.

Typedef for f32 2d vector.

Definition at line 285 of file vector2d.h.

Typedef for integer 2d vector.

Definition at line 287 of file vector2d.h.

Typedef for a f32 3d vector.

Definition at line 354 of file vector3d.h.

Typedef for an integer 3d vector.

Definition at line 356 of file vector3d.h.


Enumeration Type Documentation

Enumeration for intersection relations of 3d objects.

Enumerator:
ISREL3D_FRONT 
ISREL3D_BACK 
ISREL3D_PLANAR 
ISREL3D_SPANNING 
ISREL3D_CLIPPED 

Definition at line 17 of file plane3d.h.


Function Documentation

template<class T>
T irr::core::abs_ ( const T &  a  )  [inline]

returns abs of two values. Own implementation to get rid of STL (VS6 problems)

Definition at line 141 of file irrMath.h.

REALINLINE s32 irr::core::ceil32 ( f32  x  ) 

Definition at line 428 of file irrMath.h.

template<class T>
const T irr::core::clamp ( const T &  value,
const T &  low,
const T &  high 
) [inline]

REALINLINE void irr::core::clearFPUException (  ) 

Definition at line 327 of file irrMath.h.

stringc& irr::core::cutFilenameExtension ( stringc &  dest,
const stringc &  source 
) [inline]

f64 irr::core::degToRad ( f64  degrees  )  [inline]

Utility function to convert a degrees value to radians.

Provided as it can be clearer to write degToRad(X) than DEGTORAD * X

Parameters:
degrees The degrees value to convert to radians.

Definition at line 106 of file irrMath.h.

References DEGTORAD64.

f32 irr::core::degToRad ( f32  degrees  )  [inline]

Utility function to convert a degrees value to radians.

Provided as it can be clearer to write degToRad(X) than DEGTORAD * X

Parameters:
degrees The degrees value to convert to radians.

Definition at line 97 of file irrMath.h.

References DEGTORAD.

bool irr::core::equals ( const u32  a,
const u32  b,
const u32  tolerance = 0 
) [inline]

returns if a equals b, taking possible rounding errors into account

Definition at line 180 of file irrMath.h.

Referenced by irr::core::vector3d< float >::equals(), and irr::core::vector2d< float >::equals().

bool irr::core::equals ( const s32  a,
const s32  b,
const s32  tolerance = 0 
) [inline]

returns if a equals b, taking possible rounding errors into account

Definition at line 174 of file irrMath.h.

bool irr::core::equals ( const f32  a,
const f32  b,
const f32  tolerance = ROUNDING_ERROR_32 
) [inline]

returns if a equals b, taking possible rounding errors into account

Definition at line 168 of file irrMath.h.

bool irr::core::equals ( const f64  a,
const f64  b,
const f64  tolerance = ROUNDING_ERROR_64 
) [inline]

f32 irr::core::f32_max3 ( const f32  a,
const f32  b,
const f32  c 
) [inline]

Definition at line 490 of file irrMath.h.

f32 irr::core::f32_min3 ( const f32  a,
const f32  b,
const f32  c 
) [inline]

Definition at line 495 of file irrMath.h.

float irr::core::fast_atof ( const char *  floatAsString  )  [inline]

Convert a string to a floating point number

Parameters:
floatAsString,: The string to convert.

Definition at line 188 of file fast_atof.h.

References fast_atof_move().

const char* irr::core::fast_atof_move ( const char *  in,
f32 &  out 
) [inline]

Provides a fast function for converting a string into a float. This is not guaranteed to be as accurate as atof(), but is approximately 6 to 8 times as fast.

Parameters:
[in] in,: The string to convert.
[out] out,: The resultant float will be written here.
Returns:
A pointer to the first character in the string that wasn't use to create the float value.

Definition at line 138 of file fast_atof.h.

References fast_atof_table, strtof10(), and strtol10().

Referenced by fast_atof(), and irr::scene::quake3::getAsFloat().

REALINLINE s32 irr::core::floor32 ( f32  x  ) 

f32 irr::core::FR ( s32  x  )  [inline]

Definition at line 260 of file irrMath.h.

References irr::core::inttofloat::f, and irr::core::inttofloat::s.

f32 irr::core::FR ( u32  x  )  [inline]

Floating-point representation of an integer value.

Definition at line 259 of file irrMath.h.

References irr::core::inttofloat::f, and irr::core::inttofloat::u.

Referenced by reciprocal_approxim().

f32 irr::core::fract ( f32  x  )  [inline]

Definition at line 500 of file irrMath.h.

Referenced by irr::scene::quake3::SModifierFunction::evaluate().

stringc& irr::core::getFileNameExtension ( stringc &  dest,
const stringc &  source 
) [inline]

template<class T>
void irr::core::heapsink ( T *  array,
s32  element,
s32  max 
) [inline]

Sinks an element into the heap.

Definition at line 17 of file heapsort.h.

Referenced by heapsort().

template<class T>
void irr::core::heapsort ( T *  array_,
s32  size 
) [inline]

Sorts an array with size 'size' using heapsort.

Definition at line 41 of file heapsort.h.

References heapsink().

Referenced by irr::core::array< irr::scene::IMeshBuffer * >::sort().

REALINLINE u32 irr::core::if_c_a_else_0 ( const s32  condition,
const u32  a 
)

conditional set based on mask and arithmetic shift

Definition at line 307 of file irrMath.h.

REALINLINE u32 irr::core::if_c_a_else_b ( const s32  condition,
const u32  a,
const u32  b 
)

conditional set based on mask and arithmetic shift

Definition at line 301 of file irrMath.h.

u32 irr::core::IR ( f32  x  )  [inline]

code is taken from IceFPU Integer representation of a floating-point value.

Definition at line 249 of file irrMath.h.

References irr::core::inttofloat::f, and irr::core::inttofloat::u.

Referenced by irr::core::CMatrix4< T >::isIdentity_integer_base(), irr::core::triangle3d< T >::isPointInsideFast(), and reciprocal_approxim().

s32 irr::core::isdigit ( s32  c  )  [inline]

some standard function ( to remove dependencies )

Definition at line 44 of file coreutil.h.

s32 irr::core::isspace ( s32  c  )  [inline]

Definition at line 45 of file coreutil.h.

s32 irr::core::isupper ( s32  c  )  [inline]

Definition at line 46 of file coreutil.h.

bool irr::core::iszero ( const u32  a,
const u32  tolerance = 0 
) [inline]

returns if a equals zero, taking rounding errors into account

Definition at line 198 of file irrMath.h.

bool irr::core::iszero ( const s32  a,
const s32  tolerance = 0 
) [inline]

returns if a equals zero, taking rounding errors into account

Definition at line 192 of file irrMath.h.

bool irr::core::iszero ( const f32  a,
const f32  tolerance = ROUNDING_ERROR_32 
) [inline]

template<class T>
T irr::core::lerp ( const T &  a,
const T &  b,
const f32  t 
) [inline]

returns linear interpolation of a and b with ratio t

Returns:
: a if t==0, b if t==1, and the linear interpolation else

Definition at line 149 of file irrMath.h.

template<class T>
const T& irr::core::max_ ( const T &  a,
const T &  b,
const T &  c 
) [inline]

returns maximum of three values. Own implementation to get rid of the STL (VS6 problems)

Definition at line 134 of file irrMath.h.

References max_().

template<class T>
const T& irr::core::max_ ( const T &  a,
const T &  b 
) [inline]

returns maximum of two values. Own implementation to get rid of the STL (VS6 problems)

Definition at line 127 of file irrMath.h.

Referenced by clamp(), irr::video::SColorHSL::fromRGB(), and max_().

template<class T>
const T& irr::core::min_ ( const T &  a,
const T &  b,
const T &  c 
) [inline]

returns minimum of three values. Own implementation to get rid of the STL (VS6 problems)

Definition at line 120 of file irrMath.h.

References min_().

template<class T>
const T& irr::core::min_ ( const T &  a,
const T &  b 
) [inline]

returns minimum of two values. Own implementation to get rid of the STL (VS6 problems)

Definition at line 113 of file irrMath.h.

Referenced by clamp(), irr::video::SColorHSL::fromRGB(), min_(), and irr::video::SColor::operator+().

template<class S, class T>
vector3d<T> irr::core::operator* ( const S  scalar,
const vector3d< T > &  vector 
) [inline]

Function multiplying a scalar and a vector component-wise.

Definition at line 360 of file vector3d.h.

template<class S, class T>
vector2d<T> irr::core::operator* ( const S  scalar,
const vector2d< T > &  vector 
) [inline]

Definition at line 290 of file vector2d.h.

template<class T>
CMatrix4<T> irr::core::operator* ( const T  scalar,
const CMatrix4< T > &  mat 
) [inline]

Definition at line 1721 of file matrix4.h.

f64 irr::core::radToDeg ( f64  radians  )  [inline]

Utility function to convert a radian value to degrees.

Provided as it can be clearer to write radToDeg(X) than RADTODEG * X

Parameters:
radians The radians value to convert to degrees.

Definition at line 88 of file irrMath.h.

References RADTODEG64.

f32 irr::core::radToDeg ( f32  radians  )  [inline]

Utility function to convert a radian value to degrees.

Provided as it can be clearer to write radToDeg(X) than RADTODEG * X

Parameters:
radians The radians value to convert to degrees.

Definition at line 79 of file irrMath.h.

References RADTODEG.

REALINLINE f32 irr::core::reciprocal ( const f32  f  ) 

REALINLINE f32 irr::core::reciprocal_approxim ( const f32  p  ) 

Definition at line 383 of file irrMath.h.

References FR(), and IR().

REALINLINE f32 irr::core::reciprocal_squareroot ( const f32  x  ) 

REALINLINE s32 irr::core::round32 ( f32  x  ) 

Definition at line 462 of file irrMath.h.

References round_().

f32 irr::core::round_ ( f32  x  )  [inline]

Definition at line 322 of file irrMath.h.

Referenced by round32().

s32 irr::core::s32_clamp ( s32  value,
s32  low,
s32  high 
) [inline]

Definition at line 215 of file irrMath.h.

References s32_max(), and s32_min().

s32 irr::core::s32_max ( s32  a,
s32  b 
) [inline]

Definition at line 209 of file irrMath.h.

Referenced by s32_clamp().

s32 irr::core::s32_min ( s32  a,
s32  b 
) [inline]

Definition at line 203 of file irrMath.h.

Referenced by s32_clamp().

REALINLINE void irr::core::setbit_cond ( u32 &  state,
s32  condition,
u32  mask 
)

Definition at line 315 of file irrMath.h.

f32 irr::core::strtof10 ( const char *  in,
const char **  out = 0 
) [inline]

Converts a sequence of digits into a whole positive floating point value. Only digits 0 to 9 are parsed. Parsing stops at any other character, including sign characters or a decimal point.

Parameters:
in,: the sequence of digits to convert.
out,: (optional) will be set to point at the first non-converted character.
Returns:
The whole positive floating point representation of the digit sequence.

Definition at line 88 of file fast_atof.h.

Referenced by fast_atof_move().

s32 irr::core::strtol10 ( const char *  in,
const char **  out = 0 
) [inline]

Convert a simple string of base 10 digits into a signed 32 bit integer.

Parameters:
[in] in,: The string of digits to convert. Only a leading - or + followed by digits 0 to 9 will be considered. Parsing stops at the first non-digit.
[out] out,: (optional) If provided, it will be set to point at the first character not used in the calculation.
Returns:
The signed integer value of the digits. If the string specifies too many digits to encode in an s32 then +INT_MAX or -INT_MAX will be returned.

Definition at line 46 of file fast_atof.h.

Referenced by fast_atof_move().


Variable Documentation

const f32 irr::core::DEGTORAD = PI / 180.0f

const f64 irr::core::DEGTORAD64 = PI64 / 180.0

const float irr::core::fast_atof_table[16]

Initial value:

 {
        0.f,
        0.1f,
        0.01f,
        0.001f,
        0.0001f,
        0.00001f,
        0.000001f,
        0.0000001f,
        0.00000001f,
        0.000000001f,
        0.0000000001f,
        0.00000000001f,
        0.000000000001f,
        0.0000000000001f,
        0.00000000000001f,
        0.000000000000001f
}

Definition at line 19 of file fast_atof.h.

Referenced by fast_atof_move().

const f32 irr::core::HALF_PI = PI/2.0f

Constant for half of PI.

Definition at line 52 of file irrMath.h.

IRRLICHT_API const matrix4 irr::core::IdentityMatrix

const f32 irr::core::PI = 3.14159265359f

Constant for PI.

Definition at line 46 of file irrMath.h.

Referenced by irr::video::SColorHSL::fromRGB(), and irr::core::quaternion::slerp().

const f64 irr::core::PI64 = 3.1415926535897932384626433832795028841971693993751

Constant for 64bit PI.

Definition at line 58 of file irrMath.h.

Referenced by irr::scene::quake3::SModifierFunction::evaluate().

const f32 irr::core::RADTODEG = 180.0f / PI

32bit constant for converting from radians to degrees (formally known as GRAD_PI)

Definition at line 67 of file irrMath.h.

Referenced by radToDeg().

const f64 irr::core::RADTODEG64 = 180.0 / PI64

const f32 irr::core::RECIPROCAL_PI = 1.0f/PI

Constant for reciprocal of PI.

Definition at line 49 of file irrMath.h.

Constant for 64bit reciprocal of PI.

Definition at line 61 of file irrMath.h.

const f32 irr::core::ROUNDING_ERROR_32 = 0.000001f

Rounding error constant often used when comparing f32 values.

Definition at line 38 of file irrMath.h.

Referenced by irr::core::plane3d< float >::classifyPointRelation(), and irr::core::plane3d< float >::existsIntersection().

const f64 irr::core::ROUNDING_ERROR_64 = 0.00000001


The Irrlicht Engine
The Irrlicht Engine Documentation © 2003-2008 by Nikolaus Gebhardt. Generated on Sun Dec 14 08:04:49 2008 by Doxygen (1.5.6)