iaux Namespace Reference

Namespaces

namespace  iaEasing
 

Classes

class  iaBSpline
 Non uniform B-Spline. More...
 
class  iaCircle
 
class  iaClock
 
class  iaColor3
 
struct  iaColor4
 
class  iaConsole
 
class  iaConvert
 
class  iaDate
 
class  iaDelegate
 
class  iaDirectory
 
class  iaEvent
 
class  iaEventReturnHandler
 
class  iaEventReturnHandler< void, Args... >
 
class  iaFile
 File handle. More...
 
class  iaIDGenerator
 
class  iaKeyFrameGraph
 
class  iaMath
 
class  iaMatrix
 
class  iaMatrix2D
 
class  iaMutex
 
class  iaQuaternion
 
class  iaRandom
 
class  iaRandomNumberGenerator
 
struct  iaRectangle
 
class  iaRLE
 
struct  iaRLEBlock
 
class  iaSerializable
 
class  iaSphere
 
class  iaState
 
class  iaStateMachine
 
class  iaString
 
class  iaTest
 
class  iaThread
 
class  iaTime
 
class  iaTransform
 
class  iaTransition
 Transition between two states. More...
 
class  iaUUID
 
struct  iaVector2
 
struct  iaVector3
 
struct  iaVector4
 

Typedefs

typedef iaCircle< float32iaCirclef
 
typedef iaCircle< float64iaCircled
 
typedef iaCircle< int32iaCirclei
 
typedef iaCircle< int64iaCircleI
 
typedef iaColor3< float32iaColor3f
 
typedef iaColor3< uint8iaColor3c
 
typedef iaColor4< float32iaColor4f
 
typedef iaColor4< uint8iaColor4c
 
typedef iaIDGenerator< iaID64iaIDGenerator64
 
typedef iaIDGenerator< iaID32iaIDGenerator32
 
typedef iaKeyFrameGraph< uint32iaKeyFrameGraphui
 
typedef iaKeyFrameGraph< float32iaKeyFrameGraphf
 
typedef iaKeyFrameGraph< float64iaKeyFrameGraphd
 
typedef iaKeyFrameGraph< iaVector3fiaKeyFrameGraphVector3f
 
typedef iaKeyFrameGraph< iaVector2fiaKeyFrameGraphVector2f
 
typedef iaKeyFrameGraph< iaColor4fiaKeyFrameGraphColor4f
 
typedef iaKeyFrameGraph< iaVector3diaKeyFrameGraphVector3d
 
typedef iaKeyFrameGraph< iaVector2diaKeyFrameGraphVector2d
 
typedef iaRectangle< float32iaRectanglef
 
typedef iaRectangle< float64iaRectangled
 
typedef iaRectangle< int32iaRectanglei
 
typedef iaRectangle< int64iaRectangleI
 
typedef iaSphere< float32iaSpheref
 
typedef iaSphere< float64iaSphered
 
typedef iaSphere< int64iaSphereI
 
typedef iaBSpline< float32iaBSplinef
 
typedef iaBSpline< float64iaBSplined
 
typedef iaMatrix< float32iaMatrixf
 
typedef iaMatrix< float64iaMatrixd
 
typedef iaMatrix2D< float32iaMatrix3x3f
 
typedef iaMatrix2D< float64iaMatrix3x3d
 
typedef iaQuaternion< float32iaQuaternionf
 
typedef iaQuaternion< float64iaQuaterniond
 
typedef iaTransform< float64iaTransformf
 
typedef iaTransform< float64iaTransformd
 
typedef iaVector2< float32iaVector2f
 
typedef iaVector2< float64iaVector2d
 
typedef iaVector2< int32iaVector2i
 
typedef iaVector2< int64iaVector2I
 
typedef iaVector3< float32iaVector3f
 
typedef iaVector3< float64iaVector3d
 
typedef iaVector3< int32iaVector3i
 
typedef iaVector3< int64iaVector3I
 
typedef iaVector4< float32iaVector4f
 
typedef iaVector4< float64iaVector4d
 
typedef iaVector4< int32iaVector4i
 
typedef iaVector4< int64iaVector4I
 
typedef iaID32 iaStateID
 
typedef iaStateiaStatePtr
 
typedef iaID32 iaTransitionID
 
typedef iaTransitioniaTransitionPtr
 
typedef iaDelegate< void, iaThread * > iThreadCallbackDelegate
 

Enumerations

enum class  iInterpolationMode { None , Linear }
 
enum class  iaStringSplitMode { Normal , RetriveAllEmpties }
 
enum class  iaAxis { X , Y , Z }
 
enum class  iaForegroundColor {
  White , Gray , Blue , DarkBlue ,
  Green , DarkGreen , Cyan , DarkCyan ,
  Red , DarkRed , Magenta , DarkMagenta ,
  Yellow , DarkYellow
}
 
enum class  iaLogLevel {
  Fatal , Error , Warning , Info ,
  User , Debug , Trace
}
 
enum class  iaFileOpenMode { ReadBinary , WriteBinary , ReadWriteBinary }
 
enum class  iaThreadState { Init , Running , Deinit , Done }
 

Functions

template<class T >
std::wostream & operator<< (std::wostream &ostr, const iaColor3< T > &color)
 
template<class T >
std::wostream & operator<< (std::wostream &ostr, const iaColor4< T > &color)
 
std::wostream & operator<< (std::wostream &stream, const iaString &text)
 
std::wostream & operator<< (std::wostream &stream, const std::vector< iaString > &texts)
 
std::wostream & operator<< (std::wostream &stream, const iaUUID &uuid)
 
void startup ()
 
void shutdown ()
 
template<class T >
IAUX_API std::wostream & operator<< (std::wostream &stream, const iaMatrix< T > &m)
 
template<class T >
iaQuaternion< T > slerp (iaQuaternion< T > a, iaQuaternion< T > b, T t)
 
template<class T >
dotProduct (iaQuaternion< T > a, iaQuaternion< T > b)
 
template<class T >
iaTransform< T > lerp (const iaTransform< T > &a, const iaTransform< T > &b, T t)
 
template<class T >
iaVector2< T > lerp (const iaVector2< T > &a, const iaVector2< T > &b, T t)
 
template<class T >
iaVector3< T > lerp (const iaVector3< T > &a, const iaVector3< T > &b, T t)
 
template<class T >
iaVector4< T > lerp (const iaVector4< T > &a, const iaVector4< T > &b, T t)
 
 IGOR_EVENT_DEFINITION (iaEnterState, void, iaStateID)
 
 IGOR_EVENT_DEFINITION (iaReEnterState, void, iaStateID)
 
 IGOR_EVENT_DEFINITION (iaLeaveState, void, iaStateID)
 
 IGOR_EVENT_DEFINITION (iaUpdateState, void, iaStateID)
 
std::wostream & operator<< (std::wostream &stream, const iaLogLevel &logLevel)
 
iaConsoleprintIgorThreadID (iaConsole &console)
 
 IGOR_FUNCTION_POINTER (superspecialfuncptrtype, iaConsole &,(iaConsole &))
 
IGOR_INLINE iaConsoleendl (iaConsole &console)
 
IGOR_INLINE iaConsoleendlTab (iaConsole &console)
 
IGOR_INLINE iaConsoleflush (iaConsole &console)
 
IGOR_INLINE iaConsoleincerr (iaConsole &console)
 
IGOR_INLINE iaConsoleincwarn (iaConsole &console)
 
IGOR_INLINE iaConsoleLOCK (iaConsole &console)
 
IGOR_INLINE iaConsoleUNLOCK (iaConsole &console)
 
IGOR_INLINE iaConsoleapplicationTime (iaConsole &console)
 
static bool fileMatch (const std::filesystem::directory_entry &entry, const iaString &searchPattern)
 
template<typename T >
std::wostream & operator<< (std::wostream &stream, const iaDelegate< T > &delegate)
 
static int64 getFileSize (FILE *fileHandle)
 
static const char * getOpenFlags (const iaFileOpenMode &mode)
 
static bool isWriteable (const iaFileOpenMode &mode)
 
std::wostream & operator<< (std::wostream &stream, const iaFileOpenMode &mode)
 
void getCallStack (std::vector< iaString > &callStack)
 
void * threadFunc (void *data)
 
IGOR_INLINE std::wostream & operator<< (std::wostream &ostr, const iaTime &time)
 

Variables

static const iaString s_numbers = "0123456789abcdef"
 
static iaRandomNumberGenerator _randomNumberGenerator (1337)
 
class IAUX_API iaConsole
 

Detailed Description

IgorAux namespace that contains all basic functionality of the Igor game engine

This is a port from robertpenner.com/easing/

Disclaimer for Robert Penner's Easing Equations license: TERMS OF USE - EASING EQUATIONS Open source under the BSD License. Copyright � 2001 Robert Penner All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met : Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and /or other materials provided with the distribution. Neither the name of the author nor the names of contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

Typedef Documentation

◆ iaBSplined

float64 BSpline

◆ iaBSplinef

float32 BSpline

◆ iaCircled

float64 precision of rectangle

◆ iaCirclef

float32 precision of rectangle

◆ iaCirclei

int32 precision of rectangle

◆ iaCircleI

int64 precision of rectangle

◆ iaColor3c

uint8 variant of color

◆ iaColor3f

float32 variant of color

Examples
Physics/src/PhysicsExample.cpp.

◆ iaColor4c

uint8 color

◆ iaColor4f

float32 color

◆ iaIDGenerator32

◆ iaIDGenerator64

◆ iaKeyFrameGraphColor4f

color vector gradient

◆ iaKeyFrameGraphd

float64 gradient

◆ iaKeyFrameGraphf

float32 gradient

◆ iaKeyFrameGraphui

◆ iaKeyFrameGraphVector2d

float64 2d vector gradient

◆ iaKeyFrameGraphVector2f

float32 2d vector gradient

◆ iaKeyFrameGraphVector3d

float64 3d vector gradient

◆ iaKeyFrameGraphVector3f

float32 3d vector gradient

◆ iaMatrix3x3d

float64 3x3 matrix

◆ iaMatrix3x3f

float32 3x3 matrix

◆ iaMatrixd

float64 4x4 matrix

Examples
Physics/src/PhysicsExample.cpp.

◆ iaMatrixf

float32 4x4 matrix

◆ iaQuaterniond

double precision quaternion definition

◆ iaQuaternionf

single precision quaternion definition

◆ iaRectangled

float64 precision of rectangle

◆ iaRectanglef

float32 precision of rectangle

◆ iaRectanglei

int32 precision of rectangle

◆ iaRectangleI

int64 precision of rectangle

◆ iaSphered

float64 precision of sphere

◆ iaSpheref

float32 precision of sphere

◆ iaSphereI

uint64 precision of sphere

◆ iaStateID

state ID definition

◆ iaStatePtr

state pointer definition

◆ iaTransformd

float64 transform

◆ iaTransformf

float32 transform

◆ iaTransitionID

transition ID definition

◆ iaTransitionPtr

transition pointer definition

◆ iaVector2d

float64 2d vector

◆ iaVector2f

float32 2d vector

◆ iaVector2i

int32 2d vector

◆ iaVector2I

int64 2d vector

◆ iaVector3d

◆ iaVector3f

float32 3d vector

◆ iaVector3i

int32 3d vector

◆ iaVector3I

int64 3d vector

◆ iaVector4d

float64 4d vector

◆ iaVector4f

float32 4d vector

◆ iaVector4i

int32 4d vector

◆ iaVector4I

int64 4d vector

◆ iThreadCallbackDelegate

thread delegate calls the actual function run by this thread

Enumeration Type Documentation

◆ iaAxis

enum class iaux::iaAxis
strong

axis definition

Enumerator

◆ iaFileOpenMode

enum class iaux::iaFileOpenMode
strong

file open modes

Enumerator
ReadBinary 
WriteBinary 
ReadWriteBinary 

◆ iaForegroundColor

enum class iaux::iaForegroundColor
strong

used as foreground colors for console output

Enumerator
White 
Gray 
Blue 
DarkBlue 
Green 
DarkGreen 
Cyan 
DarkCyan 
Red 
DarkRed 
Magenta 
DarkMagenta 
Yellow 
DarkYellow 

◆ iaLogLevel

enum class iaux::iaLogLevel
strong

logging level definitions

Enumerator
Fatal 

this would make the application stop

con_assert, con_assert_sticky, con_crit
Error 

there is a problem and the application might or might not be able to deal with it

con_err
Warning 

there is a minor problem and you should fix it

con_warn
Info 

informational output about what the engine does

con_info
User 

it's stuff somewhere between info and what the engine would log when actually compiled for debug. It's the equivalent of a plain cout or printf.

con_endl

Debug 

debug output

con_debug
Trace 

trace everything that there is

con_trace, con_trace_call

◆ iaStringSplitMode

enum class iaux::iaStringSplitMode
strong

string slpit mode

Enumerator
Normal 
RetriveAllEmpties 

◆ iaThreadState

enum class iaux::iaThreadState
strong

the state a thread is currently in

Enumerator
Init 
Running 
Deinit 
Done 

◆ iInterpolationMode

enum class iaux::iInterpolationMode
strong

interpolation mode

Enumerator
None 
Linear 

Function Documentation

◆ applicationTime()

IGOR_INLINE iaConsole & iaux::applicationTime ( iaConsole console)

prints application time in the console

Parameters
consoleconsole instance to use
Returns
the console instance

◆ dotProduct()

template<class T >
T iaux::dotProduct ( iaQuaternion< T >  a,
iaQuaternion< T >  b 
)

◆ endl()

IGOR_INLINE iaConsole & iaux::endl ( iaConsole console)

prints an endline to the console

Parameters
consoleconsole instance to use
Returns
the console instance

◆ endlTab()

IGOR_INLINE iaConsole & iaux::endlTab ( iaConsole console)

prints an endline and a logging tab to the console

Parameters
consoleconsole instance to use
Returns
the console instance

◆ fileMatch()

static bool iaux::fileMatch ( const std::filesystem::directory_entry &  entry,
const iaString searchPattern 
)
static
Returns
true if it's a file that matches given search pattern
Parameters
entrythe file entry
searchPatternthe given pattern

◆ flush()

IGOR_INLINE iaConsole & iaux::flush ( iaConsole console)

sends an flush to the console

Parameters
consoleconsole instance to use
Returns
the console instance

◆ getCallStack()

IAUX_API void iaux::getCallStack ( std::vector< iaString > &  callStack)

thank you Macmade http://stackoverflow.com/questions/5693192/win32-backtrace-from-c-code

returns current callstack

Parameters
[out]callStackvector filled with the current callstack

◆ getFileSize()

static int64 iaux::getFileSize ( FILE *  fileHandle)
static
Returns
file size for given file handle
Parameters
fileHandlethe given file handle

◆ getOpenFlags()

static const char * iaux::getOpenFlags ( const iaFileOpenMode mode)
static

◆ IGOR_EVENT_DEFINITION() [1/4]

iaux::IGOR_EVENT_DEFINITION ( iaEnterState  ,
void  ,
iaStateID   
)

enter state event

◆ IGOR_EVENT_DEFINITION() [2/4]

iaux::IGOR_EVENT_DEFINITION ( iaLeaveState  ,
void  ,
iaStateID   
)

leave state event

◆ IGOR_EVENT_DEFINITION() [3/4]

iaux::IGOR_EVENT_DEFINITION ( iaReEnterState  ,
void  ,
iaStateID   
)

re enter state event

◆ IGOR_EVENT_DEFINITION() [4/4]

iaux::IGOR_EVENT_DEFINITION ( iaUpdateState  ,
void  ,
iaStateID   
)

handle state event

◆ IGOR_FUNCTION_POINTER()

iaux::IGOR_FUNCTION_POINTER ( superspecialfuncptrtype  ,
iaConsole ,
(iaConsole &)   
)

◆ incerr()

IGOR_INLINE iaConsole & iaux::incerr ( iaConsole console)

increments the error counter

Parameters
consoleconsole instance to use
Returns
the console instance

◆ incwarn()

IGOR_INLINE iaConsole & iaux::incwarn ( iaConsole console)

increments the warning counter

Parameters
consoleconsole instance to use
Returns
the console instance

◆ isWriteable()

static bool iaux::isWriteable ( const iaFileOpenMode mode)
static

◆ lerp() [1/4]

template<class T >
iaTransform< T > iaux::lerp ( const iaTransform< T > &  a,
const iaTransform< T > &  b,
t 
)

◆ lerp() [2/4]

template<class T >
iaVector2< T > iaux::lerp ( const iaVector2< T > &  a,
const iaVector2< T > &  b,
t 
)

linear interpolation of two vectors

Parameters
avector a
bvector b
tinterpolation weight

◆ lerp() [3/4]

template<class T >
iaVector3< T > iaux::lerp ( const iaVector3< T > &  a,
const iaVector3< T > &  b,
t 
)

linear interpolation of two vectors

Parameters
avector a
bvector b
tinterpolation weight

◆ lerp() [4/4]

template<class T >
iaVector4< T > iaux::lerp ( const iaVector4< T > &  a,
const iaVector4< T > &  b,
t 
)

linear interpolation of two vectors

Parameters
avector a
bvector b
tinterpolation weight

◆ LOCK()

IGOR_INLINE iaConsole & iaux::LOCK ( iaConsole console)

locks mutex

Parameters
consoleconsole instance to use
Returns
the console instance

◆ operator<<() [1/10]

template<class T >
std::wostream & iaux::operator<< ( std::wostream &  ostr,
const iaColor3< T > &  color 
)

stream operator e.g. for console output

Parameters
ostrthe out stream handle
colorthe color to print in stream

◆ operator<<() [2/10]

template<class T >
std::wostream & iaux::operator<< ( std::wostream &  ostr,
const iaColor4< T > &  color 
)

stream operator e.g. for cosole output

Parameters
ostrthe out stream handle
colorthe color to print in stream

◆ operator<<() [3/10]

IGOR_INLINE std::wostream & iaux::operator<< ( std::wostream &  ostr,
const iaTime time 
)

stream operator e.g. for cosole output

Parameters
ostrthe out stream handle
timethe time to print in stream

◆ operator<<() [4/10]

template<typename T >
std::wostream & iaux::operator<< ( std::wostream &  stream,
const iaDelegate< T > &  delegate 
)

stream operator

Parameters
streamthe destination
textthe string to stream
Returns
the resulting stream

◆ operator<<() [5/10]

IAUX_API std::wostream & iaux::operator<< ( std::wostream &  stream,
const iaFileOpenMode mode 
)

prints the file open mode in the console

Parameters
streamthe stream to log to
modethe file open mode
Returns
the stream

◆ operator<<() [6/10]

IAUX_API std::wostream & iaux::operator<< ( std::wostream &  stream,
const iaLogLevel logLevel 
)

prints the log level in the console

Parameters
streamthe stream to log to
logLevelthe log level to print
Returns
the stream

◆ operator<<() [7/10]

template<class T >
IAUX_API std::wostream & iaux::operator<< ( std::wostream &  stream,
const iaMatrix< T > &  m 
)

stream operator

Parameters
streamthe destination
mthe matrix to stream
Returns
the resulting stream

◆ operator<<() [8/10]

IAUX_API std::wostream & iaux::operator<< ( std::wostream &  stream,
const iaString text 
)

stream operator

Parameters
streamthe destination
textthe string to stream
Returns
the resulting stream

◆ operator<<() [9/10]

IAUX_API std::wostream & iaux::operator<< ( std::wostream &  stream,
const iaUUID uuid 
)

print uuid in console

Parameters
streamthe stream to write to
uuidthe uuid to write
Returns
stream it self

◆ operator<<() [10/10]

IAUX_API std::wostream & iaux::operator<< ( std::wostream &  stream,
const std::vector< iaString > &  texts 
)

stream operator

Parameters
streamthe destination
textsa list of string to stream
Returns
the resulting stream

◆ printIgorThreadID()

iaConsole & iaux::printIgorThreadID ( iaConsole console)

prints the igor thread id in the console

Parameters
consoleconsole instance to use
Returns
the console instance

◆ shutdown()

void IGOR_API igor::shutdown ( )

should be called last in your application. do not use any Igor interface after that

Shuts down all the singleton instances. Not thread save. make shure only one thread is left when calling this.

should be called last in your application. do not use any Igor interface after that

Shuts down all the modules. Not thread save. make shure only one thread is left when calling this.

◆ slerp()

template<class T >
iaQuaternion< T > iaux::slerp ( iaQuaternion< T >  a,
iaQuaternion< T >  b,
t 
)

◆ startup()

void IGOR_API igor::startup ( )

should be called before any other interface of IgorAux is used

starting up Igor.

Must be called before any other interface of Igor is used

Parameters
confignamename of config file

config file will be searched for in this order

Windows: config\igor.xml ..\config\igor.xml ....\config\igor.xml Linux: ~/.igor/igor.xml /etc/igor/igor.xml config/igor.xml ../config/igor.xml ../../config/igor.xml

in that order

◆ threadFunc()

void * iaux::threadFunc ( void *  data)

◆ UNLOCK()

IGOR_INLINE iaConsole & iaux::UNLOCK ( iaConsole console)

unlocks mutex

Parameters
consoleconsole instance to use
Returns
the console instance

Variable Documentation

◆ _randomNumberGenerator

iaRandomNumberGenerator iaux::_randomNumberGenerator(1337) ( 1337  )
static

◆ iaConsole

class IAUX_API iaux::iaConsole

◆ s_numbers

const iaString iaux::s_numbers = "0123456789abcdef"
static

specifies what are numbers