diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Examples/Example_1.old/q3level.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Examples/Example_1.old/q3level.cpp Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,45 @@ +#include +#include "../../IrrLib/IrrLib.h" + +using namespace std; + +using namespace irr; +using namespace core; +using namespace scene; +using namespace video; +using namespace io; +using namespace gui; + +int main(){ + IrrLib Irrlicht(3, 640, 480, 16, false, true, true); + Irrlicht.ReadArchive("../../media/map-20kdm2.pk3"); + Irrlicht.LoadQ3Level("20kdm2.bsp"); + Irrlicht.NodePos(-1300, -144, -1249); + //Sets the camera at that x, y, z position + Irrlicht.AddFPSCam(); + Irrlicht.VisibleCursor(false); + int lastFPS = -1; + int fps = -1; + while (Irrlicht.DeviceIsRunning()) + if (Irrlicht.IsActiveWindow()) + { + Irrlicht.BeginScene(); + Irrlicht.DrawAll(); + Irrlicht.EndScene(); + fps = Irrlicht.GetFPSCount(); + if (lastFPS != fps) + { + stringw str = L"Irrlicht Engine - Quake 3 Map example ["; + str += Irrlicht.GetDriverName(); + str += "] FPS:"; + str += fps; + Irrlicht.SetWindowCaption(str); + lastFPS = fps; + } + } + Irrlicht.EndIrrlicht(); + return 0; //the deconstructor will delete all our dynamic vars so we don't have horriable memory leaks! + + //That was easy wasn't it? + //Everything is now humanreadable, I think your next door neighbor could even figure out whats going on....maybe +} diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Examples/Example_10_DisableEscExit/main_x.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Examples/Example_10_DisableEscExit/main_x.cpp Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,26 @@ +#include +#include "IrrLib.h" +#include + +using namespace std; + +using namespace irr; +using namespace core; +using namespace scene; +using namespace video; +using namespace io; +using namespace gui; + +int main(){ + IrrLib Irrlicht(5, 640, 480, 16, false, true, false); + Irrlicht.IrrEvent.SetEscExit(false); + while (Irrlicht.DeviceIsRunning()) + if (Irrlicht.IsActiveWindow()) + { + Irrlicht.BeginScene(); + Irrlicht.DrawAll(); + Irrlicht.EndScene(); + } + Irrlicht.EndIrrlicht(); + return 0; +} diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Examples/Example_11_3DObjects/main_x.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Examples/Example_11_3DObjects/main_x.cpp Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,73 @@ +#include +#include "IrrLib.h" +#include + +using namespace std; + +using namespace irr; +using namespace core; +using namespace scene; +using namespace video; +using namespace io; +using namespace gui; + +int main(){ + IrrLib Irrlicht(5, 640, 480, 16, false, true, false); + Irr3DObjColor col1; + Irr3DObjColor col2; + int nHits; + int nTimes = 0; + + //Color 1 + col1.a = 255; + col1.r = 0; + col1.g = 255; + col1.b = 5; + + //color 2 + col2.a = 255; + col2.r = 0; + col2.g = 255; + col2.b = 255; + + //Pos 1 + Irr3DPos pos1; + pos1.x = 0; + pos1.y = 0; + pos1.z = 0; + Irr3DObj obj1; + obj1->setColor(col1); + obj1->setMesh("sphere.3ds"); + Irr3DObj obj2; + obj2->setMesh("cube.3ds"); + obj2->setColor(col2); + obj1->addToScene(); + obj2->addToScene(); + Irrlicht.AddFPSCam(); + while (Irrlicht.DeviceIsRunning()) + if (Irrlicht.IsActiveWindow()) + { + nHits = CheckForCollision(obj1,obj2); + if (nHits > 0) + { + cout << "The sphere collided with the squre " << nTimes << endl; + nTimes++; + } + if (Irrlicht.IrrEvent.keyStates[KEY_KEY_W]){ + Irrlicht.IrrEvent.keyStates[KEY_KEY_W] = false; + pos1.x = pos1.x + 10; + obj1->Move(pos1); + } + if (Irrlicht.IrrEvent.keyStates[KEY_KEY_S]){ + Irrlicht.IrrEvent.keyStates[KEY_KEY_S] = false; + pos1.x = pos1.x - 10; + obj1->Move(pos1); + } + Irrlicht.BeginScene(Irrlicht.Color.RED); + Irrlicht.DrawAll(); + Irrlicht.EndScene(); + nHits = 0; + } + Irrlicht.EndIrrlicht(); + return 0; +} diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Examples/Example_1_Basic/main.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Examples/Example_1_Basic/main.cpp Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,61 @@ +#include +#include "IrrLib.h" +#include + +using namespace std; + +using namespace irr; +using namespace core; +using namespace scene; +using namespace video; +using namespace io; +using namespace gui; + +int main(){ +/* + Driver types: + 0 = NULL + 1 = EDT_SOFTWARE + 2 = EDT_BURNINGSVIDEO + 3 = EDT_OPENGL + 4 = EDT_DIRECT3D8 *Note not supported by Microsoft anymore + 5 = EDT_DIRECT3D9 *Reccommended + defualt = EDT_SOFTWARE + If you are confused using the driver types consider using an enum: + //note you can name the drivers what ever you want, C++ will still number them correctly assuming they are in this order + enum IrrDriverType { NULL, EDT_SOFTWARE, EDT_BURNINGSVIDEO, EDT_OPENGL, EDT_DIRECT3D8, EDT_DIRECT3D9 }; + IrrDriverType = EDT_DIRECT3D9; + //then pass IrrDriverType to Irrlicht constructor + IrrLib Irrlicht(IrrDriverType, 640, 480, 16, false, true, false); + Note: Do not set vsync, last param, to true unless you want to slow down your + software. ie playing doom on a $5,000 gaming machine, would be wise to use vsync + in that senerio. + +*/ + //This is a non defualt constructor for the IrrLib + //Defualt uses software with 640x480 res and all settings to false + // You can declare a default Irrlicht like this: + // IrrLib Irrlicht; + /* + IrrLib::IrrLib(int nDrivertype, int width, int height, int bits, bool fullscreen, bool stencilbuffer, bool vsync); + As you can see from the function prototype, I am created a new Irrlicht device using Direct3D9 driver, 640x480 res, with fullscreen off, stencil buffer on, and vsync off + */ + IrrLib Irrlicht(5, 640, 480, 16, false, true, false); + + //if Irrlicht is the active window + // You don't have to use it, but your 'game' will still be running if the user alt tabs to word or something + //Lets create a loop until the Irrlicht device is stoped + while (Irrlicht.DeviceIsRunning()) + if (Irrlicht.IsActiveWindow()) + { + //Default begin scene uses a grey background + Irrlicht.BeginScene(); + //Tells Irrlicht to draw everything to the screen, GUI elements/3D-2D objects including spheres + Irrlicht.DrawAll(); + //Tells Irrlicht that we are done drawing anything + Irrlicht.EndScene(); + } + //Our game is done, tell Irrlicht to clean up and exit + Irrlicht.EndIrrlicht(); + return 0; //the deconstructor will delete all our dynamic vars so we don't have horriable memory leaks! +} \ No newline at end of file diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Examples/Example_1_Basic/main_x.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Examples/Example_1_Basic/main_x.cpp Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,26 @@ +#include +#include "IrrLib.h" +#include + +using namespace std; + +using namespace irr; +using namespace core; +using namespace scene; +using namespace video; +using namespace io; +using namespace gui; + +int main(){ + IrrLib Irrlicht(5, 640, 480, 16, false, true, false); + + while (Irrlicht.DeviceIsRunning()) + if (Irrlicht.IsActiveWindow()) + { + Irrlicht.BeginScene(); + Irrlicht.DrawAll(); + Irrlicht.EndScene(); + } + Irrlicht.EndIrrlicht(); + return 0; +} \ No newline at end of file diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Examples/Example_2_SceneColor/main.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Examples/Example_2_SceneColor/main.cpp Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,70 @@ +#include +#include "IrrLib.h" +#include + +using namespace std; + +using namespace irr; +using namespace core; +using namespace scene; +using namespace video; +using namespace io; +using namespace gui; + +int main(){ +/* + Driver types: + 0 = NULL + 1 = EDT_SOFTWARE + 2 = EDT_BURNINGSVIDEO + 3 = EDT_OPENGL + 4 = EDT_DIRECT3D8 *Note not supported by Microsoft anymore + 5 = EDT_DIRECT3D9 *Reccommended + defualt = EDT_SOFTWARE + + Note: Do not set vsync, last param, to true unless you want to slow down your + software. ie playing doom on a $5,000 gaming machine, would be wise to use vsync + in that senerio. + +*/ + //This is a non defualt constructor for the IrrLib + //Defualt uses software with 640x480 res and all settings to false + // You can declare a default Irrlicht like this: + // IrrLib Irrlicht; + /* + IrrLib::IrrLib(int nDrivertype, int width, int height, int bits, bool fullscreen, bool stencilbuffer, bool vsync); + As you can see from the function prototype, I am created a new Irrlicht device using Direct3D9 driver, 640x480 res, with fullscreen off, stencil buffer on, and vsync off + */ + IrrLib Irrlicht(5, 640, 480, 16, false, true, false); + + //if Irrlicht is the active window + // You don't have to use it, but your 'game' will still be running if the user alt tabs to word or something + //Lets create a loop until the Irrlicht device is stoped + while (Irrlicht.DeviceIsRunning()) + if (Irrlicht.IsActiveWindow()) + { + //black background + Irrlicht.BeginScene(SColor(255, 255, 255)); + //For the background color you have another choice: + /* + Irrlicht.BeginScene(Irrlicht.Color("green")); + */ + //This would also work, because the color class is a wrapper for some basic colors. + /* Other choices include: + red + green + blue + dark green + pink + grey + */ + + //Tells Irrlicht to draw everything to the screen, GUI elements/3D-2D objects including spheres + Irrlicht.DrawAll(); + //Tells Irrlicht that we are done drawing anything + Irrlicht.EndScene(); + } + //Our game is done, tell Irrlicht to clean up and exit + Irrlicht.EndIrrlicht(); + return 0; //the deconstructor will delete all our dynamic vars so we don't have horriable memory leaks! +} \ No newline at end of file diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Examples/Example_2_SceneColor/main_x.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Examples/Example_2_SceneColor/main_x.cpp Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,26 @@ +#include +#include "IrrLib.h" +#include + +using namespace std; + +using namespace irr; +using namespace core; +using namespace scene; +using namespace video; +using namespace io; +using namespace gui; + +int main(){ + IrrLib Irrlicht(5, 640, 480, 16, false, true, false); + + while (Irrlicht.DeviceIsRunning()) + if (Irrlicht.IsActiveWindow()) + { + Irrlicht.BeginScene(SColor(255, 255, 255, 255)); + Irrlicht.DrawAll(); + Irrlicht.EndScene(); + } + Irrlicht.EndIrrlicht(); + return 0; +} diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Examples/Example_3_Keyboard/main.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Examples/Example_3_Keyboard/main.cpp Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,63 @@ +#include +#include "IrrLib.h" +#include + +using namespace std; + +using namespace irr; +using namespace core; +using namespace scene; +using namespace video; +using namespace io; +using namespace gui; + +int main(){ +/* + Driver types: + 0 = NULL + 1 = EDT_SOFTWARE + 2 = EDT_BURNINGSVIDEO + 3 = EDT_OPENGL + 4 = EDT_DIRECT3D8 *Note not supported by Microsoft anymore + 5 = EDT_DIRECT3D9 *Reccommended + defualt = EDT_SOFTWARE + + Note: Do not set vsync, last param, to true unless you want to slow down your + software. ie playing doom on a $5,000 gaming machine, would be wise to use vsync + in that senerio. + +*/ + //This is a non defualt constructor for the IrrLib + //Defualt uses software with 640x480 res and all settings to false + // You can declare a default Irrlicht like this: + // IrrLib Irrlicht; + /* + IrrLib::IrrLib(int nDrivertype, int width, int height, int bits, bool fullscreen, bool stencilbuffer, bool vsync); + As you can see from the function prototype, I am created a new Irrlicht device using Direct3D9 driver, 640x480 res, with fullscreen off, stencil buffer on, and vsync off + */ + IrrLib Irrlicht(5, 640, 480, 16, false, true, false); + + //if Irrlicht is the active window + // You don't have to use it, but your 'game' will still be running if the user alt tabs to word or something + //Lets create a loop until the Irrlicht device is stoped + while (Irrlicht.DeviceIsRunning()) + if (Irrlicht.IsActiveWindow()) + { + //grey background + Irrlicht.BeginScene(); + + //Tells Irrlicht to draw everything to the screen, GUI elements/3D-2D objects including spheres + Irrlicht.DrawAll(); + //Tells Irrlicht that we are done drawing anything + Irrlicht.EndScene(); + //If user hits escape, exit + //Note* Exit condition has to be done last else you will get a nonsense error from Irrlicht saying it couldn't draw. + if (Irrlicht.IrrEvent.keyStates[KEY_ESCAPE]){ + Irrlicht.IrrEvent.keyStates[KEY_ESCAPE] = false; + Irrlicht.Exit(); + } + } + //Our game is done, tell Irrlicht to clean up and exit + Irrlicht.EndIrrlicht(); + return 0; //the deconstructor will delete all our dynamic vars so we don't have horriable memory leaks! +} \ No newline at end of file diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Examples/Example_3_Keyboard/main_x.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Examples/Example_3_Keyboard/main_x.cpp Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,30 @@ +#include +#include "IrrLib.h" +#include + +using namespace std; + +using namespace irr; +using namespace core; +using namespace scene; +using namespace video; +using namespace io; +using namespace gui; + +int main(){ + IrrLib Irrlicht(5, 640, 480, 16, false, true, false); + + while (Irrlicht.DeviceIsRunning()) + if (Irrlicht.IsActiveWindow()) + { + Irrlicht.BeginScene(); + Irrlicht.DrawAll(); + Irrlicht.EndScene(); + if (Irrlicht.IrrEvent.keyStates[KEY_ESCAPE]){ + Irrlicht.IrrEvent.keyStates[KEY_ESCAPE] = false; + Irrlicht.Exit(); + } + } + Irrlicht.EndIrrlicht(); + return 0; +} \ No newline at end of file diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Examples/Example_4_WindowCaption/UsingStdString.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Examples/Example_4_WindowCaption/UsingStdString.cpp Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,76 @@ +#include +#include "IrrLib.h" +#include + +using namespace std; + +using namespace irr; +using namespace core; +using namespace scene; +using namespace video; +using namespace io; +using namespace gui; + +int main(){ +/* + Driver types: + 0 = NULL + 1 = EDT_SOFTWARE + 2 = EDT_BURNINGSVIDEO + 3 = EDT_OPENGL + 4 = EDT_DIRECT3D8 *Note not supported by Microsoft anymore + 5 = EDT_DIRECT3D9 *Reccommended + defualt = EDT_SOFTWARE + + Note: Do not set vsync, last param, to true unless you want to slow down your + software. ie playing doom on a $5,000 gaming machine, would be wise to use vsync + in that senerio. + +*/ + //This is a non defualt constructor for the IrrLib + //Defualt uses software with 640x480 res and all settings to false + // You can declare a default Irrlicht like this: + // IrrLib Irrlicht; + /* + IrrLib::IrrLib(int nDrivertype, int width, int height, int bits, bool fullscreen, bool stencilbuffer, bool vsync); + As you can see from the function prototype, I am created a new Irrlicht device using Direct3D9 driver, 640x480 res, with fullscreen off, stencil buffer on, and vsync off + */ + IrrLib Irrlicht(5, 640, 480, 16, false, true, false); + + //if Irrlicht is the active window + // You don't have to use it, but your 'game' will still be running if the user alt tabs to word or something + //Lets create a loop until the Irrlicht device is stoped + while (Irrlicht.DeviceIsRunning()) + if (Irrlicht.IsActiveWindow()) + { + //grey background + Irrlicht.BeginScene(); + + //Tells Irrlicht to draw everything to the screen, GUI elements/3D-2D objects including spheres + Irrlicht.DrawAll(); + //Tells Irrlicht that we are done drawing anything + Irrlicht.EndScene(); + //If user hits escape, exit + //Note* Exit condition has to be done last else you will get a nonsense error from Irrlicht saying it couldn't draw. + if (Irrlicht.IrrEvent.keyStates[KEY_ESCAPE]){ + Irrlicht.IrrEvent.keyStates[KEY_ESCAPE] = false; + Irrlicht.Exit(); + } + //This demostrates using std::string to set a window caption + std::string str = "IrrLib is cool!"; + //Every class in Irrlicht knows some basic conversion + //See the following examples for more options + /* + You can also convert a stringw to a std::string using + stringw tmpw = L"This is fun!"; + std::string tmp = Irrlicht.stringw_to_stdstring(tmpw); + + Every class also knows how to convert an int to std::string + std::string snum = Irrlicht.int_to_string(5); + */ + Irrlicht.SetWindowCaption(Irrlicht.stdstring_to_stringw(str)); + } + //Our game is done, tell Irrlicht to clean up and exit + Irrlicht.EndIrrlicht(); + return 0; //the deconstructor will delete all our dynamic vars so we don't have horriable memory leaks! +} \ No newline at end of file diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Examples/Example_4_WindowCaption/UsingStringw.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Examples/Example_4_WindowCaption/UsingStringw.cpp Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,67 @@ +#include +#include "IrrLib.h" +#include + +using namespace std; + +using namespace irr; +using namespace core; +using namespace scene; +using namespace video; +using namespace io; +using namespace gui; + +int main(){ +/* + Driver types: + 0 = NULL + 1 = EDT_SOFTWARE + 2 = EDT_BURNINGSVIDEO + 3 = EDT_OPENGL + 4 = EDT_DIRECT3D8 *Note not supported by Microsoft anymore + 5 = EDT_DIRECT3D9 *Reccommended + defualt = EDT_SOFTWARE + + Note: Do not set vsync, last param, to true unless you want to slow down your + software. ie playing doom on a $5,000 gaming machine, would be wise to use vsync + in that senerio. + +*/ + //This is a non defualt constructor for the IrrLib + //Defualt uses software with 640x480 res and all settings to false + // You can declare a default Irrlicht like this: + // IrrLib Irrlicht; + /* + IrrLib::IrrLib(int nDrivertype, int width, int height, int bits, bool fullscreen, bool stencilbuffer, bool vsync); + As you can see from the function prototype, I am created a new Irrlicht device using Direct3D9 driver, 640x480 res, with fullscreen off, stencil buffer on, and vsync off + */ + IrrLib Irrlicht(5, 640, 480, 16, false, true, false); + + //if Irrlicht is the active window + // You don't have to use it, but your 'game' will still be running if the user alt tabs to word or something + //Lets create a loop until the Irrlicht device is stoped + while (Irrlicht.DeviceIsRunning()) + if (Irrlicht.IsActiveWindow()) + { + //grey background + Irrlicht.BeginScene(); + + //Tells Irrlicht to draw everything to the screen, GUI elements/3D-2D objects including spheres + Irrlicht.DrawAll(); + //Tells Irrlicht that we are done drawing anything + Irrlicht.EndScene(); + //If user hits escape, exit + //Note* Exit condition has to be done last else you will get a nonsense error from Irrlicht saying it couldn't draw. + if (Irrlicht.IrrEvent.keyStates[KEY_ESCAPE]){ + Irrlicht.IrrEvent.keyStates[KEY_ESCAPE] = false; + Irrlicht.Exit(); + } + //This demostrates using irrlichts stringw data type + //See the following examples for more options + stringw str = L"Hello world, this is a fun game!"; + Irrlicht.SetWindowCaption(str); + } + //Our game is done, tell Irrlicht to clean up and exit + Irrlicht.EndIrrlicht(); + return 0; //the deconstructor will delete all our dynamic vars so we don't have horriable memory leaks! +} \ No newline at end of file diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Examples/Example_4_WindowCaption/main.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Examples/Example_4_WindowCaption/main.cpp Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,65 @@ +#include +#include "IrrLib.h" +#include + +using namespace std; + +using namespace irr; +using namespace core; +using namespace scene; +using namespace video; +using namespace io; +using namespace gui; + +int main(){ +/* + Driver types: + 0 = NULL + 1 = EDT_SOFTWARE + 2 = EDT_BURNINGSVIDEO + 3 = EDT_OPENGL + 4 = EDT_DIRECT3D8 *Note not supported by Microsoft anymore + 5 = EDT_DIRECT3D9 *Reccommended + defualt = EDT_SOFTWARE + + Note: Do not set vsync, last param, to true unless you want to slow down your + software. ie playing doom on a $5,000 gaming machine, would be wise to use vsync + in that senerio. + +*/ + //This is a non defualt constructor for the IrrLib + //Defualt uses software with 640x480 res and all settings to false + // You can declare a default Irrlicht like this: + // IrrLib Irrlicht; + /* + IrrLib::IrrLib(int nDrivertype, int width, int height, int bits, bool fullscreen, bool stencilbuffer, bool vsync); + As you can see from the function prototype, I am created a new Irrlicht device using Direct3D9 driver, 640x480 res, with fullscreen off, stencil buffer on, and vsync off + */ + IrrLib Irrlicht(5, 640, 480, 16, false, true, false); + + //if Irrlicht is the active window + // You don't have to use it, but your 'game' will still be running if the user alt tabs to word or something + //Lets create a loop until the Irrlicht device is stoped + while (Irrlicht.DeviceIsRunning()) + if (Irrlicht.IsActiveWindow()) + { + //grey background + Irrlicht.BeginScene(); + + //Tells Irrlicht to draw everything to the screen, GUI elements/3D-2D objects including spheres + Irrlicht.DrawAll(); + //Tells Irrlicht that we are done drawing anything + Irrlicht.EndScene(); + //If user hits escape, exit + //Note* Exit condition has to be done last else you will get a nonsense error from Irrlicht saying it couldn't draw. + if (Irrlicht.IrrEvent.keyStates[KEY_ESCAPE]){ + Irrlicht.IrrEvent.keyStates[KEY_ESCAPE] = false; + Irrlicht.Exit(); + } + //This demostrates setting a static window caption + Irrlicht.SetWindowCaption(L"Hello world, this is a fun game!"); + } + //Our game is done, tell Irrlicht to clean up and exit + Irrlicht.EndIrrlicht(); + return 0; //the deconstructor will delete all our dynamic vars so we don't have horriable memory leaks! +} \ No newline at end of file diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Examples/Example_4_WindowCaption/main_x.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Examples/Example_4_WindowCaption/main_x.cpp Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,102 @@ +#include +#include "IrrLib.h" +#include + +using namespace std; + +using namespace irr; +using namespace core; +using namespace scene; +using namespace video; +using namespace io; +using namespace gui; + +int main(){ + IrrLib Irrlicht(5, 640, 480, 16, false, true, false); + + while (Irrlicht.DeviceIsRunning()) + if (Irrlicht.IsActiveWindow()) + { + Irrlicht.BeginScene(); + Irrlicht.DrawAll(); + Irrlicht.EndScene(); + if (Irrlicht.IrrEvent.keyStates[KEY_ESCAPE]){ + Irrlicht.IrrEvent.keyStates[KEY_ESCAPE] = false; + Irrlicht.Exit(); + } + std::string str = "IrrLib is cool!"; + Irrlicht.SetWindowCaption(Irrlicht.stdstring_to_stringw(str)); + } + Irrlicht.EndIrrlicht(); + return 0; +} + + +---------------------- + +#include +#include "IrrLib.h" +#include + +using namespace std; + +using namespace irr; +using namespace core; +using namespace scene; +using namespace video; +using namespace io; +using namespace gui; + +int main(){ + IrrLib Irrlicht(5, 640, 480, 16, false, true, false); + + while (Irrlicht.DeviceIsRunning()) + if (Irrlicht.IsActiveWindow()) + { + Irrlicht.BeginScene(); + Irrlicht.DrawAll(); + Irrlicht.EndScene(); + if (Irrlicht.IrrEvent.keyStates[KEY_ESCAPE]){ + Irrlicht.IrrEvent.keyStates[KEY_ESCAPE] = false; + Irrlicht.Exit(); + } + stringw str = L"Hello world, this is a fun game!"; + Irrlicht.SetWindowCaption(str); + } + Irrlicht.EndIrrlicht(); + return 0; +} + +------------------------------------------------------ + +#include +#include "IrrLib.h" +#include + +using namespace std; + +using namespace irr; +using namespace core; +using namespace scene; +using namespace video; +using namespace io; +using namespace gui; + +int main(){ + IrrLib Irrlicht(5, 640, 480, 16, false, true, false); + + while (Irrlicht.DeviceIsRunning()) + if (Irrlicht.IsActiveWindow()) + { + Irrlicht.BeginScene(); + Irrlicht.DrawAll(); + Irrlicht.EndScene(); + if (Irrlicht.IrrEvent.keyStates[KEY_ESCAPE]){ + Irrlicht.IrrEvent.keyStates[KEY_ESCAPE] = false; + Irrlicht.Exit(); + } + Irrlicht.SetWindowCaption(L"Hello world, this is a fun game!"); + } + Irrlicht.EndIrrlicht(); + return 0; +} \ No newline at end of file diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Examples/Example_5_Cursor/main.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Examples/Example_5_Cursor/main.cpp Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,58 @@ +#include +#include "IrrLib.h" +#include + +using namespace std; + +using namespace irr; +using namespace core; +using namespace scene; +using namespace video; +using namespace io; +using namespace gui; + +int main(){ +/* + Driver types: + 0 = NULL + 1 = EDT_SOFTWARE + 2 = EDT_BURNINGSVIDEO + 3 = EDT_OPENGL + 4 = EDT_DIRECT3D8 *Note not supported by Microsoft anymore + 5 = EDT_DIRECT3D9 *Reccommended + defualt = EDT_SOFTWARE + + Note: Do not set vsync, last param, to true unless you want to slow down your + software. ie playing doom on a $5,000 gaming machine, would be wise to use vsync + in that senerio. + +*/ + //This is a non defualt constructor for the IrrLib + //Defualt uses software with 640x480 res and all settings to false + // You can declare a default Irrlicht like this: + // IrrLib Irrlicht; + /* + IrrLib::IrrLib(int nDrivertype, int width, int height, int bits, bool fullscreen, bool stencilbuffer, bool vsync); + As you can see from the function prototype, I am created a new Irrlicht device using Direct3D9 driver, 640x480 res, with fullscreen off, stencil buffer on, and vsync off + */ + IrrLib Irrlicht(5, 640, 480, 16, false, true, false); + //You only need one line to hide the mouse cursor if you want + Irrlicht.VisibleCursor(false); + + //if Irrlicht is the active window + // You don't have to use it, but your 'game' will still be running if the user alt tabs to word or something + //Lets create a loop until the Irrlicht device is stoped + while (Irrlicht.DeviceIsRunning()) + if (Irrlicht.IsActiveWindow()) + { + //Default begin scene uses a grey background + Irrlicht.BeginScene(); + //Tells Irrlicht to draw everything to the screen, GUI elements/3D-2D objects including spheres + Irrlicht.DrawAll(); + //Tells Irrlicht that we are done drawing anything + Irrlicht.EndScene(); + } + //Our game is done, tell Irrlicht to clean up and exit + Irrlicht.EndIrrlicht(); + return 0; //the deconstructor will delete all our dynamic vars so we don't have horriable memory leaks! +} \ No newline at end of file diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Examples/Example_5_Cursor/main_x.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Examples/Example_5_Cursor/main_x.cpp Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,27 @@ +#include +#include "IrrLib.h" +#include + +using namespace std; + +using namespace irr; +using namespace core; +using namespace scene; +using namespace video; +using namespace io; +using namespace gui; + +int main(){ + IrrLib Irrlicht(5, 640, 480, 16, false, true, false); + Irrlicht.VisibleCursor(false); + + while (Irrlicht.DeviceIsRunning()) + if (Irrlicht.IsActiveWindow()) + { + Irrlicht.BeginScene(); + Irrlicht.DrawAll(); + Irrlicht.EndScene(); + } + Irrlicht.EndIrrlicht(); + return 0; +} \ No newline at end of file diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Examples/Example_6_GameLoop/main.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Examples/Example_6_GameLoop/main.cpp Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,64 @@ +#include +#include "IrrLib.h" +#include + +using namespace std; + +using namespace irr; +using namespace core; +using namespace scene; +using namespace video; +using namespace io; +using namespace gui; + +int main(){ +/* + Driver types: + 0 = NULL + 1 = EDT_SOFTWARE + 2 = EDT_BURNINGSVIDEO + 3 = EDT_OPENGL + 4 = EDT_DIRECT3D8 *Note not supported by Microsoft anymore + 5 = EDT_DIRECT3D9 *Reccommended + defualt = EDT_SOFTWARE + + Note: Do not set vsync, last param, to true unless you want to slow down your + software. ie playing doom on a $5,000 gaming machine, would be wise to use vsync + in that senerio. + +*/ + //This is a non defualt constructor for the IrrLib + //Defualt uses software with 640x480 res and all settings to false + // You can declare a default Irrlicht like this: + // IrrLib Irrlicht; + /* + IrrLib::IrrLib(int nDrivertype, int width, int height, int bits, bool fullscreen, bool stencilbuffer, bool vsync); + As you can see from the function prototype, I am created a new Irrlicht device using Direct3D9 driver, 640x480 res, with fullscreen off, stencil buffer on, and vsync off + */ + IrrLib Irrlicht(5, 640, 480, 16, false, true, false); + + //if Irrlicht is the active window + // You don't have to use it, but your 'game' will still be running if the user alt tabs to word or something + //Lets create a loop until the Irrlicht device is stoped + while (Irrlicht.DeviceIsRunning()) + if (Irrlicht.IsActiveWindow()) + { + //Lets start a game loop + //Default game loop is 30ms, you can also use: + /* + Irrlicht.CheckGameLoop(60); + */ + //To set a custom gameloop timer + if(Irrlicht.CheckGameLoop()){ + //Default begin scene uses a grey background + Irrlicht.BeginScene(); + //Tells Irrlicht to draw everything to the screen, GUI elements/3D-2D objects including spheres + Irrlicht.DrawAll(); + //Tells Irrlicht that we are done drawing anything + Irrlicht.EndScene(); + } + } + //Our game is done, tell Irrlicht to clean up and exit + Irrlicht.EndIrrlicht(); + return 0; //the deconstructor will delete all our dynamic vars so we don't have horriable memory leaks! +} \ No newline at end of file diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Examples/Example_6_GameLoop/main_x.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Examples/Example_6_GameLoop/main_x.cpp Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,29 @@ +#include +#include "IrrLib.h" +#include + +using namespace std; + +using namespace irr; +using namespace core; +using namespace scene; +using namespace video; +using namespace io; +using namespace gui; + +int main(){ + IrrLib Irrlicht(5, 640, 480, 16, false, true, false); + + while (Irrlicht.DeviceIsRunning()) + if (Irrlicht.IsActiveWindow()) + { + if(Irrlicht.CheckGameLoop()){ + Irrlicht.BeginScene(); + Irrlicht.DrawAll(); + Irrlicht.EndScene(); + } + } + //Our game is done, tell Irrlicht to clean up and exit + Irrlicht.EndIrrlicht(); + return 0; //the deconstructor will delete all our dynamic vars so we don't have horriable memory leaks! +} \ No newline at end of file diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Examples/Example_7_Spheres/main.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Examples/Example_7_Spheres/main.cpp Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,65 @@ +#include +#include "IrrLib.h" +#include + +using namespace std; + +using namespace irr; +using namespace core; +using namespace scene; +using namespace video; +using namespace io; +using namespace gui; + +int main(){ +/* + Driver types: + 0 = NULL + 1 = EDT_SOFTWARE + 2 = EDT_BURNINGSVIDEO + 3 = EDT_OPENGL + 4 = EDT_DIRECT3D8 *Note not supported by Microsoft anymore + 5 = EDT_DIRECT3D9 *Reccommended + defualt = EDT_SOFTWARE + If you are confused using the driver types consider using an enum: + //note you can name the drivers what ever you want, C++ will still number them correctly assuming they are in this order + enum IrrDriverType { NULL, EDT_SOFTWARE, EDT_BURNINGSVIDEO, EDT_OPENGL, EDT_DIRECT3D8, EDT_DIRECT3D9 }; + IrrDriverType = EDT_DIRECT3D9; + //then pass IrrDriverType to Irrlicht constructor + IrrLib Irrlicht(IrrDriverType, 640, 480, 16, false, true, false); + Note: Do not set vsync, last param, to true unless you want to slow down your + software. ie playing doom on a $5,000 gaming machine, would be wise to use vsync + in that senerio. + +*/ + //This is a non defualt constructor for the IrrLib + //Defualt uses software with 640x480 res and all settings to false + // You can declare a default Irrlicht like this: + // IrrLib Irrlicht; + /* + IrrLib::IrrLib(int nDrivertype, int width, int height, int bits, bool fullscreen, bool stencilbuffer, bool vsync); + As you can see from the function prototype, I am created a new Irrlicht device using Direct3D9 driver, 640x480 res, with fullscreen off, stencil buffer on, and vsync off + */ + IrrLib Irrlicht(5, 640, 480, 16, false, true, false); + + int sphere1 = Irrlicht.Irr3DLib.Sphere.CreateNewSphereNode(0, 0, 30, "../../media/wall.bmp", false); + int sphere2 = Irrlicht.Irr3DLib.Sphere.CreateNewSphereNode(0, 20, 40, "../../media/wall.bmp", false); + int sphere3 = Irrlicht.Irr3DLib.Sphere.CreateNewSphereNode(0, 0, 50, "../../media/wall.bmp", false); + + //if Irrlicht is the active window + // You don't have to use it, but your 'game' will still be running if the user alt tabs to word or something + //Lets create a loop until the Irrlicht device is stoped + while (Irrlicht.DeviceIsRunning()) + if (Irrlicht.IsActiveWindow()) + { + //Default begin scene uses a grey background + Irrlicht.BeginScene(); + //Tells Irrlicht to draw everything to the screen, GUI elements/3D-2D objects including spheres + Irrlicht.DrawAll(); + //Tells Irrlicht that we are done drawing anything + Irrlicht.EndScene(); + } + //Our game is done, tell Irrlicht to clean up and exit + Irrlicht.EndIrrlicht(); + return 0; //the deconstructor will delete all our dynamic vars so we don't have horriable memory leaks! +} \ No newline at end of file diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Examples/Example_7_Spheres/main_x.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Examples/Example_7_Spheres/main_x.cpp Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,30 @@ +#include +#include "IrrLib.h" +#include + +using namespace std; + +using namespace irr; +using namespace core; +using namespace scene; +using namespace video; +using namespace io; +using namespace gui; + +int main(){ + IrrLib Irrlicht(5, 640, 480, 16, false, true, false); + + int sphere1 = Irrlicht.Irr3DLib.Sphere.CreateNewSphereNode(0, 0, 30, "../../media/wall.bmp", false); + int sphere2 = Irrlicht.Irr3DLib.Sphere.CreateNewSphereNode(0, 20, 40, "../../media/wall.bmp", false); + int sphere3 = Irrlicht.Irr3DLib.Sphere.CreateNewSphereNode(0, 0, 50, "../../media/wall.bmp", false); + + while (Irrlicht.DeviceIsRunning()) + if (Irrlicht.IsActiveWindow()) + { + Irrlicht.BeginScene(); + Irrlicht.DrawAll(); + Irrlicht.EndScene(); + } + Irrlicht.EndIrrlicht(); + return 0; +} \ No newline at end of file diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Examples/Example_8_Mouse/main.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Examples/Example_8_Mouse/main.cpp Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,67 @@ +#include +#include "IrrLib.h" +#include + +using namespace std; + +using namespace irr; +using namespace core; +using namespace scene; +using namespace video; +using namespace io; +using namespace gui; + +int main(){ +/* + Driver types: + 0 = NULL + 1 = EDT_SOFTWARE + 2 = EDT_BURNINGSVIDEO + 3 = EDT_OPENGL + 4 = EDT_DIRECT3D8 *Note not supported by Microsoft anymore + 5 = EDT_DIRECT3D9 *Reccommended + defualt = EDT_SOFTWARE + If you are confused using the driver types consider using an enum: + //note you can name the drivers what ever you want, C++ will still number them correctly assuming they are in this order + enum IrrDriverType { NULL, EDT_SOFTWARE, EDT_BURNINGSVIDEO, EDT_OPENGL, EDT_DIRECT3D8, EDT_DIRECT3D9 }; + IrrDriverType = EDT_DIRECT3D9; + //then pass IrrDriverType to Irrlicht constructor + IrrLib Irrlicht(IrrDriverType, 640, 480, 16, false, true, false); + Note: Do not set vsync, last param, to true unless you want to slow down your + software. ie playing doom on a $5,000 gaming machine, would be wise to use vsync + in that senerio. + +*/ + //This is a non defualt constructor for the IrrLib + //Defualt uses software with 640x480 res and all settings to false + // You can declare a default Irrlicht like this: + // IrrLib Irrlicht; + /* + IrrLib::IrrLib(int nDrivertype, int width, int height, int bits, bool fullscreen, bool stencilbuffer, bool vsync); + As you can see from the function prototype, I am created a new Irrlicht device using Direct3D9 driver, 640x480 res, with fullscreen off, stencil buffer on, and vsync off + */ + IrrLib Irrlicht(5, 640, 480, 16, false, true, false); + + //if Irrlicht is the active window + // You don't have to use it, but your 'game' will still be running if the user alt tabs to word or something + //Lets create a loop until the Irrlicht device is stoped + std::string cap; + while (Irrlicht.DeviceIsRunning()) + if (Irrlicht.IsActiveWindow()) + { + //IrrEvent class has 2 functions for mouse handling + //getMouseX() returns the X pos of the mouse as an int + //getMouseY() returns the Y pos of the mouse as an int + cap = "Mouse X = " + Irrlicht.int_to_string(Irrlicht.IrrEvent.getMouseX()) + " Mouse Y = " + Irrlicht.int_to_string(Irrlicht.IrrEvent.getMouseY()); + Irrlicht.SetWindowCaption(Irrlicht.stdstring_to_stringw(cap)); + //Default begin scene uses a grey background + Irrlicht.BeginScene(); + //Tells Irrlicht to draw everything to the screen, GUI elements/3D-2D objects including spheres + Irrlicht.DrawAll(); + //Tells Irrlicht that we are done drawing anything + Irrlicht.EndScene(); + } + //Our game is done, tell Irrlicht to clean up and exit + Irrlicht.EndIrrlicht(); + return 0; //the deconstructor will delete all our dynamic vars so we don't have horriable memory leaks! +} \ No newline at end of file diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Examples/Example_8_Mouse/main_x.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Examples/Example_8_Mouse/main_x.cpp Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,29 @@ +#include +#include "IrrLib.h" +#include + +using namespace std; + +using namespace irr; +using namespace core; +using namespace scene; +using namespace video; +using namespace io; +using namespace gui; + +int main(){ + IrrLib Irrlicht(5, 640, 480, 16, false, true, false); + + std::string cap; + while (Irrlicht.DeviceIsRunning()) + if (Irrlicht.IsActiveWindow()) + { + cap = "Mouse X = " + Irrlicht.int_to_string(Irrlicht.IrrEvent.getMouseX()) + " Mouse Y = " + Irrlicht.int_to_string(Irrlicht.IrrEvent.getMouseY()); + Irrlicht.SetWindowCaption(Irrlicht.stdstring_to_stringw(cap)); + Irrlicht.BeginScene(); + Irrlicht.DrawAll(); + Irrlicht.EndScene(); + } + Irrlicht.EndIrrlicht(); + return 0; +} \ No newline at end of file diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Examples/Example_9_PictoDraw/main.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Examples/Example_9_PictoDraw/main.cpp Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,83 @@ +#include +#include "IrrLib.h" +#include + +using namespace std; + +using namespace irr; +using namespace core; +using namespace scene; +using namespace video; +using namespace io; +using namespace gui; + +int main(){ + IrrLib Irrlicht(5, 640, 480, 16, false, true, false); + + //Create a variable to determine if we should draw under the mouse or not + bool draw = false; + + //Screen caption + std::string cap; + + //Future use of screen resolution + dimension2d res; + + //Declare 2 mouse containters so we can find out if the user has moved the mouse + position2d mxy; + position2d lastmxy; + + //This function returns the size of the window Irrlicht is currently using + res = Irrlicht.GetScreenSize(); + + //Set the caption + cap = "Height in pixels: " + Irrlicht.int_to_string(res.Height) + " Width in pixels: " + Irrlicht.int_to_string(res.Width); + Irrlicht.SetWindowCaption(Irrlicht.stdstring_to_stringw(cap)); + while (Irrlicht.DeviceIsRunning()) + if (Irrlicht.IsActiveWindow()) + { + //I was in a Red color mood when I made this, you can chose from a varity of colors. + Irrlicht.BeginScene(Irrlicht.Color.RED); + + //If the user hits the left mouse button + if (Irrlicht.IrrEvent.mouseStates[0]) + { + //we need to set it to false so we don't detect it again + Irrlicht.IrrEvent.mouseStates[0] = false; + //The user clicked the mouse so we need to turn drawing on and record the mouse + //pos so we can find out later if they move the mouse + if (draw == false){ + lastmxy.Y = Irrlicht.IrrEvent.getMouseY(); + lastmxy.X = Irrlicht.IrrEvent.getMouseX(); + draw = true; + } + else + //turn it off + draw = false; + } + //if drawing is on + if (draw) + { + //Get current mouse pos + mxy.Y = Irrlicht.IrrEvent.getMouseY(); + mxy.X = Irrlicht.IrrEvent.getMouseX(); + + //If current mouse pos != last mouse pos then add the line to Irr2D's vector of lines + //So Irr2D will know how many lines to draw and where to draw them + //Also record this pos so we can compare it later + if (mxy != lastmxy){ + Irrlicht.Irr2DLib.AddLines(lastmxy, mxy, Irrlicht.Color.GREEN); + lastmxy = mxy; + } + } + + //This is new, this tells Irr2D to draw all lines that it has collected so far + Irrlicht.Irr2DLib.DrawLines(); + + //The usual stuff + Irrlicht.DrawAll(); + Irrlicht.EndScene(); + } + Irrlicht.EndIrrlicht(); + return 0; +} diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Examples/Example_9_PictoDraw/main_x.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Examples/Example_9_PictoDraw/main_x.cpp Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,54 @@ +#include +#include "IrrLib.h" +#include + +using namespace std; + +using namespace irr; +using namespace core; +using namespace scene; +using namespace video; +using namespace io; +using namespace gui; + +int main(){ + IrrLib Irrlicht(5, 640, 480, 16, false, true, false); + bool draw = false; + std::string cap; + dimension2d res; + position2d mxy; + position2d lastmxy; + res = Irrlicht.GetScreenSize(); + cap = "Height in pixels: " + Irrlicht.int_to_string(res.Height) + " Width in pixels: " + Irrlicht.int_to_string(res.Width); + Irrlicht.SetWindowCaption(Irrlicht.stdstring_to_stringw(cap)); + while (Irrlicht.DeviceIsRunning()) + if (Irrlicht.IsActiveWindow()) + { + Irrlicht.BeginScene(Irrlicht.Color.RED); + if (Irrlicht.IrrEvent.mouseStates[0]) + { + Irrlicht.IrrEvent.mouseStates[0] = false; + if (draw == false){ + lastmxy.Y = Irrlicht.IrrEvent.getMouseY(); + lastmxy.X = Irrlicht.IrrEvent.getMouseX(); + draw = true; + } + else + draw = false; + } + if (draw) + { + mxy.Y = Irrlicht.IrrEvent.getMouseY(); + mxy.X = Irrlicht.IrrEvent.getMouseX(); + if (mxy != lastmxy){ + Irrlicht.Irr2DLib.AddLines(lastmxy, mxy, Irrlicht.Color.GREEN); + lastmxy = mxy; + } + } + Irrlicht.Irr2DLib.DrawLines(); + Irrlicht.DrawAll(); + Irrlicht.EndScene(); + } + Irrlicht.EndIrrlicht(); + return 0; +} diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Old Versions/1.1/IrrLib.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Old Versions/1.1/IrrLib.cpp Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,197 @@ +/* + Irrlicht Library Wrapper + Created by Nathan Adams + Version 1.1 + Copyright (C) 2007 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ +#include +#include "IrrLib.h" +#include +#include +#include "IrrSphere.h" + +using namespace irr; +using namespace core; +using namespace scene; +using namespace video; +using namespace io; +using namespace gui; + +using namespace std; + +//TODO: Create own class for handling inputs! + + +/*IrrLib::IrrLib(MastEventReceiver & receiver){ + this->device = createDevice(EDT_SOFTWARE, dimension2d(640, 480), 16, false, false, false, &receiver); + if (this->device == 0) + exit(1); + IrrLib::Init(); +}*/ + +IrrLib::IrrLib(){ + this->device = createDevice(EDT_SOFTWARE, dimension2d(640, 480), 16, false, false, false, 0); + if (this->device == 0) + exit(1); + IrrLib::Init(); +} + +IrrLib::IrrLib(video::E_DRIVER_TYPE drivertype, core::dimension2d & res, u32 bits, bool fullscreen, bool stencilbuffer, bool vsync){ + //MyEventReceiver receiver; + this->device = createDevice(drivertype, res, bits, fullscreen, stencilbuffer, vsync, 0); + if (this->device == 0) + exit(1); + IrrLib::Init(); +} + +IrrLib::IrrLib(int nDrivertype, int width, int height, int bits, bool fullscreen, bool stencilbuffer, bool vsync){ + //MyEventReceiver receiver; + video::E_DRIVER_TYPE drivertype; + switch (nDrivertype){ + case 0: //TODO: finish this switch case + drivertype = EDT_NULL; + break; + case 1: + drivertype = EDT_SOFTWARE; + break; + case 2: + drivertype = EDT_BURNINGSVIDEO; + break; + case 3: + drivertype = EDT_OPENGL; + break; + case 4: + drivertype = EDT_DIRECT3D8; +//TODO: Find how to detect if DX is complied into Irrlicht +//TODO: Find how to detecht for linux + break; + case 5: + drivertype = EDT_DIRECT3D9; + break; + default: + drivertype = EDT_SOFTWARE; + break; + } + this->device = createDevice(drivertype, dimension2d(width, height), bits, fullscreen, stencilbuffer, vsync, 0); + if (this->device == 0) + exit(1); + IrrLib::Init(); +} + +IrrLib::~IrrLib (){ //Our moms wont clean up after us! + //Although I'm sure Irrlicht does this for us already, its always a good idea to check! + /*if (this->device != NULL) + delete this->device; + if (this->driver != NULL) + delete this->driver; + if (this->smgr != NULL) + delete this->smgr; + if (this->mesh != NULL) + delete this->mesh; + if (this->node != NULL) + delete this->node;*/ //it seems Irrlicht picks up after us... + //however we created newNodes, now we need to delete it! +} + +void IrrLib::Init(){ + //this->numNodes = 0; + //this->nodeNew = new ISceneNode[10]; + this->driver = this->device->getVideoDriver(); + this->smgr = this->device->getSceneManager(); + Sphere.SetSmgr(this->smgr); + Sphere.SetDriver(this->driver); +} + +void IrrLib::ReadArchive(std::string file){ + this->device->getFileSystem()->addZipFileArchive(file.c_str()); +} + +void IrrLib::LoadQ3Level(std::string q3level){ + this->mesh = this->smgr->getMesh(q3level.c_str()); + this->node = 0; + if (this->mesh) + this->node = this->smgr->addOctTreeSceneNode(this->mesh->getMesh(0), 0, -1, 128); +} + +void IrrLib::NodePos(int x, int y, int z){ + if (this->node) + this->node->setPosition(core::vector3df(x, y, z)); +} + +void IrrLib::NodePos(){ + if (this->node) + this->node->setPosition(core::vector3df(0, 0, 0)); +} + +void IrrLib::AddFPSCam(){ + this->cam = this->smgr->addCameraSceneNodeFPS(); +} + +void IrrLib::AddFPSCam(f32 x, f32 y, f32 z) +{ + this->cam = this->smgr->addCameraSceneNodeFPS(); + this->cam->setPosition(irr::core::vector3df(x, y, z)); +} + +void IrrLib::VisibleCursor(bool tf){ + if (tf == false) + this->device->getCursorControl()->setVisible(false); + else + this->device->getCursorControl()->setVisible(true); +} + +int IrrLib::GetFPSCount(){ + return this->driver->getFPS(); +} + +bool IrrLib::DeviceIsRunning(){ + return this->device->run(); +} + +bool IrrLib::IsActiveWindow(){ + return this->device->isWindowActive(); +} + +void IrrLib::BeginScene(){ + this->driver->beginScene(true, true, video::SColor(0,200,200,200)); +} + +void IrrLib::BeginScene(irr::video::SColor color){ + this->driver->beginScene(true, true, color); +} + +void IrrLib::BeginScene(bool usebackBuffer, bool usezBuffer, irr::video::SColor color){ + this->driver->beginScene(usebackBuffer, usezBuffer, color); +} + +void IrrLib::DrawAll(){ + this->smgr->drawAll(); + //this->device->getGUIEnvironment()->drawAll(); + } + +void IrrLib::EndScene(){ + this->driver->endScene(); +} + +void IrrLib::SetWindowCaption(stringw str){ + this->device->setWindowCaption(str.c_str()); +} + +irr::core::stringw IrrLib::GetDriverName(){ + return this->driver->getName(); +} + +void IrrLib::EndIrrlicht(){ + this->device->drop(); +} + +void IrrLib::KeyPress(char key){ + this->key = key; +} + +char IrrLib::KeyPressed(){ + return key; +} diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Old Versions/1.1/IrrLib.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Old Versions/1.1/IrrLib.h Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,86 @@ +/* + Irrlicht Library Wrapper + Created by Nathan Adams + Version 1.1 + Copyright (C) 2007 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ +#ifndef IRRLIB_H +#define IRRLIB_H + +/* We should include some basic functions */ +#include +/* include strings */ +#include + +/* We have to include Irrlichts libs */ +#include + +#include "IrrSphere.h" + +//Start class +class IrrLib { + + private: + /* Create an Irrlicht device as private because the class should handle + All irrlicht interaction */ + irr::IrrlichtDevice *device; + // Tells Irrlicht what driver to use + //video::E_DRIVER_TYPE driverType; + + /* + Get a pointer to the video driver and the SceneManager so that + we do not always have to write device->getVideoDriver() and + device->getSceneManager(). + */ + irr::video::IVideoDriver* driver; + irr::scene::ISceneManager* smgr; + + /* + Get a pointer to the 'mesh' aka the level. + Note: This is for Quake3 levels, ie bsp maps. + */ + irr::scene::IAnimatedMesh* mesh; + irr::scene::ISceneNode* node; + irr::scene::ISceneNode * tempNode; //use this to store nodeNew's data so we can resize it + irr::scene::ICameraSceneNode * cam; + char key; + + + void IrrLib::Init(); + public: + IrrSphere Sphere; //This has to be public to be able to access the Sphere class + IrrLib::IrrLib(); + //IrrLib::IrrLib(MastEventReceiver & receiver); + IrrLib::IrrLib(irr::video::E_DRIVER_TYPE drivertype, irr::core::dimension2d & res, irr::u32 bits, bool fullscreen, bool stencilbuffer, bool vsync); + IrrLib::IrrLib(int drivertype, int width, int height, int bits, bool fullscreen, bool stencilbuffer, bool vsync); + IrrLib::~IrrLib(); //Our moms wont clean up after us! + void IrrLib::ReadArchive(std::string file); + void IrrLib::LoadQ3Level(std::string q3level); + void IrrLib::NodePos(int x, int y, int z); //I think this moves the actual camera? + void IrrLib::NodePos(); + void IrrLib::AddFPSCam(); + void IrrLib::AddFPSCam(irr::f32 x, irr::f32 y, irr::f32 z); + void IrrLib::VisibleCursor(bool tf); + int IrrLib::GetFPSCount(); + bool IrrLib::DeviceIsRunning(); + bool IrrLib::IsActiveWindow(); + void IrrLib::BeginScene(); + void IrrLib::BeginScene(irr::video::SColor color); + void IrrLib::BeginScene(bool usebackBuffer, bool usezBuffer, irr::video::SColor color); + //TODO: Add one more for human readable colors and hex colors! + void IrrLib::DrawAll(); + void IrrLib::EndScene(); + void IrrLib::SetWindowCaption(irr::core::stringw str); + irr::core::stringw IrrLib::GetDriverName(); + //TODO: Make function to turn stringw to string and visa versa + void IrrLib::EndIrrlicht(); //Renamed from KillIrrlicht to EndIrrlicht + //TODO: Add logging + void IrrLib::KeyPress(char key); + char IrrLib::KeyPressed(); + +}; + +#endif diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Old Versions/1.1/IrrSphere.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Old Versions/1.1/IrrSphere.cpp Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,64 @@ +/* + Irrlicht Library Wrapper + Created by Nathan Adams + Version 1.1 + Copyright (C) 2007 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ +#include +#include "IrrLib.h" +#include "IrrSphere.h" +#include +#include + +using namespace irr; +using namespace core; +using namespace scene; +using namespace video; +using namespace io; +using namespace gui; + +using namespace std; + +void IrrSphere::SetSmgr(irr::scene::ISceneManager* smgr){ + this->smgr = smgr; +} + +void IrrSphere::SetDriver(irr::video::IVideoDriver* driver){ + this->driver = driver; +} + +int IrrSphere::CreateNewSphereNode(int x, int y, int z, std::string texture, bool light){ + //TODO: Resize after 10, and add 10 more to the mix! + this->nodeNew[this->numNodes] = this->smgr->addSphereSceneNode(); + this->nodeNew[this->numNodes]->setPosition(core::vector3df(x,y,z)); + this->nodeNew[this->numNodes]->setMaterialTexture(0, this->driver->getTexture(texture.c_str())); + this->nodeNew[this->numNodes]->setMaterialFlag(video::EMF_LIGHTING, light); + this->numNodes++; + return this->numNodes--; + /*this->node = this->smgr->addSphereSceneNode(); + this->node->setPosition(core::vector3df(x,y,z)); + this->node->setMaterialTexture(0, this->driver->getTexture(texture.c_str())); + this->node->setMaterialFlag(video::EMF_LIGHTING, light);*/ +} + +irr::core::vector3df IrrSphere::GetSphereVector(int sphere){ + return this->nodeNew[sphere]->getPosition(); +} + +void IrrSphere::SetSphereVector(int sphere, irr::core::vector3df v){ + this->nodeNew[sphere]->setPosition(v); +} + +IrrSphere::IrrSphere(){ + this->numNodes = 0; +} + +IrrSphere::~IrrSphere(){ + for(int i = 0; i < numNodes; ++i) + delete this->nodeNew[i]; + + delete this->nodeNew; +} diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Old Versions/1.1/IrrSphere.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Old Versions/1.1/IrrSphere.h Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,41 @@ +/* + Irrlicht Library Wrapper + Created by Nathan Adams + Version 1.1 + Copyright (C) 2007 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ + +#ifndef IRRSPHERE_H +#define IRRSPHERE_H +/* We should include some basic functions */ +#include +/* include strings */ +#include + +/* We have to include Irrlichts libs */ +#include + +#include "IrrLib.h" + + +class IrrSphere +{ + private: + irr::scene::ISceneNode* nodeNew[10]; + int numNodes; + irr::scene::ISceneManager* smgr; + irr::video::IVideoDriver* driver; + public: + void IrrSphere::SetDriver(irr::video::IVideoDriver* driver); + void IrrSphere::SetSmgr(irr::scene::ISceneManager* smgr); + int IrrSphere::CreateNewSphereNode(int x, int y, int z, std::string texture, bool light); //this is going to take my advanced C++ skillz! + irr::core::vector3df IrrSphere::GetSphereVector(int sphere); + void IrrSphere::SetSphereVector(int sphere, irr::core::vector3df v); + IrrSphere::IrrSphere(); + IrrSphere::~IrrSphere(); +}; + +#endif diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Old Versions/1.2/CHANGES --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Old Versions/1.2/CHANGES Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,5 @@ +Version 1.2 ++ Added a Irr3DLib class that will control all 3D objects ++ Also Added a Irr2D class that works on the same concept. ++ IrrSphere is now owned by Irr3DLib ++ Updated the examples using the latest code diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Old Versions/1.2/Irr2D.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Old Versions/1.2/Irr2D.cpp Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,56 @@ +/* + Irrlicht Library Wrapper + Created by Nathan Adams + Copyright (C) 2007 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ +#include +#include "IrrLib.h" +//#include "IrrSphere.h" //You probably aren't going to be using 3D objects in a 2D environment! +#include "Irr2D.h" +#include +#include + +using namespace irr; +using namespace core; +using namespace scene; +using namespace video; +using namespace io; +using namespace gui; + +using namespace std; + +Irr2D::Irr2D(){ + this->numTextures = 0; + //NA Should we set textures to new +} + +Irr2D::~Irr2D(){ + for(int i = 0; i < numTextures; ++i) + delete this->textures[i]; + + delete this->textures; +} + +void Irr2D::SetSmgr(irr::scene::ISceneManager* smgr){ + this->smgr = smgr; + Sprite.SetSmgr(smgr); +} + +void Irr2D::SetDriver(irr::video::IVideoDriver* driver){ + this->driver = driver; + Sprite.SetDriver(driver); +} + +void Irr2D::LoadTexturemap(std::string file){ + this->texturemap = driver->getTexture(file.c_str()); +} + +int Irr2D::LoadTexture(std::string file){ + this->textures[this->numTextures] = driver->getTexture(file.c_str()); + this->numTextures++; + return numTextures--; +} + diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Old Versions/1.2/Irr2D.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Old Versions/1.2/Irr2D.h Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,45 @@ +/* + Irrlicht Library Wrapper + Created by Nathan Adams + Copyright (C) 2007 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ + +#ifndef IRR2D_H +#define IRR2D_H +/* We should include some basic functions */ +#include +/* include strings */ +#include + +/* We have to include Irrlichts libs */ +#include + +#include "IrrLib.h" +#include "IrrSprite.h" + +class Irr2D { + private: + irr::scene::ISceneManager* smgr; + irr::video::IVideoDriver* driver; + irr::video::ITexture* texturemap; + int numTextures; + irr::video::ITexture* textures[10]; + public: + //Irr2D::Irr2D(); + IrrSprite Sprite; + Irr2D::Irr2D(); + Irr2D::~Irr2D(); + void Irr2D::SetDriver(irr::video::IVideoDriver* driver); + void Irr2D::SetSmgr(irr::scene::ISceneManager* smgr); + void Irr2D::LoadTexturemap(std::string file); + int Irr2D::LoadTexture(std::string file); + void Irr2D::DrawImage(int texture, const irr::core::position2d & destPos); + void Irr2D::DrawImage(const irr::core::position2d & destPos, const irr::core::rect & sourceRect, const irr::core::rect * clipRect, irr::video::SColor color, bool useAlphaChannelOfTexture); + void Irr2D::DrawLine(const irr::core::position2d & start, const irr::core::position2d & end, irr::video::SColor color); +}; + +#endif + diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Old Versions/1.2/Irr3D.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Old Versions/1.2/Irr3D.cpp Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,49 @@ +/* + Irrlicht Library Wrapper + Created by Nathan Adams + Copyright (C) 2007 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ +#include +#include + +//#include "IrrLib.h" +//Libraries we create go here +#include "IrrSphere.h" +//#include "IrrColor.h" +#include "Irr3D.h" +#include +//#include "Irr2D.h" + +using namespace irr; +using namespace core; +using namespace scene; +using namespace video; +using namespace io; +using namespace gui; + +using namespace std; + +void Irr3D::SetDriver(irr::video::IVideoDriver* driver) //so much for copying and pasting code from the header file +{ + this->driver = driver; + Sphere.SetDriver(driver); +} + +void Irr3D::SetSmgr(irr::scene::ISceneManager* smgr) +{ + this->smgr = smgr; + Sphere.SetSmgr(smgr); +} + +Irr3D::Irr3D() +{ + //do stuff here! +} + +Irr3D::~Irr3D() +{ + //delete stuff here! +} diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Old Versions/1.2/Irr3D.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Old Versions/1.2/Irr3D.h Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,41 @@ +/* + Irrlicht Library Wrapper + Created by Nathan Adams + Copyright (C) 2007 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ +#ifndef IRR3D_H +#define IRR3D_H + +/* We should include some basic functions */ +#include +/* include strings */ +#include + +/* We have to include Irrlichts libs */ +#include + +#include "IrrSphere.h" +//#include "IrrColor.h" +//#include "Irr3D.h" +//#include "Irr2D.h" This is a 3D class not 2D +/* However due to Irrlciht's nature mixing 2D with 3D is possible */ + +//Start class +class Irr3D { + + private: + + irr::video::IVideoDriver* driver; + irr::scene::ISceneManager* smgr; + public: + IrrSphere Sphere; + Irr3D::Irr3D(); + Irr3D::~Irr3D(); + void Irr3D::SetDriver(irr::video::IVideoDriver* driver); + void Irr3D::SetSmgr(irr::scene::ISceneManager* smgr); +}; + +#endif diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Old Versions/1.2/IrrColor.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Old Versions/1.2/IrrColor.cpp Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,66 @@ +/* + Irrlicht Library Wrapper + Created by Nathan Adams + Copyright (C) 2007 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ +#include +#include +#include + +//#include "IrrLib.h" +#include "IrrColor.h" + +using namespace irr; +using namespace core; +using namespace scene; +using namespace video; +using namespace io; +using namespace gui; + +using namespace std; + +void IrrColor::test(){ + //do nothing +} + +SColor IrrColor::returnColor(std::string color){ + int nColor = -1; + if (color == "red") + nColor = 1; + else if (color == "green") + nColor = 2; + else if (color == "blue") + nColor = 3; + else if (color == "dark green") + nColor = 4; + else if (color == "pink") + nColor = 5; + else if (color == "grey") + nColor = 6; + switch (nColor){ + case 1: + return SColor(255, 255, 0, 0); + break; + case 2: + return SColor(255, 0, 255, 0); + break; + case 3: + return SColor(255, 0, 0, 255); + break; + case 4: + return SColor(255, 0, 50, 0); + break; + case 5: + return SColor(255, 255, 10, 255); + break; + case 6: + return SColor(255,200,200,200); + break; + default: + return SColor(255,200,200,200); + break; + }// TODO: Make this function modular +} diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Old Versions/1.2/IrrColor.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Old Versions/1.2/IrrColor.h Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,26 @@ +/* + Irrlicht Library Wrapper + Created by Nathan Adams + Copyright (C) 2007 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ + +#ifndef IRRCOLOR_H +#define IRRCOLOR_H + +#include +#include +#include "irrlicht.h" +//#include "IrrLib.h" + +class IrrColor { + private: + //who knows? + public: + void IrrColor::test(); + irr::video::SColor IrrColor::returnColor(std::string color); +}; + +#endif diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Old Versions/1.2/IrrLib.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Old Versions/1.2/IrrLib.cpp Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,215 @@ +/* + Irrlicht Library Wrapper + Created by Nathan Adams + Copyright (C) 2007 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ +#include +#include +#include + +#include "IrrLib.h" +//Libraries we create go here +//#include "IrrSphere.h" +#include "IrrColor.h" +#include "Irr2D.h" + +using namespace irr; +using namespace core; +using namespace scene; +using namespace video; +using namespace io; +using namespace gui; + +using namespace std; + +//TODO: Create own class for handling inputs! + + +/*IrrLib::IrrLib(MastEventReceiver & receiver){ + this->device = createDevice(EDT_SOFTWARE, dimension2d(640, 480), 16, false, false, false, &receiver); + if (this->device == 0) + exit(1); + IrrLib::Init(); +}*/ + +IrrLib::IrrLib(){ + this->device = createDevice(EDT_SOFTWARE, dimension2d(640, 480), 16, false, false, false, 0); + if (this->device == 0) + exit(1); + IrrLib::Init(); +} + +IrrLib::IrrLib(video::E_DRIVER_TYPE drivertype, core::dimension2d & res, u32 bits, bool fullscreen, bool stencilbuffer, bool vsync){ + //MyEventReceiver receiver; + this->device = createDevice(drivertype, res, bits, fullscreen, stencilbuffer, vsync, 0); + if (this->device == 0) + exit(1); + IrrLib::Init(); +} + +IrrLib::IrrLib(int nDrivertype, int width, int height, int bits, bool fullscreen, bool stencilbuffer, bool vsync){ + //MyEventReceiver receiver; + video::E_DRIVER_TYPE drivertype; + switch (nDrivertype){ + case 0: //TODO: finish this switch case + drivertype = EDT_NULL; + break; + case 1: + drivertype = EDT_SOFTWARE; + break; + case 2: + drivertype = EDT_BURNINGSVIDEO; + break; + case 3: + drivertype = EDT_OPENGL; + break; + case 4: + drivertype = EDT_DIRECT3D8; + //*Note: It seems as Microsoft has stoped supporting DX 8.1, so you can not compile it into Irrlicht engine anymore + //TODO: Find how to detect if DX is complied into Irrlicht + //TODO: Find how to detecht for linux + break; + case 5: + drivertype = EDT_DIRECT3D9; + break; + default: + drivertype = EDT_SOFTWARE; + break; + } + this->device = createDevice(drivertype, dimension2d(width, height), bits, fullscreen, stencilbuffer, vsync, 0); + if (this->device == 0) + exit(1); + IrrLib::Init(); +} + +IrrLib::~IrrLib (){ //Our moms wont clean up after us! + //Although I'm sure Irrlicht does this for us already, its always a good idea to check! + /*if (this->device != NULL) + delete this->device; + if (this->driver != NULL) + delete this->driver; + if (this->smgr != NULL) + delete this->smgr; + if (this->mesh != NULL) + delete this->mesh; + if (this->node != NULL) + delete this->node;*/ //it seems Irrlicht picks up after us... + //however we created newNodes, now we need to delete it! +} + +void IrrLib::Init(){ + //this->numNodes = 0; + //this->nodeNew = new ISceneNode[10]; + this->driver = this->device->getVideoDriver(); + this->smgr = this->device->getSceneManager(); + Irr3DLib.SetSmgr(this->smgr); + Irr3DLib.SetDriver(this->driver); + Irr2DLib.SetSmgr(this->smgr); + Irr2DLib.SetDriver(this->driver); +} + +void IrrLib::ReadArchive(std::string file){ + this->device->getFileSystem()->addZipFileArchive(file.c_str()); +} + +void IrrLib::LoadQ3Level(std::string q3level){ + this->mesh = this->smgr->getMesh(q3level.c_str()); + this->node = 0; + if (this->mesh) + this->node = this->smgr->addOctTreeSceneNode(this->mesh->getMesh(0), 0, -1, 128); +} + +void IrrLib::MapPos(int x, int y, int z){ + if (this->node) + this->node->setPosition(core::vector3df(x, y, z)); +} + +void IrrLib::MapPos(){ + if (this->node) + this->node->setPosition(core::vector3df(0, 0, 0)); +} + +void IrrLib::AddFPSCam(){ + this->cam = this->smgr->addCameraSceneNodeFPS(); +} + +void IrrLib::AddFPSCam(f32 x, f32 y, f32 z) +{ + this->cam = this->smgr->addCameraSceneNodeFPS(); + this->cam->setPosition(irr::core::vector3df(x, y, z)); +} + +void IrrLib::VisibleCursor(bool tf){ + if (tf == false) + this->device->getCursorControl()->setVisible(false); + else + this->device->getCursorControl()->setVisible(true); +} + +int IrrLib::GetFPSCount(){ + return this->driver->getFPS(); +} + +bool IrrLib::DeviceIsRunning(){ + return this->device->run(); +} + +bool IrrLib::IsActiveWindow(){ + return this->device->isWindowActive(); +} + +void IrrLib::BeginScene(){ + this->driver->beginScene(true, true, video::SColor(0,200,200,200)); +} + +void IrrLib::BeginScene(irr::video::SColor color){ + this->driver->beginScene(true, true, color); +} + +void IrrLib::BeginScene(bool usebackBuffer, bool usezBuffer, irr::video::SColor color){ + this->driver->beginScene(usebackBuffer, usezBuffer, color); +} + +void IrrLib::DrawAll(){ + this->smgr->drawAll(); + //this->device->getGUIEnvironment()->drawAll(); + } + +void IrrLib::EndScene(){ + this->driver->endScene(); +} + +void IrrLib::SetWindowCaption(stringw str){ + this->device->setWindowCaption(str.c_str()); +} + +irr::core::stringw IrrLib::GetDriverName(){ + return this->driver->getName(); +} + +void IrrLib::EndIrrlicht(){ + this->device->drop(); +} + +void IrrLib::KeyPress(char key){ + this->key = key; +} + +char IrrLib::KeyPressed(){ + return key; +} + +irr::f32 IrrLib::getX(){ + return this->smgr->getActiveCamera()->getPosition().X; +} + +irr::f32 IrrLib::getY(){ + return this->smgr->getActiveCamera()->getPosition().Y; +} + +irr::f32 IrrLib::getZ(){ + return this->smgr->getActiveCamera()->getPosition().Z; +} diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Old Versions/1.2/IrrLib.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Old Versions/1.2/IrrLib.h Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,97 @@ +/* + Irrlicht Library Wrapper + Created by Nathan Adams + Copyright (C) 2007 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ +#ifndef IRRLIB_H +#define IRRLIB_H + +/* We should include some basic functions */ +#include +/* include strings */ +#include + +/* We have to include Irrlichts libs */ +#include + +#include "Irr3D.h" +#include "IrrColor.h" +#include "Irr2D.h" + +//Start class +class IrrLib { + + private: + /* Create an Irrlicht device as private because the class should handle + All irrlicht interaction */ + irr::IrrlichtDevice *device; + // Tells Irrlicht what driver to use + //video::E_DRIVER_TYPE driverType; + + /* + Get a pointer to the video driver and the SceneManager so that + we do not always have to write device->getVideoDriver() and + device->getSceneManager(). + */ + irr::video::IVideoDriver* driver; + irr::scene::ISceneManager* smgr; + + /* + Get a pointer to the 'mesh' aka the level. + Note: This is for Quake3 levels, ie bsp maps. + */ + irr::scene::IAnimatedMesh* mesh; + irr::scene::ISceneNode* node; + irr::scene::ISceneNode * tempNode; //use this to store nodeNew's data so we can resize it + irr::scene::ICameraSceneNode * cam; + char key; + + + void IrrLib::Init(); + /*friend class IrrColor; + friend class Irr2DLib; + friend class Sphere;*/ + public: + //IrrSphere Sphere; //This has to be public to be able to access the Sphere class + /* IrrSphere is now in Irr3D class */ + //Prehaps put this into a IrrLib3D class? + Irr3D Irr3DLib; + IrrColor Color; //Color class...not much of a class but lets keep it OO + Irr2D Irr2DLib; //1/2 variable to be labeled like this due to variables not able to begin with a number + IrrLib::IrrLib(); + //IrrLib::IrrLib(MastEventReceiver & receiver); + IrrLib::IrrLib(irr::video::E_DRIVER_TYPE drivertype, irr::core::dimension2d & res, irr::u32 bits, bool fullscreen, bool stencilbuffer, bool vsync); + IrrLib::IrrLib(int drivertype, int width, int height, int bits, bool fullscreen, bool stencilbuffer, bool vsync); + IrrLib::~IrrLib(); //Our moms wont clean up after us! + void IrrLib::ReadArchive(std::string file); + void IrrLib::LoadQ3Level(std::string q3level); + void IrrLib::MapPos(int x, int y, int z); //I think this moves the actual camera? + void IrrLib::MapPos(); + void IrrLib::AddFPSCam(); + void IrrLib::AddFPSCam(irr::f32 x, irr::f32 y, irr::f32 z); + void IrrLib::VisibleCursor(bool tf); + int IrrLib::GetFPSCount(); + bool IrrLib::DeviceIsRunning(); + bool IrrLib::IsActiveWindow(); + void IrrLib::BeginScene(); + void IrrLib::BeginScene(irr::video::SColor color); + void IrrLib::BeginScene(bool usebackBuffer, bool usezBuffer, irr::video::SColor color); + //TODO: Add one more for human readable colors and hex colors! + void IrrLib::DrawAll(); + void IrrLib::EndScene(); + void IrrLib::SetWindowCaption(irr::core::stringw str); + irr::core::stringw IrrLib::GetDriverName(); + //TODO: Make function to turn stringw to string and visa versa + void IrrLib::EndIrrlicht(); //Renamed from KillIrrlicht to EndIrrlicht + //TODO: Add logging + void IrrLib::KeyPress(char key); + char IrrLib::KeyPressed(); + irr::f32 getX(); + irr::f32 getY(); + irr::f32 getZ(); +}; + +#endif diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Old Versions/1.2/IrrLibBase.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Old Versions/1.2/IrrLibBase.cpp Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,31 @@ +/* + Irrlicht Library Wrapper + Created by Nathan Adams + Copyright (C) 2007 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ + +#include +#include "IrrLibBase.h" + +using namespace irr; +using namespace core; +using namespace scene; +using namespace video; +using namespace io; +using namespace gui; + +using namespace std; + +void IrrLibBase::SetDriver(IVideoDriver* driver) //can be overloaded +{ + this->driver = driver; +} + +void IrrLibBase::SetSmgr(ISceneManager* smgr) +{ + this->smgr = smgr; +} + diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Old Versions/1.2/IrrLibBase.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Old Versions/1.2/IrrLibBase.h Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,32 @@ +/* + Irrlicht Library Wrapper + Created by Nathan Adams + Copyright (C) 2007 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ + +#ifndef IRRLIBBASE_H +#define IRRLIBBASE_H + +/* We should include some basic functions */ +#include +/* include strings */ +#include + +/* We have to include Irrlichts libs */ +#include + +class IrrLibBase { + + protected: + irr::video::IVideoDriver* driver; + irr::scene::ISceneManager* smgr; + public: + void IrrLibBase::SetDriver(irr::video::IVideoDriver* driver); + void IrrLibBase::SetSmgr(irr::scene::ISceneManager* smgr); + +}; + +#endif \ No newline at end of file diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Old Versions/1.2/IrrLibGUI.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Old Versions/1.2/IrrLibGUI.cpp Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,82 @@ +/* + Irrlicht Library Wrapper + Created by Nathan Adams + Copyright (C) 2007 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ +#include +#include +#include + +using namespace irr; +using namespace core; +using namespace scene; +using namespace video; +using namespace io; +using namespace gui; + +using namespace std; + +IrrLibGUI::IrrLibGUI() +{ + //NA does it need to do anything at init? + this->nStaticText = 0; + this->env = device->getGUIEnvironment(); //NA yes we do! +} + +IrrLibGUI::~IrrLibGUI() +{ + //NA Do we have to delete anything? +} + +IrrLibGUI::Clear() +{ + this->env->clear(); +} + +IrrLibGUI::DrawAll() +{ + this->env->drawAll(); +} + +IrrLibGUI::AddStaticText() +{ + this->env->addStaticText(L"Powered by IrrLib.", rect(0,0,0,0), true); +} + +IrrLibGUI::AddStaticText(std::string message) +{ + this->env->addStaticText(message.c_str(), rect(0,0,0,0), true); +} + +IrrLibGUI::AddStaticText(std::string message, int x1, int y1, int x2, int y2) +{ + this->env->addStaticText(message.c_str(), rect(x1,y1,x2,y2), true); +} + +IrrLibGUI::AddStaticText(std::string message, int x1, int y1, int x2, int y2, bool border, bool wordwrap) +{ + this->env->addStaticText(message.c_str(), rect(x1,y1,x2,y2), border, wordwrap); +} + +IrrLibGUI::AddStaticText(std::string message, int x1, int y1, int x2, int y2, bool border, bool wordwrap, int id, bool fillbackground) +{ + this->env->addStaticText(message.c_str(), rect(x1,y1,x2,y2), border, wordwrap, 0, id, fillbackground); +} + +IrrLibGUI::AddStaticText(std::string message, const core::rect< s32 > &rectangle) +{ + this->env->addStaticText(message.c_str(), rectangle); +} + +IrrLibGUI::AddStaticText(std::string message, const core::rect< s32 > &rectangle, bool border, bool wordwrap) +{ + this->env->addStaticText(message.c_str(), rectangle, border, wordwrap); +} + +IrrLibGUI::AddStaticText(std::string message, const core::rect< s32 > &rectangle, bool border, bool wordwrap, int id, bool fillbackground) +{ + this->env->addStaticText(message.c_str(), rectangle, border, wordwrap, 0, id, background); +} \ No newline at end of file diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Old Versions/1.2/IrrLibGUI.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Old Versions/1.2/IrrLibGUI.h Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,44 @@ +/* + Irrlicht Library Wrapper + Created by Nathan Adams + Copyright (C) 2007 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ + +#ifndef IRRLIBGUI_H +#define IRRLIBGUI_H + +#include +#include +#include +#include "IrrLibBase.h" + +class IrrLibGUI: public IrrLibBase { + private: + irr::gui::IGUISkin* skin; + irr::gui::IGUIFont* font; + irr::gui::IGUIEnvironment* env = device->getGUIEnvironment(); + //TODO: Create an array storing all messages + int nStaticText; + irr::gui::IGUIStaticText* arrStaticText[10]; + + public: + IrrLibGUI::IrrLibGUI(); + IrrLibGUI::~IrrLibGUI(); + IrrLibGUI::Clear(); + IrrLibGUI::DrawAll(); + IrrLibGUI::AddStaticText(); //NA eh a default text adder why not? + IrrLibGUI::AddStaticText(std::string message); + IrrLibGUI::AddStaticText(std::string message, int x1, int y1, int x2, int y2); + IrrLibGUI::AddStaticText(std::string message, int x1, int y1, int x2, int y2, bool border, bool wordwrap); + IrrLibGUI::AddStaticText(std::string message, int x1, int y1, int x2, int y2, bool border, bool wordwrap, int id, bool fillbackground); + IrrLibGUI::AddStaticText(std::string message, const irr::core::rect< s32 > &rectangle); + IrrLibGUI::AddStaticText(std::string message, const irr::core::rect< s32 > &rectangle, bool border, bool wordwrap); + IrrLibGUI::AddStaticText(std::string message, const irr::core::rect< s32 > &rectangle, bool border, bool wordwrap, int id, bool fillbackground); + + + + +#endif \ No newline at end of file diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Old Versions/1.2/IrrSphere.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Old Versions/1.2/IrrSphere.cpp Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,63 @@ +/* + Irrlicht Library Wrapper + Created by Nathan Adams + Copyright (C) 2007 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ +#include +#include "IrrLib.h" +#include "IrrSphere.h" +#include +#include + +using namespace irr; +using namespace core; +using namespace scene; +using namespace video; +using namespace io; +using namespace gui; + +using namespace std; + +void IrrSphere::SetSmgr(irr::scene::ISceneManager* smgr){ + this->smgr = smgr; +} + +void IrrSphere::SetDriver(irr::video::IVideoDriver* driver){ + this->driver = driver; +} + +int IrrSphere::CreateNewSphereNode(int x, int y, int z, std::string texture, bool light){ + //TODO: Resize after 10, and add 10 more to the mix! + this->nodeNew[this->numNodes] = this->smgr->addSphereSceneNode(); + this->nodeNew[this->numNodes]->setPosition(core::vector3df(x,y,z)); + this->nodeNew[this->numNodes]->setMaterialTexture(0, this->driver->getTexture(texture.c_str())); + this->nodeNew[this->numNodes]->setMaterialFlag(video::EMF_LIGHTING, light); + this->numNodes++; + return this->numNodes--; + /*this->node = this->smgr->addSphereSceneNode(); + this->node->setPosition(core::vector3df(x,y,z)); + this->node->setMaterialTexture(0, this->driver->getTexture(texture.c_str())); + this->node->setMaterialFlag(video::EMF_LIGHTING, light);*/ +} + +irr::core::vector3df IrrSphere::GetSphereVector(int sphere){ + return this->nodeNew[sphere]->getPosition(); +} + +void IrrSphere::SetSphereVector(int sphere, irr::core::vector3df v){ + this->nodeNew[sphere]->setPosition(v); +} + +IrrSphere::IrrSphere(){ + this->numNodes = 0; +} + +IrrSphere::~IrrSphere(){ + for(int i = 0; i < numNodes; ++i) + delete this->nodeNew[i]; + + delete this->nodeNew; +} diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Old Versions/1.2/IrrSphere.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Old Versions/1.2/IrrSphere.h Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,41 @@ +/* + Irrlicht Library Wrapper + Created by Nathan Adams + Copyright (C) 2007 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ + +#ifndef IRRSPHERE_H +#define IRRSPHERE_H +/* We should include some basic functions */ +#include +/* include strings */ +#include + +/* We have to include Irrlichts libs */ +#include + +//#include "IrrLib.h" + + +class IrrSphere +{ + private: + irr::scene::ISceneNode* nodeNew[10]; + int numNodes; + irr::scene::ISceneManager* smgr; + irr::video::IVideoDriver* driver; + public: + void IrrSphere::SetDriver(irr::video::IVideoDriver* driver); + void IrrSphere::SetSmgr(irr::scene::ISceneManager* smgr); + int IrrSphere::CreateNewSphereNode(int x, int y, int z, std::string texture, bool light); //this is going to take my advanced C++ skillz! + irr::core::vector3df IrrSphere::GetSphereVector(int sphere); + void IrrSphere::SetSphereVector(int sphere, irr::core::vector3df v); + IrrSphere::IrrSphere(); + //IrrSphere::IrrSphere(IrrLib*); + IrrSphere::~IrrSphere(); +}; + +#endif diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Old Versions/1.2/IrrSprite.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Old Versions/1.2/IrrSprite.cpp Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,46 @@ +/* + Irrlicht Library Wrapper + Created by Nathan Adams + Copyright (C) 2007 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ +#include +#include +#include + +#include "IrrLib.h" +//Libraries we create go here +#include "IrrSphere.h" +#include "IrrColor.h" +#include "Irr2D.h" + +using namespace irr; +using namespace core; +using namespace scene; +using namespace video; +using namespace io; +using namespace gui; + +using namespace std; + + IrrSprite::IrrSprite() + { + //do stuff + } + + IrrSprite::~IrrSprite() + { + //delete stuff + } + + void IrrSprite::SetDriver(irr::video::IVideoDriver* driver) + { + this->driver = driver; + } + void IrrSprite::SetSmgr(irr::scene::ISceneManager* smgr) + { + this->smgr = smgr; + } + \ No newline at end of file diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Old Versions/1.2/IrrSprite.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Old Versions/1.2/IrrSprite.h Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,42 @@ +/* + Irrlicht Library Wrapper + Created by Nathan Adams + Copyright (C) 2007 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ +#ifndef IRRSPRITE_H +#define IRRSPRITE_H + +/* We should include some basic functions */ +#include +/* include strings */ +#include + +/* We have to include Irrlichts libs */ +#include + +#include "IrrSphere.h" +#include "IrrColor.h" +#include "Irr2D.h" +#include "IrrSprite.h" + +//Start class +class IrrSprite { + + private: + + irr::video::IVideoDriver* driver; + irr::scene::ISceneManager* smgr; + public: + IrrSprite::IrrSprite(); + IrrSprite::~IrrSprite(); + void IrrSprite::SetDriver(irr::video::IVideoDriver* driver); + void IrrSprite::SetSmgr(irr::scene::ISceneManager* smgr); + +// I forgot a semicolon here....and it wasn't compling +//Thats 1 bad thing about OOP if there is an error you don't know where the @#$@# the problem is! +}; + +#endif diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Old Versions/1.2/README --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Old Versions/1.2/README Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,13 @@ + Irrlicht Library Wrapper + Created by Nathan Adams + Version 1.2 + Copyright (C) 2007 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. + + Please leave all files intact if you redistrubte this software. + +How to use: + Add all the files to your Irrlicht project, you could compile it into a DLL if you wanted too, but for now just add all the files to your project. + Then inside your complier add the directory that you have the IrrLib files and use #include "IrrLib.h" to refrence it, and you are good to go! \ No newline at end of file diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Old Versions/1/IrrLib.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Old Versions/1/IrrLib.cpp Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,221 @@ +/* + Irrlicht Library Wrapper + Created by Nathan Adams + Version 1 + Copyright (C) 2007 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ +#include +#include "IrrLib.h" +#include +#include + +using namespace irr; +using namespace core; +using namespace scene; +using namespace video; +using namespace io; +using namespace gui; + +using namespace std; + +//TODO: Create own class for handling inputs! + + +/*IrrLib::IrrLib(MastEventReceiver & receiver){ + this->device = createDevice(EDT_SOFTWARE, dimension2d(640, 480), 16, false, false, false, &receiver); + if (this->device == 0) + exit(1); + IrrLib::Init(); +}*/ + +IrrLib::IrrLib(){ + this->device = createDevice(EDT_SOFTWARE, dimension2d(640, 480), 16, false, false, false, 0); + if (this->device == 0) + exit(1); + IrrLib::Init(); +} + +IrrLib::IrrLib(video::E_DRIVER_TYPE drivertype, core::dimension2d & res, u32 bits, bool fullscreen, bool stencilbuffer, bool vsync){ + //MyEventReceiver receiver; + this->device = createDevice(drivertype, res, bits, fullscreen, stencilbuffer, vsync, 0); + if (this->device == 0) + exit(1); + IrrLib::Init(); +} + +IrrLib::IrrLib(int nDrivertype, int width, int height, int bits, bool fullscreen, bool stencilbuffer, bool vsync){ + //MyEventReceiver receiver; + video::E_DRIVER_TYPE drivertype; + switch (nDrivertype){ + case 0: //TODO: finish this switch case + drivertype = EDT_NULL; + break; + case 1: + drivertype = EDT_SOFTWARE; + break; + case 2: + drivertype = EDT_BURNINGSVIDEO; + break; + case 3: + drivertype = EDT_OPENGL; + break; + case 4: + drivertype = EDT_DIRECT3D8; +//TODO: Find how to detect if DX is complied into Irrlicht +//TODO: Find how to detecht for linux + break; + case 5: + drivertype = EDT_DIRECT3D9; + break; + default: + drivertype = EDT_SOFTWARE; + break; + } + this->device = createDevice(drivertype, dimension2d(width, height), bits, fullscreen, stencilbuffer, vsync, 0); + if (this->device == 0) + exit(1); + IrrLib::Init(); +} + +IrrLib::~IrrLib (){ //Our moms wont clean up after us! + //Although I'm sure Irrlicht does this for us already, its always a good idea to check! + /*if (this->device != NULL) + delete this->device; + if (this->driver != NULL) + delete this->driver; + if (this->smgr != NULL) + delete this->smgr; + if (this->mesh != NULL) + delete this->mesh; + if (this->node != NULL) + delete this->node;*/ //it seems Irrlicht picks up after us... + //however we created newNodes, now we need to delete it! + for(int i = 0; i < numNodes; ++i) + delete this->nodeNew[i]; + + delete this->nodeNew; +} + +void IrrLib::Init(){ + this->numNodes = 0; + //this->nodeNew = new ISceneNode[10]; + this->driver = this->device->getVideoDriver(); + this->smgr = this->device->getSceneManager(); +} + +void IrrLib::ReadArchive(std::string file){ + this->device->getFileSystem()->addZipFileArchive(file.c_str()); +} + +void IrrLib::LoadQ3Level(std::string q3level){ + this->mesh = this->smgr->getMesh(q3level.c_str()); + this->node = 0; + if (this->mesh) + this->node = this->smgr->addOctTreeSceneNode(this->mesh->getMesh(0), 0, -1, 128); +} + +void IrrLib::NodePos(int x, int y, int z){ + if (this->node) + this->node->setPosition(core::vector3df(x, y, z)); +} + +void IrrLib::NodePos(){ + if (this->node) + this->node->setPosition(core::vector3df(0, 0, 0)); +} + +void IrrLib::AddFPSCam(){ + this->cam = this->smgr->addCameraSceneNodeFPS(); +} + +void IrrLib::AddFPSCam(f32 x, f32 y, f32 z) +{ + this->cam = this->smgr->addCameraSceneNodeFPS(); + this->cam->setPosition(irr::core::vector3df(x, y, z)); +} + +void IrrLib::VisibleCursor(bool tf){ + if (tf == false) + this->device->getCursorControl()->setVisible(false); + else + this->device->getCursorControl()->setVisible(true); +} + +int IrrLib::GetFPSCount(){ + return this->driver->getFPS(); +} + +bool IrrLib::DeviceIsRunning(){ + return this->device->run(); +} + +bool IrrLib::IsActiveWindow(){ + return this->device->isWindowActive(); +} + +void IrrLib::BeginScene(){ + this->driver->beginScene(true, true, video::SColor(0,200,200,200)); +} + +void IrrLib::BeginScene(irr::video::SColor color){ + this->driver->beginScene(true, true, color); +} + +void IrrLib::BeginScene(bool usebackBuffer, bool usezBuffer, irr::video::SColor color){ + this->driver->beginScene(usebackBuffer, usezBuffer, color); +} + +void IrrLib::DrawAll(){ + this->smgr->drawAll(); + //this->device->getGUIEnvironment()->drawAll(); + } + +void IrrLib::EndScene(){ + this->driver->endScene(); +} + +void IrrLib::SetWindowCaption(stringw str){ + this->device->setWindowCaption(str.c_str()); +} + +irr::core::stringw IrrLib::GetDriverName(){ + return this->driver->getName(); +} + +void IrrLib::EndIrrlicht(){ + this->device->drop(); +} + +void IrrLib::KeyPress(char key){ + this->key = key; +} + +char IrrLib::KeyPressed(){ + return key; +} + +int IrrLib::CreateNewSphereNode(int x, int y, int z, std::string texture, bool light){ + this->nodeNew[this->numNodes] = this->smgr->addSphereSceneNode(); + this->nodeNew[this->numNodes]->setPosition(core::vector3df(x,y,z)); + this->nodeNew[this->numNodes]->setMaterialTexture(0, this->driver->getTexture(texture.c_str())); + this->nodeNew[this->numNodes]->setMaterialFlag(video::EMF_LIGHTING, light); + this->numNodes++; + return this->numNodes--; + /*this->node = this->smgr->addSphereSceneNode(); + this->node->setPosition(core::vector3df(x,y,z)); + this->node->setMaterialTexture(0, this->driver->getTexture(texture.c_str())); + this->node->setMaterialFlag(video::EMF_LIGHTING, light);*/ + return 0; +} + +irr::core::vector3df IrrLib::GetSphereVector(int sphere){ + return this->nodeNew[sphere]->getPosition(); +} + +void IrrLib::SetSphereVector(int sphere, irr::core::vector3df v){ + this->nodeNew[sphere]->setPosition(v); +} + diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Old Versions/1/IrrLib.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Old Versions/1/IrrLib.h Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,89 @@ +/* + Irrlicht Library Wrapper + Created by Nathan Adams + Version 1 + Copyright (C) 2007 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ +#ifndef IRRLIB_H +#define IRRLIB_H + +/* We should include some basic functions */ +#include +/* include strings */ +#include + +/* We have to include Irrlichts libs */ +#include + +//Start class +class IrrLib { + + private: + /* Create an Irrlicht device as private because the class should handle + All irrlicht interaction */ + irr::IrrlichtDevice *device; + // Tells Irrlicht what driver to use + //video::E_DRIVER_TYPE driverType; + + /* + Get a pointer to the video driver and the SceneManager so that + we do not always have to write device->getVideoDriver() and + device->getSceneManager(). + */ + irr::video::IVideoDriver* driver; + irr::scene::ISceneManager* smgr; + + /* + Get a pointer to the 'mesh' aka the level. + Note: This is for Quake3 levels, ie bsp maps. + */ + irr::scene::IAnimatedMesh* mesh; + irr::scene::ISceneNode* node; + irr::scene::ISceneNode* nodeNew[10]; + irr::scene::ISceneNode * tempNode; //use this to store nodeNew's data so we can resize it + int numNodes; + irr::scene::ICameraSceneNode * cam; + char key; + + + void IrrLib::Init(); + public: + IrrLib::IrrLib(); + //IrrLib::IrrLib(MastEventReceiver & receiver); + IrrLib::IrrLib(irr::video::E_DRIVER_TYPE drivertype, irr::core::dimension2d & res, irr::u32 bits, bool fullscreen, bool stencilbuffer, bool vsync); + IrrLib::IrrLib(int drivertype, int width, int height, int bits, bool fullscreen, bool stencilbuffer, bool vsync); + IrrLib::~IrrLib(); //Our moms wont clean up after us! + void IrrLib::ReadArchive(std::string file); + void IrrLib::LoadQ3Level(std::string q3level); + void IrrLib::NodePos(int x, int y, int z); //I think this moves the actual camera? + void IrrLib::NodePos(); + void IrrLib::AddFPSCam(); + void IrrLib::AddFPSCam(irr::f32 x, irr::f32 y, irr::f32 z); + void IrrLib::VisibleCursor(bool tf); + int IrrLib::GetFPSCount(); + bool IrrLib::DeviceIsRunning(); + bool IrrLib::IsActiveWindow(); + void IrrLib::BeginScene(); + void IrrLib::BeginScene(irr::video::SColor color); + void IrrLib::BeginScene(bool usebackBuffer, bool usezBuffer, irr::video::SColor color); + //TODO: Add one more for human readable colors and hex colors! + void IrrLib::DrawAll(); + void IrrLib::EndScene(); + void IrrLib::SetWindowCaption(irr::core::stringw str); + irr::core::stringw IrrLib::GetDriverName(); + //TODO: Make function to turn stringw to string and visa versa + void IrrLib::EndIrrlicht(); //Renamed from KillIrrlicht to EndIrrlicht + //TODO: Add logging + void IrrLib::KeyPress(char key); + char IrrLib::KeyPressed(); + int IrrLib::CreateNewSphereNode(int x, int y, int z, std::string texture, bool light); //this is going to take my advanced C++ skillz! + irr::core::vector3df IrrLib::GetSphereVector(int sphere); + void IrrLib::SetSphereVector(int sphere, irr::core::vector3df v); + +}; + + +#endif diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Old Versions/1/irrlibdocs.txt --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Old Versions/1/irrlibdocs.txt Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,390 @@ +IrrLib Documentation:f +------------------------ +//Important Note from the start: C++ is case senstitive, ReadArchive is not the same as readarchive +Private: + irr::IrrlichtDevice *device; +This is the main device for 'talking' to Irrlicht. This is very important and only the class should interact with it. + + irr::video::IVideoDriver* driver; + irr::scene::ISceneManager* smgr; +The driver handles textures and the smgr handles putting models in the scene. + + irr::scene::IAnimatedMesh* mesh; + irr::scene::ISceneNode* node; +A mesh object stores a mesh, aka a q3 level. A node, from what I understand contains where the camera should be placed. + +Public: //These functions are the ones you call! + IrrLib::IrrLib(); + IrrLib::IrrLib(irr::video::E_DRIVER_TYPE drivertype, irr::core::dimension2d & res, irr::u32 bits, bool fullscreen, bool stencilbuffer, bool vsync, irr::IEventReceiver * receiver); + IrrLib::IrrLib(int drivertype, int width, int height, int bits, bool fullscreen, bool stencilbuffer, bool vsync, irr::IEventReceiver * receiver); +All 3 of those are class constructor. They construct both the class AND Irrlicht. +The first one loads it with defualt values, using software driver. +The second is more for the hard core Irrlicht users, you pass the normal Irrlicht values. +The third is for new users, you don't need a PhD in order to use it. + +Code Example: + +int main(){ + IrrLib Irrlicht; //you are free to name the class variable whatever you want + //This use the defualt constructor, creates an Irrlicht device with defualt values. +} + +int main(){ + IrrLib Irrlicht(EDT_OPENGL, core::dimension2d(640, 480), 16, false, false, false, 0); + //This uses the second constructor +} + +int main(){ + IrrLib Irrlicht(3, 640, 480, 16, false, false, false, 0) + //This uses the third constructor using the opengl driver. +} + +Table for drivertype: +0 - EDT_NULL; +1 - EDT_SOFTWARE; +2 - EDT_BURNINGSVIDEO; +3 - EDT_OPENGL; +4 - EDT_DIRECT3D8; +5 - EDT_DIRECT3D9; +default - EDT_SOFTWARE; +//Be careful with 4 and 5 when using someone else's complied Irrlicht, it could crash your program or cause a memory leak if DirectX is not complied into the library! + + IrrLib::~IrrLib(); +The deconstructor, clean up after ourselves because our moms wont! Need to clear up some dynamic variables that was created so we don't have memory leaks. + +/* +Simple so far eh? +Don't worry it gets harder ;) + */ + + void IrrLib::ReadArchive(std::string file) +This loads an archive into Irrlicht. + +Code Example: + +int main(){ + IrrLib Irrlicht; + Irrlicht.ReadArchive("c:\program files\my game\myzip.zip"); +} + + void IrrLib::LoadQ3Level(std::string q3level); +This loads a q3 level onto the scene. + +Code Example: + +int main(){ + IrrLib Irrlicht; + Irrlicht.ReadArchive("c:\program files\my game\myzip.zip"); + Irrlicht.LoadQ3Level("20kdm2.bsp"); +} + + void IrrLib::CameraPos(int x, int y, int z); //I think this moves the actual camera? + void IrrLib::CameraPos(); +CameraPos is an overloaded function for a reason, sometimes you do model the level around the orgin, and sometimes you don't. +So I took in account both to make it easier for people using this library. + +Code Example: + +int main(){ + IrrLib Irrlicht; + Irrlicht.ReadArchive("c:\program files\my game\myzip.zip"); + Irrlicht.LoadQ3Level("20kdm2.bsp"); + IrrLib.CameraPos(); + //Sets the camera at the orgin +} + +int main(){ + IrrLib Irrlicht; + Irrlicht.ReadArchive("c:\program files\my game\myzip.zip"); + Irrlicht.LoadQ3Level("20kdm2.bsp"); + IrrLib.CameraPos(-1300, -144, -1249); + //Sets the camera at that x, y, z position +} + + void IrrLib::AddFPSCam(); +This simply adds a camera FPS style. Will add other cameras later. + +Code Example: + +int main(){ + IrrLib Irrlicht; + Irrlicht.ReadArchive("c:\program files\my game\myzip.zip"); + Irrlicht.LoadQ3Level("20kdm2.bsp"); + IrrLib.CameraPos(-1300, -144, -1249); + //Sets the camera at that x, y, z position + Irrlicht.AddFPSCam(); +} + + void IrrLib::VisibleCursor(bool tf); +This hides or shows the mouse cursor. Usually you want it hidden. + +Code Example: + +int main(){ + IrrLib Irrlicht; + Irrlicht.ReadArchive("c:\program files\my game\myzip.zip"); + Irrlicht.LoadQ3Level("20kdm2.bsp"); + IrrLib.CameraPos(-1300, -144, -1249); + //Sets the camera at that x, y, z position + Irrlicht.AddFPSCam(); + Irrlicht.VisibleCursor(false); +} + + int IrrLib::GetFPSCount(); +This returns an int of what the current frames per second count is. + +int main(){ + IrrLib Irrlicht; + cout << Irrlicht.GetFPSCount() << endl; + return 0; +} + + bool IrrLib::DeviceIsRunning(); +This returns weither or not the Irrlicht device is running, aka a test to see if the user exists. + +Code Example: + +int main(){ + IrrLib Irrlicht; + Irrlicht.ReadArchive("c:\program files\my game\myzip.zip"); + Irrlicht.LoadQ3Level("20kdm2.bsp"); + IrrLib.CameraPos(-1300, -144, -1249); + //Sets the camera at that x, y, z position + Irrlicht.AddFPSCam(); + Irrlicht.VisibleCursor(false); + while (Irrlicht.DeviceIsRunning()){ + //Do cool stuff + } +} + + bool IrrLib::IsActiveWindow(); +This returns if the Irrlicht spawned window is the window, ie did the user alt tab to play a game of freecell? + +int main(){ + IrrLib Irrlicht; + Irrlicht.ReadArchive("c:\program files\my game\myzip.zip"); + Irrlicht.LoadQ3Level("20kdm2.bsp"); + IrrLib.CameraPos(-1300, -144, -1249); + //Sets the camera at that x, y, z position + Irrlicht.AddFPSCam(); + Irrlicht.VisibleCursor(false); + while (Irrlicht.DeviceIsRunning()){ + if (Irrlicht.IsActiveWindow()) + { + //Do cool stuff + } + } +} + + void IrrLib::BeginScene(); + void IrrLib::BeginScene(irr::video::SColor color); + void IrrLib::BeginScene(bool usebackBuffer, bool usezBuffer, irr::video::SColor color); +This has 3 overloaded functions to allow more of a customization to the interaction between Irrlicht Library -> Irrlicht Engine. +The first uses default values, backbuffer = true, zBuffer = true, and a 'color' of video::SColor(0,200,200,200). //grey I think? +The second assumes, backbuffer = true, zBuffer = true, and a custom color of your choice for the backcolor. +The third is all your choice. + +Code Example: + +int main(){ + IrrLib Irrlicht; + Irrlicht.ReadArchive("c:\program files\my game\myzip.zip"); + Irrlicht.LoadQ3Level("20kdm2.bsp"); + IrrLib.CameraPos(-1300, -144, -1249); + //Sets the camera at that x, y, z position + Irrlicht.AddFPSCam(); + Irrlicht.VisibleCursor(false); + while (Irrlicht.DeviceIsRunning()){ + if (Irrlicht.IsActiveWindow()) + { + Irrlicht.BeginScene(); + } + } +} + +int main(){ + IrrLib Irrlicht; + Irrlicht.ReadArchive("c:\program files\my game\myzip.zip"); + Irrlicht.LoadQ3Level("20kdm2.bsp"); + IrrLib.CameraPos(-1300, -144, -1249); + //Sets the camera at that x, y, z position + Irrlicht.AddFPSCam(); + Irrlicht.VisibleCursor(false); + while (Irrlicht.DeviceIsRunning()){ + if (Irrlicht.IsActiveWindow()) + { + Irrlicht.BeginScene(video::SColor(0,200,200,200)); + } + } +} + +int main(){ + IrrLib Irrlicht; + Irrlicht.ReadArchive("c:\program files\my game\myzip.zip"); + Irrlicht.LoadQ3Level("20kdm2.bsp"); + IrrLib.CameraPos(-1300, -144, -1249); + //Sets the camera at that x, y, z position + Irrlicht.AddFPSCam(); + Irrlicht.VisibleCursor(false); + while (Irrlicht.DeviceIsRunning()){ + if (Irrlicht.IsActiveWindow()) + { + Irrlicht.BeginScene(false, false, video::SColor(0,200,200,200)); + } + } +} + + void IrrLib::DrawAll(); +Draws everything on the scene. + +Code Example: + +int main(){ + IrrLib Irrlicht; + Irrlicht.ReadArchive("c:\program files\my game\myzip.zip"); + Irrlicht.LoadQ3Level("20kdm2.bsp"); + IrrLib.CameraPos(-1300, -144, -1249); + //Sets the camera at that x, y, z position + Irrlicht.AddFPSCam(); + Irrlicht.VisibleCursor(false); + while (Irrlicht.DeviceIsRunning()){ + if (Irrlicht.IsActiveWindow()) + { + Irrlicht.BeginScene(); + Irrlicht.DrawAll(); + } + } +} + + void IrrLib::EndScene() +Ends the scene. + +Code Example: + +int main(){ + IrrLib Irrlicht; + Irrlicht.ReadArchive("c:\program files\my game\myzip.zip"); + Irrlicht.LoadQ3Level("20kdm2.bsp"); + IrrLib.CameraPos(-1300, -144, -1249); + //Sets the camera at that x, y, z position + Irrlicht.AddFPSCam(); + Irrlicht.VisibleCursor(false); + while (Irrlicht.DeviceIsRunning()){ + if (Irrlicht.IsActiveWindow()) + { + Irrlicht.BeginScene(); + Irrlicht.DrawAll(); + Irrlicht.EndScene(); + } + } +} + + void IrrLib::SetWindowCaption(irr::core::stringw str); +Tells Irrlicht what to set the window caption. + +Code Example: + +int main(){ + IrrLib Irrlicht; + Irrlicht.ReadArchive("c:\program files\my game\myzip.zip"); + Irrlicht.LoadQ3Level("20kdm2.bsp"); + IrrLib.CameraPos(-1300, -144, -1249); + //Sets the camera at that x, y, z position + Irrlicht.AddFPSCam(); + Irrlicht.VisibleCursor(false); + while (Irrlicht.DeviceIsRunning()){ + if (Irrlicht.IsActiveWindow()) + { + Irrlicht.BeginScene(); + Irrlicht.DrawAll(); + Irrlicht.EndScene(); + Irrlicht.SetWindowCaption(L"Irrlicht is awsome!"); + } + } +} + + irr:core::stringw IrrLib::GetDriverName(); +Returns a stringw of what the driver name is. + +Code Example: + +int main(){ + IrrLib Irrlicht; + Irrlicht.ReadArchive("c:\program files\my game\myzip.zip"); + Irrlicht.LoadQ3Level("20kdm2.bsp"); + IrrLib.CameraPos(-1300, -144, -1249); + //Sets the camera at that x, y, z position + Irrlicht.AddFPSCam(); + Irrlicht.VisibleCursor(false); + while (Irrlicht.DeviceIsRunning()){ + if (Irrlicht.IsActiveWindow()) + { + Irrlicht.BeginScene(); + Irrlicht.DrawAll(); + Irrlicht.EndScene(); + Irrlicht.SetWindowCaption(L"Irrlicht is awsome! This is using " + Irrlicht.GetDriverName()); + } + } +} + + void IrrLib::EndIrrlicht(); +Ends the Irrlicht scene. + +int main(){ + IrrLib Irrlicht; + Irrlicht.ReadArchive("c:\program files\my game\myzip.zip"); + Irrlicht.LoadQ3Level("20kdm2.bsp"); + IrrLib.CameraPos(-1300, -144, -1249); + //Sets the camera at that x, y, z position + Irrlicht.AddFPSCam(); + Irrlicht.VisibleCursor(false); + while (Irrlicht.DeviceIsRunning()){ + if (Irrlicht.IsActiveWindow()) + { + Irrlicht.BeginScene(); + Irrlicht.DrawAll(); + Irrlicht.EndScene(); + Irrlicht.SetWindowCaption(L"Irrlicht is awsome! This is using " + Irrlicht.GetDriverName()) + } + } + IrrLib.EndIrrlicht(); + return 0; //the deconstructor will delete all our dynamic vars so we don't have horriable memory leaks! +} + +Part 2: Putting it all together! + +//This exmaple is example #2 from the Irrlicht doc examples + +int main(){ + IrrLib Irrlicht; + Irrlicht.ReadArchive("../../media/map-20kdm2.pk3"); + Irrlicht.LoadQ3Level("20kdm2.bsp"); + IrrLib.CameraPos(-1300, -144, -1249); + //Sets the camera at that x, y, z position + Irrlicht.AddFPSCam(); + Irrlicht.VisibleCursor(false); + int lastFPS = -1; + while (Irrlicht.DeviceIsRunning()){ + if (Irrlicht.IsActiveWindow()) + { + Irrlicht.BeginScene(); + Irrlicht.DrawAll(); + Irrlicht.EndScene(); + int fps = Irrlicht.GetFPSCount(); + if (lastFPS != fps) + { + core::stringw str = L"Irrlicht Engine - Quake 3 Map example ["; + str += Irrlicht.GetDriverName(); + str += "] FPS:"; + str += fps; + Irrlicht.SetWindowCaption(str.c_str()); + lastfps = fps; + } + } + } + IrrLib.EndIrrlicht(); + return 0; //the deconstructor will delete all our dynamic vars so we don't have horriable memory leaks! + + //That was easy wasn't it? + //Everything is now humanreadable, I think your next door neighbor could even figure out whats going on....maybe +} \ No newline at end of file diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Stable Version/1.2.2/CHANGES --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Stable Version/1.2.2/CHANGES Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,12 @@ +Version 1.2 ++ Added a Irr3DLib class that will control all 3D objects ++ Also Added a Irr2D class that works on the same concept. ++ IrrSphere is now owned by Irr3DLib ++ Updated the examples using the latest code +Version 1.2.2 ++ Added IrrEventReciever to handle all input + - Still under work ++ Fixed some misc coding bugs ++ Added template class ++ Added sprite class ++ Added GUI class \ No newline at end of file diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Stable Version/1.2.2/Irr2D.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Stable Version/1.2.2/Irr2D.cpp Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,58 @@ +/* + Irrlicht Library Wrapper + Created by Nathan Adams + Copyright (C) 2007 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ +#include +//#include "IrrLib.h" +//#include "IrrSphere.h" //You probably aren't going to be using 3D objects in a 2D environment! +#include +#include + +#include "Irr2D.h" +#include "IrrSprite.h" + +using namespace irr; +using namespace core; +using namespace scene; +using namespace video; +using namespace io; +using namespace gui; + +using namespace std; + +Irr2D::Irr2D(){ + this->numTextures = 0; + //NA Should we set textures to new +} + +Irr2D::~Irr2D(){ + for(int i = 0; i < numTextures; ++i) + delete this->textures[i]; + + delete this->textures; +} + +void Irr2D::SetSmgr(irr::scene::ISceneManager* smgr){ + this->smgr = smgr; + Sprite.SetSmgr(smgr); +} + +void Irr2D::SetDriver(irr::video::IVideoDriver* driver){ + this->driver = driver; + Sprite.SetDriver(driver); +} + +void Irr2D::LoadTexturemap(std::string file){ + this->texturemap = driver->getTexture(file.c_str()); +} + +int Irr2D::LoadTexture(std::string file){ + this->textures[this->numTextures] = driver->getTexture(file.c_str()); + this->numTextures++; + return numTextures--; +} + diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Stable Version/1.2.2/Irr2D.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Stable Version/1.2.2/Irr2D.h Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,45 @@ +/* + Irrlicht Library Wrapper + Created by Nathan Adams + Copyright (C) 2007 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ + +#ifndef IRR2D_H +#define IRR2D_H +/* We should include some basic functions */ +#include +/* include strings */ +#include + +/* We have to include Irrlichts libs */ +#include + +//#include "IrrLib.h" +#include "IrrSprite.h" + +class Irr2D { + private: + irr::scene::ISceneManager* smgr; + irr::video::IVideoDriver* driver; + irr::video::ITexture* texturemap; + int numTextures; + irr::video::ITexture* textures[10]; + public: + //Irr2D::Irr2D(); + IrrSprite Sprite; + Irr2D::Irr2D(); + Irr2D::~Irr2D(); + void Irr2D::SetDriver(irr::video::IVideoDriver* driver); + void Irr2D::SetSmgr(irr::scene::ISceneManager* smgr); + void Irr2D::LoadTexturemap(std::string file); + int Irr2D::LoadTexture(std::string file); + void Irr2D::DrawImage(int texture, const irr::core::position2d & destPos); + void Irr2D::DrawImage(const irr::core::position2d & destPos, const irr::core::rect & sourceRect, const irr::core::rect * clipRect, irr::video::SColor color, bool useAlphaChannelOfTexture); + void Irr2D::DrawLine(const irr::core::position2d & start, const irr::core::position2d & end, irr::video::SColor color); +}; + +#endif + diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Stable Version/1.2.2/Irr3D.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Stable Version/1.2.2/Irr3D.cpp Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,49 @@ +/* + Irrlicht Library Wrapper + Created by Nathan Adams + Copyright (C) 2007 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ +#include +#include + +//#include "IrrLib.h" +//Libraries we create go here +#include "IrrSphere.h" +//#include "IrrColor.h" +#include "Irr3D.h" +#include +//#include "Irr2D.h" + +using namespace irr; +using namespace core; +using namespace scene; +using namespace video; +using namespace io; +using namespace gui; + +using namespace std; + +void Irr3D::SetDriver(irr::video::IVideoDriver* driver) //so much for copying and pasting code from the header file +{ + this->driver = driver; + Sphere.SetDriver(driver); +} + +void Irr3D::SetSmgr(irr::scene::ISceneManager* smgr) +{ + this->smgr = smgr; + Sphere.SetSmgr(smgr); +} + +Irr3D::Irr3D() +{ + //do stuff here! +} + +Irr3D::~Irr3D() +{ + //delete stuff here! +} diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Stable Version/1.2.2/Irr3D.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Stable Version/1.2.2/Irr3D.h Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,41 @@ +/* + Irrlicht Library Wrapper + Created by Nathan Adams + Copyright (C) 2007 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ +#ifndef IRR3D_H +#define IRR3D_H + +/* We should include some basic functions */ +#include +/* include strings */ +#include + +/* We have to include Irrlichts libs */ +#include + +#include "IrrSphere.h" +//#include "IrrColor.h" +//#include "Irr3D.h" +//#include "Irr2D.h" This is a 3D class not 2D +/* However due to Irrlciht's nature mixing 2D with 3D is possible */ + +//Start class +class Irr3D { + + private: + + irr::video::IVideoDriver* driver; + irr::scene::ISceneManager* smgr; + public: + IrrSphere Sphere; + Irr3D::Irr3D(); + Irr3D::~Irr3D(); + void Irr3D::SetDriver(irr::video::IVideoDriver* driver); + void Irr3D::SetSmgr(irr::scene::ISceneManager* smgr); +}; + +#endif diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Stable Version/1.2.2/IrrColor.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Stable Version/1.2.2/IrrColor.cpp Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,66 @@ +/* + Irrlicht Library Wrapper + Created by Nathan Adams + Copyright (C) 2007 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ +#include +#include +#include + +//#include "IrrLib.h" +#include "IrrColor.h" + +using namespace irr; +using namespace core; +using namespace scene; +using namespace video; +using namespace io; +using namespace gui; + +using namespace std; + +void IrrColor::test(){ + //do nothing +} + +SColor IrrColor::returnColor(std::string color){ + int nColor = -1; + if (color == "red") + nColor = 1; + else if (color == "green") + nColor = 2; + else if (color == "blue") + nColor = 3; + else if (color == "dark green") + nColor = 4; + else if (color == "pink") + nColor = 5; + else if (color == "grey") + nColor = 6; + switch (nColor){ + case 1: + return SColor(255, 255, 0, 0); + break; + case 2: + return SColor(255, 0, 255, 0); + break; + case 3: + return SColor(255, 0, 0, 255); + break; + case 4: + return SColor(255, 0, 50, 0); + break; + case 5: + return SColor(255, 255, 10, 255); + break; + case 6: + return SColor(255,200,200,200); + break; + default: + return SColor(255,200,200,200); + break; + }// TODO: Make this function modular +} diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Stable Version/1.2.2/IrrColor.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Stable Version/1.2.2/IrrColor.h Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,26 @@ +/* + Irrlicht Library Wrapper + Created by Nathan Adams + Copyright (C) 2007 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ + +#ifndef IRRCOLOR_H +#define IRRCOLOR_H + +#include +#include +#include "irrlicht.h" +//#include "IrrLib.h" + +class IrrColor { + private: + //who knows? + public: + void IrrColor::test(); + irr::video::SColor IrrColor::returnColor(std::string color); +}; + +#endif diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Stable Version/1.2.2/IrrEventReciever.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Stable Version/1.2.2/IrrEventReciever.cpp Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,35 @@ +/* + Irrlicht Library Wrapper + Created by Nathan Adams + Copyright (C) 2007 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ + +#include "IrrEventReciever.h" +#include "IrrLib.h" +#include +#include + +using namespace irr; +using namespace core; +using namespace scene; +using namespace video; +using namespace io; +using namespace gui; + +using namespace std; + +bool IrrEventReciever::OnEvent(SEvent event) +{ + if (event.EventType == irr::EET_KEY_INPUT_EVENT) { + if (!event.KeyInput.PressedDown) + //keyStates[event.KeyInput.Key] = true; + cout << "Key was hit: " << event.KeyInput.Key << endl; + //else + //cout << "Key was not hit" << endl; + //keyStates[event.KeyInput.Key] = false; + } + return false; +} diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Stable Version/1.2.2/IrrEventReciever.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Stable Version/1.2.2/IrrEventReciever.h Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,23 @@ +/* + Irrlicht Library Wrapper + Created by Nathan Adams + Copyright (C) 2007 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ + +#ifndef IRREVENTRECIEVER_H +#define IRREVENTRECIEVER_H + +//#include "IrrLib.h" +#include + + +class IrrEventReciever : public irr::IEventReceiver +{ + public: + virtual bool OnEvent(irr::SEvent event); +}; + +#endif diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Stable Version/1.2.2/IrrLib.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Stable Version/1.2.2/IrrLib.cpp Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,216 @@ +/* + Irrlicht Library Wrapper + Created by Nathan Adams + Copyright (C) 2007 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ +#include +#include +#include + +#include "IrrLib.h" +//Libraries we create go here +//#include "IrrSphere.h" +#include "IrrColor.h" +//#include "Irr2D.h" + +using namespace irr; +using namespace core; +using namespace scene; +using namespace video; +using namespace io; +using namespace gui; + +using namespace std; + +//TODO: Create own class for handling inputs! + + +/*IrrLib::IrrLib(MastEventReceiver & receiver){ + this->device = createDevice(EDT_SOFTWARE, dimension2d(640, 480), 16, false, false, false, &receiver); + if (this->device == 0) + exit(1); + IrrLib::Init(); +}*/ + +IrrLib::IrrLib(){ + this->device = createDevice(EDT_SOFTWARE, dimension2d(640, 480), 16, false, false, false, &this->irecv); + if (this->device == 0) + exit(1); + IrrLib::Init(); +} + +IrrLib::IrrLib(video::E_DRIVER_TYPE drivertype, core::dimension2d & res, u32 bits, bool fullscreen, bool stencilbuffer, bool vsync){ + //MyEventReceiver receiver; + this->device = createDevice(drivertype, res, bits, fullscreen, stencilbuffer, vsync, &this->irecv); + if (this->device == 0) + exit(1); + IrrLib::Init(); +} + +IrrLib::IrrLib(int nDrivertype, int width, int height, int bits, bool fullscreen, bool stencilbuffer, bool vsync){ + //MyEventReceiver receiver; + video::E_DRIVER_TYPE drivertype; + switch (nDrivertype){ + case 0: //TODO: finish this switch case + drivertype = EDT_NULL; + break; + case 1: + drivertype = EDT_SOFTWARE; + break; + case 2: + drivertype = EDT_BURNINGSVIDEO; + break; + case 3: + drivertype = EDT_OPENGL; + break; + case 4: + drivertype = EDT_DIRECT3D8; + //*Note: It seems as Microsoft has stoped supporting DX 8.1, so you can not compile it into Irrlicht engine anymore + //TODO: Find how to detect if DX is complied into Irrlicht + //TODO: Find how to detecht for linux + break; + case 5: + drivertype = EDT_DIRECT3D9; + break; + default: + drivertype = EDT_SOFTWARE; + break; + } + this->device = createDevice(drivertype, dimension2d(width, height), bits, fullscreen, stencilbuffer, vsync, &this->irecv); + if (this->device == 0) + exit(1); + IrrLib::Init(); +} + +IrrLib::~IrrLib (){ //Our moms wont clean up after us! + //Although I'm sure Irrlicht does this for us already, its always a good idea to check! + /*if (this->device != NULL) + delete this->device; + if (this->driver != NULL) + delete this->driver; + if (this->smgr != NULL) + delete this->smgr; + if (this->mesh != NULL) + delete this->mesh; + if (this->node != NULL) + delete this->node;*/ //it seems Irrlicht picks up after us... + //however we created newNodes, now we need to delete it! +} + +void IrrLib::Init(){ + //this->numNodes = 0; + //this->nodeNew = new ISceneNode[10]; + this->driver = this->device->getVideoDriver(); + this->smgr = this->device->getSceneManager(); + Irr3DLib.SetSmgr(this->smgr); + Irr3DLib.SetDriver(this->driver); + //Irr2DLib.SetSmgr(this->smgr); + //Irr2DLib.SetDriver(this->driver); + GUI.SetEnv(this->device->getGUIEnvironment()); +} + +void IrrLib::ReadArchive(std::string file){ + this->device->getFileSystem()->addZipFileArchive(file.c_str()); +} + +void IrrLib::LoadQ3Level(std::string q3level){ + this->mesh = this->smgr->getMesh(q3level.c_str()); + this->node = 0; + if (this->mesh) + this->node = this->smgr->addOctTreeSceneNode(this->mesh->getMesh(0), 0, -1, 128); +} + +void IrrLib::MapPos(int x, int y, int z){ + if (this->node) + this->node->setPosition(core::vector3df(x, y, z)); +} + +void IrrLib::MapPos(){ + if (this->node) + this->node->setPosition(core::vector3df(0, 0, 0)); +} + +void IrrLib::AddFPSCam(){ + this->cam = this->smgr->addCameraSceneNodeFPS(); +} + +void IrrLib::AddFPSCam(f32 x, f32 y, f32 z) +{ + this->cam = this->smgr->addCameraSceneNodeFPS(); + this->cam->setPosition(irr::core::vector3df(x, y, z)); +} + +void IrrLib::VisibleCursor(bool tf){ + if (tf == false) + this->device->getCursorControl()->setVisible(false); + else + this->device->getCursorControl()->setVisible(true); +} + +int IrrLib::GetFPSCount(){ + return this->driver->getFPS(); +} + +bool IrrLib::DeviceIsRunning(){ + return this->device->run(); +} + +bool IrrLib::IsActiveWindow(){ + return this->device->isWindowActive(); +} + +void IrrLib::BeginScene(){ + this->driver->beginScene(true, true, video::SColor(0,200,200,200)); +} + +void IrrLib::BeginScene(irr::video::SColor color){ + this->driver->beginScene(true, true, color); +} + +void IrrLib::BeginScene(bool usebackBuffer, bool usezBuffer, irr::video::SColor color){ + this->driver->beginScene(usebackBuffer, usezBuffer, color); +} + +void IrrLib::DrawAll(){ + this->smgr->drawAll(); + //this->device->getGUIEnvironment()->drawAll(); + } + +void IrrLib::EndScene(){ + this->driver->endScene(); +} + +void IrrLib::SetWindowCaption(stringw str){ + this->device->setWindowCaption(str.c_str()); +} + +irr::core::stringw IrrLib::GetDriverName(){ + return this->driver->getName(); +} + +void IrrLib::EndIrrlicht(){ + this->device->drop(); +} + +void IrrLib::KeyPress(char key){ + this->key = key; +} + +char IrrLib::KeyPressed(){ + return key; +} + +irr::f32 IrrLib::getX(){ + return this->smgr->getActiveCamera()->getPosition().X; +} + +irr::f32 IrrLib::getY(){ + return this->smgr->getActiveCamera()->getPosition().Y; +} + +irr::f32 IrrLib::getZ(){ + return this->smgr->getActiveCamera()->getPosition().Z; +} diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Stable Version/1.2.2/IrrLib.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Stable Version/1.2.2/IrrLib.h Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,102 @@ +/* + Irrlicht Library Wrapper + Created by Nathan Adams + Copyright (C) 2007 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ +#ifndef IRRLIB_H +#define IRRLIB_H + +/* We should include some basic functions */ +#include +/* include strings */ +#include +#include + +/* We have to include Irrlichts libs */ + + +#include "Irr3D.h" +#include "IrrColor.h" +#include "IrrLibGUI.h" +#include "IrrEventReciever.h" +#include "Irr2D.h" + +//Start class +class IrrLib { + + private: + /* Create an Irrlicht device as private because the class should handle + All irrlicht interaction */ + irr::IrrlichtDevice *device; + // Tells Irrlicht what driver to use + //video::E_DRIVER_TYPE driverType; + + /* + Get a pointer to the video driver and the SceneManager so that + we do not always have to write device->getVideoDriver() and + device->getSceneManager(). + */ + irr::video::IVideoDriver* driver; + irr::scene::ISceneManager* smgr; + + /* + Get a pointer to the 'mesh' aka the level. + Note: This is for Quake3 levels, ie bsp maps. + */ + irr::scene::IAnimatedMesh* mesh; + irr::scene::ISceneNode* node; + irr::scene::ISceneNode * tempNode; //use this to store nodeNew's data so we can resize it + irr::scene::ICameraSceneNode * cam; + char key; + + + void IrrLib::Init(); + /*friend class IrrColor; + friend class Irr2DLib; + friend class Sphere;*/ + public: + //IrrSphere Sphere; //This has to be public to be able to access the Sphere class + /* IrrSphere is now in Irr3D class */ + //Prehaps put this into a IrrLib3D class? + Irr3D Irr3DLib; + IrrColor Color; //Color class...not much of a class but lets keep it OO + Irr2D Irr2DLib; //1/2 variable to be labeled like this due to variables not able to begin with a number + IrrLibGUI GUI; + IrrEventReciever irecv; + IrrLib::IrrLib(); + //IrrLib::IrrLib(MastEventReceiver & receiver); + IrrLib::IrrLib(irr::video::E_DRIVER_TYPE drivertype, irr::core::dimension2d & res, irr::u32 bits, bool fullscreen, bool stencilbuffer, bool vsync); + IrrLib::IrrLib(int drivertype, int width, int height, int bits, bool fullscreen, bool stencilbuffer, bool vsync); + IrrLib::~IrrLib(); //Our moms wont clean up after us! + void IrrLib::ReadArchive(std::string file); + void IrrLib::LoadQ3Level(std::string q3level); + void IrrLib::MapPos(int x, int y, int z); //I think this moves the actual camera? + void IrrLib::MapPos(); + void IrrLib::AddFPSCam(); + void IrrLib::AddFPSCam(irr::f32 x, irr::f32 y, irr::f32 z); + void IrrLib::VisibleCursor(bool tf); + int IrrLib::GetFPSCount(); + bool IrrLib::DeviceIsRunning(); + bool IrrLib::IsActiveWindow(); + void IrrLib::BeginScene(); + void IrrLib::BeginScene(irr::video::SColor color); + void IrrLib::BeginScene(bool usebackBuffer, bool usezBuffer, irr::video::SColor color); + //TODO: Add one more for human readable colors and hex colors! + void IrrLib::DrawAll(); + void IrrLib::EndScene(); + void IrrLib::SetWindowCaption(irr::core::stringw str); + irr::core::stringw IrrLib::GetDriverName(); + //TODO: Make function to turn stringw to string and visa versa + void IrrLib::EndIrrlicht(); //Renamed from KillIrrlicht to EndIrrlicht + //TODO: Add logging + void IrrLib::KeyPress(char key); + char IrrLib::KeyPressed(); + irr::f32 getX(); + irr::f32 getY(); + irr::f32 getZ(); +}; + +#endif diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Stable Version/1.2.2/IrrLibBase.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Stable Version/1.2.2/IrrLibBase.cpp Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,31 @@ +/* + Irrlicht Library Wrapper + Created by Nathan Adams + Copyright (C) 2007 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ + +#include +#include "IrrLibBase.h" + +using namespace irr; +using namespace core; +using namespace scene; +using namespace video; +using namespace io; +using namespace gui; + +using namespace std; + +void IrrLibBase::SetDriver(IVideoDriver* driver) //can be overloaded +{ + this->driver = driver; +} + +void IrrLibBase::SetSmgr(ISceneManager* smgr) +{ + this->smgr = smgr; +} + diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Stable Version/1.2.2/IrrLibBase.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Stable Version/1.2.2/IrrLibBase.h Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,32 @@ +/* + Irrlicht Library Wrapper + Created by Nathan Adams + Copyright (C) 2007 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ + +#ifndef IRRLIBBASE_H +#define IRRLIBBASE_H + +/* We should include some basic functions */ +#include +/* include strings */ +#include + +/* We have to include Irrlichts libs */ +#include + +class IrrLibBase { + + protected: + irr::video::IVideoDriver* driver; + irr::scene::ISceneManager* smgr; + public: + void IrrLibBase::SetDriver(irr::video::IVideoDriver* driver); + void IrrLibBase::SetSmgr(irr::scene::ISceneManager* smgr); + +}; + +#endif diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Stable Version/1.2.2/IrrLibGUI.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Stable Version/1.2.2/IrrLibGUI.cpp Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,89 @@ +/* + Irrlicht Library Wrapper + Created by Nathan Adams + Copyright (C) 2007 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ +#include +#include +#include + +#include "IrrLibGUI.h" + +using namespace irr; +using namespace core; +using namespace scene; +using namespace video; +using namespace io; +using namespace gui; + +using namespace std; + +IrrLibGUI::IrrLibGUI() +{ + //NA does it need to do anything at init? + this->nStaticText = 0; + //this->env = this->device->getGUIEnvironment(); //NA yes we do! +} + +IrrLibGUI::~IrrLibGUI() +{ + //NA Do we have to delete anything? +} + +void IrrLibGUI::SetEnv(IGUIEnvironment* env) +{ + this->env = env; +} + +void IrrLibGUI::Clear() +{ + this->env->clear(); +} + +void IrrLibGUI::DrawAll() +{ + this->env->drawAll(); +} + +void IrrLibGUI::AddStaticText() +{ + this->env->addStaticText(L"Powered by IrrLib.", rect(0,0,0,0), true); +} + +void IrrLibGUI::AddStaticText(std::string message) +{ + this->env->addStaticText((wchar_t*)message.c_str(), rect(0,0,0,0), true); +} + +void IrrLibGUI::AddStaticText(std::string message, int x1, int y1, int x2, int y2) +{ + this->env->addStaticText((wchar_t*)message.c_str(), rect(x1,y1,x2,y2), true); +} + +void IrrLibGUI::AddStaticText(std::string message, int x1, int y1, int x2, int y2, bool border, bool wordwrap) +{ + this->env->addStaticText((wchar_t*)message.c_str(), rect(x1,y1,x2,y2), border, wordwrap); +} + +void IrrLibGUI::AddStaticText(std::string message, int x1, int y1, int x2, int y2, bool border, bool wordwrap, int id, bool fillbackground) +{ + this->env->addStaticText((wchar_t*)message.c_str(), rect(x1,y1,x2,y2), border, wordwrap, 0, id, fillbackground); +} + +void IrrLibGUI::AddStaticText(std::string message, const core::rect< s32 > &rectangle) +{ + this->env->addStaticText((wchar_t*)message.c_str(), rectangle); +} + +void IrrLibGUI::AddStaticText(std::string message, const core::rect< s32 > &rectangle, bool border, bool wordwrap) +{ + this->env->addStaticText((wchar_t*)message.c_str(), rectangle, border, wordwrap); +} + +void IrrLibGUI::AddStaticText(std::string message, const core::rect< s32 > &rectangle, bool border, bool wordwrap, int id, bool fillbackground) +{ + this->env->addStaticText((wchar_t*)message.c_str(), rectangle, border, wordwrap, 0, id, fillbackground); +} diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Stable Version/1.2.2/IrrLibGUI.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Stable Version/1.2.2/IrrLibGUI.h Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,45 @@ +/* + Irrlicht Library Wrapper + Created by Nathan Adams + Copyright (C) 2007 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ + +#ifndef IRRLIBGUI_H +#define IRRLIBGUI_H + +#include +#include +#include +#include "IrrLibBase.h" + +class IrrLibGUI: public IrrLibBase { + private: + irr::gui::IGUISkin* skin; + irr::gui::IGUIFont* font; + irr::gui::IGUIEnvironment* env; + //TODO: Create an array storing all messages + int nStaticText; + irr::gui::IGUIStaticText* arrStaticText[10]; + + public: + IrrLibGUI::IrrLibGUI(); + IrrLibGUI::~IrrLibGUI(); + void IrrLibGUI::SetEnv(irr::gui::IGUIEnvironment* env); + void IrrLibGUI::Clear(); + void IrrLibGUI::DrawAll(); + void IrrLibGUI::AddStaticText(); //NA eh a default text adder why not? + void IrrLibGUI::AddStaticText(std::string message); + void IrrLibGUI::AddStaticText(std::string message, int x1, int y1, int x2, int y2); + void IrrLibGUI::AddStaticText(std::string message, int x1, int y1, int x2, int y2, bool border, bool wordwrap); + void IrrLibGUI::AddStaticText(std::string message, int x1, int y1, int x2, int y2, bool border, bool wordwrap, int id, bool fillbackground); + void IrrLibGUI::AddStaticText(std::string message, const irr::core::rect< irr::s32 > &rectangle); + void IrrLibGUI::AddStaticText(std::string message, const irr::core::rect< irr::s32 > &rectangle, bool border, bool wordwrap); + void IrrLibGUI::AddStaticText(std::string message, const irr::core::rect< irr::s32 > &rectangle, bool border, bool wordwrap, int id, bool fillbackground); + +}; + + +#endif diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Stable Version/1.2.2/IrrSphere.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Stable Version/1.2.2/IrrSphere.cpp Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,63 @@ +/* + Irrlicht Library Wrapper + Created by Nathan Adams + Copyright (C) 2007 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ +#include +#include "IrrLib.h" +#include "IrrSphere.h" +#include +#include + +using namespace irr; +using namespace core; +using namespace scene; +using namespace video; +using namespace io; +using namespace gui; + +using namespace std; + +void IrrSphere::SetSmgr(irr::scene::ISceneManager* smgr){ + this->smgr = smgr; +} + +void IrrSphere::SetDriver(irr::video::IVideoDriver* driver){ + this->driver = driver; +} + +int IrrSphere::CreateNewSphereNode(int x, int y, int z, std::string texture, bool light){ + //TODO: Resize after 10, and add 10 more to the mix! + this->nodeNew[this->numNodes] = this->smgr->addSphereSceneNode(); + this->nodeNew[this->numNodes]->setPosition(core::vector3df(x,y,z)); + this->nodeNew[this->numNodes]->setMaterialTexture(0, this->driver->getTexture(texture.c_str())); + this->nodeNew[this->numNodes]->setMaterialFlag(video::EMF_LIGHTING, light); + this->numNodes++; + return this->numNodes--; + /*this->node = this->smgr->addSphereSceneNode(); + this->node->setPosition(core::vector3df(x,y,z)); + this->node->setMaterialTexture(0, this->driver->getTexture(texture.c_str())); + this->node->setMaterialFlag(video::EMF_LIGHTING, light);*/ +} + +irr::core::vector3df IrrSphere::GetSphereVector(int sphere){ + return this->nodeNew[sphere]->getPosition(); +} + +void IrrSphere::SetSphereVector(int sphere, irr::core::vector3df v){ + this->nodeNew[sphere]->setPosition(v); +} + +IrrSphere::IrrSphere(){ + this->numNodes = 0; +} + +IrrSphere::~IrrSphere(){ + for(int i = 0; i < numNodes; ++i) + delete this->nodeNew[i]; + + delete this->nodeNew; +} diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Stable Version/1.2.2/IrrSphere.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Stable Version/1.2.2/IrrSphere.h Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,41 @@ +/* + Irrlicht Library Wrapper + Created by Nathan Adams + Copyright (C) 2007 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ + +#ifndef IRRSPHERE_H +#define IRRSPHERE_H +/* We should include some basic functions */ +#include +/* include strings */ +#include + +/* We have to include Irrlichts libs */ +#include + +//#include "IrrLib.h" + + +class IrrSphere +{ + private: + irr::scene::ISceneNode* nodeNew[10]; + int numNodes; + irr::scene::ISceneManager* smgr; + irr::video::IVideoDriver* driver; + public: + void IrrSphere::SetDriver(irr::video::IVideoDriver* driver); + void IrrSphere::SetSmgr(irr::scene::ISceneManager* smgr); + int IrrSphere::CreateNewSphereNode(int x, int y, int z, std::string texture, bool light); //this is going to take my advanced C++ skillz! + irr::core::vector3df IrrSphere::GetSphereVector(int sphere); + void IrrSphere::SetSphereVector(int sphere, irr::core::vector3df v); + IrrSphere::IrrSphere(); + //IrrSphere::IrrSphere(IrrLib*); + IrrSphere::~IrrSphere(); +}; + +#endif diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Stable Version/1.2.2/IrrSprite.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Stable Version/1.2.2/IrrSprite.cpp Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,46 @@ +/* + Irrlicht Library Wrapper + Created by Nathan Adams + Copyright (C) 2007 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ +#include +#include +#include + +#include "IrrLib.h" +//Libraries we create go here +//#include "IrrSphere.h" +#include "IrrColor.h" +#include "IrrSprite.h" +//#include "Irr2D.h" + +using namespace irr; +using namespace core; +using namespace scene; +using namespace video; +using namespace io; +using namespace gui; + +using namespace std; + +IrrSprite::IrrSprite() +{ + //do stuff +} + +IrrSprite::~IrrSprite() +{ + //delete stuff +} + +void IrrSprite::SetDriver(irr::video::IVideoDriver* driver) +{ + this->driver = driver; +} +void IrrSprite::SetSmgr(irr::scene::ISceneManager* smgr) +{ + this->smgr = smgr; +} diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Stable Version/1.2.2/IrrSprite.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Stable Version/1.2.2/IrrSprite.h Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,42 @@ +/* + Irrlicht Library Wrapper + Created by Nathan Adams + Copyright (C) 2007 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ +#ifndef IRRSPRITE_H +#define IRRSPRITE_H + +/* We should include some basic functions */ +#include +/* include strings */ +#include + +/* We have to include Irrlichts libs */ +#include + +//#include "IrrSphere.h" +#include "IrrColor.h" +//#include "Irr2D.h" +//#include "IrrSprite.h" + +//Start class +class IrrSprite { + + private: + + irr::video::IVideoDriver* driver; + irr::scene::ISceneManager* smgr; + public: + IrrSprite::IrrSprite(); + IrrSprite::~IrrSprite(); + void IrrSprite::SetDriver(irr::video::IVideoDriver* driver); + void IrrSprite::SetSmgr(irr::scene::ISceneManager* smgr); + +// I forgot a semicolon here....and it wasn't compling +//Thats 1 bad thing about OOP if there is an error you don't know where the @#$@# the problem is! +}; + +#endif diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Stable Version/1.2.2/README --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Stable Version/1.2.2/README Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,13 @@ + Irrlicht Library Wrapper + Created by Nathan Adams + Version 1.2 + Copyright (C) 2007 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. + + Please leave all files intact if you redistrubte this software. + +How to use: + Add all the files to your Irrlicht project, you could compile it into a DLL if you wanted too, but for now just add all the files to your project. + Then inside your complier add the directory that you have the IrrLib files and use #include "IrrLib.h" to refrence it, and you are good to go! \ No newline at end of file diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Stable Version/1.2.3/CHANGES --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Stable Version/1.2.3/CHANGES Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,22 @@ +Version 1.2 ++ Added a Irr3DLib class that will control all 3D objects ++ Also Added a Irr2D class that works on the same concept. ++ IrrSphere is now owned by Irr3DLib ++ Updated the examples using the latest code +Version 1.2.2 ++ Added IrrEventReciever to handle all input + - Still under work ++ Fixed some misc coding bugs ++ Added template class ++ Added sprite class ++ Added GUI class +Version 1.2.3 ++ IrrEventReciver now works as advertised ++ Baseclass is now being used + + A couple somewhat-useful functions + + int_to_string + + stringw_to_stdstring + + stdstring_to_stringw ++ GUI elements + + Static text is working ++ Under construction for a data type class diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Stable Version/1.2.3/CREDITS --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Stable Version/1.2.3/CREDITS Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,4 @@ +IrrLib +Created by + Nathan Adams + Denzel Morris \ No newline at end of file diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Stable Version/1.2.3/Irr2D.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Stable Version/1.2.3/Irr2D.cpp Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,61 @@ +/* + Irrlicht Library Wrapper + Created by: + Nathan Adams + Denzel Morris + Copyright (C) 2007 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ + +#include +//#include "IrrLib.h" +//#include "IrrSphere.h" //You probably aren't going to be using 3D objects in a 2D environment! +#include +#include + +#include "Irr2D.h" +#include "IrrSprite.h" + +using namespace irr; +using namespace core; +using namespace scene; +using namespace video; +using namespace io; +using namespace gui; + +using namespace std; + +Irr2D::Irr2D(){ + this->numTextures = 0; + //NA Should we set textures to new +} + +Irr2D::~Irr2D(){ + for(int i = 0; i < numTextures; ++i) + delete this->textures[i]; + + delete this->textures; +} + +void Irr2D::SetSmgr(irr::scene::ISceneManager* smgr){ + this->smgr = smgr; + Sprite.SetSmgr(smgr); +} + +void Irr2D::SetDriver(irr::video::IVideoDriver* driver){ + this->driver = driver; + Sprite.SetDriver(driver); +} + +void Irr2D::LoadTexturemap(std::string file){ + this->texturemap = driver->getTexture(file.c_str()); +} + +int Irr2D::LoadTexture(std::string file){ + this->textures[this->numTextures] = driver->getTexture(file.c_str()); + this->numTextures++; + return numTextures--; +} + diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Stable Version/1.2.3/Irr2D.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Stable Version/1.2.3/Irr2D.h Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,47 @@ +/* + Irrlicht Library Wrapper + Created by: + Nathan Adams + Denzel Morris + Copyright (C) 2007 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ + +#ifndef IRR2D_H +#define IRR2D_H +/* We should include some basic functions */ +#include +/* include strings */ +#include + +/* We have to include Irrlichts libs */ +#include + +//#include "IrrLib.h" +#include "IrrSprite.h" + +class Irr2D { + private: + irr::scene::ISceneManager* smgr; + irr::video::IVideoDriver* driver; + irr::video::ITexture* texturemap; + int numTextures; + irr::video::ITexture* textures[10]; + public: + //Irr2D::Irr2D(); + IrrSprite Sprite; + Irr2D::Irr2D(); + Irr2D::~Irr2D(); + void Irr2D::SetDriver(irr::video::IVideoDriver* driver); + void Irr2D::SetSmgr(irr::scene::ISceneManager* smgr); + void Irr2D::LoadTexturemap(std::string file); + int Irr2D::LoadTexture(std::string file); + void Irr2D::DrawImage(int texture, const irr::core::position2d & destPos); + void Irr2D::DrawImage(const irr::core::position2d & destPos, const irr::core::rect & sourceRect, const irr::core::rect * clipRect, irr::video::SColor color, bool useAlphaChannelOfTexture); + void Irr2D::DrawLine(const irr::core::position2d & start, const irr::core::position2d & end, irr::video::SColor color); +}; + +#endif + diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Stable Version/1.2.3/Irr3D.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Stable Version/1.2.3/Irr3D.cpp Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,52 @@ +/* + Irrlicht Library Wrapper + Created by: + Nathan Adams + Denzel Morris + Copyright (C) 2007 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ + +#include +#include + +//#include "IrrLib.h" +//Libraries we create go here +#include "IrrSphere.h" +//#include "IrrColor.h" +#include "Irr3D.h" +#include +//#include "Irr2D.h" + +using namespace irr; +using namespace core; +using namespace scene; +using namespace video; +using namespace io; +using namespace gui; + +using namespace std; + +void Irr3D::SetDriver(irr::video::IVideoDriver* driver) //so much for copying and pasting code from the header file +{ + this->driver = driver; + Sphere.SetDriver(driver); +} + +void Irr3D::SetSmgr(irr::scene::ISceneManager* smgr) +{ + this->smgr = smgr; + Sphere.SetSmgr(smgr); +} + +Irr3D::Irr3D() +{ + //do stuff here! +} + +Irr3D::~Irr3D() +{ + //delete stuff here! +} diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Stable Version/1.2.3/Irr3D.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Stable Version/1.2.3/Irr3D.h Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,44 @@ +/* + Irrlicht Library Wrapper + Created by: + Nathan Adams + Denzel Morris + Copyright (C) 2007 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ + +#ifndef IRR3D_H +#define IRR3D_H + +/* We should include some basic functions */ +#include +/* include strings */ +#include + +/* We have to include Irrlichts libs */ +#include + +#include "IrrSphere.h" +//#include "IrrColor.h" +//#include "Irr3D.h" +//#include "Irr2D.h" This is a 3D class not 2D +/* However due to Irrlciht's nature mixing 2D with 3D is possible */ + +//Start class +class Irr3D { + + private: + + irr::video::IVideoDriver* driver; + irr::scene::ISceneManager* smgr; + public: + IrrSphere Sphere; + Irr3D::Irr3D(); + Irr3D::~Irr3D(); + void Irr3D::SetDriver(irr::video::IVideoDriver* driver); + void Irr3D::SetSmgr(irr::scene::ISceneManager* smgr); +}; + +#endif diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Stable Version/1.2.3/IrrColor.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Stable Version/1.2.3/IrrColor.cpp Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,69 @@ +/* + Irrlicht Library Wrapper + Created by: + Nathan Adams + Denzel Morris + Copyright (C) 2007 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ + +#include +#include +#include + +//#include "IrrLib.h" +#include "IrrColor.h" + +using namespace irr; +using namespace core; +using namespace scene; +using namespace video; +using namespace io; +using namespace gui; + +using namespace std; + +void IrrColor::test(){ + //do nothing +} + +SColor IrrColor::returnColor(std::string color){ + int nColor = -1; + if (color == "red") + nColor = 1; + else if (color == "green") + nColor = 2; + else if (color == "blue") + nColor = 3; + else if (color == "dark green") + nColor = 4; + else if (color == "pink") + nColor = 5; + else if (color == "grey") + nColor = 6; + switch (nColor){ + case 1: + return SColor(255, 255, 0, 0); + break; + case 2: + return SColor(255, 0, 255, 0); + break; + case 3: + return SColor(255, 0, 0, 255); + break; + case 4: + return SColor(255, 0, 50, 0); + break; + case 5: + return SColor(255, 255, 10, 255); + break; + case 6: + return SColor(255,200,200,200); + break; + default: + return SColor(255,200,200,200); + break; + }// TODO: Make this function modular +} diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Stable Version/1.2.3/IrrColor.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Stable Version/1.2.3/IrrColor.h Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,28 @@ +/* + Irrlicht Library Wrapper + Created by: + Nathan Adams + Denzel Morris + Copyright (C) 2007 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ + +#ifndef IRRCOLOR_H +#define IRRCOLOR_H + +#include +#include +#include "irrlicht.h" +//#include "IrrLib.h" + +class IrrColor { + private: + //who knows? + public: + void IrrColor::test(); + irr::video::SColor IrrColor::returnColor(std::string color); +}; + +#endif diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Stable Version/1.2.3/IrrEventReciever.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Stable Version/1.2.3/IrrEventReciever.cpp Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,42 @@ +/* + Irrlicht Library Wrapper + Created by: + Nathan Adams + Denzel Morris + Copyright (C) 2007 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ + +#include "IrrEventReciever.h" +//#include "IrrLib.h" +#include +#include + +using namespace irr; +using namespace core; +using namespace scene; +using namespace video; +using namespace io; +using namespace gui; + +using namespace std; + +/*void IrrEventReciever::setIrrLib(IrrLib& IrrLib) +{ + this.callingIrrLib = IrrLib; +}*/ + +bool IrrEventReciever::OnEvent(SEvent event) +{ + if (event.EventType == irr::EET_KEY_INPUT_EVENT) { + if (!event.KeyInput.PressedDown) + this->keyStates[event.KeyInput.Key] = true; + //cout << "Key was hit: " << event.KeyInput.Key << endl; + else + //cout << "Key was not hit" << endl; + this->keyStates[event.KeyInput.Key] = false; + } + return false; +} diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Stable Version/1.2.3/IrrEventReciever.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Stable Version/1.2.3/IrrEventReciever.h Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,30 @@ +/* + Irrlicht Library Wrapper + Created by: + Nathan Adams + Denzel Morris + Copyright (C) 2007 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ + +#ifndef IRREVENTRECIEVER_H +#define IRREVENTRECIEVER_H + +//#include "IrrLib.h" +#include +#include "IrrLibBase.h" + + +class IrrEventReciever : public irr::IEventReceiver, public IrrLibBase +{ + //private: + //IrrLib callingIrrLib; + public: + bool keyStates[irr::KEY_KEY_CODES_COUNT]; + //void setIrrLib(IrrLib& IrrLib) + virtual bool OnEvent(irr::SEvent event); +}; + +#endif diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Stable Version/1.2.3/IrrLib.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Stable Version/1.2.3/IrrLib.cpp Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,233 @@ +/* + Irrlicht Library Wrapper + Created by: + Nathan Adams + Denzel Morris + Copyright (C) 2007 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ + +#include +#include +#include +#include + +#include "IrrLib.h" +//Libraries we create go here +//#include "IrrSphere.h" +#include "IrrColor.h" +//#include "Irr2D.h" + +using namespace irr; +using namespace core; +using namespace scene; +using namespace video; +using namespace io; +using namespace gui; + +using namespace std; + +//TODO: Create own class for handling inputs! + + +/*IrrLib::IrrLib(MastEventReceiver & receiver){ + this->device = createDevice(EDT_SOFTWARE, dimension2d(640, 480), 16, false, false, false, &receiver); + if (this->device == 0) + exit(1); + IrrLib::Init(); +}*/ + +IrrLib::IrrLib(){ + this->device = createDevice(EDT_SOFTWARE, dimension2d(640, 480), 16, false, false, false, &this->IrrEvent); + if (this->device == 0) + exit(1); + IrrLib::Init(); +} + +IrrLib::IrrLib(video::E_DRIVER_TYPE drivertype, core::dimension2d & res, u32 bits, bool fullscreen, bool stencilbuffer, bool vsync){ + //MyEventReceiver receiver; + this->device = createDevice(drivertype, res, bits, fullscreen, stencilbuffer, vsync, &this->IrrEvent); + if (this->device == 0) + exit(1); + IrrLib::Init(); +} + +IrrLib::IrrLib(int nDrivertype, int width, int height, int bits, bool fullscreen, bool stencilbuffer, bool vsync){ + //MyEventReceiver receiver; + video::E_DRIVER_TYPE drivertype; + switch (nDrivertype){ + case 0: //TODO: finish this switch case + drivertype = EDT_NULL; + break; + case 1: + drivertype = EDT_SOFTWARE; + break; + case 2: + drivertype = EDT_BURNINGSVIDEO; + break; + case 3: + drivertype = EDT_OPENGL; + break; + case 4: + drivertype = EDT_DIRECT3D8; + //*Note: It seems as Microsoft has stoped supporting DX 8.1, so you can not compile it into Irrlicht engine anymore + //TODO: Find how to detect if DX is complied into Irrlicht + //TODO: Find how to detecht for linux + break; + case 5: + drivertype = EDT_DIRECT3D9; + break; + default: + drivertype = EDT_SOFTWARE; + break; + } + this->device = createDevice(drivertype, dimension2d(width, height), bits, fullscreen, stencilbuffer, vsync, &this->IrrEvent); + if (this->device == 0) + exit(1); + IrrLib::Init(); +} + +IrrLib::~IrrLib (){ //Our moms wont clean up after us! + //Although I'm sure Irrlicht does this for us already, its always a good idea to check! + /*if (this->device != NULL) + delete this->device; + if (this->driver != NULL) + delete this->driver; + if (this->smgr != NULL) + delete this->smgr; + if (this->mesh != NULL) + delete this->mesh; + if (this->node != NULL) + delete this->node;*/ //it seems Irrlicht picks up after us... + //however we created newNodes, now we need to delete it! +} + +void IrrLib::Init(){ + //this->numNodes = 0; + //this->nodeNew = new ISceneNode[10]; + //this->env->addStaticText(L"Transparent Control:", rect(20,30,300,80), true); + this->env = this->device->getGUIEnvironment(); + this->driver = this->device->getVideoDriver(); + this->smgr = this->device->getSceneManager(); + Irr3DLib.SetSmgr(this->smgr); + Irr3DLib.SetDriver(this->driver); + Irr2DLib.SetSmgr(this->smgr); + Irr2DLib.SetDriver(this->driver); + GUI.SetEnv(this->env); + IrrEvent.SetDevice(this->device); +} + +void IrrLib::ReadArchive(std::string file){ + this->device->getFileSystem()->addZipFileArchive(file.c_str()); +} + +void IrrLib::LoadQ3Level(std::string q3level){ + this->mesh = this->smgr->getMesh(q3level.c_str()); + this->node = 0; + if (this->mesh) + this->node = this->smgr->addOctTreeSceneNode(this->mesh->getMesh(0), 0, -1, 128); +} + +void IrrLib::MapPos(int x, int y, int z){ + if (this->node) + this->node->setPosition(core::vector3df(x, y, z)); +} + +void IrrLib::MapPos(){ + if (this->node) + this->node->setPosition(core::vector3df(0, 0, 0)); +} + +void IrrLib::AddFPSCam(){ + this->cam = this->smgr->addCameraSceneNodeFPS(); +} + +void IrrLib::AddFPSCam(f32 x, f32 y, f32 z) +{ + this->cam = this->smgr->addCameraSceneNodeFPS(); + this->cam->setPosition(irr::core::vector3df(x, y, z)); +} + +void IrrLib::VisibleCursor(bool tf){ + if (tf == false) + this->device->getCursorControl()->setVisible(false); + else + this->device->getCursorControl()->setVisible(true); +} + +int IrrLib::GetFPSCount(){ + return this->driver->getFPS(); +} + +bool IrrLib::DeviceIsRunning(){ + return this->device->run(); +} + +bool IrrLib::IsActiveWindow(){ + return this->device->isWindowActive(); +} + +void IrrLib::BeginScene(){ + this->driver->beginScene(true, true, video::SColor(0,200,200,200)); +} + +void IrrLib::BeginScene(irr::video::SColor color){ + this->driver->beginScene(true, true, color); +} + +void IrrLib::BeginScene(bool usebackBuffer, bool usezBuffer, irr::video::SColor color){ + this->driver->beginScene(usebackBuffer, usezBuffer, color); +} + +void IrrLib::DrawAll(){ + this->smgr->drawAll(); + this->env->drawAll(); + //this->device->getGUIEnvironment()->drawAll(); + } + +void IrrLib::EndScene(){ + this->driver->endScene(); +} + +void IrrLib::SetWindowCaption(stringw str){ + this->device->setWindowCaption(str.c_str()); +} + +irr::core::stringw IrrLib::GetDriverName(){ + return this->driver->getName(); +} + +void IrrLib::EndIrrlicht(){ + this->device->drop(); +} + +void IrrLib::KeyPress(char key){ + this->key = key; +} + +char IrrLib::KeyPressed(){ + return key; +} + +irr::f32 IrrLib::getX(){ + return this->smgr->getActiveCamera()->getPosition().X; +} + +irr::f32 IrrLib::getY(){ + return this->smgr->getActiveCamera()->getPosition().Y; +} + +irr::f32 IrrLib::getZ(){ + return this->smgr->getActiveCamera()->getPosition().Z; +} + +//template std::string IrrLib::to_string (T t) +/*std::string IrrLib::int_to_string (int t) +{ + std::stringstream ss; + ss << t; + return ss.str(); +}*/ +// This is in the base class now, every class that decends from that class has this ability. diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Stable Version/1.2.3/IrrLib.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Stable Version/1.2.3/IrrLib.h Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,110 @@ +/* + Irrlicht Library Wrapper + Created by: + Nathan Adams + Denzel Morris + Copyright (C) 2007 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ + +#ifndef IRRLIB_H +#define IRRLIB_H + +/* We should include some basic functions */ +#include +/* include strings */ +#include +#include + +/* We have to include Irrlichts libs */ + + +#include "Irr3D.h" +#include "IrrColor.h" +#include "IrrLibGUI.h" +#include "IrrEventReciever.h" +#include "Irr2D.h" +#include "IrrLibBase.h" + +//Start class +class IrrLib: public IrrLibBase { + + private: + /* Create an Irrlicht device as private because the class should handle + All irrlicht interaction */ + irr::IrrlichtDevice *device; + // Tells Irrlicht what driver to use + //video::E_DRIVER_TYPE driverType; + + /* + Get a pointer to the video driver and the SceneManager so that + we do not always have to write device->getVideoDriver() and + device->getSceneManager(). + */ + irr::video::IVideoDriver* driver; + irr::scene::ISceneManager* smgr; + irr::gui::IGUIEnvironment* env; + + /* + Get a pointer to the 'mesh' aka the level. + Note: This is for Quake3 levels, ie bsp maps. + */ + irr::scene::IAnimatedMesh* mesh; + irr::scene::ISceneNode* node; + irr::scene::ISceneNode * tempNode; //use this to store nodeNew's data so we can resize it + irr::scene::ICameraSceneNode * cam; + char key; + + + void IrrLib::Init(); + /*friend class IrrColor; + friend class Irr2DLib; + friend class Sphere;*/ + friend class IrrEventReciever; + public: + //IrrSphere Sphere; //This has to be public to be able to access the Sphere class + /* IrrSphere is now in Irr3D class */ + //Prehaps put this into a IrrLib3D class? + Irr3D Irr3DLib; + IrrColor Color; //Color class...not much of a class but lets keep it OO + Irr2D Irr2DLib; //1/2 variable to be labeled like this due to variables not able to begin with a number + IrrLibGUI GUI; + IrrEventReciever IrrEvent; + IrrLib::IrrLib(); + //IrrLib::IrrLib(MastEventReceiver & receiver); + IrrLib::IrrLib(irr::video::E_DRIVER_TYPE drivertype, irr::core::dimension2d & res, irr::u32 bits, bool fullscreen, bool stencilbuffer, bool vsync); + IrrLib::IrrLib(int drivertype, int width, int height, int bits, bool fullscreen, bool stencilbuffer, bool vsync); + IrrLib::~IrrLib(); //Our moms wont clean up after us! + void IrrLib::ReadArchive(std::string file); + void IrrLib::LoadQ3Level(std::string q3level); + void IrrLib::MapPos(int x, int y, int z); //I think this moves the actual camera? + void IrrLib::MapPos(); + void IrrLib::AddFPSCam(); + void IrrLib::AddFPSCam(irr::f32 x, irr::f32 y, irr::f32 z); + void IrrLib::VisibleCursor(bool tf); + int IrrLib::GetFPSCount(); + bool IrrLib::DeviceIsRunning(); + bool IrrLib::IsActiveWindow(); + void IrrLib::BeginScene(); + void IrrLib::BeginScene(irr::video::SColor color); + void IrrLib::BeginScene(bool usebackBuffer, bool usezBuffer, irr::video::SColor color); + //TODO: Add one more for human readable colors and hex colors! + void IrrLib::DrawAll(); + void IrrLib::EndScene(); + void IrrLib::SetWindowCaption(irr::core::stringw str); + irr::core::stringw IrrLib::GetDriverName(); + //TODO: Make function to turn stringw to string and visa versa + void IrrLib::EndIrrlicht(); //Renamed from KillIrrlicht to EndIrrlicht + //TODO: Add logging + void IrrLib::KeyPress(char key); + char IrrLib::KeyPressed(); + irr::f32 getX(); + irr::f32 getY(); + irr::f32 getZ(); + //template std::string to_string (T t); + +}; + +#endif diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Stable Version/1.2.3/IrrLibBase.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Stable Version/1.2.3/IrrLibBase.cpp Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,59 @@ +/* + Irrlicht Library Wrapper + Created by: + Nathan Adams + Denzel Morris + Copyright (C) 2007 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ + +#include +#include +#include "IrrLibBase.h" +#include +#include + +using namespace irr; +using namespace core; +using namespace scene; +using namespace video; +using namespace io; +using namespace gui; + +using namespace std; + +void IrrLibBase::SetDriver(IVideoDriver* driver) //can be overloaded +{ + this->driver = driver; +} + +void IrrLibBase::SetSmgr(ISceneManager* smgr) +{ + this->smgr = smgr; +} + +std::string IrrLibBase::int_to_string (int t) +{ + std::stringstream ss; + ss << t; + return ss.str(); +} + +std::string IrrLibBase::stringw_to_stdstring(irr::core::stringw sw) +{ + std::stringstream ss; + ss << sw.c_str(); + return ss.str(); +} +irr::core::stringw IrrLibBase::stdstring_to_stringw(std::string ss) +{ + stringw tmpw(ss.c_str()); + return tmpw; +} + +void IrrLibBase::SetDevice(irr::IrrlichtDevice *device) +{ + this->device = device; +} diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Stable Version/1.2.3/IrrLibBase.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Stable Version/1.2.3/IrrLibBase.h Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,39 @@ +/* + Irrlicht Library Wrapper + Created by: + Nathan Adams + Denzel Morris + Copyright (C) 2007 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ + +#ifndef IRRLIBBASE_H +#define IRRLIBBASE_H + +/* We should include some basic functions */ +#include +/* include strings */ +#include + +/* We have to include Irrlichts libs */ +#include + +class IrrLibBase { + + protected: + irr::video::IVideoDriver* driver; + irr::scene::ISceneManager* smgr; + irr::IrrlichtDevice *device; + public: + void IrrLibBase::SetDriver(irr::video::IVideoDriver* driver); + void IrrLibBase::SetSmgr(irr::scene::ISceneManager* smgr); + void SetDevice(irr::IrrlichtDevice *device); + std::string int_to_string (int t); + std::string stringw_to_stdstring(irr::core::stringw sw); + irr::core::stringw stdstring_to_stringw(std::string ss); + +}; + +#endif diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Stable Version/1.2.3/IrrLibData.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Stable Version/1.2.3/IrrLibData.h Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,55 @@ +/* + Irrlicht Library Wrapper + Created by: + Nathan Adams + Denzel Morris + Copyright (C) 2007 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ + +/* + Purpose of this class is to handle abstract data + Such as: + Stacks + Queues + Dynamic memory(arrays) + + Begininers probably wont use this class too much, its used mostly for the advanced - expert programmer. + Howerver, IrrLib and other classes will make use of this class. +*/ + + +/*class Stack { + int cap; + int count; + request *the_stack; + public: + void InitStack(int stacksize); + void Push(request value); + request Top(); + request Pop(); + ~Stack (); + int thecount(); + private: + void Push(request *&the_stack, int& nCount, int& nCap, request& value); + + //void R +}; + +class Queue { + int cap; + int count; + request *the_queue; + public: + void InitQueue(int queuesize); + request Pop(); + request Front(); + request Back(); + ~Queue(); + int thecount(); + void Push(request value); + private: + void Push(request *the_stack, int nCount, int nCap, request value); +};*/ \ No newline at end of file diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Stable Version/1.2.3/IrrLibGUI.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Stable Version/1.2.3/IrrLibGUI.cpp Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,135 @@ +/* + Irrlicht Library Wrapper + Created by: + Nathan Adams + Denzel Morris + Copyright (C) 2007 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ + +#include +#include +#include + +#include "IrrLibGUI.h" + +using namespace irr; +using namespace core; +using namespace scene; +using namespace video; +using namespace io; +using namespace gui; + +using namespace std; + +IrrLibGUI::IrrLibGUI() +{ + //NA does it need to do anything at init? + this->nStaticText = 0; + //this->arrStaticText = new IGUIStaticText[10]; + //this->env = this->device->getGUIEnvironment(); //NA yes we do! +} + +IrrLibGUI::~IrrLibGUI() +{ + //NA Do we have to delete anything? +} + +void IrrLibGUI::SetEnv(IGUIEnvironment* env) +{ + this->env = env; +} + +void IrrLibGUI::Clear() +{ + this->env->clear(); +} + +void IrrLibGUI::DrawAll() +{ + this->env->drawAll(); +} + +void IrrLibGUI::AddToStaticArray(irr::gui::IGUIStaticText * addme) +{ + arrStaticText[nStaticText] = addme; + this->nStaticText++; +} + +void IrrLibGUI::AddStaticText() +{ + //rect(20,30,300,80), + this->env->addStaticText(L"Powered by IrrLib.", rect(20,30,300,80), true); +} + +int IrrLibGUI::AddStaticText(std::string message) +{ + irr::gui::IGUIStaticText * addthis; + stringw tmpw(message.c_str()); + addthis = this->env->addStaticText(tmpw.c_str(), rect(20,30,300,80), true); + AddToStaticArray(addthis); +} + +int IrrLibGUI::AddStaticText(std::string message, int x1, int y1, int x2, int y2) +{ + irr::gui::IGUIStaticText * addthis; + stringw tmpw(message.c_str()); + addthis = this->env->addStaticText(tmpw.c_str(), rect(x1,y1,x2,y2), true); + AddToStaticArray(addthis); +} + +int IrrLibGUI::AddStaticText(std::string message, int x1, int y1, int x2, int y2, bool border, bool wordwrap) +{ + irr::gui::IGUIStaticText * addthis; + stringw tmpw(message.c_str()); + addthis = this->env->addStaticText(tmpw.c_str(), rect(x1,y1,x2,y2), border, wordwrap); + AddToStaticArray(addthis); +} + +int IrrLibGUI::AddStaticText(std::string message, int x1, int y1, int x2, int y2, bool border, bool wordwrap, int id, bool fillbackground) +{ + irr::gui::IGUIStaticText * addthis; + stringw tmpw(message.c_str()); + addthis = this->env->addStaticText(tmpw.c_str(), rect(x1,y1,x2,y2), border, wordwrap, 0, id, fillbackground); + AddToStaticArray(addthis); +} + +int IrrLibGUI::AddStaticText(std::string message, const core::rect< s32 > &rectangle) +{ + irr::gui::IGUIStaticText * addthis; + stringw tmpw(message.c_str()); + addthis = this->env->addStaticText(tmpw.c_str(), rectangle); + AddToStaticArray(addthis); +} + +int IrrLibGUI::AddStaticText(std::string message, const core::rect< s32 > &rectangle, bool border, bool wordwrap) +{ + irr::gui::IGUIStaticText * addthis; + stringw tmpw(message.c_str()); + addthis = this->env->addStaticText(tmpw.c_str(), rectangle, border, wordwrap); + AddToStaticArray(addthis); +} + +int IrrLibGUI::AddStaticText(std::string message, const core::rect< s32 > &rectangle, bool border, bool wordwrap, int id, bool fillbackground) +{ + irr::gui::IGUIStaticText * addthis; + stringw tmpw(message.c_str()); + addthis = this->env->addStaticText(tmpw.c_str(), rectangle, border, wordwrap, 0, id, fillbackground); + AddToStaticArray(addthis); +} + +void IrrLibGUI::ChangeStaticText(int nstatictext, std::string message) +{ + stringw tmpw(message.c_str()); + this->arrStaticText[this->nStaticText-1]->setText(tmpw.c_str()); +} + +void IrrLibGUI::ChangeFont(std::string fontfile) +{ + IGUISkin* skin = this->env->getSkin(); + IGUIFont* font = this->env->getFont(fontfile.c_str()); + if (font) + skin->setFont(font); +} diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Stable Version/1.2.3/IrrLibGUI.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Stable Version/1.2.3/IrrLibGUI.h Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,52 @@ +/* + Irrlicht Library Wrapper + Created by: + Nathan Adams + Denzel Morris + Copyright (C) 2007 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ + +#ifndef IRRLIBGUI_H +#define IRRLIBGUI_H + +#include +#include +#include +#include "IrrLibBase.h" + +class IrrLibGUI: public IrrLibBase { + private: + irr::gui::IGUISkin* skin; + irr::gui::IGUIFont* font; + irr::gui::IGUIEnvironment* env; + //TODO: Create an array storing all messages + int nStaticText; + irr::gui::IGUIStaticText* arrStaticText[10]; + void AddToStaticArray(irr::gui::IGUIStaticText * addme); + + public: + IrrLibGUI(); + ~IrrLibGUI(); + void SetEnv(irr::gui::IGUIEnvironment* env); + void Clear(); + void DrawAll(); + //irr::gui::IGUIStaticText* IrrLibGUI::AddStaticText(); //NA eh a default text adder why not? + /* This is bad coding, we do not want to return an irrlicht object, we want to return a standard datatype because this class handles the GUI elements, not the user. */ + void AddStaticText(); //NA eh a default text adder why not? + int AddStaticText(std::string message); + int AddStaticText(std::string message, int x1, int y1, int x2, int y2); + int AddStaticText(std::string message, int x1, int y1, int x2, int y2, bool border, bool wordwrap); + int AddStaticText(std::string message, int x1, int y1, int x2, int y2, bool border, bool wordwrap, int id, bool fillbackground); + int AddStaticText(std::string message, const irr::core::rect< irr::s32 > &rectangle); + int AddStaticText(std::string message, const irr::core::rect< irr::s32 > &rectangle, bool border, bool wordwrap); + int AddStaticText(std::string message, const irr::core::rect< irr::s32 > &rectangle, bool border, bool wordwrap, int id, bool fillbackground); + void ChangeStaticText(int nstatictext, std::string message); + void ChangeFont(std::string fontfile); + +}; + + +#endif diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Stable Version/1.2.3/IrrSphere.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Stable Version/1.2.3/IrrSphere.cpp Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,63 @@ +/* + Irrlicht Library Wrapper + Created by Nathan Adams + Copyright (C) 2007 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ +#include +#include "IrrLib.h" +#include "IrrSphere.h" +#include +#include + +using namespace irr; +using namespace core; +using namespace scene; +using namespace video; +using namespace io; +using namespace gui; + +using namespace std; + +void IrrSphere::SetSmgr(irr::scene::ISceneManager* smgr){ + this->smgr = smgr; +} + +void IrrSphere::SetDriver(irr::video::IVideoDriver* driver){ + this->driver = driver; +} + +int IrrSphere::CreateNewSphereNode(int x, int y, int z, std::string texture, bool light){ + //TODO: Resize after 10, and add 10 more to the mix! + this->nodeNew[this->numNodes] = this->smgr->addSphereSceneNode(); + this->nodeNew[this->numNodes]->setPosition(core::vector3df(x,y,z)); + this->nodeNew[this->numNodes]->setMaterialTexture(0, this->driver->getTexture(texture.c_str())); + this->nodeNew[this->numNodes]->setMaterialFlag(video::EMF_LIGHTING, light); + this->numNodes++; + return this->numNodes--; + /*this->node = this->smgr->addSphereSceneNode(); + this->node->setPosition(core::vector3df(x,y,z)); + this->node->setMaterialTexture(0, this->driver->getTexture(texture.c_str())); + this->node->setMaterialFlag(video::EMF_LIGHTING, light);*/ +} + +irr::core::vector3df IrrSphere::GetSphereVector(int sphere){ + return this->nodeNew[sphere]->getPosition(); +} + +void IrrSphere::SetSphereVector(int sphere, irr::core::vector3df v){ + this->nodeNew[sphere]->setPosition(v); +} + +IrrSphere::IrrSphere(){ + this->numNodes = 0; +} + +IrrSphere::~IrrSphere(){ + for(int i = 0; i < numNodes; ++i) + delete this->nodeNew[i]; + + delete this->nodeNew; +} diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Stable Version/1.2.3/IrrSphere.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Stable Version/1.2.3/IrrSphere.h Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,43 @@ +/* + Irrlicht Library Wrapper + Created by: + Nathan Adams + Denzel Morris + Copyright (C) 2007 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ + +#ifndef IRRSPHERE_H +#define IRRSPHERE_H +/* We should include some basic functions */ +#include +/* include strings */ +#include + +/* We have to include Irrlichts libs */ +#include + +//#include "IrrLib.h" + + +class IrrSphere +{ + private: + irr::scene::ISceneNode* nodeNew[10]; + int numNodes; + irr::scene::ISceneManager* smgr; + irr::video::IVideoDriver* driver; + public: + void IrrSphere::SetDriver(irr::video::IVideoDriver* driver); + void IrrSphere::SetSmgr(irr::scene::ISceneManager* smgr); + int IrrSphere::CreateNewSphereNode(int x, int y, int z, std::string texture, bool light); //this is going to take my advanced C++ skillz! + irr::core::vector3df IrrSphere::GetSphereVector(int sphere); + void IrrSphere::SetSphereVector(int sphere, irr::core::vector3df v); + IrrSphere::IrrSphere(); + //IrrSphere::IrrSphere(IrrLib*); + IrrSphere::~IrrSphere(); +}; + +#endif diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Stable Version/1.2.3/IrrSprite.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Stable Version/1.2.3/IrrSprite.cpp Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,49 @@ +/* + Irrlicht Library Wrapper + Created by: + Nathan Adams + Denzel Morris + Copyright (C) 2007 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ + +#include +#include +#include + +#include "IrrLib.h" +//Libraries we create go here +//#include "IrrSphere.h" +#include "IrrColor.h" +#include "IrrSprite.h" +//#include "Irr2D.h" + +using namespace irr; +using namespace core; +using namespace scene; +using namespace video; +using namespace io; +using namespace gui; + +using namespace std; + +IrrSprite::IrrSprite() +{ + //do stuff +} + +IrrSprite::~IrrSprite() +{ + //delete stuff +} + +void IrrSprite::SetDriver(irr::video::IVideoDriver* driver) +{ + this->driver = driver; +} +void IrrSprite::SetSmgr(irr::scene::ISceneManager* smgr) +{ + this->smgr = smgr; +} diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Stable Version/1.2.3/IrrSprite.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Stable Version/1.2.3/IrrSprite.h Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,45 @@ +/* + Irrlicht Library Wrapper + Created by: + Nathan Adams + Denzel Morris + Copyright (C) 2007 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ + +#ifndef IRRSPRITE_H +#define IRRSPRITE_H + +/* We should include some basic functions */ +#include +/* include strings */ +#include + +/* We have to include Irrlichts libs */ +#include + +//#include "IrrSphere.h" +#include "IrrColor.h" +//#include "Irr2D.h" +//#include "IrrSprite.h" + +//Start class +class IrrSprite { + + private: + + irr::video::IVideoDriver* driver; + irr::scene::ISceneManager* smgr; + public: + IrrSprite::IrrSprite(); + IrrSprite::~IrrSprite(); + void IrrSprite::SetDriver(irr::video::IVideoDriver* driver); + void IrrSprite::SetSmgr(irr::scene::ISceneManager* smgr); + +// I forgot a semicolon here....and it wasn't compling +//Thats 1 bad thing about OOP if there is an error you don't know where the @#$@# the problem is! +}; + +#endif diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Stable Version/1.2.3/README --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Stable Version/1.2.3/README Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,13 @@ + Irrlicht Library Wrapper + Created by Nathan Adams + Version 1.2.3 + Copyright (C) 2007 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. + + Please leave all files intact if you redistrubte this software. + +How to use: + Add all the files to your Irrlicht project, you could compile it into a DLL if you wanted too, but for now just add all the files to your project. + Then inside your complier add the directory that you have the IrrLib files and use #include "IrrLib.h" to refrence it, and you are good to go! \ No newline at end of file diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Stable Version/1.2.4/CHANGES --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Stable Version/1.2.4/CHANGES Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,25 @@ +Version 1.2 ++ Added a Irr3DLib class that will control all 3D objects ++ Also Added a Irr2D class that works on the same concept. ++ IrrSphere is now owned by Irr3DLib ++ Updated the examples using the latest code +Version 1.2.2 ++ Added IrrEventReciever to handle all input + - Still under work ++ Fixed some misc coding bugs ++ Added template class ++ Added sprite class ++ Added GUI class +Version 1.2.3 ++ IrrEventReciver now works as advertised ++ Baseclass is now being used + + A couple somewhat-useful functions + + int_to_string + + stringw_to_stdstring + + stdstring_to_stringw ++ GUI elements + + Static text is working ++ Under construction for a data type class +Version 1.2.4 ++ Implmented color codes accessiable through the class + + IrrLib.Color.RED (ect) \ No newline at end of file diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Stable Version/1.2.4/CREDITS --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Stable Version/1.2.4/CREDITS Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,7 @@ +IrrLib +Created by + Nathan Adams + Denzel Morris + +From #irrlicht + Acid \ No newline at end of file diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Stable Version/1.2.4/Irr2D.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Stable Version/1.2.4/Irr2D.cpp Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,61 @@ +/* + Irrlicht Library Wrapper + Created by: + Nathan Adams + Denzel Morris + Copyright (C) 2007 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ + +#include +//#include "IrrLib.h" +//#include "IrrSphere.h" //You probably aren't going to be using 3D objects in a 2D environment! +#include +#include + +#include "Irr2D.h" +#include "IrrSprite.h" + +using namespace irr; +using namespace core; +using namespace scene; +using namespace video; +using namespace io; +using namespace gui; + +using namespace std; + +Irr2D::Irr2D(){ + this->numTextures = 0; + //NA Should we set textures to new +} + +Irr2D::~Irr2D(){ + for(int i = 0; i < numTextures; ++i) + delete this->textures[i]; + + delete this->textures; +} + +void Irr2D::SetSmgr(irr::scene::ISceneManager* smgr){ + this->smgr = smgr; + Sprite.SetSmgr(smgr); +} + +void Irr2D::SetDriver(irr::video::IVideoDriver* driver){ + this->driver = driver; + Sprite.SetDriver(driver); +} + +void Irr2D::LoadTexturemap(std::string file){ + this->texturemap = driver->getTexture(file.c_str()); +} + +int Irr2D::LoadTexture(std::string file){ + this->textures[this->numTextures] = driver->getTexture(file.c_str()); + this->numTextures++; + return numTextures--; +} + diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Stable Version/1.2.4/Irr2D.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Stable Version/1.2.4/Irr2D.h Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,47 @@ +/* + Irrlicht Library Wrapper + Created by: + Nathan Adams + Denzel Morris + Copyright (C) 2007 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ + +#ifndef IRR2D_H +#define IRR2D_H +/* We should include some basic functions */ +#include +/* include strings */ +#include + +/* We have to include Irrlichts libs */ +#include + +//#include "IrrLib.h" +#include "IrrSprite.h" + +class Irr2D { + private: + irr::scene::ISceneManager* smgr; + irr::video::IVideoDriver* driver; + irr::video::ITexture* texturemap; + int numTextures; + irr::video::ITexture* textures[10]; + public: + //Irr2D::Irr2D(); + IrrSprite Sprite; + Irr2D::Irr2D(); + Irr2D::~Irr2D(); + void Irr2D::SetDriver(irr::video::IVideoDriver* driver); + void Irr2D::SetSmgr(irr::scene::ISceneManager* smgr); + void Irr2D::LoadTexturemap(std::string file); + int Irr2D::LoadTexture(std::string file); + void Irr2D::DrawImage(int texture, const irr::core::position2d & destPos); + void Irr2D::DrawImage(const irr::core::position2d & destPos, const irr::core::rect & sourceRect, const irr::core::rect * clipRect, irr::video::SColor color, bool useAlphaChannelOfTexture); + void Irr2D::DrawLine(const irr::core::position2d & start, const irr::core::position2d & end, irr::video::SColor color); +}; + +#endif + diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Stable Version/1.2.4/Irr3D.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Stable Version/1.2.4/Irr3D.cpp Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,52 @@ +/* + Irrlicht Library Wrapper + Created by: + Nathan Adams + Denzel Morris + Copyright (C) 2007 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ + +#include +#include + +//#include "IrrLib.h" +//Libraries we create go here +#include "IrrSphere.h" +//#include "IrrColor.h" +#include "Irr3D.h" +#include +//#include "Irr2D.h" + +using namespace irr; +using namespace core; +using namespace scene; +using namespace video; +using namespace io; +using namespace gui; + +using namespace std; + +void Irr3D::SetDriver(irr::video::IVideoDriver* driver) //so much for copying and pasting code from the header file +{ + this->driver = driver; + Sphere.SetDriver(driver); +} + +void Irr3D::SetSmgr(irr::scene::ISceneManager* smgr) +{ + this->smgr = smgr; + Sphere.SetSmgr(smgr); +} + +Irr3D::Irr3D() +{ + //do stuff here! +} + +Irr3D::~Irr3D() +{ + //delete stuff here! +} diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Stable Version/1.2.4/Irr3D.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Stable Version/1.2.4/Irr3D.h Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,44 @@ +/* + Irrlicht Library Wrapper + Created by: + Nathan Adams + Denzel Morris + Copyright (C) 2007 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ + +#ifndef IRR3D_H +#define IRR3D_H + +/* We should include some basic functions */ +#include +/* include strings */ +#include + +/* We have to include Irrlichts libs */ +#include + +#include "IrrSphere.h" +//#include "IrrColor.h" +//#include "Irr3D.h" +//#include "Irr2D.h" This is a 3D class not 2D +/* However due to Irrlciht's nature mixing 2D with 3D is possible */ + +//Start class +class Irr3D { + + private: + + irr::video::IVideoDriver* driver; + irr::scene::ISceneManager* smgr; + public: + IrrSphere Sphere; + Irr3D::Irr3D(); + Irr3D::~Irr3D(); + void Irr3D::SetDriver(irr::video::IVideoDriver* driver); + void Irr3D::SetSmgr(irr::scene::ISceneManager* smgr); +}; + +#endif diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Stable Version/1.2.4/IrrColor.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Stable Version/1.2.4/IrrColor.cpp Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,102 @@ +/* + Irrlicht Library Wrapper + Created by: + Nathan Adams + Denzel Morris + Copyright (C) 2007 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ + +#include +#include +#include + +//#include "IrrLib.h" +#include "IrrColor.h" + +using namespace irr; +using namespace core; +using namespace scene; +using namespace video; +using namespace io; +using namespace gui; + +using namespace std; + +void IrrColor::Init(){ + /*SColor * temp; + temp = new SColor(alpha, 255, 0, 0); + this->RED = temp; + delete temp;*/ + this->RED = SColor(alpha, 255, 0, 0); + this->ORANGE = SColor(alpha, 255, 165, 0); + this->YELLOW = SColor(alpha, 255, 255, 0); + this->GREEN = SColor(alpha, 0, 255, 0); + this->BLUE = SColor(alpha, 0, 0, 255); + this->DARK_GREEN = SColor(alpha, 0, 100, 0); + this->PINK = SColor(alpha, 255, 192, 203); + this->GREY = SColor(alpha, 190, 190, 190); +} + +IrrColor::~IrrColor(){ + //delete this->RED; +} + +IrrColor::IrrColor(){ + this->alpha = 255; + Init(); +} + +IrrColor::IrrColor(irr::u32 alpha){ + this->alpha = alpha; + Init(); +} + +int IrrColor::getAlpha(){ + return this->alpha; +} + +void IrrColor::setAlpha(int alpha){ + this->alpha = alpha; +} + +SColor IrrColor::returnColor(std::string color){ + int nColor = -1; + if (color == "red") + nColor = 1; + else if (color == "green") + nColor = 2; + else if (color == "blue") + nColor = 3; + else if (color == "dark green") + nColor = 4; + else if (color == "pink") + nColor = 5; + else if (color == "grey") + nColor = 6; + switch (nColor){ + case 1: + return SColor(255, 255, 0, 0); + break; + case 2: + return SColor(255, 0, 255, 0); + break; + case 3: + return SColor(255, 0, 0, 255); + break; + case 4: + return SColor(255, 0, 50, 0); + break; + case 5: + return SColor(255, 255, 10, 255); + break; + case 6: + return SColor(255,200,200,200); + break; + default: + return SColor(255,200,200,200); + break; + }// TODO: Make this function modular +} diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Stable Version/1.2.4/IrrColor.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Stable Version/1.2.4/IrrColor.h Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,51 @@ +/* + Irrlicht Library Wrapper + Created by: + Nathan Adams + Denzel Morris + Copyright (C) 2007 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ + +#ifndef IRRCOLOR_H +#define IRRCOLOR_H + +#include +#include +#include "irrlicht.h" +//#include "IrrLib.h" + +class IrrColor { + private: + irr::u32 alpha; + void Init(); + //who knows? + public: + //irr::video::SColor(alpha, 255, 0, 0); + irr::video::SColor RED; + irr::video::SColor ORANGE; + irr::video::SColor YELLOW; + irr::video::SColor GREEN; + irr::video::SColor BLUE; + irr::video::SColor DARK_GREEN; + irr::video::SColor PINK; + irr::video::SColor GREY; + /*const ORANGE = irr::video::SColor(alpha, 255, 165, 0); + const YELLOW = irr::video::SColor(alpha, 255, 255, 0); + const GREEN = irr::video::SColor(alpha, 0, 255, 0); + const BLUE = irr::video::SColor(alpha, 0, 0, 255); + const DARK_GREEN = irr::video::SColor(alpha, 0, 100, 0); + const PINK = irr::video::SColor(alpha, 255, 192, 203); + const GREY = irr::video::Scolor(alpha, 190, 190, 190);*/ + //void IrrColor::test(); + IrrColor(); + IrrColor(irr::u32 alpha); + ~IrrColor(); + int getAlpha(); + void setAlpha(int alpha); + irr::video::SColor IrrColor::returnColor(std::string color); +}; + +#endif diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Stable Version/1.2.4/IrrEventReciever.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Stable Version/1.2.4/IrrEventReciever.cpp Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,45 @@ +/* + Irrlicht Library Wrapper + Created by: + Nathan Adams + Denzel Morris + Copyright (C) 2007 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ + +#include "IrrEventReciever.h" +//#include "IrrLib.h" +#include +#include + +using namespace irr; +using namespace core; +using namespace scene; +using namespace video; +using namespace io; +using namespace gui; + +using namespace std; + +/*void IrrEventReciever::setIrrLib(IrrLib& IrrLib) +{ + this.callingIrrLib = IrrLib; +}*/ + +bool IrrEventReciever::OnEvent(SEvent event) +{ + if (event.EventType == irr::EET_KEY_INPUT_EVENT) { + if (!event.KeyInput.PressedDown){ + this->keyStates[event.KeyInput.Key] = false; + //cout << "Key was not hit " << this->keyStates[event.KeyInput.Key] << endl; + } + else{ + + this->keyStates[event.KeyInput.Key] = true; + //cout << "Key was hit: " << event.KeyInput.Key << " " << this->keyStates[event.KeyInput.Key] << endl; + } + } + return false; +} diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Stable Version/1.2.4/IrrEventReciever.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Stable Version/1.2.4/IrrEventReciever.h Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,30 @@ +/* + Irrlicht Library Wrapper + Created by: + Nathan Adams + Denzel Morris + Copyright (C) 2007 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ + +#ifndef IRREVENTRECIEVER_H +#define IRREVENTRECIEVER_H + +//#include "IrrLib.h" +#include +#include "IrrLibBase.h" + + +class IrrEventReciever : public irr::IEventReceiver, public IrrLibBase +{ + //private: + //IrrLib callingIrrLib; + public: + bool keyStates[irr::KEY_KEY_CODES_COUNT]; + //void setIrrLib(IrrLib& IrrLib) + virtual bool OnEvent(irr::SEvent event); +}; + +#endif diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Stable Version/1.2.4/IrrLib.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Stable Version/1.2.4/IrrLib.cpp Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,266 @@ +/* + Irrlicht Library Wrapper + Created by: + Nathan Adams + Denzel Morris + Copyright (C) 2007 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ + +#include +#include +#include +#include +#include + +#include "IrrLib.h" +//Libraries we create go here +//#include "IrrSphere.h" +#include "IrrColor.h" +//#include "Irr2D.h" + +using namespace irr; +using namespace core; +using namespace scene; +using namespace video; +using namespace io; +using namespace gui; + +using namespace std; + +//TODO: Create own class for handling inputs! + + +/*IrrLib::IrrLib(MastEventReceiver & receiver){ + this->device = createDevice(EDT_SOFTWARE, dimension2d(640, 480), 16, false, false, false, &receiver); + if (this->device == 0) + exit(1); + IrrLib::Init(); +}*/ + +IrrLib::IrrLib(){ + this->device = createDevice(EDT_SOFTWARE, dimension2d(640, 480), 16, false, false, false, &this->IrrEvent); + if (this->device == 0) + exit(1); + IrrLib::Init(); +} + +IrrLib::IrrLib(video::E_DRIVER_TYPE drivertype, core::dimension2d & res, u32 bits, bool fullscreen, bool stencilbuffer, bool vsync){ + //MyEventReceiver receiver; + this->device = createDevice(drivertype, res, bits, fullscreen, stencilbuffer, vsync, &this->IrrEvent); + if (this->device == 0) + exit(1); + IrrLib::Init(); +} + +IrrLib::IrrLib(int nDrivertype, int width, int height, int bits, bool fullscreen, bool stencilbuffer, bool vsync){ + //MyEventReceiver receiver; + video::E_DRIVER_TYPE drivertype; + switch (nDrivertype){ + case 0: //TODO: finish this switch case + drivertype = EDT_NULL; + break; + case 1: + drivertype = EDT_SOFTWARE; + break; + case 2: + drivertype = EDT_BURNINGSVIDEO; + break; + case 3: + drivertype = EDT_OPENGL; + break; + case 4: + drivertype = EDT_DIRECT3D8; + //*Note: It seems as Microsoft has stoped supporting DX 8.1, so you can not compile it into Irrlicht engine anymore + //TODO: Find how to detect if DX is complied into Irrlicht + //TODO: Find how to detecht for linux + break; + case 5: + drivertype = EDT_DIRECT3D9; + break; + default: + drivertype = EDT_SOFTWARE; + break; + } + this->device = createDevice(drivertype, dimension2d(width, height), bits, fullscreen, stencilbuffer, vsync, &this->IrrEvent); + if (this->device == 0) + exit(1); + IrrLib::Init(); +} + +IrrLib::~IrrLib (){ //Our moms wont clean up after us! + //Although I'm sure Irrlicht does this for us already, its always a good idea to check! + /*if (this->device != NULL) + delete this->device; + if (this->driver != NULL) + delete this->driver; + if (this->smgr != NULL) + delete this->smgr; + if (this->mesh != NULL) + delete this->mesh; + if (this->node != NULL) + delete this->node;*/ //it seems Irrlicht picks up after us... + //however we created newNodes, now we need to delete it! +} + +void IrrLib::Init(){ + //this->numNodes = 0; + //this->nodeNew = new ISceneNode[10]; + //this->env->addStaticText(L"Transparent Control:", rect(20,30,300,80), true); + this->env = this->device->getGUIEnvironment(); + this->driver = this->device->getVideoDriver(); + this->smgr = this->device->getSceneManager(); + Irr3DLib.SetSmgr(this->smgr); + Irr3DLib.SetDriver(this->driver); + Irr2DLib.SetSmgr(this->smgr); + Irr2DLib.SetDriver(this->driver); + GUI.SetEnv(this->env); + IrrEvent.SetDevice(this->device); + this->timer = this->device->getTimer(); + tick = this->timer->getRealTime(); +} + +void IrrLib::ReadArchive(std::string file){ + this->device->getFileSystem()->addZipFileArchive(file.c_str()); +} + +void IrrLib::LoadQ3Level(std::string q3level){ + this->mesh = this->smgr->getMesh(q3level.c_str()); + this->node = 0; + if (this->mesh) + this->node = this->smgr->addOctTreeSceneNode(this->mesh->getMesh(0), 0, -1, 128); +} + +void IrrLib::MapPos(int x, int y, int z){ + if (this->node) + this->node->setPosition(core::vector3df(x, y, z)); +} + +void IrrLib::MapPos(){ + if (this->node) + this->node->setPosition(core::vector3df(0, 0, 0)); +} + +void IrrLib::AddFPSCam(){ + this->cam = this->smgr->addCameraSceneNodeFPS(); +} + +void IrrLib::AddFPSCam(f32 x, f32 y, f32 z) +{ + this->cam = this->smgr->addCameraSceneNodeFPS(); + this->cam->setPosition(irr::core::vector3df(x, y, z)); +} + +void IrrLib::VisibleCursor(bool tf){ + if (tf == false) + this->device->getCursorControl()->setVisible(false); + else + this->device->getCursorControl()->setVisible(true); +} + +int IrrLib::GetFPSCount(){ + return this->driver->getFPS(); +} + +bool IrrLib::DeviceIsRunning(){ + return this->device->run(); +} + +bool IrrLib::IsActiveWindow(){ + return this->device->isWindowActive(); +} + +void IrrLib::BeginScene(){ + this->driver->beginScene(true, true, video::SColor(0,200,200,200)); +} + +void IrrLib::BeginScene(irr::video::SColor color){ + this->driver->beginScene(true, true, color); +} + +void IrrLib::BeginScene(bool usebackBuffer, bool usezBuffer, irr::video::SColor color){ + this->driver->beginScene(usebackBuffer, usezBuffer, color); +} + +void IrrLib::DrawAll(){ + this->smgr->drawAll(); + this->env->drawAll(); + //this->device->getGUIEnvironment()->drawAll(); + } + +void IrrLib::EndScene(){ + this->driver->endScene(); +} + +void IrrLib::SetWindowCaption(stringw str){ + this->device->setWindowCaption(str.c_str()); +} + +irr::core::stringw IrrLib::GetDriverName(){ + return this->driver->getName(); +} + +void IrrLib::EndIrrlicht(){ + if(this->device != NULL){ + this->device->drop(); + this->device = NULL; + } +} + +void IrrLib::KeyPress(char key){ + this->key = key; +} + +char IrrLib::KeyPressed(){ + return key; +} + +irr::f32 IrrLib::getX(){ + return this->smgr->getActiveCamera()->getPosition().X; +} + +irr::f32 IrrLib::getY(){ + return this->smgr->getActiveCamera()->getPosition().Y; +} + +irr::f32 IrrLib::getZ(){ + return this->smgr->getActiveCamera()->getPosition().Z; +} + +bool IrrLib::CheckGameLoop(){ + u32 now; + now = this->timer->getRealTime(); + if ((now - this->tick) >= 30){ + //this->tick == time (NULL); + return true; + } else { + return false; + } +} + +bool IrrLib::CheckGameLoop(u32 ms){ + u32 now; + now = this->timer->getRealTime(); + if ((now - this->tick) >= ms){ + this->tick = now; + return true; + } else { + return false; + } +} + +void IrrLib::Exit() +{ + this->device->closeDevice(); +} + +//template std::string IrrLib::to_string (T t) +/*std::string IrrLib::int_to_string (int t) +{ + std::stringstream ss; + ss << t; + return ss.str(); +}*/ +// This is in the base class now, every class that decends from that class has this ability. diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Stable Version/1.2.4/IrrLib.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Stable Version/1.2.4/IrrLib.h Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,118 @@ +/* + Irrlicht Library Wrapper + Created by: + Nathan Adams + Denzel Morris + Copyright (C) 2007 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ + +#ifndef IRRLIB_H +#define IRRLIB_H + +/* We should include some basic functions */ +#include +/* include strings */ +#include +#include +#include + +/* We have to include Irrlichts libs */ + + +#include "Irr3D.h" +#include "IrrColor.h" +#include "IrrLibGUI.h" +#include "IrrEventReciever.h" +#include "Irr2D.h" +#include "IrrLibBase.h" + +//Start class +class IrrLib: public IrrLibBase { + + private: + /* Create an Irrlicht device as private because the class should handle + All irrlicht interaction */ + irr::IrrlichtDevice *device; + // Tells Irrlicht what driver to use + //video::E_DRIVER_TYPE driverType; + + /* + Get a pointer to the video driver and the SceneManager so that + we do not always have to write device->getVideoDriver() and + device->getSceneManager(). + */ + irr::video::IVideoDriver* driver; + irr::scene::ISceneManager* smgr; + irr::gui::IGUIEnvironment* env; + + /* + Get a pointer to the 'mesh' aka the level. + Note: This is for Quake3 levels, ie bsp maps. + */ + irr::scene::IAnimatedMesh* mesh; + irr::scene::ISceneNode* node; + irr::scene::ISceneNode * tempNode; //use this to store nodeNew's data so we can resize it + irr::scene::ICameraSceneNode * cam; + char key; + + + void IrrLib::Init(); + /*friend class IrrColor; + friend class Irr2DLib; + friend class Sphere;*/ + friend class IrrEventReciever; + irr::u32 tick; + irr::ITimer* timer; + public: + //IrrSphere Sphere; //This has to be public to be able to access the Sphere class + /* IrrSphere is now in Irr3D class */ + //Prehaps put this into a IrrLib3D class? + Irr3D Irr3DLib; + IrrColor Color; //Color class...not much of a class but lets keep it OO + Irr2D Irr2DLib; //1/2 variable to be labeled like this due to variables not able to begin with a number + IrrLibGUI GUI; + IrrEventReciever IrrEvent; + IrrLib::IrrLib(); + //IrrLib::IrrLib(MastEventReceiver & receiver); + IrrLib::IrrLib(irr::video::E_DRIVER_TYPE drivertype, irr::core::dimension2d & res, irr::u32 bits, bool fullscreen, bool stencilbuffer, bool vsync); + IrrLib::IrrLib(int drivertype, int width, int height, int bits, bool fullscreen, bool stencilbuffer, bool vsync); + IrrLib::~IrrLib(); //Our moms wont clean up after us! + void IrrLib::ReadArchive(std::string file); + void IrrLib::LoadQ3Level(std::string q3level); + void IrrLib::MapPos(int x, int y, int z); //I think this moves the actual camera? + void IrrLib::MapPos(); + void IrrLib::AddFPSCam(); + void IrrLib::AddFPSCam(irr::f32 x, irr::f32 y, irr::f32 z); + void IrrLib::VisibleCursor(bool tf); + int IrrLib::GetFPSCount(); + bool IrrLib::DeviceIsRunning(); + bool IrrLib::IsActiveWindow(); + void IrrLib::BeginScene(); + void IrrLib::BeginScene(irr::video::SColor color); + //void IrrLib::BeginScene(irr::video::SColor * color); + void IrrLib::BeginScene(bool usebackBuffer, bool usezBuffer, irr::video::SColor color); + //TODO: Add one more for human readable colors and hex colors! + void IrrLib::DrawAll(); + void IrrLib::EndScene(); + void IrrLib::SetWindowCaption(irr::core::stringw str); + irr::core::stringw IrrLib::GetDriverName(); + //TODO: Make function to turn stringw to string and visa versa + void IrrLib::EndIrrlicht(); //Renamed from KillIrrlicht to EndIrrlicht + //TODO: Add logging + void IrrLib::KeyPress(char key); + char IrrLib::KeyPressed(); + irr::f32 getX(); + irr::f32 getY(); + irr::f32 getZ(); + bool CheckGameLoop(); + bool CheckGameLoop(irr::u32 ms); + void Exit(); + //void EndGameLoop(); + //template std::string to_string (T t); + +}; + +#endif diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Stable Version/1.2.4/IrrLibBase.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Stable Version/1.2.4/IrrLibBase.cpp Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,59 @@ +/* + Irrlicht Library Wrapper + Created by: + Nathan Adams + Denzel Morris + Copyright (C) 2007 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ + +#include +#include +#include "IrrLibBase.h" +#include +#include + +using namespace irr; +using namespace core; +using namespace scene; +using namespace video; +using namespace io; +using namespace gui; + +using namespace std; + +void IrrLibBase::SetDriver(IVideoDriver* driver) //can be overloaded +{ + this->driver = driver; +} + +void IrrLibBase::SetSmgr(ISceneManager* smgr) +{ + this->smgr = smgr; +} + +std::string IrrLibBase::int_to_string (int t) +{ + std::stringstream ss; + ss << t; + return ss.str(); +} + +std::string IrrLibBase::stringw_to_stdstring(irr::core::stringw sw) +{ + std::stringstream ss; + ss << sw.c_str(); + return ss.str(); +} +irr::core::stringw IrrLibBase::stdstring_to_stringw(std::string ss) +{ + stringw tmpw(ss.c_str()); + return tmpw; +} + +void IrrLibBase::SetDevice(irr::IrrlichtDevice *device) +{ + this->device = device; +} diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Stable Version/1.2.4/IrrLibBase.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Stable Version/1.2.4/IrrLibBase.h Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,39 @@ +/* + Irrlicht Library Wrapper + Created by: + Nathan Adams + Denzel Morris + Copyright (C) 2007 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ + +#ifndef IRRLIBBASE_H +#define IRRLIBBASE_H + +/* We should include some basic functions */ +#include +/* include strings */ +#include + +/* We have to include Irrlichts libs */ +#include + +class IrrLibBase { + + protected: + irr::video::IVideoDriver* driver; + irr::scene::ISceneManager* smgr; + irr::IrrlichtDevice *device; + public: + void IrrLibBase::SetDriver(irr::video::IVideoDriver* driver); + void IrrLibBase::SetSmgr(irr::scene::ISceneManager* smgr); + void SetDevice(irr::IrrlichtDevice *device); + std::string int_to_string (int t); + std::string stringw_to_stdstring(irr::core::stringw sw); + irr::core::stringw stdstring_to_stringw(std::string ss); + +}; + +#endif diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Stable Version/1.2.4/IrrLibData.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Stable Version/1.2.4/IrrLibData.h Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,55 @@ +/* + Irrlicht Library Wrapper + Created by: + Nathan Adams + Denzel Morris + Copyright (C) 2007 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ + +/* + Purpose of this class is to handle abstract data + Such as: + Stacks + Queues + Dynamic memory(arrays) + + Begininers probably wont use this class too much, its used mostly for the advanced - expert programmer. + Howerver, IrrLib and other classes will make use of this class. +*/ + + +/*class Stack { + int cap; + int count; + request *the_stack; + public: + void InitStack(int stacksize); + void Push(request value); + request Top(); + request Pop(); + ~Stack (); + int thecount(); + private: + void Push(request *&the_stack, int& nCount, int& nCap, request& value); + + //void R +}; + +class Queue { + int cap; + int count; + request *the_queue; + public: + void InitQueue(int queuesize); + request Pop(); + request Front(); + request Back(); + ~Queue(); + int thecount(); + void Push(request value); + private: + void Push(request *the_stack, int nCount, int nCap, request value); +};*/ \ No newline at end of file diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Stable Version/1.2.4/IrrLibGUI.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Stable Version/1.2.4/IrrLibGUI.cpp Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,135 @@ +/* + Irrlicht Library Wrapper + Created by: + Nathan Adams + Denzel Morris + Copyright (C) 2007 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ + +#include +#include +#include + +#include "IrrLibGUI.h" + +using namespace irr; +using namespace core; +using namespace scene; +using namespace video; +using namespace io; +using namespace gui; + +using namespace std; + +IrrLibGUI::IrrLibGUI() +{ + //NA does it need to do anything at init? + this->nStaticText = 0; + //this->arrStaticText = new IGUIStaticText[10]; + //this->env = this->device->getGUIEnvironment(); //NA yes we do! +} + +IrrLibGUI::~IrrLibGUI() +{ + //NA Do we have to delete anything? +} + +void IrrLibGUI::SetEnv(IGUIEnvironment* env) +{ + this->env = env; +} + +void IrrLibGUI::Clear() +{ + this->env->clear(); +} + +void IrrLibGUI::DrawAll() +{ + this->env->drawAll(); +} + +void IrrLibGUI::AddToStaticArray(irr::gui::IGUIStaticText * addme) +{ + arrStaticText[nStaticText] = addme; + this->nStaticText++; +} + +void IrrLibGUI::AddStaticText() +{ + //rect(20,30,300,80), + this->env->addStaticText(L"Powered by IrrLib.", rect(20,30,300,80), true); +} + +int IrrLibGUI::AddStaticText(std::string message) +{ + irr::gui::IGUIStaticText * addthis; + stringw tmpw(message.c_str()); + addthis = this->env->addStaticText(tmpw.c_str(), rect(20,30,300,80), true); + AddToStaticArray(addthis); +} + +int IrrLibGUI::AddStaticText(std::string message, int x1, int y1, int x2, int y2) +{ + irr::gui::IGUIStaticText * addthis; + stringw tmpw(message.c_str()); + addthis = this->env->addStaticText(tmpw.c_str(), rect(x1,y1,x2,y2), true); + AddToStaticArray(addthis); +} + +int IrrLibGUI::AddStaticText(std::string message, int x1, int y1, int x2, int y2, bool border, bool wordwrap) +{ + irr::gui::IGUIStaticText * addthis; + stringw tmpw(message.c_str()); + addthis = this->env->addStaticText(tmpw.c_str(), rect(x1,y1,x2,y2), border, wordwrap); + AddToStaticArray(addthis); +} + +int IrrLibGUI::AddStaticText(std::string message, int x1, int y1, int x2, int y2, bool border, bool wordwrap, int id, bool fillbackground) +{ + irr::gui::IGUIStaticText * addthis; + stringw tmpw(message.c_str()); + addthis = this->env->addStaticText(tmpw.c_str(), rect(x1,y1,x2,y2), border, wordwrap, 0, id, fillbackground); + AddToStaticArray(addthis); +} + +int IrrLibGUI::AddStaticText(std::string message, const core::rect< s32 > &rectangle) +{ + irr::gui::IGUIStaticText * addthis; + stringw tmpw(message.c_str()); + addthis = this->env->addStaticText(tmpw.c_str(), rectangle); + AddToStaticArray(addthis); +} + +int IrrLibGUI::AddStaticText(std::string message, const core::rect< s32 > &rectangle, bool border, bool wordwrap) +{ + irr::gui::IGUIStaticText * addthis; + stringw tmpw(message.c_str()); + addthis = this->env->addStaticText(tmpw.c_str(), rectangle, border, wordwrap); + AddToStaticArray(addthis); +} + +int IrrLibGUI::AddStaticText(std::string message, const core::rect< s32 > &rectangle, bool border, bool wordwrap, int id, bool fillbackground) +{ + irr::gui::IGUIStaticText * addthis; + stringw tmpw(message.c_str()); + addthis = this->env->addStaticText(tmpw.c_str(), rectangle, border, wordwrap, 0, id, fillbackground); + AddToStaticArray(addthis); +} + +void IrrLibGUI::ChangeStaticText(int nstatictext, std::string message) +{ + stringw tmpw(message.c_str()); + this->arrStaticText[this->nStaticText-1]->setText(tmpw.c_str()); +} + +void IrrLibGUI::ChangeFont(std::string fontfile) +{ + IGUISkin* skin = this->env->getSkin(); + IGUIFont* font = this->env->getFont(fontfile.c_str()); + if (font) + skin->setFont(font); +} diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Stable Version/1.2.4/IrrLibGUI.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Stable Version/1.2.4/IrrLibGUI.h Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,52 @@ +/* + Irrlicht Library Wrapper + Created by: + Nathan Adams + Denzel Morris + Copyright (C) 2007 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ + +#ifndef IRRLIBGUI_H +#define IRRLIBGUI_H + +#include +#include +#include +#include "IrrLibBase.h" + +class IrrLibGUI: public IrrLibBase { + private: + irr::gui::IGUISkin* skin; + irr::gui::IGUIFont* font; + irr::gui::IGUIEnvironment* env; + //TODO: Create an array storing all messages + int nStaticText; + irr::gui::IGUIStaticText* arrStaticText[10]; + void AddToStaticArray(irr::gui::IGUIStaticText * addme); + + public: + IrrLibGUI(); + ~IrrLibGUI(); + void SetEnv(irr::gui::IGUIEnvironment* env); + void Clear(); + void DrawAll(); + //irr::gui::IGUIStaticText* IrrLibGUI::AddStaticText(); //NA eh a default text adder why not? + /* This is bad coding, we do not want to return an irrlicht object, we want to return a standard datatype because this class handles the GUI elements, not the user. */ + void AddStaticText(); //NA eh a default text adder why not? + int AddStaticText(std::string message); + int AddStaticText(std::string message, int x1, int y1, int x2, int y2); + int AddStaticText(std::string message, int x1, int y1, int x2, int y2, bool border, bool wordwrap); + int AddStaticText(std::string message, int x1, int y1, int x2, int y2, bool border, bool wordwrap, int id, bool fillbackground); + int AddStaticText(std::string message, const irr::core::rect< irr::s32 > &rectangle); + int AddStaticText(std::string message, const irr::core::rect< irr::s32 > &rectangle, bool border, bool wordwrap); + int AddStaticText(std::string message, const irr::core::rect< irr::s32 > &rectangle, bool border, bool wordwrap, int id, bool fillbackground); + void ChangeStaticText(int nstatictext, std::string message); + void ChangeFont(std::string fontfile); + +}; + + +#endif diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Stable Version/1.2.4/IrrSphere.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Stable Version/1.2.4/IrrSphere.cpp Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,63 @@ +/* + Irrlicht Library Wrapper + Created by Nathan Adams + Copyright (C) 2007 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ +#include +#include "IrrLib.h" +#include "IrrSphere.h" +#include +#include + +using namespace irr; +using namespace core; +using namespace scene; +using namespace video; +using namespace io; +using namespace gui; + +using namespace std; + +void IrrSphere::SetSmgr(irr::scene::ISceneManager* smgr){ + this->smgr = smgr; +} + +void IrrSphere::SetDriver(irr::video::IVideoDriver* driver){ + this->driver = driver; +} + +int IrrSphere::CreateNewSphereNode(int x, int y, int z, std::string texture, bool light){ + //TODO: Resize after 10, and add 10 more to the mix! + this->nodeNew[this->numNodes] = this->smgr->addSphereSceneNode(); + this->nodeNew[this->numNodes]->setPosition(core::vector3df(x,y,z)); + this->nodeNew[this->numNodes]->setMaterialTexture(0, this->driver->getTexture(texture.c_str())); + this->nodeNew[this->numNodes]->setMaterialFlag(video::EMF_LIGHTING, light); + this->numNodes++; + return this->numNodes--; + /*this->node = this->smgr->addSphereSceneNode(); + this->node->setPosition(core::vector3df(x,y,z)); + this->node->setMaterialTexture(0, this->driver->getTexture(texture.c_str())); + this->node->setMaterialFlag(video::EMF_LIGHTING, light);*/ +} + +irr::core::vector3df IrrSphere::GetSphereVector(int sphere){ + return this->nodeNew[sphere]->getPosition(); +} + +void IrrSphere::SetSphereVector(int sphere, irr::core::vector3df v){ + this->nodeNew[sphere]->setPosition(v); +} + +IrrSphere::IrrSphere(){ + this->numNodes = 0; +} + +IrrSphere::~IrrSphere(){ + for(int i = 0; i < numNodes; ++i) + delete this->nodeNew[i]; + + delete this->nodeNew; +} diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Stable Version/1.2.4/IrrSphere.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Stable Version/1.2.4/IrrSphere.h Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,43 @@ +/* + Irrlicht Library Wrapper + Created by: + Nathan Adams + Denzel Morris + Copyright (C) 2007 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ + +#ifndef IRRSPHERE_H +#define IRRSPHERE_H +/* We should include some basic functions */ +#include +/* include strings */ +#include + +/* We have to include Irrlichts libs */ +#include + +//#include "IrrLib.h" + + +class IrrSphere +{ + private: + irr::scene::ISceneNode* nodeNew[10]; + int numNodes; + irr::scene::ISceneManager* smgr; + irr::video::IVideoDriver* driver; + public: + void IrrSphere::SetDriver(irr::video::IVideoDriver* driver); + void IrrSphere::SetSmgr(irr::scene::ISceneManager* smgr); + int IrrSphere::CreateNewSphereNode(int x, int y, int z, std::string texture, bool light); //this is going to take my advanced C++ skillz! + irr::core::vector3df IrrSphere::GetSphereVector(int sphere); + void IrrSphere::SetSphereVector(int sphere, irr::core::vector3df v); + IrrSphere::IrrSphere(); + //IrrSphere::IrrSphere(IrrLib*); + IrrSphere::~IrrSphere(); +}; + +#endif diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Stable Version/1.2.4/IrrSprite.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Stable Version/1.2.4/IrrSprite.cpp Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,49 @@ +/* + Irrlicht Library Wrapper + Created by: + Nathan Adams + Denzel Morris + Copyright (C) 2007 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ + +#include +#include +#include + +#include "IrrLib.h" +//Libraries we create go here +//#include "IrrSphere.h" +#include "IrrColor.h" +#include "IrrSprite.h" +//#include "Irr2D.h" + +using namespace irr; +using namespace core; +using namespace scene; +using namespace video; +using namespace io; +using namespace gui; + +using namespace std; + +IrrSprite::IrrSprite() +{ + //do stuff +} + +IrrSprite::~IrrSprite() +{ + //delete stuff +} + +void IrrSprite::SetDriver(irr::video::IVideoDriver* driver) +{ + this->driver = driver; +} +void IrrSprite::SetSmgr(irr::scene::ISceneManager* smgr) +{ + this->smgr = smgr; +} diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Stable Version/1.2.4/IrrSprite.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Stable Version/1.2.4/IrrSprite.h Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,45 @@ +/* + Irrlicht Library Wrapper + Created by: + Nathan Adams + Denzel Morris + Copyright (C) 2007 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ + +#ifndef IRRSPRITE_H +#define IRRSPRITE_H + +/* We should include some basic functions */ +#include +/* include strings */ +#include + +/* We have to include Irrlichts libs */ +#include + +//#include "IrrSphere.h" +#include "IrrColor.h" +//#include "Irr2D.h" +//#include "IrrSprite.h" + +//Start class +class IrrSprite { + + private: + + irr::video::IVideoDriver* driver; + irr::scene::ISceneManager* smgr; + public: + IrrSprite::IrrSprite(); + IrrSprite::~IrrSprite(); + void IrrSprite::SetDriver(irr::video::IVideoDriver* driver); + void IrrSprite::SetSmgr(irr::scene::ISceneManager* smgr); + +// I forgot a semicolon here....and it wasn't compling +//Thats 1 bad thing about OOP if there is an error you don't know where the @#$@# the problem is! +}; + +#endif diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Stable Version/1.2.4/README --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Stable Version/1.2.4/README Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,13 @@ + Irrlicht Library Wrapper + Created by Nathan Adams + Version 1.2.3 + Copyright (C) 2007 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. + + Please leave all files intact if you redistrubte this software. + +How to use: + Add all the files to your Irrlicht project, you could compile it into a DLL if you wanted too, but for now just add all the files to your project. + Then inside your complier add the directory that you have the IrrLib files and use #include "IrrLib.h" to refrence it, and you are good to go! \ No newline at end of file diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Stable Version/1.2.5/CHANGES --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Stable Version/1.2.5/CHANGES Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,36 @@ +Version 1.2 ++ Added a Irr3DLib class that will control all 3D objects ++ Also Added a Irr2D class that works on the same concept. ++ IrrSphere is now owned by Irr3DLib ++ Updated the examples using the latest code +Version 1.2.2 ++ Added IrrEventReciever to handle all input + - Still under work ++ Fixed some misc coding bugs ++ Added template class ++ Added sprite class ++ Added GUI class +Version 1.2.3 ++ IrrEventReciver now works as advertised ++ Baseclass is now being used + + A couple somewhat-useful functions + + int_to_string + + stringw_to_stdstring + + stdstring_to_stringw ++ GUI elements + + Static text is working ++ Under construction for a data type class +Version 1.2.4 ++ Implmented color codes accessiable through the class + + IrrLib.Color.RED (ect) +Version 1.2.5 ++ Implmented mouse events + + IrrLib.getMouseX(); + + IrrLib.getMouseY(); ++ Using vectors instead of static arrays + + Side note: Was going to use dynamic arrays, but C++ has vectors which are 10x better. ++ Added a default exit for when you hit esc + + Use IrrLib.IrrEvent.SetEscExit(false) to turn that off for your software + + Use IrrLib.IrrEvent.SetEscExit(true) to turn it back on ++ Every stable version will now include a windows DLL. + + Possible Linux .so file in the future. \ No newline at end of file diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Stable Version/1.2.5/CREDITS --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Stable Version/1.2.5/CREDITS Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,7 @@ +IrrLib +Created by + Nathan Adams + Denzel Morris + +From #irrlicht + Acid \ No newline at end of file diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Stable Version/1.2.5/Irr2D.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Stable Version/1.2.5/Irr2D.cpp Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,61 @@ +/* + Irrlicht Library Wrapper + Created by: + Nathan Adams + Denzel Morris + Copyright (C) 2007 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ + +#include +//#include "IrrLib.h" +//#include "IrrSphere.h" //You probably aren't going to be using 3D objects in a 2D environment! +#include +#include + +#include "Irr2D.h" +#include "IrrSprite.h" + +using namespace irr; +using namespace core; +using namespace scene; +using namespace video; +using namespace io; +using namespace gui; + +using namespace std; + +Irr2D::Irr2D(){ + this->numTextures = 0; + //NA Should we set textures to new +} + +Irr2D::~Irr2D(){ + for(int i = 0; i < numTextures; ++i) + delete this->textures[i]; + + delete this->textures; +} + +void Irr2D::SetSmgr(irr::scene::ISceneManager* smgr){ + this->smgr = smgr; + Sprite.SetSmgr(smgr); +} + +void Irr2D::SetDriver(irr::video::IVideoDriver* driver){ + this->driver = driver; + Sprite.SetDriver(driver); +} + +void Irr2D::LoadTexturemap(std::string file){ + this->texturemap = driver->getTexture(file.c_str()); +} + +int Irr2D::LoadTexture(std::string file){ + this->textures[this->numTextures] = driver->getTexture(file.c_str()); + this->numTextures++; + return numTextures--; +} + diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Stable Version/1.2.5/Irr2D.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Stable Version/1.2.5/Irr2D.h Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,47 @@ +/* + Irrlicht Library Wrapper + Created by: + Nathan Adams + Denzel Morris + Copyright (C) 2007 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ + +#ifndef IRR2D_H +#define IRR2D_H +/* We should include some basic functions */ +#include +/* include strings */ +#include + +/* We have to include Irrlichts libs */ +#include + +//#include "IrrLib.h" +#include "IrrSprite.h" + +class Irr2D { + private: + irr::scene::ISceneManager* smgr; + irr::video::IVideoDriver* driver; + irr::video::ITexture* texturemap; + int numTextures; + irr::video::ITexture* textures[10]; + public: + //Irr2D::Irr2D(); + IrrSprite Sprite; + Irr2D::Irr2D(); + Irr2D::~Irr2D(); + void Irr2D::SetDriver(irr::video::IVideoDriver* driver); + void Irr2D::SetSmgr(irr::scene::ISceneManager* smgr); + void Irr2D::LoadTexturemap(std::string file); + int Irr2D::LoadTexture(std::string file); + void Irr2D::DrawImage(int texture, const irr::core::position2d & destPos); + void Irr2D::DrawImage(const irr::core::position2d & destPos, const irr::core::rect & sourceRect, const irr::core::rect * clipRect, irr::video::SColor color, bool useAlphaChannelOfTexture); + void Irr2D::DrawLine(const irr::core::position2d & start, const irr::core::position2d & end, irr::video::SColor color); +}; + +#endif + diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Stable Version/1.2.5/Irr3D.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Stable Version/1.2.5/Irr3D.cpp Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,52 @@ +/* + Irrlicht Library Wrapper + Created by: + Nathan Adams + Denzel Morris + Copyright (C) 2007 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ + +#include +#include + +//#include "IrrLib.h" +//Libraries we create go here +#include "IrrSphere.h" +//#include "IrrColor.h" +#include "Irr3D.h" +#include +//#include "Irr2D.h" + +using namespace irr; +using namespace core; +using namespace scene; +using namespace video; +using namespace io; +using namespace gui; + +using namespace std; + +void Irr3D::SetDriver(irr::video::IVideoDriver* driver) //so much for copying and pasting code from the header file +{ + this->driver = driver; + Sphere.SetDriver(driver); +} + +void Irr3D::SetSmgr(irr::scene::ISceneManager* smgr) +{ + this->smgr = smgr; + Sphere.SetSmgr(smgr); +} + +Irr3D::Irr3D() +{ + //do stuff here! +} + +Irr3D::~Irr3D() +{ + //delete stuff here! +} diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Stable Version/1.2.5/Irr3D.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Stable Version/1.2.5/Irr3D.h Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,44 @@ +/* + Irrlicht Library Wrapper + Created by: + Nathan Adams + Denzel Morris + Copyright (C) 2007 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ + +#ifndef IRR3D_H +#define IRR3D_H + +/* We should include some basic functions */ +#include +/* include strings */ +#include + +/* We have to include Irrlichts libs */ +#include + +#include "IrrSphere.h" +//#include "IrrColor.h" +//#include "Irr3D.h" +//#include "Irr2D.h" This is a 3D class not 2D +/* However due to Irrlciht's nature mixing 2D with 3D is possible */ + +//Start class +class Irr3D { + + private: + + irr::video::IVideoDriver* driver; + irr::scene::ISceneManager* smgr; + public: + IrrSphere Sphere; + Irr3D::Irr3D(); + Irr3D::~Irr3D(); + void Irr3D::SetDriver(irr::video::IVideoDriver* driver); + void Irr3D::SetSmgr(irr::scene::ISceneManager* smgr); +}; + +#endif diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Stable Version/1.2.5/IrrColor.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Stable Version/1.2.5/IrrColor.cpp Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,102 @@ +/* + Irrlicht Library Wrapper + Created by: + Nathan Adams + Denzel Morris + Copyright (C) 2007 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ + +#include +#include +#include + +//#include "IrrLib.h" +#include "IrrColor.h" + +using namespace irr; +using namespace core; +using namespace scene; +using namespace video; +using namespace io; +using namespace gui; + +using namespace std; + +void IrrColor::Init(){ + /*SColor * temp; + temp = new SColor(alpha, 255, 0, 0); + this->RED = temp; + delete temp;*/ + this->RED = SColor(alpha, 255, 0, 0); + this->ORANGE = SColor(alpha, 255, 165, 0); + this->YELLOW = SColor(alpha, 255, 255, 0); + this->GREEN = SColor(alpha, 0, 255, 0); + this->BLUE = SColor(alpha, 0, 0, 255); + this->DARK_GREEN = SColor(alpha, 0, 100, 0); + this->PINK = SColor(alpha, 255, 192, 203); + this->GREY = SColor(alpha, 190, 190, 190); +} + +IrrColor::~IrrColor(){ + //delete this->RED; +} + +IrrColor::IrrColor(){ + this->alpha = 255; + Init(); +} + +IrrColor::IrrColor(irr::u32 alpha){ + this->alpha = alpha; + Init(); +} + +int IrrColor::getAlpha(){ + return this->alpha; +} + +void IrrColor::setAlpha(int alpha){ + this->alpha = alpha; +} + +SColor IrrColor::returnColor(std::string color){ + int nColor = -1; + if (color == "red") + nColor = 1; + else if (color == "green") + nColor = 2; + else if (color == "blue") + nColor = 3; + else if (color == "dark green") + nColor = 4; + else if (color == "pink") + nColor = 5; + else if (color == "grey") + nColor = 6; + switch (nColor){ + case 1: + return SColor(255, 255, 0, 0); + break; + case 2: + return SColor(255, 0, 255, 0); + break; + case 3: + return SColor(255, 0, 0, 255); + break; + case 4: + return SColor(255, 0, 50, 0); + break; + case 5: + return SColor(255, 255, 10, 255); + break; + case 6: + return SColor(255,200,200,200); + break; + default: + return SColor(255,200,200,200); + break; + }// TODO: Make this function modular +} diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Stable Version/1.2.5/IrrColor.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Stable Version/1.2.5/IrrColor.h Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,51 @@ +/* + Irrlicht Library Wrapper + Created by: + Nathan Adams + Denzel Morris + Copyright (C) 2007 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ + +#ifndef IRRCOLOR_H +#define IRRCOLOR_H + +#include +#include +#include "irrlicht.h" +//#include "IrrLib.h" + +class IrrColor { + private: + irr::u32 alpha; + void Init(); + //who knows? + public: + //irr::video::SColor(alpha, 255, 0, 0); + irr::video::SColor RED; + irr::video::SColor ORANGE; + irr::video::SColor YELLOW; + irr::video::SColor GREEN; + irr::video::SColor BLUE; + irr::video::SColor DARK_GREEN; + irr::video::SColor PINK; + irr::video::SColor GREY; + /*const ORANGE = irr::video::SColor(alpha, 255, 165, 0); + const YELLOW = irr::video::SColor(alpha, 255, 255, 0); + const GREEN = irr::video::SColor(alpha, 0, 255, 0); + const BLUE = irr::video::SColor(alpha, 0, 0, 255); + const DARK_GREEN = irr::video::SColor(alpha, 0, 100, 0); + const PINK = irr::video::SColor(alpha, 255, 192, 203); + const GREY = irr::video::Scolor(alpha, 190, 190, 190);*/ + //void IrrColor::test(); + IrrColor(); + IrrColor(irr::u32 alpha); + ~IrrColor(); + int getAlpha(); + void setAlpha(int alpha); + irr::video::SColor IrrColor::returnColor(std::string color); +}; + +#endif diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Stable Version/1.2.5/IrrEventReciever.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Stable Version/1.2.5/IrrEventReciever.cpp Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,74 @@ +/* + Irrlicht Library Wrapper + Created by: + Nathan Adams + Denzel Morris + Copyright (C) 2007 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ + +#include "IrrEventReciever.h" +//#include "IrrLib.h" +#include +#include + +using namespace irr; +using namespace core; +using namespace scene; +using namespace video; +using namespace io; +using namespace gui; + +using namespace std; + +/*void IrrEventReciever::setIrrLib(IrrLib& IrrLib) +{ + this.callingIrrLib = IrrLib; +}*/ + +IrrEventReciever::IrrEventReciever() +{ + this->escexit = true; + this->mouse.x = 0; + this->mouse.y = 0; +} + +bool IrrEventReciever::OnEvent(SEvent event) +{ + if (event.EventType == irr::EET_KEY_INPUT_EVENT) { + if (!event.KeyInput.PressedDown){ + this->keyStates[event.KeyInput.Key] = false; + //cout << "Key was not hit " << this->keyStates[event.KeyInput.Key] << endl; + } + else{ + if(event.KeyInput.Key == KEY_ESCAPE && escexit) + this->device->closeDevice(); + this->keyStates[event.KeyInput.Key] = true; + //cout << "Key was hit: " << event.KeyInput.Key << " " << this->keyStates[event.KeyInput.Key] << endl; + } + } + if (event.EventType == EET_MOUSE_INPUT_EVENT){ + if (event.MouseInput.Event == EMIE_MOUSE_MOVED){ + this->mouse.x = event.MouseInput.X; + this->mouse.y = event.MouseInput.Y; + } + } + return false; +} + +void IrrEventReciever::SetEscExit(bool onoff) +{ + this->escexit = onoff; +} + +int IrrEventReciever::getMouseX() +{ + return this->mouse.x; +} + +int IrrEventReciever::getMouseY() +{ + return this->mouse.y; +} diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Stable Version/1.2.5/IrrEventReciever.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Stable Version/1.2.5/IrrEventReciever.h Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,41 @@ +/* + Irrlicht Library Wrapper + Created by: + Nathan Adams + Denzel Morris + Copyright (C) 2007 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ + +#ifndef IRREVENTRECIEVER_H +#define IRREVENTRECIEVER_H + +//#include "IrrLib.h" +#include +#include "IrrLibBase.h" + +struct _mouse { + int x; + int y; +}; + +class IrrEventReciever : public irr::IEventReceiver, public IrrLibBase +{ + private: + //IrrLib callingIrrLib; + _mouse mouse; + bool escexit; + + public: + IrrEventReciever(); + int getMouseX(); + int getMouseY(); + bool keyStates[irr::KEY_KEY_CODES_COUNT]; + //void setIrrLib(IrrLib& IrrLib) + virtual bool OnEvent(irr::SEvent event); + void SetEscExit(bool onoff); +}; + +#endif diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Stable Version/1.2.5/IrrLib.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Stable Version/1.2.5/IrrLib.cpp Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,266 @@ +/* + Irrlicht Library Wrapper + Created by: + Nathan Adams + Denzel Morris + Copyright (C) 2007 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ + +#include +#include +#include +#include +#include + +#include "IrrLib.h" +//Libraries we create go here +//#include "IrrSphere.h" +#include "IrrColor.h" +//#include "Irr2D.h" + +using namespace irr; +using namespace core; +using namespace scene; +using namespace video; +using namespace io; +using namespace gui; + +using namespace std; + +//TODO: Create own class for handling inputs! + + +/*IrrLib::IrrLib(MastEventReceiver & receiver){ + this->device = createDevice(EDT_SOFTWARE, dimension2d(640, 480), 16, false, false, false, &receiver); + if (this->device == 0) + exit(1); + IrrLib::Init(); +}*/ + +IrrLib::IrrLib(){ + this->device = createDevice(EDT_SOFTWARE, dimension2d(640, 480), 16, false, false, false, &this->IrrEvent); + if (this->device == 0) + exit(1); + IrrLib::Init(); +} + +IrrLib::IrrLib(video::E_DRIVER_TYPE drivertype, core::dimension2d & res, u32 bits, bool fullscreen, bool stencilbuffer, bool vsync){ + //MyEventReceiver receiver; + this->device = createDevice(drivertype, res, bits, fullscreen, stencilbuffer, vsync, &this->IrrEvent); + if (this->device == 0) + exit(1); + IrrLib::Init(); +} + +IrrLib::IrrLib(int nDrivertype, int width, int height, int bits, bool fullscreen, bool stencilbuffer, bool vsync){ + //MyEventReceiver receiver; + video::E_DRIVER_TYPE drivertype; + switch (nDrivertype){ + case 0: //TODO: finish this switch case + drivertype = EDT_NULL; + break; + case 1: + drivertype = EDT_SOFTWARE; + break; + case 2: + drivertype = EDT_BURNINGSVIDEO; + break; + case 3: + drivertype = EDT_OPENGL; + break; + case 4: + drivertype = EDT_DIRECT3D8; + //*Note: It seems as Microsoft has stoped supporting DX 8.1, so you can not compile it into Irrlicht engine anymore + //TODO: Find how to detect if DX is complied into Irrlicht + //TODO: Find how to detecht for linux + break; + case 5: + drivertype = EDT_DIRECT3D9; + break; + default: + drivertype = EDT_SOFTWARE; + break; + } + this->device = createDevice(drivertype, dimension2d(width, height), bits, fullscreen, stencilbuffer, vsync, &this->IrrEvent); + if (this->device == 0) + exit(1); + IrrLib::Init(); +} + +IrrLib::~IrrLib (){ //Our moms wont clean up after us! + //Although I'm sure Irrlicht does this for us already, its always a good idea to check! + /*if (this->device != NULL) + delete this->device; + if (this->driver != NULL) + delete this->driver; + if (this->smgr != NULL) + delete this->smgr; + if (this->mesh != NULL) + delete this->mesh; + if (this->node != NULL) + delete this->node;*/ //it seems Irrlicht picks up after us... + //however we created newNodes, now we need to delete it! +} + +void IrrLib::Init(){ + //this->numNodes = 0; + //this->nodeNew = new ISceneNode[10]; + //this->env->addStaticText(L"Transparent Control:", rect(20,30,300,80), true); + this->env = this->device->getGUIEnvironment(); + this->driver = this->device->getVideoDriver(); + this->smgr = this->device->getSceneManager(); + Irr3DLib.SetSmgr(this->smgr); + Irr3DLib.SetDriver(this->driver); + Irr2DLib.SetSmgr(this->smgr); + Irr2DLib.SetDriver(this->driver); + GUI.SetEnv(this->env); + IrrEvent.SetDevice(this->device); + this->timer = this->device->getTimer(); + tick = this->timer->getRealTime(); +} + +void IrrLib::ReadArchive(std::string file){ + this->device->getFileSystem()->addZipFileArchive(file.c_str()); +} + +void IrrLib::LoadQ3Level(std::string q3level){ + this->mesh = this->smgr->getMesh(q3level.c_str()); + this->node = 0; + if (this->mesh) + this->node = this->smgr->addOctTreeSceneNode(this->mesh->getMesh(0), 0, -1, 128); +} + +void IrrLib::MapPos(int x, int y, int z){ + if (this->node) + this->node->setPosition(core::vector3df(x, y, z)); +} + +void IrrLib::MapPos(){ + if (this->node) + this->node->setPosition(core::vector3df(0, 0, 0)); +} + +void IrrLib::AddFPSCam(){ + this->cam = this->smgr->addCameraSceneNodeFPS(); +} + +void IrrLib::AddFPSCam(f32 x, f32 y, f32 z) +{ + this->cam = this->smgr->addCameraSceneNodeFPS(); + this->cam->setPosition(irr::core::vector3df(x, y, z)); +} + +void IrrLib::VisibleCursor(bool tf){ + if (tf == false) + this->device->getCursorControl()->setVisible(false); + else + this->device->getCursorControl()->setVisible(true); +} + +int IrrLib::GetFPSCount(){ + return this->driver->getFPS(); +} + +bool IrrLib::DeviceIsRunning(){ + return this->device->run(); +} + +bool IrrLib::IsActiveWindow(){ + return this->device->isWindowActive(); +} + +void IrrLib::BeginScene(){ + this->driver->beginScene(true, true, video::SColor(0,200,200,200)); +} + +void IrrLib::BeginScene(irr::video::SColor color){ + this->driver->beginScene(true, true, color); +} + +void IrrLib::BeginScene(bool usebackBuffer, bool usezBuffer, irr::video::SColor color){ + this->driver->beginScene(usebackBuffer, usezBuffer, color); +} + +void IrrLib::DrawAll(){ + this->smgr->drawAll(); + this->env->drawAll(); + //this->device->getGUIEnvironment()->drawAll(); + } + +void IrrLib::EndScene(){ + this->driver->endScene(); +} + +void IrrLib::SetWindowCaption(stringw str){ + this->device->setWindowCaption(str.c_str()); +} + +irr::core::stringw IrrLib::GetDriverName(){ + return this->driver->getName(); +} + +void IrrLib::EndIrrlicht(){ + if(this->device != NULL){ + this->device->drop(); + this->device = NULL; + } +} + +void IrrLib::KeyPress(char key){ + this->key = key; +} + +char IrrLib::KeyPressed(){ + return key; +} + +irr::f32 IrrLib::getX(){ + return this->smgr->getActiveCamera()->getPosition().X; +} + +irr::f32 IrrLib::getY(){ + return this->smgr->getActiveCamera()->getPosition().Y; +} + +irr::f32 IrrLib::getZ(){ + return this->smgr->getActiveCamera()->getPosition().Z; +} + +bool IrrLib::CheckGameLoop(){ + u32 now; + now = this->timer->getRealTime(); + if ((now - this->tick) >= 30){ + //this->tick == time (NULL); + return true; + } else { + return false; + } +} + +bool IrrLib::CheckGameLoop(u32 ms){ + u32 now; + now = this->timer->getRealTime(); + if ((now - this->tick) >= ms){ + this->tick = now; + return true; + } else { + return false; + } +} + +void IrrLib::Exit() +{ + this->device->closeDevice(); +} + +//template std::string IrrLib::to_string (T t) +/*std::string IrrLib::int_to_string (int t) +{ + std::stringstream ss; + ss << t; + return ss.str(); +}*/ +// This is in the base class now, every class that decends from that class has this ability. diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Stable Version/1.2.5/IrrLib.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Stable Version/1.2.5/IrrLib.h Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,118 @@ +/* + Irrlicht Library Wrapper + Created by: + Nathan Adams + Denzel Morris + Copyright (C) 2007 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ + +#ifndef IRRLIB_H +#define IRRLIB_H + +/* We should include some basic functions */ +#include +/* include strings */ +#include +#include +#include + +/* We have to include Irrlichts libs */ + + +#include "Irr3D.h" +#include "IrrColor.h" +#include "IrrLibGUI.h" +#include "IrrEventReciever.h" +#include "Irr2D.h" +#include "IrrLibBase.h" + +//Start class +class IrrLib: public IrrLibBase { + + private: + /* Create an Irrlicht device as private because the class should handle + All irrlicht interaction */ + irr::IrrlichtDevice *device; + // Tells Irrlicht what driver to use + //video::E_DRIVER_TYPE driverType; + + /* + Get a pointer to the video driver and the SceneManager so that + we do not always have to write device->getVideoDriver() and + device->getSceneManager(). + */ + irr::video::IVideoDriver* driver; + irr::scene::ISceneManager* smgr; + irr::gui::IGUIEnvironment* env; + + /* + Get a pointer to the 'mesh' aka the level. + Note: This is for Quake3 levels, ie bsp maps. + */ + irr::scene::IAnimatedMesh* mesh; + irr::scene::ISceneNode* node; + irr::scene::ISceneNode * tempNode; //use this to store nodeNew's data so we can resize it + irr::scene::ICameraSceneNode * cam; + char key; + + + void IrrLib::Init(); + /*friend class IrrColor; + friend class Irr2DLib; + friend class Sphere;*/ + friend class IrrEventReciever; + irr::u32 tick; + irr::ITimer* timer; + public: + //IrrSphere Sphere; //This has to be public to be able to access the Sphere class + /* IrrSphere is now in Irr3D class */ + //Prehaps put this into a IrrLib3D class? + Irr3D Irr3DLib; + IrrColor Color; //Color class...not much of a class but lets keep it OO + Irr2D Irr2DLib; //1/2 variable to be labeled like this due to variables not able to begin with a number + IrrLibGUI GUI; + IrrEventReciever IrrEvent; + IrrLib::IrrLib(); + //IrrLib::IrrLib(MastEventReceiver & receiver); + IrrLib::IrrLib(irr::video::E_DRIVER_TYPE drivertype, irr::core::dimension2d & res, irr::u32 bits, bool fullscreen, bool stencilbuffer, bool vsync); + IrrLib::IrrLib(int drivertype, int width, int height, int bits, bool fullscreen, bool stencilbuffer, bool vsync); + IrrLib::~IrrLib(); //Our moms wont clean up after us! + void IrrLib::ReadArchive(std::string file); + void IrrLib::LoadQ3Level(std::string q3level); + void IrrLib::MapPos(int x, int y, int z); //I think this moves the actual camera? + void IrrLib::MapPos(); + void IrrLib::AddFPSCam(); + void IrrLib::AddFPSCam(irr::f32 x, irr::f32 y, irr::f32 z); + void IrrLib::VisibleCursor(bool tf); + int IrrLib::GetFPSCount(); + bool IrrLib::DeviceIsRunning(); + bool IrrLib::IsActiveWindow(); + void IrrLib::BeginScene(); + void IrrLib::BeginScene(irr::video::SColor color); + //void IrrLib::BeginScene(irr::video::SColor * color); + void IrrLib::BeginScene(bool usebackBuffer, bool usezBuffer, irr::video::SColor color); + //TODO: Add one more for human readable colors and hex colors! + void IrrLib::DrawAll(); + void IrrLib::EndScene(); + void IrrLib::SetWindowCaption(irr::core::stringw str); + irr::core::stringw IrrLib::GetDriverName(); + //TODO: Make function to turn stringw to string and visa versa + void IrrLib::EndIrrlicht(); //Renamed from KillIrrlicht to EndIrrlicht + //TODO: Add logging + void IrrLib::KeyPress(char key); + char IrrLib::KeyPressed(); + irr::f32 getX(); + irr::f32 getY(); + irr::f32 getZ(); + bool CheckGameLoop(); + bool CheckGameLoop(irr::u32 ms); + void Exit(); + //void EndGameLoop(); + //template std::string to_string (T t); + +}; + +#endif diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Stable Version/1.2.5/IrrLibBase.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Stable Version/1.2.5/IrrLibBase.cpp Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,64 @@ +/* + Irrlicht Library Wrapper + Created by: + Nathan Adams + Denzel Morris + Copyright (C) 2007 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ + +#include +#include +#include "IrrLibBase.h" +#include +#include + +using namespace irr; +using namespace core; +using namespace scene; +using namespace video; +using namespace io; +using namespace gui; + +using namespace std; + +void IrrLibBase::SetDriver(IVideoDriver* driver) //can be overloaded +{ + this->driver = driver; +} + +void IrrLibBase::SetSmgr(ISceneManager* smgr) +{ + this->smgr = smgr; +} + +std::string IrrLibBase::int_to_string (int t) +{ + std::stringstream ss; + ss << t; + return ss.str(); +} + +std::string IrrLibBase::stringw_to_stdstring(irr::core::stringw sw) +{ + std::stringstream ss; + ss << sw.c_str(); + return ss.str(); +} +irr::core::stringw IrrLibBase::stdstring_to_stringw(std::string ss) +{ + stringw tmpw(ss.c_str()); + return tmpw; +} + +void IrrLibBase::SetDevice(irr::IrrlichtDevice *device) +{ + this->device = device; +} + +void IrrLibBase::init() +{ + +} diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Stable Version/1.2.5/IrrLibBase.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Stable Version/1.2.5/IrrLibBase.h Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,40 @@ +/* + Irrlicht Library Wrapper + Created by: + Nathan Adams + Denzel Morris + Copyright (C) 2007 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ + +#ifndef IRRLIBBASE_H +#define IRRLIBBASE_H + +/* We should include some basic functions */ +#include +/* include strings */ +#include + +/* We have to include Irrlichts libs */ +#include + +class IrrLibBase { + + protected: + irr::video::IVideoDriver* driver; + irr::scene::ISceneManager* smgr; + irr::IrrlichtDevice *device; + public: + void IrrLibBase::SetDriver(irr::video::IVideoDriver* driver); + void IrrLibBase::SetSmgr(irr::scene::ISceneManager* smgr); + void SetDevice(irr::IrrlichtDevice *device); + std::string int_to_string (int t); + std::string stringw_to_stdstring(irr::core::stringw sw); + irr::core::stringw stdstring_to_stringw(std::string ss); + void init(); + +}; + +#endif diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Stable Version/1.2.5/IrrLibDLL.dll Binary file Stable Version/1.2.5/IrrLibDLL.dll has changed diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Stable Version/1.2.5/IrrLibData.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Stable Version/1.2.5/IrrLibData.h Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,55 @@ +/* + Irrlicht Library Wrapper + Created by: + Nathan Adams + Denzel Morris + Copyright (C) 2007 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ + +/* + Purpose of this class is to handle abstract data + Such as: + Stacks + Queues + Dynamic memory(arrays) + + Begininers probably wont use this class too much, its used mostly for the advanced - expert programmer. + Howerver, IrrLib and other classes will make use of this class. +*/ + + +/*class Stack { + int cap; + int count; + request *the_stack; + public: + void InitStack(int stacksize); + void Push(request value); + request Top(); + request Pop(); + ~Stack (); + int thecount(); + private: + void Push(request *&the_stack, int& nCount, int& nCap, request& value); + + //void R +}; + +class Queue { + int cap; + int count; + request *the_queue; + public: + void InitQueue(int queuesize); + request Pop(); + request Front(); + request Back(); + ~Queue(); + int thecount(); + void Push(request value); + private: + void Push(request *the_stack, int nCount, int nCap, request value); +};*/ \ No newline at end of file diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Stable Version/1.2.5/IrrLibGUI.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Stable Version/1.2.5/IrrLibGUI.cpp Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,137 @@ +/* + Irrlicht Library Wrapper + Created by: + Nathan Adams + Denzel Morris + Copyright (C) 2007 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ + +#include +#include +#include +#include + +#include "IrrLibGUI.h" + +using namespace irr; +using namespace core; +using namespace scene; +using namespace video; +using namespace io; +using namespace gui; + +using namespace std; + +IrrLibGUI::IrrLibGUI() +{ + //NA does it need to do anything at init? + this->nStaticText = 0; + //this->arrStaticText = new IGUIStaticText[10]; + //this->env = this->device->getGUIEnvironment(); //NA yes we do! +} + +IrrLibGUI::~IrrLibGUI() +{ + //NA Do we have to delete anything? +} + +void IrrLibGUI::SetEnv(IGUIEnvironment* env) +{ + this->env = env; +} + +void IrrLibGUI::Clear() +{ + this->env->clear(); +} + +void IrrLibGUI::DrawAll() +{ + this->env->drawAll(); +} + +void IrrLibGUI::AddToStaticArray(irr::gui::IGUIStaticText * addme) +{ + //arrStaticText[nStaticText] = addme; + arrStaticText.push_back(addme); + this->nStaticText++; +} + +void IrrLibGUI::AddStaticText() +{ + //rect(20,30,300,80), + this->env->addStaticText(L"Powered by IrrLib.", rect(20,30,300,80), true); +} + +int IrrLibGUI::AddStaticText(std::string message) +{ + irr::gui::IGUIStaticText * addthis; + stringw tmpw(message.c_str()); + addthis = this->env->addStaticText(tmpw.c_str(), rect(20,30,300,80), true); + AddToStaticArray(addthis); +} + +int IrrLibGUI::AddStaticText(std::string message, int x1, int y1, int x2, int y2) +{ + irr::gui::IGUIStaticText * addthis; + stringw tmpw(message.c_str()); + addthis = this->env->addStaticText(tmpw.c_str(), rect(x1,y1,x2,y2), true); + AddToStaticArray(addthis); +} + +int IrrLibGUI::AddStaticText(std::string message, int x1, int y1, int x2, int y2, bool border, bool wordwrap) +{ + irr::gui::IGUIStaticText * addthis; + stringw tmpw(message.c_str()); + addthis = this->env->addStaticText(tmpw.c_str(), rect(x1,y1,x2,y2), border, wordwrap); + AddToStaticArray(addthis); +} + +int IrrLibGUI::AddStaticText(std::string message, int x1, int y1, int x2, int y2, bool border, bool wordwrap, int id, bool fillbackground) +{ + irr::gui::IGUIStaticText * addthis; + stringw tmpw(message.c_str()); + addthis = this->env->addStaticText(tmpw.c_str(), rect(x1,y1,x2,y2), border, wordwrap, 0, id, fillbackground); + AddToStaticArray(addthis); +} + +int IrrLibGUI::AddStaticText(std::string message, const core::rect< s32 > &rectangle) +{ + irr::gui::IGUIStaticText * addthis; + stringw tmpw(message.c_str()); + addthis = this->env->addStaticText(tmpw.c_str(), rectangle); + AddToStaticArray(addthis); +} + +int IrrLibGUI::AddStaticText(std::string message, const core::rect< s32 > &rectangle, bool border, bool wordwrap) +{ + irr::gui::IGUIStaticText * addthis; + stringw tmpw(message.c_str()); + addthis = this->env->addStaticText(tmpw.c_str(), rectangle, border, wordwrap); + AddToStaticArray(addthis); +} + +int IrrLibGUI::AddStaticText(std::string message, const core::rect< s32 > &rectangle, bool border, bool wordwrap, int id, bool fillbackground) +{ + irr::gui::IGUIStaticText * addthis; + stringw tmpw(message.c_str()); + addthis = this->env->addStaticText(tmpw.c_str(), rectangle, border, wordwrap, 0, id, fillbackground); + AddToStaticArray(addthis); +} + +void IrrLibGUI::ChangeStaticText(int nstatictext, std::string message) +{ + stringw tmpw(message.c_str()); + this->arrStaticText[this->nStaticText-1]->setText(tmpw.c_str()); +} + +void IrrLibGUI::ChangeFont(std::string fontfile) +{ + IGUISkin* skin = this->env->getSkin(); + IGUIFont* font = this->env->getFont(fontfile.c_str()); + if (font) + skin->setFont(font); +} diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Stable Version/1.2.5/IrrLibGUI.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Stable Version/1.2.5/IrrLibGUI.h Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,53 @@ +/* + Irrlicht Library Wrapper + Created by: + Nathan Adams + Denzel Morris + Copyright (C) 2007 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ + +#ifndef IRRLIBGUI_H +#define IRRLIBGUI_H + +#include +#include +#include +#include "IrrLibBase.h" + +class IrrLibGUI: public IrrLibBase { + private: + irr::gui::IGUISkin* skin; + irr::gui::IGUIFont* font; + irr::gui::IGUIEnvironment* env; + //TODO: Create an array storing all messages + int nStaticText; + //irr::gui::IGUIStaticText* arrStaticText[10]; + std::vector arrStaticText; + void AddToStaticArray(irr::gui::IGUIStaticText * addme); + + public: + IrrLibGUI(); + ~IrrLibGUI(); + void SetEnv(irr::gui::IGUIEnvironment* env); + void Clear(); + void DrawAll(); + //irr::gui::IGUIStaticText* IrrLibGUI::AddStaticText(); //NA eh a default text adder why not? + /* This is bad coding, we do not want to return an irrlicht object, we want to return a standard datatype because this class handles the GUI elements, not the user. */ + void AddStaticText(); //NA eh a default text adder why not? + int AddStaticText(std::string message); + int AddStaticText(std::string message, int x1, int y1, int x2, int y2); + int AddStaticText(std::string message, int x1, int y1, int x2, int y2, bool border, bool wordwrap); + int AddStaticText(std::string message, int x1, int y1, int x2, int y2, bool border, bool wordwrap, int id, bool fillbackground); + int AddStaticText(std::string message, const irr::core::rect< irr::s32 > &rectangle); + int AddStaticText(std::string message, const irr::core::rect< irr::s32 > &rectangle, bool border, bool wordwrap); + int AddStaticText(std::string message, const irr::core::rect< irr::s32 > &rectangle, bool border, bool wordwrap, int id, bool fillbackground); + void ChangeStaticText(int nstatictext, std::string message); + void ChangeFont(std::string fontfile); + +}; + + +#endif diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Stable Version/1.2.5/IrrSphere.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Stable Version/1.2.5/IrrSphere.cpp Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,67 @@ +/* + Irrlicht Library Wrapper + Created by Nathan Adams + Copyright (C) 2007 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ +#include +#include "IrrLib.h" +#include "IrrSphere.h" +#include +#include + +using namespace irr; +using namespace core; +using namespace scene; +using namespace video; +using namespace io; +using namespace gui; + +using namespace std; + +void IrrSphere::SetSmgr(irr::scene::ISceneManager* smgr){ + this->smgr = smgr; +} + +void IrrSphere::SetDriver(irr::video::IVideoDriver* driver){ + this->driver = driver; +} + +int IrrSphere::CreateNewSphereNode(int x, int y, int z, std::string texture, bool light){ + //TODO: Resize after 10, and add 10 more to the mix! + //this->nodeNew[this->numNodes] = this->smgr->addSphereSceneNode(); + sphereNodes.push_back(this->smgr->addSphereSceneNode()); + this->sphereNodes[this->numNodes]->setPosition(core::vector3df(x,y,z)); + this->sphereNodes[this->numNodes]->setMaterialTexture(0, this->driver->getTexture(texture.c_str())); + this->sphereNodes[this->numNodes]->setMaterialFlag(video::EMF_LIGHTING, light); + this->numNodes++; + return this->numNodes--; + /*this->node = this->smgr->addSphereSceneNode(); + this->node->setPosition(core::vector3df(x,y,z)); + this->node->setMaterialTexture(0, this->driver->getTexture(texture.c_str())); + this->node->setMaterialFlag(video::EMF_LIGHTING, light);*/ +} + +irr::core::vector3df IrrSphere::GetSphereVector(int sphere){ + //We are converting to vectors, under construction NA + //return this->nodeNew[sphere]->getPosition(); + return this->sphereNodes[sphere]->getPosition(); +} + +void IrrSphere::SetSphereVector(int sphere, irr::core::vector3df v){ + this->sphereNodes[sphere]->setPosition(v); +} + +IrrSphere::IrrSphere(){ + this->numNodes = 0; +} + +IrrSphere::~IrrSphere(){ + /*for(int i = 0; i < numNodes; ++i) + delete this->nodeNew[i]; + + delete this->nodeNew;*/ + //We are using vectors now, no more memory clowing business NA +} diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Stable Version/1.2.5/IrrSphere.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Stable Version/1.2.5/IrrSphere.h Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,46 @@ +/* + Irrlicht Library Wrapper + Created by: + Nathan Adams + Denzel Morris + Copyright (C) 2007 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ + +#ifndef IRRSPHERE_H +#define IRRSPHERE_H +/* We should include some basic functions */ +#include +/* include strings */ +#include +#include + +/* We have to include Irrlichts libs */ +#include + +//#include "IrrLib.h" + + +class IrrSphere +{ + private: + //irr::scene::ISceneNode* nodeNew[10]; + //irr::scene::ISceneNode* nodeNew[10]; + std::vector sphereNodes; + int numNodes; + irr::scene::ISceneManager* smgr; + irr::video::IVideoDriver* driver; + public: + void IrrSphere::SetDriver(irr::video::IVideoDriver* driver); + void IrrSphere::SetSmgr(irr::scene::ISceneManager* smgr); + int IrrSphere::CreateNewSphereNode(int x, int y, int z, std::string texture, bool light); //this is going to take my advanced C++ skillz! + irr::core::vector3df IrrSphere::GetSphereVector(int sphere); + void IrrSphere::SetSphereVector(int sphere, irr::core::vector3df v); + IrrSphere::IrrSphere(); + //IrrSphere::IrrSphere(IrrLib*); + IrrSphere::~IrrSphere(); +}; + +#endif diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Stable Version/1.2.5/IrrSprite.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Stable Version/1.2.5/IrrSprite.cpp Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,49 @@ +/* + Irrlicht Library Wrapper + Created by: + Nathan Adams + Denzel Morris + Copyright (C) 2007 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ + +#include +#include +#include + +#include "IrrLib.h" +//Libraries we create go here +//#include "IrrSphere.h" +#include "IrrColor.h" +#include "IrrSprite.h" +//#include "Irr2D.h" + +using namespace irr; +using namespace core; +using namespace scene; +using namespace video; +using namespace io; +using namespace gui; + +using namespace std; + +IrrSprite::IrrSprite() +{ + //do stuff +} + +IrrSprite::~IrrSprite() +{ + //delete stuff +} + +void IrrSprite::SetDriver(irr::video::IVideoDriver* driver) +{ + this->driver = driver; +} +void IrrSprite::SetSmgr(irr::scene::ISceneManager* smgr) +{ + this->smgr = smgr; +} diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Stable Version/1.2.5/IrrSprite.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Stable Version/1.2.5/IrrSprite.h Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,45 @@ +/* + Irrlicht Library Wrapper + Created by: + Nathan Adams + Denzel Morris + Copyright (C) 2007 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ + +#ifndef IRRSPRITE_H +#define IRRSPRITE_H + +/* We should include some basic functions */ +#include +/* include strings */ +#include + +/* We have to include Irrlichts libs */ +#include + +//#include "IrrSphere.h" +#include "IrrColor.h" +//#include "Irr2D.h" +//#include "IrrSprite.h" + +//Start class +class IrrSprite { + + private: + + irr::video::IVideoDriver* driver; + irr::scene::ISceneManager* smgr; + public: + IrrSprite::IrrSprite(); + IrrSprite::~IrrSprite(); + void IrrSprite::SetDriver(irr::video::IVideoDriver* driver); + void IrrSprite::SetSmgr(irr::scene::ISceneManager* smgr); + +// I forgot a semicolon here....and it wasn't compling +//Thats 1 bad thing about OOP if there is an error you don't know where the @#$@# the problem is! +}; + +#endif diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Stable Version/1.2.5/README --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Stable Version/1.2.5/README Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,13 @@ + Irrlicht Library Wrapper + Created by Nathan Adams + Version 1.2.3 + Copyright (C) 2007 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. + + Please leave all files intact if you redistrubte this software. + +How to use: + Add all the files to your Irrlicht project, you could compile it into a DLL if you wanted too, but for now just add all the files to your project. + Then inside your complier add the directory that you have the IrrLib files and use #include "IrrLib.h" to refrence it, and you are good to go! \ No newline at end of file diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Stable Version/1.2.5/dll.cbp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Stable Version/1.2.5/dll.cbp Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,20 @@ + + + + + + + diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Stable Version/1.2.5/dll.layout --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Stable Version/1.2.5/dll.layout Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Stable Version/1.2.5/libIrrLibDLL.a Binary file Stable Version/1.2.5/libIrrLibDLL.a has changed diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Stable Version/1.2.6/CHANGES --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Stable Version/1.2.6/CHANGES Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,45 @@ +Version 1.2 ++ Added a Irr3DLib class that will control all 3D objects ++ Also Added a Irr2D class that works on the same concept. ++ IrrSphere is now owned by Irr3DLib ++ Updated the examples using the latest code +Version 1.2.2 ++ Added IrrEventReciever to handle all input + - Still under work ++ Fixed some misc coding bugs ++ Added template class ++ Added sprite class ++ Added GUI class +Version 1.2.3 ++ IrrEventReciver now works as advertised ++ Baseclass is now being used + + A couple somewhat-useful functions + + int_to_string + + stringw_to_stdstring + + stdstring_to_stringw ++ GUI elements + + Static text is working ++ Under construction for a data type class +Version 1.2.4 ++ Implmented color codes accessiable through the class + + IrrLib.Color.RED (ect) +Version 1.2.5 ++ Implmented mouse events + + IrrLib.IrrEvent.getMouseX(); + + IrrLib.IrrEvent.getMouseY(); ++ Using vectors instead of static arrays + + Side note: Was going to use dynamic arrays, but C++ has vectors which are 10x better. ++ Added a default exit for when you hit esc + + Use IrrLib.IrrEvent.SetEscExit(false) to turn that off for your software + + Use IrrLib.IrrEvent.SetEscExit(true) to turn it back on ++ Every stable version will now include a windows DLL. + + Possible Linux .so file in the future. +Version 1.2.6 ++ Added a IrrEvent for buttons + + IrrLib.IrrEvent.checkButtonState(); + + See example for use ++ Added an AddButton function + + IrrLib.GUI.AddButton(..); + + See example for use ++ Problems with making the DLL + + reasearching \ No newline at end of file diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Stable Version/1.2.6/CREDITS --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Stable Version/1.2.6/CREDITS Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,7 @@ +IrrLib +Created by + Nathan Adams + Denzel Morris + +From #irrlicht + Acid \ No newline at end of file diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Stable Version/1.2.6/Irr2D.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Stable Version/1.2.6/Irr2D.cpp Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,61 @@ +/* + Irrlicht Library Wrapper + Created by: + Nathan Adams + Denzel Morris + Copyright (C) 2007 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ + +#include +//#include "IrrLib.h" +//#include "IrrSphere.h" //You probably aren't going to be using 3D objects in a 2D environment! +#include +#include + +#include "Irr2D.h" +#include "IrrSprite.h" + +using namespace irr; +using namespace core; +using namespace scene; +using namespace video; +using namespace io; +using namespace gui; + +using namespace std; + +Irr2D::Irr2D(){ + this->numTextures = 0; + //NA Should we set textures to new +} + +Irr2D::~Irr2D(){ + for(int i = 0; i < numTextures; ++i) + delete this->textures[i]; + + delete this->textures; +} + +void Irr2D::SetSmgr(irr::scene::ISceneManager* smgr){ + this->smgr = smgr; + Sprite.SetSmgr(smgr); +} + +void Irr2D::SetDriver(irr::video::IVideoDriver* driver){ + this->driver = driver; + Sprite.SetDriver(driver); +} + +void Irr2D::LoadTexturemap(std::string file){ + this->texturemap = driver->getTexture(file.c_str()); +} + +int Irr2D::LoadTexture(std::string file){ + this->textures[this->numTextures] = driver->getTexture(file.c_str()); + this->numTextures++; + return numTextures--; +} + diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Stable Version/1.2.6/Irr2D.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Stable Version/1.2.6/Irr2D.h Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,47 @@ +/* + Irrlicht Library Wrapper + Created by: + Nathan Adams + Denzel Morris + Copyright (C) 2007 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ + +#ifndef IRR2D_H +#define IRR2D_H +/* We should include some basic functions */ +#include +/* include strings */ +#include + +/* We have to include Irrlichts libs */ +#include + +//#include "IrrLib.h" +#include "IrrSprite.h" + +class Irr2D { + private: + irr::scene::ISceneManager* smgr; + irr::video::IVideoDriver* driver; + irr::video::ITexture* texturemap; + int numTextures; + irr::video::ITexture* textures[10]; + public: + //Irr2D::Irr2D(); + IrrSprite Sprite; + Irr2D::Irr2D(); + Irr2D::~Irr2D(); + void Irr2D::SetDriver(irr::video::IVideoDriver* driver); + void Irr2D::SetSmgr(irr::scene::ISceneManager* smgr); + void Irr2D::LoadTexturemap(std::string file); + int Irr2D::LoadTexture(std::string file); + void Irr2D::DrawImage(int texture, const irr::core::position2d & destPos); + void Irr2D::DrawImage(const irr::core::position2d & destPos, const irr::core::rect & sourceRect, const irr::core::rect * clipRect, irr::video::SColor color, bool useAlphaChannelOfTexture); + void Irr2D::DrawLine(const irr::core::position2d & start, const irr::core::position2d & end, irr::video::SColor color); +}; + +#endif + diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Stable Version/1.2.6/Irr3D.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Stable Version/1.2.6/Irr3D.cpp Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,52 @@ +/* + Irrlicht Library Wrapper + Created by: + Nathan Adams + Denzel Morris + Copyright (C) 2007 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ + +#include +#include + +//#include "IrrLib.h" +//Libraries we create go here +#include "IrrSphere.h" +//#include "IrrColor.h" +#include "Irr3D.h" +#include +//#include "Irr2D.h" + +using namespace irr; +using namespace core; +using namespace scene; +using namespace video; +using namespace io; +using namespace gui; + +using namespace std; + +void Irr3D::SetDriver(irr::video::IVideoDriver* driver) //so much for copying and pasting code from the header file +{ + this->driver = driver; + Sphere.SetDriver(driver); +} + +void Irr3D::SetSmgr(irr::scene::ISceneManager* smgr) +{ + this->smgr = smgr; + Sphere.SetSmgr(smgr); +} + +Irr3D::Irr3D() +{ + //do stuff here! +} + +Irr3D::~Irr3D() +{ + //delete stuff here! +} diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Stable Version/1.2.6/Irr3D.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Stable Version/1.2.6/Irr3D.h Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,44 @@ +/* + Irrlicht Library Wrapper + Created by: + Nathan Adams + Denzel Morris + Copyright (C) 2007 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ + +#ifndef IRR3D_H +#define IRR3D_H + +/* We should include some basic functions */ +#include +/* include strings */ +#include + +/* We have to include Irrlichts libs */ +#include + +#include "IrrSphere.h" +//#include "IrrColor.h" +//#include "Irr3D.h" +//#include "Irr2D.h" This is a 3D class not 2D +/* However due to Irrlciht's nature mixing 2D with 3D is possible */ + +//Start class +class Irr3D { + + private: + + irr::video::IVideoDriver* driver; + irr::scene::ISceneManager* smgr; + public: + IrrSphere Sphere; + Irr3D::Irr3D(); + Irr3D::~Irr3D(); + void Irr3D::SetDriver(irr::video::IVideoDriver* driver); + void Irr3D::SetSmgr(irr::scene::ISceneManager* smgr); +}; + +#endif diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Stable Version/1.2.6/IrrColor.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Stable Version/1.2.6/IrrColor.cpp Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,102 @@ +/* + Irrlicht Library Wrapper + Created by: + Nathan Adams + Denzel Morris + Copyright (C) 2007 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ + +#include +#include +#include + +//#include "IrrLib.h" +#include "IrrColor.h" + +using namespace irr; +using namespace core; +using namespace scene; +using namespace video; +using namespace io; +using namespace gui; + +using namespace std; + +void IrrColor::Init(){ + /*SColor * temp; + temp = new SColor(alpha, 255, 0, 0); + this->RED = temp; + delete temp;*/ + this->RED = SColor(alpha, 255, 0, 0); + this->ORANGE = SColor(alpha, 255, 165, 0); + this->YELLOW = SColor(alpha, 255, 255, 0); + this->GREEN = SColor(alpha, 0, 255, 0); + this->BLUE = SColor(alpha, 0, 0, 255); + this->DARK_GREEN = SColor(alpha, 0, 100, 0); + this->PINK = SColor(alpha, 255, 192, 203); + this->GREY = SColor(alpha, 190, 190, 190); +} + +IrrColor::~IrrColor(){ + //delete this->RED; +} + +IrrColor::IrrColor(){ + this->alpha = 255; + Init(); +} + +IrrColor::IrrColor(irr::u32 alpha){ + this->alpha = alpha; + Init(); +} + +int IrrColor::getAlpha(){ + return this->alpha; +} + +void IrrColor::setAlpha(int alpha){ + this->alpha = alpha; +} + +SColor IrrColor::returnColor(std::string color){ + int nColor = -1; + if (color == "red") + nColor = 1; + else if (color == "green") + nColor = 2; + else if (color == "blue") + nColor = 3; + else if (color == "dark green") + nColor = 4; + else if (color == "pink") + nColor = 5; + else if (color == "grey") + nColor = 6; + switch (nColor){ + case 1: + return SColor(255, 255, 0, 0); + break; + case 2: + return SColor(255, 0, 255, 0); + break; + case 3: + return SColor(255, 0, 0, 255); + break; + case 4: + return SColor(255, 0, 50, 0); + break; + case 5: + return SColor(255, 255, 10, 255); + break; + case 6: + return SColor(255,200,200,200); + break; + default: + return SColor(255,200,200,200); + break; + }// TODO: Make this function modular +} diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Stable Version/1.2.6/IrrColor.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Stable Version/1.2.6/IrrColor.h Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,51 @@ +/* + Irrlicht Library Wrapper + Created by: + Nathan Adams + Denzel Morris + Copyright (C) 2007 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ + +#ifndef IRRCOLOR_H +#define IRRCOLOR_H + +#include +#include +#include "irrlicht.h" +//#include "IrrLib.h" + +class IrrColor { + private: + irr::u32 alpha; + void Init(); + //who knows? + public: + //irr::video::SColor(alpha, 255, 0, 0); + irr::video::SColor RED; + irr::video::SColor ORANGE; + irr::video::SColor YELLOW; + irr::video::SColor GREEN; + irr::video::SColor BLUE; + irr::video::SColor DARK_GREEN; + irr::video::SColor PINK; + irr::video::SColor GREY; + /*const ORANGE = irr::video::SColor(alpha, 255, 165, 0); + const YELLOW = irr::video::SColor(alpha, 255, 255, 0); + const GREEN = irr::video::SColor(alpha, 0, 255, 0); + const BLUE = irr::video::SColor(alpha, 0, 0, 255); + const DARK_GREEN = irr::video::SColor(alpha, 0, 100, 0); + const PINK = irr::video::SColor(alpha, 255, 192, 203); + const GREY = irr::video::Scolor(alpha, 190, 190, 190);*/ + //void IrrColor::test(); + IrrColor(); + IrrColor(irr::u32 alpha); + ~IrrColor(); + int getAlpha(); + void setAlpha(int alpha); + irr::video::SColor IrrColor::returnColor(std::string color); +}; + +#endif diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Stable Version/1.2.6/IrrEventReciever.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Stable Version/1.2.6/IrrEventReciever.cpp Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,138 @@ +/* + Irrlicht Library Wrapper + Created by: + Nathan Adams + Denzel Morris + Copyright (C) 2007 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ + +#include "IrrEventReciever.h" +//#include "IrrLib.h" +#include +#include + +using namespace irr; +using namespace core; +using namespace scene; +using namespace video; +using namespace io; +using namespace gui; + +using namespace std; + +/*void IrrEventReciever::setIrrLib(IrrLib& IrrLib) +{ + this.callingIrrLib = IrrLib; +}*/ + +IrrEventReciever::IrrEventReciever() +{ + this->escexit = true; + this->mouse.x = 0; + this->mouse.y = 0; +} + +bool IrrEventReciever::OnEvent(SEvent event) +{ + // A button was clicked + if (event.EventType == irr::EET_GUI_EVENT) + { + switch(event.GUIEvent.EventType){ + case EGET_BUTTON_CLICKED: + s32 id = event.GUIEvent.Caller->getID(); + //cout << id << endl; + buttonStates.push_back(id); + break; + default: + break; + } + } + /*if (event.EventType == irr::EGET_SCROLL_BAR_CHANGED) + { + + }*/ + if (event.EventType == irr::EET_KEY_INPUT_EVENT) { + if (!event.KeyInput.PressedDown){ + this->keyStates[event.KeyInput.Key] = false; + //cout << "Key was not hit " << this->keyStates[event.KeyInput.Key] << endl; + } + else{ + if(event.KeyInput.Key == KEY_ESCAPE && escexit) + this->device->closeDevice(); + this->keyStates[event.KeyInput.Key] = true; + //cout << "Key was hit: " << event.KeyInput.Key << " " << this->keyStates[event.KeyInput.Key] << endl; + } + } + if (event.EventType == EET_MOUSE_INPUT_EVENT){ + if (event.MouseInput.Event == EMIE_MOUSE_MOVED){ + this->mouse.x = event.MouseInput.X; + this->mouse.y = event.MouseInput.Y; + } + } + return false; +} + +void IrrEventReciever::SetEscExit(bool onoff) +{ + this->escexit = onoff; +} + +int IrrEventReciever::getMouseX() +{ + return this->mouse.x; +} + +int IrrEventReciever::getMouseY() +{ + return this->mouse.y; +} + +int IrrEventReciever::getButtonState() +{ + if(!this->buttonStates.empty()){ + int id; + id = buttonStates.back(); + this->buttonStates.pop_back(); + return id; + } + else + return -1; +} + +int IrrEventReciever::getRevButtonState() +{ + if(!this->buttonStates.empty()){ + int id = buttonStates.front(); + this->buttonStates.erase(buttonStates.begin()); + return id; + } + else + return -1; +} + +void IrrEventReciever::clearButtonState() +{ + this->buttonStates.clear(); +} + +int IrrEventReciever::checkButtonState() +{ + if(!this->buttonStates.empty()) + return this->buttonStates.back(); + else + return -1; +} + +void IrrEventReciever::delLastButtonStat() +{ + if(!this->buttonStates.empty()) + this->buttonStates.pop_back(); +} + +bool IrrEventReciever::isButtonStateEmpty() +{ + return this->buttonStates.empty(); +} diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Stable Version/1.2.6/IrrEventReciever.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Stable Version/1.2.6/IrrEventReciever.h Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,48 @@ +/* + Irrlicht Library Wrapper + Created by: + Nathan Adams + Denzel Morris + Copyright (C) 2007 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ + +#ifndef IRREVENTRECIEVER_H +#define IRREVENTRECIEVER_H + +//#include "IrrLib.h" +#include +#include +#include "IrrLibBase.h" + +struct _mouse { + int x; + int y; +}; + +class IrrEventReciever : public irr::IEventReceiver, public IrrLibBase +{ + private: + //IrrLib callingIrrLib; + _mouse mouse; + bool escexit; + std::vector buttonStates; + public: + IrrEventReciever(); + int getMouseX(); + int getMouseY(); + bool keyStates[irr::KEY_KEY_CODES_COUNT]; + //void setIrrLib(IrrLib& IrrLib) + virtual bool OnEvent(irr::SEvent event); + void SetEscExit(bool onoff); + int getButtonState(); + int getRevButtonState(); + void clearButtonState(); + int checkButtonState(); + void delLastButtonStat(); + bool isButtonStateEmpty(); //is there still stuff in the vector to be done? NA +}; + +#endif diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Stable Version/1.2.6/IrrLib.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Stable Version/1.2.6/IrrLib.cpp Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,266 @@ +/* + Irrlicht Library Wrapper + Created by: + Nathan Adams + Denzel Morris + Copyright (C) 2007 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ + +#include +#include +#include +#include +#include + +#include "IrrLib.h" +//Libraries we create go here +//#include "IrrSphere.h" +#include "IrrColor.h" +//#include "Irr2D.h" + +using namespace irr; +using namespace core; +using namespace scene; +using namespace video; +using namespace io; +using namespace gui; + +using namespace std; + +//TODO: Create own class for handling inputs! + + +/*IrrLib::IrrLib(MastEventReceiver & receiver){ + this->device = createDevice(EDT_SOFTWARE, dimension2d(640, 480), 16, false, false, false, &receiver); + if (this->device == 0) + exit(1); + IrrLib::Init(); +}*/ + +IrrLib::IrrLib(){ + this->device = createDevice(EDT_SOFTWARE, dimension2d(640, 480), 16, false, false, false, &this->IrrEvent); + if (this->device == 0) + exit(1); + IrrLib::Init(); +} + +IrrLib::IrrLib(video::E_DRIVER_TYPE drivertype, core::dimension2d & res, u32 bits, bool fullscreen, bool stencilbuffer, bool vsync){ + //MyEventReceiver receiver; + this->device = createDevice(drivertype, res, bits, fullscreen, stencilbuffer, vsync, &this->IrrEvent); + if (this->device == 0) + exit(1); + IrrLib::Init(); +} + +IrrLib::IrrLib(int nDrivertype, int width, int height, int bits, bool fullscreen, bool stencilbuffer, bool vsync){ + //MyEventReceiver receiver; + video::E_DRIVER_TYPE drivertype; + switch (nDrivertype){ + case 0: //TODO: finish this switch case + drivertype = EDT_NULL; + break; + case 1: + drivertype = EDT_SOFTWARE; + break; + case 2: + drivertype = EDT_BURNINGSVIDEO; + break; + case 3: + drivertype = EDT_OPENGL; + break; + case 4: + drivertype = EDT_DIRECT3D8; + //*Note: It seems as Microsoft has stoped supporting DX 8.1, so you can not compile it into Irrlicht engine anymore + //TODO: Find how to detect if DX is complied into Irrlicht + //TODO: Find how to detecht for linux + break; + case 5: + drivertype = EDT_DIRECT3D9; + break; + default: + drivertype = EDT_SOFTWARE; + break; + } + this->device = createDevice(drivertype, dimension2d(width, height), bits, fullscreen, stencilbuffer, vsync, &this->IrrEvent); + if (this->device == 0) + exit(1); + IrrLib::Init(); +} + +IrrLib::~IrrLib (){ //Our moms wont clean up after us! + //Although I'm sure Irrlicht does this for us already, its always a good idea to check! + /*if (this->device != NULL) + delete this->device; + if (this->driver != NULL) + delete this->driver; + if (this->smgr != NULL) + delete this->smgr; + if (this->mesh != NULL) + delete this->mesh; + if (this->node != NULL) + delete this->node;*/ //it seems Irrlicht picks up after us... + //however we created newNodes, now we need to delete it! +} + +void IrrLib::Init(){ + //this->numNodes = 0; + //this->nodeNew = new ISceneNode[10]; + //this->env->addStaticText(L"Transparent Control:", rect(20,30,300,80), true); + this->env = this->device->getGUIEnvironment(); + this->driver = this->device->getVideoDriver(); + this->smgr = this->device->getSceneManager(); + Irr3DLib.SetSmgr(this->smgr); + Irr3DLib.SetDriver(this->driver); + Irr2DLib.SetSmgr(this->smgr); + Irr2DLib.SetDriver(this->driver); + GUI.SetEnv(this->env); + IrrEvent.SetDevice(this->device); + this->timer = this->device->getTimer(); + tick = this->timer->getRealTime(); +} + +void IrrLib::ReadArchive(std::string file){ + this->device->getFileSystem()->addZipFileArchive(file.c_str()); +} + +void IrrLib::LoadQ3Level(std::string q3level){ + this->mesh = this->smgr->getMesh(q3level.c_str()); + this->node = 0; + if (this->mesh) + this->node = this->smgr->addOctTreeSceneNode(this->mesh->getMesh(0), 0, -1, 128); +} + +void IrrLib::MapPos(int x, int y, int z){ + if (this->node) + this->node->setPosition(core::vector3df(x, y, z)); +} + +void IrrLib::MapPos(){ + if (this->node) + this->node->setPosition(core::vector3df(0, 0, 0)); +} + +void IrrLib::AddFPSCam(){ + this->cam = this->smgr->addCameraSceneNodeFPS(); +} + +void IrrLib::AddFPSCam(f32 x, f32 y, f32 z) +{ + this->cam = this->smgr->addCameraSceneNodeFPS(); + this->cam->setPosition(irr::core::vector3df(x, y, z)); +} + +void IrrLib::VisibleCursor(bool tf){ + if (tf == false) + this->device->getCursorControl()->setVisible(false); + else + this->device->getCursorControl()->setVisible(true); +} + +int IrrLib::GetFPSCount(){ + return this->driver->getFPS(); +} + +bool IrrLib::DeviceIsRunning(){ + return this->device->run(); +} + +bool IrrLib::IsActiveWindow(){ + return this->device->isWindowActive(); +} + +void IrrLib::BeginScene(){ + this->driver->beginScene(true, true, video::SColor(0,200,200,200)); +} + +void IrrLib::BeginScene(irr::video::SColor color){ + this->driver->beginScene(true, true, color); +} + +void IrrLib::BeginScene(bool usebackBuffer, bool usezBuffer, irr::video::SColor color){ + this->driver->beginScene(usebackBuffer, usezBuffer, color); +} + +void IrrLib::DrawAll(){ + this->smgr->drawAll(); + this->env->drawAll(); + //this->device->getGUIEnvironment()->drawAll(); + } + +void IrrLib::EndScene(){ + this->driver->endScene(); +} + +void IrrLib::SetWindowCaption(stringw str){ + this->device->setWindowCaption(str.c_str()); +} + +irr::core::stringw IrrLib::GetDriverName(){ + return this->driver->getName(); +} + +void IrrLib::EndIrrlicht(){ + if(this->device != NULL){ + this->device->drop(); + this->device = NULL; + } +} + +void IrrLib::KeyPress(char key){ + this->key = key; +} + +char IrrLib::KeyPressed(){ + return key; +} + +irr::f32 IrrLib::getX(){ + return this->smgr->getActiveCamera()->getPosition().X; +} + +irr::f32 IrrLib::getY(){ + return this->smgr->getActiveCamera()->getPosition().Y; +} + +irr::f32 IrrLib::getZ(){ + return this->smgr->getActiveCamera()->getPosition().Z; +} + +bool IrrLib::CheckGameLoop(){ + u32 now; + now = this->timer->getRealTime(); + if ((now - this->tick) >= 30){ + //this->tick == time (NULL); + return true; + } else { + return false; + } +} + +bool IrrLib::CheckGameLoop(u32 ms){ + u32 now; + now = this->timer->getRealTime(); + if ((now - this->tick) >= ms){ + this->tick = now; + return true; + } else { + return false; + } +} + +void IrrLib::Exit() +{ + this->device->closeDevice(); +} + +//template std::string IrrLib::to_string (T t) +/*std::string IrrLib::int_to_string (int t) +{ + std::stringstream ss; + ss << t; + return ss.str(); +}*/ +// This is in the base class now, every class that decends from that class has this ability. diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Stable Version/1.2.6/IrrLib.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Stable Version/1.2.6/IrrLib.h Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,118 @@ +/* + Irrlicht Library Wrapper + Created by: + Nathan Adams + Denzel Morris + Copyright (C) 2007 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ + +#ifndef IRRLIB_H +#define IRRLIB_H + +/* We should include some basic functions */ +#include +/* include strings */ +#include +#include +#include + +/* We have to include Irrlichts libs */ + + +#include "Irr3D.h" +#include "IrrColor.h" +#include "IrrLibGUI.h" +#include "IrrEventReciever.h" +#include "Irr2D.h" +#include "IrrLibBase.h" + +//Start class +class IrrLib: public IrrLibBase { + + private: + /* Create an Irrlicht device as private because the class should handle + All irrlicht interaction */ + irr::IrrlichtDevice *device; + // Tells Irrlicht what driver to use + //video::E_DRIVER_TYPE driverType; + + /* + Get a pointer to the video driver and the SceneManager so that + we do not always have to write device->getVideoDriver() and + device->getSceneManager(). + */ + irr::video::IVideoDriver* driver; + irr::scene::ISceneManager* smgr; + irr::gui::IGUIEnvironment* env; + + /* + Get a pointer to the 'mesh' aka the level. + Note: This is for Quake3 levels, ie bsp maps. + */ + irr::scene::IAnimatedMesh* mesh; + irr::scene::ISceneNode* node; + irr::scene::ISceneNode * tempNode; //use this to store nodeNew's data so we can resize it + irr::scene::ICameraSceneNode * cam; + char key; + + + void IrrLib::Init(); + /*friend class IrrColor; + friend class Irr2DLib; + friend class Sphere;*/ + friend class IrrEventReciever; + irr::u32 tick; + irr::ITimer* timer; + public: + //IrrSphere Sphere; //This has to be public to be able to access the Sphere class + /* IrrSphere is now in Irr3D class */ + //Prehaps put this into a IrrLib3D class? + Irr3D Irr3DLib; + IrrColor Color; //Color class...not much of a class but lets keep it OO + Irr2D Irr2DLib; //1/2 variable to be labeled like this due to variables not able to begin with a number + IrrLibGUI GUI; + IrrEventReciever IrrEvent; + IrrLib::IrrLib(); + //IrrLib::IrrLib(MastEventReceiver & receiver); + IrrLib::IrrLib(irr::video::E_DRIVER_TYPE drivertype, irr::core::dimension2d & res, irr::u32 bits, bool fullscreen, bool stencilbuffer, bool vsync); + IrrLib::IrrLib(int drivertype, int width, int height, int bits, bool fullscreen, bool stencilbuffer, bool vsync); + IrrLib::~IrrLib(); //Our moms wont clean up after us! + void IrrLib::ReadArchive(std::string file); + void IrrLib::LoadQ3Level(std::string q3level); + void IrrLib::MapPos(int x, int y, int z); //I think this moves the actual camera? + void IrrLib::MapPos(); + void IrrLib::AddFPSCam(); + void IrrLib::AddFPSCam(irr::f32 x, irr::f32 y, irr::f32 z); + void IrrLib::VisibleCursor(bool tf); + int IrrLib::GetFPSCount(); + bool IrrLib::DeviceIsRunning(); + bool IrrLib::IsActiveWindow(); + void IrrLib::BeginScene(); + void IrrLib::BeginScene(irr::video::SColor color); + //void IrrLib::BeginScene(irr::video::SColor * color); + void IrrLib::BeginScene(bool usebackBuffer, bool usezBuffer, irr::video::SColor color); + //TODO: Add one more for human readable colors and hex colors! + void IrrLib::DrawAll(); + void IrrLib::EndScene(); + void IrrLib::SetWindowCaption(irr::core::stringw str); + irr::core::stringw IrrLib::GetDriverName(); + //TODO: Make function to turn stringw to string and visa versa + void IrrLib::EndIrrlicht(); //Renamed from KillIrrlicht to EndIrrlicht + //TODO: Add logging + void IrrLib::KeyPress(char key); + char IrrLib::KeyPressed(); + irr::f32 getX(); + irr::f32 getY(); + irr::f32 getZ(); + bool CheckGameLoop(); + bool CheckGameLoop(irr::u32 ms); + void Exit(); + //void EndGameLoop(); + //template std::string to_string (T t); + +}; + +#endif diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Stable Version/1.2.6/IrrLibBase.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Stable Version/1.2.6/IrrLibBase.cpp Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,64 @@ +/* + Irrlicht Library Wrapper + Created by: + Nathan Adams + Denzel Morris + Copyright (C) 2007 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ + +#include +#include +#include "IrrLibBase.h" +#include +#include + +using namespace irr; +using namespace core; +using namespace scene; +using namespace video; +using namespace io; +using namespace gui; + +using namespace std; + +void IrrLibBase::SetDriver(IVideoDriver* driver) //can be overloaded +{ + this->driver = driver; +} + +void IrrLibBase::SetSmgr(ISceneManager* smgr) +{ + this->smgr = smgr; +} + +std::string IrrLibBase::int_to_string (int t) +{ + std::stringstream ss; + ss << t; + return ss.str(); +} + +std::string IrrLibBase::stringw_to_stdstring(irr::core::stringw sw) +{ + std::stringstream ss; + ss << sw.c_str(); + return ss.str(); +} +irr::core::stringw IrrLibBase::stdstring_to_stringw(std::string ss) +{ + stringw tmpw(ss.c_str()); + return tmpw; +} + +void IrrLibBase::SetDevice(irr::IrrlichtDevice *device) +{ + this->device = device; +} + +void IrrLibBase::init() +{ + +} diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Stable Version/1.2.6/IrrLibBase.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Stable Version/1.2.6/IrrLibBase.h Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,40 @@ +/* + Irrlicht Library Wrapper + Created by: + Nathan Adams + Denzel Morris + Copyright (C) 2007 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ + +#ifndef IRRLIBBASE_H +#define IRRLIBBASE_H + +/* We should include some basic functions */ +#include +/* include strings */ +#include + +/* We have to include Irrlichts libs */ +#include + +class IrrLibBase { + + protected: + irr::video::IVideoDriver* driver; + irr::scene::ISceneManager* smgr; + irr::IrrlichtDevice *device; + public: + void IrrLibBase::SetDriver(irr::video::IVideoDriver* driver); + void IrrLibBase::SetSmgr(irr::scene::ISceneManager* smgr); + void SetDevice(irr::IrrlichtDevice *device); + std::string int_to_string (int t); + std::string stringw_to_stdstring(irr::core::stringw sw); + irr::core::stringw stdstring_to_stringw(std::string ss); + void init(); + +}; + +#endif diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Stable Version/1.2.6/IrrLibData.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Stable Version/1.2.6/IrrLibData.h Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,55 @@ +/* + Irrlicht Library Wrapper + Created by: + Nathan Adams + Denzel Morris + Copyright (C) 2007 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ + +/* + Purpose of this class is to handle abstract data + Such as: + Stacks + Queues + Dynamic memory(arrays) + + Begininers probably wont use this class too much, its used mostly for the advanced - expert programmer. + Howerver, IrrLib and other classes will make use of this class. +*/ + + +/*class Stack { + int cap; + int count; + request *the_stack; + public: + void InitStack(int stacksize); + void Push(request value); + request Top(); + request Pop(); + ~Stack (); + int thecount(); + private: + void Push(request *&the_stack, int& nCount, int& nCap, request& value); + + //void R +}; + +class Queue { + int cap; + int count; + request *the_queue; + public: + void InitQueue(int queuesize); + request Pop(); + request Front(); + request Back(); + ~Queue(); + int thecount(); + void Push(request value); + private: + void Push(request *the_stack, int nCount, int nCap, request value); +};*/ \ No newline at end of file diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Stable Version/1.2.6/IrrLibGUI.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Stable Version/1.2.6/IrrLibGUI.cpp Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,160 @@ +/* + Irrlicht Library Wrapper + Created by: + Nathan Adams + Denzel Morris + Copyright (C) 2007 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ + +#include +#include +#include +#include + +#include "IrrLibGUI.h" + +using namespace irr; +using namespace core; +using namespace scene; +using namespace video; +using namespace io; +using namespace gui; + +using namespace std; + +IrrLibGUI::IrrLibGUI() +{ + //NA does it need to do anything at init? + this->nStaticText = 0; + this->nButton = 0; + this->nButtonid = 100; + //this->arrStaticText = new IGUIStaticText[10]; + //this->env = this->device->getGUIEnvironment(); //NA yes we do! +} + +IrrLibGUI::~IrrLibGUI() +{ + //NA Do we have to delete anything? +} + +void IrrLibGUI::SetEnv(IGUIEnvironment* env) +{ + this->env = env; + //env->addButton(rect(10,210,110,210 + 32), 0, 109, L"Quit", L"Exits Program"); +} + +int IrrLibGUI::addButton(const core::rect< s32 > & rectangle, IGUIElement *parent, s32 id, const wchar_t * text, const wchar_t * tooltiptext) +{ + arrButton.push_back(this->env->addButton(rectangle, parent, id, text, tooltiptext)); + ++nButton; + ++nButtonid; + return nButtonid - 1; +} + +void IrrLibGUI::Clear() +{ + this->env->clear(); +} + +void IrrLibGUI::DrawAll() +{ + this->env->drawAll(); +} + +int IrrLibGUI::AddToStaticArray(irr::gui::IGUIStaticText * addme) +{ + //arrStaticText[nStaticText] = addme; + arrStaticText.push_back(addme); + this->nStaticText++; + this->nButtonid++; + return this->nStaticText; +} + +void IrrLibGUI::AddStaticText() +{ + //rect(20,30,300,80), + this->env->addStaticText(L"Powered by IrrLib.", rect(20,30,300,80), true); +} + +int IrrLibGUI::AddStaticText(std::string message) +{ + irr::gui::IGUIStaticText * addthis; + stringw tmpw(message.c_str()); + addthis = this->env->addStaticText(tmpw.c_str(), rect(20,30,300,80), true); + return AddToStaticArray(addthis); +} + +int IrrLibGUI::AddStaticText(std::string message, int x1, int y1, int x2, int y2) +{ + irr::gui::IGUIStaticText * addthis; + stringw tmpw(message.c_str()); + addthis = this->env->addStaticText(tmpw.c_str(), rect(x1,y1,x2,y2), true); + return AddToStaticArray(addthis); +} + +int IrrLibGUI::AddStaticText(std::string message, int x1, int y1, int x2, int y2, bool border, bool wordwrap) +{ + irr::gui::IGUIStaticText * addthis; + stringw tmpw(message.c_str()); + addthis = this->env->addStaticText(tmpw.c_str(), rect(x1,y1,x2,y2), border, wordwrap); + return AddToStaticArray(addthis); +} + +int IrrLibGUI::AddStaticText(std::string message, int x1, int y1, int x2, int y2, bool border, bool wordwrap, int id, bool fillbackground) +{ + irr::gui::IGUIStaticText * addthis; + stringw tmpw(message.c_str()); + addthis = this->env->addStaticText(tmpw.c_str(), rect(x1,y1,x2,y2), border, wordwrap, 0, id, fillbackground); + return AddToStaticArray(addthis); +} + +int IrrLibGUI::AddStaticText(std::string message, const core::rect< s32 > &rectangle) +{ + irr::gui::IGUIStaticText * addthis; + stringw tmpw(message.c_str()); + addthis = this->env->addStaticText(tmpw.c_str(), rectangle); + return AddToStaticArray(addthis); +} + +int IrrLibGUI::AddStaticText(std::string message, const core::rect< s32 > &rectangle, bool border, bool wordwrap) +{ + irr::gui::IGUIStaticText * addthis; + stringw tmpw(message.c_str()); + addthis = this->env->addStaticText(tmpw.c_str(), rectangle, border, wordwrap); + return AddToStaticArray(addthis); +} + +int IrrLibGUI::AddStaticText(std::string message, const core::rect< s32 > &rectangle, bool border, bool wordwrap, int id, bool fillbackground) +{ + irr::gui::IGUIStaticText * addthis; + stringw tmpw(message.c_str()); + addthis = this->env->addStaticText(tmpw.c_str(), rectangle, border, wordwrap, 0, id, fillbackground); + return AddToStaticArray(addthis); +} + +void IrrLibGUI::ChangeStaticText(int nstatictext, std::string message) +{ + stringw tmpw(message.c_str()); + this->arrStaticText[this->nStaticText-1]->setText(tmpw.c_str()); +} + +void IrrLibGUI::ChangeFont(std::string fontfile) +{ + IGUISkin* skin = this->env->getSkin(); + IGUIFont* font = this->env->getFont(fontfile.c_str()); + if (font) + skin->setFont(font); +} + +int IrrLibGUI::AddButton(std::string text, int x1, int y1, int x2, int y2, std::string tooltiptext = "") +{ + return addButton(rect(x1, y1, x2, y2), 0, nButtonid, stdstring_to_stringw(text).c_str(), stdstring_to_stringw(tooltiptext).c_str()); +} + +int IrrLibGUI::AddButton(std::string text, core::rect & rect, std::string tooltiptext = "") +{ + return addButton(rect, 0, nButtonid, stdstring_to_stringw(text).c_str(), stdstring_to_stringw(tooltiptext).c_str()); +} diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Stable Version/1.2.6/IrrLibGUI.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Stable Version/1.2.6/IrrLibGUI.h Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,58 @@ +/* + Irrlicht Library Wrapper + Created by: + Nathan Adams + Denzel Morris + Copyright (C) 2007 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ + +#ifndef IRRLIBGUI_H +#define IRRLIBGUI_H + +#include +#include +#include +#include "IrrLibBase.h" + +class IrrLibGUI: public IrrLibBase { + private: + irr::gui::IGUISkin* skin; + irr::gui::IGUIFont* font; + irr::gui::IGUIEnvironment* env; + //TODO: Create an array storing all messages + int nStaticText; + //irr::gui::IGUIStaticText* arrStaticText[10]; + int nButton; + int nButtonid; + std::vector arrStaticText; + std::vector arrButton; + int AddToStaticArray(irr::gui::IGUIStaticText * addme); + int addButton(const irr::core::rect< irr::s32 > & rectangle, irr::gui::IGUIElement *parent = 0, irr::s32 id = 0, const wchar_t * text = 0, const wchar_t * tooltiptext = 0); + public: + IrrLibGUI(); + ~IrrLibGUI(); + void SetEnv(irr::gui::IGUIEnvironment* env); + void Clear(); + void DrawAll(); + //irr::gui::IGUIStaticText* IrrLibGUI::AddStaticText(); //NA eh a default text adder why not? + /* This is bad coding, we do not want to return an irrlicht object, we want to return a standard datatype because this class handles the GUI elements, not the user. */ + void AddStaticText(); //NA eh a default text adder why not? + int AddStaticText(std::string message); + int AddStaticText(std::string message, int x1, int y1, int x2, int y2); + int AddStaticText(std::string message, int x1, int y1, int x2, int y2, bool border, bool wordwrap); + int AddStaticText(std::string message, int x1, int y1, int x2, int y2, bool border, bool wordwrap, int id, bool fillbackground); + int AddStaticText(std::string message, const irr::core::rect< irr::s32 > &rectangle); + int AddStaticText(std::string message, const irr::core::rect< irr::s32 > &rectangle, bool border, bool wordwrap); + int AddStaticText(std::string message, const irr::core::rect< irr::s32 > &rectangle, bool border, bool wordwrap, int id, bool fillbackground); + int AddButton(std::string text, int x1, int y1, int x2, int y2, std::string tooltiptext); + int AddButton(std::string text, irr::core::rect & rect, std::string tooltiptext); + void ChangeStaticText(int nstatictext, std::string message); + void ChangeFont(std::string fontfile); + +}; + + +#endif diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Stable Version/1.2.6/IrrSphere.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Stable Version/1.2.6/IrrSphere.cpp Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,67 @@ +/* + Irrlicht Library Wrapper + Created by Nathan Adams + Copyright (C) 2007 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ +#include +#include "IrrLib.h" +#include "IrrSphere.h" +#include +#include + +using namespace irr; +using namespace core; +using namespace scene; +using namespace video; +using namespace io; +using namespace gui; + +using namespace std; + +void IrrSphere::SetSmgr(irr::scene::ISceneManager* smgr){ + this->smgr = smgr; +} + +void IrrSphere::SetDriver(irr::video::IVideoDriver* driver){ + this->driver = driver; +} + +int IrrSphere::CreateNewSphereNode(int x, int y, int z, std::string texture, bool light){ + //TODO: Resize after 10, and add 10 more to the mix! + //this->nodeNew[this->numNodes] = this->smgr->addSphereSceneNode(); + sphereNodes.push_back(this->smgr->addSphereSceneNode()); + this->sphereNodes[this->numNodes]->setPosition(core::vector3df(x,y,z)); + this->sphereNodes[this->numNodes]->setMaterialTexture(0, this->driver->getTexture(texture.c_str())); + this->sphereNodes[this->numNodes]->setMaterialFlag(video::EMF_LIGHTING, light); + this->numNodes++; + return this->numNodes--; + /*this->node = this->smgr->addSphereSceneNode(); + this->node->setPosition(core::vector3df(x,y,z)); + this->node->setMaterialTexture(0, this->driver->getTexture(texture.c_str())); + this->node->setMaterialFlag(video::EMF_LIGHTING, light);*/ +} + +irr::core::vector3df IrrSphere::GetSphereVector(int sphere){ + //We are converting to vectors, under construction NA + //return this->nodeNew[sphere]->getPosition(); + return this->sphereNodes[sphere]->getPosition(); +} + +void IrrSphere::SetSphereVector(int sphere, irr::core::vector3df v){ + this->sphereNodes[sphere]->setPosition(v); +} + +IrrSphere::IrrSphere(){ + this->numNodes = 0; +} + +IrrSphere::~IrrSphere(){ + /*for(int i = 0; i < numNodes; ++i) + delete this->nodeNew[i]; + + delete this->nodeNew;*/ + //We are using vectors now, no more memory clowing business NA +} diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Stable Version/1.2.6/IrrSphere.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Stable Version/1.2.6/IrrSphere.h Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,46 @@ +/* + Irrlicht Library Wrapper + Created by: + Nathan Adams + Denzel Morris + Copyright (C) 2007 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ + +#ifndef IRRSPHERE_H +#define IRRSPHERE_H +/* We should include some basic functions */ +#include +/* include strings */ +#include +#include + +/* We have to include Irrlichts libs */ +#include + +//#include "IrrLib.h" + + +class IrrSphere +{ + private: + //irr::scene::ISceneNode* nodeNew[10]; + //irr::scene::ISceneNode* nodeNew[10]; + std::vector sphereNodes; + int numNodes; + irr::scene::ISceneManager* smgr; + irr::video::IVideoDriver* driver; + public: + void IrrSphere::SetDriver(irr::video::IVideoDriver* driver); + void IrrSphere::SetSmgr(irr::scene::ISceneManager* smgr); + int IrrSphere::CreateNewSphereNode(int x, int y, int z, std::string texture, bool light); //this is going to take my advanced C++ skillz! + irr::core::vector3df IrrSphere::GetSphereVector(int sphere); + void IrrSphere::SetSphereVector(int sphere, irr::core::vector3df v); + IrrSphere::IrrSphere(); + //IrrSphere::IrrSphere(IrrLib*); + IrrSphere::~IrrSphere(); +}; + +#endif diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Stable Version/1.2.6/IrrSprite.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Stable Version/1.2.6/IrrSprite.cpp Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,49 @@ +/* + Irrlicht Library Wrapper + Created by: + Nathan Adams + Denzel Morris + Copyright (C) 2007 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ + +#include +#include +#include + +#include "IrrLib.h" +//Libraries we create go here +//#include "IrrSphere.h" +#include "IrrColor.h" +#include "IrrSprite.h" +//#include "Irr2D.h" + +using namespace irr; +using namespace core; +using namespace scene; +using namespace video; +using namespace io; +using namespace gui; + +using namespace std; + +IrrSprite::IrrSprite() +{ + //do stuff +} + +IrrSprite::~IrrSprite() +{ + //delete stuff +} + +void IrrSprite::SetDriver(irr::video::IVideoDriver* driver) +{ + this->driver = driver; +} +void IrrSprite::SetSmgr(irr::scene::ISceneManager* smgr) +{ + this->smgr = smgr; +} diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Stable Version/1.2.6/IrrSprite.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Stable Version/1.2.6/IrrSprite.h Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,45 @@ +/* + Irrlicht Library Wrapper + Created by: + Nathan Adams + Denzel Morris + Copyright (C) 2007 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ + +#ifndef IRRSPRITE_H +#define IRRSPRITE_H + +/* We should include some basic functions */ +#include +/* include strings */ +#include + +/* We have to include Irrlichts libs */ +#include + +//#include "IrrSphere.h" +#include "IrrColor.h" +//#include "Irr2D.h" +//#include "IrrSprite.h" + +//Start class +class IrrSprite { + + private: + + irr::video::IVideoDriver* driver; + irr::scene::ISceneManager* smgr; + public: + IrrSprite::IrrSprite(); + IrrSprite::~IrrSprite(); + void IrrSprite::SetDriver(irr::video::IVideoDriver* driver); + void IrrSprite::SetSmgr(irr::scene::ISceneManager* smgr); + +// I forgot a semicolon here....and it wasn't compling +//Thats 1 bad thing about OOP if there is an error you don't know where the @#$@# the problem is! +}; + +#endif diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Stable Version/1.2.6/README --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Stable Version/1.2.6/README Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,13 @@ + Irrlicht Library Wrapper + Created by Nathan Adams + Version 1.2.6 + Copyright (C) 2007 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. + + Please leave all files intact if you redistrubte this software. + +How to use: + Add all the files to your Irrlicht project, you could compile it into a DLL if you wanted too, but for now just add all the files to your project. + Then inside your complier add the directory that you have the IrrLib files and use #include "IrrLib.h" to refrence it, and you are good to go! \ No newline at end of file diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Stable Version/1.2.7/CHANGES --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Stable Version/1.2.7/CHANGES Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,53 @@ +Version 1.2 ++ Added a Irr3DLib class that will control all 3D objects ++ Also Added a Irr2D class that works on the same concept. ++ IrrSphere is now owned by Irr3DLib ++ Updated the examples using the latest code +Version 1.2.2 ++ Added IrrEventReciever to handle all input + - Still under work ++ Fixed some misc coding bugs ++ Added template class ++ Added sprite class ++ Added GUI class +Version 1.2.3 ++ IrrEventReciver now works as advertised ++ Baseclass is now being used + + A couple somewhat-useful functions + + int_to_string + + stringw_to_stdstring + + stdstring_to_stringw ++ GUI elements + + Static text is working ++ Under construction for a data type class +Version 1.2.4 ++ Implmented color codes accessiable through the class + + IrrLib.Color.RED (ect) +Version 1.2.5 ++ Implmented mouse events + + IrrLib.IrrEvent.getMouseX(); + + IrrLib.IrrEvent.getMouseY(); ++ Using vectors instead of static arrays + + Side note: Was going to use dynamic arrays, but C++ has vectors which are 10x better. ++ Added a default exit for when you hit esc + + Use IrrLib.IrrEvent.SetEscExit(false) to turn that off for your software + + Use IrrLib.IrrEvent.SetEscExit(true) to turn it back on ++ Every stable version will now include a windows DLL. + + Possible Linux .so file in the future. +Version 1.2.6 ++ Added a IrrEvent for buttons + + IrrLib.IrrEvent.checkButtonState(); + + See example for use ++ Added an AddButton function + + IrrLib.GUI.AddButton(..); + + See example for use ++ Problems with making the DLL + + reasearching +Version 1.2.7 ++ Fixed DLL Problem ++ Added an enum example to example 1 ++ Added more examples ++ Added example 9 ++ Added left click handling (see example 9) ++ Added AddLines function to Irr2D + + DrawLines function in Irr2D will draw the lines you add \ No newline at end of file diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Stable Version/1.2.7/CREDITS --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Stable Version/1.2.7/CREDITS Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,7 @@ +IrrLib +Created by + Nathan Adams + Denzel Morris + +From #irrlicht + Acid \ No newline at end of file diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Stable Version/1.2.7/Irr2D.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Stable Version/1.2.7/Irr2D.cpp Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,82 @@ +/* + Irrlicht Library Wrapper + Created by: + Nathan Adams + Denzel Morris + Copyright (C) 2007 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ + +#include +//#include "IrrLib.h" +//#include "IrrSphere.h" //You probably aren't going to be using 3D objects in a 2D environment! +#include +#include + +#include "Irr2D.h" +#include "IrrSprite.h" + +using namespace irr; +using namespace core; +using namespace scene; +using namespace video; +using namespace io; +using namespace gui; + +using namespace std; + +Irr2D::Irr2D(){ + this->numTextures = 0; + this->numLines = 0; + //NA Should we set textures to new +} + +Irr2D::~Irr2D(){ + /*for(int i = 0; i < numTextures; ++i) + delete this->textures[i]; + + delete this->textures;*/ + //No more dynamic memory business yay! NA +} + +void Irr2D::SetSmgr(irr::scene::ISceneManager* smgr){ + this->smgr = smgr; + Sprite.SetSmgr(smgr); +} + +void Irr2D::SetDriver(irr::video::IVideoDriver* driver){ + this->driver = driver; + Sprite.SetDriver(driver); +} + +void Irr2D::LoadTexturemap(std::string file){ + this->texturemap = driver->getTexture(file.c_str()); +} + +int Irr2D::LoadTexture(std::string file){ + //this->textures[this->numTextures] = driver->getTexture(file.c_str()); + textures.push_back(driver->getTexture(file.c_str())); + this->numTextures++; + return numTextures--; +} + +void Irr2D::DrawLine(irr::core::position2d& start, irr::core::position2d& end, irr::video::SColor& color) +{ + this->driver->draw2DLine(start, end, color); +} + +void Irr2D::AddLines(irr::core::position2d& start, irr::core::position2d& end, irr::video::SColor& color) +{ + this->start.push_back(start); + this->end.push_back(end); + this->color.push_back(color); + this->numLines++; +} + +void Irr2D::DrawLines() +{ + for(int i = 0; i < numLines; ++i) + this->driver->draw2DLine(this->start[i], this->end[i], this->color[i]); +} \ No newline at end of file diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Stable Version/1.2.7/Irr2D.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Stable Version/1.2.7/Irr2D.h Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,55 @@ +/* + Irrlicht Library Wrapper + Created by: + Nathan Adams + Denzel Morris + Copyright (C) 2007 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ + +#ifndef IRR2D_H +#define IRR2D_H +/* We should include some basic functions */ +#include +/* include strings */ +#include +#include + +/* We have to include Irrlichts libs */ +#include + +//#include "IrrLib.h" +#include "IrrSprite.h" + +class Irr2D { + private: + irr::scene::ISceneManager* smgr; + irr::video::IVideoDriver* driver; + irr::video::ITexture* texturemap; + int numTextures; + //irr::video::ITexture* textures[10]; + std::vector textures; + std::vector > start; + std::vector > end; + std::vector color; + int numLines; + public: + //Irr2D::Irr2D(); + IrrSprite Sprite; + Irr2D::Irr2D(); + Irr2D::~Irr2D(); + void Irr2D::SetDriver(irr::video::IVideoDriver* driver); + void Irr2D::SetSmgr(irr::scene::ISceneManager* smgr); + void Irr2D::LoadTexturemap(std::string file); + int Irr2D::LoadTexture(std::string file); + void Irr2D::DrawImage(int texture, const irr::core::position2d & destPos); + void Irr2D::DrawImage(const irr::core::position2d & destPos, const irr::core::rect & sourceRect, const irr::core::rect * clipRect, irr::video::SColor color, bool useAlphaChannelOfTexture); + void Irr2D::DrawLine(irr::core::position2d& start, irr::core::position2d& end, irr::video::SColor& color); + void Irr2D::DrawLines(); + void Irr2D::AddLines(irr::core::position2d& start, irr::core::position2d& end, irr::video::SColor& color); +}; + +#endif + diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Stable Version/1.2.7/Irr3D.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Stable Version/1.2.7/Irr3D.cpp Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,52 @@ +/* + Irrlicht Library Wrapper + Created by: + Nathan Adams + Denzel Morris + Copyright (C) 2007 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ + +#include +#include + +//#include "IrrLib.h" +//Libraries we create go here +#include "IrrSphere.h" +//#include "IrrColor.h" +#include "Irr3D.h" +#include +//#include "Irr2D.h" + +using namespace irr; +using namespace core; +using namespace scene; +using namespace video; +using namespace io; +using namespace gui; + +using namespace std; + +void Irr3D::SetDriver(irr::video::IVideoDriver* driver) //so much for copying and pasting code from the header file +{ + this->driver = driver; + Sphere.SetDriver(driver); +} + +void Irr3D::SetSmgr(irr::scene::ISceneManager* smgr) +{ + this->smgr = smgr; + Sphere.SetSmgr(smgr); +} + +Irr3D::Irr3D() +{ + //do stuff here! +} + +Irr3D::~Irr3D() +{ + //delete stuff here! +} diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Stable Version/1.2.7/Irr3D.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Stable Version/1.2.7/Irr3D.h Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,44 @@ +/* + Irrlicht Library Wrapper + Created by: + Nathan Adams + Denzel Morris + Copyright (C) 2007 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ + +#ifndef IRR3D_H +#define IRR3D_H + +/* We should include some basic functions */ +#include +/* include strings */ +#include + +/* We have to include Irrlichts libs */ +#include + +#include "IrrSphere.h" +//#include "IrrColor.h" +//#include "Irr3D.h" +//#include "Irr2D.h" This is a 3D class not 2D +/* However due to Irrlciht's nature mixing 2D with 3D is possible */ + +//Start class +class Irr3D { + + private: + + irr::video::IVideoDriver* driver; + irr::scene::ISceneManager* smgr; + public: + IrrSphere Sphere; + Irr3D::Irr3D(); + Irr3D::~Irr3D(); + void Irr3D::SetDriver(irr::video::IVideoDriver* driver); + void Irr3D::SetSmgr(irr::scene::ISceneManager* smgr); +}; + +#endif diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Stable Version/1.2.7/IrrColor.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Stable Version/1.2.7/IrrColor.cpp Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,102 @@ +/* + Irrlicht Library Wrapper + Created by: + Nathan Adams + Denzel Morris + Copyright (C) 2007 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ + +#include +#include +#include + +//#include "IrrLib.h" +#include "IrrColor.h" + +using namespace irr; +using namespace core; +using namespace scene; +using namespace video; +using namespace io; +using namespace gui; + +using namespace std; + +void IrrColor::Init(){ + /*SColor * temp; + temp = new SColor(alpha, 255, 0, 0); + this->RED = temp; + delete temp;*/ + this->RED = SColor(alpha, 255, 0, 0); + this->ORANGE = SColor(alpha, 255, 165, 0); + this->YELLOW = SColor(alpha, 255, 255, 0); + this->GREEN = SColor(alpha, 0, 255, 0); + this->BLUE = SColor(alpha, 0, 0, 255); + this->DARK_GREEN = SColor(alpha, 0, 100, 0); + this->PINK = SColor(alpha, 255, 192, 203); + this->GREY = SColor(alpha, 190, 190, 190); +} + +IrrColor::~IrrColor(){ + //delete this->RED; +} + +IrrColor::IrrColor(){ + this->alpha = 255; + Init(); +} + +IrrColor::IrrColor(irr::u32 alpha){ + this->alpha = alpha; + Init(); +} + +int IrrColor::getAlpha(){ + return this->alpha; +} + +void IrrColor::setAlpha(int alpha){ + this->alpha = alpha; +} + +SColor IrrColor::returnColor(std::string color){ + int nColor = -1; + if (color == "red") + nColor = 1; + else if (color == "green") + nColor = 2; + else if (color == "blue") + nColor = 3; + else if (color == "dark green") + nColor = 4; + else if (color == "pink") + nColor = 5; + else if (color == "grey") + nColor = 6; + switch (nColor){ + case 1: + return SColor(255, 255, 0, 0); + break; + case 2: + return SColor(255, 0, 255, 0); + break; + case 3: + return SColor(255, 0, 0, 255); + break; + case 4: + return SColor(255, 0, 50, 0); + break; + case 5: + return SColor(255, 255, 10, 255); + break; + case 6: + return SColor(255,200,200,200); + break; + default: + return SColor(255,200,200,200); + break; + }// TODO: Make this function modular +} diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Stable Version/1.2.7/IrrColor.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Stable Version/1.2.7/IrrColor.h Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,51 @@ +/* + Irrlicht Library Wrapper + Created by: + Nathan Adams + Denzel Morris + Copyright (C) 2007 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ + +#ifndef IRRCOLOR_H +#define IRRCOLOR_H + +#include +#include +#include "irrlicht.h" +//#include "IrrLib.h" + +class IrrColor { + private: + irr::u32 alpha; + void Init(); + //who knows? + public: + //irr::video::SColor(alpha, 255, 0, 0); + irr::video::SColor RED; + irr::video::SColor ORANGE; + irr::video::SColor YELLOW; + irr::video::SColor GREEN; + irr::video::SColor BLUE; + irr::video::SColor DARK_GREEN; + irr::video::SColor PINK; + irr::video::SColor GREY; + /*const ORANGE = irr::video::SColor(alpha, 255, 165, 0); + const YELLOW = irr::video::SColor(alpha, 255, 255, 0); + const GREEN = irr::video::SColor(alpha, 0, 255, 0); + const BLUE = irr::video::SColor(alpha, 0, 0, 255); + const DARK_GREEN = irr::video::SColor(alpha, 0, 100, 0); + const PINK = irr::video::SColor(alpha, 255, 192, 203); + const GREY = irr::video::Scolor(alpha, 190, 190, 190);*/ + //void IrrColor::test(); + IrrColor(); + IrrColor(irr::u32 alpha); + ~IrrColor(); + int getAlpha(); + void setAlpha(int alpha); + irr::video::SColor IrrColor::returnColor(std::string color); +}; + +#endif diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Stable Version/1.2.7/IrrEventReciever.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Stable Version/1.2.7/IrrEventReciever.cpp Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,142 @@ +/* + Irrlicht Library Wrapper + Created by: + Nathan Adams + Denzel Morris + Copyright (C) 2007 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ + +#include "IrrEventReciever.h" +//#include "IrrLib.h" +#include +#include + +using namespace irr; +using namespace core; +using namespace scene; +using namespace video; +using namespace io; +using namespace gui; + +using namespace std; + +/*void IrrEventReciever::setIrrLib(IrrLib& IrrLib) +{ + this.callingIrrLib = IrrLib; +}*/ + +IrrEventReciever::IrrEventReciever() +{ + this->escexit = true; + this->mouse.x = 0; + this->mouse.y = 0; +} + +bool IrrEventReciever::OnEvent(SEvent event) +{ + // A button was clicked + if (event.EventType == irr::EET_GUI_EVENT) + { + switch(event.GUIEvent.EventType){ + case EGET_BUTTON_CLICKED: + s32 id = event.GUIEvent.Caller->getID(); + //cout << id << endl; + buttonStates.push_back(id); + break; + default: + break; + } + } + /*if (event.EventType == irr::EGET_SCROLL_BAR_CHANGED) + { + + }*/ + if (event.EventType == irr::EET_KEY_INPUT_EVENT) { + if (!event.KeyInput.PressedDown){ + this->keyStates[event.KeyInput.Key] = false; + //cout << "Key was not hit " << this->keyStates[event.KeyInput.Key] << endl; + } + else{ + if(event.KeyInput.Key == KEY_ESCAPE && escexit) + this->device->closeDevice(); + this->keyStates[event.KeyInput.Key] = true; + //cout << "Key was hit: " << event.KeyInput.Key << " " << this->keyStates[event.KeyInput.Key] << endl; + } + } + if (event.EventType == EET_MOUSE_INPUT_EVENT){ + if (event.MouseInput.Event == EMIE_MOUSE_MOVED){ + this->mouse.x = event.MouseInput.X; + this->mouse.y = event.MouseInput.Y; + } + if (event.MouseInput.Event == EMIE_LMOUSE_PRESSED_DOWN) + this->mouseStates[0] = true; + if (event.MouseInput.Event == EMIE_LMOUSE_LEFT_UP) + this->mouseStates[0] = false; + } + return false; +} + +void IrrEventReciever::SetEscExit(bool onoff) +{ + this->escexit = onoff; +} + +int IrrEventReciever::getMouseX() +{ + return this->mouse.x; +} + +int IrrEventReciever::getMouseY() +{ + return this->mouse.y; +} + +int IrrEventReciever::getButtonState() +{ + if(!this->buttonStates.empty()){ + int id; + id = buttonStates.back(); + this->buttonStates.pop_back(); + return id; + } + else + return -1; +} + +int IrrEventReciever::getRevButtonState() +{ + if(!this->buttonStates.empty()){ + int id = buttonStates.front(); + this->buttonStates.erase(buttonStates.begin()); + return id; + } + else + return -1; +} + +void IrrEventReciever::clearButtonState() +{ + this->buttonStates.clear(); +} + +int IrrEventReciever::checkButtonState() +{ + if(!this->buttonStates.empty()) + return this->buttonStates.back(); + else + return -1; +} + +void IrrEventReciever::delLastButtonStat() +{ + if(!this->buttonStates.empty()) + this->buttonStates.pop_back(); +} + +bool IrrEventReciever::isButtonStateEmpty() +{ + return this->buttonStates.empty(); +} diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Stable Version/1.2.7/IrrEventReciever.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Stable Version/1.2.7/IrrEventReciever.h Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,49 @@ +/* + Irrlicht Library Wrapper + Created by: + Nathan Adams + Denzel Morris + Copyright (C) 2007 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ + +#ifndef IRREVENTRECIEVER_H +#define IRREVENTRECIEVER_H + +//#include "IrrLib.h" +#include +#include +#include "IrrLibBase.h" + +struct _mouse { + int x; + int y; +}; + +class IrrEventReciever : public irr::IEventReceiver, public IrrLibBase +{ + private: + //IrrLib callingIrrLib; + _mouse mouse; + bool escexit; + std::vector buttonStates; + public: + bool mouseStates[1]; + IrrEventReciever(); + int getMouseX(); + int getMouseY(); + bool keyStates[irr::KEY_KEY_CODES_COUNT]; + //void setIrrLib(IrrLib& IrrLib) + virtual bool OnEvent(irr::SEvent event); + void SetEscExit(bool onoff); + int getButtonState(); + int getRevButtonState(); + void clearButtonState(); + int checkButtonState(); + void delLastButtonStat(); + bool isButtonStateEmpty(); //is there still stuff in the vector to be done? NA +}; + +#endif diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Stable Version/1.2.7/IrrLib.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Stable Version/1.2.7/IrrLib.cpp Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,280 @@ +/* + Irrlicht Library Wrapper + Created by: + Nathan Adams + Denzel Morris + Copyright (C) 2007 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ + +#include +#include +#include +#include +#include + +#include "IrrLib.h" +//Libraries we create go here +//#include "IrrSphere.h" +#include "IrrColor.h" +//#include "Irr2D.h" + +using namespace irr; +using namespace core; +using namespace scene; +using namespace video; +using namespace io; +using namespace gui; + +using namespace std; + +//TODO: Create own class for handling inputs! + + +/*IrrLib::IrrLib(MastEventReceiver & receiver){ + this->device = createDevice(EDT_SOFTWARE, dimension2d(640, 480), 16, false, false, false, &receiver); + if (this->device == 0) + exit(1); + IrrLib::Init(); +}*/ + +IrrLib::IrrLib(){ + this->device = createDevice(EDT_SOFTWARE, dimension2d(640, 480), 16, false, false, false, &this->IrrEvent); + if (this->device == 0) + exit(1); + IrrLib::Init(); +} + +IrrLib::IrrLib(video::E_DRIVER_TYPE drivertype, core::dimension2d & res, u32 bits, bool fullscreen, bool stencilbuffer, bool vsync){ + //MyEventReceiver receiver; + this->device = createDevice(drivertype, res, bits, fullscreen, stencilbuffer, vsync, &this->IrrEvent); + if (this->device == 0) + exit(1); + IrrLib::Init(); +} + +IrrLib::IrrLib(int nDrivertype, int width, int height, int bits, bool fullscreen, bool stencilbuffer, bool vsync){ + //MyEventReceiver receiver; + video::E_DRIVER_TYPE drivertype; + switch (nDrivertype){ + case 0: //TODO: finish this switch case + drivertype = EDT_NULL; + break; + case 1: + drivertype = EDT_SOFTWARE; + break; + case 2: + drivertype = EDT_BURNINGSVIDEO; + break; + case 3: + drivertype = EDT_OPENGL; + break; + case 4: + drivertype = EDT_DIRECT3D8; + //*Note: It seems as Microsoft has stoped supporting DX 8.1, so you can not compile it into Irrlicht engine anymore + //TODO: Find how to detect if DX is complied into Irrlicht + //TODO: Find how to detecht for linux + break; + case 5: + drivertype = EDT_DIRECT3D9; + break; + default: + drivertype = EDT_SOFTWARE; + break; + } + this->device = createDevice(drivertype, dimension2d(width, height), bits, fullscreen, stencilbuffer, vsync, &this->IrrEvent); + if (this->device == 0) + exit(1); + IrrLib::Init(); +} + +IrrLib::~IrrLib (){ //Our moms wont clean up after us! + //Although I'm sure Irrlicht does this for us already, its always a good idea to check! + /*if (this->device != NULL) + delete this->device; + if (this->driver != NULL) + delete this->driver; + if (this->smgr != NULL) + delete this->smgr; + if (this->mesh != NULL) + delete this->mesh; + if (this->node != NULL) + delete this->node;*/ //it seems Irrlicht picks up after us... + //however we created newNodes, now we need to delete it! +} + +void IrrLib::Init(){ + //this->numNodes = 0; + //this->nodeNew = new ISceneNode[10]; + //this->env->addStaticText(L"Transparent Control:", rect(20,30,300,80), true); + this->env = this->device->getGUIEnvironment(); + this->driver = this->device->getVideoDriver(); + this->smgr = this->device->getSceneManager(); + Irr3DLib.SetSmgr(this->smgr); + Irr3DLib.SetDriver(this->driver); + Irr2DLib.SetSmgr(this->smgr); + Irr2DLib.SetDriver(this->driver); + GUI.SetEnv(this->env); + IrrEvent.SetDevice(this->device); + this->timer = this->device->getTimer(); + tick = this->timer->getRealTime(); +} + +void IrrLib::ReadArchive(std::string file){ + this->device->getFileSystem()->addZipFileArchive(file.c_str()); +} + +void IrrLib::LoadQ3Level(std::string q3level){ + this->mesh = this->smgr->getMesh(q3level.c_str()); + this->node = 0; + if (this->mesh) + this->node = this->smgr->addOctTreeSceneNode(this->mesh->getMesh(0), 0, -1, 128); +} + +void IrrLib::MapPos(int x, int y, int z){ + if (this->node) + this->node->setPosition(core::vector3df(x, y, z)); +} + +void IrrLib::MapPos(){ + if (this->node) + this->node->setPosition(core::vector3df(0, 0, 0)); +} + +void IrrLib::AddFPSCam(){ + this->cam = this->smgr->addCameraSceneNodeFPS(); +} + +void IrrLib::AddFPSCam(f32 x, f32 y, f32 z) +{ + this->cam = this->smgr->addCameraSceneNodeFPS(); + this->cam->setPosition(irr::core::vector3df(x, y, z)); +} + +void IrrLib::VisibleCursor(bool tf){ + if (tf == false) + this->device->getCursorControl()->setVisible(false); + else + this->device->getCursorControl()->setVisible(true); +} + +int IrrLib::GetFPSCount(){ + return this->driver->getFPS(); +} + +bool IrrLib::DeviceIsRunning(){ + return this->device->run(); +} + +bool IrrLib::IsActiveWindow(){ + return this->device->isWindowActive(); +} + +void IrrLib::BeginScene(){ + this->driver->beginScene(true, true, video::SColor(0,200,200,200)); +} + +void IrrLib::BeginScene(irr::video::SColor color){ + this->driver->beginScene(true, true, color); +} + +void IrrLib::BeginScene(bool usebackBuffer, bool usezBuffer, irr::video::SColor color){ + this->driver->beginScene(usebackBuffer, usezBuffer, color); +} + +void IrrLib::DrawAll(){ + //position2d start(50, 50); + //position2d end(100,100); + // SColor whitecolor(255,255,255,255); +//driver->draw2DLine(start, end, whitecolor); + this->smgr->drawAll(); + this->env->drawAll(); + //this->device->getGUIEnvironment()->drawAll(); + } + +void IrrLib::EndScene(){ + this->driver->endScene(); +} + +void IrrLib::SetWindowCaption(stringw str){ + this->device->setWindowCaption(str.c_str()); +} + +irr::core::stringw IrrLib::GetDriverName(){ + return this->driver->getName(); +} + +void IrrLib::EndIrrlicht(){ + if(this->device != NULL){ + this->device->drop(); + this->device = NULL; + } +} + +void IrrLib::KeyPress(char key){ + this->key = key; +} + +char IrrLib::KeyPressed(){ + return key; +} + +irr::f32 IrrLib::getX(){ + return this->smgr->getActiveCamera()->getPosition().X; +} + +irr::f32 IrrLib::getY(){ + return this->smgr->getActiveCamera()->getPosition().Y; +} + +irr::f32 IrrLib::getZ(){ + return this->smgr->getActiveCamera()->getPosition().Z; +} + +bool IrrLib::CheckGameLoop(){ + u32 now; + now = this->timer->getRealTime(); + if ((now - this->tick) >= 30){ + //this->tick == time (NULL); + return true; + } else { + return false; + } +} + +bool IrrLib::CheckGameLoop(u32 ms){ + u32 now; + now = this->timer->getRealTime(); + if ((now - this->tick) >= ms){ + this->tick = now; + return true; + } else { + return false; + } +} + +void IrrLib::Exit() +{ + this->device->closeDevice(); +} + +dimension2d IrrLib::GetScreenSize() +{ + return this->driver->getScreenSize(); + /*pixels returnres; + returnres.width = screenres.Width; + returnres.height = screenres.Height; + return returnres;*/ + +} + +//template std::string IrrLib::to_string (T t) +/*std::string IrrLib::int_to_string (int t) +{ + std::stringstream ss; + ss << t; + return ss.str(); +}*/ +// This is in the base class now, every class that decends from that class has this ability. diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Stable Version/1.2.7/IrrLib.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Stable Version/1.2.7/IrrLib.h Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,119 @@ +/* + Irrlicht Library Wrapper + Created by: + Nathan Adams + Denzel Morris + Copyright (C) 2007 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ + +#ifndef IRRLIB_H +#define IRRLIB_H + +/* We should include some basic functions */ +#include +/* include strings */ +#include +#include +#include + +/* We have to include Irrlichts libs */ + + +#include "Irr3D.h" +#include "IrrColor.h" +#include "IrrLibGUI.h" +#include "IrrEventReciever.h" +#include "Irr2D.h" +#include "IrrLibBase.h" + +//Start class +class IrrLib: public IrrLibBase { + + private: + /* Create an Irrlicht device as private because the class should handle + All irrlicht interaction */ + irr::IrrlichtDevice *device; + // Tells Irrlicht what driver to use + //video::E_DRIVER_TYPE driverType; + + /* + Get a pointer to the video driver and the SceneManager so that + we do not always have to write device->getVideoDriver() and + device->getSceneManager(). + */ + irr::video::IVideoDriver* driver; + irr::scene::ISceneManager* smgr; + irr::gui::IGUIEnvironment* env; + + /* + Get a pointer to the 'mesh' aka the level. + Note: This is for Quake3 levels, ie bsp maps. + */ + irr::scene::IAnimatedMesh* mesh; + irr::scene::ISceneNode* node; + irr::scene::ISceneNode * tempNode; //use this to store nodeNew's data so we can resize it + irr::scene::ICameraSceneNode * cam; + char key; + + + void IrrLib::Init(); + /*friend class IrrColor; + friend class Irr2DLib; + friend class Sphere;*/ + friend class IrrEventReciever; + irr::u32 tick; + irr::ITimer* timer; + public: + //IrrSphere Sphere; //This has to be public to be able to access the Sphere class + /* IrrSphere is now in Irr3D class */ + //Prehaps put this into a IrrLib3D class? + Irr3D Irr3DLib; + IrrColor Color; //Color class...not much of a class but lets keep it OO + Irr2D Irr2DLib; //1/2 variable to be labeled like this due to variables not able to begin with a number + IrrLibGUI GUI; + IrrEventReciever IrrEvent; + IrrLib::IrrLib(); + //IrrLib::IrrLib(MastEventReceiver & receiver); + IrrLib::IrrLib(irr::video::E_DRIVER_TYPE drivertype, irr::core::dimension2d & res, irr::u32 bits, bool fullscreen, bool stencilbuffer, bool vsync); + IrrLib::IrrLib(int drivertype, int width, int height, int bits, bool fullscreen, bool stencilbuffer, bool vsync); + IrrLib::~IrrLib(); //Our moms wont clean up after us! + void IrrLib::ReadArchive(std::string file); + void IrrLib::LoadQ3Level(std::string q3level); + void IrrLib::MapPos(int x, int y, int z); //I think this moves the actual camera? + void IrrLib::MapPos(); + void IrrLib::AddFPSCam(); + void IrrLib::AddFPSCam(irr::f32 x, irr::f32 y, irr::f32 z); + void IrrLib::VisibleCursor(bool tf); + int IrrLib::GetFPSCount(); + bool IrrLib::DeviceIsRunning(); + bool IrrLib::IsActiveWindow(); + void IrrLib::BeginScene(); + void IrrLib::BeginScene(irr::video::SColor color); + //void IrrLib::BeginScene(irr::video::SColor * color); + void IrrLib::BeginScene(bool usebackBuffer, bool usezBuffer, irr::video::SColor color); + //TODO: Add one more for human readable colors and hex colors! + void IrrLib::DrawAll(); + void IrrLib::EndScene(); + void IrrLib::SetWindowCaption(irr::core::stringw str); + irr::core::stringw IrrLib::GetDriverName(); + //TODO: Make function to turn stringw to string and visa versa + void IrrLib::EndIrrlicht(); //Renamed from KillIrrlicht to EndIrrlicht + //TODO: Add logging + void IrrLib::KeyPress(char key); + char IrrLib::KeyPressed(); + irr::f32 getX(); + irr::f32 getY(); + irr::f32 getZ(); + bool CheckGameLoop(); + bool CheckGameLoop(irr::u32 ms); + void Exit(); + irr::core::dimension2d GetScreenSize(); + //void EndGameLoop(); + //template std::string to_string (T t); + +}; + +#endif diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Stable Version/1.2.7/IrrLibBase.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Stable Version/1.2.7/IrrLibBase.cpp Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,64 @@ +/* + Irrlicht Library Wrapper + Created by: + Nathan Adams + Denzel Morris + Copyright (C) 2007 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ + +#include +#include +#include "IrrLibBase.h" +#include +#include + +using namespace irr; +using namespace core; +using namespace scene; +using namespace video; +using namespace io; +using namespace gui; + +using namespace std; + +void IrrLibBase::SetDriver(IVideoDriver* driver) //can be overloaded +{ + this->driver = driver; +} + +void IrrLibBase::SetSmgr(ISceneManager* smgr) +{ + this->smgr = smgr; +} + +std::string IrrLibBase::int_to_string (int t) +{ + std::stringstream ss; + ss << t; + return ss.str(); +} + +std::string IrrLibBase::stringw_to_stdstring(irr::core::stringw sw) +{ + std::stringstream ss; + ss << sw.c_str(); + return ss.str(); +} +irr::core::stringw IrrLibBase::stdstring_to_stringw(std::string ss) +{ + stringw tmpw(ss.c_str()); + return tmpw; +} + +void IrrLibBase::SetDevice(irr::IrrlichtDevice *device) +{ + this->device = device; +} + +void IrrLibBase::init() +{ + +} diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Stable Version/1.2.7/IrrLibBase.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Stable Version/1.2.7/IrrLibBase.h Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,44 @@ +/* + Irrlicht Library Wrapper + Created by: + Nathan Adams + Denzel Morris + Copyright (C) 2007 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ + +#ifndef IRRLIBBASE_H +#define IRRLIBBASE_H + +/* We should include some basic functions */ +#include +/* include strings */ +#include + +/* We have to include Irrlichts libs */ +#include + +class IrrLibBase { + + protected: + irr::video::IVideoDriver* driver; + irr::scene::ISceneManager* smgr; + irr::IrrlichtDevice *device; + public: + struct pixels { + int width; + int height; + }; //possible future use in 2D objects when specifying the properties of an object draw + void IrrLibBase::SetDriver(irr::video::IVideoDriver* driver); + void IrrLibBase::SetSmgr(irr::scene::ISceneManager* smgr); + void SetDevice(irr::IrrlichtDevice *device); + std::string int_to_string (int t); + std::string stringw_to_stdstring(irr::core::stringw sw); + irr::core::stringw stdstring_to_stringw(std::string ss); + void init(); + +}; + +#endif diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Stable Version/1.2.7/IrrLibGUI.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Stable Version/1.2.7/IrrLibGUI.cpp Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,160 @@ +/* + Irrlicht Library Wrapper + Created by: + Nathan Adams + Denzel Morris + Copyright (C) 2007 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ + +#include +#include +#include +#include + +#include "IrrLibGUI.h" + +using namespace irr; +using namespace core; +using namespace scene; +using namespace video; +using namespace io; +using namespace gui; + +using namespace std; + +IrrLibGUI::IrrLibGUI() +{ + //NA does it need to do anything at init? + this->nStaticText = 0; + this->nButton = 0; + this->nButtonid = 100; + //this->arrStaticText = new IGUIStaticText[10]; + //this->env = this->device->getGUIEnvironment(); //NA yes we do! +} + +IrrLibGUI::~IrrLibGUI() +{ + //NA Do we have to delete anything? +} + +void IrrLibGUI::SetEnv(IGUIEnvironment* env) +{ + this->env = env; + //env->addButton(rect(10,210,110,210 + 32), 0, 109, L"Quit", L"Exits Program"); +} + +int IrrLibGUI::addButton(const core::rect< s32 > & rectangle, IGUIElement *parent, s32 id, const wchar_t * text, const wchar_t * tooltiptext) +{ + arrButton.push_back(this->env->addButton(rectangle, parent, id, text, tooltiptext)); + ++nButton; + ++nButtonid; + return nButtonid - 1; +} + +void IrrLibGUI::Clear() +{ + this->env->clear(); +} + +void IrrLibGUI::DrawAll() +{ + this->env->drawAll(); +} + +int IrrLibGUI::AddToStaticArray(irr::gui::IGUIStaticText * addme) +{ + //arrStaticText[nStaticText] = addme; + arrStaticText.push_back(addme); + this->nStaticText++; + this->nButtonid++; + return this->nStaticText; +} + +void IrrLibGUI::AddStaticText() +{ + //rect(20,30,300,80), + this->env->addStaticText(L"Powered by IrrLib.", rect(20,30,300,80), true); +} + +int IrrLibGUI::AddStaticText(std::string message) +{ + irr::gui::IGUIStaticText * addthis; + stringw tmpw(message.c_str()); + addthis = this->env->addStaticText(tmpw.c_str(), rect(20,30,300,80), true); + return AddToStaticArray(addthis); +} + +int IrrLibGUI::AddStaticText(std::string message, int x1, int y1, int x2, int y2) +{ + irr::gui::IGUIStaticText * addthis; + stringw tmpw(message.c_str()); + addthis = this->env->addStaticText(tmpw.c_str(), rect(x1,y1,x2,y2), true); + return AddToStaticArray(addthis); +} + +int IrrLibGUI::AddStaticText(std::string message, int x1, int y1, int x2, int y2, bool border, bool wordwrap) +{ + irr::gui::IGUIStaticText * addthis; + stringw tmpw(message.c_str()); + addthis = this->env->addStaticText(tmpw.c_str(), rect(x1,y1,x2,y2), border, wordwrap); + return AddToStaticArray(addthis); +} + +int IrrLibGUI::AddStaticText(std::string message, int x1, int y1, int x2, int y2, bool border, bool wordwrap, int id, bool fillbackground) +{ + irr::gui::IGUIStaticText * addthis; + stringw tmpw(message.c_str()); + addthis = this->env->addStaticText(tmpw.c_str(), rect(x1,y1,x2,y2), border, wordwrap, 0, id, fillbackground); + return AddToStaticArray(addthis); +} + +int IrrLibGUI::AddStaticText(std::string message, const core::rect< s32 > &rectangle) +{ + irr::gui::IGUIStaticText * addthis; + stringw tmpw(message.c_str()); + addthis = this->env->addStaticText(tmpw.c_str(), rectangle); + return AddToStaticArray(addthis); +} + +int IrrLibGUI::AddStaticText(std::string message, const core::rect< s32 > &rectangle, bool border, bool wordwrap) +{ + irr::gui::IGUIStaticText * addthis; + stringw tmpw(message.c_str()); + addthis = this->env->addStaticText(tmpw.c_str(), rectangle, border, wordwrap); + return AddToStaticArray(addthis); +} + +int IrrLibGUI::AddStaticText(std::string message, const core::rect< s32 > &rectangle, bool border, bool wordwrap, int id, bool fillbackground) +{ + irr::gui::IGUIStaticText * addthis; + stringw tmpw(message.c_str()); + addthis = this->env->addStaticText(tmpw.c_str(), rectangle, border, wordwrap, 0, id, fillbackground); + return AddToStaticArray(addthis); +} + +void IrrLibGUI::ChangeStaticText(int nstatictext, std::string message) +{ + stringw tmpw(message.c_str()); + this->arrStaticText[this->nStaticText-1]->setText(tmpw.c_str()); +} + +void IrrLibGUI::ChangeFont(std::string fontfile) +{ + IGUISkin* skin = this->env->getSkin(); + IGUIFont* font = this->env->getFont(fontfile.c_str()); + if (font) + skin->setFont(font); +} + +int IrrLibGUI::AddButton(std::string text, int x1, int y1, int x2, int y2, std::string tooltiptext = "") +{ + return addButton(rect(x1, y1, x2, y2), 0, nButtonid, stdstring_to_stringw(text).c_str(), stdstring_to_stringw(tooltiptext).c_str()); +} + +int IrrLibGUI::AddButton(std::string text, core::rect & rect, std::string tooltiptext = "") +{ + return addButton(rect, 0, nButtonid, stdstring_to_stringw(text).c_str(), stdstring_to_stringw(tooltiptext).c_str()); +} diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Stable Version/1.2.7/IrrLibGUI.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Stable Version/1.2.7/IrrLibGUI.h Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,58 @@ +/* + Irrlicht Library Wrapper + Created by: + Nathan Adams + Denzel Morris + Copyright (C) 2007 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ + +#ifndef IRRLIBGUI_H +#define IRRLIBGUI_H + +#include +#include +#include +#include "IrrLibBase.h" + +class IrrLibGUI: public IrrLibBase { + private: + irr::gui::IGUISkin* skin; + irr::gui::IGUIFont* font; + irr::gui::IGUIEnvironment* env; + //TODO: Create an array storing all messages + int nStaticText; + //irr::gui::IGUIStaticText* arrStaticText[10]; + int nButton; + int nButtonid; + std::vector arrStaticText; + std::vector arrButton; + int AddToStaticArray(irr::gui::IGUIStaticText * addme); + int addButton(const irr::core::rect< irr::s32 > & rectangle, irr::gui::IGUIElement *parent = 0, irr::s32 id = 0, const wchar_t * text = 0, const wchar_t * tooltiptext = 0); + public: + IrrLibGUI(); + ~IrrLibGUI(); + void SetEnv(irr::gui::IGUIEnvironment* env); + void Clear(); + void DrawAll(); + //irr::gui::IGUIStaticText* IrrLibGUI::AddStaticText(); //NA eh a default text adder why not? + /* This is bad coding, we do not want to return an irrlicht object, we want to return a standard datatype because this class handles the GUI elements, not the user. */ + void AddStaticText(); //NA eh a default text adder why not? + int AddStaticText(std::string message); + int AddStaticText(std::string message, int x1, int y1, int x2, int y2); + int AddStaticText(std::string message, int x1, int y1, int x2, int y2, bool border, bool wordwrap); + int AddStaticText(std::string message, int x1, int y1, int x2, int y2, bool border, bool wordwrap, int id, bool fillbackground); + int AddStaticText(std::string message, const irr::core::rect< irr::s32 > &rectangle); + int AddStaticText(std::string message, const irr::core::rect< irr::s32 > &rectangle, bool border, bool wordwrap); + int AddStaticText(std::string message, const irr::core::rect< irr::s32 > &rectangle, bool border, bool wordwrap, int id, bool fillbackground); + int AddButton(std::string text, int x1, int y1, int x2, int y2, std::string tooltiptext); + int AddButton(std::string text, irr::core::rect & rect, std::string tooltiptext); + void ChangeStaticText(int nstatictext, std::string message); + void ChangeFont(std::string fontfile); + +}; + + +#endif diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Stable Version/1.2.7/IrrSphere.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Stable Version/1.2.7/IrrSphere.cpp Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,67 @@ +/* + Irrlicht Library Wrapper + Created by Nathan Adams + Copyright (C) 2007 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ +#include +#include "IrrLib.h" +#include "IrrSphere.h" +#include +#include + +using namespace irr; +using namespace core; +using namespace scene; +using namespace video; +using namespace io; +using namespace gui; + +using namespace std; + +void IrrSphere::SetSmgr(irr::scene::ISceneManager* smgr){ + this->smgr = smgr; +} + +void IrrSphere::SetDriver(irr::video::IVideoDriver* driver){ + this->driver = driver; +} + +int IrrSphere::CreateNewSphereNode(int x, int y, int z, std::string texture, bool light){ + //TODO: Resize after 10, and add 10 more to the mix! + //this->nodeNew[this->numNodes] = this->smgr->addSphereSceneNode(); + sphereNodes.push_back(this->smgr->addSphereSceneNode()); + this->sphereNodes[this->numNodes]->setPosition(core::vector3df(x,y,z)); + this->sphereNodes[this->numNodes]->setMaterialTexture(0, this->driver->getTexture(texture.c_str())); + this->sphereNodes[this->numNodes]->setMaterialFlag(video::EMF_LIGHTING, light); + this->numNodes++; + return this->numNodes--; + /*this->node = this->smgr->addSphereSceneNode(); + this->node->setPosition(core::vector3df(x,y,z)); + this->node->setMaterialTexture(0, this->driver->getTexture(texture.c_str())); + this->node->setMaterialFlag(video::EMF_LIGHTING, light);*/ +} + +irr::core::vector3df IrrSphere::GetSphereVector(int sphere){ + //We are converting to vectors, under construction NA + //return this->nodeNew[sphere]->getPosition(); + return this->sphereNodes[sphere]->getPosition(); +} + +void IrrSphere::SetSphereVector(int sphere, irr::core::vector3df v){ + this->sphereNodes[sphere]->setPosition(v); +} + +IrrSphere::IrrSphere(){ + this->numNodes = 0; +} + +IrrSphere::~IrrSphere(){ + /*for(int i = 0; i < numNodes; ++i) + delete this->nodeNew[i]; + + delete this->nodeNew;*/ + //We are using vectors now, no more memory clowing business NA +} diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Stable Version/1.2.7/IrrSphere.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Stable Version/1.2.7/IrrSphere.h Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,46 @@ +/* + Irrlicht Library Wrapper + Created by: + Nathan Adams + Denzel Morris + Copyright (C) 2007 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ + +#ifndef IRRSPHERE_H +#define IRRSPHERE_H +/* We should include some basic functions */ +#include +/* include strings */ +#include +#include + +/* We have to include Irrlichts libs */ +#include + +//#include "IrrLib.h" + + +class IrrSphere +{ + private: + //irr::scene::ISceneNode* nodeNew[10]; + //irr::scene::ISceneNode* nodeNew[10]; + std::vector sphereNodes; + int numNodes; + irr::scene::ISceneManager* smgr; + irr::video::IVideoDriver* driver; + public: + void IrrSphere::SetDriver(irr::video::IVideoDriver* driver); + void IrrSphere::SetSmgr(irr::scene::ISceneManager* smgr); + int IrrSphere::CreateNewSphereNode(int x, int y, int z, std::string texture, bool light); //this is going to take my advanced C++ skillz! + irr::core::vector3df IrrSphere::GetSphereVector(int sphere); + void IrrSphere::SetSphereVector(int sphere, irr::core::vector3df v); + IrrSphere::IrrSphere(); + //IrrSphere::IrrSphere(IrrLib*); + IrrSphere::~IrrSphere(); +}; + +#endif diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Stable Version/1.2.7/IrrSprite.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Stable Version/1.2.7/IrrSprite.cpp Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,49 @@ +/* + Irrlicht Library Wrapper + Created by: + Nathan Adams + Denzel Morris + Copyright (C) 2007 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ + +#include +#include +#include + +#include "IrrLib.h" +//Libraries we create go here +//#include "IrrSphere.h" +#include "IrrColor.h" +#include "IrrSprite.h" +//#include "Irr2D.h" + +using namespace irr; +using namespace core; +using namespace scene; +using namespace video; +using namespace io; +using namespace gui; + +using namespace std; + +IrrSprite::IrrSprite() +{ + //do stuff +} + +IrrSprite::~IrrSprite() +{ + //delete stuff +} + +void IrrSprite::SetDriver(irr::video::IVideoDriver* driver) +{ + this->driver = driver; +} +void IrrSprite::SetSmgr(irr::scene::ISceneManager* smgr) +{ + this->smgr = smgr; +} diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Stable Version/1.2.7/IrrSprite.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Stable Version/1.2.7/IrrSprite.h Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,45 @@ +/* + Irrlicht Library Wrapper + Created by: + Nathan Adams + Denzel Morris + Copyright (C) 2007 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ + +#ifndef IRRSPRITE_H +#define IRRSPRITE_H + +/* We should include some basic functions */ +#include +/* include strings */ +#include + +/* We have to include Irrlichts libs */ +#include + +//#include "IrrSphere.h" +#include "IrrColor.h" +//#include "Irr2D.h" +//#include "IrrSprite.h" + +//Start class +class IrrSprite { + + private: + + irr::video::IVideoDriver* driver; + irr::scene::ISceneManager* smgr; + public: + IrrSprite::IrrSprite(); + IrrSprite::~IrrSprite(); + void IrrSprite::SetDriver(irr::video::IVideoDriver* driver); + void IrrSprite::SetSmgr(irr::scene::ISceneManager* smgr); + +// I forgot a semicolon here....and it wasn't compling +//Thats 1 bad thing about OOP if there is an error you don't know where the @#$@# the problem is! +}; + +#endif diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Stable Version/1.2.7/README --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Stable Version/1.2.7/README Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,13 @@ + Irrlicht Library Wrapper + Created by Nathan Adams + Version 1.2.7 + Copyright (C) 2007 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. + + Please leave all files intact if you redistrubte this software. + +How to use: + Add all the files to your Irrlicht project, you could compile it into a DLL if you wanted too, but for now just add all the files to your project. + Then inside your complier add the directory that you have the IrrLib files and use #include "IrrLib.h" to refrence it, and you are good to go! \ No newline at end of file diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Stable Version/1.2.9/CHANGES --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Stable Version/1.2.9/CHANGES Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,58 @@ +Version 1.2 ++ Added a Irr3DLib class that will control all 3D objects ++ Also Added a Irr2D class that works on the same concept. ++ IrrSphere is now owned by Irr3DLib ++ Updated the examples using the latest code +Version 1.2.2 ++ Added IrrEventReciever to handle all input + - Still under work ++ Fixed some misc coding bugs ++ Added template class ++ Added sprite class ++ Added GUI class +Version 1.2.3 ++ IrrEventReciver now works as advertised ++ Baseclass is now being used + + A couple somewhat-useful functions + + int_to_string + + stringw_to_stdstring + + stdstring_to_stringw ++ GUI elements + + Static text is working ++ Under construction for a data type class +Version 1.2.4 ++ Implmented color codes accessiable through the class + + IrrLib.Color.RED (ect) +Version 1.2.5 ++ Implmented mouse events + + IrrLib.IrrEvent.getMouseX(); + + IrrLib.IrrEvent.getMouseY(); ++ Using vectors instead of static arrays + + Side note: Was going to use dynamic arrays, but C++ has vectors which are 10x better. ++ Added a default exit for when you hit esc + + Use IrrLib.IrrEvent.SetEscExit(false) to turn that off for your software + + Use IrrLib.IrrEvent.SetEscExit(true) to turn it back on ++ Every stable version will now include a windows DLL. + + Possible Linux .so file in the future. +Version 1.2.6 ++ Added a IrrEvent for buttons + + IrrLib.IrrEvent.checkButtonState(); + + See example for use ++ Added an AddButton function + + IrrLib.GUI.AddButton(..); + + See example for use ++ Problems with making the DLL + + reasearching +Version 1.2.7 ++ Fixed DLL Problem ++ Added an enum example to example 1 ++ Added more examples ++ Added example 9 ++ Added left click handling (see example 9) ++ Added AddLines function to Irr2D + + DrawLines function in Irr2D will draw the lines you add +Version 1.2.9 ++ Added Listbox GUI object ++ Added a new datatype IrrObj + + Contains 2 ints, 1 for object id and 1 for event id ++ Added a IrrData.h file \ No newline at end of file diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Stable Version/1.2.9/CREDITS --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Stable Version/1.2.9/CREDITS Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,8 @@ +IrrLib +Created by + Nathan Adams + Denzel Morris + +From #irrlicht + Acid + wacom \ No newline at end of file diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Stable Version/1.2.9/Irr2D.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Stable Version/1.2.9/Irr2D.cpp Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,82 @@ +/* + Irrlicht Library Wrapper + Created by: + Nathan Adams + Denzel Morris + Copyright (C) 2007 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ + +#include +//#include "IrrLib.h" +//#include "IrrSphere.h" //You probably aren't going to be using 3D objects in a 2D environment! +#include +#include + +#include "Irr2D.h" +#include "IrrSprite.h" + +using namespace irr; +using namespace core; +using namespace scene; +using namespace video; +using namespace io; +using namespace gui; + +using namespace std; + +Irr2D::Irr2D(){ + this->numTextures = 0; + this->numLines = 0; + //NA Should we set textures to new +} + +Irr2D::~Irr2D(){ + /*for(int i = 0; i < numTextures; ++i) + delete this->textures[i]; + + delete this->textures;*/ + //No more dynamic memory business yay! NA +} + +void Irr2D::SetSmgr(irr::scene::ISceneManager* smgr){ + this->smgr = smgr; + Sprite.SetSmgr(smgr); +} + +void Irr2D::SetDriver(irr::video::IVideoDriver* driver){ + this->driver = driver; + Sprite.SetDriver(driver); +} + +void Irr2D::LoadTexturemap(std::string file){ + this->texturemap = driver->getTexture(file.c_str()); +} + +int Irr2D::LoadTexture(std::string file){ + //this->textures[this->numTextures] = driver->getTexture(file.c_str()); + textures.push_back(driver->getTexture(file.c_str())); + this->numTextures++; + return numTextures--; +} + +void Irr2D::DrawLine(irr::core::position2d& start, irr::core::position2d& end, irr::video::SColor& color) +{ + this->driver->draw2DLine(start, end, color); +} + +void Irr2D::AddLines(irr::core::position2d& start, irr::core::position2d& end, irr::video::SColor& color) +{ + this->start.push_back(start); + this->end.push_back(end); + this->color.push_back(color); + this->numLines++; +} + +void Irr2D::DrawLines() +{ + for(int i = 0; i < numLines; ++i) + this->driver->draw2DLine(this->start[i], this->end[i], this->color[i]); +} diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Stable Version/1.2.9/Irr2D.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Stable Version/1.2.9/Irr2D.h Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,55 @@ +/* + Irrlicht Library Wrapper + Created by: + Nathan Adams + Denzel Morris + Copyright (C) 2007 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ + +#ifndef IRR2D_H +#define IRR2D_H +/* We should include some basic functions */ +#include +/* include strings */ +#include +#include + +/* We have to include Irrlichts libs */ +#include + +//#include "IrrLib.h" +#include "IrrSprite.h" + +class Irr2D { + private: + irr::scene::ISceneManager* smgr; + irr::video::IVideoDriver* driver; + irr::video::ITexture* texturemap; + int numTextures; + //irr::video::ITexture* textures[10]; + std::vector textures; + std::vector > start; + std::vector > end; + std::vector color; + int numLines; + public: + //Irr2D::Irr2D(); + IrrSprite Sprite; + Irr2D::Irr2D(); + Irr2D::~Irr2D(); + void Irr2D::SetDriver(irr::video::IVideoDriver* driver); + void Irr2D::SetSmgr(irr::scene::ISceneManager* smgr); + void Irr2D::LoadTexturemap(std::string file); + int Irr2D::LoadTexture(std::string file); + void Irr2D::DrawImage(int texture, const irr::core::position2d & destPos); + void Irr2D::DrawImage(const irr::core::position2d & destPos, const irr::core::rect & sourceRect, const irr::core::rect * clipRect, irr::video::SColor color, bool useAlphaChannelOfTexture); + void Irr2D::DrawLine(irr::core::position2d& start, irr::core::position2d& end, irr::video::SColor& color); + void Irr2D::DrawLines(); + void Irr2D::AddLines(irr::core::position2d& start, irr::core::position2d& end, irr::video::SColor& color); +}; + +#endif + diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Stable Version/1.2.9/Irr3D.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Stable Version/1.2.9/Irr3D.cpp Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,52 @@ +/* + Irrlicht Library Wrapper + Created by: + Nathan Adams + Denzel Morris + Copyright (C) 2007 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ + +#include +#include + +//#include "IrrLib.h" +//Libraries we create go here +#include "IrrSphere.h" +//#include "IrrColor.h" +#include "Irr3D.h" +#include +//#include "Irr2D.h" + +using namespace irr; +using namespace core; +using namespace scene; +using namespace video; +using namespace io; +using namespace gui; + +using namespace std; + +void Irr3D::SetDriver(irr::video::IVideoDriver* driver) //so much for copying and pasting code from the header file +{ + this->driver = driver; + Sphere.SetDriver(driver); +} + +void Irr3D::SetSmgr(irr::scene::ISceneManager* smgr) +{ + this->smgr = smgr; + Sphere.SetSmgr(smgr); +} + +Irr3D::Irr3D() +{ + //do stuff here! +} + +Irr3D::~Irr3D() +{ + //delete stuff here! +} diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Stable Version/1.2.9/Irr3D.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Stable Version/1.2.9/Irr3D.h Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,44 @@ +/* + Irrlicht Library Wrapper + Created by: + Nathan Adams + Denzel Morris + Copyright (C) 2007 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ + +#ifndef IRR3D_H +#define IRR3D_H + +/* We should include some basic functions */ +#include +/* include strings */ +#include + +/* We have to include Irrlichts libs */ +#include + +#include "IrrSphere.h" +//#include "IrrColor.h" +//#include "Irr3D.h" +//#include "Irr2D.h" This is a 3D class not 2D +/* However due to Irrlciht's nature mixing 2D with 3D is possible */ + +//Start class +class Irr3D { + + private: + + irr::video::IVideoDriver* driver; + irr::scene::ISceneManager* smgr; + public: + IrrSphere Sphere; + Irr3D::Irr3D(); + Irr3D::~Irr3D(); + void Irr3D::SetDriver(irr::video::IVideoDriver* driver); + void Irr3D::SetSmgr(irr::scene::ISceneManager* smgr); +}; + +#endif diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Stable Version/1.2.9/IrrColor.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Stable Version/1.2.9/IrrColor.cpp Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,104 @@ +/* + Irrlicht Library Wrapper + Created by: + Nathan Adams + Denzel Morris + Copyright (C) 2007 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ + +#include +#include +#include + +//#include "IrrLib.h" +#include "IrrColor.h" + +using namespace irr; +using namespace core; +using namespace scene; +using namespace video; +using namespace io; +using namespace gui; + +using namespace std; + +void IrrColor::Init(){ + /*SColor * temp; + temp = new SColor(alpha, 255, 0, 0); + this->RED = temp; + delete temp;*/ + this->RED = SColor(alpha, 255, 0, 0); + this->ORANGE = SColor(alpha, 255, 165, 0); + this->YELLOW = SColor(alpha, 255, 255, 0); + this->GREEN = SColor(alpha, 0, 255, 0); + this->BLUE = SColor(alpha, 0, 0, 255); + this->DARK_GREEN = SColor(alpha, 0, 100, 0); + this->PINK = SColor(alpha, 255, 192, 203); + this->GREY = SColor(alpha, 190, 190, 190); + this->WHITE = SColor(alpha, 0, 0, 0); + this->BLACK = SColor(alpha, 0, 0, 0); +} + +IrrColor::~IrrColor(){ + //delete this->RED; +} + +IrrColor::IrrColor(){ + this->alpha = 255; + Init(); +} + +IrrColor::IrrColor(irr::u32 alpha){ + this->alpha = alpha; + Init(); +} + +int IrrColor::getAlpha(){ + return this->alpha; +} + +void IrrColor::setAlpha(int alpha){ + this->alpha = alpha; +} + +SColor IrrColor::returnColor(std::string color){ + int nColor = -1; + if (color == "red") + nColor = 1; + else if (color == "green") + nColor = 2; + else if (color == "blue") + nColor = 3; + else if (color == "dark green") + nColor = 4; + else if (color == "pink") + nColor = 5; + else if (color == "grey") + nColor = 6; + switch (nColor){ + case 1: + return SColor(255, 255, 0, 0); + break; + case 2: + return SColor(255, 0, 255, 0); + break; + case 3: + return SColor(255, 0, 0, 255); + break; + case 4: + return SColor(255, 0, 50, 0); + break; + case 5: + return SColor(255, 255, 10, 255); + break; + case 6: + return SColor(255,200,200,200); + break; + default: + return SColor(255,200,200,200); + break; + }// TODO: Make this function modular +} diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Stable Version/1.2.9/IrrColor.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Stable Version/1.2.9/IrrColor.h Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,53 @@ +/* + Irrlicht Library Wrapper + Created by: + Nathan Adams + Denzel Morris + Copyright (C) 2007 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ + +#ifndef IRRCOLOR_H +#define IRRCOLOR_H + +#include +#include +#include "irrlicht.h" +//#include "IrrLib.h" + +class IrrColor { + private: + irr::u32 alpha; + void Init(); + //who knows? + public: + //irr::video::SColor(alpha, 255, 0, 0); + irr::video::SColor RED; + irr::video::SColor ORANGE; + irr::video::SColor YELLOW; + irr::video::SColor GREEN; + irr::video::SColor BLUE; + irr::video::SColor DARK_GREEN; + irr::video::SColor PINK; + irr::video::SColor GREY; + irr::video::SColor WHITE; + irr::video::SColor BLACK; + /*const ORANGE = irr::video::SColor(alpha, 255, 165, 0); + const YELLOW = irr::video::SColor(alpha, 255, 255, 0); + const GREEN = irr::video::SColor(alpha, 0, 255, 0); + const BLUE = irr::video::SColor(alpha, 0, 0, 255); + const DARK_GREEN = irr::video::SColor(alpha, 0, 100, 0); + const PINK = irr::video::SColor(alpha, 255, 192, 203); + const GREY = irr::video::Scolor(alpha, 190, 190, 190);*/ + //void IrrColor::test(); + IrrColor(); + IrrColor(irr::u32 alpha); + ~IrrColor(); + int getAlpha(); + void setAlpha(int alpha); + irr::video::SColor IrrColor::returnColor(std::string color); +}; + +#endif diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Stable Version/1.2.9/IrrData.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Stable Version/1.2.9/IrrData.h Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,19 @@ +#ifndef IRRDATA_H +#define IRRDATA_H + +struct pixels { + int width; + int height; +}; //possible future use in 2D objects when specifying the properties of an object draw + +struct IrrObj { + int eventid; + int objectid; +}; + +struct _mouse { + int x; + int y; +}; + +#endif diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Stable Version/1.2.9/IrrEventReciever.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Stable Version/1.2.9/IrrEventReciever.cpp Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,163 @@ +/* + Irrlicht Library Wrapper + Created by: + Nathan Adams + Denzel Morris + Copyright (C) 2007 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ + +#include "IrrEventReciever.h" +//#include "IrrLib.h" +#include +#include + +using namespace irr; +using namespace core; +using namespace scene; +using namespace video; +using namespace io; +using namespace gui; + +using namespace std; + +/*void IrrEventReciever::setIrrLib(IrrLib& IrrLib) +{ + this.callingIrrLib = IrrLib; +}*/ + +IrrEventReciever::IrrEventReciever() +{ + this->escexit = true; + this->mouse.x = 0; + this->mouse.y = 0; +} + +bool IrrEventReciever::OnEvent(SEvent event) +{ + // A button was clicked + if (event.EventType == irr::EET_GUI_EVENT) + { + s32 id = event.GUIEvent.Caller->getID(); + switch(event.GUIEvent.EventType){ + case EGET_BUTTON_CLICKED: + //cout << id << endl; + buttonStates.push_back(id); + break; + case EGET_LISTBOX_CHANGED: + //s32 id = event.GUIEvent.Caller->getID(); + listStates.push_back(id); + break; + case EGET_LISTBOX_SELECTED_AGAIN: + listStates.push_back(id); + break; + default: + break; + } + } + /*if (event.EventType == irr::EGET_SCROLL_BAR_CHANGED) + { + + }*/ + if (event.EventType == irr::EET_KEY_INPUT_EVENT) { + if (!event.KeyInput.PressedDown){ + this->keyStates[event.KeyInput.Key] = false; + //cout << "Key was not hit " << this->keyStates[event.KeyInput.Key] << endl; + } + else{ + if(event.KeyInput.Key == KEY_ESCAPE && escexit) + this->device->closeDevice(); + this->keyStates[event.KeyInput.Key] = true; + //cout << "Key was hit: " << event.KeyInput.Key << " " << this->keyStates[event.KeyInput.Key] << endl; + } + } + if (event.EventType == EET_MOUSE_INPUT_EVENT){ + if (event.MouseInput.Event == EMIE_MOUSE_MOVED){ + this->mouse.x = event.MouseInput.X; + this->mouse.y = event.MouseInput.Y; + } + if (event.MouseInput.Event == EMIE_LMOUSE_PRESSED_DOWN) + this->mouseStates[0] = true; + if (event.MouseInput.Event == EMIE_LMOUSE_LEFT_UP) + this->mouseStates[0] = false; + } + return false; +} + +void IrrEventReciever::SetEscExit(bool onoff) +{ + this->escexit = onoff; +} + +int IrrEventReciever::getMouseX() +{ + return this->mouse.x; +} + +int IrrEventReciever::getMouseY() +{ + return this->mouse.y; +} + +int IrrEventReciever::getButtonState() +{ + if(!this->buttonStates.empty()){ + int id; + id = buttonStates.back(); + this->buttonStates.pop_back(); + return id; + } + else + return -1; +} + +int IrrEventReciever::getRevButtonState() +{ + if(!this->buttonStates.empty()){ + int id = buttonStates.front(); + this->buttonStates.erase(buttonStates.begin()); + return id; + } + else + return -1; +} + +void IrrEventReciever::clearButtonState() +{ + this->buttonStates.clear(); +} + +int IrrEventReciever::checkButtonState() +{ + if(!this->buttonStates.empty()) + return this->buttonStates.back(); + else + return -1; +} + +void IrrEventReciever::delLastButtonStat() +{ + if(!this->buttonStates.empty()) + this->buttonStates.pop_back(); +} + +bool IrrEventReciever::isButtonStateEmpty() +{ + return this->buttonStates.empty(); +} + +int IrrEventReciever::checkListState() +{ + if(!this->listStates.empty()) + return this->listStates.back(); + else + return -1; +} + +void IrrEventReciever::delLastListStat() +{ + if(!this->listStates.empty()) + this->listStates.pop_back(); +} diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Stable Version/1.2.9/IrrEventReciever.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Stable Version/1.2.9/IrrEventReciever.h Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,51 @@ +/* + Irrlicht Library Wrapper + Created by: + Nathan Adams + Denzel Morris + Copyright (C) 2007 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ + +#ifndef IRREVENTRECIEVER_H +#define IRREVENTRECIEVER_H + +//#include "IrrLib.h" +#include +#include +#include "IrrLibBase.h" +#include "IrrData.h" +#include + + + +class IrrEventReciever : public irr::IEventReceiver, public IrrLibBase +{ + private: + //IrrLib callingIrrLib; + _mouse mouse; + bool escexit; + std::vector buttonStates; + std::vector listStates; + public: + bool mouseStates[1]; + IrrEventReciever(); + int getMouseX(); + int getMouseY(); + bool keyStates[irr::KEY_KEY_CODES_COUNT]; + //void setIrrLib(IrrLib& IrrLib) + virtual bool OnEvent(irr::SEvent event); + void SetEscExit(bool onoff); + int getButtonState(); + int getRevButtonState(); + void clearButtonState(); + int checkButtonState(); + void delLastButtonStat(); + bool isButtonStateEmpty(); //is there still stuff in the vector to be done? NA + int checkListState(); + void delLastListStat(); +}; + +#endif diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Stable Version/1.2.9/IrrLib.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Stable Version/1.2.9/IrrLib.cpp Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,280 @@ +/* + Irrlicht Library Wrapper + Created by: + Nathan Adams + Denzel Morris + Copyright (C) 2007 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ + +#include +#include +#include +#include +#include + +#include "IrrLib.h" +//Libraries we create go here +//#include "IrrSphere.h" +#include "IrrColor.h" +//#include "Irr2D.h" + +using namespace irr; +using namespace core; +using namespace scene; +using namespace video; +using namespace io; +using namespace gui; + +using namespace std; + +//TODO: Create own class for handling inputs! + + +/*IrrLib::IrrLib(MastEventReceiver & receiver){ + this->device = createDevice(EDT_SOFTWARE, dimension2d(640, 480), 16, false, false, false, &receiver); + if (this->device == 0) + exit(1); + IrrLib::Init(); +}*/ + +IrrLib::IrrLib(){ + this->device = createDevice(EDT_SOFTWARE, dimension2d(640, 480), 16, false, false, false, &this->IrrEvent); + if (this->device == 0) + exit(1); + IrrLib::Init(); +} + +IrrLib::IrrLib(video::E_DRIVER_TYPE drivertype, core::dimension2d & res, u32 bits, bool fullscreen, bool stencilbuffer, bool vsync){ + //MyEventReceiver receiver; + this->device = createDevice(drivertype, res, bits, fullscreen, stencilbuffer, vsync, &this->IrrEvent); + if (this->device == 0) + exit(1); + IrrLib::Init(); +} + +IrrLib::IrrLib(int nDrivertype, int width, int height, int bits, bool fullscreen, bool stencilbuffer, bool vsync){ + //MyEventReceiver receiver; + video::E_DRIVER_TYPE drivertype; + switch (nDrivertype){ + case 0: //TODO: finish this switch case + drivertype = EDT_NULL; + break; + case 1: + drivertype = EDT_SOFTWARE; + break; + case 2: + drivertype = EDT_BURNINGSVIDEO; + break; + case 3: + drivertype = EDT_OPENGL; + break; + case 4: + drivertype = EDT_DIRECT3D8; + //*Note: It seems as Microsoft has stoped supporting DX 8.1, so you can not compile it into Irrlicht engine anymore + //TODO: Find how to detect if DX is complied into Irrlicht + //TODO: Find how to detecht for linux + break; + case 5: + drivertype = EDT_DIRECT3D9; + break; + default: + drivertype = EDT_SOFTWARE; + break; + } + this->device = createDevice(drivertype, dimension2d(width, height), bits, fullscreen, stencilbuffer, vsync, &this->IrrEvent); + if (this->device == 0) + exit(1); + IrrLib::Init(); +} + +IrrLib::~IrrLib (){ //Our moms wont clean up after us! + //Although I'm sure Irrlicht does this for us already, its always a good idea to check! + /*if (this->device != NULL) + delete this->device; + if (this->driver != NULL) + delete this->driver; + if (this->smgr != NULL) + delete this->smgr; + if (this->mesh != NULL) + delete this->mesh; + if (this->node != NULL) + delete this->node;*/ //it seems Irrlicht picks up after us... + //however we created newNodes, now we need to delete it! +} + +void IrrLib::Init(){ + //this->numNodes = 0; + //this->nodeNew = new ISceneNode[10]; + //this->env->addStaticText(L"Transparent Control:", rect(20,30,300,80), true); + this->env = this->device->getGUIEnvironment(); + this->driver = this->device->getVideoDriver(); + this->smgr = this->device->getSceneManager(); + Irr3DLib.SetSmgr(this->smgr); + Irr3DLib.SetDriver(this->driver); + Irr2DLib.SetSmgr(this->smgr); + Irr2DLib.SetDriver(this->driver); + GUI.SetEnv(this->env); + IrrEvent.SetDevice(this->device); + this->timer = this->device->getTimer(); + tick = this->timer->getRealTime(); +} + +void IrrLib::ReadArchive(std::string file){ + this->device->getFileSystem()->addZipFileArchive(file.c_str()); +} + +void IrrLib::LoadQ3Level(std::string q3level){ + this->mesh = this->smgr->getMesh(q3level.c_str()); + this->node = 0; + if (this->mesh) + this->node = this->smgr->addOctTreeSceneNode(this->mesh->getMesh(0), 0, -1, 128); +} + +void IrrLib::MapPos(int x, int y, int z){ + if (this->node) + this->node->setPosition(core::vector3df(x, y, z)); +} + +void IrrLib::MapPos(){ + if (this->node) + this->node->setPosition(core::vector3df(0, 0, 0)); +} + +void IrrLib::AddFPSCam(){ + this->cam = this->smgr->addCameraSceneNodeFPS(); +} + +void IrrLib::AddFPSCam(f32 x, f32 y, f32 z) +{ + this->cam = this->smgr->addCameraSceneNodeFPS(); + this->cam->setPosition(irr::core::vector3df(x, y, z)); +} + +void IrrLib::VisibleCursor(bool tf){ + if (tf == false) + this->device->getCursorControl()->setVisible(false); + else + this->device->getCursorControl()->setVisible(true); +} + +int IrrLib::GetFPSCount(){ + return this->driver->getFPS(); +} + +bool IrrLib::DeviceIsRunning(){ + return this->device->run(); +} + +bool IrrLib::IsActiveWindow(){ + return this->device->isWindowActive(); +} + +void IrrLib::BeginScene(){ + this->driver->beginScene(true, true, video::SColor(0,200,200,200)); +} + +void IrrLib::BeginScene(irr::video::SColor color){ + this->driver->beginScene(true, true, color); +} + +void IrrLib::BeginScene(bool usebackBuffer, bool usezBuffer, irr::video::SColor color){ + this->driver->beginScene(usebackBuffer, usezBuffer, color); +} + +void IrrLib::DrawAll(){ + //position2d start(50, 50); + //position2d end(100,100); + // SColor whitecolor(255,255,255,255); +//driver->draw2DLine(start, end, whitecolor); + this->smgr->drawAll(); + this->env->drawAll(); + //this->device->getGUIEnvironment()->drawAll(); + } + +void IrrLib::EndScene(){ + this->driver->endScene(); +} + +void IrrLib::SetWindowCaption(stringw str){ + this->device->setWindowCaption(str.c_str()); +} + +irr::core::stringw IrrLib::GetDriverName(){ + return this->driver->getName(); +} + +void IrrLib::EndIrrlicht(){ + if(this->device != NULL){ + this->device->drop(); + this->device = NULL; + } +} + +void IrrLib::KeyPress(char key){ + this->key = key; +} + +char IrrLib::KeyPressed(){ + return key; +} + +irr::f32 IrrLib::getX(){ + return this->smgr->getActiveCamera()->getPosition().X; +} + +irr::f32 IrrLib::getY(){ + return this->smgr->getActiveCamera()->getPosition().Y; +} + +irr::f32 IrrLib::getZ(){ + return this->smgr->getActiveCamera()->getPosition().Z; +} + +bool IrrLib::CheckGameLoop(){ + u32 now; + now = this->timer->getRealTime(); + if ((now - this->tick) >= 30){ + //this->tick == time (NULL); + return true; + } else { + return false; + } +} + +bool IrrLib::CheckGameLoop(u32 ms){ + u32 now; + now = this->timer->getRealTime(); + if ((now - this->tick) >= ms){ + this->tick = now; + return true; + } else { + return false; + } +} + +void IrrLib::Exit() +{ + this->device->closeDevice(); +} + +PixelSize IrrLib::GetScreenSize() +{ + return this->driver->getScreenSize(); + /*pixels returnres; + returnres.width = screenres.Width; + returnres.height = screenres.Height; + return returnres;*/ + +} + +//template std::string IrrLib::to_string (T t) +/*std::string IrrLib::int_to_string (int t) +{ + std::stringstream ss; + ss << t; + return ss.str(); +}*/ +// This is in the base class now, every class that decends from that class has this ability. diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Stable Version/1.2.9/IrrLib.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Stable Version/1.2.9/IrrLib.h Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,127 @@ +/* + Irrlicht Library Wrapper + Created by: + Nathan Adams + Denzel Morris + Copyright (C) 2007 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ + +#ifndef IRRLIB_H +#define IRRLIB_H + +/* We should include some basic functions */ +#include +/* include strings */ +#include +#include +#include + +/* We have to include Irrlichts libs */ + + +#include "Irr3D.h" +#include "IrrColor.h" +#include "IrrLibGUI.h" +#include "IrrEventReciever.h" +#include "Irr2D.h" +#include "IrrLibBase.h" +#include "IrrData.h" + +typedef irr::core::dimension2d PixelSize; + +/*struct IrrObj { + int eventid; + int objectid; +};*/ + +//Start class +class IrrLib: public IrrLibBase { + + private: + /* Create an Irrlicht device as private because the class should handle + All irrlicht interaction */ + irr::IrrlichtDevice *device; + // Tells Irrlicht what driver to use + //video::E_DRIVER_TYPE driverType; + + /* + Get a pointer to the video driver and the SceneManager so that + we do not always have to write device->getVideoDriver() and + device->getSceneManager(). + */ + irr::video::IVideoDriver* driver; + irr::scene::ISceneManager* smgr; + irr::gui::IGUIEnvironment* env; + + /* + Get a pointer to the 'mesh' aka the level. + Note: This is for Quake3 levels, ie bsp maps. + */ + irr::scene::IAnimatedMesh* mesh; + irr::scene::ISceneNode* node; + irr::scene::ISceneNode * tempNode; //use this to store nodeNew's data so we can resize it + irr::scene::ICameraSceneNode * cam; + char key; + + + void IrrLib::Init(); + /*friend class IrrColor; + friend class Irr2DLib; + friend class Sphere;*/ + friend class IrrEventReciever; + irr::u32 tick; + irr::ITimer* timer; + public: + //IrrSphere Sphere; //This has to be public to be able to access the Sphere class + /* IrrSphere is now in Irr3D class */ + //Prehaps put this into a IrrLib3D class? + Irr3D Irr3DLib; + IrrColor Color; //Color class...not much of a class but lets keep it OO + Irr2D Irr2DLib; //1/2 variable to be labeled like this due to variables not able to begin with a number + IrrLibGUI GUI; + IrrEventReciever IrrEvent; + IrrLib::IrrLib(); + //IrrLib::IrrLib(MastEventReceiver & receiver); + IrrLib::IrrLib(irr::video::E_DRIVER_TYPE drivertype, irr::core::dimension2d & res, irr::u32 bits, bool fullscreen, bool stencilbuffer, bool vsync); + IrrLib::IrrLib(int drivertype, int width, int height, int bits, bool fullscreen, bool stencilbuffer, bool vsync); + IrrLib::~IrrLib(); //Our moms wont clean up after us! + void IrrLib::ReadArchive(std::string file); + void IrrLib::LoadQ3Level(std::string q3level); + void IrrLib::MapPos(int x, int y, int z); //I think this moves the actual camera? + void IrrLib::MapPos(); + void IrrLib::AddFPSCam(); + void IrrLib::AddFPSCam(irr::f32 x, irr::f32 y, irr::f32 z); + void IrrLib::VisibleCursor(bool tf); + int IrrLib::GetFPSCount(); + bool IrrLib::DeviceIsRunning(); + bool IrrLib::IsActiveWindow(); + void IrrLib::BeginScene(); + void IrrLib::BeginScene(irr::video::SColor color); + //void IrrLib::BeginScene(irr::video::SColor * color); + void IrrLib::BeginScene(bool usebackBuffer, bool usezBuffer, irr::video::SColor color); + //TODO: Add one more for human readable colors and hex colors! + void IrrLib::DrawAll(); + void IrrLib::EndScene(); + void IrrLib::SetWindowCaption(irr::core::stringw str); + irr::core::stringw IrrLib::GetDriverName(); + //TODO: Make function to turn stringw to string and visa versa + void IrrLib::EndIrrlicht(); //Renamed from KillIrrlicht to EndIrrlicht + //TODO: Add logging + void IrrLib::KeyPress(char key); + char IrrLib::KeyPressed(); + irr::f32 getX(); + irr::f32 getY(); + irr::f32 getZ(); + bool CheckGameLoop(); + bool CheckGameLoop(irr::u32 ms); + void Exit(); + PixelSize GetScreenSize(); + //void EndGameLoop(); + //template std::string to_string (T t); + +}; + +#endif diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Stable Version/1.2.9/IrrLibBase.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Stable Version/1.2.9/IrrLibBase.cpp Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,118 @@ +/* + Irrlicht Library Wrapper + Created by: + Nathan Adams + Denzel Morris + Copyright (C) 2007 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ + +#include +#include +#include "IrrLibBase.h" +#include +#include + +using namespace irr; +using namespace core; +using namespace scene; +using namespace video; +using namespace io; +using namespace gui; + +using namespace std; + +/* +* Code from http://articles.techrepublic.com.com/5100-22-5079969.html# +* + +struct str_stream +{ + std::stringstream & underlying_stream() const + { return m_streamOut; } + + operator std::string() const + { + return m_streamOut.str(); + } +private: + mutable std::stringstream m_streamOut; +}; + +template< class type> +inline const str_stream & operator<< ( const str_stream & out, const type & value) +{ + out.underlying_stream() << value; + return out; + +} + +template std::string to_string( const type & value) +{ + std::ostringstream streamOut; + + streamOut << value; + + return streamOut.str(); +} + +* End code copy +*/ + +void IrrLibBase::SetDriver(IVideoDriver* driver) //can be overloaded +{ + this->driver = driver; +} + +void IrrLibBase::SetSmgr(ISceneManager* smgr) +{ + this->smgr = smgr; +} + +std::string IrrLibBase::wchar_to_stdstring (const wchar_t* wc) +{ + //cout << "Starting conversion"; + //wcstombs(tmp, in, 255); + char c[255]; + for(int t = 0; wc[t] != '\0'; t++) + c[t] = (char)wc[t]; + + /*for(int t = 0; c[t] != '\0'; t++) + wc[t] = c[t];*/ + + std::stringstream ss; + ss << c; + //cout << "Conversion OK"; + return ss.str(); +} + +std::string IrrLibBase::int_to_string (int t) +{ + std::stringstream ss; + ss << t; + return ss.str(); +} + +std::string IrrLibBase::stringw_to_stdstring(irr::core::stringw sw) +{ + std::stringstream ss; + ss << sw.c_str(); + return ss.str(); +} +irr::core::stringw IrrLibBase::stdstring_to_stringw(std::string ss) +{ + stringw tmpw(ss.c_str()); + return tmpw; +} + +void IrrLibBase::SetDevice(irr::IrrlichtDevice *device) +{ + this->device = device; +} + +void IrrLibBase::init() +{ + +} diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Stable Version/1.2.9/IrrLibBase.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Stable Version/1.2.9/IrrLibBase.h Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,44 @@ +/* + Irrlicht Library Wrapper + Created by: + Nathan Adams + Denzel Morris + Copyright (C) 2007 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ + +#ifndef IRRLIBBASE_H +#define IRRLIBBASE_H + +/* We should include some basic functions */ +#include +/* include strings */ +#include + +/* We have to include Irrlichts libs */ +#include + + +class IrrLibBase { + + protected: + irr::video::IVideoDriver* driver; + irr::scene::ISceneManager* smgr; + irr::IrrlichtDevice *device; + public: + //template std::string to_string( const type & value); + irr::core::dimension2d irrpixels; + void IrrLibBase::SetDriver(irr::video::IVideoDriver* driver); + void IrrLibBase::SetSmgr(irr::scene::ISceneManager* smgr); + void SetDevice(irr::IrrlichtDevice *device); + std::string int_to_string (int t); + std::string stringw_to_stdstring(irr::core::stringw sw); + irr::core::stringw stdstring_to_stringw(std::string ss); + std::string wchar_to_stdstring (const wchar_t* wc); + void init(); + +}; + +#endif diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Stable Version/1.2.9/IrrLibGUI.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Stable Version/1.2.9/IrrLibGUI.cpp Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,225 @@ +/* + Irrlicht Library Wrapper + Created by: + Nathan Adams + Denzel Morris + Copyright (C) 2007 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ + +#include +#include +#include +#include +#include + +#include "IrrLib.h" +#include "IrrData.h" +#include "IrrLibGUI.h" +#include "IrrLibBase.h" +#include + +using namespace irr; +using namespace core; +using namespace scene; +using namespace video; +using namespace io; +using namespace gui; + +using namespace std; + +template std::string to_string( const type & value) +{ + std::ostringstream streamOut; + + streamOut << value; + + return streamOut.str(); +} + +IrrLibGUI::IrrLibGUI() +{ + //NA does it need to do anything at init? + this->nStaticText = 0; + this->nButton = 0; + this->nButtonid = 100; + this->nListBoxid = 200; + this->nListBox = 0; + //this->nListBoxid = 300; + //this->arrStaticText = new IGUIStaticText[10]; + //this->env = this->device->getGUIEnvironment(); //NA yes we do! +} + +IrrLibGUI::~IrrLibGUI() +{ + //NA Do we have to delete anything? +} + +void IrrLibGUI::SetEnv(IGUIEnvironment* env) +{ + this->env = env; + //env->addButton(rect(10,210,110,210 + 32), 0, 109, L"Quit", L"Exits Program"); +} + +int IrrLibGUI::addButton(const core::rect< s32 > & rectangle, IGUIElement *parent, s32 id, const wchar_t * text, const wchar_t * tooltiptext) +{ + arrButton.push_back(this->env->addButton(rectangle, parent, id, text, tooltiptext)); + ++nButton; + ++nButtonid; + return nButtonid - 1; +} + +IrrObj IrrLibGUI::addListBox(const irr::core::rect< irr::s32 > &rectangle, IGUIElement * parent) +{ + irr::gui::IGUIListBox* tmp = this->env->addListBox(rectangle, parent, nListBoxid); + arrListBox.push_back(tmp); + //we introduce a new datatype; IrroObj + IrrObj ret; + ret.eventid = nListBoxid; + ret.objectid = nListBox; + ++nListBox; + ++nListBoxid; + return ret; +} + +IrrObj IrrLibGUI::AddListBox(int x1, int y1, int x2, int y2, IGUIElement * parent) +{ + return addListBox(rect(x1, y1, x2, y2), parent); +} + +IrrObj IrrLibGUI::AddListBox(const irr::core::rect< irr::s32 > &rectangle, IGUIElement * parent) +{ + return addListBox(rectangle, parent); +} + +void IrrLibGUI::AddStringToListBox(int nLbox, std::string text) +{ + this->arrListBox[nLbox]->addItem(stdstring_to_stringw(text).c_str()); + //this->arrListBox[0]->addItem(L"TEST"); +} + +std::string IrrLibGUI::getSelectListString(int lstbox) +{ + //stringc tmp = this->arrListBox[lstbox]->getListItem(this->arrListBox[lstbox]->getSelected()); + s32 selected = this->arrListBox[lstbox]->getSelected(); + //const wchar_t* tmp = this->arrListBox[lstbox]->getListItem(selected); + //irr::core::stringw tmp; + char out[255]; + //tmp = this->arrListBox[lstbox]->getText(); + irr::core::stringc tmp(arrListBox[lstbox]->getListItem(arrListBox[lstbox]->getSelected())); + //cout << tmp.c_str() << endl; + //wcstombs(out, tmp, tmp.length()); + //cout << tmp[0] << endl; + // std::stringstream ss; + //for (int i = 0; i < tmp.size(); ++i) + //ss << tmp.c_str(); + std::string ret = tmp.c_str(); + return ret; +} + +void IrrLibGUI::Clear() +{ + this->env->clear(); +} + +void IrrLibGUI::DrawAll() +{ + this->env->drawAll(); +} + +int IrrLibGUI::AddToStaticArray(irr::gui::IGUIStaticText * addme) +{ + //arrStaticText[nStaticText] = addme; + arrStaticText.push_back(addme); + this->nStaticText++; + this->nButtonid++; + return this->nStaticText; +} + +void IrrLibGUI::AddStaticText() +{ + //rect(20,30,300,80), + this->env->addStaticText(L"Powered by IrrLib.", rect(20,30,300,80), true); +} + +int IrrLibGUI::AddStaticText(std::string message) +{ + irr::gui::IGUIStaticText * addthis; + stringw tmpw(message.c_str()); + addthis = this->env->addStaticText(tmpw.c_str(), rect(20,30,300,80), true); + return AddToStaticArray(addthis); +} + +int IrrLibGUI::AddStaticText(std::string message, int x1, int y1, int x2, int y2) +{ + irr::gui::IGUIStaticText * addthis; + stringw tmpw(message.c_str()); + addthis = this->env->addStaticText(tmpw.c_str(), rect(x1,y1,x2,y2), true); + return AddToStaticArray(addthis); +} + +int IrrLibGUI::AddStaticText(std::string message, int x1, int y1, int x2, int y2, bool border, bool wordwrap) +{ + irr::gui::IGUIStaticText * addthis; + stringw tmpw(message.c_str()); + addthis = this->env->addStaticText(tmpw.c_str(), rect(x1,y1,x2,y2), border, wordwrap); + return AddToStaticArray(addthis); +} + +int IrrLibGUI::AddStaticText(std::string message, int x1, int y1, int x2, int y2, bool border, bool wordwrap, int id, bool fillbackground) +{ + irr::gui::IGUIStaticText * addthis; + stringw tmpw(message.c_str()); + addthis = this->env->addStaticText(tmpw.c_str(), rect(x1,y1,x2,y2), border, wordwrap, 0, id, fillbackground); + return AddToStaticArray(addthis); +} + +int IrrLibGUI::AddStaticText(std::string message, const core::rect< s32 > &rectangle) +{ + irr::gui::IGUIStaticText * addthis; + stringw tmpw(message.c_str()); + addthis = this->env->addStaticText(tmpw.c_str(), rectangle); + return AddToStaticArray(addthis); +} + +int IrrLibGUI::AddStaticText(std::string message, const core::rect< s32 > &rectangle, bool border, bool wordwrap) +{ + irr::gui::IGUIStaticText * addthis; + stringw tmpw(message.c_str()); + addthis = this->env->addStaticText(tmpw.c_str(), rectangle, border, wordwrap); + return AddToStaticArray(addthis); +} + +int IrrLibGUI::AddStaticText(std::string message, const core::rect< s32 > &rectangle, bool border, bool wordwrap, int id, bool fillbackground) +{ + irr::gui::IGUIStaticText * addthis; + stringw tmpw(message.c_str()); + addthis = this->env->addStaticText(tmpw.c_str(), rectangle, border, wordwrap, 0, id, fillbackground); + return AddToStaticArray(addthis); +} + +void IrrLibGUI::ChangeStaticText(int nstatictext, std::string message) +{ + stringw tmpw(message.c_str()); + this->arrStaticText[this->nStaticText-1]->setText(tmpw.c_str()); +} + +void IrrLibGUI::ChangeFont(std::string fontfile) +{ + IGUISkin* skin = this->env->getSkin(); + IGUIFont* font = this->env->getFont(fontfile.c_str()); + if (font) + skin->setFont(font); +} + +int IrrLibGUI::AddButton(std::string text, int x1, int y1, int x2, int y2, std::string tooltiptext = "") +{ + return addButton(rect(x1, y1, x2, y2), 0, nButtonid, stdstring_to_stringw(text).c_str(), stdstring_to_stringw(tooltiptext).c_str()); +} + +int IrrLibGUI::AddButton(std::string text, core::rect & rect, std::string tooltiptext = "") +{ + return addButton(rect, 0, nButtonid, stdstring_to_stringw(text).c_str(), stdstring_to_stringw(tooltiptext).c_str()); +} diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Stable Version/1.2.9/IrrLibGUI.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Stable Version/1.2.9/IrrLibGUI.h Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,68 @@ +/* + Irrlicht Library Wrapper + Created by: + Nathan Adams + Denzel Morris + Copyright (C) 2007 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ + +#ifndef IRRLIBGUI_H +#define IRRLIBGUI_H + +#include +#include +#include +#include "IrrLib.h" +#include "IrrData.h" +#include "IrrLibBase.h" + +class IrrLibGUI: public IrrLibBase { + private: + irr::gui::IGUISkin* skin; + irr::gui::IGUIFont* font; + irr::gui::IGUIEnvironment* env; + //TODO: Create an array storing all messages + int nStaticText; + //irr::gui::IGUIStaticText* arrStaticText[10]; + int nButton; + int nButtonid; + int nListBox; + int nListBoxid; + std::vector arrStaticText; + std::vector arrButton; + std::vector arrListBox; + int AddToStaticArray(irr::gui::IGUIStaticText * addme); + int addButton(const irr::core::rect< irr::s32 > & rectangle, irr::gui::IGUIElement *parent = 0, irr::s32 id = 0, const wchar_t * text = 0, const wchar_t * tooltiptext = 0); //TODO: Clean this up! + IrrObj addListBox(const irr::core::rect< irr::s32 > &rectangle, irr::gui::IGUIElement * parent); + public: + IrrLibGUI(); + ~IrrLibGUI(); + void SetEnv(irr::gui::IGUIEnvironment* env); + void Clear(); + void DrawAll(); + //irr::gui::IGUIStaticText* IrrLibGUI::AddStaticText(); //NA eh a default text adder why not? + /* This is bad coding, we do not want to return an irrlicht object, we want to return a standard datatype because this class handles the GUI elements, not the user. */ + void AddStaticText(); //NA eh a default text adder why not? + int AddStaticText(std::string message); + int AddStaticText(std::string message, int x1, int y1, int x2, int y2); + int AddStaticText(std::string message, int x1, int y1, int x2, int y2, bool border, bool wordwrap); + int AddStaticText(std::string message, int x1, int y1, int x2, int y2, bool border, bool wordwrap, int id, bool fillbackground); + int AddStaticText(std::string message, const irr::core::rect< irr::s32 > &rectangle); + int AddStaticText(std::string message, const irr::core::rect< irr::s32 > &rectangle, bool border, bool wordwrap); + int AddStaticText(std::string message, const irr::core::rect< irr::s32 > &rectangle, bool border, bool wordwrap, int id, bool fillbackground); + int AddButton(std::string text, int x1, int y1, int x2, int y2, std::string tooltiptext); + int AddButton(std::string text, irr::core::rect & rect, std::string tooltiptext); //TODO: Add move functions + IrrObj AddListBox(int x1, int y1, int x2, int y2, irr::gui::IGUIElement * parent = 0); + IrrObj AddListBox(const irr::core::rect< irr::s32 > &rectangle, irr::gui::IGUIElement * parent = 0); + void AddStringToListBox(int nLbox, std::string text); + void ChangeStaticText(int nstatictext, std::string message); + void ChangeFont(std::string fontfile); + std::string getSelectListString(int lstbox); + +}; + + +#endif diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Stable Version/1.2.9/IrrSphere.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Stable Version/1.2.9/IrrSphere.cpp Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,71 @@ +/* + Irrlicht Library Wrapper + Created by Nathan Adams + Copyright (C) 2007 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ +#include +#include "IrrLib.h" +#include "IrrSphere.h" +#include +#include + +using namespace irr; +using namespace core; +using namespace scene; +using namespace video; +using namespace io; +using namespace gui; + +using namespace std; + +void IrrSphere::SetSmgr(irr::scene::ISceneManager* smgr){ + this->smgr = smgr; +} + +void IrrSphere::SetDriver(irr::video::IVideoDriver* driver){ + this->driver = driver; +} + +int IrrSphere::CreateNewSphereNode(int x, int y, int z, std::string texture, bool light){ + //TODO: Resize after 10, and add 10 more to the mix! + //this->nodeNew[this->numNodes] = this->smgr->addSphereSceneNode(); + //this->sphereNodes[this->numNodes]->setPosition(core::vector3df(x,y,z)); + //this->sphereNodes[this->numNodes]->setMaterialTexture(0, this->driver->getTexture(texture.c_str())); + //this->sphereNodes[this->numNodes]->setMaterialFlag(video::EMF_LIGHTING, light); + nodeNew = this->smgr->addSphereSceneNode(); + nodeNew->setPosition(core::vector3df(x,y,z)); + nodeNew->setMaterialTexture(0, this->driver->getTexture(texture.c_str())); + nodeNew->setMaterialFlag(video::EMF_LIGHTING, light); + sphereNodes.push_back(nodeNew); + this->numNodes++; + return this->numNodes--; + /*this->node = this->smgr->addSphereSceneNode(); + this->node->setPosition(core::vector3df(x,y,z)); + this->node->setMaterialTexture(0, this->driver->getTexture(texture.c_str())); + this->node->setMaterialFlag(video::EMF_LIGHTING, light);*/ +} + +irr::core::vector3df IrrSphere::GetSphereVector(int sphere){ + //We are converting to vectors, under construction NA + //return this->nodeNew[sphere]->getPosition(); + return this->sphereNodes[sphere]->getPosition(); +} + +void IrrSphere::SetSphereVector(int sphere, irr::core::vector3df v){ + this->sphereNodes[sphere]->setPosition(v); +} + +IrrSphere::IrrSphere(){ + this->numNodes = 0; +} + +IrrSphere::~IrrSphere(){ + /*for(int i = 0; i < numNodes; ++i) + delete this->nodeNew[i]; + + delete this->nodeNew;*/ + //We are using vectors now, no more memory clowing business NA +} diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Stable Version/1.2.9/IrrSphere.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Stable Version/1.2.9/IrrSphere.h Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,46 @@ +/* + Irrlicht Library Wrapper + Created by: + Nathan Adams + Denzel Morris + Copyright (C) 2007 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ + +#ifndef IRRSPHERE_H +#define IRRSPHERE_H +/* We should include some basic functions */ +#include +/* include strings */ +#include +#include + +/* We have to include Irrlichts libs */ +#include + +//#include "IrrLib.h" + + +class IrrSphere +{ + private: + //irr::scene::ISceneNode* nodeNew[10]; + irr::scene::ISceneNode* nodeNew; + std::vector sphereNodes; + int numNodes; + irr::scene::ISceneManager* smgr; + irr::video::IVideoDriver* driver; + public: + void IrrSphere::SetDriver(irr::video::IVideoDriver* driver); + void IrrSphere::SetSmgr(irr::scene::ISceneManager* smgr); + int IrrSphere::CreateNewSphereNode(int x, int y, int z, std::string texture, bool light); //this is going to take my advanced C++ skillz! + irr::core::vector3df IrrSphere::GetSphereVector(int sphere); + void IrrSphere::SetSphereVector(int sphere, irr::core::vector3df v); + IrrSphere::IrrSphere(); + //IrrSphere::IrrSphere(IrrLib*); + IrrSphere::~IrrSphere(); +}; + +#endif diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Stable Version/1.2.9/IrrSprite.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Stable Version/1.2.9/IrrSprite.cpp Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,49 @@ +/* + Irrlicht Library Wrapper + Created by: + Nathan Adams + Denzel Morris + Copyright (C) 2007 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ + +#include +#include +#include + +#include "IrrLib.h" +//Libraries we create go here +//#include "IrrSphere.h" +#include "IrrColor.h" +#include "IrrSprite.h" +//#include "Irr2D.h" + +using namespace irr; +using namespace core; +using namespace scene; +using namespace video; +using namespace io; +using namespace gui; + +using namespace std; + +IrrSprite::IrrSprite() +{ + //do stuff +} + +IrrSprite::~IrrSprite() +{ + //delete stuff +} + +void IrrSprite::SetDriver(irr::video::IVideoDriver* driver) +{ + this->driver = driver; +} +void IrrSprite::SetSmgr(irr::scene::ISceneManager* smgr) +{ + this->smgr = smgr; +} diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Stable Version/1.2.9/IrrSprite.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Stable Version/1.2.9/IrrSprite.h Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,45 @@ +/* + Irrlicht Library Wrapper + Created by: + Nathan Adams + Denzel Morris + Copyright (C) 2007 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ + +#ifndef IRRSPRITE_H +#define IRRSPRITE_H + +/* We should include some basic functions */ +#include +/* include strings */ +#include + +/* We have to include Irrlichts libs */ +#include + +//#include "IrrSphere.h" +#include "IrrColor.h" +//#include "Irr2D.h" +//#include "IrrSprite.h" + +//Start class +class IrrSprite { + + private: + + irr::video::IVideoDriver* driver; + irr::scene::ISceneManager* smgr; + public: + IrrSprite::IrrSprite(); + IrrSprite::~IrrSprite(); + void IrrSprite::SetDriver(irr::video::IVideoDriver* driver); + void IrrSprite::SetSmgr(irr::scene::ISceneManager* smgr); + +// I forgot a semicolon here....and it wasn't compling +//Thats 1 bad thing about OOP if there is an error you don't know where the @#$@# the problem is! +}; + +#endif diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Stable Version/1.2.9/README --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Stable Version/1.2.9/README Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,13 @@ + Irrlicht Library Wrapper + Created by Nathan Adams + Version 1.2.9 + Copyright (C) 2007 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. + + Please leave all files intact if you redistrubte this software. + +How to use: + Add all the files to your Irrlicht project, you could compile it into a DLL if you wanted too, but for now just add all the files to your project. + Then inside your complier add the directory that you have the IrrLib files and use #include "IrrLib.h" to refrence it, and you are good to go! \ No newline at end of file diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Stable Version/1.3.3/CHANGES --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Stable Version/1.3.3/CHANGES Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,90 @@ +Version 1.2 ++ Added a Irr3DLib class that will control all 3D objects ++ Also Added a Irr2D class that works on the same concept. ++ IrrSphere is now owned by Irr3DLib ++ Updated the examples using the latest code +Version 1.2.2 ++ Added IrrEventReciever to handle all input + - Still under work ++ Fixed some misc coding bugs ++ Added template class ++ Added sprite class ++ Added GUI class +Version 1.2.3 ++ IrrEventReciver now works as advertised ++ Baseclass is now being used + + A couple somewhat-useful functions + + int_to_string + + stringw_to_stdstring + + stdstring_to_stringw ++ GUI elements + + Static text is working ++ Under construction for a data type class +Version 1.2.4 ++ Implmented color codes accessiable through the class + + IrrLib.Color.RED (ect) +Version 1.2.5 ++ Implmented mouse events + + IrrLib.IrrEvent.getMouseX(); + + IrrLib.IrrEvent.getMouseY(); ++ Using vectors instead of static arrays + + Side note: Was going to use dynamic arrays, but C++ has vectors which are 10x better. ++ Added a default exit for when you hit esc + + Use IrrLib.IrrEvent.SetEscExit(false) to turn that off for your software + + Use IrrLib.IrrEvent.SetEscExit(true) to turn it back on ++ Every stable version will now include a windows DLL. + + Possible Linux .so file in the future. +Version 1.2.6 ++ Added a IrrEvent for buttons + + IrrLib.IrrEvent.checkButtonState(); + + See example for use ++ Added an AddButton function + + IrrLib.GUI.AddButton(..); + + See example for use ++ Problems with making the DLL + + reasearching +Version 1.2.7 ++ Fixed DLL Problem ++ Added an enum example to example 1 ++ Added more examples ++ Added example 9 ++ Added left click handling (see example 9) ++ Added AddLines function to Irr2D + + DrawLines function in Irr2D will draw the lines you add +Version 1.2.9 ++ Added Listbox GUI object ++ Added a new datatype IrrObj + + Contains 2 ints, 1 for object id and 1 for event id ++ Added a IrrData.h file +Version 1.3.0 ++ Changed String class use to Irrlicht's type Strings +Version 1.3.1 ++ Added support for newest Irrlict version +Version 1.3.2/1.3.3 ++ Added Newton Physics engine + - Deleted Irr2D::Collision as this will be now handled by the physics engine + + Added a few functions for Collision + + Added a new object Irr3DObj + + Has several functions that allow you to work easily with 3D objects including moving them and setting the texture. + + You can now detect collision between 2 3D objects and output them to the screen + + Example code: http://pastethis.net/?code=49 ++ Changed the way IrrColor colors work ++ Changed internally handling of some global variables ++ Added some static variables + + Irrlicht Device is now static in IrrLib class + + Some variables that deal with Physics are static ++ Updated copyright ++ Added new datatypes + + Irr3DLibObj + + Irr3DObj + + Irr2DObj + + IrrGUIObj + + IrrGUIStruct + + IrrEventObj + + Irr3DSphere + + Irr3DObjColor +- Deleted IrrData.h ++ 3D mesh display is working, though its still in the works (see example 11 in the SVN) ++ Implmented smart pointer class "IrrObj" ++ Possible fix of header circular inclusion +% Future planned use of namespace \ No newline at end of file diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Stable Version/1.3.3/CREDITS --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Stable Version/1.3.3/CREDITS Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,10 @@ +IrrLib +Created by + Nathan Adams + +From #irrlicht + Acid + wacom + +From Irrlicht Forums + Denzel Morris \ No newline at end of file diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Stable Version/1.3.3/Collision.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Stable Version/1.3.3/Collision.h Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,7 @@ +#ifndef COLLISION.H +#define COLLISION.H +struct Collision { + int nHits; + bool hit; +}; +#endif diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Stable Version/1.3.3/Irr2D.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Stable Version/1.3.3/Irr2D.cpp Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,121 @@ +/* + Irrlicht Library Wrapper + Created by: + Nathan Adams + Copyright (C) 2008 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ + +#include +//#include "IrrLib.h" +//#include "IrrSphere.h" //You probably aren't going to be using 3D objects in a 2D environment! +#include +#include + +#include "Irr2D.h" +#include "IrrSprite.h" +//#include "IrrData.h" + +using namespace irr; +using namespace core; +using namespace scene; +using namespace video; +using namespace io; +using namespace gui; + +using namespace std; + +Irr2D::Irr2D(){ + this->numTextures = 0; + this->numLines = 0; + this->nImages = 0; + //NA Should we set textures to new +} + +Irr2D::~Irr2D(){ + /*for(int i = 0; i < numTextures; ++i) + delete this->textures[i]; + + delete this->textures;*/ + //No more dynamic memory business yay! NA + //All handled by vectors! +} + +/*void Irr2D::SetSmgr(irr::scene::ISceneManager* smgr){ + this->smgr = smgr; + Sprite.SetSmgr(smgr); +} + +void Irr2D::SetDriver(irr::video::IVideoDriver* driver){ + this->driver = driver; + Sprite.SetDriver(driver); +}*/ + +Irr2DObj Irr2D::LoadTexturemap(stringc file){ + this->texturemap = driver->getTexture(file.c_str()); +} + +Irr2DObj Irr2D::LoadTexture(stringc file){ + //this->textures[this->numTextures] = driver->getTexture(file.c_str()); + textures.push_back(driver->getTexture(file.c_str())); + this->numTextures++; + Irr2DObj ret; + ret->eventid = 0; + ret->objectid = numTextures--; + return ret; +} + +void Irr2D::DrawLine(IrrPos& start, IrrPos& end, irr::video::SColor color) +{ + this->driver->draw2DLine(start, end, color); +} + +void Irr2D::AddLines(IrrPos& start, IrrPos& end, irr::video::SColor color) +{ + this->start.push_back(start); + this->end.push_back(end); + this->color.push_back(color); + this->numLines++; +} + +void Irr2D::DrawLines() +{ + for(int i = 0; i < numLines; ++i) + this->driver->draw2DLine(this->start[i], this->end[i], this->color[i]); +} + +Irr2DObj Irr2D::LoadIrrImage(irr::core::stringc file) +{ + images.push_back(this->driver->getTexture(file.c_str())); + Irr2DObj ret; + ret->objectid = nImages; + ret->eventid = 0; + this->nImages++; + return ret; +} + +void Irr2D::DrawImage(Irr2DObj img) +{ + irr::core::position2d destPos(img->x, img->y); + this->driver->draw2DImage(images[img->objectid], destPos); +} + +void Irr2D::Draw2DObj(irr::core::stringc file) +{ + //NewtonObj tmp; + //tmp.irr_node = smgr->addMeshSceneNode(smgr->getMesh(file.c_str())->getMesh(0)); + //IMeshSceneNode* temp; + objects.push_back(smgr->addMeshSceneNode(smgr->getMesh(file.c_str())->getMesh(0))); + objects.push_back(smgr->addMeshSceneNode(smgr->getMesh(file.c_str())->getMesh(0))); + objects[0]->setPosition(vector3df(-5,0,0)); + objects[0]->getMaterial(0).EmissiveColor.set(255,0,255,5); +} + +/*bool Irr2D::Collision(Irr2DObj obj1, Irr2DObj obj2) +{ + int x1 = obj1.x; + int y1 = obj1.y; +}*/ + diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Stable Version/1.3.3/Irr2D.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Stable Version/1.3.3/Irr2D.h Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,72 @@ +/* + Irrlicht Library Wrapper + Created by: + Nathan Adams + Copyright (C) 2008 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ + +#ifndef IRR2D_H +#define IRR2D_H +/* We should include some basic functions */ +#include +/* include strings */ +#include +#include + +/* We have to include Irrlichts libs */ +#include + +//#include "IrrLib.h" +#include "IrrSprite.h" +#include "IrrDefines.h" + +class Irr2D: public IrrLibBase { + private: + //irr::scene::ISceneManager* smgr; + //irr::video::IVideoDriver* driver; + //Inherited from IrrLibBase + irr::video::ITexture* texturemap; + int numTextures; + //irr::video::ITexture* textures[10]; + std::vector textures; + std::vector > start; + std::vector > end; + std::vector color; + std::vector images; + std::vector objects; + int numLines; + int nImages; + public: + //Irr2D::Irr2D(); + IrrSprite Sprite; + Irr2D(); + ~Irr2D(); + //void Irr2D::SetDriver(irr::video::IVideoDriver* driver); + //void Irr2D::SetSmgr(irr::scene::ISceneManager* smgr); + //Inherited from irrlibbase + Irr2DObj LoadTexturemap(irr::core::stringc file); + Irr2DObj LoadTexture(irr::core::stringc file); + //Has been renamed from LoadImage to LoadIrrImage due to conflict with windows API + Irr2DObj LoadIrrImage(irr::core::stringc file); + //void Irr2D::DrawImage(int texture, const irr::core::position2d & destPos); + //void Irr2D::DrawImage(IrrObj& img, irr::core::position2d& destPos); + void DrawImage(Irr2DObj img); + void Draw2DObj(irr::core::stringc file); + //void Irr2D::MoveImage(IrrObj img, irr::core::dimension2d destPos); + //void Irr2D::MoveImage(IrrObj img, int x, int y); + //void Irr2D::DrawImage(const irr::core::position2d & destPos, const irr::core::rect & sourceRect, const irr::core::rect * clipRect, irr::video::SColor color, bool useAlphaChannelOfTexture); + //void Irr2D::DrawImage(const irr::core::position2d & destPos, const irr::core::rect & sourceRect, const irr::core::rect * clipRect, irr::video::SColor color, bool useAlphaChannelOfTexture); + //void Irr2D::DrawLine(irr::core::position2d& start, irr::core::position2d& end, irr::video::SColor& color); + void DrawLine(IrrPos& start, IrrPos& end, irr::video::SColor color); + void DrawLines(); + //void Irr2D::AddLines(irr::core::position2d& start, irr::core::position2d& end, irr::video::SColor& color); + void AddLines(IrrPos& start, IrrPos & end, irr::video::SColor color); + //bool Irr2D::Collision(IrrObj obj1, IrrObj obj2); + //IrrObj Irr2D::LoadImageA(irr::core::stringc file); +}; + +#endif + diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Stable Version/1.3.3/Irr3D.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Stable Version/1.3.3/Irr3D.cpp Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,51 @@ +/* + Irrlicht Library Wrapper + Created by: + Nathan Adams + Copyright (C) 2008 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ + +#include +#include + +//#include "IrrLib.h" +//Libraries we create go here +#include "IrrSphere.h" +//#include "IrrColor.h" +#include "Irr3D.h" +#include +//#include "Irr2D.h" + +using namespace irr; +using namespace core; +using namespace scene; +using namespace video; +using namespace io; +using namespace gui; + +using namespace std; + +/*void Irr3D::SetDriver(irr::video::IVideoDriver* driver) //so much for copying and pasting code from the header file +{ + this->driver = driver; + Sphere.SetDriver(driver); +} + +void Irr3D::SetSmgr(irr::scene::ISceneManager* smgr) +{ + this->smgr = smgr; + Sphere.SetSmgr(smgr); +}*/ + +Irr3D::Irr3D() +{ + //do stuff here! +} + +Irr3D::~Irr3D() +{ + //delete stuff here! +} diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Stable Version/1.3.3/Irr3D.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Stable Version/1.3.3/Irr3D.h Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,43 @@ +/* + Irrlicht Library Wrapper + Created by: + Nathan Adams + Copyright (C) 2008 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ + +#ifndef IRR3D_H +#define IRR3D_H + +/* We should include some basic functions */ +#include +/* include strings */ +#include + +/* We have to include Irrlichts libs */ +#include + +#include "IrrSphere.h" +//#include "IrrColor.h" +//#include "Irr3D.h" +//#include "Irr2D.h" This is a 3D class not 2D +/* However due to Irrlciht's nature mixing 2D with 3D is possible */ + +//Start class +class Irr3D: public IrrLibBase { + + private: + + //irr::video::IVideoDriver* driver; + //irr::scene::ISceneManager* smgr; + public: + IrrSphere Sphere; + Irr3D(); + ~Irr3D(); + //void Irr3D::SetDriver(irr::video::IVideoDriver* driver); + //void Irr3D::SetSmgr(irr::scene::ISceneManager* smgr); +}; + +#endif diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Stable Version/1.3.3/Irr3DLibObj.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Stable Version/1.3.3/Irr3DLibObj.cpp Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,88 @@ +/* + Irrlicht Library Wrapper + Created by: + Nathan Adams + Copyright (C) 2008 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ + +#include +#include +#include +#include + +#include "Irr3DLibObj.h" +#include "IrrPhysics.h" +#include "IrrFunctions.h" +#include "IrrLib.h" + +using namespace irr; +using namespace core; +using namespace scene; +using namespace video; +using namespace io; +using namespace gui; + +using namespace std; + +Irr3DLibObj::Irr3DLibObj() +{ + this->col.a = 0; + this->col.b = 0; + this->col.g = 0; + this->col.r = 0; +} + +void Irr3DLibObj::setColor(Irr3DObjColor col) +{ + this->col.a = col.a; + this->col.b = col.b; + this->col.g = col.g; + this->col.r = col.r; +} + +/*Irr3DLibObj::Irr3DLibObj(IrrLib &irr, Irr3DLibObjColor col) +{ + this->col.a = col.a; + this->col.r = col.r; + this->col.g = col.g; + this->col.b = col.b; +}*/ + +IMeshSceneNode* Irr3DLibObj::getSceneNode() +{ + return this->irr_node; +} + +NewtonCollision* Irr3DLibObj::getNewtonCollision() +{ + return this->nwtn_collision; +} + +void Irr3DLibObj::setMesh(irr::core::stringc strng) +{ + this->texture = strng; +} + +void Irr3DLibObj::Move(Irr3DPos pos) +{ + this->irr_node->setPosition(vector3df(pos.x, pos.y, pos.z)); +} + +void Irr3DLibObj::addToScene() +{ + if (this->texture == "") + { + cout << "Material not set for this object" << endl; + return; + } + ISceneManager* smgr = IrrLib::device->getSceneManager(); + //this->irr_node = this->device->getSceneManager->addMeshSceneNode(this->device->getSceneManager->getMesh(this->texture.c_str())->getMesh(0)); + this->irr_node = smgr->addMeshSceneNode(smgr->getMesh(this->texture.c_str())->getMesh(0)); + this->irr_node->getMaterial(0).EmissiveColor.set(this->col.a, this->col.r, this->col.g, this->col.b); + //cout << col.a << endl; + this->nwtn_collision = CreateCollisionFromMesh(this->irr_node->getMesh()); + +} diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Stable Version/1.3.3/Irr3DLibObj.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Stable Version/1.3.3/Irr3DLibObj.h Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,52 @@ +/* + Irrlicht Library Wrapper + Created by: + Nathan Adams + Copyright (C) 2008 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ + +#ifndef IRR3DLIBOBJ_H +#define IRR3DLIBOBJ_H +/* We have to include Irrlichts libs */ + +#include +#include +#include "IrrLibBase.h" +//class IrrLib; +//#include "IrrData.h" +#include "Irr3DObjColor.h" +#include "Irr3DPos.h" + + +//class Irr3DLibObj; +//class IrrLib; +//#include "IrrLib.h" +//class Irr3DPos; +class IrrLib; + +class Irr3DLibObj: public IrrLibBase { + + private: + IrrLib * Irrlicht; + irr::scene::IMeshSceneNode *irr_node; + NewtonCollision *nwtn_collision; + irr::core::stringc texture; + Irr3DObjColor col; + public: + Irr3DLibObj(); + void Move(Irr3DPos pos); + void addToScene(); + void createNewObj(); + void setMesh(irr::core::stringc strng); + void setPosition(Irr3DPos pos); + void setColor(Irr3DObjColor col); + void setPosition(irr::u32 x, irr::u32 y, irr::u32 z); + irr::scene::IMeshSceneNode* getSceneNode(); + NewtonCollision* getNewtonCollision(); +}; + + +#endif diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Stable Version/1.3.3/Irr3DObjColor.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Stable Version/1.3.3/Irr3DObjColor.h Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,12 @@ +#ifndef IRR3DOBJCOLOR_H +#define IRR3DOBJCOLOR_H +#include + +struct Irr3DObjColor { + irr::u32 r; + irr::u32 g; + irr::u32 b; + irr::u32 a; +}; + +#endif diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Stable Version/1.3.3/Irr3DPos.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Stable Version/1.3.3/Irr3DPos.h Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,10 @@ +#ifndef IRR3DPOS_H +#define IRR3DPOS_H + +struct Irr3DPos { + int x; + int y; + int z; +}; + +#endif diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Stable Version/1.3.3/IrrColor.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Stable Version/1.3.3/IrrColor.cpp Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,112 @@ +/* + Irrlicht Library Wrapper + Created by: + Nathan Adams + Copyright (C) 2008 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ + +#include +#include +#include + +//#include "IrrLib.h" +#include "IrrColor.h" + +using namespace irr; +using namespace core; +using namespace scene; +using namespace video; +using namespace io; +using namespace gui; + +using namespace std; + +void IrrColor::Init(){ + /*SColor * temp; + temp = new SColor(alpha, 255, 0, 0); + this->RED = temp; + delete temp;*/ + this->RED = SColor(alpha, 255, 0, 0); + this->ORANGE = SColor(alpha, 255, 165, 0); + this->YELLOW = SColor(alpha, 255, 255, 0); + this->GREEN = SColor(alpha, 0, 255, 0); + this->BLUE = SColor(alpha, 0, 0, 255); + this->DARK_GREEN = SColor(alpha, 0, 100, 0); + this->PINK = SColor(alpha, 255, 192, 203); + this->GREY = SColor(alpha, 190, 190, 190); + this->WHITE = SColor(alpha, 0, 0, 0); + this->BLACK = SColor(alpha, 0, 0, 0); +} + +IrrColor::~IrrColor(){ + /*delete this->RED; + delete this->ORANGE; + delete this->YELLOW; + delete this->GREEN; + delete this->BLUE; + delete this->DARK_GREEN; + delete this->PINK; + delete this->GREY; + delete this->WHITE; + delete this->BLACK;*/ +} + +IrrColor::IrrColor(){ + this->alpha = 255; + Init(); +} + +IrrColor::IrrColor(irr::u32 alpha){ + this->alpha = alpha; + Init(); +} + +int IrrColor::getAlpha(){ + return this->alpha; +} + +void IrrColor::setAlpha(int alpha){ + this->alpha = alpha; +} + +SColor IrrColor::returnColor(stringw color){ + int nColor = -1; + if (color == "red") + nColor = 1; + else if (color == "green") + nColor = 2; + else if (color == "blue") + nColor = 3; + else if (color == "dark green") + nColor = 4; + else if (color == "pink") + nColor = 5; + else if (color == "grey") + nColor = 6; + switch (nColor){ + case 1: + return SColor(255, 255, 0, 0); + break; + case 2: + return SColor(255, 0, 255, 0); + break; + case 3: + return SColor(255, 0, 0, 255); + break; + case 4: + return SColor(255, 0, 50, 0); + break; + case 5: + return SColor(255, 255, 10, 255); + break; + case 6: + return SColor(255,200,200,200); + break; + default: + return SColor(255,200,200,200); + break; + }// TODO: Make this function modular +} diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Stable Version/1.3.3/IrrColor.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Stable Version/1.3.3/IrrColor.h Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,52 @@ +/* + Irrlicht Library Wrapper + Created by: + Nathan Adams + Copyright (C) 2008 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ + +#ifndef IRRCOLOR_H +#define IRRCOLOR_H + +#include +#include +#include "irrlicht.h" +//#include "IrrLib.h" + +class IrrColor { + private: + irr::u32 alpha; + void Init(); + //who knows? + public: + //irr::video::SColor(alpha, 255, 0, 0); + irr::video::SColor RED; + irr::video::SColor ORANGE; + irr::video::SColor YELLOW; + irr::video::SColor GREEN; + irr::video::SColor BLUE; + irr::video::SColor DARK_GREEN; + irr::video::SColor PINK; + irr::video::SColor GREY; + irr::video::SColor WHITE; + irr::video::SColor BLACK; + /*const ORANGE = irr::video::SColor(alpha, 255, 165, 0); + const YELLOW = irr::video::SColor(alpha, 255, 255, 0); + const GREEN = irr::video::SColor(alpha, 0, 255, 0); + const BLUE = irr::video::SColor(alpha, 0, 0, 255); + const DARK_GREEN = irr::video::SColor(alpha, 0, 100, 0); + const PINK = irr::video::SColor(alpha, 255, 192, 203); + const GREY = irr::video::Scolor(alpha, 190, 190, 190);*/ + //void IrrColor::test(); + IrrColor(); + IrrColor(irr::u32 alpha); + ~IrrColor(); + int getAlpha(); + void setAlpha(int alpha); + irr::video::SColor returnColor(irr::core::stringw color); +}; + +#endif diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Stable Version/1.3.3/IrrDefines.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Stable Version/1.3.3/IrrDefines.h Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,19 @@ +#ifndef IRRDEFINES_H +#define IRRDEFINES_H + +//#include "IrrData.h" +#include "IrrObj.h" +#include "IrrLibObj.h" +#include "IrrGUIStruct.h" +#include "Irr3DObjColor.h" +#include "Irr3DLibObj.h" +typedef IrrObj Irr2DObj; +typedef IrrObj IrrGUIObj; +typedef IrrObj IrrEventObj; +typedef IrrObj Irr3DSphere; +typedef IrrObj Irr3DObj; + +typedef irr::core::dimension2d PixelSize; +typedef irr::core::position2d IrrPos; + +#endif diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Stable Version/1.3.3/IrrEventReciever.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Stable Version/1.3.3/IrrEventReciever.cpp Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,196 @@ +/* + Irrlicht Library Wrapper + Created by: + Nathan Adams + Copyright (C) 2008 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ + +#include "IrrEventReciever.h" +#include "IrrLib.h" +//#include "IrrLib.h" +#include +#include + +using namespace irr; +using namespace core; +using namespace scene; +using namespace video; +using namespace io; +using namespace gui; + +using namespace std; + +/*void IrrEventReciever::setIrrLib(IrrLib& IrrLib) +{ + this.callingIrrLib = IrrLib; +}*/ + +IrrEventReciever::IrrEventReciever() +{ + this->escexit = true; + this->mouse.x = 0; + this->mouse.y = 0; + for(int i = 0; i < irr::KEY_KEY_CODES_COUNT; i++) + keyStates[i] = false; + this->device = IrrLib::device; +} + +#if IRRVER == 131 + bool IrrEventReciever::OnEvent(SEvent event) +#else + bool IrrEventReciever::OnEvent(const SEvent &event) +#endif +{ + // A button was clicked + if (event.EventType == irr::EET_GUI_EVENT) + { + s32 id = event.GUIEvent.Caller->getID(); + switch(event.GUIEvent.EventType){ + case EGET_BUTTON_CLICKED: + //cout << id << endl; + buttonStates.push_back(id); + break; + case EGET_LISTBOX_CHANGED: + //s32 id = event.GUIEvent.Caller->getID(); + listStates.push_back(id); + break; + case EGET_LISTBOX_SELECTED_AGAIN: + listStates.push_back(id); + break; + default: + break; + } + } + /*if (event.EventType == irr::EGET_SCROLL_BAR_CHANGED) + { + + }*/ + if (event.EventType == irr::EET_KEY_INPUT_EVENT) { + if (!event.KeyInput.PressedDown){ + this->keyStates[event.KeyInput.Key] = false; + //cout << "Key was not hit " << this->keyStates[event.KeyInput.Key] << endl; + } + else{ + if(event.KeyInput.Key == KEY_ESCAPE && escexit) + IrrLib::device->closeDevice(); + this->keyStates[event.KeyInput.Key] = true; + //cout << "Key was hit: " << event.KeyInput.Key << " " << this->keyStates[event.KeyInput.Key] << endl; + } + } + if (event.EventType == EET_MOUSE_INPUT_EVENT){ + if (event.MouseInput.Event == EMIE_MOUSE_MOVED){ + this->mouse.x = event.MouseInput.X; + this->mouse.y = event.MouseInput.Y; + } + if (event.MouseInput.Event == EMIE_LMOUSE_PRESSED_DOWN) + this->mouseStates[0] = true; + if (event.MouseInput.Event == EMIE_LMOUSE_LEFT_UP) + this->mouseStates[0] = false; + } + return false; +} + +void IrrEventReciever::SetEscExit(bool onoff) +{ + this->escexit = onoff; +} + +int IrrEventReciever::getMouseX() +{ + return this->mouse.x; +} + +int IrrEventReciever::getMouseY() +{ + return this->mouse.y; +} + +int IrrEventReciever::getButtonState() +{ + if(!this->buttonStates.empty()){ + int id; + id = buttonStates.back(); + this->buttonStates.pop_back(); + return id; + } + else + return -1; +} + +int IrrEventReciever::getRevButtonState() +{ + if(!this->buttonStates.empty()){ + int id = buttonStates.front(); + this->buttonStates.erase(buttonStates.begin()); + return id; + } + else + return -1; +} + +void IrrEventReciever::clearButtonState() +{ + this->buttonStates.clear(); +} + +int IrrEventReciever::checkButtonState(IrrEventObj obj) +{ + if(!this->buttonStates.empty()){ + int tmp = this->buttonStates.back(); + if (tmp == obj->eventid) + { + this->delLastButtonState(); + return 1; + } + else + { + return 0; + } + } + else + { + return -1; + } +} + +void IrrEventReciever::delLastButtonState() +{ + if(!this->buttonStates.empty()) + this->buttonStates.pop_back(); +} + +bool IrrEventReciever::isButtonStateEmpty() +{ + return this->buttonStates.empty(); +} + +int IrrEventReciever::checkListState(IrrEventObj obj) +{ + if(!this->listStates.empty()) + { + int tmp = this->listStates.back(); + //cout << tmp << endl; + if (tmp == obj->eventid) + { + this->delLastListState(); + return 1; + } + else + { + return 0; + } + } + else + { + return 0; + } +} + +void IrrEventReciever::delLastListState() +{ + if(!this->listStates.empty()) + this->listStates.pop_back(); +} diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Stable Version/1.3.3/IrrEventReciever.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Stable Version/1.3.3/IrrEventReciever.h Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,57 @@ +/* + Irrlicht Library Wrapper + Created by: + Nathan Adams + Copyright (C) 2008 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ + +#ifndef IRREVENTRECIEVER_H +#define IRREVENTRECIEVER_H + +//#include "IrrLib.h" +#include +#include +#include "IrrLibBase.h" +#include "IrrDefines.h" +#include +#include "_mouse.h" + + + +class IrrEventReciever : public irr::IEventReceiver, public IrrLibBase +{ + private: + //IrrLib callingIrrLib; + _mouse mouse; + bool escexit; + std::vector buttonStates; + std::vector listStates; + irr::IrrlichtDevice *device; + public: + //IrrEventReciever(); + bool mouseStates[1]; + IrrEventReciever(); + int getMouseX(); + int getMouseY(); + bool keyStates[irr::KEY_KEY_CODES_COUNT]; + //void setIrrLib(IrrLib& IrrLib) + #if IRRVER == 131 + virtual bool OnEvent(irr::SEvent event); + #else + virtual bool OnEvent(const irr::SEvent &event); + #endif + void SetEscExit(bool onoff); + int getButtonState(); + int getRevButtonState(); + void clearButtonState(); + int checkButtonState(IrrEventObj obj); + void delLastButtonState(); + bool isButtonStateEmpty(); //is there still stuff in the vector to be done? NA + int checkListState(IrrEventObj obj); + void delLastListState(); +}; + +#endif diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Stable Version/1.3.3/IrrFunctions.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Stable Version/1.3.3/IrrFunctions.cpp Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,169 @@ +#include "IrrFunctions.h" +#include +#include +#include +#include "IrrDefines.h" +#include "IrrPhysics.h" + +using namespace std; + +using namespace irr; +using namespace core; +using namespace scene; +using namespace video; +using namespace io; +using namespace gui; + +/*void test(Irr3DObj obj_A, Irr3DObj obj_B) +{ + cout << "Blah" << endl; + return; +}*/ + +int CheckForCollision(Irr3DObj& obj_A, Irr3DObj& obj_B) +{ +//Matrix to store irr_node position +matrix4 mat_A,mat_B; + +//Copy position +mat_A.makeIdentity(); +mat_B.makeIdentity(); + +mat_A.setTranslation(obj_A->getSceneNode()->getPosition()); +mat_B.setTranslation(obj_B->getSceneNode()->getPosition()); + +const int nContacts = 2; +float contacts[3 * nContacts]; +float normals[3 * nContacts]; +float penetration[ nContacts ]; + +//Check for collision between collision meshes, +// returns number of contact points +int nHits = NewtonCollisionCollide( IrrPhysics::nworld,nContacts, + + obj_A->getNewtonCollision(), (float*)&mat_A[0], + obj_B->getNewtonCollision(), (float*)&mat_B[0], + contacts, + normals, + penetration); +//Collision detected if nHits > 0 +/*if( nHits > 0) +return true; +return false;*/ +return nHits; + +} + +//Function to create a NewtonCollision from irrlicht mesh with tree optimization +NewtonCollision * CreateTreeCollisionFromMesh(IMesh *irr_mesh ) +{ +//Create new (tree optimized) collision mesh +NewtonCollision *collision_obj = NewtonCreateTreeCollision(IrrPhysics::nworld ,NULL); + +//Begin collision mesh construction +NewtonTreeCollisionBeginBuild(collision_obj); + +int nMeshBuffer = 0; //Mesh Buffer count +int v_index[3] = {0,0,0}; //vertex indices +IMeshBuffer *mesh_buffer = NULL; +float array[9]; //Array to store 3 vertices + +//Get (irr_)mesh buffers and copy face by face to collision mesh +for( nMeshBuffer=0 ; nMeshBuffer < irr_mesh->getMeshBufferCount() ; nMeshBuffer++ ) +{ +mesh_buffer = irr_mesh->getMeshBuffer(nMeshBuffer); + +//Get pointer to vertices and indices +S3DVertex *vertices = (S3DVertex*)mesh_buffer->getVertices(); +u16 *indices = mesh_buffer->getIndices(); + +//Fill collision mesh +for(int i=0; igetIndexCount(); i+=3) +{ +v_index[0] = indices[ i ]; +v_index[1] = indices[i+1]; +v_index[2] = indices[i+2]; + +// 1st position vertex +array[0] = vertices[ v_index[0] ].Pos.X; +array[1] = vertices[ v_index[0] ].Pos.Y; +array[2] = vertices[ v_index[0] ].Pos.Z; + +// 2nd position vertex +array[3] = vertices[ v_index[1] ].Pos.X; +array[4] = vertices[ v_index[1] ].Pos.Y; +array[5] = vertices[ v_index[1] ].Pos.Z; + +// 3rd position vertex +array[6] = vertices[ v_index[2] ].Pos.X; +array[7] = vertices[ v_index[2] ].Pos.Y; +array[8] = vertices[ v_index[2] ].Pos.Z; + +//Add new face to collision mesh +NewtonTreeCollisionAddFace(collision_obj, //collision mesh to add face to + + 3, //number of vertices in array + (float*)array, //pointer to vertex array + 3*sizeof(float),//size of each vertex + 1); //ID of the face + +} +} +//End collision contruction , set 1 as 2dn param for optimization +NewtonTreeCollisionEndBuild(collision_obj,0); + +return collision_obj; + +} + +//Function to create a NewtonCollision from irrlicht mesh +NewtonCollision * CreateCollisionFromMesh(IMesh *irr_mesh ) +{ +int nMeshBuffer = 0; //Mesh Buffer count +IMeshBuffer *mesh_buffer = NULL; +float *vertices; //Array to store vertices + +u32 nVertices = 0; + +//Get number of vertices +for( nMeshBuffer=0 ; nMeshBuffer < irr_mesh->getMeshBufferCount() ; nMeshBuffer++ ) +{ +nVertices += irr_mesh->getMeshBuffer(nMeshBuffer)->getVertexCount(); +} + + +//create buffer for vertices +vertices = new float[nVertices * 3]; +u32 tmpCounter = 0; + +//Get (irr_)mesh buffers and copy face vertices +for( nMeshBuffer=0 ; nMeshBuffer < irr_mesh->getMeshBufferCount() ; nMeshBuffer++ ) +{ + + mesh_buffer = irr_mesh->getMeshBuffer(nMeshBuffer); + + //Get pointer to vertices and indices + S3DVertex *S3vertices = (S3DVertex*)mesh_buffer->getVertices(); + + +//copy vertices from mesh to buffer +for(int i=0; igetVertexCount(); i++) +{ + + vertices[tmpCounter++] = S3vertices[i].Pos.X; + vertices[tmpCounter++] = S3vertices[i].Pos.Y; + vertices[tmpCounter++] = S3vertices[i].Pos.Z; + + } + +} + +//Create Newton collision object +NewtonCollision *collision_obj = NewtonCreateConvexHull(IrrPhysics::nworld,nVertices,vertices,sizeof(float)*3,NULL); + +//delete vertices +delete [] vertices; + +return collision_obj; + +} diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Stable Version/1.3.3/IrrFunctions.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Stable Version/1.3.3/IrrFunctions.h Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,12 @@ +#ifndef IRRFUNCTIONS_H +#define IRRFUNCTIONS_H + + +//#include "IrrObj.h" +#include "IrrDefines.h" + //void test(Irr3DObj obj_A, Irr3DObj obj_B); + int CheckForCollision(Irr3DObj& obj_A, Irr3DObj& obj_B); + NewtonCollision * CreateTreeCollisionFromMesh(irr::scene::IMesh *irr_mesh ); + NewtonCollision * CreateCollisionFromMesh(irr::scene::IMesh *irr_mesh ); + +#endif diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Stable Version/1.3.3/IrrGUIStruct.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Stable Version/1.3.3/IrrGUIStruct.h Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,10 @@ +#ifndef IRRGUISTRUCT_H +#define IRRGUISTRUCT_H + +struct IrrGUIStruct { + int eventid; + int objectid; +}; + +#endif + diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Stable Version/1.3.3/IrrLib.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Stable Version/1.3.3/IrrLib.cpp Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,299 @@ +/* + Irrlicht Library Wrapper + Created by: + Nathan Adams + Copyright (C) 2008 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ + +#include +#include +#include +#include +#include + +#include "IrrLib.h" +//Libraries we create go here +//#include "IrrSphere.h" +#include "IrrColor.h" +//#include "Irr2D.h" + +using namespace irr; +using namespace core; +using namespace scene; +using namespace video; +using namespace io; +using namespace gui; + +using namespace std; + + +/*IrrLib::IrrLib(MastEventReceiver & receiver){ + this->device = createDevice(EDT_SOFTWARE, dimension2d(640, 480), 16, false, false, false, &receiver); + if (this->device == 0) + exit(1); + IrrLib::Init(); +}*/ + +IrrlichtDevice *IrrLib::device; + +IrrLib::IrrLib(){ + IrrLib::device = createDevice(EDT_SOFTWARE, dimension2d(640, 480), 16, false, false, false, &this->IrrEvent); + if (IrrLib::device == 0) + exit(1); + IrrLib::Init(); +} + +IrrLib::IrrLib(video::E_DRIVER_TYPE drivertype, core::dimension2d & res, u32 bits, bool fullscreen, bool stencilbuffer, bool vsync){ + //MyEventReceiver receiver; + this->device = createDevice(drivertype, res, bits, fullscreen, stencilbuffer, vsync, &this->IrrEvent); + if (this->device == 0) + exit(1); + IrrLib::Init(); +} + +IrrLib::IrrLib(int nDrivertype, int width, int height, int bits, bool fullscreen, bool stencilbuffer, bool vsync){ + //MyEventReceiver receiver; + video::E_DRIVER_TYPE drivertype; + switch (nDrivertype){ + case 0: //TODO: finish this switch case + drivertype = EDT_NULL; + break; + case 1: + drivertype = EDT_SOFTWARE; + break; + case 2: + drivertype = EDT_BURNINGSVIDEO; + break; + case 3: + drivertype = EDT_OPENGL; + break; + case 4: + #if DX8 == 1 + drivertype = EDT_DIRECT3D8; + #else + drivertype = EDT_OPENGL; + #endif + //*Note: It seems as Microsoft has stoped supporting DX 8.1, so you can not compile it into Irrlicht engine anymore + //TODO: Find how to detect if DX is complied into Irrlicht + //TODO: Find how to detecht for linux + break; + case 5: + #if DX9 == 1 + drivertype = EDT_DIRECT3D9; + #else + drivertype = EDT_OPENGL; + #endif + break; + default: + drivertype = EDT_SOFTWARE; + break; + } + this->device = createDevice(drivertype, dimension2d(width, height), bits, fullscreen, stencilbuffer, vsync, &this->IrrEvent); + if (this->device == 0) + exit(1); + IrrLib::Init(); +} + +IrrLib::~IrrLib (){ //Our moms wont clean up after us! + //Although I'm sure Irrlicht does this for us already, its always a good idea to check! + /*if (this->device != NULL) + delete this->device; + if (this->driver != NULL) + delete this->driver; + if (this->smgr != NULL) + delete this->smgr; + if (this->mesh != NULL) + delete this->mesh; + if (this->node != NULL) + delete this->node;*/ //it seems Irrlicht picks up after us... + //however we created newNodes, now we need to delete it! +// NewtonReleaseCollision(nworld, sphere.nwtn_collision); +// NewtonReleaseCollision(nworld, cube.nwtn_collision); + //NewtonDestroy(IrrPhy.nworld); + +} + +void IrrLib::Init(){ + //this->numNodes = 0; + //this->nodeNew = new ISceneNode[10]; + //this->env->addStaticText(L"Transparent Control:", rect(20,30,300,80), true); + this->env = this->device->getGUIEnvironment(); + this->driver = this->device->getVideoDriver(); + this->smgr = this->device->getSceneManager(); + Irr3DLib.SetSmgr(this->smgr); + Irr3DLib.SetDriver(this->driver); + Irr2DLib.SetSmgr(this->smgr); + Irr2DLib.SetDriver(this->driver); + //IrrEvent.SetDevice(this->device); + //Irr2DObj.SetDriver(this->device); + GUI.SetEnv(this->env); + //IrrEvent.SetDevice(this->device); + this->timer = this->device->getTimer(); + tick = this->timer->getRealTime(); +} + +void IrrLib::ReadArchive(stringc file){ + this->device->getFileSystem()->addZipFileArchive(file.c_str()); +} + +void IrrLib::LoadQ3Level(stringc q3level){ + this->mesh = this->smgr->getMesh(q3level.c_str()); + this->node = 0; + if (this->mesh) + this->node = this->smgr->addOctTreeSceneNode(this->mesh->getMesh(0), 0, -1, 128); +} + +void IrrLib::MapPos(int x, int y, int z){ + if (this->node) + this->node->setPosition(core::vector3df(x, y, z)); +} + +void IrrLib::MapPos(){ + if (this->node) + this->node->setPosition(core::vector3df(0, 0, 0)); +} + +void IrrLib::AddFPSCam(){ + this->cam = this->smgr->addCameraSceneNodeFPS(); +} + +void IrrLib::AddFPSCam(f32 x, f32 y, f32 z) +{ + this->cam = this->smgr->addCameraSceneNodeFPS(); + this->cam->setPosition(irr::core::vector3df(x, y, z)); +} + +void IrrLib::VisibleCursor(bool tf){ + if (tf == false) + this->device->getCursorControl()->setVisible(false); + else + this->device->getCursorControl()->setVisible(true); +} + +int IrrLib::GetFPSCount(){ + return this->driver->getFPS(); +} + +bool IrrLib::DeviceIsRunning(){ + return this->device->run(); +} + +bool IrrLib::IsActiveWindow(){ + return this->device->isWindowActive(); +} + +void IrrLib::BeginScene(){ + this->driver->beginScene(true, true, video::SColor(0,200,200,200)); + //smgr->addCameraSceneNode(0, vector3df(0,1,-7), vector3df(0,0,0)); +} + +void IrrLib::BeginScene(irr::video::SColor color){ + this->driver->beginScene(true, true, color); +} + +void IrrLib::BeginScene(bool usebackBuffer, bool usezBuffer, irr::video::SColor color){ + this->driver->beginScene(usebackBuffer, usezBuffer, color); +} + +void IrrLib::DrawAll(){ + //position2d start(50, 50); + //position2d end(100,100); + // SColor whitecolor(255,255,255,255); +//driver->draw2DLine(start, end, whitecolor); + this->smgr->drawAll(); + //this->env->drawAll(); + //this->device->getGUIEnvironment()->drawAll(); + } + +void IrrLib::EndScene(){ + this->driver->endScene(); +} + +void IrrLib::SetWindowCaption(stringw str){ + this->device->setWindowCaption(str.c_str()); +} + +irr::core::stringw IrrLib::GetDriverName(){ + return this->driver->getName(); +} + +void IrrLib::EndIrrlicht(){ + if(this->device != NULL){ + this->device->drop(); + this->device = NULL; + } +} + +void IrrLib::KeyPress(char key){ + this->key = key; +} + +char IrrLib::KeyPressed(){ + return key; +} + +irr::f32 IrrLib::getX(){ + return this->smgr->getActiveCamera()->getPosition().X; +} + +irr::f32 IrrLib::getY(){ + return this->smgr->getActiveCamera()->getPosition().Y; +} + +irr::f32 IrrLib::getZ(){ + return this->smgr->getActiveCamera()->getPosition().Z; +} + +bool IrrLib::CheckGameLoop(){ + u32 now; + now = this->timer->getRealTime(); + if ((now - this->tick) >= 30){ + //this->tick == time (NULL); + return true; + } else { + return false; + } +} + +bool IrrLib::CheckGameLoop(u32 ms){ + u32 now; + now = this->timer->getRealTime(); + if ((now - this->tick) >= ms){ + this->tick = now; + return true; + } else { + return false; + } +} + +void IrrLib::Exit() +{ + this->device->closeDevice(); +} + +PixelSize IrrLib::GetScreenSize() +{ + return this->driver->getScreenSize(); + /*pixels returnres; + returnres.width = screenres.Width; + returnres.height = screenres.Height; + return returnres;*/ + +} + +void IrrLib::AddCamera(core::vector3df pos, core::vector3df lookat) +{ + this->smgr->addCameraSceneNode(0, pos, lookat); +} + +//template std::string IrrLib::to_string (T t) +/*std::string IrrLib::int_to_string (int t) +{ + std::stringstream ss; + ss << t; + return ss.str(); +}*/ +// This is in the base class now, every class that decends from that class has this ability. diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Stable Version/1.3.3/IrrLib.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Stable Version/1.3.3/IrrLib.h Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,152 @@ +/* + Irrlicht Library Wrapper + Created by: + Nathan Adams + Copyright (C) 2008 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ + +#ifndef IRRLIB_H +#define IRRLIB_H + +#ifndef IRRVER +#define IRRVER 14 +//2 Versions +// 14 or 131 +//Different version due to different implmenation of eventreciever +#endif + +/* We should include some basic functions */ +#include +/* include strings */ +#include +#include +#include + +/* We have to include Irrlichts libs */ +/*class Irr3D; +class IrrColor; +class IrrLibGUI; +class IrrEventReciever; +class Irr2D; +//class IrrLibBase; +class IrrPhysics; +class Irr3DObj;*/ +#include "Irr3D.h" +#include "IrrColor.h" +#include "IrrLibGUI.h" +#include "IrrEventReciever.h" +#include "Irr2D.h" +//#include "Irr2DObj.h" +#include "IrrLibBase.h" +//#include "IrrData.h" +//class IrrPhysics; +#include "IrrPhysics.h" +#include "IrrFunctions.h" +#include "Irr3DLibObj.h" +#include "IrrDefines.h" +//#include "Irr3DObj.h" + +/*struct IrrObj { + int eventid; + int objectid; +};*/ + +//class IrrPhysics; +//Start class +class IrrLib: public IrrLibBase { + + private: + /* Create an Irrlicht device as private because the class should handle + All irrlicht interaction */ + //irr::IrrlichtDevice *device; + //In IrrLibBase + // Tells Irrlicht what driver to use + //video::E_DRIVER_TYPE driverType; + + /* + Get a pointer to the video driver and the SceneManager so that + we do not always have to write device->getVideoDriver() and + device->getSceneManager(). + */ + /*irr::video::IVideoDriver* driver; + irr::scene::ISceneManager* smgr;*/ + //In IrrLibBase + irr::gui::IGUIEnvironment* env; + + /* + Get a pointer to the 'mesh' aka the level. + Note: This is for Quake3 levels, ie bsp maps. + */ + irr::scene::IAnimatedMesh* mesh; + irr::scene::ISceneNode* node; + irr::scene::ISceneNode * tempNode; //use this to store nodeNew's data so we can resize it + irr::scene::ICameraSceneNode * cam; + char key; + + + void Init(); + /*friend class IrrColor; + friend class Irr2DLib; + friend class Sphere;*/ + //friend class IrrEventReciever; + irr::u32 tick; + irr::ITimer* timer; + //std::vector gc_vector; + + public: + //IrrSphere Sphere; //This has to be public to be able to access the Sphere class + /* IrrSphere is now in Irr3D class */ + //Prehaps put this into a IrrLib3D class? + Irr3D Irr3DLib; + IrrColor Color; //Color class...not much of a class but lets keep it OO + Irr2D Irr2DLib; //1/2 variable to be labeled like this due to variables not able to begin with a number + IrrLibGUI GUI; + IrrPhysics IrrPhy; + IrrEventReciever IrrEvent; + IrrLib(); + static irr::IrrlichtDevice *device; + //IrrLib(MastEventReceiver & receiver); + IrrLib(irr::video::E_DRIVER_TYPE drivertype, irr::core::dimension2d & res, irr::u32 bits, bool fullscreen, bool stencilbuffer, bool vsync); + IrrLib(int drivertype, int width, int height, int bits, bool fullscreen, bool stencilbuffer, bool vsync); + ~IrrLib(); //Our moms wont clean up after us! + void ReadArchive(irr::core::stringc file); + void LoadQ3Level(irr::core::stringc q3level); + void MapPos(int x, int y, int z); //I think this moves the actual camera? + void MapPos(); + void AddFPSCam(); + void AddFPSCam(irr::f32 x, irr::f32 y, irr::f32 z); + void VisibleCursor(bool tf); + int GetFPSCount(); + bool DeviceIsRunning(); + bool IsActiveWindow(); + void BeginScene(); + void AddCamera(irr::core::vector3df pos, irr::core::vector3df lookat); + void BeginScene(irr::video::SColor color); + //void BeginScene(irr::video::SColor * color); + void BeginScene(bool usebackBuffer, bool usezBuffer, irr::video::SColor color); + //TODO: Add one more for human readable colors and hex colors! + void DrawAll(); + void EndScene(); + void SetWindowCaption(irr::core::stringw str); + irr::core::stringw GetDriverName(); + //TODO: Make function to turn stringw to string and visa versa + void EndIrrlicht(); //Renamed from KillIrrlicht to EndIrrlicht + //TODO: Add logging + void KeyPress(char key); + char KeyPressed(); + irr::f32 getX(); + irr::f32 getY(); + irr::f32 getZ(); + bool CheckGameLoop(); + bool CheckGameLoop(irr::u32 ms); + void Exit(); + PixelSize GetScreenSize(); + //void EndGameLoop(); + //template std::string to_string (T t); + +}; + +#endif diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Stable Version/1.3.3/IrrLibBase.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Stable Version/1.3.3/IrrLibBase.cpp Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,125 @@ +/* + Irrlicht Library Wrapper + Created by: + Nathan Adams + Copyright (C) 2008 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ + +#include +#include +#include "IrrLibBase.h" +#include +#include + +using namespace irr; +using namespace core; +using namespace scene; +using namespace video; +using namespace io; +using namespace gui; + +using namespace std; + +/* +* Code from http://articles.techrepublic.com.com/5100-22-5079969.html# +* + +struct str_stream +{ + std::stringstream & underlying_stream() const + { return m_streamOut; } + + operator std::string() const + { + return m_streamOut.str(); + } +private: + mutable std::stringstream m_streamOut; +}; + +template< class type> +inline const str_stream & operator<< ( const str_stream & out, const type & value) +{ + out.underlying_stream() << value; + return out; + +} + +template std::string to_string( const type & value) +{ + std::ostringstream streamOut; + + streamOut << value; + + return streamOut.str(); +} + +* End code copy +*/ + +void IrrLibBase::SetDriver(IVideoDriver* driver) //can be overloaded +{ + this->driver = driver; +} + +void IrrLibBase::SetSmgr(ISceneManager* smgr) +{ + this->smgr = smgr; +} + +std::string IrrLibBase::wchar_to_stdstring (const wchar_t* wc) +{ + //cout << "Starting conversion"; + //wcstombs(tmp, in, 255); + char c[255]; + for(int t = 0; wc[t] != '\0'; t++) + c[t] = (char)wc[t]; + + /*for(int t = 0; c[t] != '\0'; t++) + wc[t] = c[t];*/ + + std::stringstream ss; + ss << c; + //cout << "Conversion OK"; + return ss.str(); +} + +std::string IrrLibBase::int_to_string (int t) +{ + std::stringstream ss; + ss << t; + return ss.str(); +} + +std::string IrrLibBase::stringw_to_stdstring(irr::core::stringw sw) +{ + std::stringstream ss; + ss << sw.c_str(); + return ss.str(); +} +irr::core::stringw IrrLibBase::stdstring_to_stringw(std::string ss) +{ + stringw tmpw(ss.c_str()); + return tmpw; +} + +/*void IrrLibBase::SetDevice(irr::IrrlichtDevice *device) +{ + this->device = device; +}*/ + +void IrrLibBase::init() +{ + +} + +/*irr::core::stringw int_to_stringw(int t) +{ + std::stringstream ss; + ss << t; + //stringw ret(ss.str()); + return ret; +}*/ diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Stable Version/1.3.3/IrrLibBase.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Stable Version/1.3.3/IrrLibBase.h Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,44 @@ +/* + Irrlicht Library Wrapper + Created by: + Nathan Adams + Copyright (C) 2008 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ + +#ifndef IRRLIBBASE_H +#define IRRLIBBASE_H + +/* We should include some basic functions */ +#include +/* include strings */ +#include + +/* We have to include Irrlichts libs */ +#include + + +class IrrLibBase { + + protected: + irr::video::IVideoDriver* driver; + irr::scene::ISceneManager* smgr; + irr::IrrlichtDevice *device; + public: + //template std::string to_string( const type & value); + irr::core::dimension2d irrpixels; + void SetDriver(irr::video::IVideoDriver* driver); + void SetSmgr(irr::scene::ISceneManager* smgr); + void SetDevice(irr::IrrlichtDevice *device); + std::string int_to_string (int t); + std::string stringw_to_stdstring(irr::core::stringw sw); + irr::core::stringw stdstring_to_stringw(std::string ss); + std::string wchar_to_stdstring (const wchar_t* wc); + //irr::core::stringw int_to_stringw(int t); + void init(); + +}; + +#endif diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Stable Version/1.3.3/IrrLibGUI.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Stable Version/1.3.3/IrrLibGUI.cpp Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,220 @@ +/* + Irrlicht Library Wrapper + Created by: + Nathan Adams + Copyright (C) 2008 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ + +#include +#include +#include +#include +#include + +#include "IrrLib.h" +#include "IrrLibGUI.h" +#include "IrrLibBase.h" +#include + +using namespace irr; +using namespace core; +using namespace scene; +using namespace video; +using namespace io; +using namespace gui; + +using namespace std; + +template std::string to_string( const type & value) +{ + std::ostringstream streamOut; + + streamOut << value; + + return streamOut.str(); +} + +IrrLibGUI::IrrLibGUI() +{ + //NA does it need to do anything at init? + this->nStaticText = 0; + this->nButton = 0; + this->nButtonid = 100; + this->nListBoxid = 200; + this->nListBox = 0; + //this->nListBoxid = 300; + //this->arrStaticText = new IGUIStaticText[10]; + //this->env = this->device->getGUIEnvironment(); //NA yes we do! +} + +IrrLibGUI::~IrrLibGUI() +{ + //NA Do we have to delete anything? +} + +void IrrLibGUI::SetEnv(IGUIEnvironment* env) +{ + this->env = env; + //env->addButton(rect(10,210,110,210 + 32), 0, 109, L"Quit", L"Exits Program"); +} + +IrrGUIObj IrrLibGUI::addButton(const core::rect< s32 > & rectangle, IGUIElement *parent, s32 id, const wchar_t * text, const wchar_t * tooltiptext) +{ + arrButton.push_back(this->env->addButton(rectangle, parent, id, text, tooltiptext)); + ++nButton; + ++nButtonid; + IrrGUIObj ret; + ret->objectid = --nButtonid; + return ret; +} + +IrrGUIObj IrrLibGUI::addListBox(const irr::core::rect< irr::s32 > &rectangle, IGUIElement * parent) +{ + irr::gui::IGUIListBox* tmp = this->env->addListBox(rectangle, parent, nListBoxid); + arrListBox.push_back(tmp); + //we introduce a new datatype; IrroObj + IrrGUIObj ret; + ret->eventid = nListBoxid; + ret->objectid = nListBox; + ++nListBox; + ++nListBoxid; + return ret; +} + +IrrGUIObj IrrLibGUI::AddListBox(int x1, int y1, int x2, int y2, IGUIElement * parent) +{ + return addListBox(rect(x1, y1, x2, y2), parent); +} + +IrrGUIObj IrrLibGUI::AddListBox(const irr::core::rect< irr::s32 > &rectangle, IGUIElement * parent) +{ + return addListBox(rectangle, parent); +} + +void IrrLibGUI::AddStringToListBox(IrrGUIObj nLbox, stringw text) +{ + this->arrListBox[nLbox->objectid]->addItem(text.c_str()); + //this->arrListBox[0]->addItem(L"TEST"); +} + +std::string IrrLibGUI::getSelectListString(IrrGUIObj lstbox) +{ + //stringc tmp = this->arrListBox[lstbox]->getListItem(this->arrListBox[lstbox]->getSelected()); + //s32 selected = this->arrListBox[lstbox.objectid]->getSelected(); + //const wchar_t* tmp = this->arrListBox[lstbox]->getListItem(selected); + //irr::core::stringw tmp; + //char out[255]; + //tmp = this->arrListBox[lstbox]->getText(); + irr::core::stringc tmp(arrListBox[lstbox->objectid]->getListItem(arrListBox[lstbox->objectid]->getSelected())); + //cout << tmp.c_str() << endl; + //wcstombs(out, tmp, tmp.length()); + //cout << tmp[0] << endl; + // std::stringstream ss; + //for (int i = 0; i < tmp.size(); ++i) + //ss << tmp.c_str(); + std::string ret = tmp.c_str(); + return ret; +} + +void IrrLibGUI::Clear() +{ + this->env->clear(); +} + +void IrrLibGUI::DrawAll() +{ + this->env->drawAll(); +} + +IrrGUIObj IrrLibGUI::AddToStaticArray(irr::gui::IGUIStaticText * addme) +{ + //arrStaticText[nStaticText] = addme; + arrStaticText.push_back(addme); + this->nStaticText++; + this->nButtonid++; + IrrGUIObj ret; + ret->objectid = this->nStaticText; + return ret; +} + +void IrrLibGUI::AddStaticText() +{ + //rect(20,30,300,80), + this->env->addStaticText(L"Powered by IrrLib.", rect(20,30,300,80), true); +} + +IrrGUIObj IrrLibGUI::AddStaticText(stringw message) +{ + irr::gui::IGUIStaticText * addthis; + addthis = this->env->addStaticText(message.c_str(), rect(20,30,300,80), true); + return AddToStaticArray(addthis); +} + +IrrGUIObj IrrLibGUI::AddStaticText(stringw message, int x1, int y1, int x2, int y2) +{ + irr::gui::IGUIStaticText * addthis; + addthis = this->env->addStaticText(message.c_str(), rect(x1,y1,x2,y2), true); + return AddToStaticArray(addthis); +} + +IrrGUIObj IrrLibGUI::AddStaticText(stringw message, int x1, int y1, int x2, int y2, bool border, bool wordwrap) +{ + irr::gui::IGUIStaticText * addthis; + addthis = this->env->addStaticText(message.c_str(), rect(x1,y1,x2,y2), border, wordwrap); + return AddToStaticArray(addthis); +} + +IrrGUIObj IrrLibGUI::AddStaticText(stringw message, int x1, int y1, int x2, int y2, bool border, bool wordwrap, int id, bool fillbackground) +{ + irr::gui::IGUIStaticText * addthis; + addthis = this->env->addStaticText(message.c_str(), rect(x1,y1,x2,y2), border, wordwrap, 0, id, fillbackground); + return AddToStaticArray(addthis); +} + +IrrGUIObj IrrLibGUI::AddStaticText(stringw message, const core::rect< s32 > &rectangle) +{ + irr::gui::IGUIStaticText * addthis; + addthis = this->env->addStaticText(message.c_str(), rectangle); + return AddToStaticArray(addthis); +} + +IrrGUIObj IrrLibGUI::AddStaticText(stringw message, const core::rect< s32 > &rectangle, bool border, bool wordwrap) +{ + irr::gui::IGUIStaticText * addthis; + addthis = this->env->addStaticText(message.c_str(), rectangle, border, wordwrap); + return AddToStaticArray(addthis); +} + +IrrGUIObj IrrLibGUI::AddStaticText(stringw message, const core::rect< s32 > &rectangle, bool border, bool wordwrap, int id, bool fillbackground) +{ + irr::gui::IGUIStaticText * addthis; + addthis = this->env->addStaticText(message.c_str(), rectangle, border, wordwrap, 0, id, fillbackground); + return AddToStaticArray(addthis); +} + +void IrrLibGUI::ChangeStaticText(IrrGUIObj nstatictext, stringw message) +{ + //this->arrStaticText[this->nStaticText.objectid-1]->setText(message.c_str()); + this->arrStaticText[nstatictext->objectid]->setText(message.c_str()); +} + +void IrrLibGUI::ChangeFont(stringc fontfile) +{ + IGUISkin* skin = this->env->getSkin(); + IGUIFont* font = this->env->getFont(fontfile.c_str()); + if (font) + skin->setFont(font); +} + +IrrGUIObj IrrLibGUI::AddButton(stringw text, int x1, int y1, int x2, int y2, stringw tooltiptext = "") +{ + return addButton(rect(x1, y1, x2, y2), 0, nButtonid, text.c_str(), tooltiptext.c_str()); +} + +IrrGUIObj IrrLibGUI::AddButton(stringw text, core::rect & rect, stringw tooltiptext = "") +{ + return addButton(rect, 0, nButtonid, text.c_str(), tooltiptext.c_str()); +} diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Stable Version/1.3.3/IrrLibGUI.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Stable Version/1.3.3/IrrLibGUI.h Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,67 @@ +/* + Irrlicht Library Wrapper + Created by: + Nathan Adams + Copyright (C) 2008 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ + +#ifndef IRRLIBGUI_H +#define IRRLIBGUI_H + +#include +#include +#include +#include "IrrLib.h" +#include "IrrLibBase.h" + +class IrrLibGUI: public IrrLibBase { + private: + irr::gui::IGUISkin* skin; + irr::gui::IGUIFont* font; + irr::gui::IGUIEnvironment* env; + //TODO: Create an array storing all messages + int nStaticText; + //irr::gui::IGUIStaticText* arrStaticText[10]; + int nButton; + int nButtonid; + int nListBox; + int nListBoxid; + std::vector arrStaticText; + std::vector arrButton; + std::vector arrListBox; + IrrGUIObj AddToStaticArray(irr::gui::IGUIStaticText * addme); + IrrGUIObj addButton(const irr::core::rect< irr::s32 > & rectangle, irr::gui::IGUIElement *parent = 0, irr::s32 id = 0, const wchar_t * text = 0, const wchar_t * tooltiptext = 0); //TODO: Clean this up! + IrrGUIObj addListBox(const irr::core::rect< irr::s32 > &rectangle, irr::gui::IGUIElement * parent); + public: + IrrLibGUI(); + ~IrrLibGUI(); + void SetEnv(irr::gui::IGUIEnvironment* env); + void Clear(); + void DrawAll(); + //irr::gui::IGUIStaticText* IrrLibGUI::AddStaticText(); //NA eh a default text adder why not? + /* This is bad coding, we do not want to return an irrlicht object, we want to return a standard datatype because this class handles the GUI elements, not the user. */ + void AddStaticText(); //NA eh a default text adder why not? + IrrGUIObj AddStaticText(irr::core::stringw message); + IrrGUIObj AddStaticText(irr::core::stringw message, int x1, int y1, int x2, int y2); + IrrGUIObj AddStaticText(irr::core::stringw message, int x1, int y1, int x2, int y2, bool border, bool wordwrap); + IrrGUIObj AddStaticText(irr::core::stringw message, int x1, int y1, int x2, int y2, bool border, bool wordwrap, int id, bool fillbackground); + IrrGUIObj AddStaticText(irr::core::stringw message, const irr::core::rect< irr::s32 > &rectangle); + IrrGUIObj AddStaticText(irr::core::stringw message, const irr::core::rect< irr::s32 > &rectangle, bool border, bool wordwrap); + IrrGUIObj AddStaticText(irr::core::stringw message, const irr::core::rect< irr::s32 > &rectangle, bool border, bool wordwrap, int id, bool fillbackground); + IrrGUIObj AddButton(irr::core::stringw text, int x1, int y1, int x2, int y2, irr::core::stringw tooltiptext); + IrrGUIObj AddButton(irr::core::stringw text, irr::core::rect & rect, irr::core::stringw tooltiptext); //TODO: Add move functions + IrrGUIObj AddListBox(int x1, int y1, int x2, int y2, irr::gui::IGUIElement * parent = 0); + IrrGUIObj AddListBox(const irr::core::rect< irr::s32 > &rectangle, irr::gui::IGUIElement * parent = 0); + void AddStringToListBox(IrrGUIObj nLbox, irr::core::stringw text); + void ChangeStaticText(IrrGUIObj nstatictext, irr::core::stringw message); + void ChangeFont(irr::core::stringc fontfile); + std::string getSelectListString(IrrGUIObj lstbox); + //irr::core::stringw getSelectListString(int lstbox); + +}; + + +#endif diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Stable Version/1.3.3/IrrLibObj.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Stable Version/1.3.3/IrrLibObj.h Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,11 @@ +#ifndef IRRLIBOBJ_H +#define IRRLIBOBJ_H + +struct IrrLibObj { + int eventid; + int objectid; + int x; + int y; +}; + +#endif diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Stable Version/1.3.3/IrrObj.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Stable Version/1.3.3/IrrObj.h Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,19 @@ +#ifndef IRROBJ_H +#define IRROBJ_H +#include +//template const char* typeof(T&) { return "unknown"; } // default +//template<> const char* typeof(Irr3DLibObj&) { return "Irr3DLibObj"; } +//template<> const char* typeof(float&) { return "float"; } +template class IrrObj { + T* ptr; + public: + explicit IrrObj(T* p = 0) : ptr(p) {std::cout << "Constructing an IrrObj" << std::endl; if (p == NULL) ptr = new T;} + ~IrrObj() {std::cout << "Destructing an IrrObj" << std::endl; delete ptr;} + T& operator*() {return *ptr;} + T* operator->() {return ptr;} + void remove() {delete ptr;} +}; + + + +#endif diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Stable Version/1.3.3/IrrOpt.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Stable Version/1.3.3/IrrOpt.h Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,9 @@ +#ifndef IRROPT.H +#define IRROPT.H + +struct IrrOpt { + bool lighting; + irr::core::stringc t; +}; + +#endif diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Stable Version/1.3.3/IrrPhysics.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Stable Version/1.3.3/IrrPhysics.cpp Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,47 @@ +/* + Irrlicht Library Wrapper + Created by: + Nathan Adams + Copyright (C) 2008 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ + +/* We should include some basic functions */ +#include +/* include strings */ +#include +#include + +/* We have to include Irrlichts libs */ +#include + +//#include "IrrLib.h" +#include +#include "IrrPhysics.h" + +using namespace irr; +using namespace core; +using namespace scene; +using namespace video; +using namespace io; +using namespace gui; + +using namespace std; + +NewtonWorld * IrrPhysics::nworld; + +IrrPhysics::IrrPhysics() +{ + this->nworld = NewtonCreate(NULL,NULL); + NewtonSetSolverModel(this->nworld, 1); +} + +IrrPhysics::~IrrPhysics() +{ + NewtonDestroy(this->nworld); +} + + + diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Stable Version/1.3.3/IrrPhysics.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Stable Version/1.3.3/IrrPhysics.h Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,42 @@ +/* + Irrlicht Library Wrapper + Created by: + Nathan Adams + Copyright (C) 2008 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ +#ifndef IRRPHYSICS_H +#define IRRPHYSICS_H + +/* We should include some basic functions */ +#include +/* include strings */ +#include +#include + +/* We have to include Irrlichts libs */ +#include +#include + +//#include "IrrLib.h" + +#include "IrrLibBase.h" + + + + + +class IrrPhysics: public IrrLibBase { + //private: + public: + static NewtonWorld *nworld; + IrrPhysics(); + ~IrrPhysics(); + +}; + + + +#endif diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Stable Version/1.3.3/IrrSphere.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Stable Version/1.3.3/IrrSphere.cpp Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,72 @@ +/* + Irrlicht Library Wrapper + Created by Nathan Adams + Copyright (C) 2008 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ +#include +#include "IrrLib.h" +#include "IrrSphere.h" +#include +#include + +using namespace irr; +using namespace core; +using namespace scene; +using namespace video; +using namespace io; +using namespace gui; + +using namespace std; + +/*void IrrSphere::SetSmgr(irr::scene::ISceneManager* smgr){ + this->smgr = smgr; +} + +void IrrSphere::SetDriver(irr::video::IVideoDriver* driver){ + this->driver = driver; +}*/ + +Irr3DSphere IrrSphere::CreateNewSphereNode(int x, int y, int z, stringc texture, bool light){ + //this->nodeNew[this->numNodes] = this->smgr->addSphereSceneNode(); + //this->sphereNodes[this->numNodes]->setPosition(core::vector3df(x,y,z)); + //this->sphereNodes[this->numNodes]->setMaterialTexture(0, this->driver->getTexture(texture.c_str())); + //this->sphereNodes[this->numNodes]->setMaterialFlag(video::EMF_LIGHTING, light); + Irr3DSphere ret; + nodeNew = this->smgr->addSphereSceneNode(); + nodeNew->setPosition(core::vector3df(x,y,z)); + nodeNew->setMaterialTexture(0, this->driver->getTexture(texture.c_str())); + nodeNew->setMaterialFlag(video::EMF_LIGHTING, light); + sphereNodes.push_back(nodeNew); + this->numNodes++; + ret->objectid = this->numNodes--; + return ret; + /*this->node = this->smgr->addSphereSceneNode(); + this->node->setPosition(core::vector3df(x,y,z)); + this->node->setMaterialTexture(0, this->driver->getTexture(texture.c_str())); + this->node->setMaterialFlag(video::EMF_LIGHTING, light);*/ +} + +irr::core::vector3df IrrSphere::GetSphereVector(int sphere){ + //We are converting to vectors, under construction NA + //return this->nodeNew[sphere]->getPosition(); + return this->sphereNodes[sphere]->getPosition(); +} + +void IrrSphere::SetSphereVector(int sphere, irr::core::vector3df v){ + this->sphereNodes[sphere]->setPosition(v); +} + +IrrSphere::IrrSphere(){ + this->numNodes = 0; +} + +IrrSphere::~IrrSphere(){ + /*for(int i = 0; i < numNodes; ++i) + delete this->nodeNew[i]; + + delete this->nodeNew;*/ + //We are using vectors now, no more memory clowing business NA +} diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Stable Version/1.3.3/IrrSphere.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Stable Version/1.3.3/IrrSphere.h Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,48 @@ +/* + Irrlicht Library Wrapper + Created by: + Nathan Adams + Copyright (C) 2008 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ + +#ifndef IRRSPHERE_H +#define IRRSPHERE_H +/* We should include some basic functions */ +#include +/* include strings */ +#include +#include +#include +/* We have to include Irrlichts libs */ +#include "IrrLibBase.h" +//#include "IrrData.h" +#include "IrrDefines.h" + + +//#include "IrrLib.h" + + +class IrrSphere: public IrrLibBase +{ + private: + //irr::scene::ISceneNode* nodeNew[10]; + irr::scene::ISceneNode* nodeNew; + std::vector sphereNodes; + int numNodes; + //irr::scene::ISceneManager* smgr; + //irr::video::IVideoDriver* driver; + public: + //void IrrSphere::SetDriver(irr::video::IVideoDriver* driver); + //void IrrSphere::SetSmgr(irr::scene::ISceneManager* smgr); + Irr3DSphere CreateNewSphereNode(int x, int y, int z, irr::core::stringc texture, bool light); //this is going to take my advanced C++ skillz! + irr::core::vector3df GetSphereVector(int sphere); + void SetSphereVector(int sphere, irr::core::vector3df v); + IrrSphere(); + //IrrSphere::IrrSphere(IrrLib*); + ~IrrSphere(); +}; + +#endif diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Stable Version/1.3.3/IrrSprite.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Stable Version/1.3.3/IrrSprite.cpp Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,48 @@ +/* + Irrlicht Library Wrapper + Created by: + Nathan Adams + Copyright (C) 2008 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ + +#include +#include +#include + +#include "IrrLib.h" +//Libraries we create go here +//#include "IrrSphere.h" +#include "IrrColor.h" +#include "IrrSprite.h" +//#include "Irr2D.h" + +using namespace irr; +using namespace core; +using namespace scene; +using namespace video; +using namespace io; +using namespace gui; + +using namespace std; + +IrrSprite::IrrSprite() +{ + //do stuff +} + +IrrSprite::~IrrSprite() +{ + //delete stuff +} + +/*void IrrSprite::SetDriver(irr::video::IVideoDriver* driver) +{ + this->driver = driver; +} +void IrrSprite::SetSmgr(irr::scene::ISceneManager* smgr) +{ + this->smgr = smgr; +}*/ diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Stable Version/1.3.3/IrrSprite.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Stable Version/1.3.3/IrrSprite.h Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,45 @@ +/* + Irrlicht Library Wrapper + Created by: + Nathan Adams + Copyright (C) 2008 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ + +#ifndef IRRSPRITE_H +#define IRRSPRITE_H + +/* We should include some basic functions */ +#include +/* include strings */ +#include + +/* We have to include Irrlichts libs */ +#include + +//#include "IrrSphere.h" +#include "IrrLibBase.h" +#include "IrrColor.h" +//#include "Irr2D.h" +//#include "IrrSprite.h" + +//Start class +class IrrSprite: public IrrLibBase { + + private: + + //irr::video::IVideoDriver* driver; + //irr::scene::ISceneManager* smgr; + public: + IrrSprite(); + ~IrrSprite(); + /*void IrrSprite::SetDriver(irr::video::IVideoDriver* driver); + void IrrSprite::SetSmgr(irr::scene::ISceneManager* smgr);*/ + +// I forgot a semicolon here....and it wasn't compling +//Thats 1 bad thing about OOP if there is an error you don't know where the @#$@# the problem is! +}; + +#endif diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Stable Version/1.3.3/Newton.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Stable Version/1.3.3/Newton.h Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,602 @@ +//******************************************************************** +// Newton Game dynamics +// copyright 2000-2004 +// By Julio Jerez +// VC: 6.0 +// One and only header file. +//******************************************************************** + +#ifndef NEWTON_H__736495_6495_076__INCLUDED_ +#define NEWTON_H__736495_6495_076__INCLUDED_ + +// force all not visual studio platform to be in library form +#ifndef _MSC_VER + #ifndef _NEWTON_USE_LIB + #define _NEWTON_USE_LIB + #endif +#endif + +#ifdef _NEWTON_USE_LIB + #define NEWTON_API +#else + #ifdef _NEWTON_BUILD_DLL + #define NEWTON_API __declspec(dllexport) + #else + #define NEWTON_API __declspec(dllimport) + #endif +#endif + +//#define __USE_DOUBLE_PRECISION__ +#ifdef __USE_DOUBLE_PRECISION__ + typedef double dFloat; +#else + typedef float dFloat; +#endif + + + +#ifdef __cplusplus +extern "C" { +#endif + + typedef struct NewtonBody{} NewtonBody; + typedef struct NewtonWorld{} NewtonWorld; + typedef struct NewtonJoint{} NewtonJoint; + typedef struct NewtonContact{} NewtonContact; + typedef struct NewtonMaterial{} NewtonMaterial; + typedef struct NewtonCollision{} NewtonCollision; + + typedef struct NewtonRagDoll{} NewtonRagDoll; + typedef struct NewtonRagDollBone{} NewtonRagDollBone; + + typedef struct NewtonUserMeshCollisionCollideDescTag + { + dFloat m_boxP0[4]; // lower bounding box of intersection query in local space + dFloat m_boxP1[4]; // upper bounding box of intersection query in local space + void* m_userData; // user data passed to the collision geometry at creation time + int m_faceCount; // the application should set here how many polygons intersect the query box + dFloat* m_vertex; // the application should the pointer to the vertex array. + int m_vertexStrideInBytes; // the application should set here the size of each vertex + int* m_userAttribute; // the application should set here the pointer to the user data, one for each face + int* m_faceIndexCount; // the application should set here the pointer to the vertex count of each face. + int* m_faceVertexIndex; // the application should set here the pointer index array for each vertex on a face. + NewtonBody* m_objBody; // pointer to the colliding body + NewtonBody* m_polySoupBody; // pointer to the rigid body owner of this collision tree + } NewtonUserMeshCollisionCollideDesc; + + typedef struct NewtonUserMeshCollisionRayHitDescTag + { + dFloat m_p0[4]; // ray origin in collision local space + dFloat m_p1[4]; // ray destination in collision local space + dFloat m_normalOut[4]; // copy here the normal at the rat intersection + int m_userIdOut; // copy here a user defined id for further feedback + void* m_userData; // user data passed to the collision geometry at creation time + } NewtonUserMeshCollisionRayHitDesc; + + typedef struct NewtonHingeSliderUpdateDescTag + { + dFloat m_accel; + dFloat m_minFriction; + dFloat m_maxFriction; + dFloat m_timestep; + } NewtonHingeSliderUpdateDesc; + + + // Newton callback functions + typedef void* (*NewtonAllocMemory) (int sizeInBytes); + typedef void (*NewtonFreeMemory) (void *ptr, int sizeInBytes); + + typedef void (*NewtonSerialize) (void* serializeHandle, const void* buffer, size_t size); + typedef void (*NewtonDeserialize) (void* serializeHandle, void* buffer, size_t size); + + + typedef void (*NewtonUserMeshCollisionCollideCallback) (NewtonUserMeshCollisionCollideDesc* collideDescData); + typedef dFloat (*NewtonUserMeshCollisionRayHitCallback) (NewtonUserMeshCollisionRayHitDesc* lineDescData); + typedef void (*NewtonUserMeshCollisionDestroyCallback) (void* descData); + typedef void (*NewtonTreeCollisionCallback) (const NewtonBody* bodyWithTreeCollision, const NewtonBody* body, + const dFloat* vertex, int vertexstrideInBytes, + int indexCount, const int* indexArray); + + typedef void (*NewtonBodyDestructor) (const NewtonBody* body); + typedef void (*NewtonApplyForceAndTorque) (const NewtonBody* body); + typedef void (*NewtonBodyActivationState) (const NewtonBody* body, unsigned state); + typedef void (*NewtonSetTransform) (const NewtonBody* body, const dFloat* matrix); + typedef void (*NewtonSetRagDollTransform) (const NewtonRagDollBone* bone); + typedef int (*NewtonGetBuoyancyPlane) (const int collisionID, void *context, const dFloat* globalSpaceMatrix, dFloat* globalSpacePlane); + + typedef void (*NewtonVehicleTireUpdate) (const NewtonJoint* vehicle); + + typedef unsigned (*NewtonWorldRayPrefilterCallback)(const NewtonBody* body, const NewtonCollision* collision, void* userData); + typedef dFloat (*NewtonWorldRayFilterCallback)(const NewtonBody* body, const dFloat* hitNormal, int collisionID, void* userData, dFloat intersetParam); + typedef void (*NewtonBodyLeaveWorld) (const NewtonBody* body); + + typedef int (*NewtonContactBegin) (const NewtonMaterial* material, const NewtonBody* body0, const NewtonBody* body1); + typedef int (*NewtonContactProcess) (const NewtonMaterial* material, const NewtonContact* contact); + typedef void (*NewtonContactEnd) (const NewtonMaterial* material); + + + typedef void (*NewtonBodyIterator) (const NewtonBody* body); + typedef void (*NewtonCollisionIterator) (const NewtonBody* body, int vertexCount, const dFloat* FaceArray, int faceId); + + + typedef void (*NewtonBallCallBack) (const NewtonJoint* ball); + typedef unsigned (*NewtonHingeCallBack) (const NewtonJoint* hinge, NewtonHingeSliderUpdateDesc* desc); + typedef unsigned (*NewtonSliderCallBack) (const NewtonJoint* slider, NewtonHingeSliderUpdateDesc* desc); + typedef unsigned (*NewtonUniversalCallBack) (const NewtonJoint* universal, NewtonHingeSliderUpdateDesc* desc); + typedef unsigned (*NewtonCorkscrewCallBack) (const NewtonJoint* corkscrew, NewtonHingeSliderUpdateDesc* desc); + typedef void (*NewtonUserBilateralCallBack) (const NewtonJoint* userJoint); + + typedef void (*NewtonConstraintDestructor) (const NewtonJoint* me); + + // ********************************************************************************************** + // + // world control functions + // + // ********************************************************************************************** + NEWTON_API NewtonWorld* NewtonCreate (NewtonAllocMemory malloc, NewtonFreeMemory mfree); + NEWTON_API void NewtonDestroy (const NewtonWorld* newtonWorld); + NEWTON_API void NewtonDestroyAllBodies (const NewtonWorld* newtonWorld); + + + NEWTON_API void NewtonUpdate (const NewtonWorld* newtonWorld, dFloat timestep); + NEWTON_API void NewtonSetPlatformArchitecture (const NewtonWorld* newtonWorld, int mode); + NEWTON_API void NewtonSetSolverModel (const NewtonWorld* newtonWorld, int model); + NEWTON_API void NewtonSetFrictionModel (const NewtonWorld* newtonWorld, int model); + NEWTON_API dFloat NewtonGetTimeStep (const NewtonWorld* newtonWorld); + NEWTON_API void NewtonSetMinimumFrameRate (const NewtonWorld* newtonWorld, dFloat frameRate); + NEWTON_API void NewtonSetBodyLeaveWorldEvent (const NewtonWorld* newtonWorld, NewtonBodyLeaveWorld callback); + NEWTON_API void NewtonSetWorldSize (const NewtonWorld* newtonWorld, const dFloat* minPoint, const dFloat* maxPoint); + + NEWTON_API void NewtonWorldFreezeBody (const NewtonWorld* newtonWorld, const NewtonBody* body); + NEWTON_API void NewtonWorldUnfreezeBody (const NewtonWorld* newtonWorld, const NewtonBody* body); + + NEWTON_API void NewtonWorldForEachBodyDo (const NewtonWorld* newtonWorld, NewtonBodyIterator callback); + NEWTON_API void NewtonWorldForEachBodyInAABBDo (const NewtonWorld* newtonWorld, const dFloat* p0, const dFloat* p1, NewtonBodyIterator callback); + + NEWTON_API void NewtonWorldSetUserData (const NewtonWorld* newtonWorld, void* userData); + NEWTON_API void* NewtonWorldGetUserData (const NewtonWorld* newtonWorld); + NEWTON_API int NewtonWorldGetVersion (const NewtonWorld* newtonWorld); + + NEWTON_API void NewtonWorldRayCast (const NewtonWorld* newtonWorld, const dFloat* p0, const dFloat* p1, NewtonWorldRayFilterCallback filter, void* userData, NewtonWorldRayPrefilterCallback prefilter); + + // world utility functions + // NEWTON_API int NewtonGetBodiesCount(); + // NEWTON_API int NewtonGetActiveBodiesCount(); + // NEWTON_API int NewtonGetActiveConstraintsCount(); + // NEWTON_API dFloat NewtonGetGlobalScale (const NewtonWorld* newtonWorld); + + // ********************************************************************************************** + // + // Physics Material Section + // + // ********************************************************************************************** + NEWTON_API int NewtonMaterialGetDefaultGroupID(const NewtonWorld* newtonWorld); + NEWTON_API int NewtonMaterialCreateGroupID(const NewtonWorld* newtonWorld); + NEWTON_API void NewtonMaterialDestroyAllGroupID(const NewtonWorld* newtonWorld); + + + + NEWTON_API void NewtonMaterialSetDefaultSoftness (const NewtonWorld* newtonWorld, int id0, int id1, dFloat value); + NEWTON_API void NewtonMaterialSetDefaultElasticity (const NewtonWorld* newtonWorld, int id0, int id1, dFloat elasticCoef); + NEWTON_API void NewtonMaterialSetDefaultCollidable (const NewtonWorld* newtonWorld, int id0, int id1, int state); + NEWTON_API void NewtonMaterialSetContinuousCollisionMode (const NewtonWorld* newtonWorld, int id0, int id1, int state); + NEWTON_API void NewtonMaterialSetDefaultFriction (const NewtonWorld* newtonWorld, int id0, int id1, + dFloat staticFriction, dFloat kineticFriction); + + NEWTON_API void NewtonMaterialSetCollisionCallback (const NewtonWorld* newtonWorld, int id0, int id1, void* userData, + NewtonContactBegin begin, NewtonContactProcess process, NewtonContactEnd end); + + NEWTON_API void* NewtonMaterialGetUserData (const NewtonWorld* newtonWorld, int id0, int id1); + + + + // ********************************************************************************************** + // + // Physics Contact control functions + // + // ********************************************************************************************** + NEWTON_API void NewtonMaterialDisableContact (const NewtonMaterial* material); + NEWTON_API dFloat NewtonMaterialGetCurrentTimestep (const NewtonMaterial* material); + NEWTON_API void *NewtonMaterialGetMaterialPairUserData (const NewtonMaterial* material); + NEWTON_API unsigned NewtonMaterialGetContactFaceAttribute (const NewtonMaterial* material); + NEWTON_API unsigned NewtonMaterialGetBodyCollisionID (const NewtonMaterial* material, const NewtonBody* body); + NEWTON_API dFloat NewtonMaterialGetContactNormalSpeed (const NewtonMaterial* material, const NewtonContact* contactlHandle); + NEWTON_API void NewtonMaterialGetContactForce (const NewtonMaterial* material, dFloat* force); + NEWTON_API void NewtonMaterialGetContactPositionAndNormal (const NewtonMaterial* material, dFloat* posit, dFloat* normal); + NEWTON_API void NewtonMaterialGetContactTangentDirections (const NewtonMaterial* material, dFloat* dir0, dFloat* dir); + NEWTON_API dFloat NewtonMaterialGetContactTangentSpeed (const NewtonMaterial* material, const NewtonContact* contactlHandle, int index); + + NEWTON_API void NewtonMaterialSetContactSoftness (const NewtonMaterial* material, dFloat softness); + NEWTON_API void NewtonMaterialSetContactElasticity (const NewtonMaterial* material, dFloat restitution); + NEWTON_API void NewtonMaterialSetContactFrictionState (const NewtonMaterial* material, int state, int index); + NEWTON_API void NewtonMaterialSetContactStaticFrictionCoef (const NewtonMaterial* material, dFloat coef, int index); + NEWTON_API void NewtonMaterialSetContactKineticFrictionCoef (const NewtonMaterial* material, dFloat coef, int index); + + NEWTON_API void NewtonMaterialSetContactNormalAcceleration (const NewtonMaterial* material, dFloat accel); + NEWTON_API void NewtonMaterialSetContactNormalDirection (const NewtonMaterial* material, const dFloat* directionVector); + + NEWTON_API void NewtonMaterialSetContactTangentAcceleration (const NewtonMaterial* material, dFloat accel, int index); + NEWTON_API void NewtonMaterialContactRotateTangentDirections (const NewtonMaterial* material, const dFloat* directionVector); + + + // ********************************************************************************************** + // + // convex collision primitives creation functions + // + // ********************************************************************************************** + NEWTON_API NewtonCollision* NewtonCreateNull (const NewtonWorld* newtonWorld); + NEWTON_API NewtonCollision* NewtonCreateSphere (const NewtonWorld* newtonWorld, dFloat radiusX, dFloat radiusY, dFloat radiusZ, const dFloat *offsetMatrix); + NEWTON_API NewtonCollision* NewtonCreateBox (const NewtonWorld* newtonWorld, dFloat dx, dFloat dy, dFloat dz, const dFloat *offsetMatrix); + NEWTON_API NewtonCollision* NewtonCreateCone (const NewtonWorld* newtonWorld, dFloat radius, dFloat height, const dFloat *offsetMatrix); + NEWTON_API NewtonCollision* NewtonCreateCapsule (const NewtonWorld* newtonWorld, dFloat radius, dFloat height, const dFloat *offsetMatrix); + NEWTON_API NewtonCollision* NewtonCreateCylinder (const NewtonWorld* newtonWorld, dFloat radius, dFloat height, const dFloat *offsetMatrix); + NEWTON_API NewtonCollision* NewtonCreateChamferCylinder (const NewtonWorld* newtonWorld, dFloat radius, dFloat height, const dFloat *offsetMatrix); + NEWTON_API NewtonCollision* NewtonCreateConvexHull (const NewtonWorld* newtonWorld, int count, const dFloat* vertexCloud, int strideInBytes, const dFloat *offsetMatrix); + NEWTON_API NewtonCollision* NewtonCreateConvexHullModifier (const NewtonWorld* newtonWorld, const NewtonCollision* convexHullCollision); + NEWTON_API void NewtonConvexHullModifierGetMatrix (const NewtonCollision* convexHullCollision, dFloat* matrix); + NEWTON_API void NewtonConvexHullModifierSetMatrix (const NewtonCollision* convexHullCollision, const dFloat* matrix); + + + + + NEWTON_API void NewtonConvexCollisionSetUserID (const NewtonCollision* convexCollision, unsigned id); + NEWTON_API unsigned NewtonConvexCollisionGetUserID (const NewtonCollision* convexCollision); + + NEWTON_API dFloat NewtonConvexCollisionCalculateVolume (const NewtonCollision* convexCollision); + NEWTON_API void NewtonConvexCollisionCalculateInertialMatrix (const NewtonCollision* convexCollision, dFloat* inertia, dFloat* origin); + + NEWTON_API void NewtonCollisionMakeUnique (const NewtonWorld* newtonWorld, const NewtonCollision* collision); + NEWTON_API void NewtonReleaseCollision (const NewtonWorld* newtonWorld, const NewtonCollision* collision); + // ********************************************************************************************** + // + // complex collision primitives creation functions + // note: can only be used with static bodies (bodies with infinite mass) + // + // ********************************************************************************************** + NEWTON_API NewtonCollision* NewtonCreateCompoundCollision (const NewtonWorld* newtonWorld, int count, + NewtonCollision* const collisionPrimitiveArray[]); + + NEWTON_API NewtonCollision* NewtonCreateUserMeshCollision (const NewtonWorld* newtonWorld, const dFloat *minBox, + const dFloat *maxBox, void *userData, NewtonUserMeshCollisionCollideCallback collideCallback, + NewtonUserMeshCollisionRayHitCallback rayHitCallback, NewtonUserMeshCollisionDestroyCallback destroyCallback); + + // ********************************************************************************************** + // + // CollisionTree Utility functions + // + // ********************************************************************************************** + NEWTON_API NewtonCollision* NewtonCreateTreeCollision (const NewtonWorld* newtonWorld, NewtonTreeCollisionCallback userCallback); + NEWTON_API void NewtonTreeCollisionBeginBuild (const NewtonCollision* treeCollision); + NEWTON_API void NewtonTreeCollisionAddFace (const NewtonCollision* treeCollision, int vertexCount, const dFloat* vertexPtr, + int strideInBytes, int faceAttribute); + NEWTON_API void NewtonTreeCollisionEndBuild (const NewtonCollision* treeCollision, int optimize); + + NEWTON_API void NewtonTreeCollisionSerialize (const NewtonCollision* treeCollision, NewtonSerialize serializeFunction, + void* serializeHandle); + + NEWTON_API NewtonCollision* NewtonCreateTreeCollisionFromSerialization (const NewtonWorld* newtonWorld, + NewtonTreeCollisionCallback userCallback, NewtonDeserialize deserializeFunction, void* serializeHandle); + + NEWTON_API int NewtonTreeCollisionGetFaceAtribute (const NewtonCollision* treeCollision, const int* faceIndexArray); + NEWTON_API void NewtonTreeCollisionSetFaceAtribute (const NewtonCollision* treeCollision, const int* faceIndexArray, + int attribute); + + + // ********************************************************************************************** + // + // General purpose collision library functions + // + // ********************************************************************************************** + NEWTON_API int NewtonCollisionPointDistance (const NewtonWorld* newtonWorld, const dFloat *point, + const NewtonCollision* collsion, const dFloat* matrix, dFloat* contact, dFloat* normal); + + NEWTON_API int NewtonCollisionClosestPoint (const NewtonWorld* newtonWorld, + const NewtonCollision* collsionA, const dFloat* matrixA, const NewtonCollision* collsionB, const dFloat* matrixB, + dFloat* contactA, dFloat* contactB, dFloat* normalAB); + + NEWTON_API int NewtonCollisionCollide (const NewtonWorld* newtonWorld, int maxSize, + const NewtonCollision* collsionA, const dFloat* matrixA, const NewtonCollision* collsionB, const dFloat* matrixB, + dFloat* contacts, dFloat* normals, dFloat* penetration); + + NEWTON_API int NewtonCollisionCollideContinue (const NewtonWorld* newtonWorld, int maxSize, const dFloat timestap, + const NewtonCollision* collsionA, const dFloat* matrixA, const dFloat* velocA, const dFloat* omegaA, + const NewtonCollision* collsionB, const dFloat* matrixB, const dFloat* velocB, const dFloat* omegaB, + dFloat* timeOfImpact, dFloat* contacts, dFloat* normals, dFloat* penetration); + + NEWTON_API dFloat NewtonCollisionRayCast (const NewtonCollision* collision, const dFloat* p0, const dFloat* p1, dFloat* normals, int* attribute); + NEWTON_API void NewtonCollisionCalculateAABB (const NewtonCollision* collision, const dFloat *matrix, dFloat* p0, dFloat* p1); + + + // ********************************************************************************************** + // + // transforms utility functions + // + // ********************************************************************************************** + NEWTON_API void NewtonGetEulerAngle (const dFloat* matrix, dFloat* eulersAngles); + NEWTON_API void NewtonSetEulerAngle (const dFloat* eulersAngles, dFloat* matrix); + + + // ********************************************************************************************** + // + // body manipulation functions + // + // ********************************************************************************************** + NEWTON_API NewtonBody* NewtonCreateBody (const NewtonWorld* newtonWorld, const NewtonCollision* collision); + NEWTON_API void NewtonDestroyBody(const NewtonWorld* newtonWorld, const NewtonBody* body); + + NEWTON_API void NewtonBodyAddForce (const NewtonBody* body, const dFloat* force); + NEWTON_API void NewtonBodyAddTorque (const NewtonBody* body, const dFloat* torque); + + NEWTON_API void NewtonBodySetMatrix (const NewtonBody* body, const dFloat* matrix); + NEWTON_API void NewtonBodySetMatrixRecursive (const NewtonBody* body, const dFloat* matrix); + NEWTON_API void NewtonBodySetMassMatrix (const NewtonBody* body, dFloat mass, dFloat Ixx, dFloat Iyy, dFloat Izz); + NEWTON_API void NewtonBodySetMaterialGroupID (const NewtonBody* body, int id); + NEWTON_API void NewtonBodySetContinuousCollisionMode (const NewtonBody* body, unsigned state); + NEWTON_API void NewtonBodySetJointRecursiveCollision (const NewtonBody* body, unsigned state); + NEWTON_API void NewtonBodySetOmega (const NewtonBody* body, const dFloat* omega); + NEWTON_API void NewtonBodySetVelocity (const NewtonBody* body, const dFloat* velocity); + NEWTON_API void NewtonBodySetForce (const NewtonBody* body, const dFloat* force); + NEWTON_API void NewtonBodySetTorque (const NewtonBody* body, const dFloat* torque); + + NEWTON_API void NewtonBodySetCentreOfMass (const NewtonBody* body, const dFloat* com); + NEWTON_API void NewtonBodySetLinearDamping (const NewtonBody* body, dFloat linearDamp); + NEWTON_API void NewtonBodySetAngularDamping (const NewtonBody* body, const dFloat* angularDamp); + NEWTON_API void NewtonBodySetUserData (const NewtonBody* body, void* userData); + NEWTON_API void NewtonBodyCoriolisForcesMode (const NewtonBody* body, int mode); + NEWTON_API void NewtonBodySetCollision (const NewtonBody* body, const NewtonCollision* collision); + NEWTON_API void NewtonBodySetAutoFreeze (const NewtonBody* body, int state); + NEWTON_API void NewtonBodySetFreezeTreshold (const NewtonBody* body, dFloat freezeSpeed2, dFloat freezeOmega2, int framesCount); + + NEWTON_API void NewtonBodySetTransformCallback (const NewtonBody* body, NewtonSetTransform callback); + NEWTON_API void NewtonBodySetDestructorCallback (const NewtonBody* body, NewtonBodyDestructor callback); + NEWTON_API void NewtonBodySetAutoactiveCallback (const NewtonBody* body, NewtonBodyActivationState callback); + NEWTON_API void NewtonBodySetForceAndTorqueCallback (const NewtonBody* body, NewtonApplyForceAndTorque callback); + NEWTON_API NewtonApplyForceAndTorque NewtonBodyGetForceAndTorqueCallback (const NewtonBody* body); + + NEWTON_API void* NewtonBodyGetUserData (const NewtonBody* body); + NEWTON_API NewtonWorld* NewtonBodyGetWorld (const NewtonBody* body); + NEWTON_API NewtonCollision* NewtonBodyGetCollision (const NewtonBody* body); + NEWTON_API int NewtonBodyGetMaterialGroupID (const NewtonBody* body); + NEWTON_API int NewtonBodyGetContinuousCollisionMode (const NewtonBody* body); + NEWTON_API int NewtonBodyGetJointRecursiveCollision (const NewtonBody* body); + + NEWTON_API void NewtonBodyGetMatrix(const NewtonBody* body, dFloat* matrix); + NEWTON_API void NewtonBodyGetMassMatrix (const NewtonBody* body, dFloat* mass, dFloat* Ixx, dFloat* Iyy, dFloat* Izz); + NEWTON_API void NewtonBodyGetInvMass(const NewtonBody* body, dFloat* invMass, dFloat* invIxx, dFloat* invIyy, dFloat* invIzz); + NEWTON_API void NewtonBodyGetOmega(const NewtonBody* body, dFloat* vector); + NEWTON_API void NewtonBodyGetVelocity(const NewtonBody* body, dFloat* vector); + NEWTON_API void NewtonBodyGetForce(const NewtonBody* body, dFloat* vector); + NEWTON_API void NewtonBodyGetTorque(const NewtonBody* body, dFloat* vector); + NEWTON_API void NewtonBodyGetCentreOfMass (const NewtonBody* body, dFloat* com); + + NEWTON_API int NewtonBodyGetSleepingState(const NewtonBody* body); + NEWTON_API int NewtonBodyGetAutoFreeze(const NewtonBody* body); + NEWTON_API dFloat NewtonBodyGetLinearDamping (const NewtonBody* body); + NEWTON_API void NewtonBodyGetAngularDamping (const NewtonBody* body, dFloat* vector); + NEWTON_API void NewtonBodyGetAABB (const NewtonBody* body, dFloat* p0, dFloat* p1); + NEWTON_API void NewtonBodyGetFreezeTreshold (const NewtonBody* body, dFloat* freezeSpeed2, dFloat* freezeOmega2); + + + NEWTON_API void NewtonBodyAddBuoyancyForce (const NewtonBody* body, dFloat fluidDensity, + dFloat fluidLinearViscosity, dFloat fluidAngularViscosity, + const dFloat* gravityVector, NewtonGetBuoyancyPlane buoyancyPlane, void *context); + + NEWTON_API void NewtonBodyForEachPolygonDo (const NewtonBody* body, NewtonCollisionIterator callback); + NEWTON_API void NewtonAddBodyImpulse (const NewtonBody* body, const dFloat* pointDeltaVeloc, const dFloat* pointPosit); + + + // ********************************************************************************************** + // + // Common joint functions + // + // ********************************************************************************************** + NEWTON_API void* NewtonJointGetUserData (const NewtonJoint* joint); + NEWTON_API void NewtonJointSetUserData (const NewtonJoint* joint, void* userData); + + NEWTON_API int NewtonJointGetCollisionState (const NewtonJoint* joint); + NEWTON_API void NewtonJointSetCollisionState (const NewtonJoint* joint, int state); + + NEWTON_API dFloat NewtonJointGetStiffness (const NewtonJoint* joint); + NEWTON_API void NewtonJointSetStiffness (const NewtonJoint* joint, dFloat state); + + NEWTON_API void NewtonDestroyJoint(const NewtonWorld* newtonWorld, const NewtonJoint* joint); + NEWTON_API void NewtonJointSetDestructor (const NewtonJoint* joint, NewtonConstraintDestructor destructor); + + + // ********************************************************************************************** + // + // Ball and Socket joint functions + // + // ********************************************************************************************** + NEWTON_API NewtonJoint* NewtonConstraintCreateBall (const NewtonWorld* newtonWorld, const dFloat* pivotPoint, + const NewtonBody* childBody, const NewtonBody* parentBody); + NEWTON_API void NewtonBallSetUserCallback (const NewtonJoint* ball, NewtonBallCallBack callback); + NEWTON_API void NewtonBallGetJointAngle (const NewtonJoint* ball, dFloat* angle); + NEWTON_API void NewtonBallGetJointOmega (const NewtonJoint* ball, dFloat* omega); + NEWTON_API void NewtonBallGetJointForce (const NewtonJoint* ball, dFloat* force); + NEWTON_API void NewtonBallSetConeLimits (const NewtonJoint* ball, const dFloat* pin, dFloat maxConeAngle, dFloat maxTwistAngle); + + // ********************************************************************************************** + // + // Hinge joint functions + // + // ********************************************************************************************** + NEWTON_API NewtonJoint* NewtonConstraintCreateHinge (const NewtonWorld* newtonWorld, + const dFloat* pivotPoint, const dFloat* pinDir, + const NewtonBody* childBody, const NewtonBody* parentBody); + + NEWTON_API void NewtonHingeSetUserCallback (const NewtonJoint* hinge, NewtonHingeCallBack callback); + NEWTON_API dFloat NewtonHingeGetJointAngle (const NewtonJoint* hinge); + NEWTON_API dFloat NewtonHingeGetJointOmega (const NewtonJoint* hinge); + NEWTON_API void NewtonHingeGetJointForce (const NewtonJoint* hinge, dFloat* force); + NEWTON_API dFloat NewtonHingeCalculateStopAlpha (const NewtonJoint* hinge, const NewtonHingeSliderUpdateDesc* desc, dFloat angle); + + // ********************************************************************************************** + // + // Slider joint functions + // + // ********************************************************************************************** + NEWTON_API NewtonJoint* NewtonConstraintCreateSlider (const NewtonWorld* newtonWorld, + const dFloat* pivotPoint, const dFloat* pinDir, + const NewtonBody* childBody, const NewtonBody* parentBody); + NEWTON_API void NewtonSliderSetUserCallback (const NewtonJoint* slider, NewtonSliderCallBack callback); + NEWTON_API dFloat NewtonSliderGetJointPosit (const NewtonJoint* slider); + NEWTON_API dFloat NewtonSliderGetJointVeloc (const NewtonJoint* slider); + NEWTON_API void NewtonSliderGetJointForce (const NewtonJoint* slider, dFloat* force); + NEWTON_API dFloat NewtonSliderCalculateStopAccel (const NewtonJoint* slider, const NewtonHingeSliderUpdateDesc* desc, dFloat position); + + + // ********************************************************************************************** + // + // Corkscrew joint functions + // + // ********************************************************************************************** + NEWTON_API NewtonJoint* NewtonConstraintCreateCorkscrew (const NewtonWorld* newtonWorld, + const dFloat* pivotPoint, const dFloat* pinDir, + const NewtonBody* childBody, const NewtonBody* parentBody); + NEWTON_API void NewtonCorkscrewSetUserCallback (const NewtonJoint* corkscrew, NewtonCorkscrewCallBack callback); + NEWTON_API dFloat NewtonCorkscrewGetJointPosit (const NewtonJoint* corkscrew); + NEWTON_API dFloat NewtonCorkscrewGetJointAngle (const NewtonJoint* corkscrew); + NEWTON_API dFloat NewtonCorkscrewGetJointVeloc (const NewtonJoint* corkscrew); + NEWTON_API dFloat NewtonCorkscrewGetJointOmega (const NewtonJoint* corkscrew); + NEWTON_API void NewtonCorkscrewGetJointForce (const NewtonJoint* corkscrew, dFloat* force); + NEWTON_API dFloat NewtonCorkscrewCalculateStopAlpha (const NewtonJoint* corkscrew, const NewtonHingeSliderUpdateDesc* desc, dFloat angle); + NEWTON_API dFloat NewtonCorkscrewCalculateStopAccel (const NewtonJoint* corkscrew, const NewtonHingeSliderUpdateDesc* desc, dFloat position); + + + // ********************************************************************************************** + // + // Universal joint functions + // + // ********************************************************************************************** + NEWTON_API NewtonJoint* NewtonConstraintCreateUniversal (const NewtonWorld* newtonWorld, + const dFloat* pivotPoint, const dFloat* pinDir0, const dFloat* pinDir1, + const NewtonBody* childBody, const NewtonBody* parentBody); + NEWTON_API void NewtonUniversalSetUserCallback (const NewtonJoint* universal, NewtonUniversalCallBack callback); + NEWTON_API dFloat NewtonUniversalGetJointAngle0 (const NewtonJoint* universal); + NEWTON_API dFloat NewtonUniversalGetJointAngle1 (const NewtonJoint* universal); + NEWTON_API dFloat NewtonUniversalGetJointOmega0 (const NewtonJoint* universal); + NEWTON_API dFloat NewtonUniversalGetJointOmega1 (const NewtonJoint* universal); + NEWTON_API void NewtonUniversalGetJointForce (const NewtonJoint* universal, dFloat* force); + NEWTON_API dFloat NewtonUniversalCalculateStopAlpha0 (const NewtonJoint* universal, const NewtonHingeSliderUpdateDesc* desc, dFloat angle); + NEWTON_API dFloat NewtonUniversalCalculateStopAlpha1 (const NewtonJoint* universal, const NewtonHingeSliderUpdateDesc* desc, dFloat angle); + + + // ********************************************************************************************** + // + // Up vector joint functions + // + // ********************************************************************************************** + NEWTON_API NewtonJoint* NewtonConstraintCreateUpVector (const NewtonWorld* newtonWorld, const dFloat* pinDir, const NewtonBody* body); + NEWTON_API void NewtonUpVectorGetPin (const NewtonJoint* upVector, dFloat *pin); + NEWTON_API void NewtonUpVectorSetPin (const NewtonJoint* upVector, const dFloat *pin); + + + // ********************************************************************************************** + // + // User defined bilateral Joint + // + // ********************************************************************************************** + NEWTON_API NewtonJoint* NewtonConstraintCreateUserJoint (const NewtonWorld* newtonWorld, int maxDOF, NewtonUserBilateralCallBack callback, + const NewtonBody* childBody, const NewtonBody* parentBody); + + NEWTON_API void NewtonUserJointAddLinearRow (const NewtonJoint* joint, const dFloat *pivot0, const dFloat *pivot1, const dFloat *dir); + NEWTON_API void NewtonUserJointAddAngularRow (const NewtonJoint* joint, dFloat relativeAngle, const dFloat *dir); + NEWTON_API void NewtonUserJointAddGeneralRow (const NewtonJoint* joint, const dFloat *jacobian0, const dFloat *jacobian1); + NEWTON_API void NewtonUserJointSetRowMinimumFriction (const NewtonJoint* joint, dFloat friction); + NEWTON_API void NewtonUserJointSetRowMaximumFriction (const NewtonJoint* joint, dFloat friction); + NEWTON_API void NewtonUserJointSetRowAcceleration (const NewtonJoint* joint, dFloat acceleration); + NEWTON_API void NewtonUserJointSetRowSpringDamperAcceleration (const NewtonJoint* joint, dFloat springK, dFloat springD); + NEWTON_API void NewtonUserJointSetRowStiffness (const NewtonJoint* joint, dFloat stiffness); + NEWTON_API dFloat NewtonUserJointGetRowForce (const NewtonJoint* joint, int row); + + + + // ********************************************************************************************** + // + // Rag doll joint container functions + // + // ********************************************************************************************** + NEWTON_API NewtonRagDoll* NewtonCreateRagDoll (const NewtonWorld* newtonWorld); + NEWTON_API void NewtonDestroyRagDoll (const NewtonWorld* newtonWorld, const NewtonRagDoll* ragDoll); + + NEWTON_API void NewtonRagDollBegin (const NewtonRagDoll* ragDoll); + NEWTON_API void NewtonRagDollEnd (const NewtonRagDoll* ragDoll); + + +// NEWTON_API void NewtonRagDollSetFriction (const NewtonRagDoll* ragDoll, dFloat friction); + + NEWTON_API NewtonRagDollBone* NewtonRagDollFindBone (const NewtonRagDoll* ragDoll, int id); +// NEWTON_API NewtonRagDollBone* NewtonRagDollGetRootBone (const NewtonRagDoll* ragDoll); + + NEWTON_API void NewtonRagDollSetForceAndTorqueCallback (const NewtonRagDoll* ragDoll, NewtonApplyForceAndTorque callback); + NEWTON_API void NewtonRagDollSetTransformCallback (const NewtonRagDoll* ragDoll, NewtonSetRagDollTransform callback); + NEWTON_API NewtonRagDollBone* NewtonRagDollAddBone (const NewtonRagDoll* ragDoll, const NewtonRagDollBone* parent, + void *userData, dFloat mass, const dFloat* matrix, + const NewtonCollision* boneCollision, const dFloat* size); + + NEWTON_API void* NewtonRagDollBoneGetUserData (const NewtonRagDollBone* bone); + NEWTON_API NewtonBody* NewtonRagDollBoneGetBody (const NewtonRagDollBone* bone); + NEWTON_API void NewtonRagDollBoneSetID (const NewtonRagDollBone* bone, int id); + + + NEWTON_API void NewtonRagDollBoneSetLimits (const NewtonRagDollBone* bone, + const dFloat* coneDir, dFloat minConeAngle, dFloat maxConeAngle, dFloat maxTwistAngle, + const dFloat* bilateralConeDir, dFloat negativeBilateralConeAngle, dFloat positiveBilateralConeAngle); + +// NEWTON_API NewtonRagDollBone* NewtonRagDollBoneGetChild (const NewtonRagDollBone* bone); +// NEWTON_API NewtonRagDollBone* NewtonRagDollBoneGetSibling (const NewtonRagDollBone* bone); +// NEWTON_API NewtonRagDollBone* NewtonRagDollBoneGetParent (const NewtonRagDollBone* bone); +// NEWTON_API void NewtonRagDollBoneSetLocalMatrix (const NewtonRagDollBone* bone, dFloat* matrix); +// NEWTON_API void NewtonRagDollBoneSetGlobalMatrix (const NewtonRagDollBone* bone, dFloat* matrix); + + NEWTON_API void NewtonRagDollBoneGetLocalMatrix (const NewtonRagDollBone* bone, dFloat* matrix); + NEWTON_API void NewtonRagDollBoneGetGlobalMatrix (const NewtonRagDollBone* bone, dFloat* matrix); + + + + // ********************************************************************************************** + // + // Vehicle joint functions + // + // ********************************************************************************************** + NEWTON_API NewtonJoint* NewtonConstraintCreateVehicle (const NewtonWorld* newtonWorld, const dFloat* upDir, const NewtonBody* body); + NEWTON_API void NewtonVehicleReset (const NewtonJoint* vehicle); + NEWTON_API void NewtonVehicleSetTireCallback (const NewtonJoint* vehicle, NewtonVehicleTireUpdate update); + NEWTON_API void* NewtonVehicleAddTire (const NewtonJoint* vehicle, const dFloat* localMatrix, const dFloat* pin, dFloat mass, dFloat width, dFloat radius, + dFloat suspesionShock, dFloat suspesionSpring, dFloat suspesionLength, void* userData, int collisionID); + NEWTON_API void NewtonVehicleRemoveTire (const NewtonJoint* vehicle, void* tireId); + + NEWTON_API void* NewtonVehicleGetFirstTireID (const NewtonJoint* vehicle); + NEWTON_API void* NewtonVehicleGetNextTireID (const NewtonJoint* vehicle, void* tireId); + + NEWTON_API int NewtonVehicleTireIsAirBorne (const NewtonJoint* vehicle, void* tireId); + NEWTON_API int NewtonVehicleTireLostSideGrip (const NewtonJoint* vehicle, void* tireId); + NEWTON_API int NewtonVehicleTireLostTraction (const NewtonJoint* vehicle, void* tireId); + + NEWTON_API void* NewtonVehicleGetTireUserData (const NewtonJoint* vehicle, void* tireId); + NEWTON_API dFloat NewtonVehicleGetTireOmega (const NewtonJoint* vehicle, void* tireId); + NEWTON_API dFloat NewtonVehicleGetTireNormalLoad (const NewtonJoint* vehicle, void* tireId); + NEWTON_API dFloat NewtonVehicleGetTireSteerAngle (const NewtonJoint* vehicle, void* tireId); + NEWTON_API dFloat NewtonVehicleGetTireLateralSpeed (const NewtonJoint* vehicle, void* tireId); + NEWTON_API dFloat NewtonVehicleGetTireLongitudinalSpeed (const NewtonJoint* vehicle, void* tireId); + NEWTON_API void NewtonVehicleGetTireMatrix (const NewtonJoint* vehicle, void* tireId, dFloat* matrix); + + + NEWTON_API void NewtonVehicleSetTireTorque (const NewtonJoint* vehicle, void* tireId, dFloat torque); + NEWTON_API void NewtonVehicleSetTireSteerAngle (const NewtonJoint* vehicle, void* tireId, dFloat angle); + + NEWTON_API void NewtonVehicleSetTireMaxSideSleepSpeed (const NewtonJoint* vehicle, void* tireId, dFloat speed); + NEWTON_API void NewtonVehicleSetTireSideSleepCoeficient (const NewtonJoint* vehicle, void* tireId, dFloat coeficient); + NEWTON_API void NewtonVehicleSetTireMaxLongitudinalSlideSpeed (const NewtonJoint* vehicle, void* tireId, dFloat speed); + NEWTON_API void NewtonVehicleSetTireLongitudinalSlideCoeficient (const NewtonJoint* vehicle, void* tireId, dFloat coeficient); + + NEWTON_API dFloat NewtonVehicleTireCalculateMaxBrakeAcceleration (const NewtonJoint* vehicle, void* tireId); + NEWTON_API void NewtonVehicleTireSetBrakeAcceleration (const NewtonJoint* vehicle, void* tireId, dFloat accelaration, dFloat torqueLimit); + +#ifdef __cplusplus +} +#endif +#endif + + diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Stable Version/1.3.3/README --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Stable Version/1.3.3/README Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,13 @@ + Irrlicht Library Wrapper + Created by Nathan Adams + Version 1.3.3 + Copyright (C) 2008 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. + + Please leave all files intact if you redistrubte this software. + +How to use: + Add all the files to your Irrlicht project, you could compile it into a DLL if you wanted too, but for now just add all the files to your project. + Then inside your complier add the directory that you have the IrrLib files and use #include "IrrLib.h" to refrence it, and you are good to go! \ No newline at end of file diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Stable Version/1.3.3/_mouse.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Stable Version/1.3.3/_mouse.h Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,9 @@ +#ifndef __MOUSE_H +#define __MOUSE_H + +struct _mouse { + int x; + int y; +}; + +#endif diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Unstable Version/1.2.2b/CHANGES --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Unstable Version/1.2.2b/CHANGES Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,5 @@ +Version 1.2 ++ Added a Irr3DLib class that will control all 3D objects ++ Also Added a Irr2D class that works on the same concept. ++ IrrSphere is now owned by Irr3DLib ++ Updated the examples using the latest code diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Unstable Version/1.2.2b/Irr2D.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Unstable Version/1.2.2b/Irr2D.cpp Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,55 @@ +/* + Irrlicht Library Wrapper + Created by Nathan Adams + Copyright (C) 2007 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ +#include +#include "IrrLib.h" +//#include "IrrSphere.h" //You probably aren't going to be using 3D objects in a 2D environment! +#include "Irr2D.h" +#include +#include + +using namespace irr; +using namespace core; +using namespace scene; +using namespace video; +using namespace io; +using namespace gui; + +using namespace std; + +Irr2D::Irr2D(){ + this->numTextures = 0; +} + +Irr2D::~Irr2D(){ + for(int i = 0; i < numTextures; ++i) + delete this->textures[i]; + + delete this->textures; +} + +void Irr2D::SetSmgr(irr::scene::ISceneManager* smgr){ + this->smgr = smgr; + Sprite.SetSmgr(smgr); +} + +void Irr2D::SetDriver(irr::video::IVideoDriver* driver){ + this->driver = driver; + Sprite.SetDriver(driver); +} + +void Irr2D::LoadTexturemap(std::string file){ + this->texturemap = driver->getTexture(file.c_str()); +} + +int Irr2D::LoadTexture(std::string file){ + this->textures[this->numTextures] = driver->getTexture(file.c_str()); + this->numTextures++; + return numTextures--; +} + diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Unstable Version/1.2.2b/Irr2D.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Unstable Version/1.2.2b/Irr2D.h Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,45 @@ +/* + Irrlicht Library Wrapper + Created by Nathan Adams + Copyright (C) 2007 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ + +#ifndef IRR2D_H +#define IRR2D_H +/* We should include some basic functions */ +#include +/* include strings */ +#include + +/* We have to include Irrlichts libs */ +#include + +#include "IrrLib.h" +#include "IrrSprite.h" + +class Irr2D { + private: + irr::scene::ISceneManager* smgr; + irr::video::IVideoDriver* driver; + irr::video::ITexture* texturemap; + int numTextures; + irr::video::ITexture* textures[10]; + public: + //Irr2D::Irr2D(); + IrrSprite Sprite; + Irr2D::Irr2D(); + Irr2D::~Irr2D(); + void Irr2D::SetDriver(irr::video::IVideoDriver* driver); + void Irr2D::SetSmgr(irr::scene::ISceneManager* smgr); + void Irr2D::LoadTexturemap(std::string file); + int Irr2D::LoadTexture(std::string file); + void Irr2D::DrawImage(int texture, const irr::core::position2d & destPos); + void Irr2D::DrawImage(const irr::core::position2d & destPos, const irr::core::rect & sourceRect, const irr::core::rect * clipRect, irr::video::SColor color, bool useAlphaChannelOfTexture); + void Irr2D::DrawLine(const irr::core::position2d & start, const irr::core::position2d & end, irr::video::SColor color); +}; + +#endif + diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Unstable Version/1.2.2b/Irr3D.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Unstable Version/1.2.2b/Irr3D.cpp Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,49 @@ +/* + Irrlicht Library Wrapper + Created by Nathan Adams + Copyright (C) 2007 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ +#include +#include + +//#include "IrrLib.h" +//Libraries we create go here +#include "IrrSphere.h" +//#include "IrrColor.h" +#include "Irr3D.h" +#include +//#include "Irr2D.h" + +using namespace irr; +using namespace core; +using namespace scene; +using namespace video; +using namespace io; +using namespace gui; + +using namespace std; + +void Irr3D::SetDriver(irr::video::IVideoDriver* driver) +{ + this->driver = driver; + Sphere.SetDriver(driver); +} + +void Irr3D::SetSmgr(irr::scene::ISceneManager* smgr) +{ + this->smgr = smgr; + Sphere.SetSmgr(smgr); +} + +Irr3D::Irr3D() +{ + //do stuff here! +} + +Irr3D::~Irr3D() +{ + //delete stuff here! +} diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Unstable Version/1.2.2b/Irr3D.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Unstable Version/1.2.2b/Irr3D.h Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,41 @@ +/* + Irrlicht Library Wrapper + Created by Nathan Adams + Copyright (C) 2007 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ +#ifndef IRR3D_H +#define IRR3D_H + +/* We should include some basic functions */ +#include +/* include strings */ +#include + +/* We have to include Irrlichts libs */ +#include + +#include "IrrSphere.h" +//#include "IrrColor.h" +//#include "Irr3D.h" +//#include "Irr2D.h" This is a 3D class not 2D +/* However due to Irrlciht's nature mixing 2D with 3D is possible */ + +//Start class +class Irr3D { + + private: + + irr::video::IVideoDriver* driver; + irr::scene::ISceneManager* smgr; + public: + IrrSphere Sphere; + Irr3D::Irr3D(); + Irr3D::~Irr3D(); + void Irr3D::SetDriver(irr::video::IVideoDriver* driver); + void Irr3D::SetSmgr(irr::scene::ISceneManager* smgr); +}; + +#endif diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Unstable Version/1.2.2b/IrrColor.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Unstable Version/1.2.2b/IrrColor.cpp Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,66 @@ +/* + Irrlicht Library Wrapper + Created by Nathan Adams + Copyright (C) 2007 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ +#include +#include +#include + +//#include "IrrLib.h" +#include "IrrColor.h" + +using namespace irr; +using namespace core; +using namespace scene; +using namespace video; +using namespace io; +using namespace gui; + +using namespace std; + +void IrrColor::test(){ + //do nothing +} + +SColor IrrColor::returnColor(std::string color){ + int nColor = -1; + if (color == "red") + nColor = 1; + else if (color == "green") + nColor = 2; + else if (color == "blue") + nColor = 3; + else if (color == "dark green") + nColor = 4; + else if (color == "pink") + nColor = 5; + else if (color == "grey") + nColor = 6; + switch (nColor){ + case 1: + return SColor(255, 255, 0, 0); + break; + case 2: + return SColor(255, 0, 255, 0); + break; + case 3: + return SColor(255, 0, 0, 255); + break; + case 4: + return SColor(255, 0, 50, 0); + break; + case 5: + return SColor(255, 255, 10, 255); + break; + case 6: + return SColor(255,200,200,200); + break; + default: + return SColor(255,200,200,200); + break; + }// TODO: Make this function modular +} diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Unstable Version/1.2.2b/IrrColor.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Unstable Version/1.2.2b/IrrColor.h Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,26 @@ +/* + Irrlicht Library Wrapper + Created by Nathan Adams + Copyright (C) 2007 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ + +#ifndef IRRCOLOR_H +#define IRRCOLOR_H + +#include +#include +#include "irrlicht.h" +//#include "IrrLib.h" + +class IrrColor { + private: + //who knows? + public: + void IrrColor::test(); + irr::video::SColor IrrColor::returnColor(std::string color); +}; + +#endif diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Unstable Version/1.2.2b/IrrEventReciever.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Unstable Version/1.2.2b/IrrEventReciever.h Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,28 @@ +/* + Irrlicht Library Wrapper + Created by Nathan Adams + Copyright (C) 2007 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ + +#ifndef IRREVENTRECIEVER_H +#define IRREVENTRECIEVER_H + +#include + +class IrrEventReciever : public IEventReciever { + public: + virtual bool OnEvent(SEvent event) { + if (event.EventType == irr::EET_KEY_INPUT_EVENT) { + if (!event.KeyInput.PressedDown) + keyStates[event.KeyInput.Key] = true; + else + keyStates[event.KeyInput.Key] = false; + } + return false; + } +}; + +#endif diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Unstable Version/1.2.2b/IrrLib.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Unstable Version/1.2.2b/IrrLib.cpp Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,223 @@ +/* + Irrlicht Library Wrapper + Created by Nathan Adams + Copyright (C) 2007 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ +#include +#include +#include + +#include "IrrLib.h" +//Libraries we create go here +//#include "IrrSphere.h" +#include "IrrColor.h" +#include "Irr2D.h" + +using namespace irr; +using namespace core; +using namespace scene; +using namespace video; +using namespace io; +using namespace gui; + +using namespace std; + +//TODO: Create own class for handling inputs! + + +/*IrrLib::IrrLib(MastEventReceiver & receiver){ + this->device = createDevice(EDT_SOFTWARE, dimension2d(640, 480), 16, false, false, false, &receiver); + if (this->device == 0) + exit(1); + IrrLib::Init(); +}*/ + +IrrLib::IrrLib(){ + this->device = createDevice(EDT_SOFTWARE, dimension2d(640, 480), 16, false, false, false, &irecv); + if (this->device == 0) + exit(1); + IrrLib::Init(); +} + +IrrLib::IrrLib(video::E_DRIVER_TYPE drivertype, core::dimension2d & res, u32 bits, bool fullscreen, bool stencilbuffer, bool vsync){ + //MyEventReceiver receiver; + this->device = createDevice(drivertype, res, bits, fullscreen, stencilbuffer, vsync, &irecv); + if (this->device == 0) + exit(1); + IrrLib::Init(); +} + +IrrLib::IrrLib(int nDrivertype, int width, int height, int bits, bool fullscreen, bool stencilbuffer, bool vsync){ + //MyEventReceiver receiver; + video::E_DRIVER_TYPE drivertype; + switch (nDrivertype){ + case 0: //TODO: finish this switch case + drivertype = EDT_NULL; + break; + case 1: + drivertype = EDT_SOFTWARE; + break; + case 2: + drivertype = EDT_BURNINGSVIDEO; + break; + case 3: + drivertype = EDT_OPENGL; + break; + case 4: + drivertype = EDT_DIRECT3D8; + //*Note: It seems as Microsoft has stoped supporting DX 8.1, so you can not compile it into Irrlicht engine anymore + //TODO: Find how to detect if DX is complied into Irrlicht + //TODO: Find how to detecht for linux + break; + case 5: + drivertype = EDT_DIRECT3D9; + break; + default: + drivertype = EDT_SOFTWARE; + break; + } + this->device = createDevice(drivertype, dimension2d(width, height), bits, fullscreen, stencilbuffer, vsync, &irecv); + if (this->device == 0) + exit(1); + IrrLib::Init(); +} + +IrrLib::~IrrLib (){ //Our moms wont clean up after us! + //Although I'm sure Irrlicht does this for us already, its always a good idea to check! + /*if (this->device != NULL) + delete this->device; + if (this->driver != NULL) + delete this->driver; + if (this->smgr != NULL) + delete this->smgr; + if (this->mesh != NULL) + delete this->mesh; + if (this->node != NULL) + delete this->node;*/ //it seems Irrlicht picks up after us... + //however we created newNodes, now we need to delete it! +} + +void IrrLib::Init(){ + //this->numNodes = 0; + //this->nodeNew = new ISceneNode[10]; + this->driver = this->device->getVideoDriver(); + this->smgr = this->device->getSceneManager(); + Irr3DLib.SetSmgr(this->smgr); + Irr3DLib.SetDriver(this->driver); + Irr2DLib.SetSmgr(this->smgr); + Irr2DLib.SetDriver(this->driver); +} + +void IrrLib::ReadArchive(std::string file){ + this->device->getFileSystem()->addZipFileArchive(file.c_str()); +} + +void IrrLib::LoadQ3Level(std::string q3level){ + this->mesh = this->smgr->getMesh(q3level.c_str()); + this->node = 0; + if (this->mesh) + this->node = this->smgr->addOctTreeSceneNode(this->mesh->getMesh(0), 0, -1, 128); +} + +void IrrLib::MapPos(int x, int y, int z){ + if (this->node) + this->node->setPosition(core::vector3df(x, y, z)); +} + +void IrrLib::MapPos(){ + if (this->node) + this->node->setPosition(core::vector3df(0, 0, 0)); +} + +void IrrLib::AddFPSCam(){ + this->cam = this->smgr->addCameraSceneNodeFPS(); +} + +void IrrLib::AddFPSCam(f32 x, f32 y, f32 z) +{ + this->cam = this->smgr->addCameraSceneNodeFPS(); + this->cam->setPosition(irr::core::vector3df(x, y, z)); +} + +void IrrLib::VisibleCursor(bool tf){ + if (tf == false) + this->device->getCursorControl()->setVisible(false); + else + this->device->getCursorControl()->setVisible(true); +} + +int IrrLib::GetFPSCount(){ + return this->driver->getFPS(); +} + +bool IrrLib::DeviceIsRunning(){ + return this->device->run(); +} + +bool IrrLib::IsActiveWindow(){ + return this->device->isWindowActive(); +} + +void IrrLib::BeginScene(){ + this->driver->beginScene(true, true, video::SColor(0,200,200,200)); +} + +void IrrLib::BeginScene(irr::video::SColor color){ + this->driver->beginScene(true, true, color); +} + +void IrrLib::BeginScene(bool usebackBuffer, bool usezBuffer, irr::video::SColor color){ + this->driver->beginScene(usebackBuffer, usezBuffer, color); +} + +void IrrLib::DrawAll(){ + this->smgr->drawAll(); + //this->device->getGUIEnvironment()->drawAll(); + } + +void IrrLib::EndScene(){ + this->driver->endScene(); +} + +void IrrLib::SetWindowCaption(stringw str){ + this->device->setWindowCaption(str.c_str()); +} + +irr::core::stringw IrrLib::GetDriverName(){ + return this->driver->getName(); +} + +void IrrLib::EndIrrlicht(){ + this->device->drop(); +} + +void IrrLib::KeyPress(char key){ + this->key = key; +} + +char IrrLib::KeyPressed(){ + return key; +} + +irr::f32 IrrLib::getX(){ + return this->smgr->getActiveCamera()->getPosition().X; +} + +irr::f32 IrrLib::getY(){ + return this->smgr->getActiveCamera()->getPosition().Y; +} + +irr::f32 IrrLib::getZ(){ + return this->smgr->getActiveCamera()->getPosition().Z; +} + +bool IrrLib::isKeyDown(EKEY_CODE key) { + return keyStates[key]; +} + +bool IrrLib::isKeyUp(EKEY_CODE key) { + return !keyStates[key]; +} diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Unstable Version/1.2.2b/IrrLib.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Unstable Version/1.2.2b/IrrLib.h Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,106 @@ +/* + Irrlicht Library Wrapper + Created by Nathan Adams + Copyright (C) 2007 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ +#ifndef IRRLIB_H +#define IRRLIB_H + +/* We should include some basic functions */ +#include +/* include strings */ +#include + +/* We have to include Irrlichts libs */ +#include + +#include "Irr3D.h" +#include "IrrColor.h" +#include "Irr2D.h" +#include "IrrEventReciever.h" + +IrrEventReciever irecv; + +//Start class +class IrrLib { + + private: + /* Create an Irrlicht device as private because the class should handle + All irrlicht interaction */ + irr::IrrlichtDevice *device; + // Tells Irrlicht what driver to use + //video::E_DRIVER_TYPE driverType; + + /* + Get a pointer to the video driver and the SceneManager so that + we do not always have to write device->getVideoDriver() and + device->getSceneManager(). + */ + irr::video::IVideoDriver* driver; + irr::scene::ISceneManager* smgr; + + /* + Get a pointer to the 'mesh' aka the level. + Note: This is for Quake3 levels, ie bsp maps. + */ + irr::scene::IAnimatedMesh* mesh; + irr::scene::ISceneNode* node; + irr::scene::ISceneNode * tempNode; //use this to store nodeNew's data so we can resize it + irr::scene::ICameraSceneNode * cam; + char key; + + + void IrrLib::Init(); + /*friend class IrrColor; + friend class Irr2DLib; + friend class Sphere;*/ + + bool keyStates[KEY_KEY_CODES_COUNT]; + public: + //IrrSphere Sphere; //This has to be public to be able to access the Sphere class + /* IrrSphere is now in Irr3D class */ + //Prehaps put this into a IrrLib3D class? + Irr3D Irr3DLib; + IrrColor Color; //Color class...not much of a class but lets keep it OO + Irr2D Irr2DLib; //1/2 variable to be labeled like this due to variables not able to begin with a number + IrrLib::IrrLib(); + //IrrLib::IrrLib(MastEventReceiver & receiver); + IrrLib::IrrLib(irr::video::E_DRIVER_TYPE drivertype, irr::core::dimension2d & res, irr::u32 bits, bool fullscreen, bool stencilbuffer, bool vsync); + IrrLib::IrrLib(int drivertype, int width, int height, int bits, bool fullscreen, bool stencilbuffer, bool vsync); + IrrLib::~IrrLib(); //Our moms wont clean up after us! + void IrrLib::ReadArchive(std::string file); + void IrrLib::LoadQ3Level(std::string q3level); + void IrrLib::MapPos(int x, int y, int z); //I think this moves the actual camera? + void IrrLib::MapPos(); + void IrrLib::AddFPSCam(); + void IrrLib::AddFPSCam(irr::f32 x, irr::f32 y, irr::f32 z); + void IrrLib::VisibleCursor(bool tf); + int IrrLib::GetFPSCount(); + bool IrrLib::DeviceIsRunning(); + bool IrrLib::IsActiveWindow(); + void IrrLib::BeginScene(); + void IrrLib::BeginScene(irr::video::SColor color); + void IrrLib::BeginScene(bool usebackBuffer, bool usezBuffer, irr::video::SColor color); + //TODO: Add one more for human readable colors and hex colors! + void IrrLib::DrawAll(); + void IrrLib::EndScene(); + void IrrLib::SetWindowCaption(irr::core::stringw str); + irr::core::stringw IrrLib::GetDriverName(); + //TODO: Make function to turn stringw to string and visa versa + void IrrLib::EndIrrlicht(); //Renamed from KillIrrlicht to EndIrrlicht + //TODO: Add logging + + friend bool irecv::OnEvent(SEvent event); + + bool isKeyDown(EKEY_CODE key); + bool isKeyUp(EKEY_CODE key); + + irr::f32 getX(); + irr::f32 getY(); + irr::f32 getZ(); +}; + +#endif diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Unstable Version/1.2.2b/IrrSphere.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Unstable Version/1.2.2b/IrrSphere.cpp Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,63 @@ +/* + Irrlicht Library Wrapper + Created by Nathan Adams + Copyright (C) 2007 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ +#include +#include "IrrLib.h" +#include "IrrSphere.h" +#include +#include + +using namespace irr; +using namespace core; +using namespace scene; +using namespace video; +using namespace io; +using namespace gui; + +using namespace std; + +void IrrSphere::SetSmgr(irr::scene::ISceneManager* smgr){ + this->smgr = smgr; +} + +void IrrSphere::SetDriver(irr::video::IVideoDriver* driver){ + this->driver = driver; +} + +int IrrSphere::CreateNewSphereNode(int x, int y, int z, std::string texture, bool light){ + //TODO: Resize after 10, and add 10 more to the mix! + this->nodeNew[this->numNodes] = this->smgr->addSphereSceneNode(); + this->nodeNew[this->numNodes]->setPosition(core::vector3df(x,y,z)); + this->nodeNew[this->numNodes]->setMaterialTexture(0, this->driver->getTexture(texture.c_str())); + this->nodeNew[this->numNodes]->setMaterialFlag(video::EMF_LIGHTING, light); + this->numNodes++; + return this->numNodes--; + /*this->node = this->smgr->addSphereSceneNode(); + this->node->setPosition(core::vector3df(x,y,z)); + this->node->setMaterialTexture(0, this->driver->getTexture(texture.c_str())); + this->node->setMaterialFlag(video::EMF_LIGHTING, light);*/ +} + +irr::core::vector3df IrrSphere::GetSphereVector(int sphere){ + return this->nodeNew[sphere]->getPosition(); +} + +void IrrSphere::SetSphereVector(int sphere, irr::core::vector3df v){ + this->nodeNew[sphere]->setPosition(v); +} + +IrrSphere::IrrSphere(){ + this->numNodes = 0; +} + +IrrSphere::~IrrSphere(){ + for(int i = 0; i < numNodes; ++i) + delete this->nodeNew[i]; + + delete this->nodeNew; +} diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Unstable Version/1.2.2b/IrrSphere.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Unstable Version/1.2.2b/IrrSphere.h Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,41 @@ +/* + Irrlicht Library Wrapper + Created by Nathan Adams + Copyright (C) 2007 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ + +#ifndef IRRSPHERE_H +#define IRRSPHERE_H +/* We should include some basic functions */ +#include +/* include strings */ +#include + +/* We have to include Irrlichts libs */ +#include + +//#include "IrrLib.h" + + +class IrrSphere +{ + private: + irr::scene::ISceneNode* nodeNew[10]; + int numNodes; + irr::scene::ISceneManager* smgr; + irr::video::IVideoDriver* driver; + public: + void IrrSphere::SetDriver(irr::video::IVideoDriver* driver); + void IrrSphere::SetSmgr(irr::scene::ISceneManager* smgr); + int IrrSphere::CreateNewSphereNode(int x, int y, int z, std::string texture, bool light); //this is going to take my advanced C++ skillz! + irr::core::vector3df IrrSphere::GetSphereVector(int sphere); + void IrrSphere::SetSphereVector(int sphere, irr::core::vector3df v); + IrrSphere::IrrSphere(); + //IrrSphere::IrrSphere(IrrLib*); + IrrSphere::~IrrSphere(); +}; + +#endif diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Unstable Version/1.2.2b/IrrSprite.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Unstable Version/1.2.2b/IrrSprite.cpp Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,46 @@ +/* + Irrlicht Library Wrapper + Created by Nathan Adams + Copyright (C) 2007 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ +#include +#include +#include + +#include "IrrLib.h" +//Libraries we create go here +#include "IrrSphere.h" +#include "IrrColor.h" +#include "Irr2D.h" + +using namespace irr; +using namespace core; +using namespace scene; +using namespace video; +using namespace io; +using namespace gui; + +using namespace std; + + IrrSprite::IrrSprite() + { + //do stuff + } + + IrrSprite::~IrrSprite() + { + //delete stuff + } + + void IrrSprite::SetDriver(irr::video::IVideoDriver* driver) + { + this->driver = driver; + } + void IrrSprite::SetSmgr(irr::scene::ISceneManager* smgr) + { + this->smgr = smgr; + } + \ No newline at end of file diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Unstable Version/1.2.2b/IrrSprite.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Unstable Version/1.2.2b/IrrSprite.h Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,42 @@ +/* + Irrlicht Library Wrapper + Created by Nathan Adams + Copyright (C) 2007 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ +#ifndef IRRSPRITE_H +#define IRRSPRITE_H + +/* We should include some basic functions */ +#include +/* include strings */ +#include + +/* We have to include Irrlichts libs */ +#include + +#include "IrrSphere.h" +#include "IrrColor.h" +#include "Irr2D.h" +#include "IrrSprite.h" + +//Start class +class IrrSprite { + + private: + + irr::video::IVideoDriver* driver; + irr::scene::ISceneManager* smgr; + public: + IrrSprite::IrrSprite(); + IrrSprite::~IrrSprite(); + void IrrSprite::SetDriver(irr::video::IVideoDriver* driver); + void IrrSprite::SetSmgr(irr::scene::ISceneManager* smgr); + +// I forgot a semicolon here....and it wasn't compling +//Thats 1 bad thing about OOP if there is an error you don't know where the @#$@# the problem is! +}; + +#endif diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Unstable Version/1.2.2b/README --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Unstable Version/1.2.2b/README Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,13 @@ + Irrlicht Library Wrapper + Created by Nathan Adams + Version 1.2 + Copyright (C) 2007 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. + + Please leave all files intact if you redistrubte this software. + +How to use: + Add all the files to your Irrlicht project, you could compile it into a DLL if you wanted too, but for now just add all the files to your project. + Then inside your complier add the directory that you have the IrrLib files and use #include "IrrLib.h" to refrence it, and you are good to go! test \ No newline at end of file diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Unstable Version/1.2.8/CHANGES --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Unstable Version/1.2.8/CHANGES Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,53 @@ +Version 1.2 ++ Added a Irr3DLib class that will control all 3D objects ++ Also Added a Irr2D class that works on the same concept. ++ IrrSphere is now owned by Irr3DLib ++ Updated the examples using the latest code +Version 1.2.2 ++ Added IrrEventReciever to handle all input + - Still under work ++ Fixed some misc coding bugs ++ Added template class ++ Added sprite class ++ Added GUI class +Version 1.2.3 ++ IrrEventReciver now works as advertised ++ Baseclass is now being used + + A couple somewhat-useful functions + + int_to_string + + stringw_to_stdstring + + stdstring_to_stringw ++ GUI elements + + Static text is working ++ Under construction for a data type class +Version 1.2.4 ++ Implmented color codes accessiable through the class + + IrrLib.Color.RED (ect) +Version 1.2.5 ++ Implmented mouse events + + IrrLib.IrrEvent.getMouseX(); + + IrrLib.IrrEvent.getMouseY(); ++ Using vectors instead of static arrays + + Side note: Was going to use dynamic arrays, but C++ has vectors which are 10x better. ++ Added a default exit for when you hit esc + + Use IrrLib.IrrEvent.SetEscExit(false) to turn that off for your software + + Use IrrLib.IrrEvent.SetEscExit(true) to turn it back on ++ Every stable version will now include a windows DLL. + + Possible Linux .so file in the future. +Version 1.2.6 ++ Added a IrrEvent for buttons + + IrrLib.IrrEvent.checkButtonState(); + + See example for use ++ Added an AddButton function + + IrrLib.GUI.AddButton(..); + + See example for use ++ Problems with making the DLL + + reasearching +Version 1.2.7 ++ Fixed DLL Problem ++ Added an enum example to example 1 ++ Added more examples ++ Added example 9 ++ Added left click handling (see example 9) ++ Added AddLines function to Irr2D + + DrawLines function in Irr2D will draw the lines you add \ No newline at end of file diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Unstable Version/1.2.8/CREDITS --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Unstable Version/1.2.8/CREDITS Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,7 @@ +IrrLib +Created by + Nathan Adams + Denzel Morris + +From #irrlicht + Acid \ No newline at end of file diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Unstable Version/1.2.8/Irr2D.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Unstable Version/1.2.8/Irr2D.cpp Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,82 @@ +/* + Irrlicht Library Wrapper + Created by: + Nathan Adams + Denzel Morris + Copyright (C) 2007 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ + +#include +//#include "IrrLib.h" +//#include "IrrSphere.h" //You probably aren't going to be using 3D objects in a 2D environment! +#include +#include + +#include "Irr2D.h" +#include "IrrSprite.h" + +using namespace irr; +using namespace core; +using namespace scene; +using namespace video; +using namespace io; +using namespace gui; + +using namespace std; + +Irr2D::Irr2D(){ + this->numTextures = 0; + this->numLines = 0; + //NA Should we set textures to new +} + +Irr2D::~Irr2D(){ + /*for(int i = 0; i < numTextures; ++i) + delete this->textures[i]; + + delete this->textures;*/ + //No more dynamic memory business yay! NA +} + +void Irr2D::SetSmgr(irr::scene::ISceneManager* smgr){ + this->smgr = smgr; + Sprite.SetSmgr(smgr); +} + +void Irr2D::SetDriver(irr::video::IVideoDriver* driver){ + this->driver = driver; + Sprite.SetDriver(driver); +} + +void Irr2D::LoadTexturemap(std::string file){ + this->texturemap = driver->getTexture(file.c_str()); +} + +int Irr2D::LoadTexture(std::string file){ + //this->textures[this->numTextures] = driver->getTexture(file.c_str()); + textures.push_back(driver->getTexture(file.c_str())); + this->numTextures++; + return numTextures--; +} + +void Irr2D::DrawLine(irr::core::position2d& start, irr::core::position2d& end, irr::video::SColor& color) +{ + this->driver->draw2DLine(start, end, color); +} + +void Irr2D::AddLines(irr::core::position2d& start, irr::core::position2d& end, irr::video::SColor& color) +{ + this->start.push_back(start); + this->end.push_back(end); + this->color.push_back(color); + this->numLines++; +} + +void Irr2D::DrawLines() +{ + for(int i = 0; i < numLines; ++i) + this->driver->draw2DLine(this->start[i], this->end[i], this->color[i]); +} \ No newline at end of file diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Unstable Version/1.2.8/Irr2D.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Unstable Version/1.2.8/Irr2D.h Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,55 @@ +/* + Irrlicht Library Wrapper + Created by: + Nathan Adams + Denzel Morris + Copyright (C) 2007 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ + +#ifndef IRR2D_H +#define IRR2D_H +/* We should include some basic functions */ +#include +/* include strings */ +#include +#include + +/* We have to include Irrlichts libs */ +#include + +//#include "IrrLib.h" +#include "IrrSprite.h" + +class Irr2D { + private: + irr::scene::ISceneManager* smgr; + irr::video::IVideoDriver* driver; + irr::video::ITexture* texturemap; + int numTextures; + //irr::video::ITexture* textures[10]; + std::vector textures; + std::vector > start; + std::vector > end; + std::vector color; + int numLines; + public: + //Irr2D::Irr2D(); + IrrSprite Sprite; + Irr2D::Irr2D(); + Irr2D::~Irr2D(); + void Irr2D::SetDriver(irr::video::IVideoDriver* driver); + void Irr2D::SetSmgr(irr::scene::ISceneManager* smgr); + void Irr2D::LoadTexturemap(std::string file); + int Irr2D::LoadTexture(std::string file); + void Irr2D::DrawImage(int texture, const irr::core::position2d & destPos); + void Irr2D::DrawImage(const irr::core::position2d & destPos, const irr::core::rect & sourceRect, const irr::core::rect * clipRect, irr::video::SColor color, bool useAlphaChannelOfTexture); + void Irr2D::DrawLine(irr::core::position2d& start, irr::core::position2d& end, irr::video::SColor& color); + void Irr2D::DrawLines(); + void Irr2D::AddLines(irr::core::position2d& start, irr::core::position2d& end, irr::video::SColor& color); +}; + +#endif + diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Unstable Version/1.2.8/Irr3D.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Unstable Version/1.2.8/Irr3D.cpp Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,52 @@ +/* + Irrlicht Library Wrapper + Created by: + Nathan Adams + Denzel Morris + Copyright (C) 2007 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ + +#include +#include + +//#include "IrrLib.h" +//Libraries we create go here +#include "IrrSphere.h" +//#include "IrrColor.h" +#include "Irr3D.h" +#include +//#include "Irr2D.h" + +using namespace irr; +using namespace core; +using namespace scene; +using namespace video; +using namespace io; +using namespace gui; + +using namespace std; + +void Irr3D::SetDriver(irr::video::IVideoDriver* driver) //so much for copying and pasting code from the header file +{ + this->driver = driver; + Sphere.SetDriver(driver); +} + +void Irr3D::SetSmgr(irr::scene::ISceneManager* smgr) +{ + this->smgr = smgr; + Sphere.SetSmgr(smgr); +} + +Irr3D::Irr3D() +{ + //do stuff here! +} + +Irr3D::~Irr3D() +{ + //delete stuff here! +} diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Unstable Version/1.2.8/Irr3D.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Unstable Version/1.2.8/Irr3D.h Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,44 @@ +/* + Irrlicht Library Wrapper + Created by: + Nathan Adams + Denzel Morris + Copyright (C) 2007 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ + +#ifndef IRR3D_H +#define IRR3D_H + +/* We should include some basic functions */ +#include +/* include strings */ +#include + +/* We have to include Irrlichts libs */ +#include + +#include "IrrSphere.h" +//#include "IrrColor.h" +//#include "Irr3D.h" +//#include "Irr2D.h" This is a 3D class not 2D +/* However due to Irrlciht's nature mixing 2D with 3D is possible */ + +//Start class +class Irr3D { + + private: + + irr::video::IVideoDriver* driver; + irr::scene::ISceneManager* smgr; + public: + IrrSphere Sphere; + Irr3D::Irr3D(); + Irr3D::~Irr3D(); + void Irr3D::SetDriver(irr::video::IVideoDriver* driver); + void Irr3D::SetSmgr(irr::scene::ISceneManager* smgr); +}; + +#endif diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Unstable Version/1.2.8/IrrColor.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Unstable Version/1.2.8/IrrColor.cpp Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,102 @@ +/* + Irrlicht Library Wrapper + Created by: + Nathan Adams + Denzel Morris + Copyright (C) 2007 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ + +#include +#include +#include + +//#include "IrrLib.h" +#include "IrrColor.h" + +using namespace irr; +using namespace core; +using namespace scene; +using namespace video; +using namespace io; +using namespace gui; + +using namespace std; + +void IrrColor::Init(){ + /*SColor * temp; + temp = new SColor(alpha, 255, 0, 0); + this->RED = temp; + delete temp;*/ + this->RED = SColor(alpha, 255, 0, 0); + this->ORANGE = SColor(alpha, 255, 165, 0); + this->YELLOW = SColor(alpha, 255, 255, 0); + this->GREEN = SColor(alpha, 0, 255, 0); + this->BLUE = SColor(alpha, 0, 0, 255); + this->DARK_GREEN = SColor(alpha, 0, 100, 0); + this->PINK = SColor(alpha, 255, 192, 203); + this->GREY = SColor(alpha, 190, 190, 190); +} + +IrrColor::~IrrColor(){ + //delete this->RED; +} + +IrrColor::IrrColor(){ + this->alpha = 255; + Init(); +} + +IrrColor::IrrColor(irr::u32 alpha){ + this->alpha = alpha; + Init(); +} + +int IrrColor::getAlpha(){ + return this->alpha; +} + +void IrrColor::setAlpha(int alpha){ + this->alpha = alpha; +} + +SColor IrrColor::returnColor(std::string color){ + int nColor = -1; + if (color == "red") + nColor = 1; + else if (color == "green") + nColor = 2; + else if (color == "blue") + nColor = 3; + else if (color == "dark green") + nColor = 4; + else if (color == "pink") + nColor = 5; + else if (color == "grey") + nColor = 6; + switch (nColor){ + case 1: + return SColor(255, 255, 0, 0); + break; + case 2: + return SColor(255, 0, 255, 0); + break; + case 3: + return SColor(255, 0, 0, 255); + break; + case 4: + return SColor(255, 0, 50, 0); + break; + case 5: + return SColor(255, 255, 10, 255); + break; + case 6: + return SColor(255,200,200,200); + break; + default: + return SColor(255,200,200,200); + break; + }// TODO: Make this function modular +} diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Unstable Version/1.2.8/IrrColor.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Unstable Version/1.2.8/IrrColor.h Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,51 @@ +/* + Irrlicht Library Wrapper + Created by: + Nathan Adams + Denzel Morris + Copyright (C) 2007 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ + +#ifndef IRRCOLOR_H +#define IRRCOLOR_H + +#include +#include +#include "irrlicht.h" +//#include "IrrLib.h" + +class IrrColor { + private: + irr::u32 alpha; + void Init(); + //who knows? + public: + //irr::video::SColor(alpha, 255, 0, 0); + irr::video::SColor RED; + irr::video::SColor ORANGE; + irr::video::SColor YELLOW; + irr::video::SColor GREEN; + irr::video::SColor BLUE; + irr::video::SColor DARK_GREEN; + irr::video::SColor PINK; + irr::video::SColor GREY; + /*const ORANGE = irr::video::SColor(alpha, 255, 165, 0); + const YELLOW = irr::video::SColor(alpha, 255, 255, 0); + const GREEN = irr::video::SColor(alpha, 0, 255, 0); + const BLUE = irr::video::SColor(alpha, 0, 0, 255); + const DARK_GREEN = irr::video::SColor(alpha, 0, 100, 0); + const PINK = irr::video::SColor(alpha, 255, 192, 203); + const GREY = irr::video::Scolor(alpha, 190, 190, 190);*/ + //void IrrColor::test(); + IrrColor(); + IrrColor(irr::u32 alpha); + ~IrrColor(); + int getAlpha(); + void setAlpha(int alpha); + irr::video::SColor IrrColor::returnColor(std::string color); +}; + +#endif diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Unstable Version/1.2.8/IrrEventReciever.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Unstable Version/1.2.8/IrrEventReciever.cpp Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,142 @@ +/* + Irrlicht Library Wrapper + Created by: + Nathan Adams + Denzel Morris + Copyright (C) 2007 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ + +#include "IrrEventReciever.h" +//#include "IrrLib.h" +#include +#include + +using namespace irr; +using namespace core; +using namespace scene; +using namespace video; +using namespace io; +using namespace gui; + +using namespace std; + +/*void IrrEventReciever::setIrrLib(IrrLib& IrrLib) +{ + this.callingIrrLib = IrrLib; +}*/ + +IrrEventReciever::IrrEventReciever() +{ + this->escexit = true; + this->mouse.x = 0; + this->mouse.y = 0; +} + +bool IrrEventReciever::OnEvent(SEvent event) +{ + // A button was clicked + if (event.EventType == irr::EET_GUI_EVENT) + { + switch(event.GUIEvent.EventType){ + case EGET_BUTTON_CLICKED: + s32 id = event.GUIEvent.Caller->getID(); + //cout << id << endl; + buttonStates.push_back(id); + break; + default: + break; + } + } + /*if (event.EventType == irr::EGET_SCROLL_BAR_CHANGED) + { + + }*/ + if (event.EventType == irr::EET_KEY_INPUT_EVENT) { + if (!event.KeyInput.PressedDown){ + this->keyStates[event.KeyInput.Key] = false; + //cout << "Key was not hit " << this->keyStates[event.KeyInput.Key] << endl; + } + else{ + if(event.KeyInput.Key == KEY_ESCAPE && escexit) + this->device->closeDevice(); + this->keyStates[event.KeyInput.Key] = true; + //cout << "Key was hit: " << event.KeyInput.Key << " " << this->keyStates[event.KeyInput.Key] << endl; + } + } + if (event.EventType == EET_MOUSE_INPUT_EVENT){ + if (event.MouseInput.Event == EMIE_MOUSE_MOVED){ + this->mouse.x = event.MouseInput.X; + this->mouse.y = event.MouseInput.Y; + } + if (event.MouseInput.Event == EMIE_LMOUSE_PRESSED_DOWN) + this->mouseStates[0] = true; + if (event.MouseInput.Event == EMIE_LMOUSE_LEFT_UP) + this->mouseStates[0] = false; + } + return false; +} + +void IrrEventReciever::SetEscExit(bool onoff) +{ + this->escexit = onoff; +} + +int IrrEventReciever::getMouseX() +{ + return this->mouse.x; +} + +int IrrEventReciever::getMouseY() +{ + return this->mouse.y; +} + +int IrrEventReciever::getButtonState() +{ + if(!this->buttonStates.empty()){ + int id; + id = buttonStates.back(); + this->buttonStates.pop_back(); + return id; + } + else + return -1; +} + +int IrrEventReciever::getRevButtonState() +{ + if(!this->buttonStates.empty()){ + int id = buttonStates.front(); + this->buttonStates.erase(buttonStates.begin()); + return id; + } + else + return -1; +} + +void IrrEventReciever::clearButtonState() +{ + this->buttonStates.clear(); +} + +int IrrEventReciever::checkButtonState() +{ + if(!this->buttonStates.empty()) + return this->buttonStates.back(); + else + return -1; +} + +void IrrEventReciever::delLastButtonStat() +{ + if(!this->buttonStates.empty()) + this->buttonStates.pop_back(); +} + +bool IrrEventReciever::isButtonStateEmpty() +{ + return this->buttonStates.empty(); +} diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Unstable Version/1.2.8/IrrEventReciever.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Unstable Version/1.2.8/IrrEventReciever.h Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,49 @@ +/* + Irrlicht Library Wrapper + Created by: + Nathan Adams + Denzel Morris + Copyright (C) 2007 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ + +#ifndef IRREVENTRECIEVER_H +#define IRREVENTRECIEVER_H + +//#include "IrrLib.h" +#include +#include +#include "IrrLibBase.h" + +struct _mouse { + int x; + int y; +}; + +class IrrEventReciever : public irr::IEventReceiver, public IrrLibBase +{ + private: + //IrrLib callingIrrLib; + _mouse mouse; + bool escexit; + std::vector buttonStates; + public: + bool mouseStates[1]; + IrrEventReciever(); + int getMouseX(); + int getMouseY(); + bool keyStates[irr::KEY_KEY_CODES_COUNT]; + //void setIrrLib(IrrLib& IrrLib) + virtual bool OnEvent(irr::SEvent event); + void SetEscExit(bool onoff); + int getButtonState(); + int getRevButtonState(); + void clearButtonState(); + int checkButtonState(); + void delLastButtonStat(); + bool isButtonStateEmpty(); //is there still stuff in the vector to be done? NA +}; + +#endif diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Unstable Version/1.2.8/IrrLib.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Unstable Version/1.2.8/IrrLib.cpp Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,280 @@ +/* + Irrlicht Library Wrapper + Created by: + Nathan Adams + Denzel Morris + Copyright (C) 2007 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ + +#include +#include +#include +#include +#include + +#include "IrrLib.h" +//Libraries we create go here +//#include "IrrSphere.h" +#include "IrrColor.h" +//#include "Irr2D.h" + +using namespace irr; +using namespace core; +using namespace scene; +using namespace video; +using namespace io; +using namespace gui; + +using namespace std; + +//TODO: Create own class for handling inputs! + + +/*IrrLib::IrrLib(MastEventReceiver & receiver){ + this->device = createDevice(EDT_SOFTWARE, dimension2d(640, 480), 16, false, false, false, &receiver); + if (this->device == 0) + exit(1); + IrrLib::Init(); +}*/ + +IrrLib::IrrLib(){ + this->device = createDevice(EDT_SOFTWARE, dimension2d(640, 480), 16, false, false, false, &this->IrrEvent); + if (this->device == 0) + exit(1); + IrrLib::Init(); +} + +IrrLib::IrrLib(video::E_DRIVER_TYPE drivertype, core::dimension2d & res, u32 bits, bool fullscreen, bool stencilbuffer, bool vsync){ + //MyEventReceiver receiver; + this->device = createDevice(drivertype, res, bits, fullscreen, stencilbuffer, vsync, &this->IrrEvent); + if (this->device == 0) + exit(1); + IrrLib::Init(); +} + +IrrLib::IrrLib(int nDrivertype, int width, int height, int bits, bool fullscreen, bool stencilbuffer, bool vsync){ + //MyEventReceiver receiver; + video::E_DRIVER_TYPE drivertype; + switch (nDrivertype){ + case 0: //TODO: finish this switch case + drivertype = EDT_NULL; + break; + case 1: + drivertype = EDT_SOFTWARE; + break; + case 2: + drivertype = EDT_BURNINGSVIDEO; + break; + case 3: + drivertype = EDT_OPENGL; + break; + case 4: + drivertype = EDT_DIRECT3D8; + //*Note: It seems as Microsoft has stoped supporting DX 8.1, so you can not compile it into Irrlicht engine anymore + //TODO: Find how to detect if DX is complied into Irrlicht + //TODO: Find how to detecht for linux + break; + case 5: + drivertype = EDT_DIRECT3D9; + break; + default: + drivertype = EDT_SOFTWARE; + break; + } + this->device = createDevice(drivertype, dimension2d(width, height), bits, fullscreen, stencilbuffer, vsync, &this->IrrEvent); + if (this->device == 0) + exit(1); + IrrLib::Init(); +} + +IrrLib::~IrrLib (){ //Our moms wont clean up after us! + //Although I'm sure Irrlicht does this for us already, its always a good idea to check! + /*if (this->device != NULL) + delete this->device; + if (this->driver != NULL) + delete this->driver; + if (this->smgr != NULL) + delete this->smgr; + if (this->mesh != NULL) + delete this->mesh; + if (this->node != NULL) + delete this->node;*/ //it seems Irrlicht picks up after us... + //however we created newNodes, now we need to delete it! +} + +void IrrLib::Init(){ + //this->numNodes = 0; + //this->nodeNew = new ISceneNode[10]; + //this->env->addStaticText(L"Transparent Control:", rect(20,30,300,80), true); + this->env = this->device->getGUIEnvironment(); + this->driver = this->device->getVideoDriver(); + this->smgr = this->device->getSceneManager(); + Irr3DLib.SetSmgr(this->smgr); + Irr3DLib.SetDriver(this->driver); + Irr2DLib.SetSmgr(this->smgr); + Irr2DLib.SetDriver(this->driver); + GUI.SetEnv(this->env); + IrrEvent.SetDevice(this->device); + this->timer = this->device->getTimer(); + tick = this->timer->getRealTime(); +} + +void IrrLib::ReadArchive(std::string file){ + this->device->getFileSystem()->addZipFileArchive(file.c_str()); +} + +void IrrLib::LoadQ3Level(std::string q3level){ + this->mesh = this->smgr->getMesh(q3level.c_str()); + this->node = 0; + if (this->mesh) + this->node = this->smgr->addOctTreeSceneNode(this->mesh->getMesh(0), 0, -1, 128); +} + +void IrrLib::MapPos(int x, int y, int z){ + if (this->node) + this->node->setPosition(core::vector3df(x, y, z)); +} + +void IrrLib::MapPos(){ + if (this->node) + this->node->setPosition(core::vector3df(0, 0, 0)); +} + +void IrrLib::AddFPSCam(){ + this->cam = this->smgr->addCameraSceneNodeFPS(); +} + +void IrrLib::AddFPSCam(f32 x, f32 y, f32 z) +{ + this->cam = this->smgr->addCameraSceneNodeFPS(); + this->cam->setPosition(irr::core::vector3df(x, y, z)); +} + +void IrrLib::VisibleCursor(bool tf){ + if (tf == false) + this->device->getCursorControl()->setVisible(false); + else + this->device->getCursorControl()->setVisible(true); +} + +int IrrLib::GetFPSCount(){ + return this->driver->getFPS(); +} + +bool IrrLib::DeviceIsRunning(){ + return this->device->run(); +} + +bool IrrLib::IsActiveWindow(){ + return this->device->isWindowActive(); +} + +void IrrLib::BeginScene(){ + this->driver->beginScene(true, true, video::SColor(0,200,200,200)); +} + +void IrrLib::BeginScene(irr::video::SColor color){ + this->driver->beginScene(true, true, color); +} + +void IrrLib::BeginScene(bool usebackBuffer, bool usezBuffer, irr::video::SColor color){ + this->driver->beginScene(usebackBuffer, usezBuffer, color); +} + +void IrrLib::DrawAll(){ + //position2d start(50, 50); + //position2d end(100,100); + // SColor whitecolor(255,255,255,255); +//driver->draw2DLine(start, end, whitecolor); + this->smgr->drawAll(); + this->env->drawAll(); + //this->device->getGUIEnvironment()->drawAll(); + } + +void IrrLib::EndScene(){ + this->driver->endScene(); +} + +void IrrLib::SetWindowCaption(stringw str){ + this->device->setWindowCaption(str.c_str()); +} + +irr::core::stringw IrrLib::GetDriverName(){ + return this->driver->getName(); +} + +void IrrLib::EndIrrlicht(){ + if(this->device != NULL){ + this->device->drop(); + this->device = NULL; + } +} + +void IrrLib::KeyPress(char key){ + this->key = key; +} + +char IrrLib::KeyPressed(){ + return key; +} + +irr::f32 IrrLib::getX(){ + return this->smgr->getActiveCamera()->getPosition().X; +} + +irr::f32 IrrLib::getY(){ + return this->smgr->getActiveCamera()->getPosition().Y; +} + +irr::f32 IrrLib::getZ(){ + return this->smgr->getActiveCamera()->getPosition().Z; +} + +bool IrrLib::CheckGameLoop(){ + u32 now; + now = this->timer->getRealTime(); + if ((now - this->tick) >= 30){ + //this->tick == time (NULL); + return true; + } else { + return false; + } +} + +bool IrrLib::CheckGameLoop(u32 ms){ + u32 now; + now = this->timer->getRealTime(); + if ((now - this->tick) >= ms){ + this->tick = now; + return true; + } else { + return false; + } +} + +void IrrLib::Exit() +{ + this->device->closeDevice(); +} + +dimension2d IrrLib::GetScreenSize() +{ + return this->driver->getScreenSize(); + /*pixels returnres; + returnres.width = screenres.Width; + returnres.height = screenres.Height; + return returnres;*/ + +} + +//template std::string IrrLib::to_string (T t) +/*std::string IrrLib::int_to_string (int t) +{ + std::stringstream ss; + ss << t; + return ss.str(); +}*/ +// This is in the base class now, every class that decends from that class has this ability. diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Unstable Version/1.2.8/IrrLib.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Unstable Version/1.2.8/IrrLib.h Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,119 @@ +/* + Irrlicht Library Wrapper + Created by: + Nathan Adams + Denzel Morris + Copyright (C) 2007 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ + +#ifndef IRRLIB_H +#define IRRLIB_H + +/* We should include some basic functions */ +#include +/* include strings */ +#include +#include +#include + +/* We have to include Irrlichts libs */ + + +#include "Irr3D.h" +#include "IrrColor.h" +#include "IrrLibGUI.h" +#include "IrrEventReciever.h" +#include "Irr2D.h" +#include "IrrLibBase.h" + +//Start class +class IrrLib: public IrrLibBase { + + private: + /* Create an Irrlicht device as private because the class should handle + All irrlicht interaction */ + irr::IrrlichtDevice *device; + // Tells Irrlicht what driver to use + //video::E_DRIVER_TYPE driverType; + + /* + Get a pointer to the video driver and the SceneManager so that + we do not always have to write device->getVideoDriver() and + device->getSceneManager(). + */ + irr::video::IVideoDriver* driver; + irr::scene::ISceneManager* smgr; + irr::gui::IGUIEnvironment* env; + + /* + Get a pointer to the 'mesh' aka the level. + Note: This is for Quake3 levels, ie bsp maps. + */ + irr::scene::IAnimatedMesh* mesh; + irr::scene::ISceneNode* node; + irr::scene::ISceneNode * tempNode; //use this to store nodeNew's data so we can resize it + irr::scene::ICameraSceneNode * cam; + char key; + + + void IrrLib::Init(); + /*friend class IrrColor; + friend class Irr2DLib; + friend class Sphere;*/ + friend class IrrEventReciever; + irr::u32 tick; + irr::ITimer* timer; + public: + //IrrSphere Sphere; //This has to be public to be able to access the Sphere class + /* IrrSphere is now in Irr3D class */ + //Prehaps put this into a IrrLib3D class? + Irr3D Irr3DLib; + IrrColor Color; //Color class...not much of a class but lets keep it OO + Irr2D Irr2DLib; //1/2 variable to be labeled like this due to variables not able to begin with a number + IrrLibGUI GUI; + IrrEventReciever IrrEvent; + IrrLib::IrrLib(); + //IrrLib::IrrLib(MastEventReceiver & receiver); + IrrLib::IrrLib(irr::video::E_DRIVER_TYPE drivertype, irr::core::dimension2d & res, irr::u32 bits, bool fullscreen, bool stencilbuffer, bool vsync); + IrrLib::IrrLib(int drivertype, int width, int height, int bits, bool fullscreen, bool stencilbuffer, bool vsync); + IrrLib::~IrrLib(); //Our moms wont clean up after us! + void IrrLib::ReadArchive(std::string file); + void IrrLib::LoadQ3Level(std::string q3level); + void IrrLib::MapPos(int x, int y, int z); //I think this moves the actual camera? + void IrrLib::MapPos(); + void IrrLib::AddFPSCam(); + void IrrLib::AddFPSCam(irr::f32 x, irr::f32 y, irr::f32 z); + void IrrLib::VisibleCursor(bool tf); + int IrrLib::GetFPSCount(); + bool IrrLib::DeviceIsRunning(); + bool IrrLib::IsActiveWindow(); + void IrrLib::BeginScene(); + void IrrLib::BeginScene(irr::video::SColor color); + //void IrrLib::BeginScene(irr::video::SColor * color); + void IrrLib::BeginScene(bool usebackBuffer, bool usezBuffer, irr::video::SColor color); + //TODO: Add one more for human readable colors and hex colors! + void IrrLib::DrawAll(); + void IrrLib::EndScene(); + void IrrLib::SetWindowCaption(irr::core::stringw str); + irr::core::stringw IrrLib::GetDriverName(); + //TODO: Make function to turn stringw to string and visa versa + void IrrLib::EndIrrlicht(); //Renamed from KillIrrlicht to EndIrrlicht + //TODO: Add logging + void IrrLib::KeyPress(char key); + char IrrLib::KeyPressed(); + irr::f32 getX(); + irr::f32 getY(); + irr::f32 getZ(); + bool CheckGameLoop(); + bool CheckGameLoop(irr::u32 ms); + void Exit(); + irr::core::dimension2d GetScreenSize(); + //void EndGameLoop(); + //template std::string to_string (T t); + +}; + +#endif diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Unstable Version/1.2.8/IrrLibBase.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Unstable Version/1.2.8/IrrLibBase.cpp Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,64 @@ +/* + Irrlicht Library Wrapper + Created by: + Nathan Adams + Denzel Morris + Copyright (C) 2007 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ + +#include +#include +#include "IrrLibBase.h" +#include +#include + +using namespace irr; +using namespace core; +using namespace scene; +using namespace video; +using namespace io; +using namespace gui; + +using namespace std; + +void IrrLibBase::SetDriver(IVideoDriver* driver) //can be overloaded +{ + this->driver = driver; +} + +void IrrLibBase::SetSmgr(ISceneManager* smgr) +{ + this->smgr = smgr; +} + +std::string IrrLibBase::int_to_string (int t) +{ + std::stringstream ss; + ss << t; + return ss.str(); +} + +std::string IrrLibBase::stringw_to_stdstring(irr::core::stringw sw) +{ + std::stringstream ss; + ss << sw.c_str(); + return ss.str(); +} +irr::core::stringw IrrLibBase::stdstring_to_stringw(std::string ss) +{ + stringw tmpw(ss.c_str()); + return tmpw; +} + +void IrrLibBase::SetDevice(irr::IrrlichtDevice *device) +{ + this->device = device; +} + +void IrrLibBase::init() +{ + +} diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Unstable Version/1.2.8/IrrLibBase.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Unstable Version/1.2.8/IrrLibBase.h Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,44 @@ +/* + Irrlicht Library Wrapper + Created by: + Nathan Adams + Denzel Morris + Copyright (C) 2007 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ + +#ifndef IRRLIBBASE_H +#define IRRLIBBASE_H + +/* We should include some basic functions */ +#include +/* include strings */ +#include + +/* We have to include Irrlichts libs */ +#include + +class IrrLibBase { + + protected: + irr::video::IVideoDriver* driver; + irr::scene::ISceneManager* smgr; + irr::IrrlichtDevice *device; + public: + struct pixels { + int width; + int height; + }; //possible future use in 2D objects when specifying the properties of an object draw + void IrrLibBase::SetDriver(irr::video::IVideoDriver* driver); + void IrrLibBase::SetSmgr(irr::scene::ISceneManager* smgr); + void SetDevice(irr::IrrlichtDevice *device); + std::string int_to_string (int t); + std::string stringw_to_stdstring(irr::core::stringw sw); + irr::core::stringw stdstring_to_stringw(std::string ss); + void init(); + +}; + +#endif diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Unstable Version/1.2.8/IrrLibGUI.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Unstable Version/1.2.8/IrrLibGUI.cpp Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,186 @@ +/* + Irrlicht Library Wrapper + Created by: + Nathan Adams + Denzel Morris + Copyright (C) 2007 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ + +#include +#include +#include +#include + +#include "IrrLibGUI.h" + +using namespace irr; +using namespace core; +using namespace scene; +using namespace video; +using namespace io; +using namespace gui; + +using namespace std; + +IrrLibGUI::IrrLibGUI() +{ + //NA does it need to do anything at init? + this->nStaticText = 0; + this->nButton = 0; + this->nButtonid = 100; + this->nListBoxid = 200; + this->nListBox = 0; + //this->arrStaticText = new IGUIStaticText[10]; + //this->env = this->device->getGUIEnvironment(); //NA yes we do! +} + +IrrLibGUI::~IrrLibGUI() +{ + //NA Do we have to delete anything? +} + +void IrrLibGUI::SetEnv(IGUIEnvironment* env) +{ + this->env = env; + //env->addButton(rect(10,210,110,210 + 32), 0, 109, L"Quit", L"Exits Program"); +} + +int IrrLibGUI::addButton(const core::rect< s32 > & rectangle, IGUIElement *parent, s32 id, const wchar_t * text, const wchar_t * tooltiptext) +{ + arrButton.push_back(this->env->addButton(rectangle, parent, id, text, tooltiptext)); + ++nButton; + ++nButtonid; + return nButtonid - 1; +} + +int IrrLibGUI::addListBox(const irr::core::rect< irr::s32 > &rectangle, IGUIElement * parent) +{ + arrListBox.push_back(this->env->addListBox(rectangle, parent, nListBoxid)); + ++nListBox; + ++nListBoxid; + return nListBox - 1; +} + +int IrrLibGUI::AddListBox(int x1, int y1, int x2, int y2, IGUIElement * parent) +{ + return addListBox(rect(x1, y1, x2, y2), parent); +} + +int IrrLibGUI::AddListBox(const irr::core::rect< irr::s32 > &rectangle, IGUIElement * parent) +{ + return addListBox(rectangle, parent); +} + +void IrrLibGUI::AddStringToListBox(int nLbox, std::string text) +{ + //this->arrListBox[nLbox]->addItem(stdstring_to_stringw(text).c_str()); + this->arrListBox[0]->addItem(L"TEST"); +} + +void IrrLibGUI::Clear() +{ + this->env->clear(); +} + +void IrrLibGUI::DrawAll() +{ + this->env->drawAll(); +} + +int IrrLibGUI::AddToStaticArray(irr::gui::IGUIStaticText * addme) +{ + //arrStaticText[nStaticText] = addme; + arrStaticText.push_back(addme); + this->nStaticText++; + this->nButtonid++; + return this->nStaticText; +} + +void IrrLibGUI::AddStaticText() +{ + //rect(20,30,300,80), + this->env->addStaticText(L"Powered by IrrLib.", rect(20,30,300,80), true); +} + +int IrrLibGUI::AddStaticText(std::string message) +{ + irr::gui::IGUIStaticText * addthis; + stringw tmpw(message.c_str()); + addthis = this->env->addStaticText(tmpw.c_str(), rect(20,30,300,80), true); + return AddToStaticArray(addthis); +} + +int IrrLibGUI::AddStaticText(std::string message, int x1, int y1, int x2, int y2) +{ + irr::gui::IGUIStaticText * addthis; + stringw tmpw(message.c_str()); + addthis = this->env->addStaticText(tmpw.c_str(), rect(x1,y1,x2,y2), true); + return AddToStaticArray(addthis); +} + +int IrrLibGUI::AddStaticText(std::string message, int x1, int y1, int x2, int y2, bool border, bool wordwrap) +{ + irr::gui::IGUIStaticText * addthis; + stringw tmpw(message.c_str()); + addthis = this->env->addStaticText(tmpw.c_str(), rect(x1,y1,x2,y2), border, wordwrap); + return AddToStaticArray(addthis); +} + +int IrrLibGUI::AddStaticText(std::string message, int x1, int y1, int x2, int y2, bool border, bool wordwrap, int id, bool fillbackground) +{ + irr::gui::IGUIStaticText * addthis; + stringw tmpw(message.c_str()); + addthis = this->env->addStaticText(tmpw.c_str(), rect(x1,y1,x2,y2), border, wordwrap, 0, id, fillbackground); + return AddToStaticArray(addthis); +} + +int IrrLibGUI::AddStaticText(std::string message, const core::rect< s32 > &rectangle) +{ + irr::gui::IGUIStaticText * addthis; + stringw tmpw(message.c_str()); + addthis = this->env->addStaticText(tmpw.c_str(), rectangle); + return AddToStaticArray(addthis); +} + +int IrrLibGUI::AddStaticText(std::string message, const core::rect< s32 > &rectangle, bool border, bool wordwrap) +{ + irr::gui::IGUIStaticText * addthis; + stringw tmpw(message.c_str()); + addthis = this->env->addStaticText(tmpw.c_str(), rectangle, border, wordwrap); + return AddToStaticArray(addthis); +} + +int IrrLibGUI::AddStaticText(std::string message, const core::rect< s32 > &rectangle, bool border, bool wordwrap, int id, bool fillbackground) +{ + irr::gui::IGUIStaticText * addthis; + stringw tmpw(message.c_str()); + addthis = this->env->addStaticText(tmpw.c_str(), rectangle, border, wordwrap, 0, id, fillbackground); + return AddToStaticArray(addthis); +} + +void IrrLibGUI::ChangeStaticText(int nstatictext, std::string message) +{ + stringw tmpw(message.c_str()); + this->arrStaticText[this->nStaticText-1]->setText(tmpw.c_str()); +} + +void IrrLibGUI::ChangeFont(std::string fontfile) +{ + IGUISkin* skin = this->env->getSkin(); + IGUIFont* font = this->env->getFont(fontfile.c_str()); + if (font) + skin->setFont(font); +} + +int IrrLibGUI::AddButton(std::string text, int x1, int y1, int x2, int y2, std::string tooltiptext = "") +{ + return addButton(rect(x1, y1, x2, y2), 0, nButtonid, stdstring_to_stringw(text).c_str(), stdstring_to_stringw(tooltiptext).c_str()); +} + +int IrrLibGUI::AddButton(std::string text, core::rect & rect, std::string tooltiptext = "") +{ + return addButton(rect, 0, nButtonid, stdstring_to_stringw(text).c_str(), stdstring_to_stringw(tooltiptext).c_str()); +} diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Unstable Version/1.2.8/IrrLibGUI.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Unstable Version/1.2.8/IrrLibGUI.h Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,65 @@ +/* + Irrlicht Library Wrapper + Created by: + Nathan Adams + Denzel Morris + Copyright (C) 2007 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ + +#ifndef IRRLIBGUI_H +#define IRRLIBGUI_H + +#include +#include +#include +#include "IrrLibBase.h" + +class IrrLibGUI: public IrrLibBase { + private: + irr::gui::IGUISkin* skin; + irr::gui::IGUIFont* font; + irr::gui::IGUIEnvironment* env; + //TODO: Create an array storing all messages + int nStaticText; + //irr::gui::IGUIStaticText* arrStaticText[10]; + int nButton; + int nButtonid; + int nListBox; + int nListBoxid; + std::vector arrStaticText; + std::vector arrButton; + std::vector arrListBox; + int AddToStaticArray(irr::gui::IGUIStaticText * addme); + int addButton(const irr::core::rect< irr::s32 > & rectangle, irr::gui::IGUIElement *parent = 0, irr::s32 id = 0, const wchar_t * text = 0, const wchar_t * tooltiptext = 0); //TODO: Clean this up! + int addListBox(const irr::core::rect< irr::s32 > &rectangle, irr::gui::IGUIElement * parent); + public: + IrrLibGUI(); + ~IrrLibGUI(); + void SetEnv(irr::gui::IGUIEnvironment* env); + void Clear(); + void DrawAll(); + //irr::gui::IGUIStaticText* IrrLibGUI::AddStaticText(); //NA eh a default text adder why not? + /* This is bad coding, we do not want to return an irrlicht object, we want to return a standard datatype because this class handles the GUI elements, not the user. */ + void AddStaticText(); //NA eh a default text adder why not? + int AddStaticText(std::string message); + int AddStaticText(std::string message, int x1, int y1, int x2, int y2); + int AddStaticText(std::string message, int x1, int y1, int x2, int y2, bool border, bool wordwrap); + int AddStaticText(std::string message, int x1, int y1, int x2, int y2, bool border, bool wordwrap, int id, bool fillbackground); + int AddStaticText(std::string message, const irr::core::rect< irr::s32 > &rectangle); + int AddStaticText(std::string message, const irr::core::rect< irr::s32 > &rectangle, bool border, bool wordwrap); + int AddStaticText(std::string message, const irr::core::rect< irr::s32 > &rectangle, bool border, bool wordwrap, int id, bool fillbackground); + int AddButton(std::string text, int x1, int y1, int x2, int y2, std::string tooltiptext); + int AddButton(std::string text, irr::core::rect & rect, std::string tooltiptext); //TODO: Add move functions + int AddListBox(int x1, int y1, int x2, int y2, irr::gui::IGUIElement * parent = 0); + int AddListBox(const irr::core::rect< irr::s32 > &rectangle, irr::gui::IGUIElement * parent = 0); + void AddStringToListBox(int nLbox, std::string text); + void ChangeStaticText(int nstatictext, std::string message); + void ChangeFont(std::string fontfile); + +}; + + +#endif diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Unstable Version/1.2.8/IrrSphere.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Unstable Version/1.2.8/IrrSphere.cpp Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,71 @@ +/* + Irrlicht Library Wrapper + Created by Nathan Adams + Copyright (C) 2007 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ +#include +#include "IrrLib.h" +#include "IrrSphere.h" +#include +#include + +using namespace irr; +using namespace core; +using namespace scene; +using namespace video; +using namespace io; +using namespace gui; + +using namespace std; + +void IrrSphere::SetSmgr(irr::scene::ISceneManager* smgr){ + this->smgr = smgr; +} + +void IrrSphere::SetDriver(irr::video::IVideoDriver* driver){ + this->driver = driver; +} + +int IrrSphere::CreateNewSphereNode(int x, int y, int z, std::string texture, bool light){ + //TODO: Resize after 10, and add 10 more to the mix! + //this->nodeNew[this->numNodes] = this->smgr->addSphereSceneNode(); + //this->sphereNodes[this->numNodes]->setPosition(core::vector3df(x,y,z)); + //this->sphereNodes[this->numNodes]->setMaterialTexture(0, this->driver->getTexture(texture.c_str())); + //this->sphereNodes[this->numNodes]->setMaterialFlag(video::EMF_LIGHTING, light); + nodeNew = this->smgr->addSphereSceneNode(); + nodeNew->setPosition(core::vector3df(x,y,z)); + nodeNew->setMaterialTexture(0, this->driver->getTexture(texture.c_str())); + nodeNew->setMaterialFlag(video::EMF_LIGHTING, light); + sphereNodes.push_back(nodeNew); + this->numNodes++; + return this->numNodes--; + /*this->node = this->smgr->addSphereSceneNode(); + this->node->setPosition(core::vector3df(x,y,z)); + this->node->setMaterialTexture(0, this->driver->getTexture(texture.c_str())); + this->node->setMaterialFlag(video::EMF_LIGHTING, light);*/ +} + +irr::core::vector3df IrrSphere::GetSphereVector(int sphere){ + //We are converting to vectors, under construction NA + //return this->nodeNew[sphere]->getPosition(); + return this->sphereNodes[sphere]->getPosition(); +} + +void IrrSphere::SetSphereVector(int sphere, irr::core::vector3df v){ + this->sphereNodes[sphere]->setPosition(v); +} + +IrrSphere::IrrSphere(){ + this->numNodes = 0; +} + +IrrSphere::~IrrSphere(){ + /*for(int i = 0; i < numNodes; ++i) + delete this->nodeNew[i]; + + delete this->nodeNew;*/ + //We are using vectors now, no more memory clowing business NA +} diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Unstable Version/1.2.8/IrrSphere.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Unstable Version/1.2.8/IrrSphere.h Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,46 @@ +/* + Irrlicht Library Wrapper + Created by: + Nathan Adams + Denzel Morris + Copyright (C) 2007 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ + +#ifndef IRRSPHERE_H +#define IRRSPHERE_H +/* We should include some basic functions */ +#include +/* include strings */ +#include +#include + +/* We have to include Irrlichts libs */ +#include + +//#include "IrrLib.h" + + +class IrrSphere +{ + private: + //irr::scene::ISceneNode* nodeNew[10]; + irr::scene::ISceneNode* nodeNew; + std::vector sphereNodes; + int numNodes; + irr::scene::ISceneManager* smgr; + irr::video::IVideoDriver* driver; + public: + void IrrSphere::SetDriver(irr::video::IVideoDriver* driver); + void IrrSphere::SetSmgr(irr::scene::ISceneManager* smgr); + int IrrSphere::CreateNewSphereNode(int x, int y, int z, std::string texture, bool light); //this is going to take my advanced C++ skillz! + irr::core::vector3df IrrSphere::GetSphereVector(int sphere); + void IrrSphere::SetSphereVector(int sphere, irr::core::vector3df v); + IrrSphere::IrrSphere(); + //IrrSphere::IrrSphere(IrrLib*); + IrrSphere::~IrrSphere(); +}; + +#endif diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Unstable Version/1.2.8/IrrSprite.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Unstable Version/1.2.8/IrrSprite.cpp Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,49 @@ +/* + Irrlicht Library Wrapper + Created by: + Nathan Adams + Denzel Morris + Copyright (C) 2007 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ + +#include +#include +#include + +#include "IrrLib.h" +//Libraries we create go here +//#include "IrrSphere.h" +#include "IrrColor.h" +#include "IrrSprite.h" +//#include "Irr2D.h" + +using namespace irr; +using namespace core; +using namespace scene; +using namespace video; +using namespace io; +using namespace gui; + +using namespace std; + +IrrSprite::IrrSprite() +{ + //do stuff +} + +IrrSprite::~IrrSprite() +{ + //delete stuff +} + +void IrrSprite::SetDriver(irr::video::IVideoDriver* driver) +{ + this->driver = driver; +} +void IrrSprite::SetSmgr(irr::scene::ISceneManager* smgr) +{ + this->smgr = smgr; +} diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Unstable Version/1.2.8/IrrSprite.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Unstable Version/1.2.8/IrrSprite.h Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,45 @@ +/* + Irrlicht Library Wrapper + Created by: + Nathan Adams + Denzel Morris + Copyright (C) 2007 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ + +#ifndef IRRSPRITE_H +#define IRRSPRITE_H + +/* We should include some basic functions */ +#include +/* include strings */ +#include + +/* We have to include Irrlichts libs */ +#include + +//#include "IrrSphere.h" +#include "IrrColor.h" +//#include "Irr2D.h" +//#include "IrrSprite.h" + +//Start class +class IrrSprite { + + private: + + irr::video::IVideoDriver* driver; + irr::scene::ISceneManager* smgr; + public: + IrrSprite::IrrSprite(); + IrrSprite::~IrrSprite(); + void IrrSprite::SetDriver(irr::video::IVideoDriver* driver); + void IrrSprite::SetSmgr(irr::scene::ISceneManager* smgr); + +// I forgot a semicolon here....and it wasn't compling +//Thats 1 bad thing about OOP if there is an error you don't know where the @#$@# the problem is! +}; + +#endif diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Unstable Version/1.2.8/README --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Unstable Version/1.2.8/README Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,13 @@ + Irrlicht Library Wrapper + Created by Nathan Adams + Version 1.2.7 + Copyright (C) 2007 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. + + Please leave all files intact if you redistrubte this software. + +How to use: + Add all the files to your Irrlicht project, you could compile it into a DLL if you wanted too, but for now just add all the files to your project. + Then inside your complier add the directory that you have the IrrLib files and use #include "IrrLib.h" to refrence it, and you are good to go! \ No newline at end of file diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Unstable Version/1.2.9/CHANGES --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Unstable Version/1.2.9/CHANGES Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,58 @@ +Version 1.2 ++ Added a Irr3DLib class that will control all 3D objects ++ Also Added a Irr2D class that works on the same concept. ++ IrrSphere is now owned by Irr3DLib ++ Updated the examples using the latest code +Version 1.2.2 ++ Added IrrEventReciever to handle all input + - Still under work ++ Fixed some misc coding bugs ++ Added template class ++ Added sprite class ++ Added GUI class +Version 1.2.3 ++ IrrEventReciver now works as advertised ++ Baseclass is now being used + + A couple somewhat-useful functions + + int_to_string + + stringw_to_stdstring + + stdstring_to_stringw ++ GUI elements + + Static text is working ++ Under construction for a data type class +Version 1.2.4 ++ Implmented color codes accessiable through the class + + IrrLib.Color.RED (ect) +Version 1.2.5 ++ Implmented mouse events + + IrrLib.IrrEvent.getMouseX(); + + IrrLib.IrrEvent.getMouseY(); ++ Using vectors instead of static arrays + + Side note: Was going to use dynamic arrays, but C++ has vectors which are 10x better. ++ Added a default exit for when you hit esc + + Use IrrLib.IrrEvent.SetEscExit(false) to turn that off for your software + + Use IrrLib.IrrEvent.SetEscExit(true) to turn it back on ++ Every stable version will now include a windows DLL. + + Possible Linux .so file in the future. +Version 1.2.6 ++ Added a IrrEvent for buttons + + IrrLib.IrrEvent.checkButtonState(); + + See example for use ++ Added an AddButton function + + IrrLib.GUI.AddButton(..); + + See example for use ++ Problems with making the DLL + + reasearching +Version 1.2.7 ++ Fixed DLL Problem ++ Added an enum example to example 1 ++ Added more examples ++ Added example 9 ++ Added left click handling (see example 9) ++ Added AddLines function to Irr2D + + DrawLines function in Irr2D will draw the lines you add +Version 1.2.9 ++ Added Listbox GUI object ++ Added a new datatype IrrObj + + Contains 2 ints, 1 for object id and 1 for event id ++ Added a IrrData.h file \ No newline at end of file diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Unstable Version/1.2.9/CREDITS --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Unstable Version/1.2.9/CREDITS Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,8 @@ +IrrLib +Created by + Nathan Adams + Denzel Morris + +From #irrlicht + Acid + wacom \ No newline at end of file diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Unstable Version/1.2.9/Irr2D.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Unstable Version/1.2.9/Irr2D.cpp Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,82 @@ +/* + Irrlicht Library Wrapper + Created by: + Nathan Adams + Denzel Morris + Copyright (C) 2007 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ + +#include +//#include "IrrLib.h" +//#include "IrrSphere.h" //You probably aren't going to be using 3D objects in a 2D environment! +#include +#include + +#include "Irr2D.h" +#include "IrrSprite.h" + +using namespace irr; +using namespace core; +using namespace scene; +using namespace video; +using namespace io; +using namespace gui; + +using namespace std; + +Irr2D::Irr2D(){ + this->numTextures = 0; + this->numLines = 0; + //NA Should we set textures to new +} + +Irr2D::~Irr2D(){ + /*for(int i = 0; i < numTextures; ++i) + delete this->textures[i]; + + delete this->textures;*/ + //No more dynamic memory business yay! NA +} + +void Irr2D::SetSmgr(irr::scene::ISceneManager* smgr){ + this->smgr = smgr; + Sprite.SetSmgr(smgr); +} + +void Irr2D::SetDriver(irr::video::IVideoDriver* driver){ + this->driver = driver; + Sprite.SetDriver(driver); +} + +void Irr2D::LoadTexturemap(std::string file){ + this->texturemap = driver->getTexture(file.c_str()); +} + +int Irr2D::LoadTexture(std::string file){ + //this->textures[this->numTextures] = driver->getTexture(file.c_str()); + textures.push_back(driver->getTexture(file.c_str())); + this->numTextures++; + return numTextures--; +} + +void Irr2D::DrawLine(irr::core::position2d& start, irr::core::position2d& end, irr::video::SColor& color) +{ + this->driver->draw2DLine(start, end, color); +} + +void Irr2D::AddLines(irr::core::position2d& start, irr::core::position2d& end, irr::video::SColor& color) +{ + this->start.push_back(start); + this->end.push_back(end); + this->color.push_back(color); + this->numLines++; +} + +void Irr2D::DrawLines() +{ + for(int i = 0; i < numLines; ++i) + this->driver->draw2DLine(this->start[i], this->end[i], this->color[i]); +} diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Unstable Version/1.2.9/Irr2D.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Unstable Version/1.2.9/Irr2D.h Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,55 @@ +/* + Irrlicht Library Wrapper + Created by: + Nathan Adams + Denzel Morris + Copyright (C) 2007 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ + +#ifndef IRR2D_H +#define IRR2D_H +/* We should include some basic functions */ +#include +/* include strings */ +#include +#include + +/* We have to include Irrlichts libs */ +#include + +//#include "IrrLib.h" +#include "IrrSprite.h" + +class Irr2D { + private: + irr::scene::ISceneManager* smgr; + irr::video::IVideoDriver* driver; + irr::video::ITexture* texturemap; + int numTextures; + //irr::video::ITexture* textures[10]; + std::vector textures; + std::vector > start; + std::vector > end; + std::vector color; + int numLines; + public: + //Irr2D::Irr2D(); + IrrSprite Sprite; + Irr2D::Irr2D(); + Irr2D::~Irr2D(); + void Irr2D::SetDriver(irr::video::IVideoDriver* driver); + void Irr2D::SetSmgr(irr::scene::ISceneManager* smgr); + void Irr2D::LoadTexturemap(std::string file); + int Irr2D::LoadTexture(std::string file); + void Irr2D::DrawImage(int texture, const irr::core::position2d & destPos); + void Irr2D::DrawImage(const irr::core::position2d & destPos, const irr::core::rect & sourceRect, const irr::core::rect * clipRect, irr::video::SColor color, bool useAlphaChannelOfTexture); + void Irr2D::DrawLine(irr::core::position2d& start, irr::core::position2d& end, irr::video::SColor& color); + void Irr2D::DrawLines(); + void Irr2D::AddLines(irr::core::position2d& start, irr::core::position2d& end, irr::video::SColor& color); +}; + +#endif + diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Unstable Version/1.2.9/Irr3D.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Unstable Version/1.2.9/Irr3D.cpp Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,52 @@ +/* + Irrlicht Library Wrapper + Created by: + Nathan Adams + Denzel Morris + Copyright (C) 2007 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ + +#include +#include + +//#include "IrrLib.h" +//Libraries we create go here +#include "IrrSphere.h" +//#include "IrrColor.h" +#include "Irr3D.h" +#include +//#include "Irr2D.h" + +using namespace irr; +using namespace core; +using namespace scene; +using namespace video; +using namespace io; +using namespace gui; + +using namespace std; + +void Irr3D::SetDriver(irr::video::IVideoDriver* driver) //so much for copying and pasting code from the header file +{ + this->driver = driver; + Sphere.SetDriver(driver); +} + +void Irr3D::SetSmgr(irr::scene::ISceneManager* smgr) +{ + this->smgr = smgr; + Sphere.SetSmgr(smgr); +} + +Irr3D::Irr3D() +{ + //do stuff here! +} + +Irr3D::~Irr3D() +{ + //delete stuff here! +} diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Unstable Version/1.2.9/Irr3D.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Unstable Version/1.2.9/Irr3D.h Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,44 @@ +/* + Irrlicht Library Wrapper + Created by: + Nathan Adams + Denzel Morris + Copyright (C) 2007 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ + +#ifndef IRR3D_H +#define IRR3D_H + +/* We should include some basic functions */ +#include +/* include strings */ +#include + +/* We have to include Irrlichts libs */ +#include + +#include "IrrSphere.h" +//#include "IrrColor.h" +//#include "Irr3D.h" +//#include "Irr2D.h" This is a 3D class not 2D +/* However due to Irrlciht's nature mixing 2D with 3D is possible */ + +//Start class +class Irr3D { + + private: + + irr::video::IVideoDriver* driver; + irr::scene::ISceneManager* smgr; + public: + IrrSphere Sphere; + Irr3D::Irr3D(); + Irr3D::~Irr3D(); + void Irr3D::SetDriver(irr::video::IVideoDriver* driver); + void Irr3D::SetSmgr(irr::scene::ISceneManager* smgr); +}; + +#endif diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Unstable Version/1.2.9/IrrColor.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Unstable Version/1.2.9/IrrColor.cpp Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,104 @@ +/* + Irrlicht Library Wrapper + Created by: + Nathan Adams + Denzel Morris + Copyright (C) 2007 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ + +#include +#include +#include + +//#include "IrrLib.h" +#include "IrrColor.h" + +using namespace irr; +using namespace core; +using namespace scene; +using namespace video; +using namespace io; +using namespace gui; + +using namespace std; + +void IrrColor::Init(){ + /*SColor * temp; + temp = new SColor(alpha, 255, 0, 0); + this->RED = temp; + delete temp;*/ + this->RED = SColor(alpha, 255, 0, 0); + this->ORANGE = SColor(alpha, 255, 165, 0); + this->YELLOW = SColor(alpha, 255, 255, 0); + this->GREEN = SColor(alpha, 0, 255, 0); + this->BLUE = SColor(alpha, 0, 0, 255); + this->DARK_GREEN = SColor(alpha, 0, 100, 0); + this->PINK = SColor(alpha, 255, 192, 203); + this->GREY = SColor(alpha, 190, 190, 190); + this->WHITE = SColor(alpha, 0, 0, 0); + this->BLACK = SColor(alpha, 0, 0, 0); +} + +IrrColor::~IrrColor(){ + //delete this->RED; +} + +IrrColor::IrrColor(){ + this->alpha = 255; + Init(); +} + +IrrColor::IrrColor(irr::u32 alpha){ + this->alpha = alpha; + Init(); +} + +int IrrColor::getAlpha(){ + return this->alpha; +} + +void IrrColor::setAlpha(int alpha){ + this->alpha = alpha; +} + +SColor IrrColor::returnColor(std::string color){ + int nColor = -1; + if (color == "red") + nColor = 1; + else if (color == "green") + nColor = 2; + else if (color == "blue") + nColor = 3; + else if (color == "dark green") + nColor = 4; + else if (color == "pink") + nColor = 5; + else if (color == "grey") + nColor = 6; + switch (nColor){ + case 1: + return SColor(255, 255, 0, 0); + break; + case 2: + return SColor(255, 0, 255, 0); + break; + case 3: + return SColor(255, 0, 0, 255); + break; + case 4: + return SColor(255, 0, 50, 0); + break; + case 5: + return SColor(255, 255, 10, 255); + break; + case 6: + return SColor(255,200,200,200); + break; + default: + return SColor(255,200,200,200); + break; + }// TODO: Make this function modular +} diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Unstable Version/1.2.9/IrrColor.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Unstable Version/1.2.9/IrrColor.h Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,53 @@ +/* + Irrlicht Library Wrapper + Created by: + Nathan Adams + Denzel Morris + Copyright (C) 2007 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ + +#ifndef IRRCOLOR_H +#define IRRCOLOR_H + +#include +#include +#include "irrlicht.h" +//#include "IrrLib.h" + +class IrrColor { + private: + irr::u32 alpha; + void Init(); + //who knows? + public: + //irr::video::SColor(alpha, 255, 0, 0); + irr::video::SColor RED; + irr::video::SColor ORANGE; + irr::video::SColor YELLOW; + irr::video::SColor GREEN; + irr::video::SColor BLUE; + irr::video::SColor DARK_GREEN; + irr::video::SColor PINK; + irr::video::SColor GREY; + irr::video::SColor WHITE; + irr::video::SColor BLACK; + /*const ORANGE = irr::video::SColor(alpha, 255, 165, 0); + const YELLOW = irr::video::SColor(alpha, 255, 255, 0); + const GREEN = irr::video::SColor(alpha, 0, 255, 0); + const BLUE = irr::video::SColor(alpha, 0, 0, 255); + const DARK_GREEN = irr::video::SColor(alpha, 0, 100, 0); + const PINK = irr::video::SColor(alpha, 255, 192, 203); + const GREY = irr::video::Scolor(alpha, 190, 190, 190);*/ + //void IrrColor::test(); + IrrColor(); + IrrColor(irr::u32 alpha); + ~IrrColor(); + int getAlpha(); + void setAlpha(int alpha); + irr::video::SColor IrrColor::returnColor(std::string color); +}; + +#endif diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Unstable Version/1.2.9/IrrEventReciever.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Unstable Version/1.2.9/IrrEventReciever.cpp Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,163 @@ +/* + Irrlicht Library Wrapper + Created by: + Nathan Adams + Denzel Morris + Copyright (C) 2007 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ + +#include "IrrEventReciever.h" +//#include "IrrLib.h" +#include +#include + +using namespace irr; +using namespace core; +using namespace scene; +using namespace video; +using namespace io; +using namespace gui; + +using namespace std; + +/*void IrrEventReciever::setIrrLib(IrrLib& IrrLib) +{ + this.callingIrrLib = IrrLib; +}*/ + +IrrEventReciever::IrrEventReciever() +{ + this->escexit = true; + this->mouse.x = 0; + this->mouse.y = 0; +} + +bool IrrEventReciever::OnEvent(SEvent event) +{ + // A button was clicked + if (event.EventType == irr::EET_GUI_EVENT) + { + s32 id = event.GUIEvent.Caller->getID(); + switch(event.GUIEvent.EventType){ + case EGET_BUTTON_CLICKED: + //cout << id << endl; + buttonStates.push_back(id); + break; + case EGET_LISTBOX_CHANGED: + //s32 id = event.GUIEvent.Caller->getID(); + listStates.push_back(id); + break; + case EGET_LISTBOX_SELECTED_AGAIN: + listStates.push_back(id); + break; + default: + break; + } + } + /*if (event.EventType == irr::EGET_SCROLL_BAR_CHANGED) + { + + }*/ + if (event.EventType == irr::EET_KEY_INPUT_EVENT) { + if (!event.KeyInput.PressedDown){ + this->keyStates[event.KeyInput.Key] = false; + //cout << "Key was not hit " << this->keyStates[event.KeyInput.Key] << endl; + } + else{ + if(event.KeyInput.Key == KEY_ESCAPE && escexit) + this->device->closeDevice(); + this->keyStates[event.KeyInput.Key] = true; + //cout << "Key was hit: " << event.KeyInput.Key << " " << this->keyStates[event.KeyInput.Key] << endl; + } + } + if (event.EventType == EET_MOUSE_INPUT_EVENT){ + if (event.MouseInput.Event == EMIE_MOUSE_MOVED){ + this->mouse.x = event.MouseInput.X; + this->mouse.y = event.MouseInput.Y; + } + if (event.MouseInput.Event == EMIE_LMOUSE_PRESSED_DOWN) + this->mouseStates[0] = true; + if (event.MouseInput.Event == EMIE_LMOUSE_LEFT_UP) + this->mouseStates[0] = false; + } + return false; +} + +void IrrEventReciever::SetEscExit(bool onoff) +{ + this->escexit = onoff; +} + +int IrrEventReciever::getMouseX() +{ + return this->mouse.x; +} + +int IrrEventReciever::getMouseY() +{ + return this->mouse.y; +} + +int IrrEventReciever::getButtonState() +{ + if(!this->buttonStates.empty()){ + int id; + id = buttonStates.back(); + this->buttonStates.pop_back(); + return id; + } + else + return -1; +} + +int IrrEventReciever::getRevButtonState() +{ + if(!this->buttonStates.empty()){ + int id = buttonStates.front(); + this->buttonStates.erase(buttonStates.begin()); + return id; + } + else + return -1; +} + +void IrrEventReciever::clearButtonState() +{ + this->buttonStates.clear(); +} + +int IrrEventReciever::checkButtonState() +{ + if(!this->buttonStates.empty()) + return this->buttonStates.back(); + else + return -1; +} + +void IrrEventReciever::delLastButtonStat() +{ + if(!this->buttonStates.empty()) + this->buttonStates.pop_back(); +} + +bool IrrEventReciever::isButtonStateEmpty() +{ + return this->buttonStates.empty(); +} + +int IrrEventReciever::checkListState() +{ + if(!this->listStates.empty()) + return this->listStates.back(); + else + return -1; +} + +void IrrEventReciever::delLastListStat() +{ + if(!this->listStates.empty()) + this->listStates.pop_back(); +} diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Unstable Version/1.2.9/IrrEventReciever.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Unstable Version/1.2.9/IrrEventReciever.h Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,51 @@ +/* + Irrlicht Library Wrapper + Created by: + Nathan Adams + Denzel Morris + Copyright (C) 2007 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ + +#ifndef IRREVENTRECIEVER_H +#define IRREVENTRECIEVER_H + +//#include "IrrLib.h" +#include +#include +#include "IrrLibBase.h" +#include "IrrData.h" +#include + + + +class IrrEventReciever : public irr::IEventReceiver, public IrrLibBase +{ + private: + //IrrLib callingIrrLib; + _mouse mouse; + bool escexit; + std::vector buttonStates; + std::vector listStates; + public: + bool mouseStates[1]; + IrrEventReciever(); + int getMouseX(); + int getMouseY(); + bool keyStates[irr::KEY_KEY_CODES_COUNT]; + //void setIrrLib(IrrLib& IrrLib) + virtual bool OnEvent(irr::SEvent event); + void SetEscExit(bool onoff); + int getButtonState(); + int getRevButtonState(); + void clearButtonState(); + int checkButtonState(); + void delLastButtonStat(); + bool isButtonStateEmpty(); //is there still stuff in the vector to be done? NA + int checkListState(); + void delLastListStat(); +}; + +#endif diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Unstable Version/1.2.9/IrrLib.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Unstable Version/1.2.9/IrrLib.cpp Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,280 @@ +/* + Irrlicht Library Wrapper + Created by: + Nathan Adams + Denzel Morris + Copyright (C) 2007 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ + +#include +#include +#include +#include +#include + +#include "IrrLib.h" +//Libraries we create go here +//#include "IrrSphere.h" +#include "IrrColor.h" +//#include "Irr2D.h" + +using namespace irr; +using namespace core; +using namespace scene; +using namespace video; +using namespace io; +using namespace gui; + +using namespace std; + +//TODO: Create own class for handling inputs! + + +/*IrrLib::IrrLib(MastEventReceiver & receiver){ + this->device = createDevice(EDT_SOFTWARE, dimension2d(640, 480), 16, false, false, false, &receiver); + if (this->device == 0) + exit(1); + IrrLib::Init(); +}*/ + +IrrLib::IrrLib(){ + this->device = createDevice(EDT_SOFTWARE, dimension2d(640, 480), 16, false, false, false, &this->IrrEvent); + if (this->device == 0) + exit(1); + IrrLib::Init(); +} + +IrrLib::IrrLib(video::E_DRIVER_TYPE drivertype, core::dimension2d & res, u32 bits, bool fullscreen, bool stencilbuffer, bool vsync){ + //MyEventReceiver receiver; + this->device = createDevice(drivertype, res, bits, fullscreen, stencilbuffer, vsync, &this->IrrEvent); + if (this->device == 0) + exit(1); + IrrLib::Init(); +} + +IrrLib::IrrLib(int nDrivertype, int width, int height, int bits, bool fullscreen, bool stencilbuffer, bool vsync){ + //MyEventReceiver receiver; + video::E_DRIVER_TYPE drivertype; + switch (nDrivertype){ + case 0: //TODO: finish this switch case + drivertype = EDT_NULL; + break; + case 1: + drivertype = EDT_SOFTWARE; + break; + case 2: + drivertype = EDT_BURNINGSVIDEO; + break; + case 3: + drivertype = EDT_OPENGL; + break; + case 4: + drivertype = EDT_DIRECT3D8; + //*Note: It seems as Microsoft has stoped supporting DX 8.1, so you can not compile it into Irrlicht engine anymore + //TODO: Find how to detect if DX is complied into Irrlicht + //TODO: Find how to detecht for linux + break; + case 5: + drivertype = EDT_DIRECT3D9; + break; + default: + drivertype = EDT_SOFTWARE; + break; + } + this->device = createDevice(drivertype, dimension2d(width, height), bits, fullscreen, stencilbuffer, vsync, &this->IrrEvent); + if (this->device == 0) + exit(1); + IrrLib::Init(); +} + +IrrLib::~IrrLib (){ //Our moms wont clean up after us! + //Although I'm sure Irrlicht does this for us already, its always a good idea to check! + /*if (this->device != NULL) + delete this->device; + if (this->driver != NULL) + delete this->driver; + if (this->smgr != NULL) + delete this->smgr; + if (this->mesh != NULL) + delete this->mesh; + if (this->node != NULL) + delete this->node;*/ //it seems Irrlicht picks up after us... + //however we created newNodes, now we need to delete it! +} + +void IrrLib::Init(){ + //this->numNodes = 0; + //this->nodeNew = new ISceneNode[10]; + //this->env->addStaticText(L"Transparent Control:", rect(20,30,300,80), true); + this->env = this->device->getGUIEnvironment(); + this->driver = this->device->getVideoDriver(); + this->smgr = this->device->getSceneManager(); + Irr3DLib.SetSmgr(this->smgr); + Irr3DLib.SetDriver(this->driver); + Irr2DLib.SetSmgr(this->smgr); + Irr2DLib.SetDriver(this->driver); + GUI.SetEnv(this->env); + IrrEvent.SetDevice(this->device); + this->timer = this->device->getTimer(); + tick = this->timer->getRealTime(); +} + +void IrrLib::ReadArchive(std::string file){ + this->device->getFileSystem()->addZipFileArchive(file.c_str()); +} + +void IrrLib::LoadQ3Level(std::string q3level){ + this->mesh = this->smgr->getMesh(q3level.c_str()); + this->node = 0; + if (this->mesh) + this->node = this->smgr->addOctTreeSceneNode(this->mesh->getMesh(0), 0, -1, 128); +} + +void IrrLib::MapPos(int x, int y, int z){ + if (this->node) + this->node->setPosition(core::vector3df(x, y, z)); +} + +void IrrLib::MapPos(){ + if (this->node) + this->node->setPosition(core::vector3df(0, 0, 0)); +} + +void IrrLib::AddFPSCam(){ + this->cam = this->smgr->addCameraSceneNodeFPS(); +} + +void IrrLib::AddFPSCam(f32 x, f32 y, f32 z) +{ + this->cam = this->smgr->addCameraSceneNodeFPS(); + this->cam->setPosition(irr::core::vector3df(x, y, z)); +} + +void IrrLib::VisibleCursor(bool tf){ + if (tf == false) + this->device->getCursorControl()->setVisible(false); + else + this->device->getCursorControl()->setVisible(true); +} + +int IrrLib::GetFPSCount(){ + return this->driver->getFPS(); +} + +bool IrrLib::DeviceIsRunning(){ + return this->device->run(); +} + +bool IrrLib::IsActiveWindow(){ + return this->device->isWindowActive(); +} + +void IrrLib::BeginScene(){ + this->driver->beginScene(true, true, video::SColor(0,200,200,200)); +} + +void IrrLib::BeginScene(irr::video::SColor color){ + this->driver->beginScene(true, true, color); +} + +void IrrLib::BeginScene(bool usebackBuffer, bool usezBuffer, irr::video::SColor color){ + this->driver->beginScene(usebackBuffer, usezBuffer, color); +} + +void IrrLib::DrawAll(){ + //position2d start(50, 50); + //position2d end(100,100); + // SColor whitecolor(255,255,255,255); +//driver->draw2DLine(start, end, whitecolor); + this->smgr->drawAll(); + this->env->drawAll(); + //this->device->getGUIEnvironment()->drawAll(); + } + +void IrrLib::EndScene(){ + this->driver->endScene(); +} + +void IrrLib::SetWindowCaption(stringw str){ + this->device->setWindowCaption(str.c_str()); +} + +irr::core::stringw IrrLib::GetDriverName(){ + return this->driver->getName(); +} + +void IrrLib::EndIrrlicht(){ + if(this->device != NULL){ + this->device->drop(); + this->device = NULL; + } +} + +void IrrLib::KeyPress(char key){ + this->key = key; +} + +char IrrLib::KeyPressed(){ + return key; +} + +irr::f32 IrrLib::getX(){ + return this->smgr->getActiveCamera()->getPosition().X; +} + +irr::f32 IrrLib::getY(){ + return this->smgr->getActiveCamera()->getPosition().Y; +} + +irr::f32 IrrLib::getZ(){ + return this->smgr->getActiveCamera()->getPosition().Z; +} + +bool IrrLib::CheckGameLoop(){ + u32 now; + now = this->timer->getRealTime(); + if ((now - this->tick) >= 30){ + //this->tick == time (NULL); + return true; + } else { + return false; + } +} + +bool IrrLib::CheckGameLoop(u32 ms){ + u32 now; + now = this->timer->getRealTime(); + if ((now - this->tick) >= ms){ + this->tick = now; + return true; + } else { + return false; + } +} + +void IrrLib::Exit() +{ + this->device->closeDevice(); +} + +PixelSize IrrLib::GetScreenSize() +{ + return this->driver->getScreenSize(); + /*pixels returnres; + returnres.width = screenres.Width; + returnres.height = screenres.Height; + return returnres;*/ + +} + +//template std::string IrrLib::to_string (T t) +/*std::string IrrLib::int_to_string (int t) +{ + std::stringstream ss; + ss << t; + return ss.str(); +}*/ +// This is in the base class now, every class that decends from that class has this ability. diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Unstable Version/1.2.9/IrrLib.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Unstable Version/1.2.9/IrrLib.h Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,127 @@ +/* + Irrlicht Library Wrapper + Created by: + Nathan Adams + Denzel Morris + Copyright (C) 2007 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ + +#ifndef IRRLIB_H +#define IRRLIB_H + +/* We should include some basic functions */ +#include +/* include strings */ +#include +#include +#include + +/* We have to include Irrlichts libs */ + + +#include "Irr3D.h" +#include "IrrColor.h" +#include "IrrLibGUI.h" +#include "IrrEventReciever.h" +#include "Irr2D.h" +#include "IrrLibBase.h" +#include "IrrData.h" + +typedef irr::core::dimension2d PixelSize; + +/*struct IrrObj { + int eventid; + int objectid; +};*/ + +//Start class +class IrrLib: public IrrLibBase { + + private: + /* Create an Irrlicht device as private because the class should handle + All irrlicht interaction */ + irr::IrrlichtDevice *device; + // Tells Irrlicht what driver to use + //video::E_DRIVER_TYPE driverType; + + /* + Get a pointer to the video driver and the SceneManager so that + we do not always have to write device->getVideoDriver() and + device->getSceneManager(). + */ + irr::video::IVideoDriver* driver; + irr::scene::ISceneManager* smgr; + irr::gui::IGUIEnvironment* env; + + /* + Get a pointer to the 'mesh' aka the level. + Note: This is for Quake3 levels, ie bsp maps. + */ + irr::scene::IAnimatedMesh* mesh; + irr::scene::ISceneNode* node; + irr::scene::ISceneNode * tempNode; //use this to store nodeNew's data so we can resize it + irr::scene::ICameraSceneNode * cam; + char key; + + + void IrrLib::Init(); + /*friend class IrrColor; + friend class Irr2DLib; + friend class Sphere;*/ + friend class IrrEventReciever; + irr::u32 tick; + irr::ITimer* timer; + public: + //IrrSphere Sphere; //This has to be public to be able to access the Sphere class + /* IrrSphere is now in Irr3D class */ + //Prehaps put this into a IrrLib3D class? + Irr3D Irr3DLib; + IrrColor Color; //Color class...not much of a class but lets keep it OO + Irr2D Irr2DLib; //1/2 variable to be labeled like this due to variables not able to begin with a number + IrrLibGUI GUI; + IrrEventReciever IrrEvent; + IrrLib::IrrLib(); + //IrrLib::IrrLib(MastEventReceiver & receiver); + IrrLib::IrrLib(irr::video::E_DRIVER_TYPE drivertype, irr::core::dimension2d & res, irr::u32 bits, bool fullscreen, bool stencilbuffer, bool vsync); + IrrLib::IrrLib(int drivertype, int width, int height, int bits, bool fullscreen, bool stencilbuffer, bool vsync); + IrrLib::~IrrLib(); //Our moms wont clean up after us! + void IrrLib::ReadArchive(std::string file); + void IrrLib::LoadQ3Level(std::string q3level); + void IrrLib::MapPos(int x, int y, int z); //I think this moves the actual camera? + void IrrLib::MapPos(); + void IrrLib::AddFPSCam(); + void IrrLib::AddFPSCam(irr::f32 x, irr::f32 y, irr::f32 z); + void IrrLib::VisibleCursor(bool tf); + int IrrLib::GetFPSCount(); + bool IrrLib::DeviceIsRunning(); + bool IrrLib::IsActiveWindow(); + void IrrLib::BeginScene(); + void IrrLib::BeginScene(irr::video::SColor color); + //void IrrLib::BeginScene(irr::video::SColor * color); + void IrrLib::BeginScene(bool usebackBuffer, bool usezBuffer, irr::video::SColor color); + //TODO: Add one more for human readable colors and hex colors! + void IrrLib::DrawAll(); + void IrrLib::EndScene(); + void IrrLib::SetWindowCaption(irr::core::stringw str); + irr::core::stringw IrrLib::GetDriverName(); + //TODO: Make function to turn stringw to string and visa versa + void IrrLib::EndIrrlicht(); //Renamed from KillIrrlicht to EndIrrlicht + //TODO: Add logging + void IrrLib::KeyPress(char key); + char IrrLib::KeyPressed(); + irr::f32 getX(); + irr::f32 getY(); + irr::f32 getZ(); + bool CheckGameLoop(); + bool CheckGameLoop(irr::u32 ms); + void Exit(); + PixelSize GetScreenSize(); + //void EndGameLoop(); + //template std::string to_string (T t); + +}; + +#endif diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Unstable Version/1.2.9/IrrLibBase.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Unstable Version/1.2.9/IrrLibBase.cpp Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,118 @@ +/* + Irrlicht Library Wrapper + Created by: + Nathan Adams + Denzel Morris + Copyright (C) 2007 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ + +#include +#include +#include "IrrLibBase.h" +#include +#include + +using namespace irr; +using namespace core; +using namespace scene; +using namespace video; +using namespace io; +using namespace gui; + +using namespace std; + +/* +* Code from http://articles.techrepublic.com.com/5100-22-5079969.html# +* + +struct str_stream +{ + std::stringstream & underlying_stream() const + { return m_streamOut; } + + operator std::string() const + { + return m_streamOut.str(); + } +private: + mutable std::stringstream m_streamOut; +}; + +template< class type> +inline const str_stream & operator<< ( const str_stream & out, const type & value) +{ + out.underlying_stream() << value; + return out; + +} + +template std::string to_string( const type & value) +{ + std::ostringstream streamOut; + + streamOut << value; + + return streamOut.str(); +} + +* End code copy +*/ + +void IrrLibBase::SetDriver(IVideoDriver* driver) //can be overloaded +{ + this->driver = driver; +} + +void IrrLibBase::SetSmgr(ISceneManager* smgr) +{ + this->smgr = smgr; +} + +std::string IrrLibBase::wchar_to_stdstring (const wchar_t* wc) +{ + //cout << "Starting conversion"; + //wcstombs(tmp, in, 255); + char c[255]; + for(int t = 0; wc[t] != '\0'; t++) + c[t] = (char)wc[t]; + + /*for(int t = 0; c[t] != '\0'; t++) + wc[t] = c[t];*/ + + std::stringstream ss; + ss << c; + //cout << "Conversion OK"; + return ss.str(); +} + +std::string IrrLibBase::int_to_string (int t) +{ + std::stringstream ss; + ss << t; + return ss.str(); +} + +std::string IrrLibBase::stringw_to_stdstring(irr::core::stringw sw) +{ + std::stringstream ss; + ss << sw.c_str(); + return ss.str(); +} +irr::core::stringw IrrLibBase::stdstring_to_stringw(std::string ss) +{ + stringw tmpw(ss.c_str()); + return tmpw; +} + +void IrrLibBase::SetDevice(irr::IrrlichtDevice *device) +{ + this->device = device; +} + +void IrrLibBase::init() +{ + +} diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Unstable Version/1.2.9/IrrLibBase.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Unstable Version/1.2.9/IrrLibBase.h Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,44 @@ +/* + Irrlicht Library Wrapper + Created by: + Nathan Adams + Denzel Morris + Copyright (C) 2007 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ + +#ifndef IRRLIBBASE_H +#define IRRLIBBASE_H + +/* We should include some basic functions */ +#include +/* include strings */ +#include + +/* We have to include Irrlichts libs */ +#include + + +class IrrLibBase { + + protected: + irr::video::IVideoDriver* driver; + irr::scene::ISceneManager* smgr; + irr::IrrlichtDevice *device; + public: + //template std::string to_string( const type & value); + irr::core::dimension2d irrpixels; + void IrrLibBase::SetDriver(irr::video::IVideoDriver* driver); + void IrrLibBase::SetSmgr(irr::scene::ISceneManager* smgr); + void SetDevice(irr::IrrlichtDevice *device); + std::string int_to_string (int t); + std::string stringw_to_stdstring(irr::core::stringw sw); + irr::core::stringw stdstring_to_stringw(std::string ss); + std::string wchar_to_stdstring (const wchar_t* wc); + void init(); + +}; + +#endif diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Unstable Version/1.2.9/IrrLibGUI.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Unstable Version/1.2.9/IrrLibGUI.cpp Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,225 @@ +/* + Irrlicht Library Wrapper + Created by: + Nathan Adams + Denzel Morris + Copyright (C) 2007 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ + +#include +#include +#include +#include +#include + +#include "IrrLib.h" +#include "IrrData.h" +#include "IrrLibGUI.h" +#include "IrrLibBase.h" +#include + +using namespace irr; +using namespace core; +using namespace scene; +using namespace video; +using namespace io; +using namespace gui; + +using namespace std; + +template std::string to_string( const type & value) +{ + std::ostringstream streamOut; + + streamOut << value; + + return streamOut.str(); +} + +IrrLibGUI::IrrLibGUI() +{ + //NA does it need to do anything at init? + this->nStaticText = 0; + this->nButton = 0; + this->nButtonid = 100; + this->nListBoxid = 200; + this->nListBox = 0; + //this->nListBoxid = 300; + //this->arrStaticText = new IGUIStaticText[10]; + //this->env = this->device->getGUIEnvironment(); //NA yes we do! +} + +IrrLibGUI::~IrrLibGUI() +{ + //NA Do we have to delete anything? +} + +void IrrLibGUI::SetEnv(IGUIEnvironment* env) +{ + this->env = env; + //env->addButton(rect(10,210,110,210 + 32), 0, 109, L"Quit", L"Exits Program"); +} + +int IrrLibGUI::addButton(const core::rect< s32 > & rectangle, IGUIElement *parent, s32 id, const wchar_t * text, const wchar_t * tooltiptext) +{ + arrButton.push_back(this->env->addButton(rectangle, parent, id, text, tooltiptext)); + ++nButton; + ++nButtonid; + return nButtonid - 1; +} + +IrrObj IrrLibGUI::addListBox(const irr::core::rect< irr::s32 > &rectangle, IGUIElement * parent) +{ + irr::gui::IGUIListBox* tmp = this->env->addListBox(rectangle, parent, nListBoxid); + arrListBox.push_back(tmp); + //we introduce a new datatype; IrroObj + IrrObj ret; + ret.eventid = nListBoxid; + ret.objectid = nListBox; + ++nListBox; + ++nListBoxid; + return ret; +} + +IrrObj IrrLibGUI::AddListBox(int x1, int y1, int x2, int y2, IGUIElement * parent) +{ + return addListBox(rect(x1, y1, x2, y2), parent); +} + +IrrObj IrrLibGUI::AddListBox(const irr::core::rect< irr::s32 > &rectangle, IGUIElement * parent) +{ + return addListBox(rectangle, parent); +} + +void IrrLibGUI::AddStringToListBox(int nLbox, std::string text) +{ + this->arrListBox[nLbox]->addItem(stdstring_to_stringw(text).c_str()); + //this->arrListBox[0]->addItem(L"TEST"); +} + +std::string IrrLibGUI::getSelectListString(int lstbox) +{ + //stringc tmp = this->arrListBox[lstbox]->getListItem(this->arrListBox[lstbox]->getSelected()); + s32 selected = this->arrListBox[lstbox]->getSelected(); + //const wchar_t* tmp = this->arrListBox[lstbox]->getListItem(selected); + //irr::core::stringw tmp; + char out[255]; + //tmp = this->arrListBox[lstbox]->getText(); + irr::core::stringc tmp(arrListBox[lstbox]->getListItem(arrListBox[lstbox]->getSelected())); + //cout << tmp.c_str() << endl; + //wcstombs(out, tmp, tmp.length()); + //cout << tmp[0] << endl; + // std::stringstream ss; + //for (int i = 0; i < tmp.size(); ++i) + //ss << tmp.c_str(); + std::string ret = tmp.c_str(); + return ret; +} + +void IrrLibGUI::Clear() +{ + this->env->clear(); +} + +void IrrLibGUI::DrawAll() +{ + this->env->drawAll(); +} + +int IrrLibGUI::AddToStaticArray(irr::gui::IGUIStaticText * addme) +{ + //arrStaticText[nStaticText] = addme; + arrStaticText.push_back(addme); + this->nStaticText++; + this->nButtonid++; + return this->nStaticText; +} + +void IrrLibGUI::AddStaticText() +{ + //rect(20,30,300,80), + this->env->addStaticText(L"Powered by IrrLib.", rect(20,30,300,80), true); +} + +int IrrLibGUI::AddStaticText(std::string message) +{ + irr::gui::IGUIStaticText * addthis; + stringw tmpw(message.c_str()); + addthis = this->env->addStaticText(tmpw.c_str(), rect(20,30,300,80), true); + return AddToStaticArray(addthis); +} + +int IrrLibGUI::AddStaticText(std::string message, int x1, int y1, int x2, int y2) +{ + irr::gui::IGUIStaticText * addthis; + stringw tmpw(message.c_str()); + addthis = this->env->addStaticText(tmpw.c_str(), rect(x1,y1,x2,y2), true); + return AddToStaticArray(addthis); +} + +int IrrLibGUI::AddStaticText(std::string message, int x1, int y1, int x2, int y2, bool border, bool wordwrap) +{ + irr::gui::IGUIStaticText * addthis; + stringw tmpw(message.c_str()); + addthis = this->env->addStaticText(tmpw.c_str(), rect(x1,y1,x2,y2), border, wordwrap); + return AddToStaticArray(addthis); +} + +int IrrLibGUI::AddStaticText(std::string message, int x1, int y1, int x2, int y2, bool border, bool wordwrap, int id, bool fillbackground) +{ + irr::gui::IGUIStaticText * addthis; + stringw tmpw(message.c_str()); + addthis = this->env->addStaticText(tmpw.c_str(), rect(x1,y1,x2,y2), border, wordwrap, 0, id, fillbackground); + return AddToStaticArray(addthis); +} + +int IrrLibGUI::AddStaticText(std::string message, const core::rect< s32 > &rectangle) +{ + irr::gui::IGUIStaticText * addthis; + stringw tmpw(message.c_str()); + addthis = this->env->addStaticText(tmpw.c_str(), rectangle); + return AddToStaticArray(addthis); +} + +int IrrLibGUI::AddStaticText(std::string message, const core::rect< s32 > &rectangle, bool border, bool wordwrap) +{ + irr::gui::IGUIStaticText * addthis; + stringw tmpw(message.c_str()); + addthis = this->env->addStaticText(tmpw.c_str(), rectangle, border, wordwrap); + return AddToStaticArray(addthis); +} + +int IrrLibGUI::AddStaticText(std::string message, const core::rect< s32 > &rectangle, bool border, bool wordwrap, int id, bool fillbackground) +{ + irr::gui::IGUIStaticText * addthis; + stringw tmpw(message.c_str()); + addthis = this->env->addStaticText(tmpw.c_str(), rectangle, border, wordwrap, 0, id, fillbackground); + return AddToStaticArray(addthis); +} + +void IrrLibGUI::ChangeStaticText(int nstatictext, std::string message) +{ + stringw tmpw(message.c_str()); + this->arrStaticText[this->nStaticText-1]->setText(tmpw.c_str()); +} + +void IrrLibGUI::ChangeFont(std::string fontfile) +{ + IGUISkin* skin = this->env->getSkin(); + IGUIFont* font = this->env->getFont(fontfile.c_str()); + if (font) + skin->setFont(font); +} + +int IrrLibGUI::AddButton(std::string text, int x1, int y1, int x2, int y2, std::string tooltiptext = "") +{ + return addButton(rect(x1, y1, x2, y2), 0, nButtonid, stdstring_to_stringw(text).c_str(), stdstring_to_stringw(tooltiptext).c_str()); +} + +int IrrLibGUI::AddButton(std::string text, core::rect & rect, std::string tooltiptext = "") +{ + return addButton(rect, 0, nButtonid, stdstring_to_stringw(text).c_str(), stdstring_to_stringw(tooltiptext).c_str()); +} diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Unstable Version/1.2.9/IrrLibGUI.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Unstable Version/1.2.9/IrrLibGUI.h Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,68 @@ +/* + Irrlicht Library Wrapper + Created by: + Nathan Adams + Denzel Morris + Copyright (C) 2007 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ + +#ifndef IRRLIBGUI_H +#define IRRLIBGUI_H + +#include +#include +#include +#include "IrrLib.h" +#include "IrrData.h" +#include "IrrLibBase.h" + +class IrrLibGUI: public IrrLibBase { + private: + irr::gui::IGUISkin* skin; + irr::gui::IGUIFont* font; + irr::gui::IGUIEnvironment* env; + //TODO: Create an array storing all messages + int nStaticText; + //irr::gui::IGUIStaticText* arrStaticText[10]; + int nButton; + int nButtonid; + int nListBox; + int nListBoxid; + std::vector arrStaticText; + std::vector arrButton; + std::vector arrListBox; + int AddToStaticArray(irr::gui::IGUIStaticText * addme); + int addButton(const irr::core::rect< irr::s32 > & rectangle, irr::gui::IGUIElement *parent = 0, irr::s32 id = 0, const wchar_t * text = 0, const wchar_t * tooltiptext = 0); //TODO: Clean this up! + IrrObj addListBox(const irr::core::rect< irr::s32 > &rectangle, irr::gui::IGUIElement * parent); + public: + IrrLibGUI(); + ~IrrLibGUI(); + void SetEnv(irr::gui::IGUIEnvironment* env); + void Clear(); + void DrawAll(); + //irr::gui::IGUIStaticText* IrrLibGUI::AddStaticText(); //NA eh a default text adder why not? + /* This is bad coding, we do not want to return an irrlicht object, we want to return a standard datatype because this class handles the GUI elements, not the user. */ + void AddStaticText(); //NA eh a default text adder why not? + int AddStaticText(std::string message); + int AddStaticText(std::string message, int x1, int y1, int x2, int y2); + int AddStaticText(std::string message, int x1, int y1, int x2, int y2, bool border, bool wordwrap); + int AddStaticText(std::string message, int x1, int y1, int x2, int y2, bool border, bool wordwrap, int id, bool fillbackground); + int AddStaticText(std::string message, const irr::core::rect< irr::s32 > &rectangle); + int AddStaticText(std::string message, const irr::core::rect< irr::s32 > &rectangle, bool border, bool wordwrap); + int AddStaticText(std::string message, const irr::core::rect< irr::s32 > &rectangle, bool border, bool wordwrap, int id, bool fillbackground); + int AddButton(std::string text, int x1, int y1, int x2, int y2, std::string tooltiptext); + int AddButton(std::string text, irr::core::rect & rect, std::string tooltiptext); //TODO: Add move functions + IrrObj AddListBox(int x1, int y1, int x2, int y2, irr::gui::IGUIElement * parent = 0); + IrrObj AddListBox(const irr::core::rect< irr::s32 > &rectangle, irr::gui::IGUIElement * parent = 0); + void AddStringToListBox(int nLbox, std::string text); + void ChangeStaticText(int nstatictext, std::string message); + void ChangeFont(std::string fontfile); + std::string getSelectListString(int lstbox); + +}; + + +#endif diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Unstable Version/1.2.9/IrrSphere.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Unstable Version/1.2.9/IrrSphere.cpp Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,71 @@ +/* + Irrlicht Library Wrapper + Created by Nathan Adams + Copyright (C) 2007 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ +#include +#include "IrrLib.h" +#include "IrrSphere.h" +#include +#include + +using namespace irr; +using namespace core; +using namespace scene; +using namespace video; +using namespace io; +using namespace gui; + +using namespace std; + +void IrrSphere::SetSmgr(irr::scene::ISceneManager* smgr){ + this->smgr = smgr; +} + +void IrrSphere::SetDriver(irr::video::IVideoDriver* driver){ + this->driver = driver; +} + +int IrrSphere::CreateNewSphereNode(int x, int y, int z, std::string texture, bool light){ + //TODO: Resize after 10, and add 10 more to the mix! + //this->nodeNew[this->numNodes] = this->smgr->addSphereSceneNode(); + //this->sphereNodes[this->numNodes]->setPosition(core::vector3df(x,y,z)); + //this->sphereNodes[this->numNodes]->setMaterialTexture(0, this->driver->getTexture(texture.c_str())); + //this->sphereNodes[this->numNodes]->setMaterialFlag(video::EMF_LIGHTING, light); + nodeNew = this->smgr->addSphereSceneNode(); + nodeNew->setPosition(core::vector3df(x,y,z)); + nodeNew->setMaterialTexture(0, this->driver->getTexture(texture.c_str())); + nodeNew->setMaterialFlag(video::EMF_LIGHTING, light); + sphereNodes.push_back(nodeNew); + this->numNodes++; + return this->numNodes--; + /*this->node = this->smgr->addSphereSceneNode(); + this->node->setPosition(core::vector3df(x,y,z)); + this->node->setMaterialTexture(0, this->driver->getTexture(texture.c_str())); + this->node->setMaterialFlag(video::EMF_LIGHTING, light);*/ +} + +irr::core::vector3df IrrSphere::GetSphereVector(int sphere){ + //We are converting to vectors, under construction NA + //return this->nodeNew[sphere]->getPosition(); + return this->sphereNodes[sphere]->getPosition(); +} + +void IrrSphere::SetSphereVector(int sphere, irr::core::vector3df v){ + this->sphereNodes[sphere]->setPosition(v); +} + +IrrSphere::IrrSphere(){ + this->numNodes = 0; +} + +IrrSphere::~IrrSphere(){ + /*for(int i = 0; i < numNodes; ++i) + delete this->nodeNew[i]; + + delete this->nodeNew;*/ + //We are using vectors now, no more memory clowing business NA +} diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Unstable Version/1.2.9/IrrSphere.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Unstable Version/1.2.9/IrrSphere.h Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,46 @@ +/* + Irrlicht Library Wrapper + Created by: + Nathan Adams + Denzel Morris + Copyright (C) 2007 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ + +#ifndef IRRSPHERE_H +#define IRRSPHERE_H +/* We should include some basic functions */ +#include +/* include strings */ +#include +#include + +/* We have to include Irrlichts libs */ +#include + +//#include "IrrLib.h" + + +class IrrSphere +{ + private: + //irr::scene::ISceneNode* nodeNew[10]; + irr::scene::ISceneNode* nodeNew; + std::vector sphereNodes; + int numNodes; + irr::scene::ISceneManager* smgr; + irr::video::IVideoDriver* driver; + public: + void IrrSphere::SetDriver(irr::video::IVideoDriver* driver); + void IrrSphere::SetSmgr(irr::scene::ISceneManager* smgr); + int IrrSphere::CreateNewSphereNode(int x, int y, int z, std::string texture, bool light); //this is going to take my advanced C++ skillz! + irr::core::vector3df IrrSphere::GetSphereVector(int sphere); + void IrrSphere::SetSphereVector(int sphere, irr::core::vector3df v); + IrrSphere::IrrSphere(); + //IrrSphere::IrrSphere(IrrLib*); + IrrSphere::~IrrSphere(); +}; + +#endif diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Unstable Version/1.2.9/IrrSprite.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Unstable Version/1.2.9/IrrSprite.cpp Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,49 @@ +/* + Irrlicht Library Wrapper + Created by: + Nathan Adams + Denzel Morris + Copyright (C) 2007 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ + +#include +#include +#include + +#include "IrrLib.h" +//Libraries we create go here +//#include "IrrSphere.h" +#include "IrrColor.h" +#include "IrrSprite.h" +//#include "Irr2D.h" + +using namespace irr; +using namespace core; +using namespace scene; +using namespace video; +using namespace io; +using namespace gui; + +using namespace std; + +IrrSprite::IrrSprite() +{ + //do stuff +} + +IrrSprite::~IrrSprite() +{ + //delete stuff +} + +void IrrSprite::SetDriver(irr::video::IVideoDriver* driver) +{ + this->driver = driver; +} +void IrrSprite::SetSmgr(irr::scene::ISceneManager* smgr) +{ + this->smgr = smgr; +} diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Unstable Version/1.2.9/IrrSprite.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Unstable Version/1.2.9/IrrSprite.h Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,45 @@ +/* + Irrlicht Library Wrapper + Created by: + Nathan Adams + Denzel Morris + Copyright (C) 2007 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ + +#ifndef IRRSPRITE_H +#define IRRSPRITE_H + +/* We should include some basic functions */ +#include +/* include strings */ +#include + +/* We have to include Irrlichts libs */ +#include + +//#include "IrrSphere.h" +#include "IrrColor.h" +//#include "Irr2D.h" +//#include "IrrSprite.h" + +//Start class +class IrrSprite { + + private: + + irr::video::IVideoDriver* driver; + irr::scene::ISceneManager* smgr; + public: + IrrSprite::IrrSprite(); + IrrSprite::~IrrSprite(); + void IrrSprite::SetDriver(irr::video::IVideoDriver* driver); + void IrrSprite::SetSmgr(irr::scene::ISceneManager* smgr); + +// I forgot a semicolon here....and it wasn't compling +//Thats 1 bad thing about OOP if there is an error you don't know where the @#$@# the problem is! +}; + +#endif diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Unstable Version/1.2.9/README --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Unstable Version/1.2.9/README Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,13 @@ + Irrlicht Library Wrapper + Created by Nathan Adams + Version 1.2.9 + Copyright (C) 2007 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. + + Please leave all files intact if you redistrubte this software. + +How to use: + Add all the files to your Irrlicht project, you could compile it into a DLL if you wanted too, but for now just add all the files to your project. + Then inside your complier add the directory that you have the IrrLib files and use #include "IrrLib.h" to refrence it, and you are good to go! \ No newline at end of file diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Unstable Version/1.2b/Irr2D.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Unstable Version/1.2b/Irr2D.cpp Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,54 @@ +/* + Irrlicht Library Wrapper + Created by Nathan Adams + Version 1.1 + Copyright (C) 2007 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ +#include +#include "IrrLib.h" +//#include "IrrSphere.h" //You probably aren't going to be using 3D objects in a 2D environment! +#include "Irr2D.h" +#include +#include + +using namespace irr; +using namespace core; +using namespace scene; +using namespace video; +using namespace io; +using namespace gui; + +using namespace std; + +Irr2D::Irr2D(){ + this->numTextures = 0; +} + +Irr2D::~Irr2D(){ + for(int i = 0; i < numTextures; ++i) + delete this->textures[i]; + + delete this->textures; +} + +void Irr2D::SetSmgr(irr::scene::ISceneManager* smgr){ + this->smgr = smgr; +} + +void Irr2D::SetDriver(irr::video::IVideoDriver* driver){ + this->driver = driver; +} + +void Irr2D::LoadTexturemap(std::string file){ + this->texturemap = driver->getTexture(file.c_str()); +} + +int Irr2D::LoadTexture(std::string file){ + this->textures[this->numTextures] = driver->getTexture(file.c_str()); + this->numTextures++; + return numTextures--; +} + diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Unstable Version/1.2b/Irr2D.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Unstable Version/1.2b/Irr2D.h Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,42 @@ +/* + Irrlicht Library Wrapper + Created by Nathan Adams + Version 1.1 + Copyright (C) 2007 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ + +#ifndef IRR2D_H +#define IRR2D_H +/* We should include some basic functions */ +#include +/* include strings */ +#include + +/* We have to include Irrlichts libs */ +#include + +#include "IrrLib.h" + +class Irr2D { + private: + irr::scene::ISceneManager* smgr; + irr::video::IVideoDriver* driver; + irr::video::ITexture* texturemap; + int numTextures; + irr::video::ITexture* textures[10]; + public: + Irr2D::Irr2D(); + Irr2D::~Irr2D(); + void Irr2D::SetDriver(irr::video::IVideoDriver* driver); + void Irr2D::SetSmgr(irr::scene::ISceneManager* smgr); + void Irr2D::LoadTexturemap(std::string file); + int Irr2D::LoadTexture(std::string file); + void Irr2D::DrawImage(int texture, const irr::core::position2d & destPos); + void Irr2D::DrawImage(const irr::core::position2d & destPos, const irr::core::rect & sourceRect, const irr::core::rect * clipRect, irr::video::SColor color, bool useAlphaChannelOfTexture); + void Irr2D::DrawLine(const irr::core::position2d & start, const irr::core::position2d & end, irr::video::SColor color); +}; + +#endif diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Unstable Version/1.2b/IrrColor.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Unstable Version/1.2b/IrrColor.cpp Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,67 @@ +/* + Irrlicht Library Wrapper + Created by Nathan Adams + Version 1.1 + Copyright (C) 2007 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ +#include +#include +#include + +#include "IrrLib.h" +#include "IrrColor.h" + +using namespace irr; +using namespace core; +using namespace scene; +using namespace video; +using namespace io; +using namespace gui; + +using namespace std; + +void IrrColor::test(){ + //do nothing +} + +SColor IrrColor::returnColor(std::string color){ + int nColor = -1; + if (color == "red") + nColor = 1; + else if (color == "green") + nColor = 2; + else if (color == "blue") + nColor = 3; + else if (color == "dark green") + nColor = 4; + else if (color == "pink") + nColor = 5; + else if (color == "grey") + nColor = 6; + switch (nColor){ + case 1: + return SColor(255, 255, 0, 0); + break; + case 2: + return SColor(255, 0, 255, 0); + break; + case 3: + return SColor(255, 0, 0, 255); + break; + case 4: + return SColor(255, 0, 50, 0); + break; + case 5: + return SColor(255, 255, 10, 255); + break; + case 6: + return SColor(255,200,200,200); + break; + default: + return SColor(255,200,200,200); + break; + }// TODO: Make this function modular +} diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Unstable Version/1.2b/IrrColor.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Unstable Version/1.2b/IrrColor.h Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,27 @@ +/* + Irrlicht Library Wrapper + Created by Nathan Adams + Version 1.1 + Copyright (C) 2007 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ + +#ifndef IRRCOLOR_H +#define IRRCOLOR_H + +#include +#include +#include "irrlicht.h" +#include "IrrLib.h" + +class IrrColor { + private: + //who knows? + public: + void IrrColor::test(); + irr::video::SColor IrrColor::returnColor(std::string color); +}; + +#endif diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Unstable Version/1.2b/IrrLib.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Unstable Version/1.2b/IrrLib.cpp Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,203 @@ +/* + Irrlicht Library Wrapper + Created by Nathan Adams + Version 1.1 + Copyright (C) 2007 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ +#include +#include +#include + +#include "IrrLib.h" +//Libraries we create go here +#include "IrrSphere.h" +#include "IrrColor.h" +#include "Irr2D.h" + +using namespace irr; +using namespace core; +using namespace scene; +using namespace video; +using namespace io; +using namespace gui; + +using namespace std; + +//TODO: Create own class for handling inputs! + + +/*IrrLib::IrrLib(MastEventReceiver & receiver){ + this->device = createDevice(EDT_SOFTWARE, dimension2d(640, 480), 16, false, false, false, &receiver); + if (this->device == 0) + exit(1); + IrrLib::Init(); +}*/ + +IrrLib::IrrLib(){ + this->device = createDevice(EDT_SOFTWARE, dimension2d(640, 480), 16, false, false, false, 0); + if (this->device == 0) + exit(1); + IrrLib::Init(); +} + +IrrLib::IrrLib(video::E_DRIVER_TYPE drivertype, core::dimension2d & res, u32 bits, bool fullscreen, bool stencilbuffer, bool vsync){ + //MyEventReceiver receiver; + this->device = createDevice(drivertype, res, bits, fullscreen, stencilbuffer, vsync, 0); + if (this->device == 0) + exit(1); + IrrLib::Init(); +} + +IrrLib::IrrLib(int nDrivertype, int width, int height, int bits, bool fullscreen, bool stencilbuffer, bool vsync){ + //MyEventReceiver receiver; + video::E_DRIVER_TYPE drivertype; + switch (nDrivertype){ + case 0: //TODO: finish this switch case + drivertype = EDT_NULL; + break; + case 1: + drivertype = EDT_SOFTWARE; + break; + case 2: + drivertype = EDT_BURNINGSVIDEO; + break; + case 3: + drivertype = EDT_OPENGL; + break; + case 4: + drivertype = EDT_DIRECT3D8; +//TODO: Find how to detect if DX is complied into Irrlicht +//TODO: Find how to detecht for linux + break; + case 5: + drivertype = EDT_DIRECT3D9; + break; + default: + drivertype = EDT_SOFTWARE; + break; + } + this->device = createDevice(drivertype, dimension2d(width, height), bits, fullscreen, stencilbuffer, vsync, 0); + if (this->device == 0) + exit(1); + IrrLib::Init(); +} + +IrrLib::~IrrLib (){ //Our moms wont clean up after us! + //Although I'm sure Irrlicht does this for us already, its always a good idea to check! + /*if (this->device != NULL) + delete this->device; + if (this->driver != NULL) + delete this->driver; + if (this->smgr != NULL) + delete this->smgr; + if (this->mesh != NULL) + delete this->mesh; + if (this->node != NULL) + delete this->node;*/ //it seems Irrlicht picks up after us... + //however we created newNodes, now we need to delete it! +} + +void IrrLib::Init(){ + //this->numNodes = 0; + //this->nodeNew = new ISceneNode[10]; + this->driver = this->device->getVideoDriver(); + this->smgr = this->device->getSceneManager(); + Sphere.SetSmgr(this->smgr); + Sphere.SetDriver(this->driver); + Irr2DLib.SetSmgr(this->smgr); + Irr2DLib.SetDriver(this->driver); +} + +void IrrLib::ReadArchive(std::string file){ + this->device->getFileSystem()->addZipFileArchive(file.c_str()); +} + +void IrrLib::LoadQ3Level(std::string q3level){ + this->mesh = this->smgr->getMesh(q3level.c_str()); + this->node = 0; + if (this->mesh) + this->node = this->smgr->addOctTreeSceneNode(this->mesh->getMesh(0), 0, -1, 128); +} + +void IrrLib::NodePos(int x, int y, int z){ + if (this->node) + this->node->setPosition(core::vector3df(x, y, z)); +} + +void IrrLib::NodePos(){ + if (this->node) + this->node->setPosition(core::vector3df(0, 0, 0)); +} + +void IrrLib::AddFPSCam(){ + this->cam = this->smgr->addCameraSceneNodeFPS(); +} + +void IrrLib::AddFPSCam(f32 x, f32 y, f32 z) +{ + this->cam = this->smgr->addCameraSceneNodeFPS(); + this->cam->setPosition(irr::core::vector3df(x, y, z)); +} + +void IrrLib::VisibleCursor(bool tf){ + if (tf == false) + this->device->getCursorControl()->setVisible(false); + else + this->device->getCursorControl()->setVisible(true); +} + +int IrrLib::GetFPSCount(){ + return this->driver->getFPS(); +} + +bool IrrLib::DeviceIsRunning(){ + return this->device->run(); +} + +bool IrrLib::IsActiveWindow(){ + return this->device->isWindowActive(); +} + +void IrrLib::BeginScene(){ + this->driver->beginScene(true, true, video::SColor(0,200,200,200)); +} + +void IrrLib::BeginScene(irr::video::SColor color){ + this->driver->beginScene(true, true, color); +} + +void IrrLib::BeginScene(bool usebackBuffer, bool usezBuffer, irr::video::SColor color){ + this->driver->beginScene(usebackBuffer, usezBuffer, color); +} + +void IrrLib::DrawAll(){ + this->smgr->drawAll(); + //this->device->getGUIEnvironment()->drawAll(); + } + +void IrrLib::EndScene(){ + this->driver->endScene(); +} + +void IrrLib::SetWindowCaption(stringw str){ + this->device->setWindowCaption(str.c_str()); +} + +irr::core::stringw IrrLib::GetDriverName(){ + return this->driver->getName(); +} + +void IrrLib::EndIrrlicht(){ + this->device->drop(); +} + +void IrrLib::KeyPress(char key){ + this->key = key; +} + +char IrrLib::KeyPressed(){ + return key; +} diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Unstable Version/1.2b/IrrLib.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Unstable Version/1.2b/IrrLib.h Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,91 @@ +/* + Irrlicht Library Wrapper + Created by Nathan Adams + Version 1.1 + Copyright (C) 2007 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ +#ifndef IRRLIB_H +#define IRRLIB_H + +/* We should include some basic functions */ +#include +/* include strings */ +#include + +/* We have to include Irrlichts libs */ +#include + +#include "IrrSphere.h" +#include "IrrColor.h" +#include "Irr2D.h" + +//Start class +class IrrLib { + + private: + /* Create an Irrlicht device as private because the class should handle + All irrlicht interaction */ + irr::IrrlichtDevice *device; + // Tells Irrlicht what driver to use + //video::E_DRIVER_TYPE driverType; + + /* + Get a pointer to the video driver and the SceneManager so that + we do not always have to write device->getVideoDriver() and + device->getSceneManager(). + */ + irr::video::IVideoDriver* driver; + irr::scene::ISceneManager* smgr; + + /* + Get a pointer to the 'mesh' aka the level. + Note: This is for Quake3 levels, ie bsp maps. + */ + irr::scene::IAnimatedMesh* mesh; + irr::scene::ISceneNode* node; + irr::scene::ISceneNode * tempNode; //use this to store nodeNew's data so we can resize it + irr::scene::ICameraSceneNode * cam; + char key; + + + void IrrLib::Init(); + public: + IrrSphere Sphere; //This has to be public to be able to access the Sphere class + //Prehaps put this into a IrrLib3D class? + IrrColor Color; //Color class...not much of a class but lets keep it OO + Irr2D Irr2DLib; //1/2 variable to be labeled like this due to variables not able to begin with a number + IrrLib::IrrLib(); + //IrrLib::IrrLib(MastEventReceiver & receiver); + IrrLib::IrrLib(irr::video::E_DRIVER_TYPE drivertype, irr::core::dimension2d & res, irr::u32 bits, bool fullscreen, bool stencilbuffer, bool vsync); + IrrLib::IrrLib(int drivertype, int width, int height, int bits, bool fullscreen, bool stencilbuffer, bool vsync); + IrrLib::~IrrLib(); //Our moms wont clean up after us! + void IrrLib::ReadArchive(std::string file); + void IrrLib::LoadQ3Level(std::string q3level); + void IrrLib::NodePos(int x, int y, int z); //I think this moves the actual camera? + void IrrLib::NodePos(); + void IrrLib::AddFPSCam(); + void IrrLib::AddFPSCam(irr::f32 x, irr::f32 y, irr::f32 z); + void IrrLib::VisibleCursor(bool tf); + int IrrLib::GetFPSCount(); + bool IrrLib::DeviceIsRunning(); + bool IrrLib::IsActiveWindow(); + void IrrLib::BeginScene(); + void IrrLib::BeginScene(irr::video::SColor color); + void IrrLib::BeginScene(bool usebackBuffer, bool usezBuffer, irr::video::SColor color); + //TODO: Add one more for human readable colors and hex colors! + void IrrLib::DrawAll(); + void IrrLib::EndScene(); + void IrrLib::SetWindowCaption(irr::core::stringw str); + irr::core::stringw IrrLib::GetDriverName(); + //TODO: Make function to turn stringw to string and visa versa + void IrrLib::EndIrrlicht(); //Renamed from KillIrrlicht to EndIrrlicht + //TODO: Add logging + void IrrLib::KeyPress(char key); + char IrrLib::KeyPressed(); + +}; + +#endif diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Unstable Version/1.2b/IrrSphere.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Unstable Version/1.2b/IrrSphere.cpp Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,64 @@ +/* + Irrlicht Library Wrapper + Created by Nathan Adams + Version 1.1 + Copyright (C) 2007 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ +#include +#include "IrrLib.h" +#include "IrrSphere.h" +#include +#include + +using namespace irr; +using namespace core; +using namespace scene; +using namespace video; +using namespace io; +using namespace gui; + +using namespace std; + +void IrrSphere::SetSmgr(irr::scene::ISceneManager* smgr){ + this->smgr = smgr; +} + +void IrrSphere::SetDriver(irr::video::IVideoDriver* driver){ + this->driver = driver; +} + +int IrrSphere::CreateNewSphereNode(int x, int y, int z, std::string texture, bool light){ + //TODO: Resize after 10, and add 10 more to the mix! + this->nodeNew[this->numNodes] = this->smgr->addSphereSceneNode(); + this->nodeNew[this->numNodes]->setPosition(core::vector3df(x,y,z)); + this->nodeNew[this->numNodes]->setMaterialTexture(0, this->driver->getTexture(texture.c_str())); + this->nodeNew[this->numNodes]->setMaterialFlag(video::EMF_LIGHTING, light); + this->numNodes++; + return this->numNodes--; + /*this->node = this->smgr->addSphereSceneNode(); + this->node->setPosition(core::vector3df(x,y,z)); + this->node->setMaterialTexture(0, this->driver->getTexture(texture.c_str())); + this->node->setMaterialFlag(video::EMF_LIGHTING, light);*/ +} + +irr::core::vector3df IrrSphere::GetSphereVector(int sphere){ + return this->nodeNew[sphere]->getPosition(); +} + +void IrrSphere::SetSphereVector(int sphere, irr::core::vector3df v){ + this->nodeNew[sphere]->setPosition(v); +} + +IrrSphere::IrrSphere(){ + this->numNodes = 0; +} + +IrrSphere::~IrrSphere(){ + for(int i = 0; i < numNodes; ++i) + delete this->nodeNew[i]; + + delete this->nodeNew; +} diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Unstable Version/1.2b/IrrSphere.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Unstable Version/1.2b/IrrSphere.h Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,41 @@ +/* + Irrlicht Library Wrapper + Created by Nathan Adams + Version 1.1 + Copyright (C) 2007 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ + +#ifndef IRRSPHERE_H +#define IRRSPHERE_H +/* We should include some basic functions */ +#include +/* include strings */ +#include + +/* We have to include Irrlichts libs */ +#include + +#include "IrrLib.h" + + +class IrrSphere +{ + private: + irr::scene::ISceneNode* nodeNew[10]; + int numNodes; + irr::scene::ISceneManager* smgr; + irr::video::IVideoDriver* driver; + public: + void IrrSphere::SetDriver(irr::video::IVideoDriver* driver); + void IrrSphere::SetSmgr(irr::scene::ISceneManager* smgr); + int IrrSphere::CreateNewSphereNode(int x, int y, int z, std::string texture, bool light); //this is going to take my advanced C++ skillz! + irr::core::vector3df IrrSphere::GetSphereVector(int sphere); + void IrrSphere::SetSphereVector(int sphere, irr::core::vector3df v); + IrrSphere::IrrSphere(); + IrrSphere::~IrrSphere(); +}; + +#endif diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Unstable Version/1.3.0/CHANGES --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Unstable Version/1.3.0/CHANGES Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,58 @@ +Version 1.2 ++ Added a Irr3DLib class that will control all 3D objects ++ Also Added a Irr2D class that works on the same concept. ++ IrrSphere is now owned by Irr3DLib ++ Updated the examples using the latest code +Version 1.2.2 ++ Added IrrEventReciever to handle all input + - Still under work ++ Fixed some misc coding bugs ++ Added template class ++ Added sprite class ++ Added GUI class +Version 1.2.3 ++ IrrEventReciver now works as advertised ++ Baseclass is now being used + + A couple somewhat-useful functions + + int_to_string + + stringw_to_stdstring + + stdstring_to_stringw ++ GUI elements + + Static text is working ++ Under construction for a data type class +Version 1.2.4 ++ Implmented color codes accessiable through the class + + IrrLib.Color.RED (ect) +Version 1.2.5 ++ Implmented mouse events + + IrrLib.IrrEvent.getMouseX(); + + IrrLib.IrrEvent.getMouseY(); ++ Using vectors instead of static arrays + + Side note: Was going to use dynamic arrays, but C++ has vectors which are 10x better. ++ Added a default exit for when you hit esc + + Use IrrLib.IrrEvent.SetEscExit(false) to turn that off for your software + + Use IrrLib.IrrEvent.SetEscExit(true) to turn it back on ++ Every stable version will now include a windows DLL. + + Possible Linux .so file in the future. +Version 1.2.6 ++ Added a IrrEvent for buttons + + IrrLib.IrrEvent.checkButtonState(); + + See example for use ++ Added an AddButton function + + IrrLib.GUI.AddButton(..); + + See example for use ++ Problems with making the DLL + + reasearching +Version 1.2.7 ++ Fixed DLL Problem ++ Added an enum example to example 1 ++ Added more examples ++ Added example 9 ++ Added left click handling (see example 9) ++ Added AddLines function to Irr2D + + DrawLines function in Irr2D will draw the lines you add +Version 1.2.9 ++ Added Listbox GUI object ++ Added a new datatype IrrObj + + Contains 2 ints, 1 for object id and 1 for event id ++ Added a IrrData.h file \ No newline at end of file diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Unstable Version/1.3.0/CREDITS --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Unstable Version/1.3.0/CREDITS Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,8 @@ +IrrLib +Created by + Nathan Adams + Denzel Morris + +From #irrlicht + Acid + wacom \ No newline at end of file diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Unstable Version/1.3.0/Irr2D.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Unstable Version/1.3.0/Irr2D.cpp Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,82 @@ +/* + Irrlicht Library Wrapper + Created by: + Nathan Adams + Denzel Morris + Copyright (C) 2007 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ + +#include +//#include "IrrLib.h" +//#include "IrrSphere.h" //You probably aren't going to be using 3D objects in a 2D environment! +#include +#include + +#include "Irr2D.h" +#include "IrrSprite.h" + +using namespace irr; +using namespace core; +using namespace scene; +using namespace video; +using namespace io; +using namespace gui; + +using namespace std; + +Irr2D::Irr2D(){ + this->numTextures = 0; + this->numLines = 0; + //NA Should we set textures to new +} + +Irr2D::~Irr2D(){ + /*for(int i = 0; i < numTextures; ++i) + delete this->textures[i]; + + delete this->textures;*/ + //No more dynamic memory business yay! NA +} + +void Irr2D::SetSmgr(irr::scene::ISceneManager* smgr){ + this->smgr = smgr; + Sprite.SetSmgr(smgr); +} + +void Irr2D::SetDriver(irr::video::IVideoDriver* driver){ + this->driver = driver; + Sprite.SetDriver(driver); +} + +void Irr2D::LoadTexturemap(std::string file){ + this->texturemap = driver->getTexture(file.c_str()); +} + +int Irr2D::LoadTexture(std::string file){ + //this->textures[this->numTextures] = driver->getTexture(file.c_str()); + textures.push_back(driver->getTexture(file.c_str())); + this->numTextures++; + return numTextures--; +} + +void Irr2D::DrawLine(irr::core::position2d& start, irr::core::position2d& end, irr::video::SColor& color) +{ + this->driver->draw2DLine(start, end, color); +} + +void Irr2D::AddLines(irr::core::position2d& start, irr::core::position2d& end, irr::video::SColor& color) +{ + this->start.push_back(start); + this->end.push_back(end); + this->color.push_back(color); + this->numLines++; +} + +void Irr2D::DrawLines() +{ + for(int i = 0; i < numLines; ++i) + this->driver->draw2DLine(this->start[i], this->end[i], this->color[i]); +} diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Unstable Version/1.3.0/Irr2D.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Unstable Version/1.3.0/Irr2D.h Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,55 @@ +/* + Irrlicht Library Wrapper + Created by: + Nathan Adams + Denzel Morris + Copyright (C) 2007 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ + +#ifndef IRR2D_H +#define IRR2D_H +/* We should include some basic functions */ +#include +/* include strings */ +#include +#include + +/* We have to include Irrlichts libs */ +#include + +//#include "IrrLib.h" +#include "IrrSprite.h" + +class Irr2D { + private: + irr::scene::ISceneManager* smgr; + irr::video::IVideoDriver* driver; + irr::video::ITexture* texturemap; + int numTextures; + //irr::video::ITexture* textures[10]; + std::vector textures; + std::vector > start; + std::vector > end; + std::vector color; + int numLines; + public: + //Irr2D::Irr2D(); + IrrSprite Sprite; + Irr2D::Irr2D(); + Irr2D::~Irr2D(); + void Irr2D::SetDriver(irr::video::IVideoDriver* driver); + void Irr2D::SetSmgr(irr::scene::ISceneManager* smgr); + void Irr2D::LoadTexturemap(std::string file); + int Irr2D::LoadTexture(std::string file); + void Irr2D::DrawImage(int texture, const irr::core::position2d & destPos); + void Irr2D::DrawImage(const irr::core::position2d & destPos, const irr::core::rect & sourceRect, const irr::core::rect * clipRect, irr::video::SColor color, bool useAlphaChannelOfTexture); + void Irr2D::DrawLine(irr::core::position2d& start, irr::core::position2d& end, irr::video::SColor& color); + void Irr2D::DrawLines(); + void Irr2D::AddLines(irr::core::position2d& start, irr::core::position2d& end, irr::video::SColor& color); +}; + +#endif + diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Unstable Version/1.3.0/Irr3D.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Unstable Version/1.3.0/Irr3D.cpp Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,52 @@ +/* + Irrlicht Library Wrapper + Created by: + Nathan Adams + Denzel Morris + Copyright (C) 2007 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ + +#include +#include + +//#include "IrrLib.h" +//Libraries we create go here +#include "IrrSphere.h" +//#include "IrrColor.h" +#include "Irr3D.h" +#include +//#include "Irr2D.h" + +using namespace irr; +using namespace core; +using namespace scene; +using namespace video; +using namespace io; +using namespace gui; + +using namespace std; + +void Irr3D::SetDriver(irr::video::IVideoDriver* driver) //so much for copying and pasting code from the header file +{ + this->driver = driver; + Sphere.SetDriver(driver); +} + +void Irr3D::SetSmgr(irr::scene::ISceneManager* smgr) +{ + this->smgr = smgr; + Sphere.SetSmgr(smgr); +} + +Irr3D::Irr3D() +{ + //do stuff here! +} + +Irr3D::~Irr3D() +{ + //delete stuff here! +} diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Unstable Version/1.3.0/Irr3D.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Unstable Version/1.3.0/Irr3D.h Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,44 @@ +/* + Irrlicht Library Wrapper + Created by: + Nathan Adams + Denzel Morris + Copyright (C) 2007 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ + +#ifndef IRR3D_H +#define IRR3D_H + +/* We should include some basic functions */ +#include +/* include strings */ +#include + +/* We have to include Irrlichts libs */ +#include + +#include "IrrSphere.h" +//#include "IrrColor.h" +//#include "Irr3D.h" +//#include "Irr2D.h" This is a 3D class not 2D +/* However due to Irrlciht's nature mixing 2D with 3D is possible */ + +//Start class +class Irr3D { + + private: + + irr::video::IVideoDriver* driver; + irr::scene::ISceneManager* smgr; + public: + IrrSphere Sphere; + Irr3D::Irr3D(); + Irr3D::~Irr3D(); + void Irr3D::SetDriver(irr::video::IVideoDriver* driver); + void Irr3D::SetSmgr(irr::scene::ISceneManager* smgr); +}; + +#endif diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Unstable Version/1.3.0/IrrColor.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Unstable Version/1.3.0/IrrColor.cpp Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,113 @@ +/* + Irrlicht Library Wrapper + Created by: + Nathan Adams + Denzel Morris + Copyright (C) 2007 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ + +#include +#include +#include + +//#include "IrrLib.h" +#include "IrrColor.h" + +using namespace irr; +using namespace core; +using namespace scene; +using namespace video; +using namespace io; +using namespace gui; + +using namespace std; + +void IrrColor::Init(){ + /*SColor * temp; + temp = new SColor(alpha, 255, 0, 0); + this->RED = temp; + delete temp;*/ + this->RED = new SColor(alpha, 255, 0, 0); + this->ORANGE = new SColor(alpha, 255, 165, 0); + this->YELLOW = new SColor(alpha, 255, 255, 0); + this->GREEN = new SColor(alpha, 0, 255, 0); + this->BLUE = new SColor(alpha, 0, 0, 255); + this->DARK_GREEN = new SColor(alpha, 0, 100, 0); + this->PINK = new SColor(alpha, 255, 192, 203); + this->GREY = new SColor(alpha, 190, 190, 190); + this->WHITE = new SColor(alpha, 0, 0, 0); + this->BLACK = new SColor(alpha, 0, 0, 0); +} + +IrrColor::~IrrColor(){ + delete this->RED; + delete this->ORANGE; + delete this->YELLOW; + delete this->GREEN; + delete this->BLUE; + delete this->DARK_GREEN; + delete this->PINK; + delete this->GREY; + delete this->WHITE; + delete this->BLACK; +} + +IrrColor::IrrColor(){ + this->alpha = 255; + Init(); +} + +IrrColor::IrrColor(irr::u32 alpha){ + this->alpha = alpha; + Init(); +} + +int IrrColor::getAlpha(){ + return this->alpha; +} + +void IrrColor::setAlpha(int alpha){ + this->alpha = alpha; +} + +SColor IrrColor::returnColor(std::string color){ + int nColor = -1; + if (color == "red") + nColor = 1; + else if (color == "green") + nColor = 2; + else if (color == "blue") + nColor = 3; + else if (color == "dark green") + nColor = 4; + else if (color == "pink") + nColor = 5; + else if (color == "grey") + nColor = 6; + switch (nColor){ + case 1: + return SColor(255, 255, 0, 0); + break; + case 2: + return SColor(255, 0, 255, 0); + break; + case 3: + return SColor(255, 0, 0, 255); + break; + case 4: + return SColor(255, 0, 50, 0); + break; + case 5: + return SColor(255, 255, 10, 255); + break; + case 6: + return SColor(255,200,200,200); + break; + default: + return SColor(255,200,200,200); + break; + }// TODO: Make this function modular +} diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Unstable Version/1.3.0/IrrColor.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Unstable Version/1.3.0/IrrColor.h Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,53 @@ +/* + Irrlicht Library Wrapper + Created by: + Nathan Adams + Denzel Morris + Copyright (C) 2007 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ + +#ifndef IRRCOLOR_H +#define IRRCOLOR_H + +#include +#include +#include "irrlicht.h" +//#include "IrrLib.h" + +class IrrColor { + private: + irr::u32 alpha; + void Init(); + //who knows? + public: + //irr::video::SColor(alpha, 255, 0, 0); + const irr::video::SColor* RED; + const irr::video::SColor* ORANGE; + const irr::video::SColor* YELLOW; + const irr::video::SColor* GREEN; + const irr::video::SColor* BLUE; + const irr::video::SColor* DARK_GREEN; + const irr::video::SColor* PINK; + const irr::video::SColor* GREY; + const irr::video::SColor* WHITE; + const irr::video::SColor* BLACK; + /*const ORANGE = irr::video::SColor(alpha, 255, 165, 0); + const YELLOW = irr::video::SColor(alpha, 255, 255, 0); + const GREEN = irr::video::SColor(alpha, 0, 255, 0); + const BLUE = irr::video::SColor(alpha, 0, 0, 255); + const DARK_GREEN = irr::video::SColor(alpha, 0, 100, 0); + const PINK = irr::video::SColor(alpha, 255, 192, 203); + const GREY = irr::video::Scolor(alpha, 190, 190, 190);*/ + //void IrrColor::test(); + IrrColor(); + IrrColor(irr::u32 alpha); + ~IrrColor(); + int getAlpha(); + void setAlpha(int alpha); + irr::video::SColor IrrColor::returnColor(std::string color); +}; + +#endif diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Unstable Version/1.3.0/IrrData.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Unstable Version/1.3.0/IrrData.h Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,21 @@ +#ifndef IRRDATA_H +#define IRRDATA_H + +typedef irr::core::dimension2d PixelSize; + +struct pixels { + int width; + int height; +}; //possible future use in 2D objects when specifying the properties of an object draw + +struct IrrObj { + int eventid; + int objectid; +}; + +struct _mouse { + int x; + int y; +}; + +#endif diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Unstable Version/1.3.0/IrrEventReciever.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Unstable Version/1.3.0/IrrEventReciever.cpp Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,163 @@ +/* + Irrlicht Library Wrapper + Created by: + Nathan Adams + Denzel Morris + Copyright (C) 2007 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ + +#include "IrrEventReciever.h" +//#include "IrrLib.h" +#include +#include + +using namespace irr; +using namespace core; +using namespace scene; +using namespace video; +using namespace io; +using namespace gui; + +using namespace std; + +/*void IrrEventReciever::setIrrLib(IrrLib& IrrLib) +{ + this.callingIrrLib = IrrLib; +}*/ + +IrrEventReciever::IrrEventReciever() +{ + this->escexit = true; + this->mouse.x = 0; + this->mouse.y = 0; +} + +bool IrrEventReciever::OnEvent(SEvent event) +{ + // A button was clicked + if (event.EventType == irr::EET_GUI_EVENT) + { + s32 id = event.GUIEvent.Caller->getID(); + switch(event.GUIEvent.EventType){ + case EGET_BUTTON_CLICKED: + //cout << id << endl; + buttonStates.push_back(id); + break; + case EGET_LISTBOX_CHANGED: + //s32 id = event.GUIEvent.Caller->getID(); + listStates.push_back(id); + break; + case EGET_LISTBOX_SELECTED_AGAIN: + listStates.push_back(id); + break; + default: + break; + } + } + /*if (event.EventType == irr::EGET_SCROLL_BAR_CHANGED) + { + + }*/ + if (event.EventType == irr::EET_KEY_INPUT_EVENT) { + if (!event.KeyInput.PressedDown){ + this->keyStates[event.KeyInput.Key] = false; + //cout << "Key was not hit " << this->keyStates[event.KeyInput.Key] << endl; + } + else{ + if(event.KeyInput.Key == KEY_ESCAPE && escexit) + this->device->closeDevice(); + this->keyStates[event.KeyInput.Key] = true; + //cout << "Key was hit: " << event.KeyInput.Key << " " << this->keyStates[event.KeyInput.Key] << endl; + } + } + if (event.EventType == EET_MOUSE_INPUT_EVENT){ + if (event.MouseInput.Event == EMIE_MOUSE_MOVED){ + this->mouse.x = event.MouseInput.X; + this->mouse.y = event.MouseInput.Y; + } + if (event.MouseInput.Event == EMIE_LMOUSE_PRESSED_DOWN) + this->mouseStates[0] = true; + if (event.MouseInput.Event == EMIE_LMOUSE_LEFT_UP) + this->mouseStates[0] = false; + } + return false; +} + +void IrrEventReciever::SetEscExit(bool onoff) +{ + this->escexit = onoff; +} + +int IrrEventReciever::getMouseX() +{ + return this->mouse.x; +} + +int IrrEventReciever::getMouseY() +{ + return this->mouse.y; +} + +int IrrEventReciever::getButtonState() +{ + if(!this->buttonStates.empty()){ + int id; + id = buttonStates.back(); + this->buttonStates.pop_back(); + return id; + } + else + return -1; +} + +int IrrEventReciever::getRevButtonState() +{ + if(!this->buttonStates.empty()){ + int id = buttonStates.front(); + this->buttonStates.erase(buttonStates.begin()); + return id; + } + else + return -1; +} + +void IrrEventReciever::clearButtonState() +{ + this->buttonStates.clear(); +} + +int IrrEventReciever::checkButtonState() +{ + if(!this->buttonStates.empty()) + return this->buttonStates.back(); + else + return -1; +} + +void IrrEventReciever::delLastButtonStat() +{ + if(!this->buttonStates.empty()) + this->buttonStates.pop_back(); +} + +bool IrrEventReciever::isButtonStateEmpty() +{ + return this->buttonStates.empty(); +} + +int IrrEventReciever::checkListState() +{ + if(!this->listStates.empty()) + return this->listStates.back(); + else + return -1; +} + +void IrrEventReciever::delLastListStat() +{ + if(!this->listStates.empty()) + this->listStates.pop_back(); +} diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Unstable Version/1.3.0/IrrEventReciever.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Unstable Version/1.3.0/IrrEventReciever.h Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,51 @@ +/* + Irrlicht Library Wrapper + Created by: + Nathan Adams + Denzel Morris + Copyright (C) 2007 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ + +#ifndef IRREVENTRECIEVER_H +#define IRREVENTRECIEVER_H + +//#include "IrrLib.h" +#include +#include +#include "IrrLibBase.h" +#include "IrrData.h" +#include + + + +class IrrEventReciever : public irr::IEventReceiver, public IrrLibBase +{ + private: + //IrrLib callingIrrLib; + _mouse mouse; + bool escexit; + std::vector buttonStates; + std::vector listStates; + public: + bool mouseStates[1]; + IrrEventReciever(); + int getMouseX(); + int getMouseY(); + bool keyStates[irr::KEY_KEY_CODES_COUNT]; + //void setIrrLib(IrrLib& IrrLib) + virtual bool OnEvent(irr::SEvent event); + void SetEscExit(bool onoff); + int getButtonState(); + int getRevButtonState(); + void clearButtonState(); + int checkButtonState(); + void delLastButtonStat(); + bool isButtonStateEmpty(); //is there still stuff in the vector to be done? NA + int checkListState(); + void delLastListStat(); +}; + +#endif diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Unstable Version/1.3.0/IrrLib.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Unstable Version/1.3.0/IrrLib.cpp Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,280 @@ +/* + Irrlicht Library Wrapper + Created by: + Nathan Adams + Denzel Morris + Copyright (C) 2007 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ + +#include +#include +#include +#include +#include + +#include "IrrLib.h" +//Libraries we create go here +//#include "IrrSphere.h" +#include "IrrColor.h" +//#include "Irr2D.h" + +using namespace irr; +using namespace core; +using namespace scene; +using namespace video; +using namespace io; +using namespace gui; + +using namespace std; + +//TODO: Create own class for handling inputs! + + +/*IrrLib::IrrLib(MastEventReceiver & receiver){ + this->device = createDevice(EDT_SOFTWARE, dimension2d(640, 480), 16, false, false, false, &receiver); + if (this->device == 0) + exit(1); + IrrLib::Init(); +}*/ + +IrrLib::IrrLib(){ + this->device = createDevice(EDT_SOFTWARE, dimension2d(640, 480), 16, false, false, false, &this->IrrEvent); + if (this->device == 0) + exit(1); + IrrLib::Init(); +} + +IrrLib::IrrLib(video::E_DRIVER_TYPE drivertype, core::dimension2d & res, u32 bits, bool fullscreen, bool stencilbuffer, bool vsync){ + //MyEventReceiver receiver; + this->device = createDevice(drivertype, res, bits, fullscreen, stencilbuffer, vsync, &this->IrrEvent); + if (this->device == 0) + exit(1); + IrrLib::Init(); +} + +IrrLib::IrrLib(int nDrivertype, int width, int height, int bits, bool fullscreen, bool stencilbuffer, bool vsync){ + //MyEventReceiver receiver; + video::E_DRIVER_TYPE drivertype; + switch (nDrivertype){ + case 0: //TODO: finish this switch case + drivertype = EDT_NULL; + break; + case 1: + drivertype = EDT_SOFTWARE; + break; + case 2: + drivertype = EDT_BURNINGSVIDEO; + break; + case 3: + drivertype = EDT_OPENGL; + break; + case 4: + drivertype = EDT_DIRECT3D8; + //*Note: It seems as Microsoft has stoped supporting DX 8.1, so you can not compile it into Irrlicht engine anymore + //TODO: Find how to detect if DX is complied into Irrlicht + //TODO: Find how to detecht for linux + break; + case 5: + drivertype = EDT_DIRECT3D9; + break; + default: + drivertype = EDT_SOFTWARE; + break; + } + this->device = createDevice(drivertype, dimension2d(width, height), bits, fullscreen, stencilbuffer, vsync, &this->IrrEvent); + if (this->device == 0) + exit(1); + IrrLib::Init(); +} + +IrrLib::~IrrLib (){ //Our moms wont clean up after us! + //Although I'm sure Irrlicht does this for us already, its always a good idea to check! + /*if (this->device != NULL) + delete this->device; + if (this->driver != NULL) + delete this->driver; + if (this->smgr != NULL) + delete this->smgr; + if (this->mesh != NULL) + delete this->mesh; + if (this->node != NULL) + delete this->node;*/ //it seems Irrlicht picks up after us... + //however we created newNodes, now we need to delete it! +} + +void IrrLib::Init(){ + //this->numNodes = 0; + //this->nodeNew = new ISceneNode[10]; + //this->env->addStaticText(L"Transparent Control:", rect(20,30,300,80), true); + this->env = this->device->getGUIEnvironment(); + this->driver = this->device->getVideoDriver(); + this->smgr = this->device->getSceneManager(); + Irr3DLib.SetSmgr(this->smgr); + Irr3DLib.SetDriver(this->driver); + Irr2DLib.SetSmgr(this->smgr); + Irr2DLib.SetDriver(this->driver); + GUI.SetEnv(this->env); + IrrEvent.SetDevice(this->device); + this->timer = this->device->getTimer(); + tick = this->timer->getRealTime(); +} + +void IrrLib::ReadArchive(std::string file){ + this->device->getFileSystem()->addZipFileArchive(file.c_str()); +} + +void IrrLib::LoadQ3Level(std::string q3level){ + this->mesh = this->smgr->getMesh(q3level.c_str()); + this->node = 0; + if (this->mesh) + this->node = this->smgr->addOctTreeSceneNode(this->mesh->getMesh(0), 0, -1, 128); +} + +void IrrLib::MapPos(int x, int y, int z){ + if (this->node) + this->node->setPosition(core::vector3df(x, y, z)); +} + +void IrrLib::MapPos(){ + if (this->node) + this->node->setPosition(core::vector3df(0, 0, 0)); +} + +void IrrLib::AddFPSCam(){ + this->cam = this->smgr->addCameraSceneNodeFPS(); +} + +void IrrLib::AddFPSCam(f32 x, f32 y, f32 z) +{ + this->cam = this->smgr->addCameraSceneNodeFPS(); + this->cam->setPosition(irr::core::vector3df(x, y, z)); +} + +void IrrLib::VisibleCursor(bool tf){ + if (tf == false) + this->device->getCursorControl()->setVisible(false); + else + this->device->getCursorControl()->setVisible(true); +} + +int IrrLib::GetFPSCount(){ + return this->driver->getFPS(); +} + +bool IrrLib::DeviceIsRunning(){ + return this->device->run(); +} + +bool IrrLib::IsActiveWindow(){ + return this->device->isWindowActive(); +} + +void IrrLib::BeginScene(){ + this->driver->beginScene(true, true, video::SColor(0,200,200,200)); +} + +void IrrLib::BeginScene(irr::video::SColor color){ + this->driver->beginScene(true, true, color); +} + +void IrrLib::BeginScene(bool usebackBuffer, bool usezBuffer, irr::video::SColor color){ + this->driver->beginScene(usebackBuffer, usezBuffer, color); +} + +void IrrLib::DrawAll(){ + //position2d start(50, 50); + //position2d end(100,100); + // SColor whitecolor(255,255,255,255); +//driver->draw2DLine(start, end, whitecolor); + this->smgr->drawAll(); + this->env->drawAll(); + //this->device->getGUIEnvironment()->drawAll(); + } + +void IrrLib::EndScene(){ + this->driver->endScene(); +} + +void IrrLib::SetWindowCaption(stringw str){ + this->device->setWindowCaption(str.c_str()); +} + +irr::core::stringw IrrLib::GetDriverName(){ + return this->driver->getName(); +} + +void IrrLib::EndIrrlicht(){ + if(this->device != NULL){ + this->device->drop(); + this->device = NULL; + } +} + +void IrrLib::KeyPress(char key){ + this->key = key; +} + +char IrrLib::KeyPressed(){ + return key; +} + +irr::f32 IrrLib::getX(){ + return this->smgr->getActiveCamera()->getPosition().X; +} + +irr::f32 IrrLib::getY(){ + return this->smgr->getActiveCamera()->getPosition().Y; +} + +irr::f32 IrrLib::getZ(){ + return this->smgr->getActiveCamera()->getPosition().Z; +} + +bool IrrLib::CheckGameLoop(){ + u32 now; + now = this->timer->getRealTime(); + if ((now - this->tick) >= 30){ + //this->tick == time (NULL); + return true; + } else { + return false; + } +} + +bool IrrLib::CheckGameLoop(u32 ms){ + u32 now; + now = this->timer->getRealTime(); + if ((now - this->tick) >= ms){ + this->tick = now; + return true; + } else { + return false; + } +} + +void IrrLib::Exit() +{ + this->device->closeDevice(); +} + +PixelSize IrrLib::GetScreenSize() +{ + return this->driver->getScreenSize(); + /*pixels returnres; + returnres.width = screenres.Width; + returnres.height = screenres.Height; + return returnres;*/ + +} + +//template std::string IrrLib::to_string (T t) +/*std::string IrrLib::int_to_string (int t) +{ + std::stringstream ss; + ss << t; + return ss.str(); +}*/ +// This is in the base class now, every class that decends from that class has this ability. diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Unstable Version/1.3.0/IrrLib.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Unstable Version/1.3.0/IrrLib.h Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,125 @@ +/* + Irrlicht Library Wrapper + Created by: + Nathan Adams + Denzel Morris + Copyright (C) 2007 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ + +#ifndef IRRLIB_H +#define IRRLIB_H + +/* We should include some basic functions */ +#include +/* include strings */ +#include +#include +#include + +/* We have to include Irrlichts libs */ + + +#include "Irr3D.h" +#include "IrrColor.h" +#include "IrrLibGUI.h" +#include "IrrEventReciever.h" +#include "Irr2D.h" +#include "IrrLibBase.h" +#include "IrrData.h" + +/*struct IrrObj { + int eventid; + int objectid; +};*/ + +//Start class +class IrrLib: public IrrLibBase { + + private: + /* Create an Irrlicht device as private because the class should handle + All irrlicht interaction */ + irr::IrrlichtDevice *device; + // Tells Irrlicht what driver to use + //video::E_DRIVER_TYPE driverType; + + /* + Get a pointer to the video driver and the SceneManager so that + we do not always have to write device->getVideoDriver() and + device->getSceneManager(). + */ + irr::video::IVideoDriver* driver; + irr::scene::ISceneManager* smgr; + irr::gui::IGUIEnvironment* env; + + /* + Get a pointer to the 'mesh' aka the level. + Note: This is for Quake3 levels, ie bsp maps. + */ + irr::scene::IAnimatedMesh* mesh; + irr::scene::ISceneNode* node; + irr::scene::ISceneNode * tempNode; //use this to store nodeNew's data so we can resize it + irr::scene::ICameraSceneNode * cam; + char key; + + + void IrrLib::Init(); + /*friend class IrrColor; + friend class Irr2DLib; + friend class Sphere;*/ + friend class IrrEventReciever; + irr::u32 tick; + irr::ITimer* timer; + public: + //IrrSphere Sphere; //This has to be public to be able to access the Sphere class + /* IrrSphere is now in Irr3D class */ + //Prehaps put this into a IrrLib3D class? + Irr3D Irr3DLib; + IrrColor Color; //Color class...not much of a class but lets keep it OO + Irr2D Irr2DLib; //1/2 variable to be labeled like this due to variables not able to begin with a number + IrrLibGUI GUI; + IrrEventReciever IrrEvent; + IrrLib::IrrLib(); + //IrrLib::IrrLib(MastEventReceiver & receiver); + IrrLib::IrrLib(irr::video::E_DRIVER_TYPE drivertype, irr::core::dimension2d & res, irr::u32 bits, bool fullscreen, bool stencilbuffer, bool vsync); + IrrLib::IrrLib(int drivertype, int width, int height, int bits, bool fullscreen, bool stencilbuffer, bool vsync); + IrrLib::~IrrLib(); //Our moms wont clean up after us! + void IrrLib::ReadArchive(std::string file); + void IrrLib::LoadQ3Level(std::string q3level); + void IrrLib::MapPos(int x, int y, int z); //I think this moves the actual camera? + void IrrLib::MapPos(); + void IrrLib::AddFPSCam(); + void IrrLib::AddFPSCam(irr::f32 x, irr::f32 y, irr::f32 z); + void IrrLib::VisibleCursor(bool tf); + int IrrLib::GetFPSCount(); + bool IrrLib::DeviceIsRunning(); + bool IrrLib::IsActiveWindow(); + void IrrLib::BeginScene(); + void IrrLib::BeginScene(irr::video::SColor color); + //void IrrLib::BeginScene(irr::video::SColor * color); + void IrrLib::BeginScene(bool usebackBuffer, bool usezBuffer, irr::video::SColor color); + //TODO: Add one more for human readable colors and hex colors! + void IrrLib::DrawAll(); + void IrrLib::EndScene(); + void IrrLib::SetWindowCaption(irr::core::stringw str); + irr::core::stringw IrrLib::GetDriverName(); + //TODO: Make function to turn stringw to string and visa versa + void IrrLib::EndIrrlicht(); //Renamed from KillIrrlicht to EndIrrlicht + //TODO: Add logging + void IrrLib::KeyPress(char key); + char IrrLib::KeyPressed(); + irr::f32 getX(); + irr::f32 getY(); + irr::f32 getZ(); + bool CheckGameLoop(); + bool CheckGameLoop(irr::u32 ms); + void Exit(); + PixelSize GetScreenSize(); + //void EndGameLoop(); + //template std::string to_string (T t); + +}; + +#endif diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Unstable Version/1.3.0/IrrLibBase.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Unstable Version/1.3.0/IrrLibBase.cpp Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,118 @@ +/* + Irrlicht Library Wrapper + Created by: + Nathan Adams + Denzel Morris + Copyright (C) 2007 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ + +#include +#include +#include "IrrLibBase.h" +#include +#include + +using namespace irr; +using namespace core; +using namespace scene; +using namespace video; +using namespace io; +using namespace gui; + +using namespace std; + +/* +* Code from http://articles.techrepublic.com.com/5100-22-5079969.html# +* + +struct str_stream +{ + std::stringstream & underlying_stream() const + { return m_streamOut; } + + operator std::string() const + { + return m_streamOut.str(); + } +private: + mutable std::stringstream m_streamOut; +}; + +template< class type> +inline const str_stream & operator<< ( const str_stream & out, const type & value) +{ + out.underlying_stream() << value; + return out; + +} + +template std::string to_string( const type & value) +{ + std::ostringstream streamOut; + + streamOut << value; + + return streamOut.str(); +} + +* End code copy +*/ + +void IrrLibBase::SetDriver(IVideoDriver* driver) //can be overloaded +{ + this->driver = driver; +} + +void IrrLibBase::SetSmgr(ISceneManager* smgr) +{ + this->smgr = smgr; +} + +std::string IrrLibBase::wchar_to_stdstring (const wchar_t* wc) +{ + //cout << "Starting conversion"; + //wcstombs(tmp, in, 255); + char c[255]; + for(int t = 0; wc[t] != '\0'; t++) + c[t] = (char)wc[t]; + + /*for(int t = 0; c[t] != '\0'; t++) + wc[t] = c[t];*/ + + std::stringstream ss; + ss << c; + //cout << "Conversion OK"; + return ss.str(); +} + +std::string IrrLibBase::int_to_string (int t) +{ + std::stringstream ss; + ss << t; + return ss.str(); +} + +std::string IrrLibBase::stringw_to_stdstring(irr::core::stringw sw) +{ + std::stringstream ss; + ss << sw.c_str(); + return ss.str(); +} +irr::core::stringw IrrLibBase::stdstring_to_stringw(std::string ss) +{ + stringw tmpw(ss.c_str()); + return tmpw; +} + +void IrrLibBase::SetDevice(irr::IrrlichtDevice *device) +{ + this->device = device; +} + +void IrrLibBase::init() +{ + +} diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Unstable Version/1.3.0/IrrLibBase.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Unstable Version/1.3.0/IrrLibBase.h Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,44 @@ +/* + Irrlicht Library Wrapper + Created by: + Nathan Adams + Denzel Morris + Copyright (C) 2007 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ + +#ifndef IRRLIBBASE_H +#define IRRLIBBASE_H + +/* We should include some basic functions */ +#include +/* include strings */ +#include + +/* We have to include Irrlichts libs */ +#include + + +class IrrLibBase { + + protected: + irr::video::IVideoDriver* driver; + irr::scene::ISceneManager* smgr; + irr::IrrlichtDevice *device; + public: + //template std::string to_string( const type & value); + irr::core::dimension2d irrpixels; + void IrrLibBase::SetDriver(irr::video::IVideoDriver* driver); + void IrrLibBase::SetSmgr(irr::scene::ISceneManager* smgr); + void SetDevice(irr::IrrlichtDevice *device); + std::string int_to_string (int t); + std::string stringw_to_stdstring(irr::core::stringw sw); + irr::core::stringw stdstring_to_stringw(std::string ss); + std::string wchar_to_stdstring (const wchar_t* wc); + void init(); + +}; + +#endif diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Unstable Version/1.3.0/IrrLibGUI.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Unstable Version/1.3.0/IrrLibGUI.cpp Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,225 @@ +/* + Irrlicht Library Wrapper + Created by: + Nathan Adams + Denzel Morris + Copyright (C) 2007 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ + +#include +#include +#include +#include +#include + +#include "IrrLib.h" +#include "IrrData.h" +#include "IrrLibGUI.h" +#include "IrrLibBase.h" +#include + +using namespace irr; +using namespace core; +using namespace scene; +using namespace video; +using namespace io; +using namespace gui; + +using namespace std; + +template std::string to_string( const type & value) +{ + std::ostringstream streamOut; + + streamOut << value; + + return streamOut.str(); +} + +IrrLibGUI::IrrLibGUI() +{ + //NA does it need to do anything at init? + this->nStaticText = 0; + this->nButton = 0; + this->nButtonid = 100; + this->nListBoxid = 200; + this->nListBox = 0; + //this->nListBoxid = 300; + //this->arrStaticText = new IGUIStaticText[10]; + //this->env = this->device->getGUIEnvironment(); //NA yes we do! +} + +IrrLibGUI::~IrrLibGUI() +{ + //NA Do we have to delete anything? +} + +void IrrLibGUI::SetEnv(IGUIEnvironment* env) +{ + this->env = env; + //env->addButton(rect(10,210,110,210 + 32), 0, 109, L"Quit", L"Exits Program"); +} + +int IrrLibGUI::addButton(const core::rect< s32 > & rectangle, IGUIElement *parent, s32 id, const wchar_t * text, const wchar_t * tooltiptext) +{ + arrButton.push_back(this->env->addButton(rectangle, parent, id, text, tooltiptext)); + ++nButton; + ++nButtonid; + return nButtonid - 1; +} + +IrrObj IrrLibGUI::addListBox(const irr::core::rect< irr::s32 > &rectangle, IGUIElement * parent) +{ + irr::gui::IGUIListBox* tmp = this->env->addListBox(rectangle, parent, nListBoxid); + arrListBox.push_back(tmp); + //we introduce a new datatype; IrroObj + IrrObj ret; + ret.eventid = nListBoxid; + ret.objectid = nListBox; + ++nListBox; + ++nListBoxid; + return ret; +} + +IrrObj IrrLibGUI::AddListBox(int x1, int y1, int x2, int y2, IGUIElement * parent) +{ + return addListBox(rect(x1, y1, x2, y2), parent); +} + +IrrObj IrrLibGUI::AddListBox(const irr::core::rect< irr::s32 > &rectangle, IGUIElement * parent) +{ + return addListBox(rectangle, parent); +} + +void IrrLibGUI::AddStringToListBox(int nLbox, std::string text) +{ + this->arrListBox[nLbox]->addItem(stdstring_to_stringw(text).c_str()); + //this->arrListBox[0]->addItem(L"TEST"); +} + +std::string IrrLibGUI::getSelectListString(IrrObj lstbox) +{ + //stringc tmp = this->arrListBox[lstbox]->getListItem(this->arrListBox[lstbox]->getSelected()); + s32 selected = this->arrListBox[lstbox.objectid]->getSelected(); + //const wchar_t* tmp = this->arrListBox[lstbox]->getListItem(selected); + //irr::core::stringw tmp; + char out[255]; + //tmp = this->arrListBox[lstbox]->getText(); + irr::core::stringc tmp(arrListBox[lstbox.objectid]->getListItem(arrListBox[lstbox.objectid]->getSelected())); + //cout << tmp.c_str() << endl; + //wcstombs(out, tmp, tmp.length()); + //cout << tmp[0] << endl; + // std::stringstream ss; + //for (int i = 0; i < tmp.size(); ++i) + //ss << tmp.c_str(); + std::string ret = tmp.c_str(); + return ret; +} + +void IrrLibGUI::Clear() +{ + this->env->clear(); +} + +void IrrLibGUI::DrawAll() +{ + this->env->drawAll(); +} + +int IrrLibGUI::AddToStaticArray(irr::gui::IGUIStaticText * addme) +{ + //arrStaticText[nStaticText] = addme; + arrStaticText.push_back(addme); + this->nStaticText++; + this->nButtonid++; + return this->nStaticText; +} + +void IrrLibGUI::AddStaticText() +{ + //rect(20,30,300,80), + this->env->addStaticText(L"Powered by IrrLib.", rect(20,30,300,80), true); +} + +int IrrLibGUI::AddStaticText(std::string message) +{ + irr::gui::IGUIStaticText * addthis; + stringw tmpw(message.c_str()); + addthis = this->env->addStaticText(tmpw.c_str(), rect(20,30,300,80), true); + return AddToStaticArray(addthis); +} + +int IrrLibGUI::AddStaticText(std::string message, int x1, int y1, int x2, int y2) +{ + irr::gui::IGUIStaticText * addthis; + stringw tmpw(message.c_str()); + addthis = this->env->addStaticText(tmpw.c_str(), rect(x1,y1,x2,y2), true); + return AddToStaticArray(addthis); +} + +int IrrLibGUI::AddStaticText(std::string message, int x1, int y1, int x2, int y2, bool border, bool wordwrap) +{ + irr::gui::IGUIStaticText * addthis; + stringw tmpw(message.c_str()); + addthis = this->env->addStaticText(tmpw.c_str(), rect(x1,y1,x2,y2), border, wordwrap); + return AddToStaticArray(addthis); +} + +int IrrLibGUI::AddStaticText(std::string message, int x1, int y1, int x2, int y2, bool border, bool wordwrap, int id, bool fillbackground) +{ + irr::gui::IGUIStaticText * addthis; + stringw tmpw(message.c_str()); + addthis = this->env->addStaticText(tmpw.c_str(), rect(x1,y1,x2,y2), border, wordwrap, 0, id, fillbackground); + return AddToStaticArray(addthis); +} + +int IrrLibGUI::AddStaticText(std::string message, const core::rect< s32 > &rectangle) +{ + irr::gui::IGUIStaticText * addthis; + stringw tmpw(message.c_str()); + addthis = this->env->addStaticText(tmpw.c_str(), rectangle); + return AddToStaticArray(addthis); +} + +int IrrLibGUI::AddStaticText(std::string message, const core::rect< s32 > &rectangle, bool border, bool wordwrap) +{ + irr::gui::IGUIStaticText * addthis; + stringw tmpw(message.c_str()); + addthis = this->env->addStaticText(tmpw.c_str(), rectangle, border, wordwrap); + return AddToStaticArray(addthis); +} + +int IrrLibGUI::AddStaticText(std::string message, const core::rect< s32 > &rectangle, bool border, bool wordwrap, int id, bool fillbackground) +{ + irr::gui::IGUIStaticText * addthis; + stringw tmpw(message.c_str()); + addthis = this->env->addStaticText(tmpw.c_str(), rectangle, border, wordwrap, 0, id, fillbackground); + return AddToStaticArray(addthis); +} + +void IrrLibGUI::ChangeStaticText(int nstatictext, std::string message) +{ + stringw tmpw(message.c_str()); + this->arrStaticText[this->nStaticText-1]->setText(tmpw.c_str()); +} + +void IrrLibGUI::ChangeFont(std::string fontfile) +{ + IGUISkin* skin = this->env->getSkin(); + IGUIFont* font = this->env->getFont(fontfile.c_str()); + if (font) + skin->setFont(font); +} + +int IrrLibGUI::AddButton(std::string text, int x1, int y1, int x2, int y2, std::string tooltiptext = "") +{ + return addButton(rect(x1, y1, x2, y2), 0, nButtonid, stdstring_to_stringw(text).c_str(), stdstring_to_stringw(tooltiptext).c_str()); +} + +int IrrLibGUI::AddButton(std::string text, core::rect & rect, std::string tooltiptext = "") +{ + return addButton(rect, 0, nButtonid, stdstring_to_stringw(text).c_str(), stdstring_to_stringw(tooltiptext).c_str()); +} diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Unstable Version/1.3.0/IrrLibGUI.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Unstable Version/1.3.0/IrrLibGUI.h Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,69 @@ +/* + Irrlicht Library Wrapper + Created by: + Nathan Adams + Denzel Morris + Copyright (C) 2007 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ + +#ifndef IRRLIBGUI_H +#define IRRLIBGUI_H + +#include +#include +#include +#include "IrrLib.h" +#include "IrrData.h" +#include "IrrLibBase.h" + +class IrrLibGUI: public IrrLibBase { + private: + irr::gui::IGUISkin* skin; + irr::gui::IGUIFont* font; + irr::gui::IGUIEnvironment* env; + //TODO: Create an array storing all messages + int nStaticText; + //irr::gui::IGUIStaticText* arrStaticText[10]; + int nButton; + int nButtonid; + int nListBox; + int nListBoxid; + std::vector arrStaticText; + std::vector arrButton; + std::vector arrListBox; + int AddToStaticArray(irr::gui::IGUIStaticText * addme); + int addButton(const irr::core::rect< irr::s32 > & rectangle, irr::gui::IGUIElement *parent = 0, irr::s32 id = 0, const wchar_t * text = 0, const wchar_t * tooltiptext = 0); //TODO: Clean this up! + IrrObj addListBox(const irr::core::rect< irr::s32 > &rectangle, irr::gui::IGUIElement * parent); + public: + IrrLibGUI(); + ~IrrLibGUI(); + void SetEnv(irr::gui::IGUIEnvironment* env); + void Clear(); + void DrawAll(); + //irr::gui::IGUIStaticText* IrrLibGUI::AddStaticText(); //NA eh a default text adder why not? + /* This is bad coding, we do not want to return an irrlicht object, we want to return a standard datatype because this class handles the GUI elements, not the user. */ + void AddStaticText(); //NA eh a default text adder why not? + int AddStaticText(std::string message); + int AddStaticText(std::string message, int x1, int y1, int x2, int y2); + int AddStaticText(std::string message, int x1, int y1, int x2, int y2, bool border, bool wordwrap); + int AddStaticText(std::string message, int x1, int y1, int x2, int y2, bool border, bool wordwrap, int id, bool fillbackground); + int AddStaticText(std::string message, const irr::core::rect< irr::s32 > &rectangle); + int AddStaticText(std::string message, const irr::core::rect< irr::s32 > &rectangle, bool border, bool wordwrap); + int AddStaticText(std::string message, const irr::core::rect< irr::s32 > &rectangle, bool border, bool wordwrap, int id, bool fillbackground); + int AddButton(std::string text, int x1, int y1, int x2, int y2, std::string tooltiptext); + int AddButton(std::string text, irr::core::rect & rect, std::string tooltiptext); //TODO: Add move functions + IrrObj AddListBox(int x1, int y1, int x2, int y2, irr::gui::IGUIElement * parent = 0); + IrrObj AddListBox(const irr::core::rect< irr::s32 > &rectangle, irr::gui::IGUIElement * parent = 0); + void AddStringToListBox(int nLbox, std::string text); + void ChangeStaticText(int nstatictext, std::string message); + void ChangeFont(std::string fontfile); + std::string getSelectListString(IrrObj lstbox); + //std::string getSelectListString(int lstbox); + +}; + + +#endif diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Unstable Version/1.3.0/IrrSphere.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Unstable Version/1.3.0/IrrSphere.cpp Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,71 @@ +/* + Irrlicht Library Wrapper + Created by Nathan Adams + Copyright (C) 2007 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ +#include +#include "IrrLib.h" +#include "IrrSphere.h" +#include +#include + +using namespace irr; +using namespace core; +using namespace scene; +using namespace video; +using namespace io; +using namespace gui; + +using namespace std; + +void IrrSphere::SetSmgr(irr::scene::ISceneManager* smgr){ + this->smgr = smgr; +} + +void IrrSphere::SetDriver(irr::video::IVideoDriver* driver){ + this->driver = driver; +} + +int IrrSphere::CreateNewSphereNode(int x, int y, int z, std::string texture, bool light){ + //TODO: Resize after 10, and add 10 more to the mix! + //this->nodeNew[this->numNodes] = this->smgr->addSphereSceneNode(); + //this->sphereNodes[this->numNodes]->setPosition(core::vector3df(x,y,z)); + //this->sphereNodes[this->numNodes]->setMaterialTexture(0, this->driver->getTexture(texture.c_str())); + //this->sphereNodes[this->numNodes]->setMaterialFlag(video::EMF_LIGHTING, light); + nodeNew = this->smgr->addSphereSceneNode(); + nodeNew->setPosition(core::vector3df(x,y,z)); + nodeNew->setMaterialTexture(0, this->driver->getTexture(texture.c_str())); + nodeNew->setMaterialFlag(video::EMF_LIGHTING, light); + sphereNodes.push_back(nodeNew); + this->numNodes++; + return this->numNodes--; + /*this->node = this->smgr->addSphereSceneNode(); + this->node->setPosition(core::vector3df(x,y,z)); + this->node->setMaterialTexture(0, this->driver->getTexture(texture.c_str())); + this->node->setMaterialFlag(video::EMF_LIGHTING, light);*/ +} + +irr::core::vector3df IrrSphere::GetSphereVector(int sphere){ + //We are converting to vectors, under construction NA + //return this->nodeNew[sphere]->getPosition(); + return this->sphereNodes[sphere]->getPosition(); +} + +void IrrSphere::SetSphereVector(int sphere, irr::core::vector3df v){ + this->sphereNodes[sphere]->setPosition(v); +} + +IrrSphere::IrrSphere(){ + this->numNodes = 0; +} + +IrrSphere::~IrrSphere(){ + /*for(int i = 0; i < numNodes; ++i) + delete this->nodeNew[i]; + + delete this->nodeNew;*/ + //We are using vectors now, no more memory clowing business NA +} diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Unstable Version/1.3.0/IrrSphere.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Unstable Version/1.3.0/IrrSphere.h Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,46 @@ +/* + Irrlicht Library Wrapper + Created by: + Nathan Adams + Denzel Morris + Copyright (C) 2007 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ + +#ifndef IRRSPHERE_H +#define IRRSPHERE_H +/* We should include some basic functions */ +#include +/* include strings */ +#include +#include + +/* We have to include Irrlichts libs */ +#include + +//#include "IrrLib.h" + + +class IrrSphere +{ + private: + //irr::scene::ISceneNode* nodeNew[10]; + irr::scene::ISceneNode* nodeNew; + std::vector sphereNodes; + int numNodes; + irr::scene::ISceneManager* smgr; + irr::video::IVideoDriver* driver; + public: + void IrrSphere::SetDriver(irr::video::IVideoDriver* driver); + void IrrSphere::SetSmgr(irr::scene::ISceneManager* smgr); + int IrrSphere::CreateNewSphereNode(int x, int y, int z, std::string texture, bool light); //this is going to take my advanced C++ skillz! + irr::core::vector3df IrrSphere::GetSphereVector(int sphere); + void IrrSphere::SetSphereVector(int sphere, irr::core::vector3df v); + IrrSphere::IrrSphere(); + //IrrSphere::IrrSphere(IrrLib*); + IrrSphere::~IrrSphere(); +}; + +#endif diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Unstable Version/1.3.0/IrrSprite.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Unstable Version/1.3.0/IrrSprite.cpp Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,49 @@ +/* + Irrlicht Library Wrapper + Created by: + Nathan Adams + Denzel Morris + Copyright (C) 2007 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ + +#include +#include +#include + +#include "IrrLib.h" +//Libraries we create go here +//#include "IrrSphere.h" +#include "IrrColor.h" +#include "IrrSprite.h" +//#include "Irr2D.h" + +using namespace irr; +using namespace core; +using namespace scene; +using namespace video; +using namespace io; +using namespace gui; + +using namespace std; + +IrrSprite::IrrSprite() +{ + //do stuff +} + +IrrSprite::~IrrSprite() +{ + //delete stuff +} + +void IrrSprite::SetDriver(irr::video::IVideoDriver* driver) +{ + this->driver = driver; +} +void IrrSprite::SetSmgr(irr::scene::ISceneManager* smgr) +{ + this->smgr = smgr; +} diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Unstable Version/1.3.0/IrrSprite.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Unstable Version/1.3.0/IrrSprite.h Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,45 @@ +/* + Irrlicht Library Wrapper + Created by: + Nathan Adams + Denzel Morris + Copyright (C) 2007 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ + +#ifndef IRRSPRITE_H +#define IRRSPRITE_H + +/* We should include some basic functions */ +#include +/* include strings */ +#include + +/* We have to include Irrlichts libs */ +#include + +//#include "IrrSphere.h" +#include "IrrColor.h" +//#include "Irr2D.h" +//#include "IrrSprite.h" + +//Start class +class IrrSprite { + + private: + + irr::video::IVideoDriver* driver; + irr::scene::ISceneManager* smgr; + public: + IrrSprite::IrrSprite(); + IrrSprite::~IrrSprite(); + void IrrSprite::SetDriver(irr::video::IVideoDriver* driver); + void IrrSprite::SetSmgr(irr::scene::ISceneManager* smgr); + +// I forgot a semicolon here....and it wasn't compling +//Thats 1 bad thing about OOP if there is an error you don't know where the @#$@# the problem is! +}; + +#endif diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Unstable Version/1.3.0/README --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Unstable Version/1.3.0/README Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,13 @@ + Irrlicht Library Wrapper + Created by Nathan Adams + Version 1.2.9 + Copyright (C) 2007 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. + + Please leave all files intact if you redistrubte this software. + +How to use: + Add all the files to your Irrlicht project, you could compile it into a DLL if you wanted too, but for now just add all the files to your project. + Then inside your complier add the directory that you have the IrrLib files and use #include "IrrLib.h" to refrence it, and you are good to go! \ No newline at end of file diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Unstable Version/1.3.1/Changes --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Unstable Version/1.3.1/Changes Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,62 @@ +Version 1.2 ++ Added a Irr3DLib class that will control all 3D objects ++ Also Added a Irr2D class that works on the same concept. ++ IrrSphere is now owned by Irr3DLib ++ Updated the examples using the latest code +Version 1.2.2 ++ Added IrrEventReciever to handle all input + - Still under work ++ Fixed some misc coding bugs ++ Added template class ++ Added sprite class ++ Added GUI class +Version 1.2.3 ++ IrrEventReciver now works as advertised ++ Baseclass is now being used + + A couple somewhat-useful functions + + int_to_string + + stringw_to_stdstring + + stdstring_to_stringw ++ GUI elements + + Static text is working ++ Under construction for a data type class +Version 1.2.4 ++ Implmented color codes accessiable through the class + + IrrLib.Color.RED (ect) +Version 1.2.5 ++ Implmented mouse events + + IrrLib.IrrEvent.getMouseX(); + + IrrLib.IrrEvent.getMouseY(); ++ Using vectors instead of static arrays + + Side note: Was going to use dynamic arrays, but C++ has vectors which are 10x better. ++ Added a default exit for when you hit esc + + Use IrrLib.IrrEvent.SetEscExit(false) to turn that off for your software + + Use IrrLib.IrrEvent.SetEscExit(true) to turn it back on ++ Every stable version will now include a windows DLL. + + Possible Linux .so file in the future. +Version 1.2.6 ++ Added a IrrEvent for buttons + + IrrLib.IrrEvent.checkButtonState(); + + See example for use ++ Added an AddButton function + + IrrLib.GUI.AddButton(..); + + See example for use ++ Problems with making the DLL + + reasearching +Version 1.2.7 ++ Fixed DLL Problem ++ Added an enum example to example 1 ++ Added more examples ++ Added example 9 ++ Added left click handling (see example 9) ++ Added AddLines function to Irr2D + + DrawLines function in Irr2D will draw the lines you add +Version 1.2.9 ++ Added Listbox GUI object ++ Added a new datatype IrrObj + + Contains 2 ints, 1 for object id and 1 for event id ++ Added a IrrData.h file +Version 1.3.0 ++ Changed String class use to Irrlicht's type Strings +Version 1.3.1 ++ Added support for newest Irrlict version \ No newline at end of file diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Unstable Version/1.3.1/Credits --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Unstable Version/1.3.1/Credits Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,8 @@ +IrrLib +Created by + Nathan Adams + Denzel Morris + +From #irrlicht + Acid + wacom \ No newline at end of file diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Unstable Version/1.3.1/Irr2d.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Unstable Version/1.3.1/Irr2d.cpp Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,110 @@ +/* + Irrlicht Library Wrapper + Created by: + Nathan Adams + Denzel Morris + Copyright (C) 2007 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ + +#include +//#include "IrrLib.h" +//#include "IrrSphere.h" //You probably aren't going to be using 3D objects in a 2D environment! +#include +#include + +#include "Irr2D.h" +#include "IrrSprite.h" + +using namespace irr; +using namespace core; +using namespace scene; +using namespace video; +using namespace io; +using namespace gui; + +using namespace std; + +Irr2D::Irr2D(){ + this->numTextures = 0; + this->numLines = 0; + this->nImages = 0; + //NA Should we set textures to new +} + +Irr2D::~Irr2D(){ + /*for(int i = 0; i < numTextures; ++i) + delete this->textures[i]; + + delete this->textures;*/ + //No more dynamic memory business yay! NA + //All handled by vectors! +} + +/*void Irr2D::SetSmgr(irr::scene::ISceneManager* smgr){ + this->smgr = smgr; + Sprite.SetSmgr(smgr); +} + +void Irr2D::SetDriver(irr::video::IVideoDriver* driver){ + this->driver = driver; + Sprite.SetDriver(driver); +}*/ + +IrrObj Irr2D::LoadTexturemap(stringc file){ + this->texturemap = driver->getTexture(file.c_str()); +} + +IrrObj Irr2D::LoadTexture(stringc file){ + //this->textures[this->numTextures] = driver->getTexture(file.c_str()); + textures.push_back(driver->getTexture(file.c_str())); + this->numTextures++; + IrrObj ret; + ret.eventid = 0; + ret.objectid = numTextures--; + return ret; +} + +void Irr2D::DrawLine(IrrPos& start, IrrPos& end, irr::video::SColor& color) +{ + this->driver->draw2DLine(start, end, color); +} + +void Irr2D::AddLines(IrrPos& start, IrrPos& end, irr::video::SColor& color) +{ + this->start.push_back(start); + this->end.push_back(end); + this->color.push_back(color); + this->numLines++; +} + +void Irr2D::DrawLines() +{ + for(int i = 0; i < numLines; ++i) + this->driver->draw2DLine(this->start[i], this->end[i], this->color[i]); +} + +IrrObj Irr2D::LoadIrrImage(irr::core::stringc file) +{ + images.push_back(this->driver->getTexture(file.c_str())); + IrrObj ret; + ret.objectid = nImages; + ret.eventid = 0; + this->nImages++; + return ret; +} + +void Irr2D::DrawImage(IrrObj img) +{ + irr::core::position2d destPos(img.x, img.y); + this->driver->draw2DImage(images[img.objectid], destPos); +} + +bool Irr2D::Collision(IrrObj obj1, IrrObj obj2) +{ + int x1 = obj1.x; + int y1 = obj1.y; +} + diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Unstable Version/1.3.1/Irr2d.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Unstable Version/1.3.1/Irr2d.h Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,71 @@ +/* + Irrlicht Library Wrapper + Created by: + Nathan Adams + Denzel Morris + Copyright (C) 2007 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ + +#ifndef IRR2D_H +#define IRR2D_H +/* We should include some basic functions */ +#include +/* include strings */ +#include +#include + +/* We have to include Irrlichts libs */ +#include + +//#include "IrrLib.h" +#include "IrrData.h" +#include "IrrSprite.h" + +class Irr2D: public IrrLibBase { + private: + //irr::scene::ISceneManager* smgr; + //irr::video::IVideoDriver* driver; + //Inherited from IrrLibBase + irr::video::ITexture* texturemap; + int numTextures; + //irr::video::ITexture* textures[10]; + std::vector textures; + std::vector > start; + std::vector > end; + std::vector color; + std::vector images; + int numLines; + int nImages; + public: + //Irr2D::Irr2D(); + IrrSprite Sprite; + Irr2D::Irr2D(); + Irr2D::~Irr2D(); + //void Irr2D::SetDriver(irr::video::IVideoDriver* driver); + //void Irr2D::SetSmgr(irr::scene::ISceneManager* smgr); + //Inherited from irrlibbase + IrrObj Irr2D::LoadTexturemap(irr::core::stringc file); + IrrObj Irr2D::LoadTexture(irr::core::stringc file); + //Has been renamed from LoadImage to LoadIrrImage due to conflict with windows API + IrrObj Irr2D::LoadIrrImage(irr::core::stringc file); + //void Irr2D::DrawImage(int texture, const irr::core::position2d & destPos); + //void Irr2D::DrawImage(IrrObj& img, irr::core::position2d& destPos); + void Irr2D::DrawImage(IrrObj img); + //void Irr2D::MoveImage(IrrObj img, irr::core::dimension2d destPos); + //void Irr2D::MoveImage(IrrObj img, int x, int y); + //void Irr2D::DrawImage(const irr::core::position2d & destPos, const irr::core::rect & sourceRect, const irr::core::rect * clipRect, irr::video::SColor color, bool useAlphaChannelOfTexture); + //void Irr2D::DrawImage(const irr::core::position2d & destPos, const irr::core::rect & sourceRect, const irr::core::rect * clipRect, irr::video::SColor color, bool useAlphaChannelOfTexture); + //void Irr2D::DrawLine(irr::core::position2d& start, irr::core::position2d& end, irr::video::SColor& color); + void Irr2D::DrawLine(IrrPos& start, IrrPos& end, irr::video::SColor& color); + void Irr2D::DrawLines(); + //void Irr2D::AddLines(irr::core::position2d& start, irr::core::position2d& end, irr::video::SColor& color); + void Irr2D::AddLines(IrrPos& start, IrrPos & end, irr::video::SColor& color); + bool Irr2D::Collision(IrrObj obj1, IrrObj obj2); + //IrrObj Irr2D::LoadImageA(irr::core::stringc file); +}; + +#endif + diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Unstable Version/1.3.1/Irr3d.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Unstable Version/1.3.1/Irr3d.cpp Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,52 @@ +/* + Irrlicht Library Wrapper + Created by: + Nathan Adams + Denzel Morris + Copyright (C) 2007 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ + +#include +#include + +//#include "IrrLib.h" +//Libraries we create go here +#include "IrrSphere.h" +//#include "IrrColor.h" +#include "Irr3D.h" +#include +//#include "Irr2D.h" + +using namespace irr; +using namespace core; +using namespace scene; +using namespace video; +using namespace io; +using namespace gui; + +using namespace std; + +/*void Irr3D::SetDriver(irr::video::IVideoDriver* driver) //so much for copying and pasting code from the header file +{ + this->driver = driver; + Sphere.SetDriver(driver); +} + +void Irr3D::SetSmgr(irr::scene::ISceneManager* smgr) +{ + this->smgr = smgr; + Sphere.SetSmgr(smgr); +}*/ + +Irr3D::Irr3D() +{ + //do stuff here! +} + +Irr3D::~Irr3D() +{ + //delete stuff here! +} diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Unstable Version/1.3.1/Irr3d.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Unstable Version/1.3.1/Irr3d.h Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,44 @@ +/* + Irrlicht Library Wrapper + Created by: + Nathan Adams + Denzel Morris + Copyright (C) 2007 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ + +#ifndef IRR3D_H +#define IRR3D_H + +/* We should include some basic functions */ +#include +/* include strings */ +#include + +/* We have to include Irrlichts libs */ +#include + +#include "IrrSphere.h" +//#include "IrrColor.h" +//#include "Irr3D.h" +//#include "Irr2D.h" This is a 3D class not 2D +/* However due to Irrlciht's nature mixing 2D with 3D is possible */ + +//Start class +class Irr3D: public IrrLibBase { + + private: + + //irr::video::IVideoDriver* driver; + //irr::scene::ISceneManager* smgr; + public: + IrrSphere Sphere; + Irr3D::Irr3D(); + Irr3D::~Irr3D(); + //void Irr3D::SetDriver(irr::video::IVideoDriver* driver); + //void Irr3D::SetSmgr(irr::scene::ISceneManager* smgr); +}; + +#endif diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Unstable Version/1.3.1/IrrEventReciever.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Unstable Version/1.3.1/IrrEventReciever.cpp Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,196 @@ +/* + Irrlicht Library Wrapper + Created by: + Nathan Adams + Denzel Morris + Copyright (C) 2007 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ + +#include "IrrEventReciever.h" +#include "IrrData.h" +//#include "IrrLib.h" +#include +#include + +using namespace irr; +using namespace core; +using namespace scene; +using namespace video; +using namespace io; +using namespace gui; + +using namespace std; + +/*void IrrEventReciever::setIrrLib(IrrLib& IrrLib) +{ + this.callingIrrLib = IrrLib; +}*/ + +IrrEventReciever::IrrEventReciever() +{ + this->escexit = true; + this->mouse.x = 0; + this->mouse.y = 0; + for(int i = 0; i < irr::KEY_KEY_CODES_COUNT; i++) + keyStates[i] = false; +} + +#if IRRVER == 131 + bool IrrEventReciever::OnEvent(SEvent event) +#else + bool IrrEventReciever::OnEvent(const SEvent &event) +#endif +{ + // A button was clicked + if (event.EventType == irr::EET_GUI_EVENT) + { + s32 id = event.GUIEvent.Caller->getID(); + switch(event.GUIEvent.EventType){ + case EGET_BUTTON_CLICKED: + //cout << id << endl; + buttonStates.push_back(id); + break; + case EGET_LISTBOX_CHANGED: + //s32 id = event.GUIEvent.Caller->getID(); + listStates.push_back(id); + break; + case EGET_LISTBOX_SELECTED_AGAIN: + listStates.push_back(id); + break; + default: + break; + } + } + /*if (event.EventType == irr::EGET_SCROLL_BAR_CHANGED) + { + + }*/ + if (event.EventType == irr::EET_KEY_INPUT_EVENT) { + if (!event.KeyInput.PressedDown){ + this->keyStates[event.KeyInput.Key] = false; + //cout << "Key was not hit " << this->keyStates[event.KeyInput.Key] << endl; + } + else{ + if(event.KeyInput.Key == KEY_ESCAPE && escexit) + this->device->closeDevice(); + this->keyStates[event.KeyInput.Key] = true; + //cout << "Key was hit: " << event.KeyInput.Key << " " << this->keyStates[event.KeyInput.Key] << endl; + } + } + if (event.EventType == EET_MOUSE_INPUT_EVENT){ + if (event.MouseInput.Event == EMIE_MOUSE_MOVED){ + this->mouse.x = event.MouseInput.X; + this->mouse.y = event.MouseInput.Y; + } + if (event.MouseInput.Event == EMIE_LMOUSE_PRESSED_DOWN) + this->mouseStates[0] = true; + if (event.MouseInput.Event == EMIE_LMOUSE_LEFT_UP) + this->mouseStates[0] = false; + } + return false; +} + +void IrrEventReciever::SetEscExit(bool onoff) +{ + this->escexit = onoff; +} + +int IrrEventReciever::getMouseX() +{ + return this->mouse.x; +} + +int IrrEventReciever::getMouseY() +{ + return this->mouse.y; +} + +int IrrEventReciever::getButtonState() +{ + if(!this->buttonStates.empty()){ + int id; + id = buttonStates.back(); + this->buttonStates.pop_back(); + return id; + } + else + return -1; +} + +int IrrEventReciever::getRevButtonState() +{ + if(!this->buttonStates.empty()){ + int id = buttonStates.front(); + this->buttonStates.erase(buttonStates.begin()); + return id; + } + else + return -1; +} + +void IrrEventReciever::clearButtonState() +{ + this->buttonStates.clear(); +} + +int IrrEventReciever::checkButtonState(IrrObj obj) +{ + if(!this->buttonStates.empty()){ + int tmp = this->buttonStates.back(); + if (tmp == obj.eventid) + { + this->delLastButtonState(); + return 1; + } + else + { + return 0; + } + } + else + { + return -1; + } +} + +void IrrEventReciever::delLastButtonState() +{ + if(!this->buttonStates.empty()) + this->buttonStates.pop_back(); +} + +bool IrrEventReciever::isButtonStateEmpty() +{ + return this->buttonStates.empty(); +} + +int IrrEventReciever::checkListState(IrrObj obj) +{ + if(!this->listStates.empty()) + { + int tmp = this->listStates.back(); + //cout << tmp << endl; + if (tmp == obj.eventid) + { + this->delLastListState(); + return 1; + } + else + { + return 0; + } + } + else + { + return 0; + } +} + +void IrrEventReciever::delLastListState() +{ + if(!this->listStates.empty()) + this->listStates.pop_back(); +} diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Unstable Version/1.3.1/IrrEventReciever.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Unstable Version/1.3.1/IrrEventReciever.h Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,55 @@ +/* + Irrlicht Library Wrapper + Created by: + Nathan Adams + Denzel Morris + Copyright (C) 2007 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ + +#ifndef IRREVENTRECIEVER_H +#define IRREVENTRECIEVER_H + +//#include "IrrLib.h" +#include +#include +#include "IrrLibBase.h" +#include "IrrData.h" +#include + + + +class IrrEventReciever : public irr::IEventReceiver, public IrrLibBase +{ + private: + //IrrLib callingIrrLib; + _mouse mouse; + bool escexit; + std::vector buttonStates; + std::vector listStates; + public: + bool mouseStates[1]; + IrrEventReciever(); + int getMouseX(); + int getMouseY(); + bool keyStates[irr::KEY_KEY_CODES_COUNT]; + //void setIrrLib(IrrLib& IrrLib) + #if IRRVER == 131 + virtual bool OnEvent(irr::SEvent event); + #else + virtual bool OnEvent(const irr::SEvent &event); + #endif + void SetEscExit(bool onoff); + int getButtonState(); + int getRevButtonState(); + void clearButtonState(); + int checkButtonState(IrrObj obj); + void delLastButtonState(); + bool isButtonStateEmpty(); //is there still stuff in the vector to be done? NA + int checkListState(IrrObj obj); + void delLastListState(); +}; + +#endif diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Unstable Version/1.3.1/IrrLibBase.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Unstable Version/1.3.1/IrrLibBase.cpp Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,126 @@ +/* + Irrlicht Library Wrapper + Created by: + Nathan Adams + Denzel Morris + Copyright (C) 2007 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ + +#include +#include +#include "IrrLibBase.h" +#include +#include + +using namespace irr; +using namespace core; +using namespace scene; +using namespace video; +using namespace io; +using namespace gui; + +using namespace std; + +/* +* Code from http://articles.techrepublic.com.com/5100-22-5079969.html# +* + +struct str_stream +{ + std::stringstream & underlying_stream() const + { return m_streamOut; } + + operator std::string() const + { + return m_streamOut.str(); + } +private: + mutable std::stringstream m_streamOut; +}; + +template< class type> +inline const str_stream & operator<< ( const str_stream & out, const type & value) +{ + out.underlying_stream() << value; + return out; + +} + +template std::string to_string( const type & value) +{ + std::ostringstream streamOut; + + streamOut << value; + + return streamOut.str(); +} + +* End code copy +*/ + +void IrrLibBase::SetDriver(IVideoDriver* driver) //can be overloaded +{ + this->driver = driver; +} + +void IrrLibBase::SetSmgr(ISceneManager* smgr) +{ + this->smgr = smgr; +} + +std::string IrrLibBase::wchar_to_stdstring (const wchar_t* wc) +{ + //cout << "Starting conversion"; + //wcstombs(tmp, in, 255); + char c[255]; + for(int t = 0; wc[t] != '\0'; t++) + c[t] = (char)wc[t]; + + /*for(int t = 0; c[t] != '\0'; t++) + wc[t] = c[t];*/ + + std::stringstream ss; + ss << c; + //cout << "Conversion OK"; + return ss.str(); +} + +std::string IrrLibBase::int_to_string (int t) +{ + std::stringstream ss; + ss << t; + return ss.str(); +} + +std::string IrrLibBase::stringw_to_stdstring(irr::core::stringw sw) +{ + std::stringstream ss; + ss << sw.c_str(); + return ss.str(); +} +irr::core::stringw IrrLibBase::stdstring_to_stringw(std::string ss) +{ + stringw tmpw(ss.c_str()); + return tmpw; +} + +void IrrLibBase::SetDevice(irr::IrrlichtDevice *device) +{ + this->device = device; +} + +void IrrLibBase::init() +{ + +} + +/*irr::core::stringw int_to_stringw(int t) +{ + std::stringstream ss; + ss << t; + //stringw ret(ss.str()); + return ret; +}*/ diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Unstable Version/1.3.1/IrrLibBase.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Unstable Version/1.3.1/IrrLibBase.h Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,45 @@ +/* + Irrlicht Library Wrapper + Created by: + Nathan Adams + Denzel Morris + Copyright (C) 2007 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ + +#ifndef IRRLIBBASE_H +#define IRRLIBBASE_H + +/* We should include some basic functions */ +#include +/* include strings */ +#include + +/* We have to include Irrlichts libs */ +#include + + +class IrrLibBase { + + protected: + irr::video::IVideoDriver* driver; + irr::scene::ISceneManager* smgr; + irr::IrrlichtDevice *device; + public: + //template std::string to_string( const type & value); + irr::core::dimension2d irrpixels; + void IrrLibBase::SetDriver(irr::video::IVideoDriver* driver); + void IrrLibBase::SetSmgr(irr::scene::ISceneManager* smgr); + void SetDevice(irr::IrrlichtDevice *device); + std::string int_to_string (int t); + std::string stringw_to_stdstring(irr::core::stringw sw); + irr::core::stringw stdstring_to_stringw(std::string ss); + std::string wchar_to_stdstring (const wchar_t* wc); + //irr::core::stringw int_to_stringw(int t); + void init(); + +}; + +#endif diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Unstable Version/1.3.1/IrrLibGUI.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Unstable Version/1.3.1/IrrLibGUI.cpp Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,222 @@ +/* + Irrlicht Library Wrapper + Created by: + Nathan Adams + Denzel Morris + Copyright (C) 2007 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ + +#include +#include +#include +#include +#include + +#include "IrrLib.h" +#include "IrrData.h" +#include "IrrLibGUI.h" +#include "IrrLibBase.h" +#include + +using namespace irr; +using namespace core; +using namespace scene; +using namespace video; +using namespace io; +using namespace gui; + +using namespace std; + +template std::string to_string( const type & value) +{ + std::ostringstream streamOut; + + streamOut << value; + + return streamOut.str(); +} + +IrrLibGUI::IrrLibGUI() +{ + //NA does it need to do anything at init? + this->nStaticText = 0; + this->nButton = 0; + this->nButtonid = 100; + this->nListBoxid = 200; + this->nListBox = 0; + //this->nListBoxid = 300; + //this->arrStaticText = new IGUIStaticText[10]; + //this->env = this->device->getGUIEnvironment(); //NA yes we do! +} + +IrrLibGUI::~IrrLibGUI() +{ + //NA Do we have to delete anything? +} + +void IrrLibGUI::SetEnv(IGUIEnvironment* env) +{ + this->env = env; + //env->addButton(rect(10,210,110,210 + 32), 0, 109, L"Quit", L"Exits Program"); +} + +IrrObj IrrLibGUI::addButton(const core::rect< s32 > & rectangle, IGUIElement *parent, s32 id, const wchar_t * text, const wchar_t * tooltiptext) +{ + arrButton.push_back(this->env->addButton(rectangle, parent, id, text, tooltiptext)); + ++nButton; + ++nButtonid; + IrrObj ret; + ret.objectid = --nButtonid; + return ret; +} + +IrrObj IrrLibGUI::addListBox(const irr::core::rect< irr::s32 > &rectangle, IGUIElement * parent) +{ + irr::gui::IGUIListBox* tmp = this->env->addListBox(rectangle, parent, nListBoxid); + arrListBox.push_back(tmp); + //we introduce a new datatype; IrroObj + IrrObj ret; + ret.eventid = nListBoxid; + ret.objectid = nListBox; + ++nListBox; + ++nListBoxid; + return ret; +} + +IrrObj IrrLibGUI::AddListBox(int x1, int y1, int x2, int y2, IGUIElement * parent) +{ + return addListBox(rect(x1, y1, x2, y2), parent); +} + +IrrObj IrrLibGUI::AddListBox(const irr::core::rect< irr::s32 > &rectangle, IGUIElement * parent) +{ + return addListBox(rectangle, parent); +} + +void IrrLibGUI::AddStringToListBox(IrrObj nLbox, stringw text) +{ + this->arrListBox[nLbox.objectid]->addItem(text.c_str()); + //this->arrListBox[0]->addItem(L"TEST"); +} + +std::string IrrLibGUI::getSelectListString(IrrObj lstbox) +{ + //stringc tmp = this->arrListBox[lstbox]->getListItem(this->arrListBox[lstbox]->getSelected()); + //s32 selected = this->arrListBox[lstbox.objectid]->getSelected(); + //const wchar_t* tmp = this->arrListBox[lstbox]->getListItem(selected); + //irr::core::stringw tmp; + //char out[255]; + //tmp = this->arrListBox[lstbox]->getText(); + irr::core::stringc tmp(arrListBox[lstbox.objectid]->getListItem(arrListBox[lstbox.objectid]->getSelected())); + //cout << tmp.c_str() << endl; + //wcstombs(out, tmp, tmp.length()); + //cout << tmp[0] << endl; + // std::stringstream ss; + //for (int i = 0; i < tmp.size(); ++i) + //ss << tmp.c_str(); + std::string ret = tmp.c_str(); + return ret; +} + +void IrrLibGUI::Clear() +{ + this->env->clear(); +} + +void IrrLibGUI::DrawAll() +{ + this->env->drawAll(); +} + +IrrObj IrrLibGUI::AddToStaticArray(irr::gui::IGUIStaticText * addme) +{ + //arrStaticText[nStaticText] = addme; + arrStaticText.push_back(addme); + this->nStaticText++; + this->nButtonid++; + IrrObj ret; + ret.objectid = this->nStaticText; + return ret; +} + +void IrrLibGUI::AddStaticText() +{ + //rect(20,30,300,80), + this->env->addStaticText(L"Powered by IrrLib.", rect(20,30,300,80), true); +} + +IrrObj IrrLibGUI::AddStaticText(stringw message) +{ + irr::gui::IGUIStaticText * addthis; + addthis = this->env->addStaticText(message.c_str(), rect(20,30,300,80), true); + return AddToStaticArray(addthis); +} + +IrrObj IrrLibGUI::AddStaticText(stringw message, int x1, int y1, int x2, int y2) +{ + irr::gui::IGUIStaticText * addthis; + addthis = this->env->addStaticText(message.c_str(), rect(x1,y1,x2,y2), true); + return AddToStaticArray(addthis); +} + +IrrObj IrrLibGUI::AddStaticText(stringw message, int x1, int y1, int x2, int y2, bool border, bool wordwrap) +{ + irr::gui::IGUIStaticText * addthis; + addthis = this->env->addStaticText(message.c_str(), rect(x1,y1,x2,y2), border, wordwrap); + return AddToStaticArray(addthis); +} + +IrrObj IrrLibGUI::AddStaticText(stringw message, int x1, int y1, int x2, int y2, bool border, bool wordwrap, int id, bool fillbackground) +{ + irr::gui::IGUIStaticText * addthis; + addthis = this->env->addStaticText(message.c_str(), rect(x1,y1,x2,y2), border, wordwrap, 0, id, fillbackground); + return AddToStaticArray(addthis); +} + +IrrObj IrrLibGUI::AddStaticText(stringw message, const core::rect< s32 > &rectangle) +{ + irr::gui::IGUIStaticText * addthis; + addthis = this->env->addStaticText(message.c_str(), rectangle); + return AddToStaticArray(addthis); +} + +IrrObj IrrLibGUI::AddStaticText(stringw message, const core::rect< s32 > &rectangle, bool border, bool wordwrap) +{ + irr::gui::IGUIStaticText * addthis; + addthis = this->env->addStaticText(message.c_str(), rectangle, border, wordwrap); + return AddToStaticArray(addthis); +} + +IrrObj IrrLibGUI::AddStaticText(stringw message, const core::rect< s32 > &rectangle, bool border, bool wordwrap, int id, bool fillbackground) +{ + irr::gui::IGUIStaticText * addthis; + addthis = this->env->addStaticText(message.c_str(), rectangle, border, wordwrap, 0, id, fillbackground); + return AddToStaticArray(addthis); +} + +void IrrLibGUI::ChangeStaticText(IrrObj nstatictext, stringw message) +{ + //this->arrStaticText[this->nStaticText.objectid-1]->setText(message.c_str()); + this->arrStaticText[nstatictext.objectid]->setText(message.c_str()); +} + +void IrrLibGUI::ChangeFont(stringc fontfile) +{ + IGUISkin* skin = this->env->getSkin(); + IGUIFont* font = this->env->getFont(fontfile.c_str()); + if (font) + skin->setFont(font); +} + +IrrObj IrrLibGUI::AddButton(stringw text, int x1, int y1, int x2, int y2, stringw tooltiptext = "") +{ + return addButton(rect(x1, y1, x2, y2), 0, nButtonid, text.c_str(), tooltiptext.c_str()); +} + +IrrObj IrrLibGUI::AddButton(stringw text, core::rect & rect, stringw tooltiptext = "") +{ + return addButton(rect, 0, nButtonid, text.c_str(), tooltiptext.c_str()); +} diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Unstable Version/1.3.1/IrrLibGUI.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Unstable Version/1.3.1/IrrLibGUI.h Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,69 @@ +/* + Irrlicht Library Wrapper + Created by: + Nathan Adams + Denzel Morris + Copyright (C) 2007 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ + +#ifndef IRRLIBGUI_H +#define IRRLIBGUI_H + +#include +#include +#include +#include "IrrLib.h" +#include "IrrData.h" +#include "IrrLibBase.h" + +class IrrLibGUI: public IrrLibBase { + private: + irr::gui::IGUISkin* skin; + irr::gui::IGUIFont* font; + irr::gui::IGUIEnvironment* env; + //TODO: Create an array storing all messages + int nStaticText; + //irr::gui::IGUIStaticText* arrStaticText[10]; + int nButton; + int nButtonid; + int nListBox; + int nListBoxid; + std::vector arrStaticText; + std::vector arrButton; + std::vector arrListBox; + IrrObj AddToStaticArray(irr::gui::IGUIStaticText * addme); + IrrObj addButton(const irr::core::rect< irr::s32 > & rectangle, irr::gui::IGUIElement *parent = 0, irr::s32 id = 0, const wchar_t * text = 0, const wchar_t * tooltiptext = 0); //TODO: Clean this up! + IrrObj addListBox(const irr::core::rect< irr::s32 > &rectangle, irr::gui::IGUIElement * parent); + public: + IrrLibGUI(); + ~IrrLibGUI(); + void SetEnv(irr::gui::IGUIEnvironment* env); + void Clear(); + void DrawAll(); + //irr::gui::IGUIStaticText* IrrLibGUI::AddStaticText(); //NA eh a default text adder why not? + /* This is bad coding, we do not want to return an irrlicht object, we want to return a standard datatype because this class handles the GUI elements, not the user. */ + void AddStaticText(); //NA eh a default text adder why not? + IrrObj AddStaticText(irr::core::stringw message); + IrrObj AddStaticText(irr::core::stringw message, int x1, int y1, int x2, int y2); + IrrObj AddStaticText(irr::core::stringw message, int x1, int y1, int x2, int y2, bool border, bool wordwrap); + IrrObj AddStaticText(irr::core::stringw message, int x1, int y1, int x2, int y2, bool border, bool wordwrap, int id, bool fillbackground); + IrrObj AddStaticText(irr::core::stringw message, const irr::core::rect< irr::s32 > &rectangle); + IrrObj AddStaticText(irr::core::stringw message, const irr::core::rect< irr::s32 > &rectangle, bool border, bool wordwrap); + IrrObj AddStaticText(irr::core::stringw message, const irr::core::rect< irr::s32 > &rectangle, bool border, bool wordwrap, int id, bool fillbackground); + IrrObj AddButton(irr::core::stringw text, int x1, int y1, int x2, int y2, irr::core::stringw tooltiptext); + IrrObj AddButton(irr::core::stringw text, irr::core::rect & rect, irr::core::stringw tooltiptext); //TODO: Add move functions + IrrObj AddListBox(int x1, int y1, int x2, int y2, irr::gui::IGUIElement * parent = 0); + IrrObj AddListBox(const irr::core::rect< irr::s32 > &rectangle, irr::gui::IGUIElement * parent = 0); + void AddStringToListBox(IrrObj nLbox, irr::core::stringw text); + void ChangeStaticText(IrrObj nstatictext, irr::core::stringw message); + void ChangeFont(irr::core::stringc fontfile); + std::string getSelectListString(IrrObj lstbox); + //irr::core::stringw getSelectListString(int lstbox); + +}; + + +#endif diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Unstable Version/1.3.1/IrrSphere.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Unstable Version/1.3.1/IrrSphere.cpp Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,72 @@ +/* + Irrlicht Library Wrapper + Created by Nathan Adams + Copyright (C) 2007 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ +#include +#include "IrrLib.h" +#include "IrrSphere.h" +#include +#include + +using namespace irr; +using namespace core; +using namespace scene; +using namespace video; +using namespace io; +using namespace gui; + +using namespace std; + +/*void IrrSphere::SetSmgr(irr::scene::ISceneManager* smgr){ + this->smgr = smgr; +} + +void IrrSphere::SetDriver(irr::video::IVideoDriver* driver){ + this->driver = driver; +}*/ + +IrrObj IrrSphere::CreateNewSphereNode(int x, int y, int z, stringc texture, bool light){ + //this->nodeNew[this->numNodes] = this->smgr->addSphereSceneNode(); + //this->sphereNodes[this->numNodes]->setPosition(core::vector3df(x,y,z)); + //this->sphereNodes[this->numNodes]->setMaterialTexture(0, this->driver->getTexture(texture.c_str())); + //this->sphereNodes[this->numNodes]->setMaterialFlag(video::EMF_LIGHTING, light); + IrrObj ret; + nodeNew = this->smgr->addSphereSceneNode(); + nodeNew->setPosition(core::vector3df(x,y,z)); + nodeNew->setMaterialTexture(0, this->driver->getTexture(texture.c_str())); + nodeNew->setMaterialFlag(video::EMF_LIGHTING, light); + sphereNodes.push_back(nodeNew); + this->numNodes++; + ret.objectid = this->numNodes--; + return ret; + /*this->node = this->smgr->addSphereSceneNode(); + this->node->setPosition(core::vector3df(x,y,z)); + this->node->setMaterialTexture(0, this->driver->getTexture(texture.c_str())); + this->node->setMaterialFlag(video::EMF_LIGHTING, light);*/ +} + +irr::core::vector3df IrrSphere::GetSphereVector(int sphere){ + //We are converting to vectors, under construction NA + //return this->nodeNew[sphere]->getPosition(); + return this->sphereNodes[sphere]->getPosition(); +} + +void IrrSphere::SetSphereVector(int sphere, irr::core::vector3df v){ + this->sphereNodes[sphere]->setPosition(v); +} + +IrrSphere::IrrSphere(){ + this->numNodes = 0; +} + +IrrSphere::~IrrSphere(){ + /*for(int i = 0; i < numNodes; ++i) + delete this->nodeNew[i]; + + delete this->nodeNew;*/ + //We are using vectors now, no more memory clowing business NA +} diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Unstable Version/1.3.1/IrrSphere.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Unstable Version/1.3.1/IrrSphere.h Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,48 @@ +/* + Irrlicht Library Wrapper + Created by: + Nathan Adams + Denzel Morris + Copyright (C) 2007 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ + +#ifndef IRRSPHERE_H +#define IRRSPHERE_H +/* We should include some basic functions */ +#include +/* include strings */ +#include +#include + +/* We have to include Irrlichts libs */ +#include "IrrLibBase.h" +#include "IrrData.h" +#include + +//#include "IrrLib.h" + + +class IrrSphere: public IrrLibBase +{ + private: + //irr::scene::ISceneNode* nodeNew[10]; + irr::scene::ISceneNode* nodeNew; + std::vector sphereNodes; + int numNodes; + //irr::scene::ISceneManager* smgr; + //irr::video::IVideoDriver* driver; + public: + //void IrrSphere::SetDriver(irr::video::IVideoDriver* driver); + //void IrrSphere::SetSmgr(irr::scene::ISceneManager* smgr); + IrrObj IrrSphere::CreateNewSphereNode(int x, int y, int z, irr::core::stringc texture, bool light); //this is going to take my advanced C++ skillz! + irr::core::vector3df IrrSphere::GetSphereVector(int sphere); + void IrrSphere::SetSphereVector(int sphere, irr::core::vector3df v); + IrrSphere::IrrSphere(); + //IrrSphere::IrrSphere(IrrLib*); + IrrSphere::~IrrSphere(); +}; + +#endif diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Unstable Version/1.3.1/IrrSprite.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Unstable Version/1.3.1/IrrSprite.cpp Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,49 @@ +/* + Irrlicht Library Wrapper + Created by: + Nathan Adams + Denzel Morris + Copyright (C) 2007 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ + +#include +#include +#include + +#include "IrrLib.h" +//Libraries we create go here +//#include "IrrSphere.h" +#include "IrrColor.h" +#include "IrrSprite.h" +//#include "Irr2D.h" + +using namespace irr; +using namespace core; +using namespace scene; +using namespace video; +using namespace io; +using namespace gui; + +using namespace std; + +IrrSprite::IrrSprite() +{ + //do stuff +} + +IrrSprite::~IrrSprite() +{ + //delete stuff +} + +/*void IrrSprite::SetDriver(irr::video::IVideoDriver* driver) +{ + this->driver = driver; +} +void IrrSprite::SetSmgr(irr::scene::ISceneManager* smgr) +{ + this->smgr = smgr; +}*/ diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Unstable Version/1.3.1/IrrSprite.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Unstable Version/1.3.1/IrrSprite.h Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,46 @@ +/* + Irrlicht Library Wrapper + Created by: + Nathan Adams + Denzel Morris + Copyright (C) 2007 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ + +#ifndef IRRSPRITE_H +#define IRRSPRITE_H + +/* We should include some basic functions */ +#include +/* include strings */ +#include + +/* We have to include Irrlichts libs */ +#include + +//#include "IrrSphere.h" +#include "IrrLibBase.h" +#include "IrrColor.h" +//#include "Irr2D.h" +//#include "IrrSprite.h" + +//Start class +class IrrSprite: public IrrLibBase { + + private: + + //irr::video::IVideoDriver* driver; + //irr::scene::ISceneManager* smgr; + public: + IrrSprite::IrrSprite(); + IrrSprite::~IrrSprite(); + /*void IrrSprite::SetDriver(irr::video::IVideoDriver* driver); + void IrrSprite::SetSmgr(irr::scene::ISceneManager* smgr);*/ + +// I forgot a semicolon here....and it wasn't compling +//Thats 1 bad thing about OOP if there is an error you don't know where the @#$@# the problem is! +}; + +#endif diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Unstable Version/1.3.1/Irrcolor.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Unstable Version/1.3.1/Irrcolor.cpp Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,113 @@ +/* + Irrlicht Library Wrapper + Created by: + Nathan Adams + Denzel Morris + Copyright (C) 2007 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ + +#include +#include +#include + +//#include "IrrLib.h" +#include "IrrColor.h" + +using namespace irr; +using namespace core; +using namespace scene; +using namespace video; +using namespace io; +using namespace gui; + +using namespace std; + +void IrrColor::Init(){ + /*SColor * temp; + temp = new SColor(alpha, 255, 0, 0); + this->RED = temp; + delete temp;*/ + this->RED = new SColor(alpha, 255, 0, 0); + this->ORANGE = new SColor(alpha, 255, 165, 0); + this->YELLOW = new SColor(alpha, 255, 255, 0); + this->GREEN = new SColor(alpha, 0, 255, 0); + this->BLUE = new SColor(alpha, 0, 0, 255); + this->DARK_GREEN = new SColor(alpha, 0, 100, 0); + this->PINK = new SColor(alpha, 255, 192, 203); + this->GREY = new SColor(alpha, 190, 190, 190); + this->WHITE = new SColor(alpha, 0, 0, 0); + this->BLACK = new SColor(alpha, 0, 0, 0); +} + +IrrColor::~IrrColor(){ + delete this->RED; + delete this->ORANGE; + delete this->YELLOW; + delete this->GREEN; + delete this->BLUE; + delete this->DARK_GREEN; + delete this->PINK; + delete this->GREY; + delete this->WHITE; + delete this->BLACK; +} + +IrrColor::IrrColor(){ + this->alpha = 255; + Init(); +} + +IrrColor::IrrColor(irr::u32 alpha){ + this->alpha = alpha; + Init(); +} + +int IrrColor::getAlpha(){ + return this->alpha; +} + +void IrrColor::setAlpha(int alpha){ + this->alpha = alpha; +} + +SColor IrrColor::returnColor(stringw color){ + int nColor = -1; + if (color == "red") + nColor = 1; + else if (color == "green") + nColor = 2; + else if (color == "blue") + nColor = 3; + else if (color == "dark green") + nColor = 4; + else if (color == "pink") + nColor = 5; + else if (color == "grey") + nColor = 6; + switch (nColor){ + case 1: + return SColor(255, 255, 0, 0); + break; + case 2: + return SColor(255, 0, 255, 0); + break; + case 3: + return SColor(255, 0, 0, 255); + break; + case 4: + return SColor(255, 0, 50, 0); + break; + case 5: + return SColor(255, 255, 10, 255); + break; + case 6: + return SColor(255,200,200,200); + break; + default: + return SColor(255,200,200,200); + break; + }// TODO: Make this function modular +} diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Unstable Version/1.3.1/Irrcolor.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Unstable Version/1.3.1/Irrcolor.h Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,53 @@ +/* + Irrlicht Library Wrapper + Created by: + Nathan Adams + Denzel Morris + Copyright (C) 2007 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ + +#ifndef IRRCOLOR_H +#define IRRCOLOR_H + +#include +#include +#include "irrlicht.h" +//#include "IrrLib.h" + +class IrrColor { + private: + irr::u32 alpha; + void Init(); + //who knows? + public: + //irr::video::SColor(alpha, 255, 0, 0); + const irr::video::SColor* RED; + const irr::video::SColor* ORANGE; + const irr::video::SColor* YELLOW; + const irr::video::SColor* GREEN; + const irr::video::SColor* BLUE; + const irr::video::SColor* DARK_GREEN; + const irr::video::SColor* PINK; + const irr::video::SColor* GREY; + const irr::video::SColor* WHITE; + const irr::video::SColor* BLACK; + /*const ORANGE = irr::video::SColor(alpha, 255, 165, 0); + const YELLOW = irr::video::SColor(alpha, 255, 255, 0); + const GREEN = irr::video::SColor(alpha, 0, 255, 0); + const BLUE = irr::video::SColor(alpha, 0, 0, 255); + const DARK_GREEN = irr::video::SColor(alpha, 0, 100, 0); + const PINK = irr::video::SColor(alpha, 255, 192, 203); + const GREY = irr::video::Scolor(alpha, 190, 190, 190);*/ + //void IrrColor::test(); + IrrColor(); + IrrColor(irr::u32 alpha); + ~IrrColor(); + int getAlpha(); + void setAlpha(int alpha); + irr::video::SColor returnColor(irr::core::stringw color); +}; + +#endif diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Unstable Version/1.3.1/Irrdata.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Unstable Version/1.3.1/Irrdata.h Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,26 @@ +#ifndef IRRDATA_H +#define IRRDATA_H + +#include + +typedef irr::core::dimension2d PixelSize; +typedef irr::core::position2d IrrPos; + +struct pixels { + int width; + int height; +}; //possible future use in 2D objects when specifying the properties of an object draw + +struct IrrObj { + int eventid; + int objectid; + int x; + int y; +}; + +struct _mouse { + int x; + int y; +}; + +#endif diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Unstable Version/1.3.1/Irrlib.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Unstable Version/1.3.1/Irrlib.cpp Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,286 @@ +/* + Irrlicht Library Wrapper + Created by: + Nathan Adams + Denzel Morris + Copyright (C) 2007 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ + +#include +#include +#include +#include +#include + +#include "IrrLib.h" +//Libraries we create go here +//#include "IrrSphere.h" +#include "IrrColor.h" +//#include "Irr2D.h" + +using namespace irr; +using namespace core; +using namespace scene; +using namespace video; +using namespace io; +using namespace gui; + +using namespace std; + + +/*IrrLib::IrrLib(MastEventReceiver & receiver){ + this->device = createDevice(EDT_SOFTWARE, dimension2d(640, 480), 16, false, false, false, &receiver); + if (this->device == 0) + exit(1); + IrrLib::Init(); +}*/ + +IrrLib::IrrLib(){ + this->device = createDevice(EDT_SOFTWARE, dimension2d(640, 480), 16, false, false, false, &this->IrrEvent); + if (this->device == 0) + exit(1); + IrrLib::Init(); +} + +IrrLib::IrrLib(video::E_DRIVER_TYPE drivertype, core::dimension2d & res, u32 bits, bool fullscreen, bool stencilbuffer, bool vsync){ + //MyEventReceiver receiver; + this->device = createDevice(drivertype, res, bits, fullscreen, stencilbuffer, vsync, &this->IrrEvent); + if (this->device == 0) + exit(1); + IrrLib::Init(); +} + +IrrLib::IrrLib(int nDrivertype, int width, int height, int bits, bool fullscreen, bool stencilbuffer, bool vsync){ + //MyEventReceiver receiver; + video::E_DRIVER_TYPE drivertype; + switch (nDrivertype){ + case 0: //TODO: finish this switch case + drivertype = EDT_NULL; + break; + case 1: + drivertype = EDT_SOFTWARE; + break; + case 2: + drivertype = EDT_BURNINGSVIDEO; + break; + case 3: + drivertype = EDT_OPENGL; + break; + case 4: + #if DX8 == 1 + drivertype = EDT_DIRECT3D8; + #else + drivertype = EDT_OPENGL; + #endif + //*Note: It seems as Microsoft has stoped supporting DX 8.1, so you can not compile it into Irrlicht engine anymore + //TODO: Find how to detect if DX is complied into Irrlicht + //TODO: Find how to detecht for linux + break; + case 5: + #if DX9 == 1 + drivertype = EDT_DIRECT3D9; + #else + drivertype = EDT_OPENGL; + #endif + break; + default: + drivertype = EDT_SOFTWARE; + break; + } + this->device = createDevice(drivertype, dimension2d(width, height), bits, fullscreen, stencilbuffer, vsync, &this->IrrEvent); + if (this->device == 0) + exit(1); + IrrLib::Init(); +} + +IrrLib::~IrrLib (){ //Our moms wont clean up after us! + //Although I'm sure Irrlicht does this for us already, its always a good idea to check! + /*if (this->device != NULL) + delete this->device; + if (this->driver != NULL) + delete this->driver; + if (this->smgr != NULL) + delete this->smgr; + if (this->mesh != NULL) + delete this->mesh; + if (this->node != NULL) + delete this->node;*/ //it seems Irrlicht picks up after us... + //however we created newNodes, now we need to delete it! +} + +void IrrLib::Init(){ + //this->numNodes = 0; + //this->nodeNew = new ISceneNode[10]; + //this->env->addStaticText(L"Transparent Control:", rect(20,30,300,80), true); + this->env = this->device->getGUIEnvironment(); + this->driver = this->device->getVideoDriver(); + this->smgr = this->device->getSceneManager(); + Irr3DLib.SetSmgr(this->smgr); + Irr3DLib.SetDriver(this->driver); + Irr2DLib.SetSmgr(this->smgr); + Irr2DLib.SetDriver(this->driver); + GUI.SetEnv(this->env); + IrrEvent.SetDevice(this->device); + this->timer = this->device->getTimer(); + tick = this->timer->getRealTime(); +} + +void IrrLib::ReadArchive(stringc file){ + this->device->getFileSystem()->addZipFileArchive(file.c_str()); +} + +void IrrLib::LoadQ3Level(stringc q3level){ + this->mesh = this->smgr->getMesh(q3level.c_str()); + this->node = 0; + if (this->mesh) + this->node = this->smgr->addOctTreeSceneNode(this->mesh->getMesh(0), 0, -1, 128); +} + +void IrrLib::MapPos(int x, int y, int z){ + if (this->node) + this->node->setPosition(core::vector3df(x, y, z)); +} + +void IrrLib::MapPos(){ + if (this->node) + this->node->setPosition(core::vector3df(0, 0, 0)); +} + +void IrrLib::AddFPSCam(){ + this->cam = this->smgr->addCameraSceneNodeFPS(); +} + +void IrrLib::AddFPSCam(f32 x, f32 y, f32 z) +{ + this->cam = this->smgr->addCameraSceneNodeFPS(); + this->cam->setPosition(irr::core::vector3df(x, y, z)); +} + +void IrrLib::VisibleCursor(bool tf){ + if (tf == false) + this->device->getCursorControl()->setVisible(false); + else + this->device->getCursorControl()->setVisible(true); +} + +int IrrLib::GetFPSCount(){ + return this->driver->getFPS(); +} + +bool IrrLib::DeviceIsRunning(){ + return this->device->run(); +} + +bool IrrLib::IsActiveWindow(){ + return this->device->isWindowActive(); +} + +void IrrLib::BeginScene(){ + this->driver->beginScene(true, true, video::SColor(0,200,200,200)); +} + +void IrrLib::BeginScene(irr::video::SColor color){ + this->driver->beginScene(true, true, color); +} + +void IrrLib::BeginScene(bool usebackBuffer, bool usezBuffer, irr::video::SColor color){ + this->driver->beginScene(usebackBuffer, usezBuffer, color); +} + +void IrrLib::DrawAll(){ + //position2d start(50, 50); + //position2d end(100,100); + // SColor whitecolor(255,255,255,255); +//driver->draw2DLine(start, end, whitecolor); + this->smgr->drawAll(); + this->env->drawAll(); + //this->device->getGUIEnvironment()->drawAll(); + } + +void IrrLib::EndScene(){ + this->driver->endScene(); +} + +void IrrLib::SetWindowCaption(stringw str){ + this->device->setWindowCaption(str.c_str()); +} + +irr::core::stringw IrrLib::GetDriverName(){ + return this->driver->getName(); +} + +void IrrLib::EndIrrlicht(){ + if(this->device != NULL){ + this->device->drop(); + this->device = NULL; + } +} + +void IrrLib::KeyPress(char key){ + this->key = key; +} + +char IrrLib::KeyPressed(){ + return key; +} + +irr::f32 IrrLib::getX(){ + return this->smgr->getActiveCamera()->getPosition().X; +} + +irr::f32 IrrLib::getY(){ + return this->smgr->getActiveCamera()->getPosition().Y; +} + +irr::f32 IrrLib::getZ(){ + return this->smgr->getActiveCamera()->getPosition().Z; +} + +bool IrrLib::CheckGameLoop(){ + u32 now; + now = this->timer->getRealTime(); + if ((now - this->tick) >= 30){ + //this->tick == time (NULL); + return true; + } else { + return false; + } +} + +bool IrrLib::CheckGameLoop(u32 ms){ + u32 now; + now = this->timer->getRealTime(); + if ((now - this->tick) >= ms){ + this->tick = now; + return true; + } else { + return false; + } +} + +void IrrLib::Exit() +{ + this->device->closeDevice(); +} + +PixelSize IrrLib::GetScreenSize() +{ + return this->driver->getScreenSize(); + /*pixels returnres; + returnres.width = screenres.Width; + returnres.height = screenres.Height; + return returnres;*/ + +} + +//template std::string IrrLib::to_string (T t) +/*std::string IrrLib::int_to_string (int t) +{ + std::stringstream ss; + ss << t; + return ss.str(); +}*/ +// This is in the base class now, every class that decends from that class has this ability. diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Unstable Version/1.3.1/Irrlib.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Unstable Version/1.3.1/Irrlib.h Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,134 @@ +/* + Irrlicht Library Wrapper + Created by: + Nathan Adams + Denzel Morris + Copyright (C) 2007 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ + +#ifndef IRRLIB_H +#define IRRLIB_H + +#ifndef IRRVER +#define IRRVER 14 +//2 Versions +// 14 or 131 +//Different version due to different implmenation of eventreciever +#endif + +/* We should include some basic functions */ +#include +/* include strings */ +#include +#include +#include + +/* We have to include Irrlichts libs */ + + +#include "Irr3D.h" +#include "IrrColor.h" +#include "IrrLibGUI.h" +#include "IrrEventReciever.h" +#include "Irr2D.h" +#include "IrrLibBase.h" +#include "IrrData.h" + +/*struct IrrObj { + int eventid; + int objectid; +};*/ + +//Start class +class IrrLib: public IrrLibBase { + + private: + /* Create an Irrlicht device as private because the class should handle + All irrlicht interaction */ + //irr::IrrlichtDevice *device; + //In IrrLibBase + // Tells Irrlicht what driver to use + //video::E_DRIVER_TYPE driverType; + + /* + Get a pointer to the video driver and the SceneManager so that + we do not always have to write device->getVideoDriver() and + device->getSceneManager(). + */ + /*irr::video::IVideoDriver* driver; + irr::scene::ISceneManager* smgr;*/ + //In IrrLibBase + irr::gui::IGUIEnvironment* env; + + /* + Get a pointer to the 'mesh' aka the level. + Note: This is for Quake3 levels, ie bsp maps. + */ + irr::scene::IAnimatedMesh* mesh; + irr::scene::ISceneNode* node; + irr::scene::ISceneNode * tempNode; //use this to store nodeNew's data so we can resize it + irr::scene::ICameraSceneNode * cam; + char key; + + + void IrrLib::Init(); + /*friend class IrrColor; + friend class Irr2DLib; + friend class Sphere;*/ + //friend class IrrEventReciever; + irr::u32 tick; + irr::ITimer* timer; + public: + //IrrSphere Sphere; //This has to be public to be able to access the Sphere class + /* IrrSphere is now in Irr3D class */ + //Prehaps put this into a IrrLib3D class? + Irr3D Irr3DLib; + IrrColor Color; //Color class...not much of a class but lets keep it OO + Irr2D Irr2DLib; //1/2 variable to be labeled like this due to variables not able to begin with a number + IrrLibGUI GUI; + IrrEventReciever IrrEvent; + IrrLib::IrrLib(); + //IrrLib::IrrLib(MastEventReceiver & receiver); + IrrLib::IrrLib(irr::video::E_DRIVER_TYPE drivertype, irr::core::dimension2d & res, irr::u32 bits, bool fullscreen, bool stencilbuffer, bool vsync); + IrrLib::IrrLib(int drivertype, int width, int height, int bits, bool fullscreen, bool stencilbuffer, bool vsync); + IrrLib::~IrrLib(); //Our moms wont clean up after us! + void IrrLib::ReadArchive(irr::core::stringc file); + void IrrLib::LoadQ3Level(irr::core::stringc q3level); + void IrrLib::MapPos(int x, int y, int z); //I think this moves the actual camera? + void IrrLib::MapPos(); + void IrrLib::AddFPSCam(); + void IrrLib::AddFPSCam(irr::f32 x, irr::f32 y, irr::f32 z); + void IrrLib::VisibleCursor(bool tf); + int IrrLib::GetFPSCount(); + bool IrrLib::DeviceIsRunning(); + bool IrrLib::IsActiveWindow(); + void IrrLib::BeginScene(); + void IrrLib::BeginScene(irr::video::SColor color); + //void IrrLib::BeginScene(irr::video::SColor * color); + void IrrLib::BeginScene(bool usebackBuffer, bool usezBuffer, irr::video::SColor color); + //TODO: Add one more for human readable colors and hex colors! + void IrrLib::DrawAll(); + void IrrLib::EndScene(); + void IrrLib::SetWindowCaption(irr::core::stringw str); + irr::core::stringw IrrLib::GetDriverName(); + //TODO: Make function to turn stringw to string and visa versa + void IrrLib::EndIrrlicht(); //Renamed from KillIrrlicht to EndIrrlicht + //TODO: Add logging + void IrrLib::KeyPress(char key); + char IrrLib::KeyPressed(); + irr::f32 getX(); + irr::f32 getY(); + irr::f32 getZ(); + bool CheckGameLoop(); + bool CheckGameLoop(irr::u32 ms); + void Exit(); + PixelSize GetScreenSize(); + //void EndGameLoop(); + //template std::string to_string (T t); + +}; + +#endif diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Unstable Version/1.3.1/Readme --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Unstable Version/1.3.1/Readme Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,13 @@ + Irrlicht Library Wrapper + Created by Nathan Adams + Version 1.2.9 + Copyright (C) 2007 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. + + Please leave all files intact if you redistrubte this software. + +How to use: + Add all the files to your Irrlicht project, you could compile it into a DLL if you wanted too, but for now just add all the files to your project. + Then inside your complier add the directory that you have the IrrLib files and use #include "IrrLib.h" to refrence it, and you are good to go! \ No newline at end of file diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Unstable Version/1.3.2/CHANGES --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Unstable Version/1.3.2/CHANGES Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,77 @@ +Version 1.2 ++ Added a Irr3DLib class that will control all 3D objects ++ Also Added a Irr2D class that works on the same concept. ++ IrrSphere is now owned by Irr3DLib ++ Updated the examples using the latest code +Version 1.2.2 ++ Added IrrEventReciever to handle all input + - Still under work ++ Fixed some misc coding bugs ++ Added template class ++ Added sprite class ++ Added GUI class +Version 1.2.3 ++ IrrEventReciver now works as advertised ++ Baseclass is now being used + + A couple somewhat-useful functions + + int_to_string + + stringw_to_stdstring + + stdstring_to_stringw ++ GUI elements + + Static text is working ++ Under construction for a data type class +Version 1.2.4 ++ Implmented color codes accessiable through the class + + IrrLib.Color.RED (ect) +Version 1.2.5 ++ Implmented mouse events + + IrrLib.IrrEvent.getMouseX(); + + IrrLib.IrrEvent.getMouseY(); ++ Using vectors instead of static arrays + + Side note: Was going to use dynamic arrays, but C++ has vectors which are 10x better. ++ Added a default exit for when you hit esc + + Use IrrLib.IrrEvent.SetEscExit(false) to turn that off for your software + + Use IrrLib.IrrEvent.SetEscExit(true) to turn it back on ++ Every stable version will now include a windows DLL. + + Possible Linux .so file in the future. +Version 1.2.6 ++ Added a IrrEvent for buttons + + IrrLib.IrrEvent.checkButtonState(); + + See example for use ++ Added an AddButton function + + IrrLib.GUI.AddButton(..); + + See example for use ++ Problems with making the DLL + + reasearching +Version 1.2.7 ++ Fixed DLL Problem ++ Added an enum example to example 1 ++ Added more examples ++ Added example 9 ++ Added left click handling (see example 9) ++ Added AddLines function to Irr2D + + DrawLines function in Irr2D will draw the lines you add +Version 1.2.9 ++ Added Listbox GUI object ++ Added a new datatype IrrObj + + Contains 2 ints, 1 for object id and 1 for event id ++ Added a IrrData.h file +Version 1.3.0 ++ Changed String class use to Irrlicht's type Strings +Version 1.3.1 ++ Added support for newest Irrlict version +Version 1.3.2 ++ Added Newton Physics engine + - Deleted Irr2D::Collision as this will be now handled by the physics engine + + Added a few functions for Collision + + Added a new object Irr3DObj + + Has several functions that allow you to work easily with 3D objects including moving them and setting the texture. + + You can now detect collision between 2 3D objects and output them to the screen + + Example code: http://pastethis.net/?code=49 ++ Changed the way IrrColor colors work ++ Changed internally handling of some global variables ++ Added some static variables + + Irrlicht Device is now static in IrrLib class + + Some variables that deal with Physics are static ++ Updated copyright ++ \ No newline at end of file diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Unstable Version/1.3.2/CREDITS --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Unstable Version/1.3.2/CREDITS Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,10 @@ +IrrLib +Created by + Nathan Adams + +From #irrlicht + Acid + wacom + +From Irrlicht Forums + Denzel Morris \ No newline at end of file diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Unstable Version/1.3.2/Irr2D.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Unstable Version/1.3.2/Irr2D.cpp Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,120 @@ +/* + Irrlicht Library Wrapper + Created by: + Nathan Adams + Copyright (C) 2008 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ + +#include +//#include "IrrLib.h" +//#include "IrrSphere.h" //You probably aren't going to be using 3D objects in a 2D environment! +#include +#include + +#include "Irr2D.h" +#include "IrrSprite.h" + +using namespace irr; +using namespace core; +using namespace scene; +using namespace video; +using namespace io; +using namespace gui; + +using namespace std; + +Irr2D::Irr2D(){ + this->numTextures = 0; + this->numLines = 0; + this->nImages = 0; + //NA Should we set textures to new +} + +Irr2D::~Irr2D(){ + /*for(int i = 0; i < numTextures; ++i) + delete this->textures[i]; + + delete this->textures;*/ + //No more dynamic memory business yay! NA + //All handled by vectors! +} + +/*void Irr2D::SetSmgr(irr::scene::ISceneManager* smgr){ + this->smgr = smgr; + Sprite.SetSmgr(smgr); +} + +void Irr2D::SetDriver(irr::video::IVideoDriver* driver){ + this->driver = driver; + Sprite.SetDriver(driver); +}*/ + +IrrObj Irr2D::LoadTexturemap(stringc file){ + this->texturemap = driver->getTexture(file.c_str()); +} + +IrrObj Irr2D::LoadTexture(stringc file){ + //this->textures[this->numTextures] = driver->getTexture(file.c_str()); + textures.push_back(driver->getTexture(file.c_str())); + this->numTextures++; + IrrObj ret; + ret.eventid = 0; + ret.objectid = numTextures--; + return ret; +} + +void Irr2D::DrawLine(IrrPos& start, IrrPos& end, irr::video::SColor color) +{ + this->driver->draw2DLine(start, end, color); +} + +void Irr2D::AddLines(IrrPos& start, IrrPos& end, irr::video::SColor color) +{ + this->start.push_back(start); + this->end.push_back(end); + this->color.push_back(color); + this->numLines++; +} + +void Irr2D::DrawLines() +{ + for(int i = 0; i < numLines; ++i) + this->driver->draw2DLine(this->start[i], this->end[i], this->color[i]); +} + +IrrObj Irr2D::LoadIrrImage(irr::core::stringc file) +{ + images.push_back(this->driver->getTexture(file.c_str())); + IrrObj ret; + ret.objectid = nImages; + ret.eventid = 0; + this->nImages++; + return ret; +} + +void Irr2D::DrawImage(IrrObj img) +{ + irr::core::position2d destPos(img.x, img.y); + this->driver->draw2DImage(images[img.objectid], destPos); +} + +void Irr2D::Draw2DObj(irr::core::stringc file) +{ + //NewtonObj tmp; + //tmp.irr_node = smgr->addMeshSceneNode(smgr->getMesh(file.c_str())->getMesh(0)); + //IMeshSceneNode* temp; + objects.push_back(smgr->addMeshSceneNode(smgr->getMesh(file.c_str())->getMesh(0))); + objects.push_back(smgr->addMeshSceneNode(smgr->getMesh(file.c_str())->getMesh(0))); + objects[0]->setPosition(vector3df(-5,0,0)); + objects[0]->getMaterial(0).EmissiveColor.set(255,0,255,5); +} + +/*bool Irr2D::Collision(IrrObj obj1, IrrObj obj2) +{ + int x1 = obj1.x; + int y1 = obj1.y; +}*/ + diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Unstable Version/1.3.2/Irr2D.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Unstable Version/1.3.2/Irr2D.h Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,72 @@ +/* + Irrlicht Library Wrapper + Created by: + Nathan Adams + Copyright (C) 2008 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ + +#ifndef IRR2D_H +#define IRR2D_H +/* We should include some basic functions */ +#include +/* include strings */ +#include +#include + +/* We have to include Irrlichts libs */ +#include + +//#include "IrrLib.h" +#include "IrrData.h" +#include "IrrSprite.h" + +class Irr2D: public IrrLibBase { + private: + //irr::scene::ISceneManager* smgr; + //irr::video::IVideoDriver* driver; + //Inherited from IrrLibBase + irr::video::ITexture* texturemap; + int numTextures; + //irr::video::ITexture* textures[10]; + std::vector textures; + std::vector > start; + std::vector > end; + std::vector color; + std::vector images; + std::vector objects; + int numLines; + int nImages; + public: + //Irr2D::Irr2D(); + IrrSprite Sprite; + Irr2D::Irr2D(); + Irr2D::~Irr2D(); + //void Irr2D::SetDriver(irr::video::IVideoDriver* driver); + //void Irr2D::SetSmgr(irr::scene::ISceneManager* smgr); + //Inherited from irrlibbase + IrrObj Irr2D::LoadTexturemap(irr::core::stringc file); + IrrObj Irr2D::LoadTexture(irr::core::stringc file); + //Has been renamed from LoadImage to LoadIrrImage due to conflict with windows API + IrrObj Irr2D::LoadIrrImage(irr::core::stringc file); + //void Irr2D::DrawImage(int texture, const irr::core::position2d & destPos); + //void Irr2D::DrawImage(IrrObj& img, irr::core::position2d& destPos); + void Irr2D::DrawImage(IrrObj img); + void Irr2D::Draw2DObj(irr::core::stringc file); + //void Irr2D::MoveImage(IrrObj img, irr::core::dimension2d destPos); + //void Irr2D::MoveImage(IrrObj img, int x, int y); + //void Irr2D::DrawImage(const irr::core::position2d & destPos, const irr::core::rect & sourceRect, const irr::core::rect * clipRect, irr::video::SColor color, bool useAlphaChannelOfTexture); + //void Irr2D::DrawImage(const irr::core::position2d & destPos, const irr::core::rect & sourceRect, const irr::core::rect * clipRect, irr::video::SColor color, bool useAlphaChannelOfTexture); + //void Irr2D::DrawLine(irr::core::position2d& start, irr::core::position2d& end, irr::video::SColor& color); + void Irr2D::DrawLine(IrrPos& start, IrrPos& end, irr::video::SColor color); + void Irr2D::DrawLines(); + //void Irr2D::AddLines(irr::core::position2d& start, irr::core::position2d& end, irr::video::SColor& color); + void Irr2D::AddLines(IrrPos& start, IrrPos & end, irr::video::SColor color); + //bool Irr2D::Collision(IrrObj obj1, IrrObj obj2); + //IrrObj Irr2D::LoadImageA(irr::core::stringc file); +}; + +#endif + diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Unstable Version/1.3.2/Irr3D.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Unstable Version/1.3.2/Irr3D.cpp Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,51 @@ +/* + Irrlicht Library Wrapper + Created by: + Nathan Adams + Copyright (C) 2008 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ + +#include +#include + +//#include "IrrLib.h" +//Libraries we create go here +#include "IrrSphere.h" +//#include "IrrColor.h" +#include "Irr3D.h" +#include +//#include "Irr2D.h" + +using namespace irr; +using namespace core; +using namespace scene; +using namespace video; +using namespace io; +using namespace gui; + +using namespace std; + +/*void Irr3D::SetDriver(irr::video::IVideoDriver* driver) //so much for copying and pasting code from the header file +{ + this->driver = driver; + Sphere.SetDriver(driver); +} + +void Irr3D::SetSmgr(irr::scene::ISceneManager* smgr) +{ + this->smgr = smgr; + Sphere.SetSmgr(smgr); +}*/ + +Irr3D::Irr3D() +{ + //do stuff here! +} + +Irr3D::~Irr3D() +{ + //delete stuff here! +} diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Unstable Version/1.3.2/Irr3D.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Unstable Version/1.3.2/Irr3D.h Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,43 @@ +/* + Irrlicht Library Wrapper + Created by: + Nathan Adams + Copyright (C) 2008 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ + +#ifndef IRR3D_H +#define IRR3D_H + +/* We should include some basic functions */ +#include +/* include strings */ +#include + +/* We have to include Irrlichts libs */ +#include + +#include "IrrSphere.h" +//#include "IrrColor.h" +//#include "Irr3D.h" +//#include "Irr2D.h" This is a 3D class not 2D +/* However due to Irrlciht's nature mixing 2D with 3D is possible */ + +//Start class +class Irr3D: public IrrLibBase { + + private: + + //irr::video::IVideoDriver* driver; + //irr::scene::ISceneManager* smgr; + public: + IrrSphere Sphere; + Irr3D::Irr3D(); + Irr3D::~Irr3D(); + //void Irr3D::SetDriver(irr::video::IVideoDriver* driver); + //void Irr3D::SetSmgr(irr::scene::ISceneManager* smgr); +}; + +#endif diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Unstable Version/1.3.2/Irr3DObj.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Unstable Version/1.3.2/Irr3DObj.cpp Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,89 @@ +/* + Irrlicht Library Wrapper + Created by: + Nathan Adams + Copyright (C) 2008 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ + +#include +#include +#include +#include + +#include "Irr3DObj.h" +#include "IrrData.h" +#include "IrrPhysics.h" +#include "IrrLib.h" +#include "IrrFunctions.h" + +using namespace irr; +using namespace core; +using namespace scene; +using namespace video; +using namespace io; +using namespace gui; + +using namespace std; + +Irr3DObj::Irr3DObj() +{ + this->col.a = 0; + this->col.b = 0; + this->col.g = 0; + this->col.r = 0; +} + +Irr3DObj::Irr3DObj(Irr3DObjColor col) +{ + this->col.a = col.a; + this->col.b = col.b; + this->col.g = col.g; + this->col.r = col.r; +} + +/*Irr3DObj::Irr3DObj(IrrLib &irr, Irr3DObjColor col) +{ + this->col.a = col.a; + this->col.r = col.r; + this->col.g = col.g; + this->col.b = col.b; +}*/ + +IMeshSceneNode* Irr3DObj::getSceneNode() +{ + return this->irr_node; +} + +NewtonCollision* Irr3DObj::getNewtonCollision() +{ + return this->nwtn_collision; +} + +void Irr3DObj::setTexture(irr::core::stringc strng) +{ + this->texture = strng; +} + +void Irr3DObj::Move(Irr3DPos pos) +{ + this->irr_node->setPosition(vector3df(pos.x, pos.y, pos.z)); +} + +void Irr3DObj::addToScene() +{ + if (this->texture == "") + { + cout << "Material not set for this object" << endl; + return; + } + ISceneManager* smgr = IrrLib::device->getSceneManager(); + //this->irr_node = this->device->getSceneManager->addMeshSceneNode(this->device->getSceneManager->getMesh(this->texture.c_str())->getMesh(0)); + this->irr_node = smgr->addMeshSceneNode(smgr->getMesh(this->texture.c_str())->getMesh(0)); + this->irr_node->getMaterial(0).EmissiveColor.set(this->col.a, this->col.r, this->col.g, this->col.b); + //cout << col.a << endl; + this->nwtn_collision = CreateCollisionFromMesh(IrrPhysics::nworld, this->irr_node->getMesh()); + +} diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Unstable Version/1.3.2/Irr3DObj.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Unstable Version/1.3.2/Irr3DObj.h Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,52 @@ +/* + Irrlicht Library Wrapper + Created by: + Nathan Adams + Copyright (C) 2008 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ + +#ifndef Irr3DObj_H +#define Irr3DObj_H + +/* We should include some basic functions */ +#include +/* include strings */ +//#include + +/* We have to include Irrlichts libs */ +#include +#include +#include "IrrData.h" +//class IrrLib; +#include "IrrLib.h" + + + +class Irr3DObj: public IrrLibBase { + + private: + IrrLib * Irrlicht; + irr::scene::IMeshSceneNode *irr_node; + NewtonCollision *nwtn_collision; + irr::core::stringc texture; + Irr3DObjColor col; + public: + + Irr3DObj::Irr3DObj(Irr3DObjColor col); + Irr3DObj::Irr3DObj(); + void Irr3DObj::Move(Irr3DPos pos); + //Irr3DObj::Irr3DObj(IrrLib &irr, Irr3DObjColor col); + //Irr3DObj::~Irr3DObj(); + void addToScene(); + void createNewObj(); + void setTexture(irr::core::stringc strng); + void setPosition(Irr3DPos pos); + void setPosition(irr::u32 x, irr::u32 y, irr::u32 z); + irr::scene::IMeshSceneNode* getSceneNode(); + NewtonCollision* getNewtonCollision(); +}; + +#endif diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Unstable Version/1.3.2/IrrColor.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Unstable Version/1.3.2/IrrColor.cpp Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,112 @@ +/* + Irrlicht Library Wrapper + Created by: + Nathan Adams + Copyright (C) 2008 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ + +#include +#include +#include + +//#include "IrrLib.h" +#include "IrrColor.h" + +using namespace irr; +using namespace core; +using namespace scene; +using namespace video; +using namespace io; +using namespace gui; + +using namespace std; + +void IrrColor::Init(){ + /*SColor * temp; + temp = new SColor(alpha, 255, 0, 0); + this->RED = temp; + delete temp;*/ + this->RED = SColor(alpha, 255, 0, 0); + this->ORANGE = SColor(alpha, 255, 165, 0); + this->YELLOW = SColor(alpha, 255, 255, 0); + this->GREEN = SColor(alpha, 0, 255, 0); + this->BLUE = SColor(alpha, 0, 0, 255); + this->DARK_GREEN = SColor(alpha, 0, 100, 0); + this->PINK = SColor(alpha, 255, 192, 203); + this->GREY = SColor(alpha, 190, 190, 190); + this->WHITE = SColor(alpha, 0, 0, 0); + this->BLACK = SColor(alpha, 0, 0, 0); +} + +IrrColor::~IrrColor(){ + /*delete this->RED; + delete this->ORANGE; + delete this->YELLOW; + delete this->GREEN; + delete this->BLUE; + delete this->DARK_GREEN; + delete this->PINK; + delete this->GREY; + delete this->WHITE; + delete this->BLACK;*/ +} + +IrrColor::IrrColor(){ + this->alpha = 255; + Init(); +} + +IrrColor::IrrColor(irr::u32 alpha){ + this->alpha = alpha; + Init(); +} + +int IrrColor::getAlpha(){ + return this->alpha; +} + +void IrrColor::setAlpha(int alpha){ + this->alpha = alpha; +} + +SColor IrrColor::returnColor(stringw color){ + int nColor = -1; + if (color == "red") + nColor = 1; + else if (color == "green") + nColor = 2; + else if (color == "blue") + nColor = 3; + else if (color == "dark green") + nColor = 4; + else if (color == "pink") + nColor = 5; + else if (color == "grey") + nColor = 6; + switch (nColor){ + case 1: + return SColor(255, 255, 0, 0); + break; + case 2: + return SColor(255, 0, 255, 0); + break; + case 3: + return SColor(255, 0, 0, 255); + break; + case 4: + return SColor(255, 0, 50, 0); + break; + case 5: + return SColor(255, 255, 10, 255); + break; + case 6: + return SColor(255,200,200,200); + break; + default: + return SColor(255,200,200,200); + break; + }// TODO: Make this function modular +} diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Unstable Version/1.3.2/IrrColor.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Unstable Version/1.3.2/IrrColor.h Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,52 @@ +/* + Irrlicht Library Wrapper + Created by: + Nathan Adams + Copyright (C) 2008 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ + +#ifndef IRRCOLOR_H +#define IRRCOLOR_H + +#include +#include +#include "irrlicht.h" +//#include "IrrLib.h" + +class IrrColor { + private: + irr::u32 alpha; + void Init(); + //who knows? + public: + //irr::video::SColor(alpha, 255, 0, 0); + irr::video::SColor RED; + irr::video::SColor ORANGE; + irr::video::SColor YELLOW; + irr::video::SColor GREEN; + irr::video::SColor BLUE; + irr::video::SColor DARK_GREEN; + irr::video::SColor PINK; + irr::video::SColor GREY; + irr::video::SColor WHITE; + irr::video::SColor BLACK; + /*const ORANGE = irr::video::SColor(alpha, 255, 165, 0); + const YELLOW = irr::video::SColor(alpha, 255, 255, 0); + const GREEN = irr::video::SColor(alpha, 0, 255, 0); + const BLUE = irr::video::SColor(alpha, 0, 0, 255); + const DARK_GREEN = irr::video::SColor(alpha, 0, 100, 0); + const PINK = irr::video::SColor(alpha, 255, 192, 203); + const GREY = irr::video::Scolor(alpha, 190, 190, 190);*/ + //void IrrColor::test(); + IrrColor(); + IrrColor(irr::u32 alpha); + ~IrrColor(); + int getAlpha(); + void setAlpha(int alpha); + irr::video::SColor returnColor(irr::core::stringw color); +}; + +#endif diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Unstable Version/1.3.2/IrrData.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Unstable Version/1.3.2/IrrData.h Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,53 @@ +#ifndef IRRDATA_H +#define IRRDATA_H + +#include + +typedef irr::core::dimension2d PixelSize; +typedef irr::core::position2d IrrPos; +//typedef irr::core::position3d Irr3DPos; + +struct Irr3DPos { + int x; + int y; + int z; +}; + +struct pixels { + int width; + int height; +}; //possible future use in 2D objects when specifying the properties of an object draw + +struct IrrObj { + int eventid; + int objectid; + int x; + int y; +}; + +struct Collision { + int nHits; + bool hit; +}; + +struct _mouse { + int x; + int y; +}; + +struct Irr3DObjColor { + irr::u32 r; + irr::u32 g; + irr::u32 b; + irr::u32 a; +}; + +struct IrrOpt { + bool lighting; + irr::core::stringc t; +}; + +struct IrrMatFlags { + +}; +#endif diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Unstable Version/1.3.2/IrrEventReciever.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Unstable Version/1.3.2/IrrEventReciever.cpp Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,197 @@ +/* + Irrlicht Library Wrapper + Created by: + Nathan Adams + Copyright (C) 2008 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ + +#include "IrrEventReciever.h" +#include "IrrData.h" +#include "IrrLib.h" +//#include "IrrLib.h" +#include +#include + +using namespace irr; +using namespace core; +using namespace scene; +using namespace video; +using namespace io; +using namespace gui; + +using namespace std; + +/*void IrrEventReciever::setIrrLib(IrrLib& IrrLib) +{ + this.callingIrrLib = IrrLib; +}*/ + +IrrEventReciever::IrrEventReciever() +{ + this->escexit = true; + this->mouse.x = 0; + this->mouse.y = 0; + for(int i = 0; i < irr::KEY_KEY_CODES_COUNT; i++) + keyStates[i] = false; + this->device = IrrLib::device; +} + +#if IRRVER == 131 + bool IrrEventReciever::OnEvent(SEvent event) +#else + bool IrrEventReciever::OnEvent(const SEvent &event) +#endif +{ + // A button was clicked + if (event.EventType == irr::EET_GUI_EVENT) + { + s32 id = event.GUIEvent.Caller->getID(); + switch(event.GUIEvent.EventType){ + case EGET_BUTTON_CLICKED: + //cout << id << endl; + buttonStates.push_back(id); + break; + case EGET_LISTBOX_CHANGED: + //s32 id = event.GUIEvent.Caller->getID(); + listStates.push_back(id); + break; + case EGET_LISTBOX_SELECTED_AGAIN: + listStates.push_back(id); + break; + default: + break; + } + } + /*if (event.EventType == irr::EGET_SCROLL_BAR_CHANGED) + { + + }*/ + if (event.EventType == irr::EET_KEY_INPUT_EVENT) { + if (!event.KeyInput.PressedDown){ + this->keyStates[event.KeyInput.Key] = false; + //cout << "Key was not hit " << this->keyStates[event.KeyInput.Key] << endl; + } + else{ + if(event.KeyInput.Key == KEY_ESCAPE && escexit) + IrrLib::device->closeDevice(); + this->keyStates[event.KeyInput.Key] = true; + //cout << "Key was hit: " << event.KeyInput.Key << " " << this->keyStates[event.KeyInput.Key] << endl; + } + } + if (event.EventType == EET_MOUSE_INPUT_EVENT){ + if (event.MouseInput.Event == EMIE_MOUSE_MOVED){ + this->mouse.x = event.MouseInput.X; + this->mouse.y = event.MouseInput.Y; + } + if (event.MouseInput.Event == EMIE_LMOUSE_PRESSED_DOWN) + this->mouseStates[0] = true; + if (event.MouseInput.Event == EMIE_LMOUSE_LEFT_UP) + this->mouseStates[0] = false; + } + return false; +} + +void IrrEventReciever::SetEscExit(bool onoff) +{ + this->escexit = onoff; +} + +int IrrEventReciever::getMouseX() +{ + return this->mouse.x; +} + +int IrrEventReciever::getMouseY() +{ + return this->mouse.y; +} + +int IrrEventReciever::getButtonState() +{ + if(!this->buttonStates.empty()){ + int id; + id = buttonStates.back(); + this->buttonStates.pop_back(); + return id; + } + else + return -1; +} + +int IrrEventReciever::getRevButtonState() +{ + if(!this->buttonStates.empty()){ + int id = buttonStates.front(); + this->buttonStates.erase(buttonStates.begin()); + return id; + } + else + return -1; +} + +void IrrEventReciever::clearButtonState() +{ + this->buttonStates.clear(); +} + +int IrrEventReciever::checkButtonState(IrrObj obj) +{ + if(!this->buttonStates.empty()){ + int tmp = this->buttonStates.back(); + if (tmp == obj.eventid) + { + this->delLastButtonState(); + return 1; + } + else + { + return 0; + } + } + else + { + return -1; + } +} + +void IrrEventReciever::delLastButtonState() +{ + if(!this->buttonStates.empty()) + this->buttonStates.pop_back(); +} + +bool IrrEventReciever::isButtonStateEmpty() +{ + return this->buttonStates.empty(); +} + +int IrrEventReciever::checkListState(IrrObj obj) +{ + if(!this->listStates.empty()) + { + int tmp = this->listStates.back(); + //cout << tmp << endl; + if (tmp == obj.eventid) + { + this->delLastListState(); + return 1; + } + else + { + return 0; + } + } + else + { + return 0; + } +} + +void IrrEventReciever::delLastListState() +{ + if(!this->listStates.empty()) + this->listStates.pop_back(); +} diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Unstable Version/1.3.2/IrrEventReciever.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Unstable Version/1.3.2/IrrEventReciever.h Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,56 @@ +/* + Irrlicht Library Wrapper + Created by: + Nathan Adams + Copyright (C) 2008 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ + +#ifndef IRREVENTRECIEVER_H +#define IRREVENTRECIEVER_H + +//#include "IrrLib.h" +#include +#include +#include "IrrLibBase.h" +#include "IrrData.h" +#include + + + +class IrrEventReciever : public irr::IEventReceiver, public IrrLibBase +{ + private: + //IrrLib callingIrrLib; + _mouse mouse; + bool escexit; + std::vector buttonStates; + std::vector listStates; + irr::IrrlichtDevice *device; + public: + //IrrEventReciever(); + bool mouseStates[1]; + IrrEventReciever(); + int getMouseX(); + int getMouseY(); + bool keyStates[irr::KEY_KEY_CODES_COUNT]; + //void setIrrLib(IrrLib& IrrLib) + #if IRRVER == 131 + virtual bool OnEvent(irr::SEvent event); + #else + virtual bool OnEvent(const irr::SEvent &event); + #endif + void SetEscExit(bool onoff); + int getButtonState(); + int getRevButtonState(); + void clearButtonState(); + int checkButtonState(IrrObj obj); + void delLastButtonState(); + bool isButtonStateEmpty(); //is there still stuff in the vector to be done? NA + int checkListState(IrrObj obj); + void delLastListState(); +}; + +#endif diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Unstable Version/1.3.2/IrrFunctions.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Unstable Version/1.3.2/IrrFunctions.cpp Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,160 @@ +#include "IrrFunctions.h" +#include "Irr3DObj.h" +#include +#include + +using namespace irr; +using namespace core; +using namespace scene; +using namespace video; +using namespace io; +using namespace gui; + +int CheckForCollision(NewtonWorld *nWorld, Irr3DObj *obj_A, Irr3DObj *obj_B) +{ +//Matrix to store irr_node position +matrix4 mat_A,mat_B; + +//Copy position +mat_A.makeIdentity(); +mat_B.makeIdentity(); + +mat_A.setTranslation(obj_A->getSceneNode()->getPosition()); +mat_B.setTranslation(obj_B->getSceneNode()->getPosition()); + +const int nContacts = 2; +float contacts[3 * nContacts]; +float normals[3 * nContacts]; +float penetration[ nContacts ]; + +//Check for collision between collision meshes, +// returns number of contact points +int nHits = NewtonCollisionCollide( nWorld,nContacts, + + obj_A->getNewtonCollision(), (float*)&mat_A[0], + obj_B->getNewtonCollision(), (float*)&mat_B[0], + contacts, + normals, + penetration); + +//Collision detected if nHits > 0 +/*if( nHits > 0) +return true; +return false;*/ +return nHits; + +} + +//Function to create a NewtonCollision from irrlicht mesh with tree optimization +NewtonCollision * CreateTreeCollisionFromMesh(NewtonWorld *nWorld, IMesh *irr_mesh ) +{ +//Create new (tree optimized) collision mesh +NewtonCollision *collision_obj = NewtonCreateTreeCollision(nWorld ,NULL); + +//Begin collision mesh construction +NewtonTreeCollisionBeginBuild(collision_obj); + +int nMeshBuffer = 0; //Mesh Buffer count +int v_index[3] = {0,0,0}; //vertex indices +IMeshBuffer *mesh_buffer = NULL; +float array[9]; //Array to store 3 vertices + +//Get (irr_)mesh buffers and copy face by face to collision mesh +for( nMeshBuffer=0 ; nMeshBuffer < irr_mesh->getMeshBufferCount() ; nMeshBuffer++ ) +{ +mesh_buffer = irr_mesh->getMeshBuffer(nMeshBuffer); + +//Get pointer to vertices and indices +S3DVertex *vertices = (S3DVertex*)mesh_buffer->getVertices(); +u16 *indices = mesh_buffer->getIndices(); + +//Fill collision mesh +for(int i=0; igetIndexCount(); i+=3) +{ +v_index[0] = indices[ i ]; +v_index[1] = indices[i+1]; +v_index[2] = indices[i+2]; + +// 1st position vertex +array[0] = vertices[ v_index[0] ].Pos.X; +array[1] = vertices[ v_index[0] ].Pos.Y; +array[2] = vertices[ v_index[0] ].Pos.Z; + +// 2nd position vertex +array[3] = vertices[ v_index[1] ].Pos.X; +array[4] = vertices[ v_index[1] ].Pos.Y; +array[5] = vertices[ v_index[1] ].Pos.Z; + +// 3rd position vertex +array[6] = vertices[ v_index[2] ].Pos.X; +array[7] = vertices[ v_index[2] ].Pos.Y; +array[8] = vertices[ v_index[2] ].Pos.Z; + +//Add new face to collision mesh +NewtonTreeCollisionAddFace(collision_obj, //collision mesh to add face to + + 3, //number of vertices in array + (float*)array, //pointer to vertex array + 3*sizeof(float),//size of each vertex + 1); //ID of the face + +} +} +//End collision contruction , set 1 as 2dn param for optimization +NewtonTreeCollisionEndBuild(collision_obj,0); + +return collision_obj; + +} + +//Function to create a NewtonCollision from irrlicht mesh +NewtonCollision * CreateCollisionFromMesh(NewtonWorld *nWorld, IMesh *irr_mesh ) +{ +int nMeshBuffer = 0; //Mesh Buffer count +IMeshBuffer *mesh_buffer = NULL; +float *vertices; //Array to store vertices + +u32 nVertices = 0; + +//Get number of vertices +for( nMeshBuffer=0 ; nMeshBuffer < irr_mesh->getMeshBufferCount() ; nMeshBuffer++ ) +{ +nVertices += irr_mesh->getMeshBuffer(nMeshBuffer)->getVertexCount(); +} + + +//create buffer for vertices +vertices = new float[nVertices * 3]; +u32 tmpCounter = 0; + +//Get (irr_)mesh buffers and copy face vertices +for( nMeshBuffer=0 ; nMeshBuffer < irr_mesh->getMeshBufferCount() ; nMeshBuffer++ ) +{ + + mesh_buffer = irr_mesh->getMeshBuffer(nMeshBuffer); + + //Get pointer to vertices and indices + S3DVertex *S3vertices = (S3DVertex*)mesh_buffer->getVertices(); + + +//copy vertices from mesh to buffer +for(int i=0; igetVertexCount(); i++) +{ + + vertices[tmpCounter++] = S3vertices[i].Pos.X; + vertices[tmpCounter++] = S3vertices[i].Pos.Y; + vertices[tmpCounter++] = S3vertices[i].Pos.Z; + + } + +} + +//Create Newton collision object +NewtonCollision *collision_obj = NewtonCreateConvexHull(nWorld,nVertices,vertices,sizeof(float)*3,NULL); + +//delete vertices +delete [] vertices; + +return collision_obj; + +} diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Unstable Version/1.3.2/IrrFunctions.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Unstable Version/1.3.2/IrrFunctions.h Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,9 @@ +#ifndef IRRFUNCTIONS_H +#define IRRFUNCTIONS_H + +#include "Irr3DObj.h" + int CheckForCollision(NewtonWorld *nWorld, Irr3DObj *obj_A, Irr3DObj *obj_B); + NewtonCollision * CreateTreeCollisionFromMesh(NewtonWorld *nWorld, irr::scene::IMesh *irr_mesh ); + NewtonCollision * CreateCollisionFromMesh(NewtonWorld *nWorld, irr::scene::IMesh *irr_mesh ); + +#endif diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Unstable Version/1.3.2/IrrLib.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Unstable Version/1.3.2/IrrLib.cpp Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,299 @@ +/* + Irrlicht Library Wrapper + Created by: + Nathan Adams + Copyright (C) 2008 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ + +#include +#include +#include +#include +#include + +#include "IrrLib.h" +//Libraries we create go here +//#include "IrrSphere.h" +#include "IrrColor.h" +//#include "Irr2D.h" + +using namespace irr; +using namespace core; +using namespace scene; +using namespace video; +using namespace io; +using namespace gui; + +using namespace std; + + +/*IrrLib::IrrLib(MastEventReceiver & receiver){ + this->device = createDevice(EDT_SOFTWARE, dimension2d(640, 480), 16, false, false, false, &receiver); + if (this->device == 0) + exit(1); + IrrLib::Init(); +}*/ + +IrrlichtDevice *IrrLib::device; + +IrrLib::IrrLib(){ + IrrLib::device = createDevice(EDT_SOFTWARE, dimension2d(640, 480), 16, false, false, false, &this->IrrEvent); + if (IrrLib::device == 0) + exit(1); + IrrLib::Init(); +} + +IrrLib::IrrLib(video::E_DRIVER_TYPE drivertype, core::dimension2d & res, u32 bits, bool fullscreen, bool stencilbuffer, bool vsync){ + //MyEventReceiver receiver; + this->device = createDevice(drivertype, res, bits, fullscreen, stencilbuffer, vsync, &this->IrrEvent); + if (this->device == 0) + exit(1); + IrrLib::Init(); +} + +IrrLib::IrrLib(int nDrivertype, int width, int height, int bits, bool fullscreen, bool stencilbuffer, bool vsync){ + //MyEventReceiver receiver; + video::E_DRIVER_TYPE drivertype; + switch (nDrivertype){ + case 0: //TODO: finish this switch case + drivertype = EDT_NULL; + break; + case 1: + drivertype = EDT_SOFTWARE; + break; + case 2: + drivertype = EDT_BURNINGSVIDEO; + break; + case 3: + drivertype = EDT_OPENGL; + break; + case 4: + #if DX8 == 1 + drivertype = EDT_DIRECT3D8; + #else + drivertype = EDT_OPENGL; + #endif + //*Note: It seems as Microsoft has stoped supporting DX 8.1, so you can not compile it into Irrlicht engine anymore + //TODO: Find how to detect if DX is complied into Irrlicht + //TODO: Find how to detecht for linux + break; + case 5: + #if DX9 == 1 + drivertype = EDT_DIRECT3D9; + #else + drivertype = EDT_OPENGL; + #endif + break; + default: + drivertype = EDT_SOFTWARE; + break; + } + this->device = createDevice(drivertype, dimension2d(width, height), bits, fullscreen, stencilbuffer, vsync, &this->IrrEvent); + if (this->device == 0) + exit(1); + IrrLib::Init(); +} + +IrrLib::~IrrLib (){ //Our moms wont clean up after us! + //Although I'm sure Irrlicht does this for us already, its always a good idea to check! + /*if (this->device != NULL) + delete this->device; + if (this->driver != NULL) + delete this->driver; + if (this->smgr != NULL) + delete this->smgr; + if (this->mesh != NULL) + delete this->mesh; + if (this->node != NULL) + delete this->node;*/ //it seems Irrlicht picks up after us... + //however we created newNodes, now we need to delete it! +// NewtonReleaseCollision(nworld, sphere.nwtn_collision); +// NewtonReleaseCollision(nworld, cube.nwtn_collision); + //NewtonDestroy(IrrPhy.nworld); + +} + +void IrrLib::Init(){ + //this->numNodes = 0; + //this->nodeNew = new ISceneNode[10]; + //this->env->addStaticText(L"Transparent Control:", rect(20,30,300,80), true); + this->env = this->device->getGUIEnvironment(); + this->driver = this->device->getVideoDriver(); + this->smgr = this->device->getSceneManager(); + Irr3DLib.SetSmgr(this->smgr); + Irr3DLib.SetDriver(this->driver); + Irr2DLib.SetSmgr(this->smgr); + Irr2DLib.SetDriver(this->driver); + //IrrEvent.SetDevice(this->device); + //Irr2DObj.SetDriver(this->device); + GUI.SetEnv(this->env); + //IrrEvent.SetDevice(this->device); + this->timer = this->device->getTimer(); + tick = this->timer->getRealTime(); +} + +void IrrLib::ReadArchive(stringc file){ + this->device->getFileSystem()->addZipFileArchive(file.c_str()); +} + +void IrrLib::LoadQ3Level(stringc q3level){ + this->mesh = this->smgr->getMesh(q3level.c_str()); + this->node = 0; + if (this->mesh) + this->node = this->smgr->addOctTreeSceneNode(this->mesh->getMesh(0), 0, -1, 128); +} + +void IrrLib::MapPos(int x, int y, int z){ + if (this->node) + this->node->setPosition(core::vector3df(x, y, z)); +} + +void IrrLib::MapPos(){ + if (this->node) + this->node->setPosition(core::vector3df(0, 0, 0)); +} + +void IrrLib::AddFPSCam(){ + this->cam = this->smgr->addCameraSceneNodeFPS(); +} + +void IrrLib::AddFPSCam(f32 x, f32 y, f32 z) +{ + this->cam = this->smgr->addCameraSceneNodeFPS(); + this->cam->setPosition(irr::core::vector3df(x, y, z)); +} + +void IrrLib::VisibleCursor(bool tf){ + if (tf == false) + this->device->getCursorControl()->setVisible(false); + else + this->device->getCursorControl()->setVisible(true); +} + +int IrrLib::GetFPSCount(){ + return this->driver->getFPS(); +} + +bool IrrLib::DeviceIsRunning(){ + return this->device->run(); +} + +bool IrrLib::IsActiveWindow(){ + return this->device->isWindowActive(); +} + +void IrrLib::BeginScene(){ + this->driver->beginScene(true, true, video::SColor(0,200,200,200)); + //smgr->addCameraSceneNode(0, vector3df(0,1,-7), vector3df(0,0,0)); +} + +void IrrLib::BeginScene(irr::video::SColor color){ + this->driver->beginScene(true, true, color); +} + +void IrrLib::BeginScene(bool usebackBuffer, bool usezBuffer, irr::video::SColor color){ + this->driver->beginScene(usebackBuffer, usezBuffer, color); +} + +void IrrLib::DrawAll(){ + //position2d start(50, 50); + //position2d end(100,100); + // SColor whitecolor(255,255,255,255); +//driver->draw2DLine(start, end, whitecolor); + this->smgr->drawAll(); + //this->env->drawAll(); + //this->device->getGUIEnvironment()->drawAll(); + } + +void IrrLib::EndScene(){ + this->driver->endScene(); +} + +void IrrLib::SetWindowCaption(stringw str){ + this->device->setWindowCaption(str.c_str()); +} + +irr::core::stringw IrrLib::GetDriverName(){ + return this->driver->getName(); +} + +void IrrLib::EndIrrlicht(){ + if(this->device != NULL){ + this->device->drop(); + this->device = NULL; + } +} + +void IrrLib::KeyPress(char key){ + this->key = key; +} + +char IrrLib::KeyPressed(){ + return key; +} + +irr::f32 IrrLib::getX(){ + return this->smgr->getActiveCamera()->getPosition().X; +} + +irr::f32 IrrLib::getY(){ + return this->smgr->getActiveCamera()->getPosition().Y; +} + +irr::f32 IrrLib::getZ(){ + return this->smgr->getActiveCamera()->getPosition().Z; +} + +bool IrrLib::CheckGameLoop(){ + u32 now; + now = this->timer->getRealTime(); + if ((now - this->tick) >= 30){ + //this->tick == time (NULL); + return true; + } else { + return false; + } +} + +bool IrrLib::CheckGameLoop(u32 ms){ + u32 now; + now = this->timer->getRealTime(); + if ((now - this->tick) >= ms){ + this->tick = now; + return true; + } else { + return false; + } +} + +void IrrLib::Exit() +{ + this->device->closeDevice(); +} + +PixelSize IrrLib::GetScreenSize() +{ + return this->driver->getScreenSize(); + /*pixels returnres; + returnres.width = screenres.Width; + returnres.height = screenres.Height; + return returnres;*/ + +} + +void IrrLib::AddCamera(core::vector3df pos, core::vector3df lookat) +{ + this->smgr->addCameraSceneNode(0, pos, lookat); +} + +//template std::string IrrLib::to_string (T t) +/*std::string IrrLib::int_to_string (int t) +{ + std::stringstream ss; + ss << t; + return ss.str(); +}*/ +// This is in the base class now, every class that decends from that class has this ability. diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Unstable Version/1.3.2/IrrLib.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Unstable Version/1.3.2/IrrLib.h Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,142 @@ +/* + Irrlicht Library Wrapper + Created by: + Nathan Adams + Copyright (C) 2008 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ + +#ifndef IRRLIB_H +#define IRRLIB_H + +#ifndef IRRVER +#define IRRVER 14 +//2 Versions +// 14 or 131 +//Different version due to different implmenation of eventreciever +#endif + +/* We should include some basic functions */ +#include +/* include strings */ +#include +#include +#include + +/* We have to include Irrlichts libs */ + + +#include "Irr3D.h" +#include "IrrColor.h" +#include "IrrLibGUI.h" +#include "IrrEventReciever.h" +#include "Irr2D.h" +//#include "Irr2DObj.h" +#include "IrrLibBase.h" +#include "IrrData.h" +//class IrrPhysics; +#include "IrrPhysics.h" + +/*struct IrrObj { + int eventid; + int objectid; +};*/ + +//class IrrPhysics; + +//Start class +class IrrLib: public IrrLibBase { + + private: + /* Create an Irrlicht device as private because the class should handle + All irrlicht interaction */ + //irr::IrrlichtDevice *device; + //In IrrLibBase + // Tells Irrlicht what driver to use + //video::E_DRIVER_TYPE driverType; + + /* + Get a pointer to the video driver and the SceneManager so that + we do not always have to write device->getVideoDriver() and + device->getSceneManager(). + */ + /*irr::video::IVideoDriver* driver; + irr::scene::ISceneManager* smgr;*/ + //In IrrLibBase + irr::gui::IGUIEnvironment* env; + + /* + Get a pointer to the 'mesh' aka the level. + Note: This is for Quake3 levels, ie bsp maps. + */ + irr::scene::IAnimatedMesh* mesh; + irr::scene::ISceneNode* node; + irr::scene::ISceneNode * tempNode; //use this to store nodeNew's data so we can resize it + irr::scene::ICameraSceneNode * cam; + char key; + + + void IrrLib::Init(); + /*friend class IrrColor; + friend class Irr2DLib; + friend class Sphere;*/ + //friend class IrrEventReciever; + irr::u32 tick; + irr::ITimer* timer; + + public: + //IrrSphere Sphere; //This has to be public to be able to access the Sphere class + /* IrrSphere is now in Irr3D class */ + //Prehaps put this into a IrrLib3D class? + Irr3D Irr3DLib; + IrrColor Color; //Color class...not much of a class but lets keep it OO + Irr2D Irr2DLib; //1/2 variable to be labeled like this due to variables not able to begin with a number + IrrLibGUI GUI; + IrrPhysics IrrPhy; + IrrEventReciever IrrEvent; + IrrLib::IrrLib(); + static irr::IrrlichtDevice *device; + //IrrLib::IrrLib(MastEventReceiver & receiver); + IrrLib::IrrLib(irr::video::E_DRIVER_TYPE drivertype, irr::core::dimension2d & res, irr::u32 bits, bool fullscreen, bool stencilbuffer, bool vsync); + IrrLib::IrrLib(int drivertype, int width, int height, int bits, bool fullscreen, bool stencilbuffer, bool vsync); + IrrLib::~IrrLib(); //Our moms wont clean up after us! + void IrrLib::ReadArchive(irr::core::stringc file); + void IrrLib::LoadQ3Level(irr::core::stringc q3level); + void IrrLib::MapPos(int x, int y, int z); //I think this moves the actual camera? + void IrrLib::MapPos(); + void IrrLib::AddFPSCam(); + void IrrLib::AddFPSCam(irr::f32 x, irr::f32 y, irr::f32 z); + void IrrLib::VisibleCursor(bool tf); + int IrrLib::GetFPSCount(); + bool IrrLib::DeviceIsRunning(); + bool IrrLib::IsActiveWindow(); + void IrrLib::BeginScene(); + void IrrLib::AddCamera(irr::core::vector3df pos, irr::core::vector3df lookat); + void IrrLib::BeginScene(irr::video::SColor color); + //void IrrLib::BeginScene(irr::video::SColor * color); + void IrrLib::BeginScene(bool usebackBuffer, bool usezBuffer, irr::video::SColor color); + //TODO: Add one more for human readable colors and hex colors! + void IrrLib::DrawAll(); + void IrrLib::EndScene(); + void IrrLib::SetWindowCaption(irr::core::stringw str); + irr::core::stringw IrrLib::GetDriverName(); + //TODO: Make function to turn stringw to string and visa versa + void IrrLib::EndIrrlicht(); //Renamed from KillIrrlicht to EndIrrlicht + //TODO: Add logging + void IrrLib::KeyPress(char key); + char IrrLib::KeyPressed(); + irr::f32 getX(); + irr::f32 getY(); + irr::f32 getZ(); + bool CheckGameLoop(); + bool CheckGameLoop(irr::u32 ms); + void Exit(); + PixelSize GetScreenSize(); + //void EndGameLoop(); + //template std::string to_string (T t); + +}; + +#endif diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Unstable Version/1.3.2/IrrLibBase.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Unstable Version/1.3.2/IrrLibBase.cpp Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,125 @@ +/* + Irrlicht Library Wrapper + Created by: + Nathan Adams + Copyright (C) 2008 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ + +#include +#include +#include "IrrLibBase.h" +#include +#include + +using namespace irr; +using namespace core; +using namespace scene; +using namespace video; +using namespace io; +using namespace gui; + +using namespace std; + +/* +* Code from http://articles.techrepublic.com.com/5100-22-5079969.html# +* + +struct str_stream +{ + std::stringstream & underlying_stream() const + { return m_streamOut; } + + operator std::string() const + { + return m_streamOut.str(); + } +private: + mutable std::stringstream m_streamOut; +}; + +template< class type> +inline const str_stream & operator<< ( const str_stream & out, const type & value) +{ + out.underlying_stream() << value; + return out; + +} + +template std::string to_string( const type & value) +{ + std::ostringstream streamOut; + + streamOut << value; + + return streamOut.str(); +} + +* End code copy +*/ + +void IrrLibBase::SetDriver(IVideoDriver* driver) //can be overloaded +{ + this->driver = driver; +} + +void IrrLibBase::SetSmgr(ISceneManager* smgr) +{ + this->smgr = smgr; +} + +std::string IrrLibBase::wchar_to_stdstring (const wchar_t* wc) +{ + //cout << "Starting conversion"; + //wcstombs(tmp, in, 255); + char c[255]; + for(int t = 0; wc[t] != '\0'; t++) + c[t] = (char)wc[t]; + + /*for(int t = 0; c[t] != '\0'; t++) + wc[t] = c[t];*/ + + std::stringstream ss; + ss << c; + //cout << "Conversion OK"; + return ss.str(); +} + +std::string IrrLibBase::int_to_string (int t) +{ + std::stringstream ss; + ss << t; + return ss.str(); +} + +std::string IrrLibBase::stringw_to_stdstring(irr::core::stringw sw) +{ + std::stringstream ss; + ss << sw.c_str(); + return ss.str(); +} +irr::core::stringw IrrLibBase::stdstring_to_stringw(std::string ss) +{ + stringw tmpw(ss.c_str()); + return tmpw; +} + +/*void IrrLibBase::SetDevice(irr::IrrlichtDevice *device) +{ + this->device = device; +}*/ + +void IrrLibBase::init() +{ + +} + +/*irr::core::stringw int_to_stringw(int t) +{ + std::stringstream ss; + ss << t; + //stringw ret(ss.str()); + return ret; +}*/ diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Unstable Version/1.3.2/IrrLibBase.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Unstable Version/1.3.2/IrrLibBase.h Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,44 @@ +/* + Irrlicht Library Wrapper + Created by: + Nathan Adams + Copyright (C) 2008 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ + +#ifndef IRRLIBBASE_H +#define IRRLIBBASE_H + +/* We should include some basic functions */ +#include +/* include strings */ +#include + +/* We have to include Irrlichts libs */ +#include + + +class IrrLibBase { + + protected: + irr::video::IVideoDriver* driver; + irr::scene::ISceneManager* smgr; + irr::IrrlichtDevice *device; + public: + //template std::string to_string( const type & value); + irr::core::dimension2d irrpixels; + void IrrLibBase::SetDriver(irr::video::IVideoDriver* driver); + void IrrLibBase::SetSmgr(irr::scene::ISceneManager* smgr); + void SetDevice(irr::IrrlichtDevice *device); + std::string int_to_string (int t); + std::string stringw_to_stdstring(irr::core::stringw sw); + irr::core::stringw stdstring_to_stringw(std::string ss); + std::string wchar_to_stdstring (const wchar_t* wc); + //irr::core::stringw int_to_stringw(int t); + void init(); + +}; + +#endif diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Unstable Version/1.3.2/IrrLibGUI.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Unstable Version/1.3.2/IrrLibGUI.cpp Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,221 @@ +/* + Irrlicht Library Wrapper + Created by: + Nathan Adams + Copyright (C) 2008 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ + +#include +#include +#include +#include +#include + +#include "IrrLib.h" +#include "IrrData.h" +#include "IrrLibGUI.h" +#include "IrrLibBase.h" +#include + +using namespace irr; +using namespace core; +using namespace scene; +using namespace video; +using namespace io; +using namespace gui; + +using namespace std; + +template std::string to_string( const type & value) +{ + std::ostringstream streamOut; + + streamOut << value; + + return streamOut.str(); +} + +IrrLibGUI::IrrLibGUI() +{ + //NA does it need to do anything at init? + this->nStaticText = 0; + this->nButton = 0; + this->nButtonid = 100; + this->nListBoxid = 200; + this->nListBox = 0; + //this->nListBoxid = 300; + //this->arrStaticText = new IGUIStaticText[10]; + //this->env = this->device->getGUIEnvironment(); //NA yes we do! +} + +IrrLibGUI::~IrrLibGUI() +{ + //NA Do we have to delete anything? +} + +void IrrLibGUI::SetEnv(IGUIEnvironment* env) +{ + this->env = env; + //env->addButton(rect(10,210,110,210 + 32), 0, 109, L"Quit", L"Exits Program"); +} + +IrrObj IrrLibGUI::addButton(const core::rect< s32 > & rectangle, IGUIElement *parent, s32 id, const wchar_t * text, const wchar_t * tooltiptext) +{ + arrButton.push_back(this->env->addButton(rectangle, parent, id, text, tooltiptext)); + ++nButton; + ++nButtonid; + IrrObj ret; + ret.objectid = --nButtonid; + return ret; +} + +IrrObj IrrLibGUI::addListBox(const irr::core::rect< irr::s32 > &rectangle, IGUIElement * parent) +{ + irr::gui::IGUIListBox* tmp = this->env->addListBox(rectangle, parent, nListBoxid); + arrListBox.push_back(tmp); + //we introduce a new datatype; IrroObj + IrrObj ret; + ret.eventid = nListBoxid; + ret.objectid = nListBox; + ++nListBox; + ++nListBoxid; + return ret; +} + +IrrObj IrrLibGUI::AddListBox(int x1, int y1, int x2, int y2, IGUIElement * parent) +{ + return addListBox(rect(x1, y1, x2, y2), parent); +} + +IrrObj IrrLibGUI::AddListBox(const irr::core::rect< irr::s32 > &rectangle, IGUIElement * parent) +{ + return addListBox(rectangle, parent); +} + +void IrrLibGUI::AddStringToListBox(IrrObj nLbox, stringw text) +{ + this->arrListBox[nLbox.objectid]->addItem(text.c_str()); + //this->arrListBox[0]->addItem(L"TEST"); +} + +std::string IrrLibGUI::getSelectListString(IrrObj lstbox) +{ + //stringc tmp = this->arrListBox[lstbox]->getListItem(this->arrListBox[lstbox]->getSelected()); + //s32 selected = this->arrListBox[lstbox.objectid]->getSelected(); + //const wchar_t* tmp = this->arrListBox[lstbox]->getListItem(selected); + //irr::core::stringw tmp; + //char out[255]; + //tmp = this->arrListBox[lstbox]->getText(); + irr::core::stringc tmp(arrListBox[lstbox.objectid]->getListItem(arrListBox[lstbox.objectid]->getSelected())); + //cout << tmp.c_str() << endl; + //wcstombs(out, tmp, tmp.length()); + //cout << tmp[0] << endl; + // std::stringstream ss; + //for (int i = 0; i < tmp.size(); ++i) + //ss << tmp.c_str(); + std::string ret = tmp.c_str(); + return ret; +} + +void IrrLibGUI::Clear() +{ + this->env->clear(); +} + +void IrrLibGUI::DrawAll() +{ + this->env->drawAll(); +} + +IrrObj IrrLibGUI::AddToStaticArray(irr::gui::IGUIStaticText * addme) +{ + //arrStaticText[nStaticText] = addme; + arrStaticText.push_back(addme); + this->nStaticText++; + this->nButtonid++; + IrrObj ret; + ret.objectid = this->nStaticText; + return ret; +} + +void IrrLibGUI::AddStaticText() +{ + //rect(20,30,300,80), + this->env->addStaticText(L"Powered by IrrLib.", rect(20,30,300,80), true); +} + +IrrObj IrrLibGUI::AddStaticText(stringw message) +{ + irr::gui::IGUIStaticText * addthis; + addthis = this->env->addStaticText(message.c_str(), rect(20,30,300,80), true); + return AddToStaticArray(addthis); +} + +IrrObj IrrLibGUI::AddStaticText(stringw message, int x1, int y1, int x2, int y2) +{ + irr::gui::IGUIStaticText * addthis; + addthis = this->env->addStaticText(message.c_str(), rect(x1,y1,x2,y2), true); + return AddToStaticArray(addthis); +} + +IrrObj IrrLibGUI::AddStaticText(stringw message, int x1, int y1, int x2, int y2, bool border, bool wordwrap) +{ + irr::gui::IGUIStaticText * addthis; + addthis = this->env->addStaticText(message.c_str(), rect(x1,y1,x2,y2), border, wordwrap); + return AddToStaticArray(addthis); +} + +IrrObj IrrLibGUI::AddStaticText(stringw message, int x1, int y1, int x2, int y2, bool border, bool wordwrap, int id, bool fillbackground) +{ + irr::gui::IGUIStaticText * addthis; + addthis = this->env->addStaticText(message.c_str(), rect(x1,y1,x2,y2), border, wordwrap, 0, id, fillbackground); + return AddToStaticArray(addthis); +} + +IrrObj IrrLibGUI::AddStaticText(stringw message, const core::rect< s32 > &rectangle) +{ + irr::gui::IGUIStaticText * addthis; + addthis = this->env->addStaticText(message.c_str(), rectangle); + return AddToStaticArray(addthis); +} + +IrrObj IrrLibGUI::AddStaticText(stringw message, const core::rect< s32 > &rectangle, bool border, bool wordwrap) +{ + irr::gui::IGUIStaticText * addthis; + addthis = this->env->addStaticText(message.c_str(), rectangle, border, wordwrap); + return AddToStaticArray(addthis); +} + +IrrObj IrrLibGUI::AddStaticText(stringw message, const core::rect< s32 > &rectangle, bool border, bool wordwrap, int id, bool fillbackground) +{ + irr::gui::IGUIStaticText * addthis; + addthis = this->env->addStaticText(message.c_str(), rectangle, border, wordwrap, 0, id, fillbackground); + return AddToStaticArray(addthis); +} + +void IrrLibGUI::ChangeStaticText(IrrObj nstatictext, stringw message) +{ + //this->arrStaticText[this->nStaticText.objectid-1]->setText(message.c_str()); + this->arrStaticText[nstatictext.objectid]->setText(message.c_str()); +} + +void IrrLibGUI::ChangeFont(stringc fontfile) +{ + IGUISkin* skin = this->env->getSkin(); + IGUIFont* font = this->env->getFont(fontfile.c_str()); + if (font) + skin->setFont(font); +} + +IrrObj IrrLibGUI::AddButton(stringw text, int x1, int y1, int x2, int y2, stringw tooltiptext = "") +{ + return addButton(rect(x1, y1, x2, y2), 0, nButtonid, text.c_str(), tooltiptext.c_str()); +} + +IrrObj IrrLibGUI::AddButton(stringw text, core::rect & rect, stringw tooltiptext = "") +{ + return addButton(rect, 0, nButtonid, text.c_str(), tooltiptext.c_str()); +} diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Unstable Version/1.3.2/IrrLibGUI.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Unstable Version/1.3.2/IrrLibGUI.h Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,68 @@ +/* + Irrlicht Library Wrapper + Created by: + Nathan Adams + Copyright (C) 2008 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ + +#ifndef IRRLIBGUI_H +#define IRRLIBGUI_H + +#include +#include +#include +#include "IrrLib.h" +#include "IrrData.h" +#include "IrrLibBase.h" + +class IrrLibGUI: public IrrLibBase { + private: + irr::gui::IGUISkin* skin; + irr::gui::IGUIFont* font; + irr::gui::IGUIEnvironment* env; + //TODO: Create an array storing all messages + int nStaticText; + //irr::gui::IGUIStaticText* arrStaticText[10]; + int nButton; + int nButtonid; + int nListBox; + int nListBoxid; + std::vector arrStaticText; + std::vector arrButton; + std::vector arrListBox; + IrrObj AddToStaticArray(irr::gui::IGUIStaticText * addme); + IrrObj addButton(const irr::core::rect< irr::s32 > & rectangle, irr::gui::IGUIElement *parent = 0, irr::s32 id = 0, const wchar_t * text = 0, const wchar_t * tooltiptext = 0); //TODO: Clean this up! + IrrObj addListBox(const irr::core::rect< irr::s32 > &rectangle, irr::gui::IGUIElement * parent); + public: + IrrLibGUI(); + ~IrrLibGUI(); + void SetEnv(irr::gui::IGUIEnvironment* env); + void Clear(); + void DrawAll(); + //irr::gui::IGUIStaticText* IrrLibGUI::AddStaticText(); //NA eh a default text adder why not? + /* This is bad coding, we do not want to return an irrlicht object, we want to return a standard datatype because this class handles the GUI elements, not the user. */ + void AddStaticText(); //NA eh a default text adder why not? + IrrObj AddStaticText(irr::core::stringw message); + IrrObj AddStaticText(irr::core::stringw message, int x1, int y1, int x2, int y2); + IrrObj AddStaticText(irr::core::stringw message, int x1, int y1, int x2, int y2, bool border, bool wordwrap); + IrrObj AddStaticText(irr::core::stringw message, int x1, int y1, int x2, int y2, bool border, bool wordwrap, int id, bool fillbackground); + IrrObj AddStaticText(irr::core::stringw message, const irr::core::rect< irr::s32 > &rectangle); + IrrObj AddStaticText(irr::core::stringw message, const irr::core::rect< irr::s32 > &rectangle, bool border, bool wordwrap); + IrrObj AddStaticText(irr::core::stringw message, const irr::core::rect< irr::s32 > &rectangle, bool border, bool wordwrap, int id, bool fillbackground); + IrrObj AddButton(irr::core::stringw text, int x1, int y1, int x2, int y2, irr::core::stringw tooltiptext); + IrrObj AddButton(irr::core::stringw text, irr::core::rect & rect, irr::core::stringw tooltiptext); //TODO: Add move functions + IrrObj AddListBox(int x1, int y1, int x2, int y2, irr::gui::IGUIElement * parent = 0); + IrrObj AddListBox(const irr::core::rect< irr::s32 > &rectangle, irr::gui::IGUIElement * parent = 0); + void AddStringToListBox(IrrObj nLbox, irr::core::stringw text); + void ChangeStaticText(IrrObj nstatictext, irr::core::stringw message); + void ChangeFont(irr::core::stringc fontfile); + std::string getSelectListString(IrrObj lstbox); + //irr::core::stringw getSelectListString(int lstbox); + +}; + + +#endif diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Unstable Version/1.3.2/IrrPhysics.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Unstable Version/1.3.2/IrrPhysics.cpp Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,48 @@ +/* + Irrlicht Library Wrapper + Created by: + Nathan Adams + Copyright (C) 2008 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ + +/* We should include some basic functions */ +#include +/* include strings */ +#include +#include + +/* We have to include Irrlichts libs */ +#include + +//#include "IrrLib.h" +#include "IrrData.h" +#include +#include "IrrPhysics.h" + +using namespace irr; +using namespace core; +using namespace scene; +using namespace video; +using namespace io; +using namespace gui; + +using namespace std; + +NewtonWorld * IrrPhysics::nworld; + +IrrPhysics::IrrPhysics() +{ + this->nworld = NewtonCreate(NULL,NULL); + NewtonSetSolverModel(this->nworld, 1); +} + +IrrPhysics::~IrrPhysics() +{ + NewtonDestroy(this->nworld); +} + + + diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Unstable Version/1.3.2/IrrPhysics.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Unstable Version/1.3.2/IrrPhysics.h Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,43 @@ +/* + Irrlicht Library Wrapper + Created by: + Nathan Adams + Copyright (C) 2008 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ +#ifndef IRRPHYSICS_H +#define IRRPHYSICS_H + +/* We should include some basic functions */ +#include +/* include strings */ +#include +#include + +/* We have to include Irrlichts libs */ +#include +#include + +//#include "IrrLib.h" + +#include "IrrData.h" +#include "IrrLibBase.h" + + + + + +class IrrPhysics: public IrrLibBase { + //private: + public: + static NewtonWorld *nworld; + IrrPhysics::IrrPhysics(); + IrrPhysics::~IrrPhysics(); + +}; + + + +#endif diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Unstable Version/1.3.2/IrrSphere.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Unstable Version/1.3.2/IrrSphere.cpp Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,72 @@ +/* + Irrlicht Library Wrapper + Created by Nathan Adams + Copyright (C) 2008 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ +#include +#include "IrrLib.h" +#include "IrrSphere.h" +#include +#include + +using namespace irr; +using namespace core; +using namespace scene; +using namespace video; +using namespace io; +using namespace gui; + +using namespace std; + +/*void IrrSphere::SetSmgr(irr::scene::ISceneManager* smgr){ + this->smgr = smgr; +} + +void IrrSphere::SetDriver(irr::video::IVideoDriver* driver){ + this->driver = driver; +}*/ + +IrrObj IrrSphere::CreateNewSphereNode(int x, int y, int z, stringc texture, bool light){ + //this->nodeNew[this->numNodes] = this->smgr->addSphereSceneNode(); + //this->sphereNodes[this->numNodes]->setPosition(core::vector3df(x,y,z)); + //this->sphereNodes[this->numNodes]->setMaterialTexture(0, this->driver->getTexture(texture.c_str())); + //this->sphereNodes[this->numNodes]->setMaterialFlag(video::EMF_LIGHTING, light); + IrrObj ret; + nodeNew = this->smgr->addSphereSceneNode(); + nodeNew->setPosition(core::vector3df(x,y,z)); + nodeNew->setMaterialTexture(0, this->driver->getTexture(texture.c_str())); + nodeNew->setMaterialFlag(video::EMF_LIGHTING, light); + sphereNodes.push_back(nodeNew); + this->numNodes++; + ret.objectid = this->numNodes--; + return ret; + /*this->node = this->smgr->addSphereSceneNode(); + this->node->setPosition(core::vector3df(x,y,z)); + this->node->setMaterialTexture(0, this->driver->getTexture(texture.c_str())); + this->node->setMaterialFlag(video::EMF_LIGHTING, light);*/ +} + +irr::core::vector3df IrrSphere::GetSphereVector(int sphere){ + //We are converting to vectors, under construction NA + //return this->nodeNew[sphere]->getPosition(); + return this->sphereNodes[sphere]->getPosition(); +} + +void IrrSphere::SetSphereVector(int sphere, irr::core::vector3df v){ + this->sphereNodes[sphere]->setPosition(v); +} + +IrrSphere::IrrSphere(){ + this->numNodes = 0; +} + +IrrSphere::~IrrSphere(){ + /*for(int i = 0; i < numNodes; ++i) + delete this->nodeNew[i]; + + delete this->nodeNew;*/ + //We are using vectors now, no more memory clowing business NA +} diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Unstable Version/1.3.2/IrrSphere.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Unstable Version/1.3.2/IrrSphere.h Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,47 @@ +/* + Irrlicht Library Wrapper + Created by: + Nathan Adams + Copyright (C) 2008 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ + +#ifndef IRRSPHERE_H +#define IRRSPHERE_H +/* We should include some basic functions */ +#include +/* include strings */ +#include +#include + +/* We have to include Irrlichts libs */ +#include "IrrLibBase.h" +#include "IrrData.h" +#include + +//#include "IrrLib.h" + + +class IrrSphere: public IrrLibBase +{ + private: + //irr::scene::ISceneNode* nodeNew[10]; + irr::scene::ISceneNode* nodeNew; + std::vector sphereNodes; + int numNodes; + //irr::scene::ISceneManager* smgr; + //irr::video::IVideoDriver* driver; + public: + //void IrrSphere::SetDriver(irr::video::IVideoDriver* driver); + //void IrrSphere::SetSmgr(irr::scene::ISceneManager* smgr); + IrrObj IrrSphere::CreateNewSphereNode(int x, int y, int z, irr::core::stringc texture, bool light); //this is going to take my advanced C++ skillz! + irr::core::vector3df IrrSphere::GetSphereVector(int sphere); + void IrrSphere::SetSphereVector(int sphere, irr::core::vector3df v); + IrrSphere::IrrSphere(); + //IrrSphere::IrrSphere(IrrLib*); + IrrSphere::~IrrSphere(); +}; + +#endif diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Unstable Version/1.3.2/IrrSprite.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Unstable Version/1.3.2/IrrSprite.cpp Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,48 @@ +/* + Irrlicht Library Wrapper + Created by: + Nathan Adams + Copyright (C) 2008 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ + +#include +#include +#include + +#include "IrrLib.h" +//Libraries we create go here +//#include "IrrSphere.h" +#include "IrrColor.h" +#include "IrrSprite.h" +//#include "Irr2D.h" + +using namespace irr; +using namespace core; +using namespace scene; +using namespace video; +using namespace io; +using namespace gui; + +using namespace std; + +IrrSprite::IrrSprite() +{ + //do stuff +} + +IrrSprite::~IrrSprite() +{ + //delete stuff +} + +/*void IrrSprite::SetDriver(irr::video::IVideoDriver* driver) +{ + this->driver = driver; +} +void IrrSprite::SetSmgr(irr::scene::ISceneManager* smgr) +{ + this->smgr = smgr; +}*/ diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Unstable Version/1.3.2/IrrSprite.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Unstable Version/1.3.2/IrrSprite.h Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,45 @@ +/* + Irrlicht Library Wrapper + Created by: + Nathan Adams + Copyright (C) 2008 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ + +#ifndef IRRSPRITE_H +#define IRRSPRITE_H + +/* We should include some basic functions */ +#include +/* include strings */ +#include + +/* We have to include Irrlichts libs */ +#include + +//#include "IrrSphere.h" +#include "IrrLibBase.h" +#include "IrrColor.h" +//#include "Irr2D.h" +//#include "IrrSprite.h" + +//Start class +class IrrSprite: public IrrLibBase { + + private: + + //irr::video::IVideoDriver* driver; + //irr::scene::ISceneManager* smgr; + public: + IrrSprite::IrrSprite(); + IrrSprite::~IrrSprite(); + /*void IrrSprite::SetDriver(irr::video::IVideoDriver* driver); + void IrrSprite::SetSmgr(irr::scene::ISceneManager* smgr);*/ + +// I forgot a semicolon here....and it wasn't compling +//Thats 1 bad thing about OOP if there is an error you don't know where the @#$@# the problem is! +}; + +#endif diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Unstable Version/1.3.2/Newton.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Unstable Version/1.3.2/Newton.h Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,602 @@ +//******************************************************************** +// Newton Game dynamics +// copyright 2000-2004 +// By Julio Jerez +// VC: 6.0 +// One and only header file. +//******************************************************************** + +#ifndef NEWTON_H__736495_6495_076__INCLUDED_ +#define NEWTON_H__736495_6495_076__INCLUDED_ + +// force all not visual studio platform to be in library form +#ifndef _MSC_VER + #ifndef _NEWTON_USE_LIB + #define _NEWTON_USE_LIB + #endif +#endif + +#ifdef _NEWTON_USE_LIB + #define NEWTON_API +#else + #ifdef _NEWTON_BUILD_DLL + #define NEWTON_API __declspec(dllexport) + #else + #define NEWTON_API __declspec(dllimport) + #endif +#endif + +//#define __USE_DOUBLE_PRECISION__ +#ifdef __USE_DOUBLE_PRECISION__ + typedef double dFloat; +#else + typedef float dFloat; +#endif + + + +#ifdef __cplusplus +extern "C" { +#endif + + typedef struct NewtonBody{} NewtonBody; + typedef struct NewtonWorld{} NewtonWorld; + typedef struct NewtonJoint{} NewtonJoint; + typedef struct NewtonContact{} NewtonContact; + typedef struct NewtonMaterial{} NewtonMaterial; + typedef struct NewtonCollision{} NewtonCollision; + + typedef struct NewtonRagDoll{} NewtonRagDoll; + typedef struct NewtonRagDollBone{} NewtonRagDollBone; + + typedef struct NewtonUserMeshCollisionCollideDescTag + { + dFloat m_boxP0[4]; // lower bounding box of intersection query in local space + dFloat m_boxP1[4]; // upper bounding box of intersection query in local space + void* m_userData; // user data passed to the collision geometry at creation time + int m_faceCount; // the application should set here how many polygons intersect the query box + dFloat* m_vertex; // the application should the pointer to the vertex array. + int m_vertexStrideInBytes; // the application should set here the size of each vertex + int* m_userAttribute; // the application should set here the pointer to the user data, one for each face + int* m_faceIndexCount; // the application should set here the pointer to the vertex count of each face. + int* m_faceVertexIndex; // the application should set here the pointer index array for each vertex on a face. + NewtonBody* m_objBody; // pointer to the colliding body + NewtonBody* m_polySoupBody; // pointer to the rigid body owner of this collision tree + } NewtonUserMeshCollisionCollideDesc; + + typedef struct NewtonUserMeshCollisionRayHitDescTag + { + dFloat m_p0[4]; // ray origin in collision local space + dFloat m_p1[4]; // ray destination in collision local space + dFloat m_normalOut[4]; // copy here the normal at the rat intersection + int m_userIdOut; // copy here a user defined id for further feedback + void* m_userData; // user data passed to the collision geometry at creation time + } NewtonUserMeshCollisionRayHitDesc; + + typedef struct NewtonHingeSliderUpdateDescTag + { + dFloat m_accel; + dFloat m_minFriction; + dFloat m_maxFriction; + dFloat m_timestep; + } NewtonHingeSliderUpdateDesc; + + + // Newton callback functions + typedef void* (*NewtonAllocMemory) (int sizeInBytes); + typedef void (*NewtonFreeMemory) (void *ptr, int sizeInBytes); + + typedef void (*NewtonSerialize) (void* serializeHandle, const void* buffer, size_t size); + typedef void (*NewtonDeserialize) (void* serializeHandle, void* buffer, size_t size); + + + typedef void (*NewtonUserMeshCollisionCollideCallback) (NewtonUserMeshCollisionCollideDesc* collideDescData); + typedef dFloat (*NewtonUserMeshCollisionRayHitCallback) (NewtonUserMeshCollisionRayHitDesc* lineDescData); + typedef void (*NewtonUserMeshCollisionDestroyCallback) (void* descData); + typedef void (*NewtonTreeCollisionCallback) (const NewtonBody* bodyWithTreeCollision, const NewtonBody* body, + const dFloat* vertex, int vertexstrideInBytes, + int indexCount, const int* indexArray); + + typedef void (*NewtonBodyDestructor) (const NewtonBody* body); + typedef void (*NewtonApplyForceAndTorque) (const NewtonBody* body); + typedef void (*NewtonBodyActivationState) (const NewtonBody* body, unsigned state); + typedef void (*NewtonSetTransform) (const NewtonBody* body, const dFloat* matrix); + typedef void (*NewtonSetRagDollTransform) (const NewtonRagDollBone* bone); + typedef int (*NewtonGetBuoyancyPlane) (const int collisionID, void *context, const dFloat* globalSpaceMatrix, dFloat* globalSpacePlane); + + typedef void (*NewtonVehicleTireUpdate) (const NewtonJoint* vehicle); + + typedef unsigned (*NewtonWorldRayPrefilterCallback)(const NewtonBody* body, const NewtonCollision* collision, void* userData); + typedef dFloat (*NewtonWorldRayFilterCallback)(const NewtonBody* body, const dFloat* hitNormal, int collisionID, void* userData, dFloat intersetParam); + typedef void (*NewtonBodyLeaveWorld) (const NewtonBody* body); + + typedef int (*NewtonContactBegin) (const NewtonMaterial* material, const NewtonBody* body0, const NewtonBody* body1); + typedef int (*NewtonContactProcess) (const NewtonMaterial* material, const NewtonContact* contact); + typedef void (*NewtonContactEnd) (const NewtonMaterial* material); + + + typedef void (*NewtonBodyIterator) (const NewtonBody* body); + typedef void (*NewtonCollisionIterator) (const NewtonBody* body, int vertexCount, const dFloat* FaceArray, int faceId); + + + typedef void (*NewtonBallCallBack) (const NewtonJoint* ball); + typedef unsigned (*NewtonHingeCallBack) (const NewtonJoint* hinge, NewtonHingeSliderUpdateDesc* desc); + typedef unsigned (*NewtonSliderCallBack) (const NewtonJoint* slider, NewtonHingeSliderUpdateDesc* desc); + typedef unsigned (*NewtonUniversalCallBack) (const NewtonJoint* universal, NewtonHingeSliderUpdateDesc* desc); + typedef unsigned (*NewtonCorkscrewCallBack) (const NewtonJoint* corkscrew, NewtonHingeSliderUpdateDesc* desc); + typedef void (*NewtonUserBilateralCallBack) (const NewtonJoint* userJoint); + + typedef void (*NewtonConstraintDestructor) (const NewtonJoint* me); + + // ********************************************************************************************** + // + // world control functions + // + // ********************************************************************************************** + NEWTON_API NewtonWorld* NewtonCreate (NewtonAllocMemory malloc, NewtonFreeMemory mfree); + NEWTON_API void NewtonDestroy (const NewtonWorld* newtonWorld); + NEWTON_API void NewtonDestroyAllBodies (const NewtonWorld* newtonWorld); + + + NEWTON_API void NewtonUpdate (const NewtonWorld* newtonWorld, dFloat timestep); + NEWTON_API void NewtonSetPlatformArchitecture (const NewtonWorld* newtonWorld, int mode); + NEWTON_API void NewtonSetSolverModel (const NewtonWorld* newtonWorld, int model); + NEWTON_API void NewtonSetFrictionModel (const NewtonWorld* newtonWorld, int model); + NEWTON_API dFloat NewtonGetTimeStep (const NewtonWorld* newtonWorld); + NEWTON_API void NewtonSetMinimumFrameRate (const NewtonWorld* newtonWorld, dFloat frameRate); + NEWTON_API void NewtonSetBodyLeaveWorldEvent (const NewtonWorld* newtonWorld, NewtonBodyLeaveWorld callback); + NEWTON_API void NewtonSetWorldSize (const NewtonWorld* newtonWorld, const dFloat* minPoint, const dFloat* maxPoint); + + NEWTON_API void NewtonWorldFreezeBody (const NewtonWorld* newtonWorld, const NewtonBody* body); + NEWTON_API void NewtonWorldUnfreezeBody (const NewtonWorld* newtonWorld, const NewtonBody* body); + + NEWTON_API void NewtonWorldForEachBodyDo (const NewtonWorld* newtonWorld, NewtonBodyIterator callback); + NEWTON_API void NewtonWorldForEachBodyInAABBDo (const NewtonWorld* newtonWorld, const dFloat* p0, const dFloat* p1, NewtonBodyIterator callback); + + NEWTON_API void NewtonWorldSetUserData (const NewtonWorld* newtonWorld, void* userData); + NEWTON_API void* NewtonWorldGetUserData (const NewtonWorld* newtonWorld); + NEWTON_API int NewtonWorldGetVersion (const NewtonWorld* newtonWorld); + + NEWTON_API void NewtonWorldRayCast (const NewtonWorld* newtonWorld, const dFloat* p0, const dFloat* p1, NewtonWorldRayFilterCallback filter, void* userData, NewtonWorldRayPrefilterCallback prefilter); + + // world utility functions + // NEWTON_API int NewtonGetBodiesCount(); + // NEWTON_API int NewtonGetActiveBodiesCount(); + // NEWTON_API int NewtonGetActiveConstraintsCount(); + // NEWTON_API dFloat NewtonGetGlobalScale (const NewtonWorld* newtonWorld); + + // ********************************************************************************************** + // + // Physics Material Section + // + // ********************************************************************************************** + NEWTON_API int NewtonMaterialGetDefaultGroupID(const NewtonWorld* newtonWorld); + NEWTON_API int NewtonMaterialCreateGroupID(const NewtonWorld* newtonWorld); + NEWTON_API void NewtonMaterialDestroyAllGroupID(const NewtonWorld* newtonWorld); + + + + NEWTON_API void NewtonMaterialSetDefaultSoftness (const NewtonWorld* newtonWorld, int id0, int id1, dFloat value); + NEWTON_API void NewtonMaterialSetDefaultElasticity (const NewtonWorld* newtonWorld, int id0, int id1, dFloat elasticCoef); + NEWTON_API void NewtonMaterialSetDefaultCollidable (const NewtonWorld* newtonWorld, int id0, int id1, int state); + NEWTON_API void NewtonMaterialSetContinuousCollisionMode (const NewtonWorld* newtonWorld, int id0, int id1, int state); + NEWTON_API void NewtonMaterialSetDefaultFriction (const NewtonWorld* newtonWorld, int id0, int id1, + dFloat staticFriction, dFloat kineticFriction); + + NEWTON_API void NewtonMaterialSetCollisionCallback (const NewtonWorld* newtonWorld, int id0, int id1, void* userData, + NewtonContactBegin begin, NewtonContactProcess process, NewtonContactEnd end); + + NEWTON_API void* NewtonMaterialGetUserData (const NewtonWorld* newtonWorld, int id0, int id1); + + + + // ********************************************************************************************** + // + // Physics Contact control functions + // + // ********************************************************************************************** + NEWTON_API void NewtonMaterialDisableContact (const NewtonMaterial* material); + NEWTON_API dFloat NewtonMaterialGetCurrentTimestep (const NewtonMaterial* material); + NEWTON_API void *NewtonMaterialGetMaterialPairUserData (const NewtonMaterial* material); + NEWTON_API unsigned NewtonMaterialGetContactFaceAttribute (const NewtonMaterial* material); + NEWTON_API unsigned NewtonMaterialGetBodyCollisionID (const NewtonMaterial* material, const NewtonBody* body); + NEWTON_API dFloat NewtonMaterialGetContactNormalSpeed (const NewtonMaterial* material, const NewtonContact* contactlHandle); + NEWTON_API void NewtonMaterialGetContactForce (const NewtonMaterial* material, dFloat* force); + NEWTON_API void NewtonMaterialGetContactPositionAndNormal (const NewtonMaterial* material, dFloat* posit, dFloat* normal); + NEWTON_API void NewtonMaterialGetContactTangentDirections (const NewtonMaterial* material, dFloat* dir0, dFloat* dir); + NEWTON_API dFloat NewtonMaterialGetContactTangentSpeed (const NewtonMaterial* material, const NewtonContact* contactlHandle, int index); + + NEWTON_API void NewtonMaterialSetContactSoftness (const NewtonMaterial* material, dFloat softness); + NEWTON_API void NewtonMaterialSetContactElasticity (const NewtonMaterial* material, dFloat restitution); + NEWTON_API void NewtonMaterialSetContactFrictionState (const NewtonMaterial* material, int state, int index); + NEWTON_API void NewtonMaterialSetContactStaticFrictionCoef (const NewtonMaterial* material, dFloat coef, int index); + NEWTON_API void NewtonMaterialSetContactKineticFrictionCoef (const NewtonMaterial* material, dFloat coef, int index); + + NEWTON_API void NewtonMaterialSetContactNormalAcceleration (const NewtonMaterial* material, dFloat accel); + NEWTON_API void NewtonMaterialSetContactNormalDirection (const NewtonMaterial* material, const dFloat* directionVector); + + NEWTON_API void NewtonMaterialSetContactTangentAcceleration (const NewtonMaterial* material, dFloat accel, int index); + NEWTON_API void NewtonMaterialContactRotateTangentDirections (const NewtonMaterial* material, const dFloat* directionVector); + + + // ********************************************************************************************** + // + // convex collision primitives creation functions + // + // ********************************************************************************************** + NEWTON_API NewtonCollision* NewtonCreateNull (const NewtonWorld* newtonWorld); + NEWTON_API NewtonCollision* NewtonCreateSphere (const NewtonWorld* newtonWorld, dFloat radiusX, dFloat radiusY, dFloat radiusZ, const dFloat *offsetMatrix); + NEWTON_API NewtonCollision* NewtonCreateBox (const NewtonWorld* newtonWorld, dFloat dx, dFloat dy, dFloat dz, const dFloat *offsetMatrix); + NEWTON_API NewtonCollision* NewtonCreateCone (const NewtonWorld* newtonWorld, dFloat radius, dFloat height, const dFloat *offsetMatrix); + NEWTON_API NewtonCollision* NewtonCreateCapsule (const NewtonWorld* newtonWorld, dFloat radius, dFloat height, const dFloat *offsetMatrix); + NEWTON_API NewtonCollision* NewtonCreateCylinder (const NewtonWorld* newtonWorld, dFloat radius, dFloat height, const dFloat *offsetMatrix); + NEWTON_API NewtonCollision* NewtonCreateChamferCylinder (const NewtonWorld* newtonWorld, dFloat radius, dFloat height, const dFloat *offsetMatrix); + NEWTON_API NewtonCollision* NewtonCreateConvexHull (const NewtonWorld* newtonWorld, int count, const dFloat* vertexCloud, int strideInBytes, const dFloat *offsetMatrix); + NEWTON_API NewtonCollision* NewtonCreateConvexHullModifier (const NewtonWorld* newtonWorld, const NewtonCollision* convexHullCollision); + NEWTON_API void NewtonConvexHullModifierGetMatrix (const NewtonCollision* convexHullCollision, dFloat* matrix); + NEWTON_API void NewtonConvexHullModifierSetMatrix (const NewtonCollision* convexHullCollision, const dFloat* matrix); + + + + + NEWTON_API void NewtonConvexCollisionSetUserID (const NewtonCollision* convexCollision, unsigned id); + NEWTON_API unsigned NewtonConvexCollisionGetUserID (const NewtonCollision* convexCollision); + + NEWTON_API dFloat NewtonConvexCollisionCalculateVolume (const NewtonCollision* convexCollision); + NEWTON_API void NewtonConvexCollisionCalculateInertialMatrix (const NewtonCollision* convexCollision, dFloat* inertia, dFloat* origin); + + NEWTON_API void NewtonCollisionMakeUnique (const NewtonWorld* newtonWorld, const NewtonCollision* collision); + NEWTON_API void NewtonReleaseCollision (const NewtonWorld* newtonWorld, const NewtonCollision* collision); + // ********************************************************************************************** + // + // complex collision primitives creation functions + // note: can only be used with static bodies (bodies with infinite mass) + // + // ********************************************************************************************** + NEWTON_API NewtonCollision* NewtonCreateCompoundCollision (const NewtonWorld* newtonWorld, int count, + NewtonCollision* const collisionPrimitiveArray[]); + + NEWTON_API NewtonCollision* NewtonCreateUserMeshCollision (const NewtonWorld* newtonWorld, const dFloat *minBox, + const dFloat *maxBox, void *userData, NewtonUserMeshCollisionCollideCallback collideCallback, + NewtonUserMeshCollisionRayHitCallback rayHitCallback, NewtonUserMeshCollisionDestroyCallback destroyCallback); + + // ********************************************************************************************** + // + // CollisionTree Utility functions + // + // ********************************************************************************************** + NEWTON_API NewtonCollision* NewtonCreateTreeCollision (const NewtonWorld* newtonWorld, NewtonTreeCollisionCallback userCallback); + NEWTON_API void NewtonTreeCollisionBeginBuild (const NewtonCollision* treeCollision); + NEWTON_API void NewtonTreeCollisionAddFace (const NewtonCollision* treeCollision, int vertexCount, const dFloat* vertexPtr, + int strideInBytes, int faceAttribute); + NEWTON_API void NewtonTreeCollisionEndBuild (const NewtonCollision* treeCollision, int optimize); + + NEWTON_API void NewtonTreeCollisionSerialize (const NewtonCollision* treeCollision, NewtonSerialize serializeFunction, + void* serializeHandle); + + NEWTON_API NewtonCollision* NewtonCreateTreeCollisionFromSerialization (const NewtonWorld* newtonWorld, + NewtonTreeCollisionCallback userCallback, NewtonDeserialize deserializeFunction, void* serializeHandle); + + NEWTON_API int NewtonTreeCollisionGetFaceAtribute (const NewtonCollision* treeCollision, const int* faceIndexArray); + NEWTON_API void NewtonTreeCollisionSetFaceAtribute (const NewtonCollision* treeCollision, const int* faceIndexArray, + int attribute); + + + // ********************************************************************************************** + // + // General purpose collision library functions + // + // ********************************************************************************************** + NEWTON_API int NewtonCollisionPointDistance (const NewtonWorld* newtonWorld, const dFloat *point, + const NewtonCollision* collsion, const dFloat* matrix, dFloat* contact, dFloat* normal); + + NEWTON_API int NewtonCollisionClosestPoint (const NewtonWorld* newtonWorld, + const NewtonCollision* collsionA, const dFloat* matrixA, const NewtonCollision* collsionB, const dFloat* matrixB, + dFloat* contactA, dFloat* contactB, dFloat* normalAB); + + NEWTON_API int NewtonCollisionCollide (const NewtonWorld* newtonWorld, int maxSize, + const NewtonCollision* collsionA, const dFloat* matrixA, const NewtonCollision* collsionB, const dFloat* matrixB, + dFloat* contacts, dFloat* normals, dFloat* penetration); + + NEWTON_API int NewtonCollisionCollideContinue (const NewtonWorld* newtonWorld, int maxSize, const dFloat timestap, + const NewtonCollision* collsionA, const dFloat* matrixA, const dFloat* velocA, const dFloat* omegaA, + const NewtonCollision* collsionB, const dFloat* matrixB, const dFloat* velocB, const dFloat* omegaB, + dFloat* timeOfImpact, dFloat* contacts, dFloat* normals, dFloat* penetration); + + NEWTON_API dFloat NewtonCollisionRayCast (const NewtonCollision* collision, const dFloat* p0, const dFloat* p1, dFloat* normals, int* attribute); + NEWTON_API void NewtonCollisionCalculateAABB (const NewtonCollision* collision, const dFloat *matrix, dFloat* p0, dFloat* p1); + + + // ********************************************************************************************** + // + // transforms utility functions + // + // ********************************************************************************************** + NEWTON_API void NewtonGetEulerAngle (const dFloat* matrix, dFloat* eulersAngles); + NEWTON_API void NewtonSetEulerAngle (const dFloat* eulersAngles, dFloat* matrix); + + + // ********************************************************************************************** + // + // body manipulation functions + // + // ********************************************************************************************** + NEWTON_API NewtonBody* NewtonCreateBody (const NewtonWorld* newtonWorld, const NewtonCollision* collision); + NEWTON_API void NewtonDestroyBody(const NewtonWorld* newtonWorld, const NewtonBody* body); + + NEWTON_API void NewtonBodyAddForce (const NewtonBody* body, const dFloat* force); + NEWTON_API void NewtonBodyAddTorque (const NewtonBody* body, const dFloat* torque); + + NEWTON_API void NewtonBodySetMatrix (const NewtonBody* body, const dFloat* matrix); + NEWTON_API void NewtonBodySetMatrixRecursive (const NewtonBody* body, const dFloat* matrix); + NEWTON_API void NewtonBodySetMassMatrix (const NewtonBody* body, dFloat mass, dFloat Ixx, dFloat Iyy, dFloat Izz); + NEWTON_API void NewtonBodySetMaterialGroupID (const NewtonBody* body, int id); + NEWTON_API void NewtonBodySetContinuousCollisionMode (const NewtonBody* body, unsigned state); + NEWTON_API void NewtonBodySetJointRecursiveCollision (const NewtonBody* body, unsigned state); + NEWTON_API void NewtonBodySetOmega (const NewtonBody* body, const dFloat* omega); + NEWTON_API void NewtonBodySetVelocity (const NewtonBody* body, const dFloat* velocity); + NEWTON_API void NewtonBodySetForce (const NewtonBody* body, const dFloat* force); + NEWTON_API void NewtonBodySetTorque (const NewtonBody* body, const dFloat* torque); + + NEWTON_API void NewtonBodySetCentreOfMass (const NewtonBody* body, const dFloat* com); + NEWTON_API void NewtonBodySetLinearDamping (const NewtonBody* body, dFloat linearDamp); + NEWTON_API void NewtonBodySetAngularDamping (const NewtonBody* body, const dFloat* angularDamp); + NEWTON_API void NewtonBodySetUserData (const NewtonBody* body, void* userData); + NEWTON_API void NewtonBodyCoriolisForcesMode (const NewtonBody* body, int mode); + NEWTON_API void NewtonBodySetCollision (const NewtonBody* body, const NewtonCollision* collision); + NEWTON_API void NewtonBodySetAutoFreeze (const NewtonBody* body, int state); + NEWTON_API void NewtonBodySetFreezeTreshold (const NewtonBody* body, dFloat freezeSpeed2, dFloat freezeOmega2, int framesCount); + + NEWTON_API void NewtonBodySetTransformCallback (const NewtonBody* body, NewtonSetTransform callback); + NEWTON_API void NewtonBodySetDestructorCallback (const NewtonBody* body, NewtonBodyDestructor callback); + NEWTON_API void NewtonBodySetAutoactiveCallback (const NewtonBody* body, NewtonBodyActivationState callback); + NEWTON_API void NewtonBodySetForceAndTorqueCallback (const NewtonBody* body, NewtonApplyForceAndTorque callback); + NEWTON_API NewtonApplyForceAndTorque NewtonBodyGetForceAndTorqueCallback (const NewtonBody* body); + + NEWTON_API void* NewtonBodyGetUserData (const NewtonBody* body); + NEWTON_API NewtonWorld* NewtonBodyGetWorld (const NewtonBody* body); + NEWTON_API NewtonCollision* NewtonBodyGetCollision (const NewtonBody* body); + NEWTON_API int NewtonBodyGetMaterialGroupID (const NewtonBody* body); + NEWTON_API int NewtonBodyGetContinuousCollisionMode (const NewtonBody* body); + NEWTON_API int NewtonBodyGetJointRecursiveCollision (const NewtonBody* body); + + NEWTON_API void NewtonBodyGetMatrix(const NewtonBody* body, dFloat* matrix); + NEWTON_API void NewtonBodyGetMassMatrix (const NewtonBody* body, dFloat* mass, dFloat* Ixx, dFloat* Iyy, dFloat* Izz); + NEWTON_API void NewtonBodyGetInvMass(const NewtonBody* body, dFloat* invMass, dFloat* invIxx, dFloat* invIyy, dFloat* invIzz); + NEWTON_API void NewtonBodyGetOmega(const NewtonBody* body, dFloat* vector); + NEWTON_API void NewtonBodyGetVelocity(const NewtonBody* body, dFloat* vector); + NEWTON_API void NewtonBodyGetForce(const NewtonBody* body, dFloat* vector); + NEWTON_API void NewtonBodyGetTorque(const NewtonBody* body, dFloat* vector); + NEWTON_API void NewtonBodyGetCentreOfMass (const NewtonBody* body, dFloat* com); + + NEWTON_API int NewtonBodyGetSleepingState(const NewtonBody* body); + NEWTON_API int NewtonBodyGetAutoFreeze(const NewtonBody* body); + NEWTON_API dFloat NewtonBodyGetLinearDamping (const NewtonBody* body); + NEWTON_API void NewtonBodyGetAngularDamping (const NewtonBody* body, dFloat* vector); + NEWTON_API void NewtonBodyGetAABB (const NewtonBody* body, dFloat* p0, dFloat* p1); + NEWTON_API void NewtonBodyGetFreezeTreshold (const NewtonBody* body, dFloat* freezeSpeed2, dFloat* freezeOmega2); + + + NEWTON_API void NewtonBodyAddBuoyancyForce (const NewtonBody* body, dFloat fluidDensity, + dFloat fluidLinearViscosity, dFloat fluidAngularViscosity, + const dFloat* gravityVector, NewtonGetBuoyancyPlane buoyancyPlane, void *context); + + NEWTON_API void NewtonBodyForEachPolygonDo (const NewtonBody* body, NewtonCollisionIterator callback); + NEWTON_API void NewtonAddBodyImpulse (const NewtonBody* body, const dFloat* pointDeltaVeloc, const dFloat* pointPosit); + + + // ********************************************************************************************** + // + // Common joint functions + // + // ********************************************************************************************** + NEWTON_API void* NewtonJointGetUserData (const NewtonJoint* joint); + NEWTON_API void NewtonJointSetUserData (const NewtonJoint* joint, void* userData); + + NEWTON_API int NewtonJointGetCollisionState (const NewtonJoint* joint); + NEWTON_API void NewtonJointSetCollisionState (const NewtonJoint* joint, int state); + + NEWTON_API dFloat NewtonJointGetStiffness (const NewtonJoint* joint); + NEWTON_API void NewtonJointSetStiffness (const NewtonJoint* joint, dFloat state); + + NEWTON_API void NewtonDestroyJoint(const NewtonWorld* newtonWorld, const NewtonJoint* joint); + NEWTON_API void NewtonJointSetDestructor (const NewtonJoint* joint, NewtonConstraintDestructor destructor); + + + // ********************************************************************************************** + // + // Ball and Socket joint functions + // + // ********************************************************************************************** + NEWTON_API NewtonJoint* NewtonConstraintCreateBall (const NewtonWorld* newtonWorld, const dFloat* pivotPoint, + const NewtonBody* childBody, const NewtonBody* parentBody); + NEWTON_API void NewtonBallSetUserCallback (const NewtonJoint* ball, NewtonBallCallBack callback); + NEWTON_API void NewtonBallGetJointAngle (const NewtonJoint* ball, dFloat* angle); + NEWTON_API void NewtonBallGetJointOmega (const NewtonJoint* ball, dFloat* omega); + NEWTON_API void NewtonBallGetJointForce (const NewtonJoint* ball, dFloat* force); + NEWTON_API void NewtonBallSetConeLimits (const NewtonJoint* ball, const dFloat* pin, dFloat maxConeAngle, dFloat maxTwistAngle); + + // ********************************************************************************************** + // + // Hinge joint functions + // + // ********************************************************************************************** + NEWTON_API NewtonJoint* NewtonConstraintCreateHinge (const NewtonWorld* newtonWorld, + const dFloat* pivotPoint, const dFloat* pinDir, + const NewtonBody* childBody, const NewtonBody* parentBody); + + NEWTON_API void NewtonHingeSetUserCallback (const NewtonJoint* hinge, NewtonHingeCallBack callback); + NEWTON_API dFloat NewtonHingeGetJointAngle (const NewtonJoint* hinge); + NEWTON_API dFloat NewtonHingeGetJointOmega (const NewtonJoint* hinge); + NEWTON_API void NewtonHingeGetJointForce (const NewtonJoint* hinge, dFloat* force); + NEWTON_API dFloat NewtonHingeCalculateStopAlpha (const NewtonJoint* hinge, const NewtonHingeSliderUpdateDesc* desc, dFloat angle); + + // ********************************************************************************************** + // + // Slider joint functions + // + // ********************************************************************************************** + NEWTON_API NewtonJoint* NewtonConstraintCreateSlider (const NewtonWorld* newtonWorld, + const dFloat* pivotPoint, const dFloat* pinDir, + const NewtonBody* childBody, const NewtonBody* parentBody); + NEWTON_API void NewtonSliderSetUserCallback (const NewtonJoint* slider, NewtonSliderCallBack callback); + NEWTON_API dFloat NewtonSliderGetJointPosit (const NewtonJoint* slider); + NEWTON_API dFloat NewtonSliderGetJointVeloc (const NewtonJoint* slider); + NEWTON_API void NewtonSliderGetJointForce (const NewtonJoint* slider, dFloat* force); + NEWTON_API dFloat NewtonSliderCalculateStopAccel (const NewtonJoint* slider, const NewtonHingeSliderUpdateDesc* desc, dFloat position); + + + // ********************************************************************************************** + // + // Corkscrew joint functions + // + // ********************************************************************************************** + NEWTON_API NewtonJoint* NewtonConstraintCreateCorkscrew (const NewtonWorld* newtonWorld, + const dFloat* pivotPoint, const dFloat* pinDir, + const NewtonBody* childBody, const NewtonBody* parentBody); + NEWTON_API void NewtonCorkscrewSetUserCallback (const NewtonJoint* corkscrew, NewtonCorkscrewCallBack callback); + NEWTON_API dFloat NewtonCorkscrewGetJointPosit (const NewtonJoint* corkscrew); + NEWTON_API dFloat NewtonCorkscrewGetJointAngle (const NewtonJoint* corkscrew); + NEWTON_API dFloat NewtonCorkscrewGetJointVeloc (const NewtonJoint* corkscrew); + NEWTON_API dFloat NewtonCorkscrewGetJointOmega (const NewtonJoint* corkscrew); + NEWTON_API void NewtonCorkscrewGetJointForce (const NewtonJoint* corkscrew, dFloat* force); + NEWTON_API dFloat NewtonCorkscrewCalculateStopAlpha (const NewtonJoint* corkscrew, const NewtonHingeSliderUpdateDesc* desc, dFloat angle); + NEWTON_API dFloat NewtonCorkscrewCalculateStopAccel (const NewtonJoint* corkscrew, const NewtonHingeSliderUpdateDesc* desc, dFloat position); + + + // ********************************************************************************************** + // + // Universal joint functions + // + // ********************************************************************************************** + NEWTON_API NewtonJoint* NewtonConstraintCreateUniversal (const NewtonWorld* newtonWorld, + const dFloat* pivotPoint, const dFloat* pinDir0, const dFloat* pinDir1, + const NewtonBody* childBody, const NewtonBody* parentBody); + NEWTON_API void NewtonUniversalSetUserCallback (const NewtonJoint* universal, NewtonUniversalCallBack callback); + NEWTON_API dFloat NewtonUniversalGetJointAngle0 (const NewtonJoint* universal); + NEWTON_API dFloat NewtonUniversalGetJointAngle1 (const NewtonJoint* universal); + NEWTON_API dFloat NewtonUniversalGetJointOmega0 (const NewtonJoint* universal); + NEWTON_API dFloat NewtonUniversalGetJointOmega1 (const NewtonJoint* universal); + NEWTON_API void NewtonUniversalGetJointForce (const NewtonJoint* universal, dFloat* force); + NEWTON_API dFloat NewtonUniversalCalculateStopAlpha0 (const NewtonJoint* universal, const NewtonHingeSliderUpdateDesc* desc, dFloat angle); + NEWTON_API dFloat NewtonUniversalCalculateStopAlpha1 (const NewtonJoint* universal, const NewtonHingeSliderUpdateDesc* desc, dFloat angle); + + + // ********************************************************************************************** + // + // Up vector joint functions + // + // ********************************************************************************************** + NEWTON_API NewtonJoint* NewtonConstraintCreateUpVector (const NewtonWorld* newtonWorld, const dFloat* pinDir, const NewtonBody* body); + NEWTON_API void NewtonUpVectorGetPin (const NewtonJoint* upVector, dFloat *pin); + NEWTON_API void NewtonUpVectorSetPin (const NewtonJoint* upVector, const dFloat *pin); + + + // ********************************************************************************************** + // + // User defined bilateral Joint + // + // ********************************************************************************************** + NEWTON_API NewtonJoint* NewtonConstraintCreateUserJoint (const NewtonWorld* newtonWorld, int maxDOF, NewtonUserBilateralCallBack callback, + const NewtonBody* childBody, const NewtonBody* parentBody); + + NEWTON_API void NewtonUserJointAddLinearRow (const NewtonJoint* joint, const dFloat *pivot0, const dFloat *pivot1, const dFloat *dir); + NEWTON_API void NewtonUserJointAddAngularRow (const NewtonJoint* joint, dFloat relativeAngle, const dFloat *dir); + NEWTON_API void NewtonUserJointAddGeneralRow (const NewtonJoint* joint, const dFloat *jacobian0, const dFloat *jacobian1); + NEWTON_API void NewtonUserJointSetRowMinimumFriction (const NewtonJoint* joint, dFloat friction); + NEWTON_API void NewtonUserJointSetRowMaximumFriction (const NewtonJoint* joint, dFloat friction); + NEWTON_API void NewtonUserJointSetRowAcceleration (const NewtonJoint* joint, dFloat acceleration); + NEWTON_API void NewtonUserJointSetRowSpringDamperAcceleration (const NewtonJoint* joint, dFloat springK, dFloat springD); + NEWTON_API void NewtonUserJointSetRowStiffness (const NewtonJoint* joint, dFloat stiffness); + NEWTON_API dFloat NewtonUserJointGetRowForce (const NewtonJoint* joint, int row); + + + + // ********************************************************************************************** + // + // Rag doll joint container functions + // + // ********************************************************************************************** + NEWTON_API NewtonRagDoll* NewtonCreateRagDoll (const NewtonWorld* newtonWorld); + NEWTON_API void NewtonDestroyRagDoll (const NewtonWorld* newtonWorld, const NewtonRagDoll* ragDoll); + + NEWTON_API void NewtonRagDollBegin (const NewtonRagDoll* ragDoll); + NEWTON_API void NewtonRagDollEnd (const NewtonRagDoll* ragDoll); + + +// NEWTON_API void NewtonRagDollSetFriction (const NewtonRagDoll* ragDoll, dFloat friction); + + NEWTON_API NewtonRagDollBone* NewtonRagDollFindBone (const NewtonRagDoll* ragDoll, int id); +// NEWTON_API NewtonRagDollBone* NewtonRagDollGetRootBone (const NewtonRagDoll* ragDoll); + + NEWTON_API void NewtonRagDollSetForceAndTorqueCallback (const NewtonRagDoll* ragDoll, NewtonApplyForceAndTorque callback); + NEWTON_API void NewtonRagDollSetTransformCallback (const NewtonRagDoll* ragDoll, NewtonSetRagDollTransform callback); + NEWTON_API NewtonRagDollBone* NewtonRagDollAddBone (const NewtonRagDoll* ragDoll, const NewtonRagDollBone* parent, + void *userData, dFloat mass, const dFloat* matrix, + const NewtonCollision* boneCollision, const dFloat* size); + + NEWTON_API void* NewtonRagDollBoneGetUserData (const NewtonRagDollBone* bone); + NEWTON_API NewtonBody* NewtonRagDollBoneGetBody (const NewtonRagDollBone* bone); + NEWTON_API void NewtonRagDollBoneSetID (const NewtonRagDollBone* bone, int id); + + + NEWTON_API void NewtonRagDollBoneSetLimits (const NewtonRagDollBone* bone, + const dFloat* coneDir, dFloat minConeAngle, dFloat maxConeAngle, dFloat maxTwistAngle, + const dFloat* bilateralConeDir, dFloat negativeBilateralConeAngle, dFloat positiveBilateralConeAngle); + +// NEWTON_API NewtonRagDollBone* NewtonRagDollBoneGetChild (const NewtonRagDollBone* bone); +// NEWTON_API NewtonRagDollBone* NewtonRagDollBoneGetSibling (const NewtonRagDollBone* bone); +// NEWTON_API NewtonRagDollBone* NewtonRagDollBoneGetParent (const NewtonRagDollBone* bone); +// NEWTON_API void NewtonRagDollBoneSetLocalMatrix (const NewtonRagDollBone* bone, dFloat* matrix); +// NEWTON_API void NewtonRagDollBoneSetGlobalMatrix (const NewtonRagDollBone* bone, dFloat* matrix); + + NEWTON_API void NewtonRagDollBoneGetLocalMatrix (const NewtonRagDollBone* bone, dFloat* matrix); + NEWTON_API void NewtonRagDollBoneGetGlobalMatrix (const NewtonRagDollBone* bone, dFloat* matrix); + + + + // ********************************************************************************************** + // + // Vehicle joint functions + // + // ********************************************************************************************** + NEWTON_API NewtonJoint* NewtonConstraintCreateVehicle (const NewtonWorld* newtonWorld, const dFloat* upDir, const NewtonBody* body); + NEWTON_API void NewtonVehicleReset (const NewtonJoint* vehicle); + NEWTON_API void NewtonVehicleSetTireCallback (const NewtonJoint* vehicle, NewtonVehicleTireUpdate update); + NEWTON_API void* NewtonVehicleAddTire (const NewtonJoint* vehicle, const dFloat* localMatrix, const dFloat* pin, dFloat mass, dFloat width, dFloat radius, + dFloat suspesionShock, dFloat suspesionSpring, dFloat suspesionLength, void* userData, int collisionID); + NEWTON_API void NewtonVehicleRemoveTire (const NewtonJoint* vehicle, void* tireId); + + NEWTON_API void* NewtonVehicleGetFirstTireID (const NewtonJoint* vehicle); + NEWTON_API void* NewtonVehicleGetNextTireID (const NewtonJoint* vehicle, void* tireId); + + NEWTON_API int NewtonVehicleTireIsAirBorne (const NewtonJoint* vehicle, void* tireId); + NEWTON_API int NewtonVehicleTireLostSideGrip (const NewtonJoint* vehicle, void* tireId); + NEWTON_API int NewtonVehicleTireLostTraction (const NewtonJoint* vehicle, void* tireId); + + NEWTON_API void* NewtonVehicleGetTireUserData (const NewtonJoint* vehicle, void* tireId); + NEWTON_API dFloat NewtonVehicleGetTireOmega (const NewtonJoint* vehicle, void* tireId); + NEWTON_API dFloat NewtonVehicleGetTireNormalLoad (const NewtonJoint* vehicle, void* tireId); + NEWTON_API dFloat NewtonVehicleGetTireSteerAngle (const NewtonJoint* vehicle, void* tireId); + NEWTON_API dFloat NewtonVehicleGetTireLateralSpeed (const NewtonJoint* vehicle, void* tireId); + NEWTON_API dFloat NewtonVehicleGetTireLongitudinalSpeed (const NewtonJoint* vehicle, void* tireId); + NEWTON_API void NewtonVehicleGetTireMatrix (const NewtonJoint* vehicle, void* tireId, dFloat* matrix); + + + NEWTON_API void NewtonVehicleSetTireTorque (const NewtonJoint* vehicle, void* tireId, dFloat torque); + NEWTON_API void NewtonVehicleSetTireSteerAngle (const NewtonJoint* vehicle, void* tireId, dFloat angle); + + NEWTON_API void NewtonVehicleSetTireMaxSideSleepSpeed (const NewtonJoint* vehicle, void* tireId, dFloat speed); + NEWTON_API void NewtonVehicleSetTireSideSleepCoeficient (const NewtonJoint* vehicle, void* tireId, dFloat coeficient); + NEWTON_API void NewtonVehicleSetTireMaxLongitudinalSlideSpeed (const NewtonJoint* vehicle, void* tireId, dFloat speed); + NEWTON_API void NewtonVehicleSetTireLongitudinalSlideCoeficient (const NewtonJoint* vehicle, void* tireId, dFloat coeficient); + + NEWTON_API dFloat NewtonVehicleTireCalculateMaxBrakeAcceleration (const NewtonJoint* vehicle, void* tireId); + NEWTON_API void NewtonVehicleTireSetBrakeAcceleration (const NewtonJoint* vehicle, void* tireId, dFloat accelaration, dFloat torqueLimit); + +#ifdef __cplusplus +} +#endif +#endif + + diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Unstable Version/1.3.2/README --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Unstable Version/1.3.2/README Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,13 @@ + Irrlicht Library Wrapper + Created by Nathan Adams + Version 1.2.9 + Copyright (C) 2008 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. + + Please leave all files intact if you redistrubte this software. + +How to use: + Add all the files to your Irrlicht project, you could compile it into a DLL if you wanted too, but for now just add all the files to your project. + Then inside your complier add the directory that you have the IrrLib files and use #include "IrrLib.h" to refrence it, and you are good to go! \ No newline at end of file diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Unstable Version/1.3.3/CHANGES --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Unstable Version/1.3.3/CHANGES Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,90 @@ +Version 1.2 ++ Added a Irr3DLib class that will control all 3D objects ++ Also Added a Irr2D class that works on the same concept. ++ IrrSphere is now owned by Irr3DLib ++ Updated the examples using the latest code +Version 1.2.2 ++ Added IrrEventReciever to handle all input + - Still under work ++ Fixed some misc coding bugs ++ Added template class ++ Added sprite class ++ Added GUI class +Version 1.2.3 ++ IrrEventReciver now works as advertised ++ Baseclass is now being used + + A couple somewhat-useful functions + + int_to_string + + stringw_to_stdstring + + stdstring_to_stringw ++ GUI elements + + Static text is working ++ Under construction for a data type class +Version 1.2.4 ++ Implmented color codes accessiable through the class + + IrrLib.Color.RED (ect) +Version 1.2.5 ++ Implmented mouse events + + IrrLib.IrrEvent.getMouseX(); + + IrrLib.IrrEvent.getMouseY(); ++ Using vectors instead of static arrays + + Side note: Was going to use dynamic arrays, but C++ has vectors which are 10x better. ++ Added a default exit for when you hit esc + + Use IrrLib.IrrEvent.SetEscExit(false) to turn that off for your software + + Use IrrLib.IrrEvent.SetEscExit(true) to turn it back on ++ Every stable version will now include a windows DLL. + + Possible Linux .so file in the future. +Version 1.2.6 ++ Added a IrrEvent for buttons + + IrrLib.IrrEvent.checkButtonState(); + + See example for use ++ Added an AddButton function + + IrrLib.GUI.AddButton(..); + + See example for use ++ Problems with making the DLL + + reasearching +Version 1.2.7 ++ Fixed DLL Problem ++ Added an enum example to example 1 ++ Added more examples ++ Added example 9 ++ Added left click handling (see example 9) ++ Added AddLines function to Irr2D + + DrawLines function in Irr2D will draw the lines you add +Version 1.2.9 ++ Added Listbox GUI object ++ Added a new datatype IrrObj + + Contains 2 ints, 1 for object id and 1 for event id ++ Added a IrrData.h file +Version 1.3.0 ++ Changed String class use to Irrlicht's type Strings +Version 1.3.1 ++ Added support for newest Irrlict version +Version 1.3.2/1.3.3 ++ Added Newton Physics engine + - Deleted Irr2D::Collision as this will be now handled by the physics engine + + Added a few functions for Collision + + Added a new object Irr3DObj + + Has several functions that allow you to work easily with 3D objects including moving them and setting the texture. + + You can now detect collision between 2 3D objects and output them to the screen + + Example code: http://pastethis.net/?code=49 ++ Changed the way IrrColor colors work ++ Changed internally handling of some global variables ++ Added some static variables + + Irrlicht Device is now static in IrrLib class + + Some variables that deal with Physics are static ++ Updated copyright ++ Added new datatypes + + Irr3DLibObj + + Irr3DObj + + Irr2DObj + + IrrGUIObj + + IrrGUIStruct + + IrrEventObj + + Irr3DSphere + + Irr3DObjColor +- Deleted IrrData.h ++ 3D mesh display is working, though its still in the works (see example 11 in the SVN) ++ Implmented smart pointer class "IrrObj" ++ Possible fix of header circular inclusion +% Future planned use of namespace \ No newline at end of file diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Unstable Version/1.3.3/CREDITS --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Unstable Version/1.3.3/CREDITS Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,10 @@ +IrrLib +Created by + Nathan Adams + +From #irrlicht + Acid + wacom + +From Irrlicht Forums + Denzel Morris \ No newline at end of file diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Unstable Version/1.3.3/Collision.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Unstable Version/1.3.3/Collision.h Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,7 @@ +#ifndef COLLISION.H +#define COLLISION.H +struct Collision { + int nHits; + bool hit; +}; +#endif diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Unstable Version/1.3.3/Copy of IrrFunctions.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Unstable Version/1.3.3/Copy of IrrFunctions.cpp Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,211 @@ +#include "IrrFunctions.h" +#include +#include +#include +#include "IrrDefines.h" +#include "IrrPhysics.h" +#include + +using namespace std; + +using namespace irr; +using namespace core; +using namespace scene; +using namespace video; +using namespace io; +using namespace gui; + +int CheckForCollision(Irr2DObj& obj_A, Irr2DObj& obj_B) +{ +const int nContacts = 4; +float contacts[3 * nContacts]; +float normals[3 * nContacts]; +float penetration[3 * nContacts ]; + +//dMatrix t1, t2; +const float NewtonToIrr = 32.0f; +const float IrrToNewton = (1.0f / NewtonToIrr); + +matrix4 mat_A,mat_B; +mat_A.makeIdentity(); +mat_B.makeIdentity(); +mat_A.setTranslation(obj_A->getPosition()); +mat_B.setTranslation(obj_B->getPosition()); +core::aabbox3d box1(vector3d(obj_A->getLength(), obj_A->getHeight(), 0)); +core::aabbox3d box2(vector3d(obj_B->getLength(), obj_B->getHeight(), 0)); +NewtonCollision* obj1_col = NewtonCreateBox(IrrPhysics::nworld, (obj_A->getLength()), obj_A->getHeight(), 1, NULL); +NewtonCollision* obj2_col = NewtonCreateBox(IrrPhysics::nworld, (obj_B->getLength()), obj_B->getHeight(), 1, NULL); +//NewtonCollision* obj2_col = NewtonCreateBox(IrrPhysics::nworld, 2, 10, 1, NULL); +//NewtonBody* obj1 = NewtonCreateBody(IrrPhysics::nworld, obj1_col); +//NewtonBody* obj2 = NewtonCreateBody(IrrPhysics::nworld, obj2_col); + +//NewtonBodyGetMatrix( obj1, &t1[0][0] ); +//NewtonBodyGetMatrix( obj2, &t2[0][0] ); + +//Check for collision between collision meshes, +// returns number of contact points +int nHits = NewtonCollisionCollide( IrrPhysics::nworld,nContacts, + obj1_col, (float*)&mat_A, + obj2_col, (float*)&mat_B, + contacts, + normals, + penetration); +//Collision detected if nHits > 0 +/*if( nHits > 0) +return true; +return false;*/ +NewtonReleaseCollision(IrrPhysics::nworld, obj1_col); +NewtonReleaseCollision(IrrPhysics::nworld, obj2_col); +//NewtonDestroyBody(IrrPhysics::nworld, obj1); +//NewtonDestroyBody(IrrPhysics::nworld, obj2); +return nHits; + +} + +int CheckForCollision(Irr3DObj& obj_A, Irr3DObj& obj_B) +{ +//Matrix to store irr_node position +matrix4 mat_A,mat_B; + +//Copy position +mat_A.makeIdentity(); +mat_B.makeIdentity(); + +mat_A.setTranslation(obj_A->getSceneNode()->getPosition()); +mat_B.setTranslation(obj_B->getSceneNode()->getPosition()); + +const int nContacts = 2; +float contacts[3 * nContacts]; +float normals[3 * nContacts]; +float penetration[ nContacts ]; + +//Check for collision between collision meshes, +// returns number of contact points +int nHits = NewtonCollisionCollide( IrrPhysics::nworld,nContacts, + + obj_A->getNewtonCollision(), (float*)&mat_A[0], + obj_B->getNewtonCollision(), (float*)&mat_B[0], + contacts, + normals, + penetration); +//Collision detected if nHits > 0 +/*if( nHits > 0) +return true; +return false;*/ +return nHits; + +} + +//Function to create a NewtonCollision from irrlicht mesh with tree optimization +NewtonCollision * CreateTreeCollisionFromMesh(IMesh *irr_mesh ) +{ +//Create new (tree optimized) collision mesh +NewtonCollision *collision_obj = NewtonCreateTreeCollision(IrrPhysics::nworld ,NULL); + +//Begin collision mesh construction +NewtonTreeCollisionBeginBuild(collision_obj); + +int nMeshBuffer = 0; //Mesh Buffer count +int v_index[3] = {0,0,0}; //vertex indices +IMeshBuffer *mesh_buffer = NULL; +float array[9]; //Array to store 3 vertices + +//Get (irr_)mesh buffers and copy face by face to collision mesh +for( nMeshBuffer=0 ; nMeshBuffer < irr_mesh->getMeshBufferCount() ; nMeshBuffer++ ) +{ +mesh_buffer = irr_mesh->getMeshBuffer(nMeshBuffer); + +//Get pointer to vertices and indices +S3DVertex *vertices = (S3DVertex*)mesh_buffer->getVertices(); +u16 *indices = mesh_buffer->getIndices(); + +//Fill collision mesh +for(int i=0; igetIndexCount(); i+=3) +{ +v_index[0] = indices[ i ]; +v_index[1] = indices[i+1]; +v_index[2] = indices[i+2]; + +// 1st position vertex +array[0] = vertices[ v_index[0] ].Pos.X; +array[1] = vertices[ v_index[0] ].Pos.Y; +array[2] = vertices[ v_index[0] ].Pos.Z; + +// 2nd position vertex +array[3] = vertices[ v_index[1] ].Pos.X; +array[4] = vertices[ v_index[1] ].Pos.Y; +array[5] = vertices[ v_index[1] ].Pos.Z; + +// 3rd position vertex +array[6] = vertices[ v_index[2] ].Pos.X; +array[7] = vertices[ v_index[2] ].Pos.Y; +array[8] = vertices[ v_index[2] ].Pos.Z; + +//Add new face to collision mesh +NewtonTreeCollisionAddFace(collision_obj, //collision mesh to add face to + + 3, //number of vertices in array + (float*)array, //pointer to vertex array + 3*sizeof(float),//size of each vertex + 1); //ID of the face + +} +} +//End collision contruction , set 1 as 2dn param for optimization +NewtonTreeCollisionEndBuild(collision_obj,0); + +return collision_obj; + +} + +//Function to create a NewtonCollision from irrlicht mesh +NewtonCollision * CreateCollisionFromMesh(IMesh *irr_mesh ) +{ +int nMeshBuffer = 0; //Mesh Buffer count +IMeshBuffer *mesh_buffer = NULL; +float *vertices; //Array to store vertices + +u32 nVertices = 0; + +//Get number of vertices +for( nMeshBuffer=0 ; nMeshBuffer < irr_mesh->getMeshBufferCount() ; nMeshBuffer++ ) +{ +nVertices += irr_mesh->getMeshBuffer(nMeshBuffer)->getVertexCount(); +} + + +//create buffer for vertices +vertices = new float[nVertices * 3]; +u32 tmpCounter = 0; + +//Get (irr_)mesh buffers and copy face vertices +for( nMeshBuffer=0 ; nMeshBuffer < irr_mesh->getMeshBufferCount() ; nMeshBuffer++ ) +{ + + mesh_buffer = irr_mesh->getMeshBuffer(nMeshBuffer); + + //Get pointer to vertices and indices + S3DVertex *S3vertices = (S3DVertex*)mesh_buffer->getVertices(); + + +//copy vertices from mesh to buffer +for(int i=0; igetVertexCount(); i++) +{ + + vertices[tmpCounter++] = S3vertices[i].Pos.X; + vertices[tmpCounter++] = S3vertices[i].Pos.Y; + vertices[tmpCounter++] = S3vertices[i].Pos.Z; + + } + +} + +//Create Newton collision object +NewtonCollision *collision_obj = NewtonCreateConvexHull(IrrPhysics::nworld,nVertices,vertices,sizeof(float)*3,NULL); + +//delete vertices +delete [] vertices; + +return collision_obj; + +} diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Unstable Version/1.3.3/Irr2D.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Unstable Version/1.3.3/Irr2D.cpp Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,203 @@ +/* + Irrlicht Library Wrapper + Created by: + Nathan Adams + Copyright (C) 2008 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ + +#include +//#include "IrrLib.h" +//#include "IrrSphere.h" //You probably aren't going to be using 3D objects in a 2D environment! +#include +#include + +#include "Irr2D.h" +#include "IrrSprite.h" +#include "IrrText.h" +//#include "IrrLibBase.h" +//#include "IrrData.h" + +using namespace irr; +using namespace core; +using namespace scene; +using namespace video; +using namespace io; +using namespace gui; + +using namespace std; + +void Irr2D::LoadText() +{ + text.push_back(this->driver->getTexture("0.png")); + text.push_back(this->driver->getTexture("1.png")); + text.push_back(this->driver->getTexture("2.png")); +} + +Irr2D::Irr2D(){ + this->numTextures = 0; + this->numLines = 0; + this->nImages = 0; + + //NA Should we set textures to new +} + +Irr2D::~Irr2D(){ + //delete Irr2DObjret; + /*for(int i = 0; i < numTextures; ++i) + delete this->textures[i]; + + delete this->textures;*/ + //No more dynamic memory business yay! NA + //All handled by vectors! +} + +/*void Irr2D::SetSmgr(irr::scene::ISceneManager* smgr){ + this->smgr = smgr; + Sprite.SetSmgr(smgr); +} + +void Irr2D::SetDriver(irr::video::IVideoDriver* driver){ + this->driver = driver; + Sprite.SetDriver(driver); +}*/ + +Irr2DObj Irr2D::LoadTexturemap(stringc file){ + this->texturemap = this->driver->getTexture(file.c_str()); +} + +Irr2DObj Irr2D::LoadTexture(stringc file){ + //this->textures[this->numTextures] = driver->getTexture(file.c_str()); + textures.push_back(driver->getTexture(file.c_str())); + this->numTextures++; + Irr2DObj ret; + ret->eventid = 0; + ret->objectid = numTextures--; + return ret; +} + +void Irr2D::DrawLine(IrrPos& start, IrrPos& end, irr::video::SColor color) +{ + this->driver->draw2DLine(start, end, color); +} + +void Irr2D::AddLines(IrrPos& start, IrrPos& end, irr::video::SColor color) +{ + this->start.push_back(start); + this->end.push_back(end); + this->color.push_back(color); + this->numLines++; +} + +void Irr2D::DrawLines() +{ + for(int i = 0; i < numLines; ++i) + this->driver->draw2DLine(this->start[i], this->end[i], this->color[i]); +} + +void Irr2D::LoadIrrImage(Irr2DObj& in, irr::core::stringc file) +{ + images.push_back(this->driver->getTexture(file.c_str())); + //cout << "Irr2DObjret->objectid = " << (*Irr2DObjret)->objectid << endl; + in->objectid = nImages; + this->driver->makeColorKeyTexture(images[nImages], core::position2d(0,0)); + dimension2d tmp; + tmp = images[nImages]->getSize(); + //cout << tmp.Height << ": " << nImages << endl; + in->setHeight(tmp.Height); + in->setLength(tmp.Width); + //in-> + in->eventid = 0; + this->nImages++; + //return (*Irr2DObjret); +} + +void Irr2D::DrawImage(Irr2DObj& img) +{ + //irr::core::position2d destPos(img->x, img->y); + irr::core::position2d destPos(img->getX(), img->getY()); + irr::core::rect sourcePos(0, 0, img->getHeight(), img->getLength()); + //this->driver->draw2DImage(images[img->objectid], destPos); + this->driver->draw2DImage(images[img->objectid], destPos); + //this->driver->draw2DImage(images[img->objectid], destPos, sourcePos, SColor(255, 255, 255, 255), true); +} + +void Irr2D::Draw2DObj(irr::core::stringc file) +{ + //NewtonObj tmp; + //tmp.irr_node = smgr->addMeshSceneNode(smgr->getMesh(file.c_str())->getMesh(0)); + //IMeshSceneNode* temp; + objects.push_back(smgr->addMeshSceneNode(smgr->getMesh(file.c_str())->getMesh(0))); + //objects.push_back(smgr->addMeshSceneNode(smgr->getMesh(file.c_str())->getMesh(0))); + objects[0]->setPosition(vector3df(-5,0,0)); + objects[0]->getMaterial(0).EmissiveColor.set(255,0,255,5); +} + +void Irr2D::DrawText(IrrText& txt) +{ + //txt.resetCounter(); + int offsetx = 0; + char nc; + for (int i = 0; i < txt.size(); ++i){ + irr::core::position2d destPos(txt.getX()+offsetx, txt.getY()); + offsetx += 18; + nc = txt.getChar(i); + switch (nc) + { + case '0': + #ifdef IRRDEBUG + cout << "0" << endl; + #endif + this->driver->draw2DImage(this->text[0], destPos); + break; + case '1': + #ifdef IRRDEBUG + cout << "1" << endl; + #endif + this->driver->draw2DImage(this->text[1], destPos); + break; + case '2': + #ifdef IRRDEBUG + cout << "2" << endl; + #endif + this->driver->draw2DImage(this->text[2], destPos); + break; + case '3': + #ifdef IRRDEBUG + cout << "3" << endl; + #endif + break; + case '4': + #ifdef IRRDEBUG + cout << "4" << endl; + #endif + break; + case '5': + #ifdef IRRDEBUG + cout << "5" << endl; + #endif + break; + case '6': + #ifdef IRRDEBUG + cout << "6" << endl; + #endif + break; + case '8': + #ifdef IRRDEBUG + cout << "7" << endl; + #endif + break; + case '9': + #ifdef IRRDEBUG + cout << "8" << endl; + #endif + break; + default: + cout << "Unrecongized Character!" << endl; + break; + } + } +} + diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Unstable Version/1.3.3/Irr2D.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Unstable Version/1.3.3/Irr2D.h Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,76 @@ +/* + Irrlicht Library Wrapper + Created by: + Nathan Adams + Copyright (C) 2008 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ + +#ifndef IRR2D_H +#define IRR2D_H +/* We should include some basic functions */ +#include +/* include strings */ +#include +#include + +/* We have to include Irrlichts libs */ +#include + +//#include "IrrLib.h" +#include "IrrSprite.h" +#include "IrrDefines.h" +#include "IrrText.h" + +class Irr2D: public IrrLibBase { + private: + //irr::scene::ISceneManager* smgr; + //irr::video::IVideoDriver* driver; + //Inherited from IrrLibBase + irr::video::ITexture* texturemap; + int numTextures; + //irr::video::ITexture* textures[10]; + std::vector textures; + std::vector > start; + std::vector > end; + std::vector color; + std::vector images; + std::vector text; + std::vector objects; + int numLines; + int nImages; + public: + //Irr2D::Irr2D(); + IrrSprite Sprite; + Irr2D(); + ~Irr2D(); + //void Irr2D::SetDriver(irr::video::IVideoDriver* driver); + //void Irr2D::SetSmgr(irr::scene::ISceneManager* smgr); + //Inherited from irrlibbase + Irr2DObj LoadTexturemap(irr::core::stringc file); + Irr2DObj LoadTexture(irr::core::stringc file); + //Has been renamed from LoadImage to LoadIrrImage due to conflict with windows API + void LoadIrrImage(Irr2DObj& in, irr::core::stringc file); + //void Irr2D::DrawImage(int texture, const irr::core::position2d & destPos); + //void Irr2D::DrawImage(IrrObj& img, irr::core::position2d& destPos); + void DrawImage(Irr2DObj& img); + void Draw2DObj(irr::core::stringc file); + //void Irr2D::MoveImage(IrrObj img, irr::core::dimension2d destPos); + //void Irr2D::MoveImage(IrrObj img, int x, int y); + //void Irr2D::DrawImage(const irr::core::position2d & destPos, const irr::core::rect & sourceRect, const irr::core::rect * clipRect, irr::video::SColor color, bool useAlphaChannelOfTexture); + //void Irr2D::DrawImage(const irr::core::position2d & destPos, const irr::core::rect & sourceRect, const irr::core::rect * clipRect, irr::video::SColor color, bool useAlphaChannelOfTexture); + //void Irr2D::DrawLine(irr::core::position2d& start, irr::core::position2d& end, irr::video::SColor& color); + void DrawLine(IrrPos& start, IrrPos& end, irr::video::SColor color); + void DrawLines(); + //void Irr2D::AddLines(irr::core::position2d& start, irr::core::position2d& end, irr::video::SColor& color); + void AddLines(IrrPos& start, IrrPos & end, irr::video::SColor color); + void DrawText(IrrText& txt); + void LoadText(); + //bool Irr2D::Collision(IrrObj obj1, IrrObj obj2); + //IrrObj Irr2D::LoadImageA(irr::core::stringc file); +}; + +#endif + diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Unstable Version/1.3.3/Irr2DLibObj.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Unstable Version/1.3.3/Irr2DLibObj.cpp Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,80 @@ +#include +#include "Irr2DLibObj.h" + +using namespace std; + +using namespace irr; +using namespace core; +using namespace scene; +using namespace video; +using namespace io; +using namespace gui; + +Irr2DLibObj::~Irr2DLibObj() +{ + //NewtonReleaseCollision(IrrPhysics::nworld, this->nwtn_collision); +} + +float Irr2DLibObj::getX() +{ + return this->x; +} + +float Irr2DLibObj::getY() +{ + return this->y; +} + +void Irr2DLibObj::setX(float cord) +{ + this->x = cord; +} + +void Irr2DLibObj::setY(float cord) +{ + this->y = cord; +} + +void createObject() +{ + //NewtonCreateBox(IrrPhysics::nworld, +} + +irr::core::vector3d Irr2DLibObj::getPosition() +{ + //this->nwtn_collision = + //int rl = this->getLength() / 2; + //int rh = this->getHeight() / 2; + //this->pos.set(this->x-rl, this->y-rh, 0); + float rx = this->x + (this->getLength() / 2); + float ry = this->y + (this->getHeight() / 2); + this->pos.set(rx, ry, 0); + //this->pos.set(this->x, this->y, 0); + return pos; +} + +NewtonCollision* Irr2DLibObj::getNewtonCollision() +{ + return this->nwtn_collision; +} + +s32 Irr2DLibObj::getHeight() +{ + return this->height; +} + +s32 Irr2DLibObj::getLength() +{ + return this->length; +} + +void Irr2DLibObj::setHeight(s32 h) +{ + this->height = h; +} + +void Irr2DLibObj::setLength(s32 l) +{ + this->length = l; +} + diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Unstable Version/1.3.3/Irr2DLibObj.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Unstable Version/1.3.3/Irr2DLibObj.h Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,31 @@ +#ifndef IRR2DLIBOBJ_H +#define IRR2DLIBOBJ_H +#include +#include + +class Irr2DLibObj { +private: + float x; + float y; + NewtonCollision *nwtn_collision; + irr::core::vector3d pos; + irr::s32 height; + irr::s32 length; +public: + int eventid; + int objectid; + float getX(); + float getY(); + void createObject(); + ~Irr2DLibObj(); + irr::s32 getHeight(); + irr::s32 getLength(); + void setHeight(irr::s32 h); + void setLength(irr::s32 l); + void setX(float cord); + void setY(float cord); + irr::core::vector3d getPosition(); + NewtonCollision* getNewtonCollision(); +}; + +#endif diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Unstable Version/1.3.3/Irr3D.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Unstable Version/1.3.3/Irr3D.cpp Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,51 @@ +/* + Irrlicht Library Wrapper + Created by: + Nathan Adams + Copyright (C) 2008 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ + +#include +#include + +//#include "IrrLib.h" +//Libraries we create go here +#include "IrrSphere.h" +//#include "IrrColor.h" +#include "Irr3D.h" +#include +//#include "Irr2D.h" + +using namespace irr; +using namespace core; +using namespace scene; +using namespace video; +using namespace io; +using namespace gui; + +using namespace std; + +/*void Irr3D::SetDriver(irr::video::IVideoDriver* driver) //so much for copying and pasting code from the header file +{ + this->driver = driver; + Sphere.SetDriver(driver); +} + +void Irr3D::SetSmgr(irr::scene::ISceneManager* smgr) +{ + this->smgr = smgr; + Sphere.SetSmgr(smgr); +}*/ + +Irr3D::Irr3D() +{ + //do stuff here! +} + +Irr3D::~Irr3D() +{ + //delete stuff here! +} diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Unstable Version/1.3.3/Irr3D.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Unstable Version/1.3.3/Irr3D.h Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,43 @@ +/* + Irrlicht Library Wrapper + Created by: + Nathan Adams + Copyright (C) 2008 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ + +#ifndef IRR3D_H +#define IRR3D_H + +/* We should include some basic functions */ +#include +/* include strings */ +#include + +/* We have to include Irrlichts libs */ +#include + +#include "IrrSphere.h" +//#include "IrrColor.h" +//#include "Irr3D.h" +//#include "Irr2D.h" This is a 3D class not 2D +/* However due to Irrlciht's nature mixing 2D with 3D is possible */ + +//Start class +class Irr3D: public IrrLibBase { + + private: + + //irr::video::IVideoDriver* driver; + //irr::scene::ISceneManager* smgr; + public: + IrrSphere Sphere; + Irr3D(); + ~Irr3D(); + //void Irr3D::SetDriver(irr::video::IVideoDriver* driver); + //void Irr3D::SetSmgr(irr::scene::ISceneManager* smgr); +}; + +#endif diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Unstable Version/1.3.3/Irr3DLibObj.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Unstable Version/1.3.3/Irr3DLibObj.cpp Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,93 @@ +/* + Irrlicht Library Wrapper + Created by: + Nathan Adams + Copyright (C) 2008 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ + +#include +#include +#include +#include + +#include "Irr3DLibObj.h" +#include "IrrPhysics.h" +#include "IrrFunctions.h" +#include "IrrLib.h" +//#include "IrrDevices.h" + +using namespace irr; +using namespace core; +using namespace scene; +using namespace video; +using namespace io; +using namespace gui; + +using namespace std; + +Irr3DLibObj::Irr3DLibObj() +{ + this->col.a = 0; + this->col.b = 0; + this->col.g = 0; + this->col.r = 0; +} + +void Irr3DLibObj::setColor(Irr3DObjColor col) +{ + this->col.a = col.a; + this->col.b = col.b; + this->col.g = col.g; + this->col.r = col.r; +} + +/*Irr3DLibObj::Irr3DLibObj(IrrLib &irr, Irr3DLibObjColor col) +{ + this->col.a = col.a; + this->col.r = col.r; + this->col.g = col.g; + this->col.b = col.b; +}*/ + +IMeshSceneNode* Irr3DLibObj::getSceneNode() +{ + return this->irr_node; +} + +NewtonCollision* Irr3DLibObj::getNewtonCollision() +{ + return this->nwtn_collision; +} + +void Irr3DLibObj::setMesh(irr::core::stringc strng) +{ + this->texture = strng; +} + +void Irr3DLibObj::Move(Irr3DPos pos) +{ + this->irr_node->setPosition(vector3df(pos.x, pos.y, pos.z)); +} + +void Irr3DLibObj::addToScene() +{ + if (this->texture == "") + { + cout << "Material not set for this object" << endl; + return; + } + if (IrrLib::device == NULL) + cout << "Device is null!" << endl; + else { + ISceneManager* smgr = IrrLib::device->getSceneManager(); + //this->irr_node = this->device->getSceneManager->addMeshSceneNode(this->device->getSceneManager->getMesh(this->texture.c_str())->getMesh(0)); + this->irr_node = smgr->addMeshSceneNode(smgr->getMesh(this->texture.c_str())->getMesh(0)); + this->irr_node->getMaterial(0).EmissiveColor.set(this->col.a, this->col.r, this->col.g, this->col.b); + //cout << col.a << endl; + this->nwtn_collision = CreateCollisionFromMesh(this->irr_node->getMesh()); + } + +} diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Unstable Version/1.3.3/Irr3DLibObj.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Unstable Version/1.3.3/Irr3DLibObj.h Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,52 @@ +/* + Irrlicht Library Wrapper + Created by: + Nathan Adams + Copyright (C) 2008 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ + +#ifndef IRR3DLIBOBJ_H +#define IRR3DLIBOBJ_H +/* We have to include Irrlichts libs */ + +#include +#include +#include "IrrLibBase.h" +//class IrrLib; +//#include "IrrData.h" +#include "Irr3DObjColor.h" +#include "Irr3DPos.h" + + +//class Irr3DLibObj; +//class IrrLib; +//#include "IrrLib.h" +//class Irr3DPos; +class IrrLib; + +class Irr3DLibObj: public IrrLibBase { + + private: + IrrLib * Irrlicht; + irr::scene::IMeshSceneNode *irr_node; + NewtonCollision *nwtn_collision; + irr::core::stringc texture; + Irr3DObjColor col; + public: + Irr3DLibObj(); + void Move(Irr3DPos pos); + void addToScene(); + void createNewObj(); //Not implmented? + void setMesh(irr::core::stringc strng); + void setPosition(Irr3DPos pos); //Not implmented? + void setColor(Irr3DObjColor col); + void setPosition(irr::u32 x, irr::u32 y, irr::u32 z); //Not implmented? + irr::scene::IMeshSceneNode* getSceneNode(); + NewtonCollision* getNewtonCollision(); +}; + + +#endif diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Unstable Version/1.3.3/Irr3DObjColor.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Unstable Version/1.3.3/Irr3DObjColor.h Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,12 @@ +#ifndef IRR3DOBJCOLOR_H +#define IRR3DOBJCOLOR_H +#include + +struct Irr3DObjColor { + irr::u32 r; + irr::u32 g; + irr::u32 b; + irr::u32 a; +}; + +#endif diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Unstable Version/1.3.3/Irr3DPos.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Unstable Version/1.3.3/Irr3DPos.h Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,10 @@ +#ifndef IRR3DPOS_H +#define IRR3DPOS_H + +struct Irr3DPos { + int x; + int y; + int z; +}; + +#endif diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Unstable Version/1.3.3/IrrColor.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Unstable Version/1.3.3/IrrColor.cpp Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,112 @@ +/* + Irrlicht Library Wrapper + Created by: + Nathan Adams + Copyright (C) 2008 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ + +#include +#include +#include + +//#include "IrrLib.h" +#include "IrrColor.h" + +using namespace irr; +using namespace core; +using namespace scene; +using namespace video; +using namespace io; +using namespace gui; + +using namespace std; + +void IrrColor::Init(){ + /*SColor * temp; + temp = new SColor(alpha, 255, 0, 0); + this->RED = temp; + delete temp;*/ + this->RED = SColor(alpha, 255, 0, 0); + this->ORANGE = SColor(alpha, 255, 165, 0); + this->YELLOW = SColor(alpha, 255, 255, 0); + this->GREEN = SColor(alpha, 0, 255, 0); + this->BLUE = SColor(alpha, 0, 0, 255); + this->DARK_GREEN = SColor(alpha, 0, 100, 0); + this->PINK = SColor(alpha, 255, 192, 203); + this->GREY = SColor(alpha, 190, 190, 190); + this->WHITE = SColor(alpha, 0, 0, 0); + this->BLACK = SColor(alpha, 0, 0, 0); +} + +IrrColor::~IrrColor(){ + /*delete this->RED; + delete this->ORANGE; + delete this->YELLOW; + delete this->GREEN; + delete this->BLUE; + delete this->DARK_GREEN; + delete this->PINK; + delete this->GREY; + delete this->WHITE; + delete this->BLACK;*/ +} + +IrrColor::IrrColor(){ + this->alpha = 255; + Init(); +} + +IrrColor::IrrColor(irr::u32 alpha){ + this->alpha = alpha; + Init(); +} + +int IrrColor::getAlpha(){ + return this->alpha; +} + +void IrrColor::setAlpha(int alpha){ + this->alpha = alpha; +} + +SColor IrrColor::returnColor(stringw color){ + int nColor = -1; + if (color == "red") + nColor = 1; + else if (color == "green") + nColor = 2; + else if (color == "blue") + nColor = 3; + else if (color == "dark green") + nColor = 4; + else if (color == "pink") + nColor = 5; + else if (color == "grey") + nColor = 6; + switch (nColor){ + case 1: + return SColor(255, 255, 0, 0); + break; + case 2: + return SColor(255, 0, 255, 0); + break; + case 3: + return SColor(255, 0, 0, 255); + break; + case 4: + return SColor(255, 0, 50, 0); + break; + case 5: + return SColor(255, 255, 10, 255); + break; + case 6: + return SColor(255,200,200,200); + break; + default: + return SColor(255,200,200,200); + break; + }// TODO: Make this function modular +} diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Unstable Version/1.3.3/IrrColor.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Unstable Version/1.3.3/IrrColor.h Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,52 @@ +/* + Irrlicht Library Wrapper + Created by: + Nathan Adams + Copyright (C) 2008 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ + +#ifndef IRRCOLOR_H +#define IRRCOLOR_H + +#include +#include +#include "irrlicht.h" +//#include "IrrLib.h" + +class IrrColor { + private: + irr::u32 alpha; + void Init(); + //who knows? + public: + //irr::video::SColor(alpha, 255, 0, 0); + irr::video::SColor RED; + irr::video::SColor ORANGE; + irr::video::SColor YELLOW; + irr::video::SColor GREEN; + irr::video::SColor BLUE; + irr::video::SColor DARK_GREEN; + irr::video::SColor PINK; + irr::video::SColor GREY; + irr::video::SColor WHITE; + irr::video::SColor BLACK; + /*const ORANGE = irr::video::SColor(alpha, 255, 165, 0); + const YELLOW = irr::video::SColor(alpha, 255, 255, 0); + const GREEN = irr::video::SColor(alpha, 0, 255, 0); + const BLUE = irr::video::SColor(alpha, 0, 0, 255); + const DARK_GREEN = irr::video::SColor(alpha, 0, 100, 0); + const PINK = irr::video::SColor(alpha, 255, 192, 203); + const GREY = irr::video::Scolor(alpha, 190, 190, 190);*/ + //void IrrColor::test(); + IrrColor(); + IrrColor(irr::u32 alpha); + ~IrrColor(); + int getAlpha(); + void setAlpha(int alpha); + irr::video::SColor returnColor(irr::core::stringw color); +}; + +#endif diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Unstable Version/1.3.3/IrrDefines.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Unstable Version/1.3.3/IrrDefines.h Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,20 @@ +#ifndef IRRDEFINES_H +#define IRRDEFINES_H + +//#include "IrrData.h" +#include "IrrObj.h" +#include "IrrLibObj.h" +#include "IrrGUIStruct.h" +#include "Irr3DObjColor.h" +#include "Irr3DLibObj.h" +#include "Irr2DLibObj.h" +typedef IrrObj Irr2DObj; +typedef IrrObj IrrGUIObj; +typedef IrrObj IrrEventObj; +typedef IrrObj Irr3DSphere; +typedef IrrObj Irr3DObj; + +typedef irr::core::dimension2d PixelSize; +typedef irr::core::position2d IrrPos; + +#endif diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Unstable Version/1.3.3/IrrDevices.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Unstable Version/1.3.3/IrrDevices.h Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,24 @@ +/* + Irrlicht Library Wrapper + Created by: + Nathan Adams + Copyright (C) 2008 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ + +#ifndef IRRDEVICES_H +#define IRRDEVICES_H + +class IrrDevices { + public: + static irr::video::IVideoDriver* getDriver(); + static irr::scene::ISceneManager* getSmgr(); + static irr::IrrlichtDevice* getDevice(); + static irr::video::IVideoDriver* driver; + static irr::scene::ISceneManager* smgr; + static irr::IrrlichtDevice *device; +}; + +#endif diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Unstable Version/1.3.3/IrrEventReciever.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Unstable Version/1.3.3/IrrEventReciever.cpp Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,196 @@ +/* + Irrlicht Library Wrapper + Created by: + Nathan Adams + Copyright (C) 2008 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ + +#include "IrrEventReciever.h" +#include "IrrLib.h" +//#include "IrrLib.h" +#include +#include + +using namespace irr; +using namespace core; +using namespace scene; +using namespace video; +using namespace io; +using namespace gui; + +using namespace std; + +/*void IrrEventReciever::setIrrLib(IrrLib& IrrLib) +{ + this.callingIrrLib = IrrLib; +}*/ + +IrrEventReciever::IrrEventReciever() +{ + this->escexit = true; + this->mouse.x = 0; + this->mouse.y = 0; + for(int i = 0; i < irr::KEY_KEY_CODES_COUNT; i++) + keyStates[i] = false; + this->device = IrrLib::device; +} + +#if IRRVER == 131 + bool IrrEventReciever::OnEvent(SEvent event) +#else + bool IrrEventReciever::OnEvent(const SEvent &event) +#endif +{ + // A button was clicked + if (event.EventType == irr::EET_GUI_EVENT) + { + s32 id = event.GUIEvent.Caller->getID(); + switch(event.GUIEvent.EventType){ + case EGET_BUTTON_CLICKED: + //cout << id << endl; + buttonStates.push_back(id); + break; + case EGET_LISTBOX_CHANGED: + //s32 id = event.GUIEvent.Caller->getID(); + listStates.push_back(id); + break; + case EGET_LISTBOX_SELECTED_AGAIN: + listStates.push_back(id); + break; + default: + break; + } + } + /*if (event.EventType == irr::EGET_SCROLL_BAR_CHANGED) + { + + }*/ + if (event.EventType == irr::EET_KEY_INPUT_EVENT) { + if (!event.KeyInput.PressedDown){ + this->keyStates[event.KeyInput.Key] = false; + //cout << "Key was not hit " << this->keyStates[event.KeyInput.Key] << endl; + } + else{ + if(event.KeyInput.Key == KEY_ESCAPE && escexit) + IrrLib::device->closeDevice(); + this->keyStates[event.KeyInput.Key] = true; + //cout << "Key was hit: " << event.KeyInput.Key << " " << this->keyStates[event.KeyInput.Key] << endl; + } + } + if (event.EventType == EET_MOUSE_INPUT_EVENT){ + if (event.MouseInput.Event == EMIE_MOUSE_MOVED){ + this->mouse.x = event.MouseInput.X; + this->mouse.y = event.MouseInput.Y; + } + if (event.MouseInput.Event == EMIE_LMOUSE_PRESSED_DOWN) + this->mouseStates[0] = true; + if (event.MouseInput.Event == EMIE_LMOUSE_LEFT_UP) + this->mouseStates[0] = false; + } + return false; +} + +void IrrEventReciever::SetEscExit(bool onoff) +{ + this->escexit = onoff; +} + +int IrrEventReciever::getMouseX() +{ + return this->mouse.x; +} + +int IrrEventReciever::getMouseY() +{ + return this->mouse.y; +} + +int IrrEventReciever::getButtonState() +{ + if(!this->buttonStates.empty()){ + int id; + id = buttonStates.back(); + this->buttonStates.pop_back(); + return id; + } + else + return -1; +} + +int IrrEventReciever::getRevButtonState() +{ + if(!this->buttonStates.empty()){ + int id = buttonStates.front(); + this->buttonStates.erase(buttonStates.begin()); + return id; + } + else + return -1; +} + +void IrrEventReciever::clearButtonState() +{ + this->buttonStates.clear(); +} + +int IrrEventReciever::checkButtonState(IrrEventObj obj) +{ + if(!this->buttonStates.empty()){ + int tmp = this->buttonStates.back(); + if (tmp == obj->eventid) + { + this->delLastButtonState(); + return 1; + } + else + { + return 0; + } + } + else + { + return -1; + } +} + +void IrrEventReciever::delLastButtonState() +{ + if(!this->buttonStates.empty()) + this->buttonStates.pop_back(); +} + +bool IrrEventReciever::isButtonStateEmpty() +{ + return this->buttonStates.empty(); +} + +int IrrEventReciever::checkListState(IrrEventObj obj) +{ + if(!this->listStates.empty()) + { + int tmp = this->listStates.back(); + //cout << tmp << endl; + if (tmp == obj->eventid) + { + this->delLastListState(); + return 1; + } + else + { + return 0; + } + } + else + { + return 0; + } +} + +void IrrEventReciever::delLastListState() +{ + if(!this->listStates.empty()) + this->listStates.pop_back(); +} diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Unstable Version/1.3.3/IrrEventReciever.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Unstable Version/1.3.3/IrrEventReciever.h Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,57 @@ +/* + Irrlicht Library Wrapper + Created by: + Nathan Adams + Copyright (C) 2008 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ + +#ifndef IRREVENTRECIEVER_H +#define IRREVENTRECIEVER_H + +//#include "IrrLib.h" +#include +#include +#include "IrrLibBase.h" +#include "IrrDefines.h" +#include +#include "_mouse.h" + + + +class IrrEventReciever : public irr::IEventReceiver, public IrrLibBase +{ + private: + //IrrLib callingIrrLib; + _mouse mouse; + bool escexit; + std::vector buttonStates; + std::vector listStates; + irr::IrrlichtDevice *device; + public: + //IrrEventReciever(); + bool mouseStates[1]; + IrrEventReciever(); + int getMouseX(); + int getMouseY(); + bool keyStates[irr::KEY_KEY_CODES_COUNT]; + //void setIrrLib(IrrLib& IrrLib) + #if IRRVER == 131 + virtual bool OnEvent(irr::SEvent event); + #else + virtual bool OnEvent(const irr::SEvent &event); + #endif + void SetEscExit(bool onoff); + int getButtonState(); + int getRevButtonState(); + void clearButtonState(); + int checkButtonState(IrrEventObj obj); + void delLastButtonState(); + bool isButtonStateEmpty(); //is there still stuff in the vector to be done? NA + int checkListState(IrrEventObj obj); + void delLastListState(); +}; + +#endif diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Unstable Version/1.3.3/IrrFunctions.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Unstable Version/1.3.3/IrrFunctions.cpp Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,213 @@ +#include "IrrFunctions.h" +#include +#include +#include +#include "IrrDefines.h" +#include "IrrPhysics.h" +#include + +using namespace std; + +using namespace irr; +using namespace core; +using namespace scene; +using namespace video; +using namespace io; +using namespace gui; + +int CheckForCollision(Irr2DObj& obj_A, Irr2DObj& obj_B) +{ +const int nContacts = 4; +float contacts[3 * nContacts]; +float normals[3 * nContacts]; +float penetration[3 * nContacts ]; + +//dMatrix t1, t2; +const float NewtonToIrr = 32.0f; +const float IrrToNewton = (1.0f / NewtonToIrr); + +matrix4 mat_A,mat_B; +mat_A.makeIdentity(); +mat_B.makeIdentity(); +mat_A.setTranslation(obj_A->getPosition()); +mat_B.setTranslation(obj_B->getPosition()); + +NewtonCollision* obj1_col = NewtonCreateBox(IrrPhysics::nworld, (obj_A->getLength()), obj_A->getHeight(), 1, NULL); +NewtonCollision* obj2_col = NewtonCreateBox(IrrPhysics::nworld, (obj_B->getLength()), obj_B->getHeight(), 1, NULL); + +//NewtonCollision* obj2_col = NewtonCreateBox(IrrPhysics::nworld, 2, 10, 1, NULL); +//NewtonBody* obj1 = NewtonCreateBody(IrrPhysics::nworld, obj1_col); +//NewtonBody* obj2 = NewtonCreateBody(IrrPhysics::nworld, obj2_col); + +//NewtonBodyGetMatrix( obj1, &t1[0][0] ); +//NewtonBodyGetMatrix( obj2, &t2[0][0] ); + +//Check for collision between collision meshes, +// returns number of contact points +int nHits = NewtonCollisionCollide( IrrPhysics::nworld,nContacts, + obj1_col, (float*)&mat_A, + obj2_col, (float*)&mat_B, + contacts, + normals, + penetration); + + +NewtonReleaseCollision(IrrPhysics::nworld, obj1_col); +NewtonReleaseCollision(IrrPhysics::nworld, obj2_col); +//Collision detected if nHits > 0 +/*if( nHits > 0) +return true; +return false;*/ +//NewtonDestroyBody(IrrPhysics::nworld, obj1); +//NewtonDestroyBody(IrrPhysics::nworld, obj2); +return nHits; + +} + +int CheckForCollision(Irr3DObj& obj_A, Irr3DObj& obj_B) +{ +//Matrix to store irr_node position +matrix4 mat_A,mat_B; + +//Copy position +mat_A.makeIdentity(); +mat_B.makeIdentity(); + +mat_A.setTranslation(obj_A->getSceneNode()->getPosition()); +mat_B.setTranslation(obj_B->getSceneNode()->getPosition()); + +const int nContacts = 2; +float contacts[3 * nContacts]; +float normals[3 * nContacts]; +float penetration[ nContacts ]; + +//Check for collision between collision meshes, +// returns number of contact points +int nHits = NewtonCollisionCollide( IrrPhysics::nworld,nContacts, + + obj_A->getNewtonCollision(), (float*)&mat_A[0], + obj_B->getNewtonCollision(), (float*)&mat_B[0], + contacts, + normals, + penetration); +//Collision detected if nHits > 0 +/*if( nHits > 0) +return true; +return false;*/ +return nHits; + +} + +//Function to create a NewtonCollision from irrlicht mesh with tree optimization +NewtonCollision * CreateTreeCollisionFromMesh(IMesh *irr_mesh ) +{ +//Create new (tree optimized) collision mesh +NewtonCollision *collision_obj = NewtonCreateTreeCollision(IrrPhysics::nworld ,NULL); + +//Begin collision mesh construction +NewtonTreeCollisionBeginBuild(collision_obj); + +int nMeshBuffer = 0; //Mesh Buffer count +int v_index[3] = {0,0,0}; //vertex indices +IMeshBuffer *mesh_buffer = NULL; +float array[9]; //Array to store 3 vertices + +//Get (irr_)mesh buffers and copy face by face to collision mesh +for( nMeshBuffer=0 ; nMeshBuffer < irr_mesh->getMeshBufferCount() ; nMeshBuffer++ ) +{ +mesh_buffer = irr_mesh->getMeshBuffer(nMeshBuffer); + +//Get pointer to vertices and indices +S3DVertex *vertices = (S3DVertex*)mesh_buffer->getVertices(); +u16 *indices = mesh_buffer->getIndices(); + +//Fill collision mesh +for(int i=0; igetIndexCount(); i+=3) +{ +v_index[0] = indices[ i ]; +v_index[1] = indices[i+1]; +v_index[2] = indices[i+2]; + +// 1st position vertex +array[0] = vertices[ v_index[0] ].Pos.X; +array[1] = vertices[ v_index[0] ].Pos.Y; +array[2] = vertices[ v_index[0] ].Pos.Z; + +// 2nd position vertex +array[3] = vertices[ v_index[1] ].Pos.X; +array[4] = vertices[ v_index[1] ].Pos.Y; +array[5] = vertices[ v_index[1] ].Pos.Z; + +// 3rd position vertex +array[6] = vertices[ v_index[2] ].Pos.X; +array[7] = vertices[ v_index[2] ].Pos.Y; +array[8] = vertices[ v_index[2] ].Pos.Z; + +//Add new face to collision mesh +NewtonTreeCollisionAddFace(collision_obj, //collision mesh to add face to + + 3, //number of vertices in array + (float*)array, //pointer to vertex array + 3*sizeof(float),//size of each vertex + 1); //ID of the face + +} +} +//End collision contruction , set 1 as 2dn param for optimization +NewtonTreeCollisionEndBuild(collision_obj,0); + +return collision_obj; + +} + +//Function to create a NewtonCollision from irrlicht mesh +NewtonCollision * CreateCollisionFromMesh(IMesh *irr_mesh ) +{ +int nMeshBuffer = 0; //Mesh Buffer count +IMeshBuffer *mesh_buffer = NULL; +float *vertices; //Array to store vertices + +u32 nVertices = 0; + +//Get number of vertices +for( nMeshBuffer=0 ; nMeshBuffer < irr_mesh->getMeshBufferCount() ; nMeshBuffer++ ) +{ +nVertices += irr_mesh->getMeshBuffer(nMeshBuffer)->getVertexCount(); +} + + +//create buffer for vertices +vertices = new float[nVertices * 3]; +u32 tmpCounter = 0; + +//Get (irr_)mesh buffers and copy face vertices +for( nMeshBuffer=0 ; nMeshBuffer < irr_mesh->getMeshBufferCount() ; nMeshBuffer++ ) +{ + + mesh_buffer = irr_mesh->getMeshBuffer(nMeshBuffer); + + //Get pointer to vertices and indices + S3DVertex *S3vertices = (S3DVertex*)mesh_buffer->getVertices(); + + +//copy vertices from mesh to buffer +for(int i=0; igetVertexCount(); i++) +{ + + vertices[tmpCounter++] = S3vertices[i].Pos.X; + vertices[tmpCounter++] = S3vertices[i].Pos.Y; + vertices[tmpCounter++] = S3vertices[i].Pos.Z; + + } + +} + +//Create Newton collision object +NewtonCollision *collision_obj = NewtonCreateConvexHull(IrrPhysics::nworld,nVertices,vertices,sizeof(float)*3,NULL); + +//delete vertices +delete [] vertices; + +return collision_obj; + +} diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Unstable Version/1.3.3/IrrFunctions.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Unstable Version/1.3.3/IrrFunctions.h Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,13 @@ +#ifndef IRRFUNCTIONS_H +#define IRRFUNCTIONS_H + + +//#include "IrrObj.h" +#include "IrrDefines.h" + //void test(Irr3DObj obj_A, Irr3DObj obj_B); + int CheckForCollision(Irr3DObj& obj_A, Irr3DObj& obj_B); + NewtonCollision * CreateTreeCollisionFromMesh(irr::scene::IMesh *irr_mesh ); + NewtonCollision * CreateCollisionFromMesh(irr::scene::IMesh *irr_mesh ); + int CheckForCollision(Irr2DObj& obj_A, Irr2DObj& obj_B); + +#endif diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Unstable Version/1.3.3/IrrGUIStruct.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Unstable Version/1.3.3/IrrGUIStruct.h Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,10 @@ +#ifndef IRRGUISTRUCT_H +#define IRRGUISTRUCT_H + +struct IrrGUIStruct { + int eventid; + int objectid; +}; + +#endif + diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Unstable Version/1.3.3/IrrLib.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Unstable Version/1.3.3/IrrLib.cpp Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,318 @@ +/* + Irrlicht Library Wrapper + Created by: + Nathan Adams + Copyright (C) 2008 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ + +#include +#include +#include +#include +#include + +#include "IrrLib.h" +//Libraries we create go here +//#include "IrrSphere.h" +#include "IrrColor.h" +//class IrrDevices; +#include "IrrDevices.h" +//#include "Irr2D.h" + +using namespace irr; +using namespace core; +using namespace scene; +using namespace video; +using namespace io; +using namespace gui; + +using namespace std; + + +/*IrrLib::IrrLib(MastEventReceiver & receiver){ + this->device = createDevice(EDT_SOFTWARE, dimension2d(640, 480), 16, false, false, false, &receiver); + if (this->device == 0) + exit(1); + IrrLib::Init(); +}*/ + +IrrlichtDevice *IrrLib::device; + +IrrLib::IrrLib(){ + IrrLib::device = createDevice(EDT_SOFTWARE, dimension2d(640, 480), 16, false, false, false, &this->IrrEvent); + if (IrrLib::device == 0) + exit(1); + IrrLib::Init(); +} + +IrrLib::IrrLib(video::E_DRIVER_TYPE drivertype, core::dimension2d & res, u32 bits, bool fullscreen, bool stencilbuffer, bool vsync){ + //MyEventReceiver receiver; + IrrLib::device = createDevice(drivertype, res, bits, fullscreen, stencilbuffer, vsync, &this->IrrEvent); + if (IrrLib::device == 0) + exit(1); + IrrLib::Init(); +} + +IrrLib::IrrLib(int nDrivertype, int width, int height, int bits, bool fullscreen, bool stencilbuffer, bool vsync){ + //MyEventReceiver receiver; + video::E_DRIVER_TYPE drivertype; + switch (nDrivertype){ + case 0: //TODO: finish this switch case + drivertype = EDT_NULL; + break; + case 1: + drivertype = EDT_SOFTWARE; + break; + case 2: + drivertype = EDT_BURNINGSVIDEO; + break; + case 3: + drivertype = EDT_OPENGL; + break; + case 4: + #if DX8 == 1 + drivertype = EDT_DIRECT3D8; + #else + drivertype = EDT_OPENGL; + #endif + //*Note: It seems as Microsoft has stoped supporting DX 8.1, so you can not compile it into Irrlicht engine anymore + //TODO: Find how to detect if DX is complied into Irrlicht + //TODO: Find how to detecht for linux + break; + case 5: + #if DX9 == 1 + drivertype = EDT_DIRECT3D9; + #else + drivertype = EDT_OPENGL; + #endif + break; + default: + drivertype = EDT_SOFTWARE; + break; + } + IrrLib::device = createDevice(drivertype, dimension2d(width, height), bits, fullscreen, stencilbuffer, vsync, &this->IrrEvent); + if (IrrLib::device == 0) + exit(1); + IrrLib::Init(); +} + +IrrLib::~IrrLib (){ //Our moms wont clean up after us! + //Although I'm sure Irrlicht does this for us already, its always a good idea to check! + /*if (this->device != NULL) + delete this->device; + if (this->driver != NULL) + delete this->driver; + if (this->smgr != NULL) + delete this->smgr; + if (this->mesh != NULL) + delete this->mesh; + if (this->node != NULL) + delete this->node;*/ //it seems Irrlicht picks up after us... + //however we created newNodes, now we need to delete it! +// NewtonReleaseCollision(nworld, sphere.nwtn_collision); +// NewtonReleaseCollision(nworld, cube.nwtn_collision); + //NewtonDestroy(IrrPhy.nworld); + +} + +void IrrLib::Init(){ + //this->numNodes = 0; + //this->nodeNew = new ISceneNode[10]; + //this->env->addStaticText(L"Transparent Control:", rect(20,30,300,80), true); + this->env = this->device->getGUIEnvironment(); + this->driver = this->device->getVideoDriver(); + this->smgr = this->device->getSceneManager(); + //IrrDevices::driver = this->driver; + //IrrDevices::smgr = this->smgr; + Irr3DLib.SetSmgr(this->smgr); + Irr3DLib.SetDriver(this->driver); + Irr2DLib.SetSmgr(this->smgr); + Irr2DLib.SetDriver(this->driver); +// Irr + + Irr2DLib.LoadText(); + //IrrEvent.SetDevice(this->device); + //Irr2DObj.SetDriver(this->device); + GUI.SetEnv(this->env); + //IrrEvent.SetDevice(this->device); + this->timer = this->device->getTimer(); + tick = this->timer->getRealTime(); + +} + +void IrrLib::ReadArchive(stringc file){ + this->device->getFileSystem()->addZipFileArchive(file.c_str()); +} + +void IrrLib::LoadQ3Level(stringc q3level){ + this->mesh = this->smgr->getMesh(q3level.c_str()); + this->node = 0; + if (this->mesh) + this->node = this->smgr->addOctTreeSceneNode(this->mesh->getMesh(0), 0, -1, 128); +} + +void IrrLib::MapPos(int x, int y, int z){ + if (this->node) + this->node->setPosition(core::vector3df(x, y, z)); +} + +void IrrLib::MapPos(){ + if (this->node) + this->node->setPosition(core::vector3df(0, 0, 0)); +} + +void IrrLib::AddFPSCam(){ + this->cam = this->smgr->addCameraSceneNodeFPS(); +} + +void IrrLib::AddFPSCam(f32 x, f32 y, f32 z) +{ + this->cam = this->smgr->addCameraSceneNodeFPS(); + this->cam->setPosition(irr::core::vector3df(x, y, z)); +} + +void IrrLib::VisibleCursor(bool tf){ + if (tf == false) + this->device->getCursorControl()->setVisible(false); + else + this->device->getCursorControl()->setVisible(true); +} + +int IrrLib::GetFPSCount(){ + return this->driver->getFPS(); +} + +bool IrrLib::DeviceIsRunning(){ + return this->device->run(); +} + +bool IrrLib::IsActiveWindow(){ + return this->device->isWindowActive(); +} + +void IrrLib::BeginScene(){ + this->driver->beginScene(true, true, video::SColor(0,200,200,200)); + //smgr->addCameraSceneNode(0, vector3df(0,1,-7), vector3df(0,0,0)); +} + +void IrrLib::BeginScene(irr::video::SColor color){ + this->driver->beginScene(true, true, color); +} + +void IrrLib::BeginScene(bool usebackBuffer, bool usezBuffer, irr::video::SColor color){ + this->driver->beginScene(usebackBuffer, usezBuffer, color); +} + +void IrrLib::DrawAll(){ + //position2d start(50, 50); + //position2d end(100,100); + // SColor whitecolor(255,255,255,255); +//driver->draw2DLine(start, end, whitecolor); + this->env->drawAll(); + this->smgr->drawAll(); + /*gui::IGUIFont* font = device->getGUIEnvironment()->getBuiltInFont(); + if (font) + font->draw(L"This demo shows that Irrlicht is also capable of drawing 2D graphics.", + core::rect(130,10,300,50), + video::SColor(255,255,255,255)); + if (font) + font->draw(L"This demo shows that Irrlicht is also capable of drawing 2D graphics.", + core::rect(300,10,420,50), + video::SColor(255,255,255,255));*/ + + //this->device->getGUIEnvironment()->drawAll(); + } + +void IrrLib::EndScene(){ + this->driver->endScene(); +} + +void IrrLib::SetWindowCaption(stringw str){ + this->device->setWindowCaption(str.c_str()); +} + +irr::core::stringw IrrLib::GetDriverName(){ + return this->driver->getName(); +} + +void IrrLib::EndIrrlicht(){ + if(this->device != NULL){ + this->device->drop(); + this->device = NULL; + } +} + +void IrrLib::KeyPress(char key){ + this->key = key; +} + +char IrrLib::KeyPressed(){ + return key; +} + +irr::f32 IrrLib::getX(){ + return this->smgr->getActiveCamera()->getPosition().X; +} + +irr::f32 IrrLib::getY(){ + return this->smgr->getActiveCamera()->getPosition().Y; +} + +irr::f32 IrrLib::getZ(){ + return this->smgr->getActiveCamera()->getPosition().Z; +} + +bool IrrLib::CheckGameLoop(){ + u32 now; + now = this->timer->getRealTime(); + if ((now - this->tick) >= 30){ + this->tick = now; + //this->tick == time (NULL); + return true; + } else { + return false; + } +} + +bool IrrLib::CheckGameLoop(u32 ms){ + u32 now; + now = this->timer->getRealTime(); + if ((now - this->tick) >= ms){ + this->tick = now; + return true; + } else { + return false; + } +} + +void IrrLib::Exit() +{ + this->device->closeDevice(); +} + +PixelSize IrrLib::GetScreenSize() +{ + return this->driver->getScreenSize(); + /*pixels returnres; + returnres.width = screenres.Width; + returnres.height = screenres.Height; + return returnres;*/ + +} + +void IrrLib::AddCamera(core::vector3df pos, core::vector3df lookat) +{ + this->smgr->addCameraSceneNode(0, pos, lookat); +} + +//template std::string IrrLib::to_string (T t) +/*std::string IrrLib::int_to_string (int t) +{ + std::stringstream ss; + ss << t; + return ss.str(); +}*/ +// This is in the base class now, every class that decends from that class has this ability. diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Unstable Version/1.3.3/IrrLib.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Unstable Version/1.3.3/IrrLib.h Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,153 @@ +/* + Irrlicht Library Wrapper + Created by: + Nathan Adams + Copyright (C) 2008 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ + +#ifndef IRRLIB_H +#define IRRLIB_H + +#ifndef IRRVER +#define IRRVER 14 +//2 Versions +// 14 or 131 +//Different version due to different implmenation of eventreciever +#endif + +/* We should include some basic functions */ +#include +/* include strings */ +#include +#include +#include + +/* We have to include Irrlichts libs */ +/*class Irr3D; +class IrrColor; +class IrrLibGUI; +class IrrEventReciever; +class Irr2D; +//class IrrLibBase; +class IrrPhysics; +class Irr3DObj;*/ +#include "Irr3D.h" +#include "IrrColor.h" +#include "IrrLibGUI.h" +#include "IrrEventReciever.h" +#include "Irr2D.h" +//#include "Irr2DObj.h" +#include "IrrLibBase.h" +//#include "IrrData.h" +//class IrrPhysics; +#include "IrrPhysics.h" +#include "IrrFunctions.h" +#include "Irr3DLibObj.h" +#include "IrrDefines.h" +#include "IrrText.h" +//#include "Irr3DObj.h" + +/*struct IrrObj { + int eventid; + int objectid; +};*/ + +//class IrrPhysics; +//Start class +class IrrLib: public IrrLibBase { + + private: + /* Create an Irrlicht device as private because the class should handle + All irrlicht interaction */ + //irr::IrrlichtDevice *device; + //In IrrLibBase + // Tells Irrlicht what driver to use + //video::E_DRIVER_TYPE driverType; + + /* + Get a pointer to the video driver and the SceneManager so that + we do not always have to write device->getVideoDriver() and + device->getSceneManager(). + */ + /*irr::video::IVideoDriver* driver; + irr::scene::ISceneManager* smgr;*/ + //In IrrLibBase + irr::gui::IGUIEnvironment* env; + + /* + Get a pointer to the 'mesh' aka the level. + Note: This is for Quake3 levels, ie bsp maps. + */ + irr::scene::IAnimatedMesh* mesh; + irr::scene::ISceneNode* node; + irr::scene::ISceneNode * tempNode; //use this to store nodeNew's data so we can resize it + irr::scene::ICameraSceneNode * cam; + char key; + + + void Init(); + /*friend class IrrColor; + friend class Irr2DLib; + friend class Sphere;*/ + //friend class IrrEventReciever; + irr::u32 tick; + irr::ITimer* timer; + //std::vector gc_vector; + + public: + //IrrSphere Sphere; //This has to be public to be able to access the Sphere class + /* IrrSphere is now in Irr3D class */ + //Prehaps put this into a IrrLib3D class? + Irr3D Irr3DLib; + IrrColor Color; //Color class...not much of a class but lets keep it OO + Irr2D Irr2DLib; //1/2 variable to be labeled like this due to variables not able to begin with a number + IrrLibGUI GUI; + IrrPhysics IrrPhy; + IrrEventReciever IrrEvent; + IrrLib(); + static irr::IrrlichtDevice *device; + //IrrLib(MastEventReceiver & receiver); + IrrLib(irr::video::E_DRIVER_TYPE drivertype, irr::core::dimension2d & res, irr::u32 bits, bool fullscreen, bool stencilbuffer, bool vsync); + IrrLib(int drivertype, int width, int height, int bits, bool fullscreen, bool stencilbuffer, bool vsync); + ~IrrLib(); //Our moms wont clean up after us! + void ReadArchive(irr::core::stringc file); + void LoadQ3Level(irr::core::stringc q3level); + void MapPos(int x, int y, int z); //I think this moves the actual camera? + void MapPos(); + void AddFPSCam(); + void AddFPSCam(irr::f32 x, irr::f32 y, irr::f32 z); + void VisibleCursor(bool tf); + int GetFPSCount(); + bool DeviceIsRunning(); + bool IsActiveWindow(); + void BeginScene(); + void AddCamera(irr::core::vector3df pos, irr::core::vector3df lookat); + void BeginScene(irr::video::SColor color); + //void BeginScene(irr::video::SColor * color); + void BeginScene(bool usebackBuffer, bool usezBuffer, irr::video::SColor color); + //TODO: Add one more for human readable colors and hex colors! + void DrawAll(); + void EndScene(); + void SetWindowCaption(irr::core::stringw str); + irr::core::stringw GetDriverName(); + //TODO: Make function to turn stringw to string and visa versa + void EndIrrlicht(); //Renamed from KillIrrlicht to EndIrrlicht + //TODO: Add logging + void KeyPress(char key); + char KeyPressed(); + irr::f32 getX(); + irr::f32 getY(); + irr::f32 getZ(); + bool CheckGameLoop(); + bool CheckGameLoop(irr::u32 ms); + void Exit(); + PixelSize GetScreenSize(); + //void EndGameLoop(); + //template std::string to_string (T t); + +}; + +#endif diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Unstable Version/1.3.3/IrrLibBase.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Unstable Version/1.3.3/IrrLibBase.cpp Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,125 @@ +/* + Irrlicht Library Wrapper + Created by: + Nathan Adams + Copyright (C) 2008 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ + +#include +#include +#include "IrrLibBase.h" +#include +#include + +using namespace irr; +using namespace core; +using namespace scene; +using namespace video; +using namespace io; +using namespace gui; + +using namespace std; + +/* +* Code from http://articles.techrepublic.com.com/5100-22-5079969.html# +* + +struct str_stream +{ + std::stringstream & underlying_stream() const + { return m_streamOut; } + + operator std::string() const + { + return m_streamOut.str(); + } +private: + mutable std::stringstream m_streamOut; +}; + +template< class type> +inline const str_stream & operator<< ( const str_stream & out, const type & value) +{ + out.underlying_stream() << value; + return out; + +} + +template std::string to_string( const type & value) +{ + std::ostringstream streamOut; + + streamOut << value; + + return streamOut.str(); +} + +* End code copy +*/ + +void IrrLibBase::SetDriver(IVideoDriver* driver) //can be overloaded +{ + this->driver = driver; +} + +void IrrLibBase::SetSmgr(ISceneManager* smgr) +{ + this->smgr = smgr; +} + +std::string IrrLibBase::wchar_to_stdstring (const wchar_t* wc) +{ + //cout << "Starting conversion"; + //wcstombs(tmp, in, 255); + char c[255]; + for(int t = 0; wc[t] != '\0'; t++) + c[t] = (char)wc[t]; + + /*for(int t = 0; c[t] != '\0'; t++) + wc[t] = c[t];*/ + + std::stringstream ss; + ss << c; + //cout << "Conversion OK"; + return ss.str(); +} + +std::string IrrLibBase::int_to_string (int t) +{ + std::stringstream ss; + ss << t; + return ss.str(); +} + +std::string IrrLibBase::stringw_to_stdstring(irr::core::stringw sw) +{ + std::stringstream ss; + ss << sw.c_str(); + return ss.str(); +} +irr::core::stringw IrrLibBase::stdstring_to_stringw(std::string ss) +{ + stringw tmpw(ss.c_str()); + return tmpw; +} + +/*void IrrLibBase::SetDevice(irr::IrrlichtDevice *device) +{ + this->device = device; +}*/ + +void IrrLibBase::init() +{ + +} + +/*irr::core::stringw int_to_stringw(int t) +{ + std::stringstream ss; + ss << t; + //stringw ret(ss.str()); + return ret; +}*/ diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Unstable Version/1.3.3/IrrLibBase.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Unstable Version/1.3.3/IrrLibBase.h Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,44 @@ +/* + Irrlicht Library Wrapper + Created by: + Nathan Adams + Copyright (C) 2008 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ + +#ifndef IRRLIBBASE_H +#define IRRLIBBASE_H + +/* We should include some basic functions */ +#include +/* include strings */ +#include + +/* We have to include Irrlichts libs */ +#include + + +class IrrLibBase { + + protected: + irr::video::IVideoDriver* driver; + irr::scene::ISceneManager* smgr; + irr::IrrlichtDevice *device; + public: + //template std::string to_string( const type & value); + irr::core::dimension2d irrpixels; + void SetDriver(irr::video::IVideoDriver* driver); + void SetSmgr(irr::scene::ISceneManager* smgr); + void SetDevice(irr::IrrlichtDevice *device); + std::string int_to_string (int t); + std::string stringw_to_stdstring(irr::core::stringw sw); + irr::core::stringw stdstring_to_stringw(std::string ss); + std::string wchar_to_stdstring (const wchar_t* wc); + //irr::core::stringw int_to_stringw(int t); + void init(); + +}; + +#endif diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Unstable Version/1.3.3/IrrLibGUI.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Unstable Version/1.3.3/IrrLibGUI.cpp Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,221 @@ +/* + Irrlicht Library Wrapper + Created by: + Nathan Adams + Copyright (C) 2008 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ + +#include +#include +#include +#include +#include + +#include "IrrLib.h" +#include "IrrLibGUI.h" +#include "IrrLibBase.h" +#include + +using namespace irr; +using namespace core; +using namespace scene; +using namespace video; +using namespace io; +using namespace gui; + +using namespace std; + +template std::string to_string( const type & value) +{ + std::ostringstream streamOut; + + streamOut << value; + + return streamOut.str(); +} + +IrrLibGUI::IrrLibGUI() +{ + //NA does it need to do anything at init? + this->nStaticText = 0; + this->nButton = 0; + this->nButtonid = 100; + this->nListBoxid = 200; + this->nListBox = 0; + //this->nListBoxid = 300; + //this->arrStaticText = new IGUIStaticText[10]; + //this->env = this->device->getGUIEnvironment(); //NA yes we do! +} + +IrrLibGUI::~IrrLibGUI() +{ + //NA Do we have to delete anything? +} + +void IrrLibGUI::SetEnv(IGUIEnvironment* env) +{ + this->env = env; + //env->addButton(rect(10,210,110,210 + 32), 0, 109, L"Quit", L"Exits Program"); +} + +IrrGUIObj IrrLibGUI::addButton(const core::rect< s32 > & rectangle, IGUIElement *parent, s32 id, const wchar_t * text, const wchar_t * tooltiptext) +{ + arrButton.push_back(this->env->addButton(rectangle, parent, id, text, tooltiptext)); + ++nButton; + ++nButtonid; + IrrGUIObj ret; + ret->objectid = --nButtonid; + return ret; +} + +IrrGUIObj IrrLibGUI::addListBox(const irr::core::rect< irr::s32 > &rectangle, IGUIElement * parent) +{ + irr::gui::IGUIListBox* tmp = this->env->addListBox(rectangle, parent, nListBoxid); + arrListBox.push_back(tmp); + //we introduce a new datatype; IrroObj + IrrGUIObj ret; + ret->eventid = nListBoxid; + ret->objectid = nListBox; + ++nListBox; + ++nListBoxid; + return ret; +} + +IrrGUIObj IrrLibGUI::AddListBox(int x1, int y1, int x2, int y2, IGUIElement * parent) +{ + return addListBox(rect(x1, y1, x2, y2), parent); +} + +IrrGUIObj IrrLibGUI::AddListBox(const irr::core::rect< irr::s32 > &rectangle, IGUIElement * parent) +{ + return addListBox(rectangle, parent); +} + +void IrrLibGUI::AddStringToListBox(IrrGUIObj nLbox, stringw text) +{ + this->arrListBox[nLbox->objectid]->addItem(text.c_str()); + //this->arrListBox[0]->addItem(L"TEST"); +} + +std::string IrrLibGUI::getSelectListString(IrrGUIObj lstbox) +{ + //stringc tmp = this->arrListBox[lstbox]->getListItem(this->arrListBox[lstbox]->getSelected()); + //s32 selected = this->arrListBox[lstbox.objectid]->getSelected(); + //const wchar_t* tmp = this->arrListBox[lstbox]->getListItem(selected); + //irr::core::stringw tmp; + //char out[255]; + //tmp = this->arrListBox[lstbox]->getText(); + irr::core::stringc tmp(arrListBox[lstbox->objectid]->getListItem(arrListBox[lstbox->objectid]->getSelected())); + //cout << tmp.c_str() << endl; + //wcstombs(out, tmp, tmp.length()); + //cout << tmp[0] << endl; + // std::stringstream ss; + //for (int i = 0; i < tmp.size(); ++i) + //ss << tmp.c_str(); + std::string ret = tmp.c_str(); + return ret; +} + +void IrrLibGUI::Clear() +{ + this->env->clear(); +} + +void IrrLibGUI::DrawAll() +{ + this->env->drawAll(); +} + +IrrGUIObj IrrLibGUI::AddToStaticArray(irr::gui::IGUIStaticText * addme) +{ + //arrStaticText[nStaticText] = addme; + arrStaticText.push_back(addme); + this->nStaticText++; + this->nButtonid++; + IrrGUIObj ret; + ret->objectid = this->nStaticText; + return ret; +} + +void IrrLibGUI::AddStaticText() +{ + //rect(20,30,300,80), + if (!this->env->addStaticText(L"Powered by IrrLib.\nPowered by Newton Game Dynamics.", rect(20,30,300,80), true)) + cout << "Error:: Adding static text!" << endl; +} + +IrrGUIObj IrrLibGUI::AddStaticText(stringw message) +{ + irr::gui::IGUIStaticText * addthis; + addthis = this->env->addStaticText(message.c_str(), rect(20,30,300,80), true); + return AddToStaticArray(addthis); +} + +IrrGUIObj IrrLibGUI::AddStaticText(stringw message, int x1, int y1, int x2, int y2) +{ + irr::gui::IGUIStaticText * addthis; + addthis = this->env->addStaticText(message.c_str(), rect(x1,y1,x2,y2), true); + return AddToStaticArray(addthis); +} + +IrrGUIObj IrrLibGUI::AddStaticText(stringw message, int x1, int y1, int x2, int y2, bool border, bool wordwrap) +{ + irr::gui::IGUIStaticText * addthis; + addthis = this->env->addStaticText(message.c_str(), rect(x1,y1,x2,y2), border, wordwrap); + return AddToStaticArray(addthis); +} + +IrrGUIObj IrrLibGUI::AddStaticText(stringw message, int x1, int y1, int x2, int y2, bool border, bool wordwrap, int id, bool fillbackground) +{ + irr::gui::IGUIStaticText * addthis; + addthis = this->env->addStaticText(message.c_str(), rect(x1,y1,x2,y2), border, wordwrap, 0, id, fillbackground); + return AddToStaticArray(addthis); +} + +IrrGUIObj IrrLibGUI::AddStaticText(stringw message, const core::rect< s32 > &rectangle) +{ + irr::gui::IGUIStaticText * addthis; + addthis = this->env->addStaticText(message.c_str(), rectangle); + return AddToStaticArray(addthis); +} + +IrrGUIObj IrrLibGUI::AddStaticText(stringw message, const core::rect< s32 > &rectangle, bool border, bool wordwrap) +{ + irr::gui::IGUIStaticText * addthis; + addthis = this->env->addStaticText(message.c_str(), rectangle, border, wordwrap); + return AddToStaticArray(addthis); +} + +IrrGUIObj IrrLibGUI::AddStaticText(stringw message, const core::rect< s32 > &rectangle, bool border, bool wordwrap, int id, bool fillbackground) +{ + irr::gui::IGUIStaticText * addthis; + addthis = this->env->addStaticText(message.c_str(), rectangle, border, wordwrap, 0, id, fillbackground); + return AddToStaticArray(addthis); +} + +void IrrLibGUI::ChangeStaticText(IrrGUIObj nstatictext, stringw message) +{ + //this->arrStaticText[this->nStaticText.objectid-1]->setText(message.c_str()); + this->arrStaticText[nstatictext->objectid]->setText(message.c_str()); +} + +void IrrLibGUI::ChangeFont(stringc fontfile) +{ + IGUISkin* skin = this->env->getSkin(); + IGUIFont* font = this->env->getFont(fontfile.c_str()); + if (font) + skin->setFont(font); +} + +IrrGUIObj IrrLibGUI::AddButton(stringw text, int x1, int y1, int x2, int y2, stringw tooltiptext = "") +{ + return addButton(rect(x1, y1, x2, y2), 0, nButtonid, text.c_str(), tooltiptext.c_str()); +} + +IrrGUIObj IrrLibGUI::AddButton(stringw text, core::rect & rect, stringw tooltiptext = "") +{ + return addButton(rect, 0, nButtonid, text.c_str(), tooltiptext.c_str()); +} diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Unstable Version/1.3.3/IrrLibGUI.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Unstable Version/1.3.3/IrrLibGUI.h Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,67 @@ +/* + Irrlicht Library Wrapper + Created by: + Nathan Adams + Copyright (C) 2008 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ + +#ifndef IRRLIBGUI_H +#define IRRLIBGUI_H + +#include +#include +#include +#include "IrrLib.h" +#include "IrrLibBase.h" + +class IrrLibGUI: public IrrLibBase { + private: + irr::gui::IGUISkin* skin; + irr::gui::IGUIFont* font; + irr::gui::IGUIEnvironment* env; + //TODO: Create an array storing all messages + int nStaticText; + //irr::gui::IGUIStaticText* arrStaticText[10]; + int nButton; + int nButtonid; + int nListBox; + int nListBoxid; + std::vector arrStaticText; + std::vector arrButton; + std::vector arrListBox; + IrrGUIObj AddToStaticArray(irr::gui::IGUIStaticText * addme); + IrrGUIObj addButton(const irr::core::rect< irr::s32 > & rectangle, irr::gui::IGUIElement *parent = 0, irr::s32 id = 0, const wchar_t * text = 0, const wchar_t * tooltiptext = 0); //TODO: Clean this up! + IrrGUIObj addListBox(const irr::core::rect< irr::s32 > &rectangle, irr::gui::IGUIElement * parent); + public: + IrrLibGUI(); + ~IrrLibGUI(); + void SetEnv(irr::gui::IGUIEnvironment* env); + void Clear(); + void DrawAll(); + //irr::gui::IGUIStaticText* IrrLibGUI::AddStaticText(); //NA eh a default text adder why not? + /* This is bad coding, we do not want to return an irrlicht object, we want to return a standard datatype because this class handles the GUI elements, not the user. */ + void AddStaticText(); //NA eh a default text adder why not? + IrrGUIObj AddStaticText(irr::core::stringw message); + IrrGUIObj AddStaticText(irr::core::stringw message, int x1, int y1, int x2, int y2); + IrrGUIObj AddStaticText(irr::core::stringw message, int x1, int y1, int x2, int y2, bool border, bool wordwrap); + IrrGUIObj AddStaticText(irr::core::stringw message, int x1, int y1, int x2, int y2, bool border, bool wordwrap, int id, bool fillbackground); + IrrGUIObj AddStaticText(irr::core::stringw message, const irr::core::rect< irr::s32 > &rectangle); + IrrGUIObj AddStaticText(irr::core::stringw message, const irr::core::rect< irr::s32 > &rectangle, bool border, bool wordwrap); + IrrGUIObj AddStaticText(irr::core::stringw message, const irr::core::rect< irr::s32 > &rectangle, bool border, bool wordwrap, int id, bool fillbackground); + IrrGUIObj AddButton(irr::core::stringw text, int x1, int y1, int x2, int y2, irr::core::stringw tooltiptext); + IrrGUIObj AddButton(irr::core::stringw text, irr::core::rect & rect, irr::core::stringw tooltiptext); //TODO: Add move functions + IrrGUIObj AddListBox(int x1, int y1, int x2, int y2, irr::gui::IGUIElement * parent = 0); + IrrGUIObj AddListBox(const irr::core::rect< irr::s32 > &rectangle, irr::gui::IGUIElement * parent = 0); + void AddStringToListBox(IrrGUIObj nLbox, irr::core::stringw text); + void ChangeStaticText(IrrGUIObj nstatictext, irr::core::stringw message); + void ChangeFont(irr::core::stringc fontfile); + std::string getSelectListString(IrrGUIObj lstbox); + //irr::core::stringw getSelectListString(int lstbox); + +}; + + +#endif diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Unstable Version/1.3.3/IrrLibObj.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Unstable Version/1.3.3/IrrLibObj.h Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,12 @@ +#ifndef IRRLIBOBJ_H +#define IRRLIBOBJ_H + + +struct IrrLibObj { + int eventid; + int objectid; + int x; + int y; +}; + +#endif diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Unstable Version/1.3.3/IrrObj.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Unstable Version/1.3.3/IrrObj.h Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,19 @@ +#ifndef IRROBJ_H +#define IRROBJ_H +#include +//template const char* typeof(T&) { return "unknown"; } // default +//template<> const char* typeof(Irr3DLibObj&) { return "Irr3DLibObj"; } +//template<> const char* typeof(float&) { return "float"; } +template class IrrObj { + T* ptr; + public: + explicit IrrObj(T* p = 0) : ptr(p) {if (p == NULL) ptr = new T;} + ~IrrObj() {if (ptr!=0) delete ptr;} + T& operator*() {return *ptr;} + T* operator->() {return ptr;} + void remove() {delete ptr;} +}; + + + +#endif diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Unstable Version/1.3.3/IrrOpt.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Unstable Version/1.3.3/IrrOpt.h Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,9 @@ +#ifndef IRROPT.H +#define IRROPT.H + +struct IrrOpt { + bool lighting; + irr::core::stringc t; +}; + +#endif diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Unstable Version/1.3.3/IrrPhysics.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Unstable Version/1.3.3/IrrPhysics.cpp Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,48 @@ +/* + Irrlicht Library Wrapper + Created by: + Nathan Adams + Copyright (C) 2008 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ + +/* We should include some basic functions */ +#include +/* include strings */ +#include +#include + +/* We have to include Irrlichts libs */ +#include + +//#include "IrrLib.h" +#include +#include "IrrPhysics.h" + +using namespace irr; +using namespace core; +using namespace scene; +using namespace video; +using namespace io; +using namespace gui; + +using namespace std; + +NewtonWorld * IrrPhysics::nworld; + +IrrPhysics::IrrPhysics() +{ + this->nworld = NewtonCreate(NULL,NULL); + NewtonSetSolverModel(this->nworld, 0); + NewtonSetFrictionModel(this->nworld, 0); +} + +IrrPhysics::~IrrPhysics() +{ + NewtonDestroy(this->nworld); +} + + + diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Unstable Version/1.3.3/IrrPhysics.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Unstable Version/1.3.3/IrrPhysics.h Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,42 @@ +/* + Irrlicht Library Wrapper + Created by: + Nathan Adams + Copyright (C) 2008 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ +#ifndef IRRPHYSICS_H +#define IRRPHYSICS_H + +/* We should include some basic functions */ +#include +/* include strings */ +#include +#include + +/* We have to include Irrlichts libs */ +#include +#include + +//#include "IrrLib.h" + +#include "IrrLibBase.h" + + + + + +class IrrPhysics: public IrrLibBase { + //private: + public: + static NewtonWorld *nworld; + IrrPhysics(); + ~IrrPhysics(); + +}; + + + +#endif diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Unstable Version/1.3.3/IrrSphere.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Unstable Version/1.3.3/IrrSphere.cpp Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,72 @@ +/* + Irrlicht Library Wrapper + Created by Nathan Adams + Copyright (C) 2008 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ +#include +#include "IrrLib.h" +#include "IrrSphere.h" +#include +#include + +using namespace irr; +using namespace core; +using namespace scene; +using namespace video; +using namespace io; +using namespace gui; + +using namespace std; + +/*void IrrSphere::SetSmgr(irr::scene::ISceneManager* smgr){ + this->smgr = smgr; +} + +void IrrSphere::SetDriver(irr::video::IVideoDriver* driver){ + this->driver = driver; +}*/ + +Irr3DSphere IrrSphere::CreateNewSphereNode(int x, int y, int z, stringc texture, bool light){ + //this->nodeNew[this->numNodes] = this->smgr->addSphereSceneNode(); + //this->sphereNodes[this->numNodes]->setPosition(core::vector3df(x,y,z)); + //this->sphereNodes[this->numNodes]->setMaterialTexture(0, this->driver->getTexture(texture.c_str())); + //this->sphereNodes[this->numNodes]->setMaterialFlag(video::EMF_LIGHTING, light); + Irr3DSphere ret; + nodeNew = this->smgr->addSphereSceneNode(); + nodeNew->setPosition(core::vector3df(x,y,z)); + nodeNew->setMaterialTexture(0, this->driver->getTexture(texture.c_str())); + nodeNew->setMaterialFlag(video::EMF_LIGHTING, light); + sphereNodes.push_back(nodeNew); + this->numNodes++; + ret->objectid = this->numNodes--; + return ret; + /*this->node = this->smgr->addSphereSceneNode(); + this->node->setPosition(core::vector3df(x,y,z)); + this->node->setMaterialTexture(0, this->driver->getTexture(texture.c_str())); + this->node->setMaterialFlag(video::EMF_LIGHTING, light);*/ +} + +irr::core::vector3df IrrSphere::GetSphereVector(int sphere){ + //We are converting to vectors, under construction NA + //return this->nodeNew[sphere]->getPosition(); + return this->sphereNodes[sphere]->getPosition(); +} + +void IrrSphere::SetSphereVector(int sphere, irr::core::vector3df v){ + this->sphereNodes[sphere]->setPosition(v); +} + +IrrSphere::IrrSphere(){ + this->numNodes = 0; +} + +IrrSphere::~IrrSphere(){ + /*for(int i = 0; i < numNodes; ++i) + delete this->nodeNew[i]; + + delete this->nodeNew;*/ + //We are using vectors now, no more memory clowing business NA +} diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Unstable Version/1.3.3/IrrSphere.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Unstable Version/1.3.3/IrrSphere.h Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,48 @@ +/* + Irrlicht Library Wrapper + Created by: + Nathan Adams + Copyright (C) 2008 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ + +#ifndef IRRSPHERE_H +#define IRRSPHERE_H +/* We should include some basic functions */ +#include +/* include strings */ +#include +#include +#include +/* We have to include Irrlichts libs */ +#include "IrrLibBase.h" +//#include "IrrData.h" +#include "IrrDefines.h" + + +//#include "IrrLib.h" + + +class IrrSphere: public IrrLibBase +{ + private: + //irr::scene::ISceneNode* nodeNew[10]; + irr::scene::ISceneNode* nodeNew; + std::vector sphereNodes; + int numNodes; + //irr::scene::ISceneManager* smgr; + //irr::video::IVideoDriver* driver; + public: + //void IrrSphere::SetDriver(irr::video::IVideoDriver* driver); + //void IrrSphere::SetSmgr(irr::scene::ISceneManager* smgr); + Irr3DSphere CreateNewSphereNode(int x, int y, int z, irr::core::stringc texture, bool light); //this is going to take my advanced C++ skillz! + irr::core::vector3df GetSphereVector(int sphere); + void SetSphereVector(int sphere, irr::core::vector3df v); + IrrSphere(); + //IrrSphere::IrrSphere(IrrLib*); + ~IrrSphere(); +}; + +#endif diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Unstable Version/1.3.3/IrrSprite.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Unstable Version/1.3.3/IrrSprite.cpp Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,48 @@ +/* + Irrlicht Library Wrapper + Created by: + Nathan Adams + Copyright (C) 2008 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ + +#include +#include +#include + +#include "IrrLib.h" +//Libraries we create go here +//#include "IrrSphere.h" +#include "IrrColor.h" +#include "IrrSprite.h" +//#include "Irr2D.h" + +using namespace irr; +using namespace core; +using namespace scene; +using namespace video; +using namespace io; +using namespace gui; + +using namespace std; + +IrrSprite::IrrSprite() +{ + //do stuff +} + +IrrSprite::~IrrSprite() +{ + //delete stuff +} + +/*void IrrSprite::SetDriver(irr::video::IVideoDriver* driver) +{ + this->driver = driver; +} +void IrrSprite::SetSmgr(irr::scene::ISceneManager* smgr) +{ + this->smgr = smgr; +}*/ diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Unstable Version/1.3.3/IrrSprite.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Unstable Version/1.3.3/IrrSprite.h Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,45 @@ +/* + Irrlicht Library Wrapper + Created by: + Nathan Adams + Copyright (C) 2008 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ + +#ifndef IRRSPRITE_H +#define IRRSPRITE_H + +/* We should include some basic functions */ +#include +/* include strings */ +#include + +/* We have to include Irrlichts libs */ +#include + +//#include "IrrSphere.h" +#include "IrrLibBase.h" +#include "IrrColor.h" +//#include "Irr2D.h" +//#include "IrrSprite.h" + +//Start class +class IrrSprite: public IrrLibBase { + + private: + + //irr::video::IVideoDriver* driver; + //irr::scene::ISceneManager* smgr; + public: + IrrSprite(); + ~IrrSprite(); + /*void IrrSprite::SetDriver(irr::video::IVideoDriver* driver); + void IrrSprite::SetSmgr(irr::scene::ISceneManager* smgr);*/ + +// I forgot a semicolon here....and it wasn't compling +//Thats 1 bad thing about OOP if there is an error you don't know where the @#$@# the problem is! +}; + +#endif diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Unstable Version/1.3.3/IrrText.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Unstable Version/1.3.3/IrrText.cpp Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,154 @@ +/* + Irrlicht Library Wrapper + Created by: + Nathan Adams + Copyright (C) 2008 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ + +#include +#include "IrrText.h" +#include +#include +#include "IrrDevices.h" + +using namespace irr; +using namespace core; +using namespace scene; +using namespace video; +using namespace io; +using namespace gui; + +using namespace std; + +IrrText::IrrText() +{ + //counter = 0; + //this->setText("No Text"); + this->str = "No Text"; + this->Move(0,0); +} + +IrrText::IrrText(irr::core::stringw str) +{ + //counter = 0; + this->str = str; + //this->setText(str); + this->Move(0,0); +} + +void IrrText::Move(float x, float y) +{ + this->x = x; + this->y = y; +} + +/*void IrrText::setText(irr::core::stringw str) +{ + int offset = 0; + irr::core::position2d destPos(this->x, this->y); + this->text.clear(); + for(unsigned int i = 0; i < str.size(); i++) + switch (str[i]) + { + case '0': + #ifdef IRRDEBUG + cout << "0" << endl; + #endif + //this->text.push_back(IrrDevices::driver->getTexture("0.png")); + break; + case '1': + #ifdef IRRDEBUG + cout << "1" << endl; + #endif + break; + case '2': + #ifdef IRRDEBUG + cout << "2" << endl; + #endif + break; + case '3': + #ifdef IRRDEBUG + cout << "3" << endl; + #endif + break; + case '4': + #ifdef IRRDEBUG + cout << "4" << endl; + #endif + break; + case '5': + #ifdef IRRDEBUG + cout << "5" << endl; + #endif + break; + case '6': + #ifdef IRRDEBUG + cout << "6" << endl; + #endif + break; + case '8': + #ifdef IRRDEBUG + cout << "7" << endl; + #endif + break; + case '9': + #ifdef IRRDEBUG + cout << "8" << endl; + #endif + break; + default: + cout << "Unrecongized Character!" << endl; + break; + } +}*/ + +float IrrText::getX() +{ + return this->x; +} + +float IrrText::getY() +{ + return this->y; +} + +char IrrText::getChar(int charLoc) +{ + return this->str[charLoc]; +} + +void IrrText::setX(float x) +{ + this->x = x; +} + +void IrrText::setY(float y) +{ + this->y = y; +} + +void IrrText::Set(irr::core::stringw str) +{ + this->str = str; +} + +void IrrText::Set(int num) +{ + char tmp[10]; + //itoa(num, tmp, 10); + sprintf(tmp, "%d", num); + this->str = tmp; +} + +int IrrText::size() +{ + return this->str.size(); +} + +/*void IrrText::resetCounter() +{ + this->counter = 0; +}*/ diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Unstable Version/1.3.3/IrrText.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Unstable Version/1.3.3/IrrText.h Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,40 @@ +/* + Irrlicht Library Wrapper + Created by: + Nathan Adams + Copyright (C) 2008 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. +*/ + +#ifndef IRRTEXT_H +#define IRRTEXT_H + +#include +#include "IrrLibBase.h" +#include + +class IrrText: public IrrLibBase { + private: + irr::core::stringw str; + float x; + float y; + //int counter; + public: + int size(); + void setX(float x); + void setY(float y); + char getChar(int charLoc); + void Set(irr::core::stringw str); + void Set(int num); + //void resetCounter(); + float getX(); + float getY(); + IrrText(); + IrrText(irr::core::stringw str); + //void setText(irr::core::stringw str); + void Move(float x, float y); +}; + +#endif diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Unstable Version/1.3.3/Newton.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Unstable Version/1.3.3/Newton.h Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,602 @@ +//******************************************************************** +// Newton Game dynamics +// copyright 2000-2004 +// By Julio Jerez +// VC: 6.0 +// One and only header file. +//******************************************************************** + +#ifndef NEWTON_H__736495_6495_076__INCLUDED_ +#define NEWTON_H__736495_6495_076__INCLUDED_ + +// force all not visual studio platform to be in library form +#ifndef _MSC_VER + #ifndef _NEWTON_USE_LIB + #define _NEWTON_USE_LIB + #endif +#endif + +#ifdef _NEWTON_USE_LIB + #define NEWTON_API +#else + #ifdef _NEWTON_BUILD_DLL + #define NEWTON_API __declspec(dllexport) + #else + #define NEWTON_API __declspec(dllimport) + #endif +#endif + +//#define __USE_DOUBLE_PRECISION__ +#ifdef __USE_DOUBLE_PRECISION__ + typedef double dFloat; +#else + typedef float dFloat; +#endif + + + +#ifdef __cplusplus +extern "C" { +#endif + + typedef struct NewtonBody{} NewtonBody; + typedef struct NewtonWorld{} NewtonWorld; + typedef struct NewtonJoint{} NewtonJoint; + typedef struct NewtonContact{} NewtonContact; + typedef struct NewtonMaterial{} NewtonMaterial; + typedef struct NewtonCollision{} NewtonCollision; + + typedef struct NewtonRagDoll{} NewtonRagDoll; + typedef struct NewtonRagDollBone{} NewtonRagDollBone; + + typedef struct NewtonUserMeshCollisionCollideDescTag + { + dFloat m_boxP0[4]; // lower bounding box of intersection query in local space + dFloat m_boxP1[4]; // upper bounding box of intersection query in local space + void* m_userData; // user data passed to the collision geometry at creation time + int m_faceCount; // the application should set here how many polygons intersect the query box + dFloat* m_vertex; // the application should the pointer to the vertex array. + int m_vertexStrideInBytes; // the application should set here the size of each vertex + int* m_userAttribute; // the application should set here the pointer to the user data, one for each face + int* m_faceIndexCount; // the application should set here the pointer to the vertex count of each face. + int* m_faceVertexIndex; // the application should set here the pointer index array for each vertex on a face. + NewtonBody* m_objBody; // pointer to the colliding body + NewtonBody* m_polySoupBody; // pointer to the rigid body owner of this collision tree + } NewtonUserMeshCollisionCollideDesc; + + typedef struct NewtonUserMeshCollisionRayHitDescTag + { + dFloat m_p0[4]; // ray origin in collision local space + dFloat m_p1[4]; // ray destination in collision local space + dFloat m_normalOut[4]; // copy here the normal at the rat intersection + int m_userIdOut; // copy here a user defined id for further feedback + void* m_userData; // user data passed to the collision geometry at creation time + } NewtonUserMeshCollisionRayHitDesc; + + typedef struct NewtonHingeSliderUpdateDescTag + { + dFloat m_accel; + dFloat m_minFriction; + dFloat m_maxFriction; + dFloat m_timestep; + } NewtonHingeSliderUpdateDesc; + + + // Newton callback functions + typedef void* (*NewtonAllocMemory) (int sizeInBytes); + typedef void (*NewtonFreeMemory) (void *ptr, int sizeInBytes); + + typedef void (*NewtonSerialize) (void* serializeHandle, const void* buffer, size_t size); + typedef void (*NewtonDeserialize) (void* serializeHandle, void* buffer, size_t size); + + + typedef void (*NewtonUserMeshCollisionCollideCallback) (NewtonUserMeshCollisionCollideDesc* collideDescData); + typedef dFloat (*NewtonUserMeshCollisionRayHitCallback) (NewtonUserMeshCollisionRayHitDesc* lineDescData); + typedef void (*NewtonUserMeshCollisionDestroyCallback) (void* descData); + typedef void (*NewtonTreeCollisionCallback) (const NewtonBody* bodyWithTreeCollision, const NewtonBody* body, + const dFloat* vertex, int vertexstrideInBytes, + int indexCount, const int* indexArray); + + typedef void (*NewtonBodyDestructor) (const NewtonBody* body); + typedef void (*NewtonApplyForceAndTorque) (const NewtonBody* body); + typedef void (*NewtonBodyActivationState) (const NewtonBody* body, unsigned state); + typedef void (*NewtonSetTransform) (const NewtonBody* body, const dFloat* matrix); + typedef void (*NewtonSetRagDollTransform) (const NewtonRagDollBone* bone); + typedef int (*NewtonGetBuoyancyPlane) (const int collisionID, void *context, const dFloat* globalSpaceMatrix, dFloat* globalSpacePlane); + + typedef void (*NewtonVehicleTireUpdate) (const NewtonJoint* vehicle); + + typedef unsigned (*NewtonWorldRayPrefilterCallback)(const NewtonBody* body, const NewtonCollision* collision, void* userData); + typedef dFloat (*NewtonWorldRayFilterCallback)(const NewtonBody* body, const dFloat* hitNormal, int collisionID, void* userData, dFloat intersetParam); + typedef void (*NewtonBodyLeaveWorld) (const NewtonBody* body); + + typedef int (*NewtonContactBegin) (const NewtonMaterial* material, const NewtonBody* body0, const NewtonBody* body1); + typedef int (*NewtonContactProcess) (const NewtonMaterial* material, const NewtonContact* contact); + typedef void (*NewtonContactEnd) (const NewtonMaterial* material); + + + typedef void (*NewtonBodyIterator) (const NewtonBody* body); + typedef void (*NewtonCollisionIterator) (const NewtonBody* body, int vertexCount, const dFloat* FaceArray, int faceId); + + + typedef void (*NewtonBallCallBack) (const NewtonJoint* ball); + typedef unsigned (*NewtonHingeCallBack) (const NewtonJoint* hinge, NewtonHingeSliderUpdateDesc* desc); + typedef unsigned (*NewtonSliderCallBack) (const NewtonJoint* slider, NewtonHingeSliderUpdateDesc* desc); + typedef unsigned (*NewtonUniversalCallBack) (const NewtonJoint* universal, NewtonHingeSliderUpdateDesc* desc); + typedef unsigned (*NewtonCorkscrewCallBack) (const NewtonJoint* corkscrew, NewtonHingeSliderUpdateDesc* desc); + typedef void (*NewtonUserBilateralCallBack) (const NewtonJoint* userJoint); + + typedef void (*NewtonConstraintDestructor) (const NewtonJoint* me); + + // ********************************************************************************************** + // + // world control functions + // + // ********************************************************************************************** + NEWTON_API NewtonWorld* NewtonCreate (NewtonAllocMemory malloc, NewtonFreeMemory mfree); + NEWTON_API void NewtonDestroy (const NewtonWorld* newtonWorld); + NEWTON_API void NewtonDestroyAllBodies (const NewtonWorld* newtonWorld); + + + NEWTON_API void NewtonUpdate (const NewtonWorld* newtonWorld, dFloat timestep); + NEWTON_API void NewtonSetPlatformArchitecture (const NewtonWorld* newtonWorld, int mode); + NEWTON_API void NewtonSetSolverModel (const NewtonWorld* newtonWorld, int model); + NEWTON_API void NewtonSetFrictionModel (const NewtonWorld* newtonWorld, int model); + NEWTON_API dFloat NewtonGetTimeStep (const NewtonWorld* newtonWorld); + NEWTON_API void NewtonSetMinimumFrameRate (const NewtonWorld* newtonWorld, dFloat frameRate); + NEWTON_API void NewtonSetBodyLeaveWorldEvent (const NewtonWorld* newtonWorld, NewtonBodyLeaveWorld callback); + NEWTON_API void NewtonSetWorldSize (const NewtonWorld* newtonWorld, const dFloat* minPoint, const dFloat* maxPoint); + + NEWTON_API void NewtonWorldFreezeBody (const NewtonWorld* newtonWorld, const NewtonBody* body); + NEWTON_API void NewtonWorldUnfreezeBody (const NewtonWorld* newtonWorld, const NewtonBody* body); + + NEWTON_API void NewtonWorldForEachBodyDo (const NewtonWorld* newtonWorld, NewtonBodyIterator callback); + NEWTON_API void NewtonWorldForEachBodyInAABBDo (const NewtonWorld* newtonWorld, const dFloat* p0, const dFloat* p1, NewtonBodyIterator callback); + + NEWTON_API void NewtonWorldSetUserData (const NewtonWorld* newtonWorld, void* userData); + NEWTON_API void* NewtonWorldGetUserData (const NewtonWorld* newtonWorld); + NEWTON_API int NewtonWorldGetVersion (const NewtonWorld* newtonWorld); + + NEWTON_API void NewtonWorldRayCast (const NewtonWorld* newtonWorld, const dFloat* p0, const dFloat* p1, NewtonWorldRayFilterCallback filter, void* userData, NewtonWorldRayPrefilterCallback prefilter); + + // world utility functions + // NEWTON_API int NewtonGetBodiesCount(); + // NEWTON_API int NewtonGetActiveBodiesCount(); + // NEWTON_API int NewtonGetActiveConstraintsCount(); + // NEWTON_API dFloat NewtonGetGlobalScale (const NewtonWorld* newtonWorld); + + // ********************************************************************************************** + // + // Physics Material Section + // + // ********************************************************************************************** + NEWTON_API int NewtonMaterialGetDefaultGroupID(const NewtonWorld* newtonWorld); + NEWTON_API int NewtonMaterialCreateGroupID(const NewtonWorld* newtonWorld); + NEWTON_API void NewtonMaterialDestroyAllGroupID(const NewtonWorld* newtonWorld); + + + + NEWTON_API void NewtonMaterialSetDefaultSoftness (const NewtonWorld* newtonWorld, int id0, int id1, dFloat value); + NEWTON_API void NewtonMaterialSetDefaultElasticity (const NewtonWorld* newtonWorld, int id0, int id1, dFloat elasticCoef); + NEWTON_API void NewtonMaterialSetDefaultCollidable (const NewtonWorld* newtonWorld, int id0, int id1, int state); + NEWTON_API void NewtonMaterialSetContinuousCollisionMode (const NewtonWorld* newtonWorld, int id0, int id1, int state); + NEWTON_API void NewtonMaterialSetDefaultFriction (const NewtonWorld* newtonWorld, int id0, int id1, + dFloat staticFriction, dFloat kineticFriction); + + NEWTON_API void NewtonMaterialSetCollisionCallback (const NewtonWorld* newtonWorld, int id0, int id1, void* userData, + NewtonContactBegin begin, NewtonContactProcess process, NewtonContactEnd end); + + NEWTON_API void* NewtonMaterialGetUserData (const NewtonWorld* newtonWorld, int id0, int id1); + + + + // ********************************************************************************************** + // + // Physics Contact control functions + // + // ********************************************************************************************** + NEWTON_API void NewtonMaterialDisableContact (const NewtonMaterial* material); + NEWTON_API dFloat NewtonMaterialGetCurrentTimestep (const NewtonMaterial* material); + NEWTON_API void *NewtonMaterialGetMaterialPairUserData (const NewtonMaterial* material); + NEWTON_API unsigned NewtonMaterialGetContactFaceAttribute (const NewtonMaterial* material); + NEWTON_API unsigned NewtonMaterialGetBodyCollisionID (const NewtonMaterial* material, const NewtonBody* body); + NEWTON_API dFloat NewtonMaterialGetContactNormalSpeed (const NewtonMaterial* material, const NewtonContact* contactlHandle); + NEWTON_API void NewtonMaterialGetContactForce (const NewtonMaterial* material, dFloat* force); + NEWTON_API void NewtonMaterialGetContactPositionAndNormal (const NewtonMaterial* material, dFloat* posit, dFloat* normal); + NEWTON_API void NewtonMaterialGetContactTangentDirections (const NewtonMaterial* material, dFloat* dir0, dFloat* dir); + NEWTON_API dFloat NewtonMaterialGetContactTangentSpeed (const NewtonMaterial* material, const NewtonContact* contactlHandle, int index); + + NEWTON_API void NewtonMaterialSetContactSoftness (const NewtonMaterial* material, dFloat softness); + NEWTON_API void NewtonMaterialSetContactElasticity (const NewtonMaterial* material, dFloat restitution); + NEWTON_API void NewtonMaterialSetContactFrictionState (const NewtonMaterial* material, int state, int index); + NEWTON_API void NewtonMaterialSetContactStaticFrictionCoef (const NewtonMaterial* material, dFloat coef, int index); + NEWTON_API void NewtonMaterialSetContactKineticFrictionCoef (const NewtonMaterial* material, dFloat coef, int index); + + NEWTON_API void NewtonMaterialSetContactNormalAcceleration (const NewtonMaterial* material, dFloat accel); + NEWTON_API void NewtonMaterialSetContactNormalDirection (const NewtonMaterial* material, const dFloat* directionVector); + + NEWTON_API void NewtonMaterialSetContactTangentAcceleration (const NewtonMaterial* material, dFloat accel, int index); + NEWTON_API void NewtonMaterialContactRotateTangentDirections (const NewtonMaterial* material, const dFloat* directionVector); + + + // ********************************************************************************************** + // + // convex collision primitives creation functions + // + // ********************************************************************************************** + NEWTON_API NewtonCollision* NewtonCreateNull (const NewtonWorld* newtonWorld); + NEWTON_API NewtonCollision* NewtonCreateSphere (const NewtonWorld* newtonWorld, dFloat radiusX, dFloat radiusY, dFloat radiusZ, const dFloat *offsetMatrix); + NEWTON_API NewtonCollision* NewtonCreateBox (const NewtonWorld* newtonWorld, dFloat dx, dFloat dy, dFloat dz, const dFloat *offsetMatrix); + NEWTON_API NewtonCollision* NewtonCreateCone (const NewtonWorld* newtonWorld, dFloat radius, dFloat height, const dFloat *offsetMatrix); + NEWTON_API NewtonCollision* NewtonCreateCapsule (const NewtonWorld* newtonWorld, dFloat radius, dFloat height, const dFloat *offsetMatrix); + NEWTON_API NewtonCollision* NewtonCreateCylinder (const NewtonWorld* newtonWorld, dFloat radius, dFloat height, const dFloat *offsetMatrix); + NEWTON_API NewtonCollision* NewtonCreateChamferCylinder (const NewtonWorld* newtonWorld, dFloat radius, dFloat height, const dFloat *offsetMatrix); + NEWTON_API NewtonCollision* NewtonCreateConvexHull (const NewtonWorld* newtonWorld, int count, const dFloat* vertexCloud, int strideInBytes, const dFloat *offsetMatrix); + NEWTON_API NewtonCollision* NewtonCreateConvexHullModifier (const NewtonWorld* newtonWorld, const NewtonCollision* convexHullCollision); + NEWTON_API void NewtonConvexHullModifierGetMatrix (const NewtonCollision* convexHullCollision, dFloat* matrix); + NEWTON_API void NewtonConvexHullModifierSetMatrix (const NewtonCollision* convexHullCollision, const dFloat* matrix); + + + + + NEWTON_API void NewtonConvexCollisionSetUserID (const NewtonCollision* convexCollision, unsigned id); + NEWTON_API unsigned NewtonConvexCollisionGetUserID (const NewtonCollision* convexCollision); + + NEWTON_API dFloat NewtonConvexCollisionCalculateVolume (const NewtonCollision* convexCollision); + NEWTON_API void NewtonConvexCollisionCalculateInertialMatrix (const NewtonCollision* convexCollision, dFloat* inertia, dFloat* origin); + + NEWTON_API void NewtonCollisionMakeUnique (const NewtonWorld* newtonWorld, const NewtonCollision* collision); + NEWTON_API void NewtonReleaseCollision (const NewtonWorld* newtonWorld, const NewtonCollision* collision); + // ********************************************************************************************** + // + // complex collision primitives creation functions + // note: can only be used with static bodies (bodies with infinite mass) + // + // ********************************************************************************************** + NEWTON_API NewtonCollision* NewtonCreateCompoundCollision (const NewtonWorld* newtonWorld, int count, + NewtonCollision* const collisionPrimitiveArray[]); + + NEWTON_API NewtonCollision* NewtonCreateUserMeshCollision (const NewtonWorld* newtonWorld, const dFloat *minBox, + const dFloat *maxBox, void *userData, NewtonUserMeshCollisionCollideCallback collideCallback, + NewtonUserMeshCollisionRayHitCallback rayHitCallback, NewtonUserMeshCollisionDestroyCallback destroyCallback); + + // ********************************************************************************************** + // + // CollisionTree Utility functions + // + // ********************************************************************************************** + NEWTON_API NewtonCollision* NewtonCreateTreeCollision (const NewtonWorld* newtonWorld, NewtonTreeCollisionCallback userCallback); + NEWTON_API void NewtonTreeCollisionBeginBuild (const NewtonCollision* treeCollision); + NEWTON_API void NewtonTreeCollisionAddFace (const NewtonCollision* treeCollision, int vertexCount, const dFloat* vertexPtr, + int strideInBytes, int faceAttribute); + NEWTON_API void NewtonTreeCollisionEndBuild (const NewtonCollision* treeCollision, int optimize); + + NEWTON_API void NewtonTreeCollisionSerialize (const NewtonCollision* treeCollision, NewtonSerialize serializeFunction, + void* serializeHandle); + + NEWTON_API NewtonCollision* NewtonCreateTreeCollisionFromSerialization (const NewtonWorld* newtonWorld, + NewtonTreeCollisionCallback userCallback, NewtonDeserialize deserializeFunction, void* serializeHandle); + + NEWTON_API int NewtonTreeCollisionGetFaceAtribute (const NewtonCollision* treeCollision, const int* faceIndexArray); + NEWTON_API void NewtonTreeCollisionSetFaceAtribute (const NewtonCollision* treeCollision, const int* faceIndexArray, + int attribute); + + + // ********************************************************************************************** + // + // General purpose collision library functions + // + // ********************************************************************************************** + NEWTON_API int NewtonCollisionPointDistance (const NewtonWorld* newtonWorld, const dFloat *point, + const NewtonCollision* collsion, const dFloat* matrix, dFloat* contact, dFloat* normal); + + NEWTON_API int NewtonCollisionClosestPoint (const NewtonWorld* newtonWorld, + const NewtonCollision* collsionA, const dFloat* matrixA, const NewtonCollision* collsionB, const dFloat* matrixB, + dFloat* contactA, dFloat* contactB, dFloat* normalAB); + + NEWTON_API int NewtonCollisionCollide (const NewtonWorld* newtonWorld, int maxSize, + const NewtonCollision* collsionA, const dFloat* matrixA, const NewtonCollision* collsionB, const dFloat* matrixB, + dFloat* contacts, dFloat* normals, dFloat* penetration); + + NEWTON_API int NewtonCollisionCollideContinue (const NewtonWorld* newtonWorld, int maxSize, const dFloat timestap, + const NewtonCollision* collsionA, const dFloat* matrixA, const dFloat* velocA, const dFloat* omegaA, + const NewtonCollision* collsionB, const dFloat* matrixB, const dFloat* velocB, const dFloat* omegaB, + dFloat* timeOfImpact, dFloat* contacts, dFloat* normals, dFloat* penetration); + + NEWTON_API dFloat NewtonCollisionRayCast (const NewtonCollision* collision, const dFloat* p0, const dFloat* p1, dFloat* normals, int* attribute); + NEWTON_API void NewtonCollisionCalculateAABB (const NewtonCollision* collision, const dFloat *matrix, dFloat* p0, dFloat* p1); + + + // ********************************************************************************************** + // + // transforms utility functions + // + // ********************************************************************************************** + NEWTON_API void NewtonGetEulerAngle (const dFloat* matrix, dFloat* eulersAngles); + NEWTON_API void NewtonSetEulerAngle (const dFloat* eulersAngles, dFloat* matrix); + + + // ********************************************************************************************** + // + // body manipulation functions + // + // ********************************************************************************************** + NEWTON_API NewtonBody* NewtonCreateBody (const NewtonWorld* newtonWorld, const NewtonCollision* collision); + NEWTON_API void NewtonDestroyBody(const NewtonWorld* newtonWorld, const NewtonBody* body); + + NEWTON_API void NewtonBodyAddForce (const NewtonBody* body, const dFloat* force); + NEWTON_API void NewtonBodyAddTorque (const NewtonBody* body, const dFloat* torque); + + NEWTON_API void NewtonBodySetMatrix (const NewtonBody* body, const dFloat* matrix); + NEWTON_API void NewtonBodySetMatrixRecursive (const NewtonBody* body, const dFloat* matrix); + NEWTON_API void NewtonBodySetMassMatrix (const NewtonBody* body, dFloat mass, dFloat Ixx, dFloat Iyy, dFloat Izz); + NEWTON_API void NewtonBodySetMaterialGroupID (const NewtonBody* body, int id); + NEWTON_API void NewtonBodySetContinuousCollisionMode (const NewtonBody* body, unsigned state); + NEWTON_API void NewtonBodySetJointRecursiveCollision (const NewtonBody* body, unsigned state); + NEWTON_API void NewtonBodySetOmega (const NewtonBody* body, const dFloat* omega); + NEWTON_API void NewtonBodySetVelocity (const NewtonBody* body, const dFloat* velocity); + NEWTON_API void NewtonBodySetForce (const NewtonBody* body, const dFloat* force); + NEWTON_API void NewtonBodySetTorque (const NewtonBody* body, const dFloat* torque); + + NEWTON_API void NewtonBodySetCentreOfMass (const NewtonBody* body, const dFloat* com); + NEWTON_API void NewtonBodySetLinearDamping (const NewtonBody* body, dFloat linearDamp); + NEWTON_API void NewtonBodySetAngularDamping (const NewtonBody* body, const dFloat* angularDamp); + NEWTON_API void NewtonBodySetUserData (const NewtonBody* body, void* userData); + NEWTON_API void NewtonBodyCoriolisForcesMode (const NewtonBody* body, int mode); + NEWTON_API void NewtonBodySetCollision (const NewtonBody* body, const NewtonCollision* collision); + NEWTON_API void NewtonBodySetAutoFreeze (const NewtonBody* body, int state); + NEWTON_API void NewtonBodySetFreezeTreshold (const NewtonBody* body, dFloat freezeSpeed2, dFloat freezeOmega2, int framesCount); + + NEWTON_API void NewtonBodySetTransformCallback (const NewtonBody* body, NewtonSetTransform callback); + NEWTON_API void NewtonBodySetDestructorCallback (const NewtonBody* body, NewtonBodyDestructor callback); + NEWTON_API void NewtonBodySetAutoactiveCallback (const NewtonBody* body, NewtonBodyActivationState callback); + NEWTON_API void NewtonBodySetForceAndTorqueCallback (const NewtonBody* body, NewtonApplyForceAndTorque callback); + NEWTON_API NewtonApplyForceAndTorque NewtonBodyGetForceAndTorqueCallback (const NewtonBody* body); + + NEWTON_API void* NewtonBodyGetUserData (const NewtonBody* body); + NEWTON_API NewtonWorld* NewtonBodyGetWorld (const NewtonBody* body); + NEWTON_API NewtonCollision* NewtonBodyGetCollision (const NewtonBody* body); + NEWTON_API int NewtonBodyGetMaterialGroupID (const NewtonBody* body); + NEWTON_API int NewtonBodyGetContinuousCollisionMode (const NewtonBody* body); + NEWTON_API int NewtonBodyGetJointRecursiveCollision (const NewtonBody* body); + + NEWTON_API void NewtonBodyGetMatrix(const NewtonBody* body, dFloat* matrix); + NEWTON_API void NewtonBodyGetMassMatrix (const NewtonBody* body, dFloat* mass, dFloat* Ixx, dFloat* Iyy, dFloat* Izz); + NEWTON_API void NewtonBodyGetInvMass(const NewtonBody* body, dFloat* invMass, dFloat* invIxx, dFloat* invIyy, dFloat* invIzz); + NEWTON_API void NewtonBodyGetOmega(const NewtonBody* body, dFloat* vector); + NEWTON_API void NewtonBodyGetVelocity(const NewtonBody* body, dFloat* vector); + NEWTON_API void NewtonBodyGetForce(const NewtonBody* body, dFloat* vector); + NEWTON_API void NewtonBodyGetTorque(const NewtonBody* body, dFloat* vector); + NEWTON_API void NewtonBodyGetCentreOfMass (const NewtonBody* body, dFloat* com); + + NEWTON_API int NewtonBodyGetSleepingState(const NewtonBody* body); + NEWTON_API int NewtonBodyGetAutoFreeze(const NewtonBody* body); + NEWTON_API dFloat NewtonBodyGetLinearDamping (const NewtonBody* body); + NEWTON_API void NewtonBodyGetAngularDamping (const NewtonBody* body, dFloat* vector); + NEWTON_API void NewtonBodyGetAABB (const NewtonBody* body, dFloat* p0, dFloat* p1); + NEWTON_API void NewtonBodyGetFreezeTreshold (const NewtonBody* body, dFloat* freezeSpeed2, dFloat* freezeOmega2); + + + NEWTON_API void NewtonBodyAddBuoyancyForce (const NewtonBody* body, dFloat fluidDensity, + dFloat fluidLinearViscosity, dFloat fluidAngularViscosity, + const dFloat* gravityVector, NewtonGetBuoyancyPlane buoyancyPlane, void *context); + + NEWTON_API void NewtonBodyForEachPolygonDo (const NewtonBody* body, NewtonCollisionIterator callback); + NEWTON_API void NewtonAddBodyImpulse (const NewtonBody* body, const dFloat* pointDeltaVeloc, const dFloat* pointPosit); + + + // ********************************************************************************************** + // + // Common joint functions + // + // ********************************************************************************************** + NEWTON_API void* NewtonJointGetUserData (const NewtonJoint* joint); + NEWTON_API void NewtonJointSetUserData (const NewtonJoint* joint, void* userData); + + NEWTON_API int NewtonJointGetCollisionState (const NewtonJoint* joint); + NEWTON_API void NewtonJointSetCollisionState (const NewtonJoint* joint, int state); + + NEWTON_API dFloat NewtonJointGetStiffness (const NewtonJoint* joint); + NEWTON_API void NewtonJointSetStiffness (const NewtonJoint* joint, dFloat state); + + NEWTON_API void NewtonDestroyJoint(const NewtonWorld* newtonWorld, const NewtonJoint* joint); + NEWTON_API void NewtonJointSetDestructor (const NewtonJoint* joint, NewtonConstraintDestructor destructor); + + + // ********************************************************************************************** + // + // Ball and Socket joint functions + // + // ********************************************************************************************** + NEWTON_API NewtonJoint* NewtonConstraintCreateBall (const NewtonWorld* newtonWorld, const dFloat* pivotPoint, + const NewtonBody* childBody, const NewtonBody* parentBody); + NEWTON_API void NewtonBallSetUserCallback (const NewtonJoint* ball, NewtonBallCallBack callback); + NEWTON_API void NewtonBallGetJointAngle (const NewtonJoint* ball, dFloat* angle); + NEWTON_API void NewtonBallGetJointOmega (const NewtonJoint* ball, dFloat* omega); + NEWTON_API void NewtonBallGetJointForce (const NewtonJoint* ball, dFloat* force); + NEWTON_API void NewtonBallSetConeLimits (const NewtonJoint* ball, const dFloat* pin, dFloat maxConeAngle, dFloat maxTwistAngle); + + // ********************************************************************************************** + // + // Hinge joint functions + // + // ********************************************************************************************** + NEWTON_API NewtonJoint* NewtonConstraintCreateHinge (const NewtonWorld* newtonWorld, + const dFloat* pivotPoint, const dFloat* pinDir, + const NewtonBody* childBody, const NewtonBody* parentBody); + + NEWTON_API void NewtonHingeSetUserCallback (const NewtonJoint* hinge, NewtonHingeCallBack callback); + NEWTON_API dFloat NewtonHingeGetJointAngle (const NewtonJoint* hinge); + NEWTON_API dFloat NewtonHingeGetJointOmega (const NewtonJoint* hinge); + NEWTON_API void NewtonHingeGetJointForce (const NewtonJoint* hinge, dFloat* force); + NEWTON_API dFloat NewtonHingeCalculateStopAlpha (const NewtonJoint* hinge, const NewtonHingeSliderUpdateDesc* desc, dFloat angle); + + // ********************************************************************************************** + // + // Slider joint functions + // + // ********************************************************************************************** + NEWTON_API NewtonJoint* NewtonConstraintCreateSlider (const NewtonWorld* newtonWorld, + const dFloat* pivotPoint, const dFloat* pinDir, + const NewtonBody* childBody, const NewtonBody* parentBody); + NEWTON_API void NewtonSliderSetUserCallback (const NewtonJoint* slider, NewtonSliderCallBack callback); + NEWTON_API dFloat NewtonSliderGetJointPosit (const NewtonJoint* slider); + NEWTON_API dFloat NewtonSliderGetJointVeloc (const NewtonJoint* slider); + NEWTON_API void NewtonSliderGetJointForce (const NewtonJoint* slider, dFloat* force); + NEWTON_API dFloat NewtonSliderCalculateStopAccel (const NewtonJoint* slider, const NewtonHingeSliderUpdateDesc* desc, dFloat position); + + + // ********************************************************************************************** + // + // Corkscrew joint functions + // + // ********************************************************************************************** + NEWTON_API NewtonJoint* NewtonConstraintCreateCorkscrew (const NewtonWorld* newtonWorld, + const dFloat* pivotPoint, const dFloat* pinDir, + const NewtonBody* childBody, const NewtonBody* parentBody); + NEWTON_API void NewtonCorkscrewSetUserCallback (const NewtonJoint* corkscrew, NewtonCorkscrewCallBack callback); + NEWTON_API dFloat NewtonCorkscrewGetJointPosit (const NewtonJoint* corkscrew); + NEWTON_API dFloat NewtonCorkscrewGetJointAngle (const NewtonJoint* corkscrew); + NEWTON_API dFloat NewtonCorkscrewGetJointVeloc (const NewtonJoint* corkscrew); + NEWTON_API dFloat NewtonCorkscrewGetJointOmega (const NewtonJoint* corkscrew); + NEWTON_API void NewtonCorkscrewGetJointForce (const NewtonJoint* corkscrew, dFloat* force); + NEWTON_API dFloat NewtonCorkscrewCalculateStopAlpha (const NewtonJoint* corkscrew, const NewtonHingeSliderUpdateDesc* desc, dFloat angle); + NEWTON_API dFloat NewtonCorkscrewCalculateStopAccel (const NewtonJoint* corkscrew, const NewtonHingeSliderUpdateDesc* desc, dFloat position); + + + // ********************************************************************************************** + // + // Universal joint functions + // + // ********************************************************************************************** + NEWTON_API NewtonJoint* NewtonConstraintCreateUniversal (const NewtonWorld* newtonWorld, + const dFloat* pivotPoint, const dFloat* pinDir0, const dFloat* pinDir1, + const NewtonBody* childBody, const NewtonBody* parentBody); + NEWTON_API void NewtonUniversalSetUserCallback (const NewtonJoint* universal, NewtonUniversalCallBack callback); + NEWTON_API dFloat NewtonUniversalGetJointAngle0 (const NewtonJoint* universal); + NEWTON_API dFloat NewtonUniversalGetJointAngle1 (const NewtonJoint* universal); + NEWTON_API dFloat NewtonUniversalGetJointOmega0 (const NewtonJoint* universal); + NEWTON_API dFloat NewtonUniversalGetJointOmega1 (const NewtonJoint* universal); + NEWTON_API void NewtonUniversalGetJointForce (const NewtonJoint* universal, dFloat* force); + NEWTON_API dFloat NewtonUniversalCalculateStopAlpha0 (const NewtonJoint* universal, const NewtonHingeSliderUpdateDesc* desc, dFloat angle); + NEWTON_API dFloat NewtonUniversalCalculateStopAlpha1 (const NewtonJoint* universal, const NewtonHingeSliderUpdateDesc* desc, dFloat angle); + + + // ********************************************************************************************** + // + // Up vector joint functions + // + // ********************************************************************************************** + NEWTON_API NewtonJoint* NewtonConstraintCreateUpVector (const NewtonWorld* newtonWorld, const dFloat* pinDir, const NewtonBody* body); + NEWTON_API void NewtonUpVectorGetPin (const NewtonJoint* upVector, dFloat *pin); + NEWTON_API void NewtonUpVectorSetPin (const NewtonJoint* upVector, const dFloat *pin); + + + // ********************************************************************************************** + // + // User defined bilateral Joint + // + // ********************************************************************************************** + NEWTON_API NewtonJoint* NewtonConstraintCreateUserJoint (const NewtonWorld* newtonWorld, int maxDOF, NewtonUserBilateralCallBack callback, + const NewtonBody* childBody, const NewtonBody* parentBody); + + NEWTON_API void NewtonUserJointAddLinearRow (const NewtonJoint* joint, const dFloat *pivot0, const dFloat *pivot1, const dFloat *dir); + NEWTON_API void NewtonUserJointAddAngularRow (const NewtonJoint* joint, dFloat relativeAngle, const dFloat *dir); + NEWTON_API void NewtonUserJointAddGeneralRow (const NewtonJoint* joint, const dFloat *jacobian0, const dFloat *jacobian1); + NEWTON_API void NewtonUserJointSetRowMinimumFriction (const NewtonJoint* joint, dFloat friction); + NEWTON_API void NewtonUserJointSetRowMaximumFriction (const NewtonJoint* joint, dFloat friction); + NEWTON_API void NewtonUserJointSetRowAcceleration (const NewtonJoint* joint, dFloat acceleration); + NEWTON_API void NewtonUserJointSetRowSpringDamperAcceleration (const NewtonJoint* joint, dFloat springK, dFloat springD); + NEWTON_API void NewtonUserJointSetRowStiffness (const NewtonJoint* joint, dFloat stiffness); + NEWTON_API dFloat NewtonUserJointGetRowForce (const NewtonJoint* joint, int row); + + + + // ********************************************************************************************** + // + // Rag doll joint container functions + // + // ********************************************************************************************** + NEWTON_API NewtonRagDoll* NewtonCreateRagDoll (const NewtonWorld* newtonWorld); + NEWTON_API void NewtonDestroyRagDoll (const NewtonWorld* newtonWorld, const NewtonRagDoll* ragDoll); + + NEWTON_API void NewtonRagDollBegin (const NewtonRagDoll* ragDoll); + NEWTON_API void NewtonRagDollEnd (const NewtonRagDoll* ragDoll); + + +// NEWTON_API void NewtonRagDollSetFriction (const NewtonRagDoll* ragDoll, dFloat friction); + + NEWTON_API NewtonRagDollBone* NewtonRagDollFindBone (const NewtonRagDoll* ragDoll, int id); +// NEWTON_API NewtonRagDollBone* NewtonRagDollGetRootBone (const NewtonRagDoll* ragDoll); + + NEWTON_API void NewtonRagDollSetForceAndTorqueCallback (const NewtonRagDoll* ragDoll, NewtonApplyForceAndTorque callback); + NEWTON_API void NewtonRagDollSetTransformCallback (const NewtonRagDoll* ragDoll, NewtonSetRagDollTransform callback); + NEWTON_API NewtonRagDollBone* NewtonRagDollAddBone (const NewtonRagDoll* ragDoll, const NewtonRagDollBone* parent, + void *userData, dFloat mass, const dFloat* matrix, + const NewtonCollision* boneCollision, const dFloat* size); + + NEWTON_API void* NewtonRagDollBoneGetUserData (const NewtonRagDollBone* bone); + NEWTON_API NewtonBody* NewtonRagDollBoneGetBody (const NewtonRagDollBone* bone); + NEWTON_API void NewtonRagDollBoneSetID (const NewtonRagDollBone* bone, int id); + + + NEWTON_API void NewtonRagDollBoneSetLimits (const NewtonRagDollBone* bone, + const dFloat* coneDir, dFloat minConeAngle, dFloat maxConeAngle, dFloat maxTwistAngle, + const dFloat* bilateralConeDir, dFloat negativeBilateralConeAngle, dFloat positiveBilateralConeAngle); + +// NEWTON_API NewtonRagDollBone* NewtonRagDollBoneGetChild (const NewtonRagDollBone* bone); +// NEWTON_API NewtonRagDollBone* NewtonRagDollBoneGetSibling (const NewtonRagDollBone* bone); +// NEWTON_API NewtonRagDollBone* NewtonRagDollBoneGetParent (const NewtonRagDollBone* bone); +// NEWTON_API void NewtonRagDollBoneSetLocalMatrix (const NewtonRagDollBone* bone, dFloat* matrix); +// NEWTON_API void NewtonRagDollBoneSetGlobalMatrix (const NewtonRagDollBone* bone, dFloat* matrix); + + NEWTON_API void NewtonRagDollBoneGetLocalMatrix (const NewtonRagDollBone* bone, dFloat* matrix); + NEWTON_API void NewtonRagDollBoneGetGlobalMatrix (const NewtonRagDollBone* bone, dFloat* matrix); + + + + // ********************************************************************************************** + // + // Vehicle joint functions + // + // ********************************************************************************************** + NEWTON_API NewtonJoint* NewtonConstraintCreateVehicle (const NewtonWorld* newtonWorld, const dFloat* upDir, const NewtonBody* body); + NEWTON_API void NewtonVehicleReset (const NewtonJoint* vehicle); + NEWTON_API void NewtonVehicleSetTireCallback (const NewtonJoint* vehicle, NewtonVehicleTireUpdate update); + NEWTON_API void* NewtonVehicleAddTire (const NewtonJoint* vehicle, const dFloat* localMatrix, const dFloat* pin, dFloat mass, dFloat width, dFloat radius, + dFloat suspesionShock, dFloat suspesionSpring, dFloat suspesionLength, void* userData, int collisionID); + NEWTON_API void NewtonVehicleRemoveTire (const NewtonJoint* vehicle, void* tireId); + + NEWTON_API void* NewtonVehicleGetFirstTireID (const NewtonJoint* vehicle); + NEWTON_API void* NewtonVehicleGetNextTireID (const NewtonJoint* vehicle, void* tireId); + + NEWTON_API int NewtonVehicleTireIsAirBorne (const NewtonJoint* vehicle, void* tireId); + NEWTON_API int NewtonVehicleTireLostSideGrip (const NewtonJoint* vehicle, void* tireId); + NEWTON_API int NewtonVehicleTireLostTraction (const NewtonJoint* vehicle, void* tireId); + + NEWTON_API void* NewtonVehicleGetTireUserData (const NewtonJoint* vehicle, void* tireId); + NEWTON_API dFloat NewtonVehicleGetTireOmega (const NewtonJoint* vehicle, void* tireId); + NEWTON_API dFloat NewtonVehicleGetTireNormalLoad (const NewtonJoint* vehicle, void* tireId); + NEWTON_API dFloat NewtonVehicleGetTireSteerAngle (const NewtonJoint* vehicle, void* tireId); + NEWTON_API dFloat NewtonVehicleGetTireLateralSpeed (const NewtonJoint* vehicle, void* tireId); + NEWTON_API dFloat NewtonVehicleGetTireLongitudinalSpeed (const NewtonJoint* vehicle, void* tireId); + NEWTON_API void NewtonVehicleGetTireMatrix (const NewtonJoint* vehicle, void* tireId, dFloat* matrix); + + + NEWTON_API void NewtonVehicleSetTireTorque (const NewtonJoint* vehicle, void* tireId, dFloat torque); + NEWTON_API void NewtonVehicleSetTireSteerAngle (const NewtonJoint* vehicle, void* tireId, dFloat angle); + + NEWTON_API void NewtonVehicleSetTireMaxSideSleepSpeed (const NewtonJoint* vehicle, void* tireId, dFloat speed); + NEWTON_API void NewtonVehicleSetTireSideSleepCoeficient (const NewtonJoint* vehicle, void* tireId, dFloat coeficient); + NEWTON_API void NewtonVehicleSetTireMaxLongitudinalSlideSpeed (const NewtonJoint* vehicle, void* tireId, dFloat speed); + NEWTON_API void NewtonVehicleSetTireLongitudinalSlideCoeficient (const NewtonJoint* vehicle, void* tireId, dFloat coeficient); + + NEWTON_API dFloat NewtonVehicleTireCalculateMaxBrakeAcceleration (const NewtonJoint* vehicle, void* tireId); + NEWTON_API void NewtonVehicleTireSetBrakeAcceleration (const NewtonJoint* vehicle, void* tireId, dFloat accelaration, dFloat torqueLimit); + +#ifdef __cplusplus +} +#endif +#endif + + diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Unstable Version/1.3.3/README --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Unstable Version/1.3.3/README Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,13 @@ + Irrlicht Library Wrapper + Created by Nathan Adams + Version 1.3.3 + Copyright (C) 2008 + + This software is licensed under the GNU/GPL. + This software may not be used for commerical purposes. + + Please leave all files intact if you redistrubte this software. + +How to use: + Add all the files to your Irrlicht project, you could compile it into a DLL if you wanted too, but for now just add all the files to your project. + Then inside your complier add the directory that you have the IrrLib files and use #include "IrrLib.h" to refrence it, and you are good to go! \ No newline at end of file diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Unstable Version/1.3.3/_mouse.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Unstable Version/1.3.3/_mouse.h Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,9 @@ +#ifndef __MOUSE_H +#define __MOUSE_H + +struct _mouse { + int x; + int y; +}; + +#endif diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Unstable Version/1.3.3/dList.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Unstable Version/1.3.3/dList.h Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,486 @@ +//******************************************************************** +// Newton Game dynamics +// copyright 2000-2004 +// By Julio Jerez +// VC: 6.0 +// simple demo list vector class with iterators +//******************************************************************** + +#ifndef __dList__ +#define __dList__ + +#include + + +// this is a small double link list contatiner similar to STL, +// it is used to probody low level support for this demos. +// it implements a iterators, and all the basics operation on list found on the SDL class + +template +class dList +{ + public: + class dListNode + { + friend class dList; + dListNode *m_next; + dListNode *m_prev; + T m_info; + + dListNode (dListNode *prev, dListNode *next) + :m_info () + { + m_prev = prev; + m_next = next; + if (m_prev) { + m_prev->m_next = this; + } + if (m_next) { + m_next->m_prev = this; + } + } + + dListNode (const T &info, dListNode *prev, dListNode *next) + :m_info (info) + { + m_prev = prev; + m_next = next; + if (m_prev) { + m_prev->m_next = this; + } + if (m_next) { + m_next->m_prev = this; + } + } + + ~dListNode() + { + } + + void Unlink () + { + if (m_prev) { + m_prev->m_next = m_next; + } + + if (m_next) { + m_next->m_prev = m_prev; + } + m_prev = NULL; + m_next = NULL; + } + + void Remove() + { + Unlink(); + delete this; + } + + void AddLast(dListNode *node) + { + m_next = node; + node->m_prev = this; + } + + void AddFirst(dListNode *node) + { + m_prev = node; + node->m_next = this; + } + + void *operator new (size_t size) + { + return malloc(size); + } + + void operator delete (void *ptr) + { + free(ptr); + } + + public: + T& GetInfo() + { + return m_info; + } + + dListNode *GetNext() const + { + return m_next; + } + + dListNode *GetPrev() const + { + return m_prev; + } + }; + + class Iterator + { + dListNode *m_ptr; + dList *m_list; + + public: + Iterator (const dList &me) + { + m_ptr = NULL; + m_list = (dList *)&me; + } + + ~Iterator () + { + } + + operator int() const + { + return m_ptr != NULL; + } + + bool operator== (const Iterator &target) const + { + return (m_ptr == target.m_ptr) && (m_list == target.m_list); + } + + void Begin() + { + m_ptr = m_list->GetFirst(); + } + + void End() + { + m_ptr = m_list->GetLast(); + } + + void Set (dListNode *node) + { + m_ptr = node; + } + + void operator++ () + { + m_ptr = m_ptr->m_next(); + } + + void operator++ (int) + { + m_ptr = m_ptr->GetNext(); + } + + void operator-- () + { + m_ptr = m_ptr->GetPrev(); + } + + void operator-- (int) + { + m_ptr = m_ptr->GetPrev(); + } + + T &operator* () const + { + return m_ptr->GetInfo(); + } + + dListNode *GetNode() const + { + return m_ptr; + } + }; + + // *********************************************************** + // member functions + // *********************************************************** + public: + dList (); + ~dList (); + + void* operator new (size_t size); + void operator delete (void *ptr); + + operator int() const; + int GetCount() const; + dListNode *GetLast() const; + dListNode *GetFirst() const; + void Append (); + void Append (dListNode *node); + void Append (const T &element); + void Addtop (); + void Addtop (dListNode *node); + void Addtop (const T &element); + void RotateToEnd (dListNode *node); + void RotateToBegin (dListNode *node); + void InsertAfter (dListNode *root, dListNode *node); + + dListNode *Find (const T &element) const; + dListNode *GetNodeFromInfo (T &m_info) const; + void Remove (dListNode *node); + void Remove (const T &element); + void RemoveAll (); + + + // *********************************************************** + // member variables + // *********************************************************** + private: + int m_count; + dListNode *m_last; + dListNode *m_first; + friend class dListNode; +}; + + +template +dList::dList () +{ + m_count = 0; + m_first = NULL; + m_last = NULL; +} + + +template +dList::~dList () +{ + RemoveAll (); +} + + +template +void* dList::operator new (size_t size) +{ + return malloc (size); +} + +template +void dList::operator delete (void *ptr) +{ + free (ptr); +} + + +template +int dList::GetCount() const +{ + return m_count; +} + +template +dList::operator int() const +{ + return m_first != NULL; +} + +template +typename dList::dListNode *dList::GetFirst() const +{ + return m_first; +} + +template +typename dList::dListNode *dList::GetLast() const +{ + return m_last; +} + +template +void dList::Append (dListNode *node) +{ + m_count ++; + if (m_first == NULL) { + m_last = node; + m_first = node; + } else { + m_last->AddLast (node); + m_last = node; + } + node->AddRef(); + node->Unkill(); + +} + +template +void dList::Append () +{ + m_count ++; + if (m_first == NULL) { + m_first = new dListNode(NULL, NULL); + m_last = m_first; + } else { + m_last = new dListNode(m_last, NULL); + } + +} + +template +void dList::Append (const T &element) +{ + m_count ++; + if (m_first == NULL) { + m_first = new dListNode(element, NULL, NULL); + m_last = m_first; + } else { + m_last = new dListNode(element, m_last, NULL); + } + +} + +template +void dList::Addtop (dListNode *node) +{ + m_count ++; + if (m_last == NULL) { + m_last = node; + m_first = node; + } else { + m_first->AddFirst(node); + m_first = node; + } + node->AddRef(); + node->Unkill(); + +} + + +template +void dList::Addtop () +{ + m_count ++; + if (m_last == NULL) { + m_last = new dListNode(NULL, NULL); + m_first = m_last; + } else { + m_first = new dListNode(NULL, m_first); + } + +} + + +template +void dList::Addtop (const T &element) +{ + m_count ++; + if (m_last == NULL) { + m_last = new dListNode(element, NULL, NULL); + m_first = m_last; + } else { + m_first = new dListNode(element, NULL, m_first); + } + +} + +template +void dList::InsertAfter (dListNode *root, dListNode *node) +{ + + node->m_prev = root; + node->m_next = root->m_next; + if (root->m_next) { + root->m_next->m_prev = node; + } + root->m_next = node; + + if (root == m_last) { + m_last = node; + } +} + +template +void dList::RotateToEnd (dListNode *node) +{ + if (node != m_last) { + if (m_last != m_first) { + if (node == m_first) { + m_first = m_first->GetNext(); + } + node->Unlink(); + m_last->AddLast(node); + m_last = node; + } + } +} + +template +void dList::RotateToBegin (dListNode *node) +{ + if (node != m_first) { + if (m_last != m_first) { + if (node == m_last) { + m_last = m_last->GetPrev(); + } + node->Unlink(); + m_first->AddFirst(node); + m_first = node; + } + } +} + + +template +typename dList::dListNode *dList::Find (const T &element) const +{ + dListNode *node; + for (node = m_first; node; node = node->GetNext()) { + if (element == node->m_info) { + break; + } + } + return node; +} + +/* +template +typename dList::dListNode *dList::GetNodeFromInfo (T &info) const +{ + dListNode *ptr; + dgUnsigned64 offset; + + ptr = (dListNode *) &info; + offset = dgUnsigned64 (&ptr->m_info) - dgUnsigned64 (ptr); + ptr = (dListNode *) (dgUnsigned64 (&info) - offset); + + return ptr; +} + */ + +template +void dList::Remove (const T &element) +{ + dListNode *node; + + node = Find (element); + if (node) { + Remove (node); + } +} + +template +void dList::Remove (dListNode *node) +{ + m_count --; + + if (node == m_first) { + m_first = m_first->GetNext(); + } + if (node == m_last) { + m_last = m_last->GetPrev(); + } + node->Remove(); +} + +template +void dList::RemoveAll () +{ + dListNode *node; + for (node = m_first; node; node = m_first) { + m_count --; + m_first = node->GetNext(); + node->Remove(); + } + m_last = NULL; + m_first = NULL; +} + + + +#endif + diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Unstable Version/1.3.3/dMatrix.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Unstable Version/1.3.3/dMatrix.cpp Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,52 @@ +//******************************************************************** +// Newton Game dynamics +// copyright 2000 +// By Julio Jerez +// VC: 6.0 +// simple 4d matrix class +//******************************************************************** + + +#include +#include +#include + +dMatrix::dMatrix (const dQuaternion &rotation, const dVector &position) +{ + dFloat x2; + dFloat y2; + dFloat z2; + dFloat w2; + dFloat xy; + dFloat xz; + dFloat xw; + dFloat yz; + dFloat yw; + dFloat zw; + + w2 = dFloat (2.0f) * rotation.m_q0 * rotation.m_q0; + x2 = dFloat (2.0f) * rotation.m_q1 * rotation.m_q1; + y2 = dFloat (2.0f) * rotation.m_q2 * rotation.m_q2; + z2 = dFloat (2.0f) * rotation.m_q3 * rotation.m_q3; + + _ASSERTE (dAbs (w2 + x2 + y2 + z2 - dFloat(2.0f)) < dFloat (1.5e-4f)); + + xy = dFloat (2.0f) * rotation.m_q1 * rotation.m_q2; + xz = dFloat (2.0f) * rotation.m_q1 * rotation.m_q3; + xw = dFloat (2.0f) * rotation.m_q1 * rotation.m_q0; + yz = dFloat (2.0f) * rotation.m_q2 * rotation.m_q3; + yw = dFloat (2.0f) * rotation.m_q2 * rotation.m_q0; + zw = dFloat (2.0f) * rotation.m_q3 * rotation.m_q0; + + + m_front = dVector (w2 + x2 - dFloat(1.0f), xy + zw, xz - yw , dFloat(0.0f)); + m_up = dVector (xy - zw, w2 + y2 - dFloat(1.0f), yz + xw , dFloat(0.0f)); + m_right = dVector (xz + yw, yz - xw, w2 + z2 - dFloat(1.0f), dFloat(0.0f)); + + m_posit.m_x = position.m_x; + m_posit.m_y = position.m_y; + m_posit.m_z = position.m_z; + m_posit.m_w = dFloat(1.0f); +} + + diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Unstable Version/1.3.3/dMatrix.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Unstable Version/1.3.3/dMatrix.h Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,263 @@ +//******************************************************************** +// Newton Game dynamics +// copyright 2000 +// By Julio Jerez +// VC: 6.0 +// simple 4d matrix class +//******************************************************************** + +#ifndef __dMatrix__ +#define __dMatrix__ + +#include +#include +#include + +class dQuaternion; + +// small but fully operational 4x4 matrix class +class dQuaternion; + +class dMatrix +{ + public: + dMatrix (); + dMatrix (const dVector &front, const dVector &up, const dVector &right, const dVector &posit); + dMatrix (const dQuaternion &rotation, const dVector &position); + + dVector& operator[] (int i); + const dVector& operator[] (int i) const; + + dMatrix Inverse () const; + dMatrix Transpose () const; + dMatrix Transpose4X4 () const; + dVector RotateVector (const dVector &v) const; + dVector UnrotateVector (const dVector &v) const; + dVector TransformVector (const dVector &v) const; + dVector UntransformVector (const dVector &v) const; + + void TransformTriplex (void* const dst, int dstStrideInBytes, + void* const src, int srcStrideInBytes, int count) const; + + dMatrix operator* (const dMatrix &B) const; + + + dVector m_front; + dVector m_up; + dVector m_right; + dVector m_posit; +}; + + +inline dMatrix GetIdentityMatrix() +{ + return dMatrix (dVector (1.0f, 0.0f, 0.0f, 0.0f), + dVector (0.0f, 1.0f, 0.0f, 0.0f), + dVector (0.0f, 0.0f, 1.0f, 0.0f), + dVector (0.0f, 0.0f, 0.0f, 1.0f)); +} + +inline dMatrix GetZeroMatrix () +{ + return dMatrix (dVector (0.0f, 0.0f, 0.0f, 0.0f), + dVector (0.0f, 0.0f, 0.0f, 0.0f), + dVector (0.0f, 0.0f, 0.0f, 0.0f), + dVector (0.0f, 0.0f, 0.0f, 0.0f)); +} + + +inline dMatrix::dMatrix () +{ +} + +inline dMatrix::dMatrix ( + const dVector &front, + const dVector &up, + const dVector &right, + const dVector &posit) + :m_front (front), m_up(up), m_right(right), m_posit(posit) +{ +} + + + +inline dVector& dMatrix::operator[] (int i) +{ + return (&m_front)[i]; +} + +inline const dVector& dMatrix::operator[] (int i) const +{ + return (&m_front)[i]; +} + +inline dMatrix dMatrix::Inverse () const +{ + return dMatrix (dVector (m_front.m_x, m_up.m_x, m_right.m_x, 0.0f), + dVector (m_front.m_y, m_up.m_y, m_right.m_y, 0.0f), + dVector (m_front.m_z, m_up.m_z, m_right.m_z, 0.0f), + dVector (- (m_posit % m_front), - (m_posit % m_up), - (m_posit % m_right), 1.0f)); +} + +inline dMatrix dMatrix::Transpose () const +{ + return dMatrix (dVector (m_front.m_x, m_up.m_x, m_right.m_x, 0.0f), + dVector (m_front.m_y, m_up.m_y, m_right.m_y, 0.0f), + dVector (m_front.m_z, m_up.m_z, m_right.m_z, 0.0f), + dVector (0.0f, 0.0f, 0.0f, 1.0f)); +} + +inline dMatrix dMatrix::Transpose4X4 () const +{ + return dMatrix (dVector (m_front.m_x, m_up.m_x, m_right.m_x, m_posit.m_x), + dVector (m_front.m_y, m_up.m_y, m_right.m_y, m_posit.m_y), + dVector (m_front.m_z, m_up.m_z, m_right.m_z, m_posit.m_z), + dVector (m_front.m_w, m_up.m_w, m_right.m_w, m_posit.m_w)); + +} + +inline dVector dMatrix::RotateVector (const dVector &v) const +{ + return dVector (v.m_x * m_front.m_x + v.m_y * m_up.m_x + v.m_z * m_right.m_x, + v.m_x * m_front.m_y + v.m_y * m_up.m_y + v.m_z * m_right.m_y, + v.m_x * m_front.m_z + v.m_y * m_up.m_z + v.m_z * m_right.m_z); +} + + +inline dVector dMatrix::UnrotateVector (const dVector &v) const +{ + return dVector (v % m_front, v % m_up, v % m_right); +} + + +inline dVector dMatrix::TransformVector (const dVector &v) const +{ + return m_posit + RotateVector(v); +} + +inline dVector dMatrix::UntransformVector (const dVector &v) const +{ + return UnrotateVector(v - m_posit); +} + + +inline void dMatrix::TransformTriplex ( + void* const dstPtr, + int dstStrideInBytes, + void* const srcPtr, + int srcStrideInBytes, + int count) const +{ + int i; + dFloat x; + dFloat y; + dFloat z; + dFloat* dst; + dFloat* src; + + dst = (dFloat*) dstPtr; + src = (dFloat*) srcPtr; + + dstStrideInBytes /= sizeof (dFloat); + srcStrideInBytes /= sizeof (dFloat); + + for (i = 0 ; i < count; i ++ ) { + x = src[0]; + y = src[1]; + z = src[2]; + dst[0] = x * m_front.m_x + y * m_up.m_x + z * m_right.m_x + m_posit.m_x; + dst[1] = x * m_front.m_y + y * m_up.m_y + z * m_right.m_y + m_posit.m_y; + dst[2] = x * m_front.m_z + y * m_up.m_z + z * m_right.m_z + m_posit.m_z; + dst += dstStrideInBytes; + src += srcStrideInBytes; + } +} + + +inline dMatrix dMatrix::operator* (const dMatrix &B) const +{ + const dMatrix& A = *this; + return dMatrix (dVector (A[0][0] * B[0][0] + A[0][1] * B[1][0] + A[0][2] * B[2][0] + A[0][3] * B[3][0], + A[0][0] * B[0][1] + A[0][1] * B[1][1] + A[0][2] * B[2][1] + A[0][3] * B[3][1], + A[0][0] * B[0][2] + A[0][1] * B[1][2] + A[0][2] * B[2][2] + A[0][3] * B[3][2], + A[0][0] * B[0][3] + A[0][1] * B[1][3] + A[0][2] * B[2][3] + A[0][3] * B[3][3]), + dVector (A[1][0] * B[0][0] + A[1][1] * B[1][0] + A[1][2] * B[2][0] + A[1][3] * B[3][0], + A[1][0] * B[0][1] + A[1][1] * B[1][1] + A[1][2] * B[2][1] + A[1][3] * B[3][1], + A[1][0] * B[0][2] + A[1][1] * B[1][2] + A[1][2] * B[2][2] + A[1][3] * B[3][2], + A[1][0] * B[0][3] + A[1][1] * B[1][3] + A[1][2] * B[2][3] + A[1][3] * B[3][3]), + dVector (A[2][0] * B[0][0] + A[2][1] * B[1][0] + A[2][2] * B[2][0] + A[2][3] * B[3][0], + A[2][0] * B[0][1] + A[2][1] * B[1][1] + A[2][2] * B[2][1] + A[2][3] * B[3][1], + A[2][0] * B[0][2] + A[2][1] * B[1][2] + A[2][2] * B[2][2] + A[2][3] * B[3][2], + A[2][0] * B[0][3] + A[2][1] * B[1][3] + A[2][2] * B[2][3] + A[2][3] * B[3][3]), + dVector (A[3][0] * B[0][0] + A[3][1] * B[1][0] + A[3][2] * B[2][0] + A[3][3] * B[3][0], + A[3][0] * B[0][1] + A[3][1] * B[1][1] + A[3][2] * B[2][1] + A[3][3] * B[3][1], + A[3][0] * B[0][2] + A[3][1] * B[1][2] + A[3][2] * B[2][2] + A[3][3] * B[3][2], + A[3][0] * B[0][3] + A[3][1] * B[1][3] + A[3][2] * B[2][3] + A[3][3] * B[3][3])); +} + + +// calculate an orthonormal matrix with the front vector pointing on the +// dir direction, and the up and right are determined by using the Gramm Schidth procedure +inline dMatrix dgGrammSchmidt(const dVector& dir) +{ + dVector up; + dVector right; + dVector front (dir); + + front = front.Scale(1.0f / dSqrt (front % front)); + if (dAbs (front.m_z) > 0.577f) { + right = front * dVector (-front.m_y, front.m_z, 0.0f); + } else { + right = front * dVector (-front.m_y, front.m_x, 0.0f); + } + right = right.Scale (1.0f / dSqrt (right % right)); + up = right * front; + + front.m_w = 0.0f; + up.m_w = 0.0f; + right.m_w = 0.0f; + return dMatrix (front, up, right, dVector (0.0f, 0.0f, 0.0f, 1.0f)); +} + +inline dMatrix dgPitchMatrix(dFloat ang) +{ + dFloat cosAng; + dFloat sinAng; + sinAng = dSin (ang); + cosAng = dCos (ang); + return dMatrix (dVector (1.0f, 0.0f, 0.0f, 0.0f), + dVector (0.0f, cosAng, sinAng, 0.0f), + dVector (0.0f, -sinAng, cosAng, 0.0f), + dVector (0.0f, 0.0f, 0.0f, 1.0f)); + +} + +inline dMatrix dgYawMatrix(dFloat ang) +{ + dFloat cosAng; + dFloat sinAng; + sinAng = dSin (ang); + cosAng = dCos (ang); + return dMatrix (dVector (cosAng, 0.0f, -sinAng, 0.0f), + dVector (0.0f, 1.0f, 0.0f, 0.0f), + dVector (sinAng, 0.0f, cosAng, 0.0f), + dVector (0.0f, 0.0f, 0.0f, 1.0f)); +} + +inline dMatrix dgRollMatrix(dFloat ang) +{ + dFloat cosAng; + dFloat sinAng; + sinAng = dSin (ang); + cosAng = dCos (ang); + return dMatrix (dVector ( cosAng, sinAng, 0.0f, 0.0f), + dVector (-sinAng, cosAng, 0.0f, 0.0f), + dVector ( 0.0f, 0.0f, 1.0f, 0.0f), + dVector ( 0.0f, 0.0f, 0.0f, 1.0f)); +} + + + + + +#endif diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Unstable Version/1.3.3/dQuaternion.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Unstable Version/1.3.3/dQuaternion.cpp Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,182 @@ +//******************************************************************** +// Newton Game dynamics +// copyright 2000-2004 +// By Julio Jerez +// VC: 6.0 +// basic Hierarchical Scene Node Class +//******************************************************************** + +#include +#include +#include +#include + + + + +enum QUAT_INDEX +{ + X_INDEX=0, + Y_INDEX=1, + Z_INDEX=2 +}; +static QUAT_INDEX QIndex [] = {Y_INDEX, Z_INDEX, X_INDEX}; + + +dQuaternion::dQuaternion (const dMatrix &matrix) +{ + dFloat *ptr; + dFloat trace; + QUAT_INDEX i; + QUAT_INDEX j; + QUAT_INDEX k; + + trace = matrix[0][0] + matrix[1][1] + matrix[2][2]; + + if (trace > dFloat(0.0f)) { + trace = dSqrt (trace + dFloat(1.0f)); + m_q0 = dFloat (0.5f) * trace; + trace = dFloat (0.5f) / trace; + + m_q1 = (matrix[2][1] - matrix[1][2]) * trace; + m_q2 = (matrix[0][2] - matrix[2][0]) * trace; + m_q3 = (matrix[1][0] - matrix[0][1]) * trace; + + } else { + i = X_INDEX; + if (matrix[Y_INDEX][Y_INDEX] > matrix[X_INDEX][X_INDEX]) { + i = Y_INDEX; + } + if (matrix[Z_INDEX][Z_INDEX] > matrix[i][i]) { + i = Z_INDEX; + } + j = QIndex [i]; + k = QIndex [j]; + + trace = dFloat(1.0f) + matrix[i][i] - matrix[j][j] - matrix[k][k]; + trace = dSqrt (trace); + + ptr = &m_q1; + ptr[i] = dFloat (0.5f) * trace; + trace = dFloat (0.5f) / trace; + ptr[3] = (matrix[k][j] - matrix[j][k]) * trace; + ptr[j] = (matrix[j][i] + matrix[i][j]) * trace; + ptr[k] = (matrix[k][i] + matrix[i][k]) * trace; + } + + m_q1 *= dFloat (-1.0f); + m_q2 *= dFloat (-1.0f);; + m_q3 *= dFloat (-1.0f);; + +#if _DEBUG + dFloat err = dAbs (DotProduct(*this) - dFloat(1.0f)); + _ASSERTE (err < dFloat(1.0e-3f)); +#endif + +} + + +dQuaternion::dQuaternion (const dVector &unitAxis, dFloat Angle) +{ + dFloat sinAng; + + Angle *= dFloat (0.5f); + m_q0 = dCos (Angle); + sinAng = dSin (Angle); + +#ifdef _DEBUG + if (dAbs (Angle) > dFloat(1.0e-6f)) { + _ASSERTE (dAbs (dFloat(1.0f) - unitAxis % unitAxis) < dFloat(1.0e-3f)); + } +#endif + m_q1 = unitAxis.m_x * sinAng; + m_q2 = unitAxis.m_y * sinAng; + m_q3 = unitAxis.m_z * sinAng; +} + + +dVector dQuaternion::CalcAverageOmega (const dQuaternion &QB, dFloat dt) const +{ + dFloat dirMag; + dFloat dirMag2; + dFloat omegaMag; + dFloat dirMagInv; + + + dQuaternion dq (Inverse() * QB); + dVector omegaDir (dq.m_q1, dq.m_q2, dq.m_q3); + + dirMag2 = omegaDir % omegaDir; + if (dirMag2 < dFloat(dFloat (1.0e-5f) * dFloat (1.0e-5f))) { + return dVector (dFloat(0.0f), dFloat(0.0f), dFloat(0.0f), dFloat(0.0f)); + } + + dirMagInv = dFloat (1.0f) / dSqrt (dirMag2); + dirMag = dirMag2 * dirMagInv; + + omegaMag = dFloat(2.0f) * dAtan2 (dirMag, dq.m_q0) / dt; + + return omegaDir.Scale (dirMagInv * omegaMag); +} + + +dQuaternion dQuaternion::Slerp (const dQuaternion &QB, dFloat t) const +{ + dFloat dot; + dFloat ang; + dFloat Sclp; + dFloat Sclq; + dFloat den; + dFloat sinAng; + dQuaternion Q; + + dot = DotProduct (QB); + + if ((dot + dFloat(1.0f)) > dFloat(1.0e-5f)) { + if (dot < dFloat(0.995f)) { + + ang = dAcos (dot); + + sinAng = dSin (ang); + den = dFloat(1.0f) / sinAng; + + Sclp = dSin ((dFloat(1.0f) - t ) * ang) * den; + Sclq = dSin (t * ang) * den; + + } else { + Sclp = dFloat(1.0f) - t; + Sclq = t; + } + + Q.m_q0 = m_q0 * Sclp + QB.m_q0 * Sclq; + Q.m_q1 = m_q1 * Sclp + QB.m_q1 * Sclq; + Q.m_q2 = m_q2 * Sclp + QB.m_q2 * Sclq; + Q.m_q3 = m_q3 * Sclp + QB.m_q3 * Sclq; + + } else { + Q.m_q0 = m_q3; + Q.m_q1 = -m_q2; + Q.m_q2 = m_q1; + Q.m_q3 = m_q0; + + Sclp = dSin ((dFloat(1.0f) - t) * dFloat (3.1416f *0.5f)); + Sclq = dSin (t * dFloat (3.1416f * 0.5f)); + + Q.m_q0 = m_q0 * Sclp + Q.m_q0 * Sclq; + Q.m_q1 = m_q1 * Sclp + Q.m_q1 * Sclq; + Q.m_q2 = m_q2 * Sclp + Q.m_q2 * Sclq; + Q.m_q3 = m_q3 * Sclp + Q.m_q3 * Sclq; + } + + dot = Q.DotProduct (Q); + if ((dot) < (1.0f - 1.0e-4f) ) { + dot = dFloat(1.0f) / dSqrt (dot); + //dot = dgRsqrt (dot); + Q.m_q0 *= dot; + Q.m_q1 *= dot; + Q.m_q2 *= dot; + Q.m_q3 *= dot; + } + return Q; +} + diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Unstable Version/1.3.3/dQuaternion.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Unstable Version/1.3.3/dQuaternion.h Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,126 @@ +//******************************************************************** +// Newton Game dynamics +// copyright 2000 +// By Julio Jerez +// VC: 6.0 +// simple 4d matrix class +//******************************************************************** + + +#ifndef __dQuaternion__ +#define __dQuaternion__ + +#include + +class dVector; +class dMatrix; + + +class dQuaternion +{ + public: + dQuaternion (); + dQuaternion (const dMatrix &matrix); + dQuaternion (dFloat q0, dFloat q1, dFloat q2, dFloat q3); + dQuaternion (const dVector &unit_Axis, dFloat Angle = 0.0f); + + void Scale (dFloat scale); + void Normalize (); + inline dFloat DotProduct (const dQuaternion &QB) const; + dQuaternion Inverse () const; + + dQuaternion Slerp (const dQuaternion &q1, dFloat t) const; + dVector CalcAverageOmega (const dQuaternion &q1, dFloat dt) const; + +// friend dQuaternion operator* (const dQuaternion &A, const dQuaternion &B); +// friend dQuaternion operator+ (const dQuaternion &A, const dQuaternion &B); +// friend dQuaternion operator- (const dQuaternion &A, const dQuaternion &B); + + dQuaternion operator* (const dQuaternion &B) const; + dQuaternion operator+ (const dQuaternion &B) const; + dQuaternion operator- (const dQuaternion &B) const; + + dFloat m_q1; + dFloat m_q2; + dFloat m_q3; + dFloat m_q0; +}; + + + + +inline dQuaternion::dQuaternion () +{ + m_q0 = 1.0f; + m_q1 = 0.0f; + m_q2 = 0.0f; + m_q3 = 0.0f; +} + +inline dQuaternion::dQuaternion (dFloat Q0, dFloat Q1, dFloat Q2, dFloat Q3) +{ + m_q0 = Q0; + m_q1 = Q1; + m_q2 = Q2; + m_q3 = Q3; + _ASSERTE (dAbs (DotProduct (*this) - 1.0f) < 1.0e-4f); +} + + + +inline void dQuaternion::Scale (dFloat scale) +{ + m_q0 *= scale; + m_q1 *= scale; + m_q2 *= scale; + m_q3 *= scale; +} + +inline void dQuaternion::Normalize () +{ + Scale (1.0f / dSqrt (DotProduct (*this))); +} + +inline dFloat dQuaternion::DotProduct (const dQuaternion &QB) const +{ + return m_q0 * QB.m_q0 + m_q1 * QB.m_q1 + m_q2 * QB.m_q2 + m_q3 * QB.m_q3; +} + +inline dQuaternion dQuaternion::Inverse () const +{ + return dQuaternion (m_q0, -m_q1, -m_q2, -m_q3); +} + +/* +inline dQuaternion operator+ (const dQuaternion &A, const dQuaternion &B) +{ + return dQuaternion (A.m_q0 + B.m_q0, A.m_q1 + B.m_q1, A.m_q2 + B.m_q2, A.m_q3 + B.m_q3); +} + +inline dQuaternion operator- (const dQuaternion &A, const dQuaternion &B) +{ + return dQuaternion (A.m_q0 - B.m_q0, A.m_q1 - B.m_q1, A.m_q2 - B.m_q2, A.m_q3 - B.m_q3); +} +*/ + +inline dQuaternion dQuaternion::operator+ (const dQuaternion &B) const +{ + return dQuaternion (m_q0 + B.m_q0, m_q1 + B.m_q1, m_q2 + B.m_q2, m_q3 + B.m_q3); +} + +inline dQuaternion dQuaternion::operator- (const dQuaternion &B) const +{ + return dQuaternion (m_q0 - B.m_q0, m_q1 - B.m_q1, m_q2 - B.m_q2, m_q3 - B.m_q3); +} + + +inline dQuaternion dQuaternion::operator* (const dQuaternion &B) const +{ + return dQuaternion (B.m_q0 * m_q0 - B.m_q1 * m_q1 - B.m_q2 * m_q2 - B.m_q3 * m_q3, + B.m_q1 * m_q0 + B.m_q0 * m_q1 - B.m_q3 * m_q2 + B.m_q2 * m_q3, + B.m_q2 * m_q0 + B.m_q3 * m_q1 + B.m_q0 * m_q2 - B.m_q1 * m_q3, + B.m_q3 * m_q0 - B.m_q2 * m_q1 + B.m_q1 * m_q2 + B.m_q0 * m_q3); +} + + +#endif diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Unstable Version/1.3.3/dVector.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Unstable Version/1.3.3/dVector.h Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,182 @@ +//******************************************************************** +// Newton Game dynamics +// copyright 2000-2004 +// By Julio Jerez +// VC: 6.0 +// simple 4d vector class +//******************************************************************** + + +#ifndef __dVector__ +#define __dVector__ + +//#define dFloat float +#include +#include + +// small but very effective 4 dimetional template vector class + +template +class TemplateVector +{ + public: + TemplateVector (); + TemplateVector (const T *ptr); + TemplateVector (T m_x, T m_y, T m_z, T m_w); + TemplateVector Scale (T s) const; + + T& operator[] (int i); + const T& operator[] (int i) const; + + TemplateVector operator+ (const TemplateVector &A) const; + TemplateVector operator- (const TemplateVector &A) const; + TemplateVector &operator+= (const TemplateVector &A); + TemplateVector &operator-= (const TemplateVector &A); + + // return dot product + T operator% (const TemplateVector &A) const; + + // return cross product + TemplateVector operator* (const TemplateVector &B) const; + + // component wise multiplication + TemplateVector CompProduct (const TemplateVector &A) const; + + T m_x; + T m_y; + T m_z; + T m_w; +}; + + +class dVector: public TemplateVector +{ + public: + dVector(); + dVector (const TemplateVector& v); + dVector (const dFloat *ptr); + dVector (dFloat x, dFloat y, dFloat z, dFloat w = 1.0); +}; + + + + + +template +TemplateVector::TemplateVector() {} + +template +TemplateVector::TemplateVector(const T *ptr) +{ + m_x = ptr[0]; + m_y = ptr[1]; + m_z = ptr[2]; + m_w = 1.0; +} + +template +TemplateVector::TemplateVector(T x, T y, T z, T w) +{ + m_x = x; + m_y = y; + m_z = z; + m_w = w; +} + + +template +T& TemplateVector::operator[] (int i) +{ + return (&m_x)[i]; +} + +template +const T& TemplateVector::operator[] (int i) const +{ + return (&m_x)[i]; +} + +template +TemplateVector TemplateVector::Scale (T scale) const +{ + return TemplateVector (m_x * scale, m_y * scale, m_z * scale, m_w); +} + + +template +TemplateVector TemplateVector::operator+ (const TemplateVector &B) const +{ + return TemplateVector (m_x + B.m_x, m_y + B.m_y, m_z + B.m_z, m_w); +} + +template +TemplateVector& TemplateVector::operator+= (const TemplateVector &A) +{ + m_x += A.m_x; + m_y += A.m_y; + m_z += A.m_z; + return *this; +} + +template +TemplateVector TemplateVector::operator- (const TemplateVector &A) const +{ + return TemplateVector (m_x - A.m_x, m_y - A.m_y, m_z - A.m_z, m_w); +} + +template +TemplateVector& TemplateVector::operator-= (const TemplateVector &A) +{ + m_x -= A.m_x; + m_y -= A.m_y; + m_z -= A.m_z; + return *this; +} + + +template +T TemplateVector::operator% (const TemplateVector &A) const +{ + return m_x * A.m_x + m_y * A.m_y + m_z * A.m_z; +} + + +template +TemplateVector TemplateVector::operator* (const TemplateVector &B) const +{ + return TemplateVector (m_y * B.m_z - m_z * B.m_y, + m_z * B.m_x - m_x * B.m_z, + m_x * B.m_y - m_y * B.m_x, m_w); +} + + + +template +TemplateVector TemplateVector::CompProduct (const TemplateVector &A) const +{ + return TemplateVector (m_x * A.m_x, m_y * A.m_y, m_z * A.m_z, A.m_w); +} + + + +inline dVector::dVector() + :TemplateVector() +{ +} + +inline dVector::dVector (const TemplateVector& v) + :TemplateVector(v) +{ +} + +inline dVector::dVector (const dFloat *ptr) + :TemplateVector(ptr) +{ +} + +inline dVector::dVector (dFloat x, dFloat y, dFloat z, dFloat w) + :TemplateVector(x, y, z, w) +{ +} + +#endif diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Unstable Version/1.3.3/glut.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Unstable Version/1.3.3/glut.h Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,476 @@ +#ifndef __glut_h__ +#define __glut_h__ + +/* Copyright (c) Mark J. Kilgard, 1994, 1995, 1996. */ + +/* This program is freely distributable without licensing fees and is + provided without guarantee or warrantee expressed or implied. This + program is -not- in the public domain. */ + +#if defined(WIN32) +#include +#pragma warning (disable:4244) /* disable bogus conversion warnings */ +#endif +#include +#include + +/* define APIENTRY and CALLBACK to null string if we aren't on Win32 */ +#if !defined(WIN32) +#define APIENTRY +#define CALLBACK +#endif + +#ifdef __cplusplus +extern "C" { +#endif + +/** + GLUT API revision history: + + GLUT_API_VERSION is updated to reflect incompatible GLUT + API changes (interface changes, semantic changes, deletions, + or additions). + + GLUT_API_VERSION=1 First public release of GLUT. 11/29/94 + + GLUT_API_VERSION=2 Added support for OpenGL/GLX multisampling, + extension. Supports new input devices like tablet, dial and button + box, and Spaceball. Easy to query OpenGL extensions. + + GLUT_API_VERSION=3 glutMenuStatus added. + + GLUT_API_VERSION=4 glutInitDisplayString, glutWarpPointer, + glutBitmapLength, glutStrokeLength, glutWindowStatusFunc, dynamic + video resize subAPI (NOT FINALIZED!). +**/ +#ifndef GLUT_API_VERSION /* allow this to be overriden */ +#define GLUT_API_VERSION 3 +#endif + +/** + GLUT implementation revision history: + + GLUT_XLIB_IMPLEMENTATION is updated to reflect both GLUT + API revisions and implementation revisions (ie, bug fixes). + + GLUT_XLIB_IMPLEMENTATION=1 mjk's first public release of + GLUT Xlib-based implementation. 11/29/94 + + GLUT_XLIB_IMPLEMENTATION=2 mjk's second public release of + GLUT Xlib-based implementation providing GLUT version 2 + interfaces. + + GLUT_XLIB_IMPLEMENTATION=3 mjk's GLUT 2.2 images. 4/17/95 + + GLUT_XLIB_IMPLEMENTATION=4 mjk's GLUT 2.3 images. 6/?/95 + + GLUT_XLIB_IMPLEMENTATION=5 mjk's GLUT 3.0 images. 10/?/95 + + GLUT_XLIB_IMPLEMENTATION=7 mjk's GLUT 3.1+ with glutWarpPoitner. 7/24/96 + + GLUT_XLIB_IMPLEMENTATION=8 mjk's GLUT 3.1+ with glutWarpPoitner + and video resize. 1/3/97 + + GLUT_XLIB_IMPLEMENTATION=9 mjk's GLUT 3.4 release with early GLUT 4 routines. +**/ +#ifndef GLUT_XLIB_IMPLEMENTATION /* Allow this to be overriden. */ +#define GLUT_XLIB_IMPLEMENTATION 9 +#endif + +/* Display mode bit masks. */ +#define GLUT_RGB 0 +#define GLUT_RGBA GLUT_RGB +#define GLUT_INDEX 1 +#define GLUT_SINGLE 0 +#define GLUT_DOUBLE 2 +#define GLUT_ACCUM 4 +#define GLUT_ALPHA 8 +#define GLUT_DEPTH 16 +#define GLUT_STENCIL 32 +#if (GLUT_API_VERSION >= 2) +#define GLUT_MULTISAMPLE 128 +#define GLUT_STEREO 256 +#endif +#if (GLUT_API_VERSION >= 3) +#define GLUT_LUMINANCE 512 +#endif + +/* Mouse buttons. */ +#define GLUT_LEFT_BUTTON 0 +#define GLUT_MIDDLE_BUTTON 1 +#define GLUT_RIGHT_BUTTON 2 + +/* Mouse button state. */ +#define GLUT_DOWN 0 +#define GLUT_UP 1 + +#if (GLUT_API_VERSION >= 2) +/* function keys */ +#define GLUT_KEY_F1 1 +#define GLUT_KEY_F2 2 +#define GLUT_KEY_F3 3 +#define GLUT_KEY_F4 4 +#define GLUT_KEY_F5 5 +#define GLUT_KEY_F6 6 +#define GLUT_KEY_F7 7 +#define GLUT_KEY_F8 8 +#define GLUT_KEY_F9 9 +#define GLUT_KEY_F10 10 +#define GLUT_KEY_F11 11 +#define GLUT_KEY_F12 12 +/* directional keys */ +#define GLUT_KEY_LEFT 100 +#define GLUT_KEY_UP 101 +#define GLUT_KEY_RIGHT 102 +#define GLUT_KEY_DOWN 103 +#define GLUT_KEY_PAGE_UP 104 +#define GLUT_KEY_PAGE_DOWN 105 +#define GLUT_KEY_HOME 106 +#define GLUT_KEY_END 107 +#define GLUT_KEY_INSERT 108 +#endif + +/* Entry/exit state. */ +#define GLUT_LEFT 0 +#define GLUT_ENTERED 1 + +/* Menu usage state. */ +#define GLUT_MENU_NOT_IN_USE 0 +#define GLUT_MENU_IN_USE 1 + +/* Visibility state. */ +#define GLUT_NOT_VISIBLE 0 +#define GLUT_VISIBLE 1 + +/* Window status state. */ +#define GLUT_HIDDEN 0 +#define GLUT_FULLY_RETAINED 1 +#define GLUT_PARTIALLY_RETAINED 2 +#define GLUT_FULLY_COVERED 3 + +/* Color index component selection values. */ +#define GLUT_RED 0 +#define GLUT_GREEN 1 +#define GLUT_BLUE 2 + +/* Layers for use. */ +#define GLUT_NORMAL 0 +#define GLUT_OVERLAY 1 + +#if defined(WIN32) +/* Stroke font constants (use these in GLUT program). */ +#define GLUT_STROKE_ROMAN ((void*)0) +#define GLUT_STROKE_MONO_ROMAN ((void*)1) + +/* Bitmap font constants (use these in GLUT program). */ +#define GLUT_BITMAP_9_BY_15 ((void*)2) +#define GLUT_BITMAP_8_BY_13 ((void*)3) +#define GLUT_BITMAP_TIMES_ROMAN_10 ((void*)4) +#define GLUT_BITMAP_TIMES_ROMAN_24 ((void*)5) +#if (GLUT_API_VERSION >= 3) +#define GLUT_BITMAP_HELVETICA_10 ((void*)6) +#define GLUT_BITMAP_HELVETICA_12 ((void*)7) +#define GLUT_BITMAP_HELVETICA_18 ((void*)8) +#endif +#else +/* Stroke font opaque addresses (use constants instead in source code). */ +extern void *glutStrokeRoman; +extern void *glutStrokeMonoRoman; + +/* Stroke font constants (use these in GLUT program). */ +#define GLUT_STROKE_ROMAN (&glutStrokeRoman) +#define GLUT_STROKE_MONO_ROMAN (&glutStrokeMonoRoman) + +/* Bitmap font opaque addresses (use constants instead in source code). */ +extern void *glutBitmap9By15; +extern void *glutBitmap8By13; +extern void *glutBitmapTimesRoman10; +extern void *glutBitmapTimesRoman24; +extern void *glutBitmapHelvetica10; +extern void *glutBitmapHelvetica12; +extern void *glutBitmapHelvetica18; + +/* Bitmap font constants (use these in GLUT program). */ +#define GLUT_BITMAP_9_BY_15 (&glutBitmap9By15) +#define GLUT_BITMAP_8_BY_13 (&glutBitmap8By13) +#define GLUT_BITMAP_TIMES_ROMAN_10 (&glutBitmapTimesRoman10) +#define GLUT_BITMAP_TIMES_ROMAN_24 (&glutBitmapTimesRoman24) +#if (GLUT_API_VERSION >= 3) +#define GLUT_BITMAP_HELVETICA_10 (&glutBitmapHelvetica10) +#define GLUT_BITMAP_HELVETICA_12 (&glutBitmapHelvetica12) +#define GLUT_BITMAP_HELVETICA_18 (&glutBitmapHelvetica18) +#endif +#endif + +/* glutGet parameters. */ +#define GLUT_WINDOW_X 100 +#define GLUT_WINDOW_Y 101 +#define GLUT_WINDOW_WIDTH 102 +#define GLUT_WINDOW_HEIGHT 103 +#define GLUT_WINDOW_BUFFER_SIZE 104 +#define GLUT_WINDOW_STENCIL_SIZE 105 +#define GLUT_WINDOW_DEPTH_SIZE 106 +#define GLUT_WINDOW_RED_SIZE 107 +#define GLUT_WINDOW_GREEN_SIZE 108 +#define GLUT_WINDOW_BLUE_SIZE 109 +#define GLUT_WINDOW_ALPHA_SIZE 110 +#define GLUT_WINDOW_ACCUM_RED_SIZE 111 +#define GLUT_WINDOW_ACCUM_GREEN_SIZE 112 +#define GLUT_WINDOW_ACCUM_BLUE_SIZE 113 +#define GLUT_WINDOW_ACCUM_ALPHA_SIZE 114 +#define GLUT_WINDOW_DOUBLEBUFFER 115 +#define GLUT_WINDOW_RGBA 116 +#define GLUT_WINDOW_PARENT 117 +#define GLUT_WINDOW_NUM_CHILDREN 118 +#define GLUT_WINDOW_COLORMAP_SIZE 119 +#if (GLUT_API_VERSION >= 2) +#define GLUT_WINDOW_NUM_SAMPLES 120 +#define GLUT_WINDOW_STEREO 121 +#endif +#if (GLUT_API_VERSION >= 3) +#define GLUT_WINDOW_CURSOR 122 +#endif +#define GLUT_SCREEN_WIDTH 200 +#define GLUT_SCREEN_HEIGHT 201 +#define GLUT_SCREEN_WIDTH_MM 202 +#define GLUT_SCREEN_HEIGHT_MM 203 +#define GLUT_MENU_NUM_ITEMS 300 +#define GLUT_DISPLAY_MODE_POSSIBLE 400 +#define GLUT_INIT_WINDOW_X 500 +#define GLUT_INIT_WINDOW_Y 501 +#define GLUT_INIT_WINDOW_WIDTH 502 +#define GLUT_INIT_WINDOW_HEIGHT 503 +#define GLUT_INIT_DISPLAY_MODE 504 +#if (GLUT_API_VERSION >= 2) +#define GLUT_ELAPSED_TIME 700 +#endif + +#if (GLUT_API_VERSION >= 2) +/* glutDeviceGet parameters. */ +#define GLUT_HAS_KEYBOARD 600 +#define GLUT_HAS_MOUSE 601 +#define GLUT_HAS_SPACEBALL 602 +#define GLUT_HAS_DIAL_AND_BUTTON_BOX 603 +#define GLUT_HAS_TABLET 604 +#define GLUT_NUM_MOUSE_BUTTONS 605 +#define GLUT_NUM_SPACEBALL_BUTTONS 606 +#define GLUT_NUM_BUTTON_BOX_BUTTONS 607 +#define GLUT_NUM_DIALS 608 +#define GLUT_NUM_TABLET_BUTTONS 609 +#endif + +#if (GLUT_API_VERSION >= 3) +/* glutLayerGet parameters. */ +#define GLUT_OVERLAY_POSSIBLE 800 +#define GLUT_LAYER_IN_USE 801 +#define GLUT_HAS_OVERLAY 802 +#define GLUT_TRANSPARENT_INDEX 803 +#define GLUT_NORMAL_DAMAGED 804 +#define GLUT_OVERLAY_DAMAGED 805 + +#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 9) +/* glutVideoResizeGet parameters. */ +#define GLUT_VIDEO_RESIZE_POSSIBLE 900 +#define GLUT_VIDEO_RESIZE_IN_USE 901 +#define GLUT_VIDEO_RESIZE_X_DELTA 902 +#define GLUT_VIDEO_RESIZE_Y_DELTA 903 +#define GLUT_VIDEO_RESIZE_WIDTH_DELTA 904 +#define GLUT_VIDEO_RESIZE_HEIGHT_DELTA 905 +#define GLUT_VIDEO_RESIZE_X 906 +#define GLUT_VIDEO_RESIZE_Y 907 +#define GLUT_VIDEO_RESIZE_WIDTH 908 +#define GLUT_VIDEO_RESIZE_HEIGHT 909 +#endif + +/* glutUseLayer parameters. */ +#define GLUT_NORMAL 0 +#define GLUT_OVERLAY 1 + +/* glutGetModifiers return mask. */ +#define GLUT_ACTIVE_SHIFT 1 +#define GLUT_ACTIVE_CTRL 2 +#define GLUT_ACTIVE_ALT 4 + +/* glutSetCursor parameters. */ +/* Basic arrows. */ +#define GLUT_CURSOR_RIGHT_ARROW 0 +#define GLUT_CURSOR_LEFT_ARROW 1 +/* Symbolic cursor shapes. */ +#define GLUT_CURSOR_INFO 2 +#define GLUT_CURSOR_DESTROY 3 +#define GLUT_CURSOR_HELP 4 +#define GLUT_CURSOR_CYCLE 5 +#define GLUT_CURSOR_SPRAY 6 +#define GLUT_CURSOR_WAIT 7 +#define GLUT_CURSOR_TEXT 8 +#define GLUT_CURSOR_CROSSHAIR 9 +/* Directional cursors. */ +#define GLUT_CURSOR_UP_DOWN 10 +#define GLUT_CURSOR_LEFT_RIGHT 11 +/* Sizing cursors. */ +#define GLUT_CURSOR_TOP_SIDE 12 +#define GLUT_CURSOR_BOTTOM_SIDE 13 +#define GLUT_CURSOR_LEFT_SIDE 14 +#define GLUT_CURSOR_RIGHT_SIDE 15 +#define GLUT_CURSOR_TOP_LEFT_CORNER 16 +#define GLUT_CURSOR_TOP_RIGHT_CORNER 17 +#define GLUT_CURSOR_BOTTOM_RIGHT_CORNER 18 +#define GLUT_CURSOR_BOTTOM_LEFT_CORNER 19 +/* Inherit from parent window. */ +#define GLUT_CURSOR_INHERIT 100 +/* Blank cursor. */ +#define GLUT_CURSOR_NONE 101 +/* Fullscreen crosshair (if available). */ +#define GLUT_CURSOR_FULL_CROSSHAIR 102 +#endif + +/* GLUT initialization sub-API. */ +extern void APIENTRY glutInit(int *argcp, char **argv); +extern void APIENTRY glutInitDisplayMode(unsigned int mode); +#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 9) +extern void APIENTRY glutInitDisplayString(const char *string); +#endif +extern void APIENTRY glutInitWindowPosition(int x, int y); +extern void APIENTRY glutInitWindowSize(int width, int height); +extern void APIENTRY glutMainLoop(void); + +/* GLUT window sub-API. */ +extern int APIENTRY glutCreateWindow(const char *title); +extern int APIENTRY glutCreateSubWindow(int win, int x, int y, int width, int height); +extern void APIENTRY glutDestroyWindow(int win); +extern void APIENTRY glutPostRedisplay(void); +extern void APIENTRY glutSwapBuffers(void); +extern int APIENTRY glutGetWindow(void); +extern void APIENTRY glutSetWindow(int win); +extern void APIENTRY glutSetWindowTitle(const char *title); +extern void APIENTRY glutSetIconTitle(const char *title); +extern void APIENTRY glutPositionWindow(int x, int y); +extern void APIENTRY glutReshapeWindow(int width, int height); +extern void APIENTRY glutPopWindow(void); +extern void APIENTRY glutPushWindow(void); +extern void APIENTRY glutIconifyWindow(void); +extern void APIENTRY glutShowWindow(void); +extern void APIENTRY glutHideWindow(void); +#if (GLUT_API_VERSION >= 3) +extern void APIENTRY glutFullScreen(void); +extern void APIENTRY glutSetCursor(int cursor); +#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 9) +extern void APIENTRY glutWarpPointer(int x, int y); +#endif + +/* GLUT overlay sub-API. */ +extern void APIENTRY glutEstablishOverlay(void); +extern void APIENTRY glutRemoveOverlay(void); +extern void APIENTRY glutUseLayer(GLenum layer); +extern void APIENTRY glutPostOverlayRedisplay(void); +extern void APIENTRY glutShowOverlay(void); +extern void APIENTRY glutHideOverlay(void); +#endif + +/* GLUT menu sub-API. */ +extern int APIENTRY glutCreateMenu(void (*)(int)); +extern void APIENTRY glutDestroyMenu(int menu); +extern int APIENTRY glutGetMenu(void); +extern void APIENTRY glutSetMenu(int menu); +extern void APIENTRY glutAddMenuEntry(const char *label, int value); +extern void APIENTRY glutAddSubMenu(const char *label, int submenu); +extern void APIENTRY glutChangeToMenuEntry(int item, const char *label, int value); +extern void APIENTRY glutChangeToSubMenu(int item, const char *label, int submenu); +extern void APIENTRY glutRemoveMenuItem(int item); +extern void APIENTRY glutAttachMenu(int button); +extern void APIENTRY glutDetachMenu(int button); + +/* GLUT sub-API. */ +extern void APIENTRY glutDisplayFunc(void (*)(void)); +extern void APIENTRY glutReshapeFunc(void (*)(int width, int height)); +extern void APIENTRY glutKeyboardFunc(void (*)(unsigned char key, int x, int y)); +extern void APIENTRY glutMouseFunc(void (*)(int button, int state, int x, int y)); +extern void APIENTRY glutMotionFunc(void (*)(int x, int y)); +extern void APIENTRY glutPassiveMotionFunc(void (*)(int x, int y)); +extern void APIENTRY glutEntryFunc(void (*)(int state)); +extern void APIENTRY glutVisibilityFunc(void (*)(int state)); +extern void APIENTRY glutIdleFunc(void (*)(void)); +extern void APIENTRY glutTimerFunc(unsigned int millis, void (*)(int value), int value); +extern void APIENTRY glutMenuStateFunc(void (*)(int state)); +#if (GLUT_API_VERSION >= 2) +extern void APIENTRY glutSpecialFunc(void (*)(int key, int x, int y)); +extern void APIENTRY glutSpaceballMotionFunc(void (*)(int x, int y, int z)); +extern void APIENTRY glutSpaceballRotateFunc(void (*)(int x, int y, int z)); +extern void APIENTRY glutSpaceballButtonFunc(void (*)(int button, int state)); +extern void APIENTRY glutButtonBoxFunc(void (*)(int button, int state)); +extern void APIENTRY glutDialsFunc(void (*)(int dial, int value)); +extern void APIENTRY glutTabletMotionFunc(void (*)(int x, int y)); +extern void APIENTRY glutTabletButtonFunc(void (*)(int button, int state, int x, int y)); +#if (GLUT_API_VERSION >= 3) +extern void APIENTRY glutMenuStatusFunc(void (*)(int status, int x, int y)); +extern void APIENTRY glutOverlayDisplayFunc(void (*)(void)); +#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 9) +extern void APIENTRY glutWindowStatusFunc(void (*)(int state)); +#endif +#endif +#endif + +/* GLUT color index sub-API. */ +extern void APIENTRY glutSetColor(int, GLfloat red, GLfloat green, GLfloat blue); +extern GLfloat APIENTRY glutGetColor(int ndx, int component); +extern void APIENTRY glutCopyColormap(int win); + +/* GLUT state retrieval sub-API. */ +extern int APIENTRY glutGet(GLenum type); +extern int APIENTRY glutDeviceGet(GLenum type); +#if (GLUT_API_VERSION >= 2) +/* GLUT extension support sub-API */ +extern int APIENTRY glutExtensionSupported(const char *name); +#endif +#if (GLUT_API_VERSION >= 3) +extern int APIENTRY glutGetModifiers(void); +extern int APIENTRY glutLayerGet(GLenum type); +#endif + +/* GLUT font sub-API */ +extern void APIENTRY glutBitmapCharacter(void *font, int character); +extern int APIENTRY glutBitmapWidth(void *font, int character); +extern void APIENTRY glutStrokeCharacter(void *font, int character); +extern int APIENTRY glutStrokeWidth(void *font, int character); +#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 9) +extern int APIENTRY glutBitmapLength(void *font, const unsigned char *string); +extern int APIENTRY glutStrokeLength(void *font, const unsigned char *string); +#endif + +/* GLUT pre-built models sub-API */ +extern void APIENTRY glutWireSphere(GLdouble radius, GLint slices, GLint stacks); +extern void APIENTRY glutSolidSphere(GLdouble radius, GLint slices, GLint stacks); +extern void APIENTRY glutWireCone(GLdouble base, GLdouble height, GLint slices, GLint stacks); +extern void APIENTRY glutSolidCone(GLdouble base, GLdouble height, GLint slices, GLint stacks); +extern void APIENTRY glutWireCube(GLdouble size); +extern void APIENTRY glutSolidCube(GLdouble size); +extern void APIENTRY glutWireTorus(GLdouble innerRadius, GLdouble outerRadius, GLint sides, GLint rings); +extern void APIENTRY glutSolidTorus(GLdouble innerRadius, GLdouble outerRadius, GLint sides, GLint rings); +extern void APIENTRY glutWireDodecahedron(void); +extern void APIENTRY glutSolidDodecahedron(void); +extern void APIENTRY glutWireTeapot(GLdouble size); +extern void APIENTRY glutSolidTeapot(GLdouble size); +extern void APIENTRY glutWireOctahedron(void); +extern void APIENTRY glutSolidOctahedron(void); +extern void APIENTRY glutWireTetrahedron(void); +extern void APIENTRY glutSolidTetrahedron(void); +extern void APIENTRY glutWireIcosahedron(void); +extern void APIENTRY glutSolidIcosahedron(void); + +#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 9) +/* GLUT video resize sub-API. */ +extern int APIENTRY glutVideoResizeGet(GLenum param); +extern void APIENTRY glutSetupVideoResizing(void); +extern void APIENTRY glutStopVideoResizing(void); +extern void APIENTRY glutVideoResize(int x, int y, int width, int height); +extern void APIENTRY glutVideoPan(int x, int y, int width, int height); + +/* GLUT debugging sub-API. */ +extern void APIENTRY glutReportErrors(void); +#endif + +#ifdef __cplusplus +} + +#endif +#endif /* __glut_h__ */ diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Unstable Version/1.3.3/main.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Unstable Version/1.3.3/main.cpp Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,103 @@ +#include +#include "IrrLib.h" +#include + +using namespace std; + +using namespace irr; +using namespace core; +using namespace scene; +using namespace video; +using namespace io; +using namespace gui; + +int main(){ + IrrLib Irrlicht(5, 640, 480, 16, false, true, false); + Irr3DObjColor col1; + Irr3DObjColor col2; + int vel = 1; + int nHits; + //int nTimes = 0; + + //Color 1 + col1.a = 255; + col1.r = 0; + col1.g = 255; + col1.b = 5; + + //color 2 + col2.a = 255; + col2.r = 0; + col2.g = 255; + col2.b = 255; + + //Pos 1 + Irr3DPos pos1; + Irr3DPos pos2, pos3; + + pos3.x = -200; + pos3.y = 0; + pos3.z = 0; + + pos2.x = 200; + pos2.y = 0; + pos2.z = 0; + + pos1.x = 0; + pos1.y = 0; + pos1.z = 0; + + Irr3DObj obj1; + obj1->setColor(col1); + obj1->setMesh("sphere.3ds"); + Irr3DObj obj2, obj3; + obj3->setMesh("cube.3ds"); + obj2->setMesh("cube.3ds"); + obj2->setColor(col2); + obj3->setColor(col2); + obj1->addToScene(); + obj2->addToScene(); + obj3->addToScene(); + Irrlicht.AddFPSCam(); + obj2->Move(pos2); + obj3->Move(pos3); + while (Irrlicht.DeviceIsRunning()) + if (Irrlicht.IsActiveWindow()) + { + pos1.x = pos1.x + vel; + obj1->Move(pos1); + nHits = CheckForCollision(obj1,obj2); + if (nHits > 0) + { + vel = vel * -1; + } + nHits = CheckForCollision(obj1,obj3); + if (nHits > 0) + { + vel = vel * -1; + } + /*if (nHits > 0) + { + cout << "The sphere collided with the squre " << nTimes << endl; + nTimes++; + }*/ + if (Irrlicht.IrrEvent.keyStates[KEY_KEY_W]){ + Irrlicht.IrrEvent.keyStates[KEY_KEY_W] = false; + pos1.x = pos1.x + 10; + obj1->Move(pos1); + } + /* + if (Irrlicht.IrrEvent.keyStates[KEY_KEY_S]){ + Irrlicht.IrrEvent.keyStates[KEY_KEY_S] = false; + pos1.x = pos1.x - 10; + obj1->Move(pos1); + }*/ + + Irrlicht.BeginScene(Irrlicht.Color.RED); + Irrlicht.DrawAll(); + Irrlicht.EndScene(); + nHits = 0; + } + Irrlicht.EndIrrlicht(); + return 0; +} diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 Unstable Version/1.3.3/stdafx.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Unstable Version/1.3.3/stdafx.h Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,163 @@ +// stdafx.h : include file for standard system include files, +// or project specific include files that are used frequently, but +// are changed infrequently + + +#if !defined(AFX_STDAFX_H__AE78B9E2_A5B8_11D4_A1FB_00500C0076C8__INCLUDED_) +#define AFX_STDAFX_H__AE78B9E2_A5B8_11D4_A1FB_00500C0076C8__INCLUDED_ + +// Insert your headers here +#define WIN32_LEAN_AND_MEAN // Exclude rarely-used stuff from Windows headers + + +typedef char dInt8; +typedef unsigned char dUnsigned8; + +typedef short dInt16; +typedef unsigned short dUnsigned16; + +typedef int dInt32; +typedef unsigned dUnsigned32; +typedef unsigned int dUnsigned32; + +#include +#include +#include +#include +#include +#include +#include +#include + + +#ifdef _MSC_VER + #include + #include + #include + #include +#else + #ifdef _MIPS_ARCH + #include + #else + #include + #endif + #include +#endif + + +// transcendental functions +#define dAbs(x) dFloat (fabs (dFloat(x))) +#define dSqrt(x) dFloat (sqrt (dFloat(x))) +#define dFloor(x) dFloat (floor (dFloat(x))) +#define dMod(x,y) dFloat (fmod (dFloat(x), dFloat(y))) + +#define dSin(x) dFloat (sin (dFloat(x))) +#define dCos(x) dFloat (cos (dFloat(x))) +#define dAsin(x) dFloat (asin (dFloat(x))) +#define dAcos(x) dFloat (acos (dFloat(x))) +#define dAtan2(x,y) dFloat (atan2 (dFloat(x), dFloat(y))) + + +#ifdef __USE_DOUBLE_PRECISION__ + #define glMultMatrix(x) glMultMatrixd(x) + #define glGetFloat(x,y) glGetDoublev(x,(GLdouble *)y) +#else + #define glMultMatrix(x) glMultMatrixf(x) + #define glGetFloat(x,y) glGetFloatv(x,(GLfloat *)y) +#endif + + +// SDK include +#include +#include +#include +//#include +#include + + +#ifdef _MSC_VER + #pragma warning (disable: 4100) //unreferenced formal parameter + #pragma warning (disable: 4505) //unreferenced local function has been removed + #pragma warning (disable: 4201) //nonstandard extension used : nameless struct/union + #pragma warning (disable: 4127) //conditional expression is constant + + #if (_MSC_VER >= 1400) + #pragma warning (disable: 4996) // for 2005 users declared deprecated + #endif + +#else + //#define _ASSERTE(x) assert(x) + #define _ASSERTE(x) + #define min(a,b) (a < b ? a : b) + #define max(a,b) (a > b ? a : b) + + #ifndef dAsin + #define dAsin(x) ((dFloat) dAsin(x)) + #define dAcos(x) ((dFloat) dAcos(x)) + #endif +#endif + + +// for some reason specifying a relative does not seem to work in Linus +// and i have to specify a absolute path +// #define ASSETS_PATH "." + + +#ifdef _MSC_VER + // Windows user assets path + #define ASSETS_PATH "." + inline void GetWorkingFileName (const char* name, char* outPathName) + { + sprintf (outPathName, "%s/%s", ASSETS_PATH, name); + } + +#else + + #ifdef _MIPS_ARCH + // Mac user assets path + #define ASSETS_PATH "../../.." + inline void GetWorkingFileName (const char* name, char* outPathName) + { + sprintf (outPathName, "%s/%s", ASSETS_PATH, name); + } + #else + // Linux user assets path + #define ASSETS_PATH "newtonSDK/samples/bin" + inline void GetWorkingFileName (const char* name, char* outPathName) + { + char *env; + env = getenv("HOME"); + sprintf (outPathName, "%s/%s/%s", env, ASSETS_PATH, name); + } + #endif +#endif + + +// little Indian/big Indian conversion +#ifdef __ppc__ + #define SWAP_INT16(x) (((x >> 8) & 0xff) + ((x & 0xff) << 8)) + #define SWAP_INT32(x) ((SWAP_INT16 ( x >> 16)) + (SWAP_INT16 (x) << 16)) + + inline void SWAP_FLOAT32_ARRAY (dFloat *array, dInt32 count) + { + dInt32 i; + dInt32 x; + + for (i = 0; i < count; i ++) { + x = SWAP_INT32 (*((dInt32*) &array[i])); + array[i] = *((dFloat*)&x); + } + } + +#else + + #define SWAP_INT16(x) x + #define SWAP_INT32(x) x + inline void SWAP_FLOAT32_ARRAY (float *array, dInt32 count) + { + } + +#endif + + +#endif diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 WIP/INFO --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/WIP/INFO Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,3 @@ +Coding etiquette: ++ All code must line up ++ All functions must be written in the order that they are declared in the respected header file \ No newline at end of file diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 WIP/Irr2D.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/WIP/Irr2D.h Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,43 @@ +#ifndef _IRR2D_H_ +#define _IRR2D_H_ +#include "Irrlicht.h" +#include +#include "Irr2DObj.h" + +class Irr2D{ + private: + irr::IrrlichtDevice* device; + std::vector texture;// + std::vector > start;// + std::vector > end;// + std::vector color;// + int numLines, numTextures;// + std::vector> text;// + irr::video::ITexture* textmap; + irr::core::stringw strText;// + std::vector fonts; + int numFonts; + + public: + /* + Todo: Add a Move function to increment by current position + */ + Irr2D(): numLines(0), numTextures(0), numFonts(0), strText(L"") {}; + Irr2D(irr::IrrlichtDevice* dev) : device(dev) {}; + + void addLine(irr::core::position2d,irr::core::position2d, + irr::video::SColor); + void drawLines(); + void clearLines(); + void addTexture(irr::core::stringw, Irr2DObj &); + void loadText(irr::core::stringw,irr::core::stringw,irr::u32); + void drawText(irr::core::stringw, irr::core::position2d); + irr::IrrlichtDevice* getDevice(); + void setDevice(irr::IrrlichtDevice*& ); + void drawTexture(Irr2DObj &); + int makeFont(); + int makeFont(irr::core::stringc); + void drawFont(int, irr::core::stringw, irr::core::rect, irr::video::SColor); + +}; +#endif \ No newline at end of file diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 WIP/Irr2DObj.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/WIP/Irr2DObj.cpp Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,80 @@ +#include "Irr2DObj.h" + +using namespace irr; +using namespace core; +using namespace scene; +using namespace video; +using namespace io; +using namespace gui; + +Irr2DObj::Irr2DObj() +{ + this->pos.X = 0; + this->pos.Y = 0; +} + +Irr2DObj::Irr2DObj(f32 x, f32 y) +{ + this->pos.X = x; + this->pos.Y = y; +} + +int Irr2DObj::getObjectID() +{ + return this->objectID; +} + +void Irr2DObj::setObjectID(int oid) +{ + this->objectID = oid; +} + +f32 Irr2DObj::getX() +{ + return this->pos.X; +} + +f32 Irr2DObj::getY() +{ + return this->pos.Y; +} + +vector2d Irr2DObj::getPosition() +{ + return this->pos; +} + +void Irr2DObj::setX(f32 x) +{ + this->pos.X = x; +} + +void Irr2DObj::setY(f32 y) +{ + this->pos.Y = y; +} + +void Irr2DObj::setPosition(vector2d pos) +{ + this->pos = pos; +} + +f32 Irr2DObj::getWidth() +{ + return this->width; +} + +f32 Irr2DObj::getHeight() +{ + return this->height; +} + +void Irr2DObj::setWidth(f32 width) +{ + this->width = width; +} + +void Irr2DObj::setHeight(f32 height) +{ + this->height = height; +} \ No newline at end of file diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 WIP/Irr2DObj.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/WIP/Irr2DObj.h Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,28 @@ +#ifndef IRR2DOBJ_H +#define IRR2DOBJ_H +#include "irrlicht.h" + +class Irr2DObj +{ +private: + irr::core::vector2d pos; + irr::f32 width, height; + int eventID, objectID; +public: + Irr2DObj (); + Irr2DObj (irr::f32 x, irr::f32 y); + int getObjectID(); + void setObjectID(int oid); + irr::f32 getX(); + irr::f32 getY(); + irr::core::vector2d getPosition(); + void setX(irr::f32 x); + void setY(irr::f32 y); + void setPosition(irr::core::vector2d pos); + irr::f32 getWidth(); + irr::f32 getHeight(); + void setWidth(irr::f32 width); + void setHeight(irr::f32 height); +}; + +#endif \ No newline at end of file diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 WIP/Irr2d.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/WIP/Irr2d.cpp Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,101 @@ +#include "Irr2D.h" + +using namespace irr; +using namespace core; +using namespace video; +using namespace std; +using namespace gui; + + + +void Irr2D::addLine(position2d start, position2d end, SColor color) +{ + this->start.push_back(start); + this->end.push_back(end); + this->color.push_back(color); + this->numLines++; +} + +void Irr2D::drawLines() +{ + for(int i = 0; i < numLines; ++i) + this->device->getVideoDriver()->draw2DLine(this->start[i], this->end[i], this->color[i]); +} +void Irr2D::clearLines() +{ + this->numLines = 0; + this->start.clear(); + this->end.clear(); + this->color.clear(); +} +void Irr2D::addTexture(stringw path, Irr2DObj &obj) +{ + texture.push_back(this->device->getVideoDriver()->getTexture(path.c_str())); + obj.setObjectID(numTextures); + this->numTextures++; +} +void Irr2D::loadText(stringw textMapPath, stringw listofChars,u32 numColumns) +{ + this->textmap = this->device->getVideoDriver()->getTexture(textMapPath.c_str()); + this->strText = listofChars; + dimension2d dim; + dim = this->textmap->getSize(); + u32 numRows = listofChars.size() / numColumns; + s32 width = dim.Width / numColumns; + s32 height = dim.Height / numRows; + //core::rect rect(0,0,width, height); + for(unsigned int i = 0; i < numRows; i++) + { + for (unsigned int x = 0; x < numColumns; x++) + { + this->text.push_back(rect(x*width, i*height, (x*width)+width, (i*height)+height)); + } + } +} +void Irr2D::drawText(stringw str, position2d pos) +{ + s32 pos2; + for(unsigned int i = 0; i < str.size(); i++) + { + pos2 = this->strText.find(str.subString(i, 1).c_str()); + this->device->getVideoDriver()->draw2DImage(this->textmap, pos, text[pos2]); + } +} + +IrrlichtDevice* Irr2D::getDevice() +{ + return this->device; +} +void Irr2D::setDevice(IrrlichtDevice*& device) +{ + this->device = device; +} + +void Irr2D::drawTexture(Irr2DObj & obj) +{ + position2d pos; + vector2d pos2 = obj.getPosition(); + pos.X = (s32)pos2.X; + pos.Y = (s32)pos2.Y; + this->device->getVideoDriver()->draw2DImage(this->texture[obj.getObjectID()], pos); +} + +int Irr2D::makeFont() +{ + IGUIFont* font = this->device->getGUIEnvironment()->getBuiltInFont(); + this->fonts.push_back(font); + //this->numFonts++; + return this->numFonts++; +} + +int Irr2D::makeFont(irr::core::stringc file) +{ + IGUIFont* font = device->getGUIEnvironment()->getFont(file.c_str()); + this->fonts.push_back(font); + return this->numFonts++; +} + +void Irr2D::drawFont(int fontID, irr::core::stringw text, irr::core::rect pos, irr::video::SColor color) +{ + this->fonts[fontID]->draw(text.c_str(), pos, color); +} \ No newline at end of file diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 WIP/Irr3D.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/WIP/Irr3D.cpp Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,77 @@ +#include "Irr3D.h" +#include "Irr3DObj.h" +#include +#include "Newton.h" + +using namespace irr; +using namespace core; +using namespace scene; +using namespace video; +using namespace io; +using namespace gui; + +Irr3D::Irr3D() +{ + this->nObjects = 0; +} + +Irr3DObj Irr3D::create() +{ + Irr3DObj obj; + obj.setObjectID(this->nObjects); + this->nObjects++; + return obj; +} + +Irr3DObj Irr3D::create(irr::core::stringc fmesh) +{ + IMeshSceneNode * node = this->device->getSceneManager()->addMeshSceneNode(this->device->getSceneManager()->getMesh(fmesh.c_str())->getMesh(0)); + Irr3DObj obj; + obj.setObjectID(this->objects.size()); + this->objects.push_back(node); + return obj; + +} + +void Irr3D::setTexture(Irr3DObj & obj, irr::core::stringw fname) +{ + +} + +void Irr3D::setMesh(Irr3DObj & obj, irr::core::stringc fmesh) +{ + //this->irr_node = smgr->addMeshSceneNode(smgr->getMesh(this->texture.c_str())->getMesh(0)); + this->objects.push_back(this->device->getSceneManager()->addMeshSceneNode(this->device->getSceneManager()->getMesh(fmesh.c_str())->getMesh(0))); +} + +vector3df Irr3D::getPosition(Irr3DObj & obj) +{ + if (obj.getObjectID() == -1) + return vector3df(0,0,0); + else + return this->objects[obj.getObjectID()]->getPosition(); +} + +void Irr3D::setPosition(Irr3DObj & obj, irr::f32 x,irr::f32 y,irr::f32 z) +{ + if (obj.getObjectID() != -1) + this->objects[obj.getObjectID()]->setPosition(vector3df(x, y, z)); +} + +void Irr3D::move(Irr3DObj & obj, float dx, float dy, float dz) +{ + vector3df mv(dx, dy, dz); + mv += this->getPosition(obj); + this->setPosition(obj, mv.X, mv.Y, mv.Z); +} + +void Irr3D::setDevice(IrrlichtDevice* dev) +{ + this->device = dev; +} + +void Irr3D::setColor(Irr3DObj & obj, irr::u32 a, irr::u32 r, irr::u32 g, irr::u32 b) +{ + this->objects[obj.getObjectID()]->getMaterial(0).EmissiveColor.set(a, r, g, b); +} + diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 WIP/Irr3DObj.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/WIP/Irr3DObj.cpp Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,14 @@ +#include "Irr3DObj.h" + +Irr3DObj::Irr3DObj () +{ + this->objectID = -1; +} +int Irr3DObj::getObjectID() +{ + return this->objectID; +} +void Irr3DObj::setObjectID(int oid) +{ + this->objectID = oid; +} diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 WIP/Irr3DObj.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/WIP/Irr3DObj.h Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,15 @@ +#ifndef IRR3DOBJ_H +#define IRR3DOBJ_H +#include "irrlicht.h" + +class Irr3DObj +{ +private: + int objectID; + +public: + Irr3DObj (); + int getObjectID(); + void setObjectID(int oid); +}; +#endif \ No newline at end of file diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 WIP/Irr3d.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/WIP/Irr3d.h Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,31 @@ +#ifndef IRR3D_H +#define IRR3D_H +#include +#include "irrlicht.h" +#include "Newton.h" + +class Irr3DObj; + +class Irr3D { +private: + irr::IrrlichtDevice* device; + std::vector objects; + int nObjects; + std::vector ncobj; + //std::vector col_objects; +public: + Irr3D(); + Irr3DObj create(); + Irr3DObj create(irr::core::stringc); + void setTexture(Irr3DObj & obj, irr::core::stringw); + void setMesh(Irr3DObj & obj, irr::core::stringc); + irr::core::vector3df getPosition(Irr3DObj & obj); + void setPosition(Irr3DObj & obj, irr::f32 x,irr::f32 y,irr::f32 z); + void move(Irr3DObj & obj, float dx, float dy, float dz); + void setDevice(irr::IrrlichtDevice* dev); + void setColor(Irr3DObj & obj, irr::u32 r, irr::u32 g, irr::u32 b, irr::u32 a); + //void setNewtonCollision(NewtonCollision*& nc); + //NewtonCollision* getNewtonCollision(); +}; + +#endif \ No newline at end of file diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 WIP/IrrColor.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/WIP/IrrColor.cpp Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,101 @@ +#include +#include +#include + +#include "IrrColor.h" + +using namespace irr; +using namespace core; +using namespace scene; +using namespace video; +using namespace io; +using namespace gui; + +using namespace std; + +void IrrColor::Init(){ + /*SColor * temp; + temp = new SColor(alpha, 255, 0, 0); + this->RED = temp; + delete temp;*/ + this->RED = SColor(alpha, 255, 0, 0); + this->ORANGE = SColor(alpha, 255, 165, 0); + this->YELLOW = SColor(alpha, 255, 255, 0); + this->GREEN = SColor(alpha, 0, 255, 0); + this->BLUE = SColor(alpha, 0, 0, 255); + this->DARK_GREEN = SColor(alpha, 0, 100, 0); + this->PINK = SColor(alpha, 255, 192, 203); + this->GREY = SColor(alpha, 190, 190, 190); + this->WHITE = SColor(alpha, 0, 0, 0); + this->BLACK = SColor(alpha, 0, 0, 0); +} + +IrrColor::~IrrColor(){ + /*delete this->RED; + delete this->ORANGE; + delete this->YELLOW; + delete this->GREEN; + delete this->BLUE; + delete this->DARK_GREEN; + delete this->PINK; + delete this->GREY; + delete this->WHITE; + delete this->BLACK;*/ +} + +IrrColor::IrrColor(){ + this->alpha = 255; + Init(); +} + +IrrColor::IrrColor(irr::u32 alpha){ + this->alpha = alpha; + Init(); +} + +int IrrColor::getAlpha(){ + return this->alpha; +} + +void IrrColor::setAlpha(int alpha){ + this->alpha = alpha; +} + +SColor IrrColor::returnColor(stringw color){ + int nColor = -1; + if (color == "red") + nColor = 1; + else if (color == "green") + nColor = 2; + else if (color == "blue") + nColor = 3; + else if (color == "dark green") + nColor = 4; + else if (color == "pink") + nColor = 5; + else if (color == "grey") + nColor = 6; + switch (nColor){ + case 1: + return SColor(255, 255, 0, 0); + break; + case 2: + return SColor(255, 0, 255, 0); + break; + case 3: + return SColor(255, 0, 0, 255); + break; + case 4: + return SColor(255, 0, 50, 0); + break; + case 5: + return SColor(255, 255, 10, 255); + break; + case 6: + return SColor(255,200,200,200); + break; + default: + return SColor(255,200,200,200); + break; + }// TODO: Make this function modular +} diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 WIP/IrrColor.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/WIP/IrrColor.h Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,42 @@ +#ifndef IRRCOLOR_H +#define IRRCOLOR_H + +#include +#include +#include "irrlicht.h" +//#include "IrrLib.h" + +class IrrColor { + private: + irr::u32 alpha; + void Init(); + //who knows? + public: + //irr::video::SColor(alpha, 255, 0, 0); + irr::video::SColor RED; + irr::video::SColor ORANGE; + irr::video::SColor YELLOW; + irr::video::SColor GREEN; + irr::video::SColor BLUE; + irr::video::SColor DARK_GREEN; + irr::video::SColor PINK; + irr::video::SColor GREY; + irr::video::SColor WHITE; + irr::video::SColor BLACK; + /*const ORANGE = irr::video::SColor(alpha, 255, 165, 0); + const YELLOW = irr::video::SColor(alpha, 255, 255, 0); + const GREEN = irr::video::SColor(alpha, 0, 255, 0); + const BLUE = irr::video::SColor(alpha, 0, 0, 255); + const DARK_GREEN = irr::video::SColor(alpha, 0, 100, 0); + const PINK = irr::video::SColor(alpha, 255, 192, 203); + const GREY = irr::video::Scolor(alpha, 190, 190, 190);*/ + //void IrrColor::test(); + IrrColor(); + IrrColor(irr::u32 alpha); + ~IrrColor(); + int getAlpha(); + void setAlpha(int alpha); + irr::video::SColor returnColor(irr::core::stringw color); +}; + +#endif \ No newline at end of file diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 WIP/IrrLib.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/WIP/IrrLib.cpp Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,68 @@ +#include "IrrLib.h" +#include "irrlicht.h" + +using namespace irr; +using namespace core; +using namespace scene; +using namespace video; +using namespace io; +using namespace gui; + +IrrLib::IrrLib(video::E_DRIVER_TYPE drivertype, core::dimension2d & res, u32 bits, bool fullscreen, bool stencilbuffer, bool vsync) +{ + this->device = createDevice(drivertype, res, bits, fullscreen, stencilbuffer, vsync); + if (this->device == 0) + exit(1); + this->Lib2D.setDevice(this->device); + this->Lib3D.setDevice(this->device); +} + +bool IrrLib::DeviceIsRunning() +{ + return this->device->run(); +} + +void IrrLib::BeginScene() +{ + this->device->getVideoDriver()->beginScene(true, true, video::SColor(0,200,200,200)); + //smgr->addCameraSceneNode(0, vector3df(0,1,-7), vector3df(0,0,0)); +} + +void IrrLib::BeginScene(irr::video::SColor color) +{ + this->device->getVideoDriver()->beginScene(true, true, color); +} + +void IrrLib::BeginScene(bool usebackBuffer, bool usezBuffer, irr::video::SColor color) +{ + this->device->getVideoDriver()->beginScene(usebackBuffer, usezBuffer, color); +} + +void IrrLib::SetWindowCaption(stringw str) +{ + this->device->setWindowCaption(str.c_str()); +} + +void IrrLib::DrawAll() +{ + this->device->getGUIEnvironment()->drawAll(); + this->device->getSceneManager()->drawAll(); +} + +void IrrLib::EndScene() +{ + this->device->getVideoDriver()->endScene(); +} + +void IrrLib::EndIrrlicht() +{ + if(this->device != NULL){ + this->device->drop(); + this->device = NULL; + } +} + +void IrrLib::AddFPSCam() +{ + this->cam = this->device->getSceneManager()->addCameraSceneNodeFPS(); +} \ No newline at end of file diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 WIP/IrrLib.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/WIP/IrrLib.h Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,31 @@ +#ifndef IRRLIB_H +#define IRRLIB_H + +#include "irrlicht.h" +#include "Irr3D.h" +#include "Irr2D.h" +#include "IrrColor.h" +#include "Irr3DObj.h" +#include "Irr2DObj.h" + +class IrrLib { +private: + irr::IrrlichtDevice* device; + irr::scene::ICameraSceneNode * cam; +public: + IrrLib(irr::video::E_DRIVER_TYPE drivertype, irr::core::dimension2d & res, irr::u32 bits, bool fullscreen, bool stencilbuffer, bool vsync); + Irr3D Lib3D; + Irr2D Lib2D; + IrrColor Color; + bool DeviceIsRunning(); + void BeginScene(); + void BeginScene(irr::video::SColor color); + void BeginScene(bool usebackBuffer, bool usezBuffer, irr::video::SColor color); + void SetWindowCaption(irr::core::stringw str); + void DrawAll(); + void EndScene(); + void EndIrrlicht(); + void AddFPSCam(); +}; + +#endif \ No newline at end of file diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 WIP/Newton.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/WIP/Newton.h Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,897 @@ +//******************************************************************** +// Newton Game dynamics +// copyright 2000-2004 +// By Julio Jerez +// VC: 6.0 +// One and only header file. +//******************************************************************** + +#ifndef NEWTON_H__736495_6495_076__INCLUDED_ +#define NEWTON_H__736495_6495_076__INCLUDED_ + + +#define NEWTON_MAJOR_VERSION 2 +#define NEWTON_MINOR_VERSION 00 + +// force all not visual studio platform to be in library form +#ifndef _MSC_VER + #ifndef _NEWTON_USE_LIB + #define _NEWTON_USE_LIB + #endif +#endif + +#ifdef _NEWTON_USE_LIB + #define NEWTON_API +#else + #ifdef _NEWTON_BUILD_DLL + #define NEWTON_API __declspec(dllexport) + #else + #define NEWTON_API __declspec(dllimport) + #endif +#endif + +//#define __USE_DOUBLE_PRECISION__ +#ifdef __USE_DOUBLE_PRECISION__ + #define dFloat double +#else + #define dFloat float +#endif + + + +#ifdef __cplusplus +extern "C" { +#endif + + + #define NEWTON_PROFILER_WORLD_UPDATE 0 + + #define NEWTON_PROFILER_COLLISION_UPDATE 1 + #define NEWTON_PROFILER_COLLISION_UPDATE_BROAD_PHASE 2 + #define NEWTON_PROFILER_COLLISION_UPDATE_NARROW_PHASE 3 + + #define NEWTON_PROFILER_DYNAMICS_UPDATE 4 + #define NEWTON_PROFILER_DYNAMICS_CONSTRAINT_GRAPH 5 + #define NEWTON_PROFILER_DYNAMICS_SOLVE_CONSTRAINT_GRAPH 6 + + typedef struct NewtonMesh{} NewtonMesh; + typedef struct NewtonBody{} NewtonBody; + typedef struct NewtonWorld{} NewtonWorld; + typedef struct NewtonJoint{} NewtonJoint; + typedef struct NewtonMaterial{} NewtonMaterial; + typedef struct NewtonCollision{} NewtonCollision; + typedef struct NewtonSceneProxy{} NewtonSceneProxy; + +// typedef struct NewtonRagDoll{} NewtonRagDoll; +// typedef struct NewtonRagDollBone{} NewtonRagDollBone; + + #define SERIALIZE_ID_BOX 0 + #define SERIALIZE_ID_CONE 1 + #define SERIALIZE_ID_SPHERE 2 + #define SERIALIZE_ID_CAPSULE 3 + #define SERIALIZE_ID_CYLINDER 4 + #define SERIALIZE_ID_COMPOUND 5 + #define SERIALIZE_ID_CONVEXHULL 6 + #define SERIALIZE_ID_CONVEXMODIFIER 7 + #define SERIALIZE_ID_CHAMFERCYLINDER 8 + #define SERIALIZE_ID_TREE 9 + #define SERIALIZE_ID_NULL 10 + #define SERIALIZE_ID_HEIGHTFIELD 11 + #define SERIALIZE_ID_USERMESH 12 + #define SERIALIZE_ID_SCENE 13 + + struct NewtonCollisionInfoRecord + { + struct NewtonBoxParam + { + dFloat m_x; + dFloat m_y; + dFloat m_z; + }; + + struct NewtonSphereParam + { + dFloat m_r0; + dFloat m_r1; + dFloat m_r2; + }; + + struct NewtonCylinderParam + { + dFloat m_r0; + dFloat m_r1; + dFloat m_height; + }; + + struct NewtonCapsuleParam + { + dFloat m_r0; + dFloat m_r1; + dFloat m_height; + }; + + struct NewtonConeParam + { + dFloat m_r; + dFloat m_height; + }; + + struct NewtonChamferCylinderParam + { + dFloat m_r; + dFloat m_height; + }; + + struct NewtonConvexHullModifierParam + { + NewtonCollision* m_chidren; + }; + + + struct NewtonCompoundCollisionParam + { + int m_chidrenCount; + NewtonCollision** m_chidren; + }; + + struct NewtonHeightFieldCollisionParam + { + int m_width; + int m_height; + int m_gridsDiagonals; + dFloat m_horizonalScale; + dFloat m_verticalScale; + unsigned short *m_elevation; + char *m_atributes; + }; + + struct NewtonSceneCollisionParam + { + int m_childrenProxyCount; + }; + + + dFloat m_offsetMatrix[4][4]; + int m_collisionType; // tag id to identify the collision primitive + int m_referenceCount; // the current reference count for this collision + int m_collisionUserID; + union { + NewtonBoxParam m_box; + NewtonConeParam m_cone; + NewtonSphereParam m_sphere; + NewtonCapsuleParam m_capsule; + NewtonCylinderParam m_cylinder; + NewtonChamferCylinderParam m_chamferCylinder; + NewtonCompoundCollisionParam m_compoundCollision; + NewtonConvexHullModifierParam m_convexHullModifier; + NewtonHeightFieldCollisionParam m_heightField; + NewtonSceneCollisionParam m_sceneCollision; + dFloat m_paramArray[64]; // user define collision can use this to store information + }; + }; + + struct NewtonJointRecord + { + dFloat m_attachmenMatrix_0[4][4]; + dFloat m_attachmenMatrix_1[4][4]; + dFloat m_minLinearDof[3]; + dFloat m_maxLinearDof[3]; + dFloat m_minAngularDof[3]; + dFloat m_maxAngularDof[3]; + const NewtonBody* m_attachBody_0; + const NewtonBody* m_attachBody_1; + dFloat m_extraParameters[16]; + int m_bodiesCollisionOn; + char m_descriptionType[32]; + } ; + + + + struct NewtonUserMeshCollisionCollideDesc + { + dFloat m_boxP0[4]; // lower bounding box of intersection query in local space + dFloat m_boxP1[4]; // upper bounding box of intersection query in local space + int m_threadNumber; // current thread executing this query + int m_faceCount; // the application should set here how many polygons intersect the query box + int m_vertexStrideInBytes; // the application should set here the size of each vertex + void* m_userData; // user data passed to the collision geometry at creation time + dFloat* m_vertex; // the application should the pointer to the vertex array. + int* m_userAttribute; // the application should set here the pointer to the user data, one for each face + int* m_faceIndexCount; // the application should set here the pointer to the vertex count of each face. + int* m_faceVertexIndex; // the application should set here the pointer index array for each vertex on a face. + NewtonBody* m_objBody; // pointer to the colliding body + NewtonBody* m_polySoupBody; // pointer to the rigid body owner of this collision tree + }; + + struct NewtonWorldConvexCastReturnInfo + { + dFloat m_point[4]; // collision point in global space + dFloat m_normal[4]; // surface normal at collision point in global space + dFloat m_penetration; // contact penetration at collision point + int m_contactID; // collision ID at contact point + const NewtonBody* m_hitBody; // body hit at contact point + }; + + struct NewtonUserMeshCollisionRayHitDesc + { + dFloat m_p0[4]; // ray origin in collision local space + dFloat m_p1[4]; // ray destination in collision local space + dFloat m_normalOut[4]; // copy here the normal at the ray intersection + int m_userIdOut; // copy here a user defined id for further feedback + void* m_userData; // user data passed to the collision geometry at creation time + }; + + struct NewtonHingeSliderUpdateDesc + { + dFloat m_accel; + dFloat m_minFriction; + dFloat m_maxFriction; + dFloat m_timestep; + } ; + + + // Newton callback functions + typedef void* (*NewtonAllocMemory) (int sizeInBytes); + typedef void (*NewtonFreeMemory) (void *ptr, int sizeInBytes); + + typedef unsigned (*NewtonGetTicksCountCallback) (); + + typedef void (*NewtonSerialize) (void* serializeHandle, const void* buffer, int size); + typedef void (*NewtonDeserialize) (void* serializeHandle, void* buffer, int size); + + // user collision callbacks + typedef void (*NewtonUserMeshCollisionDestroyCallback) (void* userData); + typedef void (*NewtonUserMeshCollisionCollideCallback) (NewtonUserMeshCollisionCollideDesc* collideDescData); + typedef dFloat (*NewtonUserMeshCollisionRayHitCallback) (NewtonUserMeshCollisionRayHitDesc* lineDescData); + typedef void (*NewtonUserMeshCollisionGetCollisionInfo) (void* userData, NewtonCollisionInfoRecord* infoRecord); + typedef void (*NewtonUserMeshCollisionGetFacesInAABB) (void* userData, const dFloat* p0, const dFloat* p1, + const dFloat** vertexArray, int* vertexCount, int* vertexStrideInBytes, + const int* indexList, int maxIndexCount, const int* userDataList); + + typedef dFloat (*NewtonCollisionTreeRayCastCallback) (dFloat interception, dFloat* normal, int faceId, void* usedData); + + + // collision tree call back (obsoleted no recommended) + typedef void (*NewtonTreeCollisionCallback) (const NewtonBody* bodyWithTreeCollision, const NewtonBody* body, int faceID, + int vertexCount, const dFloat* vertex, int vertexStrideInBytes); + + typedef void (*NewtonBodyDestructor) (const NewtonBody* body); + typedef void (*NewtonBodyLeaveWorld) (const NewtonBody* body, int threadIndex); + typedef void (*NewtonApplyForceAndTorque) (const NewtonBody* body, dFloat timestep, int threadIndex); + typedef void (*NewtonSetTransform) (const NewtonBody* body, const dFloat* matrix, int threadIndex); + + typedef int (*NewtonIslandUpdate) (const void* islandHandle, int bodyCount); + + typedef int (*NewtonGetBuoyancyPlane) (const int collisionID, void *context, const dFloat* globalSpaceMatrix, dFloat* globalSpacePlane); + typedef unsigned (*NewtonWorldRayPrefilterCallback)(const NewtonBody* body, const NewtonCollision* collision, void* userData); + typedef dFloat (*NewtonWorldRayFilterCallback)(const NewtonBody* body, const dFloat* hitNormal, int collisionID, void* userData, dFloat intersectParam); + + + typedef int (*NewtonOnAABBOverlap) (const NewtonMaterial* material, const NewtonBody* body0, const NewtonBody* body1, int threadIndex); + typedef void (*NewtonContactsProcess) (const NewtonJoint* contact, dFloat timestep, int threadIndex); +// typedef void (*NewtonContactEnd) (const NewtonMaterial* material, const NewtonBody* body0, const NewtonBody* body1, int threadIndex); + + typedef void (*NewtonBodyIterator) (const NewtonBody* body); + typedef void (*NewtonJointIterator) (const NewtonJoint* joint); + typedef void (*NewtonCollisionIterator) (void* userData, int vertexCount, const dFloat* faceArray, int faceId); + + typedef void (*NewtonBallCallBack) (const NewtonJoint* ball, dFloat timestep); + typedef unsigned (*NewtonHingeCallBack) (const NewtonJoint* hinge, NewtonHingeSliderUpdateDesc* desc); + typedef unsigned (*NewtonSliderCallBack) (const NewtonJoint* slider, NewtonHingeSliderUpdateDesc* desc); + typedef unsigned (*NewtonUniversalCallBack) (const NewtonJoint* universal, NewtonHingeSliderUpdateDesc* desc); + typedef unsigned (*NewtonCorkscrewCallBack) (const NewtonJoint* corkscrew, NewtonHingeSliderUpdateDesc* desc); + + typedef void (*NewtonUserBilateralCallBack) (const NewtonJoint* userJoint, dFloat timestep, int threadIndex); + typedef void (*NewtonUserBilateralGetInfoCallBack) (const NewtonJoint* userJoint, NewtonJointRecord* info); + + typedef void (*NewtonConstraintDestructor) (const NewtonJoint* me); + + +// typedef void (*NewtonSetRagDollTransform) (const NewtonRagDollBone* bone); +// typedef void (*NewtonBodyActivationState) (const NewtonBody* body, unsigned state); +// typedef void (*NewtonVehicleTireUpdate) (const NewtonJoint* vehicle, dFloat timestep); + + + // ********************************************************************************************** + // + // world control functions + // + // ********************************************************************************************** + NEWTON_API NewtonWorld* NewtonCreate (NewtonAllocMemory malloc, NewtonFreeMemory mfree); + NEWTON_API void NewtonDestroy (const NewtonWorld* newtonWorld); + NEWTON_API void NewtonDestroyAllBodies (const NewtonWorld* newtonWorld); + NEWTON_API int NewtonGetMemoryUsed (); + + NEWTON_API void NewtonUpdate (const NewtonWorld* newtonWorld, dFloat timestep); + NEWTON_API void NewtonInvalidateCache (const NewtonWorld* newtonWorld); + NEWTON_API void NewtonCollisionUpdate (const NewtonWorld* newtonWorld); + + NEWTON_API void NewtonSetSolverModel (const NewtonWorld* newtonWorld, int model); + NEWTON_API void NewtonSetPlatformArchitecture (const NewtonWorld* newtonWorld, int mode); + NEWTON_API int NewtonGetPlatformArchitecture(const NewtonWorld* newtonWorld, char* description); + NEWTON_API void NewtonSetMultiThreadSolverOnSingleIsland (const NewtonWorld* newtonWorld, int mode); + + NEWTON_API void NewtonSetPerformanceClock (const NewtonWorld* newtonWorld, NewtonGetTicksCountCallback callback); + NEWTON_API unsigned NewtonReadPerformanceTicks (const NewtonWorld* newtonWorld, unsigned thread, unsigned performanceEntry); + + + NEWTON_API void NewtonWorldCriticalSectionLock (const NewtonWorld* newtonWorld); + NEWTON_API void NewtonWorldCriticalSectionUnlock (const NewtonWorld* newtonWorld); + NEWTON_API void NewtonSetThreadsCount (const NewtonWorld* newtonWorld, int threads); + NEWTON_API int NewtonGetThreadsCount(const NewtonWorld* newtonWorld); + + NEWTON_API void NewtonSetFrictionModel (const NewtonWorld* newtonWorld, int model); + NEWTON_API void NewtonSetMinimumFrameRate (const NewtonWorld* newtonWorld, dFloat frameRate); + NEWTON_API void NewtonSetBodyLeaveWorldEvent (const NewtonWorld* newtonWorld, NewtonBodyLeaveWorld callback); + NEWTON_API void NewtonSetWorldSize (const NewtonWorld* newtonWorld, const dFloat* minPoint, const dFloat* maxPoint); + NEWTON_API void NewtonSetIslandUpdateEvent (const NewtonWorld* newtonWorld, NewtonIslandUpdate islandUpdate); + + +// NEWTON_API void NewtonWorldForEachBodyDo (const NewtonWorld* newtonWorld, NewtonBodyIterator callback); + NEWTON_API void NewtonWorldForEachJointDo (const NewtonWorld* newtonWorld, NewtonJointIterator callback); + NEWTON_API void NewtonWorldForEachBodyInAABBDo (const NewtonWorld* newtonWorld, const dFloat* p0, const dFloat* p1, NewtonBodyIterator callback); + + NEWTON_API void NewtonWorldSetUserData (const NewtonWorld* newtonWorld, void* userData); + NEWTON_API void* NewtonWorldGetUserData (const NewtonWorld* newtonWorld); + NEWTON_API int NewtonWorldGetVersion (const NewtonWorld* newtonWorld); + NEWTON_API void NewtonWorldRayCast (const NewtonWorld* newtonWorld, const dFloat* p0, const dFloat* p1, NewtonWorldRayFilterCallback filter, void* userData, + NewtonWorldRayPrefilterCallback prefilter); + NEWTON_API int NewtonWorldConvexCast (const NewtonWorld* newtonWorld, const dFloat* matrix, const dFloat* target, const NewtonCollision* shape, dFloat* hitParam, void* userData, + NewtonWorldRayPrefilterCallback prefilter, NewtonWorldConvexCastReturnInfo* info, int maxContactsCount, int threadIndex); + + + // world utility functions + NEWTON_API int NewtonWorldGetBodyCount(const NewtonWorld* newtonWorld); + NEWTON_API int NewtonWorldGetConstraintCount(const NewtonWorld* newtonWorld); + + // NEWTON_API int NewtonGetActiveBodiesCount(); + // NEWTON_API int NewtonGetActiveConstraintsCount(); + // NEWTON_API dFloat NewtonGetGlobalScale (const NewtonWorld* newtonWorld); + + + + // ********************************************************************************************** + // + // Simulation islands + // + // ********************************************************************************************** + NEWTON_API NewtonBody* NewtonIslandGetBody (const void* island, int bodyIndex); + NEWTON_API void NewtonIslandGetBodyAABB (const void* island, int bodyIndex, const dFloat* p0, const dFloat* p1); + + // ********************************************************************************************** + // + // Physics Material Section + // + // ********************************************************************************************** + NEWTON_API int NewtonMaterialCreateGroupID(const NewtonWorld* newtonWorld); + NEWTON_API int NewtonMaterialGetDefaultGroupID(const NewtonWorld* newtonWorld); + NEWTON_API void NewtonMaterialDestroyAllGroupID(const NewtonWorld* newtonWorld); + + // material definitions that can not be overwritten in function callback + NEWTON_API void* NewtonMaterialGetUserData (const NewtonWorld* newtonWorld, int id0, int id1); + NEWTON_API void NewtonMaterialSetSurfaceThickness (const NewtonWorld* newtonWorld, int id0, int id1, dFloat thickness); + NEWTON_API void NewtonMaterialSetContinuousCollisionMode (const NewtonWorld* newtonWorld, int id0, int id1, int state); + NEWTON_API void NewtonMaterialSetCollisionCallback (const NewtonWorld* newtonWorld, int id0, int id1, void* userData, + NewtonOnAABBOverlap aabbOverlap, NewtonContactsProcess process); + + NEWTON_API void NewtonMaterialSetDefaultSoftness (const NewtonWorld* newtonWorld, int id0, int id1, dFloat value); + NEWTON_API void NewtonMaterialSetDefaultElasticity (const NewtonWorld* newtonWorld, int id0, int id1, dFloat elasticCoef); + NEWTON_API void NewtonMaterialSetDefaultCollidable (const NewtonWorld* newtonWorld, int id0, int id1, int state); + NEWTON_API void NewtonMaterialSetDefaultFriction (const NewtonWorld* newtonWorld, int id0, int id1, + dFloat staticFriction, dFloat kineticFriction); + + NEWTON_API NewtonMaterial* NewtonWorldGetFirstMaterial (const NewtonWorld* world); + NEWTON_API NewtonMaterial* NewtonWorldGetNextMaterial (const NewtonWorld* world, const NewtonMaterial* material); + + NEWTON_API NewtonBody* NewtonWorldGetFirstBody (const NewtonWorld* world); + NEWTON_API NewtonBody* NewtonWorldGetNextBody (const NewtonWorld* world, const NewtonBody* curBody); + + + // ********************************************************************************************** + // + // Physics Contact control functions + // + // ********************************************************************************************** + NEWTON_API void *NewtonMaterialGetMaterialPairUserData (const NewtonMaterial* material); + NEWTON_API unsigned NewtonMaterialGetContactFaceAttribute (const NewtonMaterial* material); + NEWTON_API unsigned NewtonMaterialGetBodyCollisionID (const NewtonMaterial* material, const NewtonBody* body); + NEWTON_API dFloat NewtonMaterialGetContactNormalSpeed (const NewtonMaterial* material); + NEWTON_API void NewtonMaterialGetContactForce (const NewtonMaterial* material, dFloat* force); + NEWTON_API void NewtonMaterialGetContactPositionAndNormal (const NewtonMaterial* material, dFloat* posit, dFloat* normal); + NEWTON_API void NewtonMaterialGetContactTangentDirections (const NewtonMaterial* material, dFloat* dir0, dFloat* dir1); + NEWTON_API dFloat NewtonMaterialGetContactTangentSpeed (const NewtonMaterial* material, int index); + + NEWTON_API void NewtonMaterialSetContactSoftness (const NewtonMaterial* material, dFloat softness); + NEWTON_API void NewtonMaterialSetContactElasticity (const NewtonMaterial* material, dFloat restitution); + NEWTON_API void NewtonMaterialSetContactFrictionState (const NewtonMaterial* material, int state, int index); + NEWTON_API void NewtonMaterialSetContactFrictionCoef (const NewtonMaterial* material, dFloat staticFrictionCoef, dFloat kineticFrictionCoef, int index); + + NEWTON_API void NewtonMaterialSetContactNormalAcceleration (const NewtonMaterial* material, dFloat accel); + NEWTON_API void NewtonMaterialSetContactNormalDirection (const NewtonMaterial* material, const dFloat* directionVector); + + NEWTON_API void NewtonMaterialSetContactTangentAcceleration (const NewtonMaterial* material, dFloat accel, int index); + NEWTON_API void NewtonMaterialContactRotateTangentDirections (const NewtonMaterial* material, const dFloat* directionVector); + + + + // ********************************************************************************************** + // + // convex collision primitives creation functions + // + // ********************************************************************************************** + NEWTON_API NewtonCollision* NewtonCreateNull (const NewtonWorld* newtonWorld); + NEWTON_API NewtonCollision* NewtonCreateSphere (const NewtonWorld* newtonWorld, dFloat radiusX, dFloat radiusY, dFloat radiusZ, const dFloat *offsetMatrix); + NEWTON_API NewtonCollision* NewtonCreateBox (const NewtonWorld* newtonWorld, dFloat dx, dFloat dy, dFloat dz, const dFloat *offsetMatrix); + NEWTON_API NewtonCollision* NewtonCreateCone (const NewtonWorld* newtonWorld, dFloat radius, dFloat height, const dFloat *offsetMatrix); + NEWTON_API NewtonCollision* NewtonCreateCapsule (const NewtonWorld* newtonWorld, dFloat radius, dFloat height, const dFloat *offsetMatrix); + NEWTON_API NewtonCollision* NewtonCreateCylinder (const NewtonWorld* newtonWorld, dFloat radius, dFloat height, const dFloat *offsetMatrix); + NEWTON_API NewtonCollision* NewtonCreateChamferCylinder (const NewtonWorld* newtonWorld, dFloat radius, dFloat height, const dFloat *offsetMatrix); + NEWTON_API NewtonCollision* NewtonCreateConvexHull (const NewtonWorld* newtonWorld, int count, const dFloat* vertexCloud, int strideInBytes, dFloat tolerance, const dFloat *offsetMatrix); + NEWTON_API NewtonCollision* NewtonCreateConvexHullFromMesh (const NewtonWorld* newtonWorld, const NewtonMesh* mesh, dFloat tolerance); + + NEWTON_API NewtonCollision* NewtonCreateConvexHullModifier (const NewtonWorld* newtonWorld, const NewtonCollision* convexHullCollision); + NEWTON_API void NewtonConvexHullModifierGetMatrix (const NewtonCollision* convexHullCollision, dFloat* matrix); + NEWTON_API void NewtonConvexHullModifierSetMatrix (const NewtonCollision* convexHullCollision, const dFloat* matrix); + + NEWTON_API int NewtonCollisionIsTriggerVolume(const NewtonCollision* convexCollision); + NEWTON_API void NewtonCollisionSetAsTriggerVolume(const NewtonCollision* convexCollision, int trigger); + NEWTON_API void NewtonCollisionSetUserID (const NewtonCollision* convexCollision, unsigned id); + NEWTON_API unsigned NewtonCollisionGetUserID (const NewtonCollision* convexCollision); + + NEWTON_API dFloat NewtonConvexCollisionCalculateVolume (const NewtonCollision* convexCollision); + NEWTON_API void NewtonConvexCollisionCalculateInertialMatrix (const NewtonCollision* convexCollision, dFloat* inertia, dFloat* origin); + + + NEWTON_API void NewtonCollisionMakeUnique (const NewtonWorld* newtonWorld, const NewtonCollision* collision); + NEWTON_API void NewtonReleaseCollision (const NewtonWorld* newtonWorld, const NewtonCollision* collision); + NEWTON_API int NewtonAddCollisionReference (const NewtonCollision* collision); + + + // ********************************************************************************************** + // + // mass/spring/damper collision shape + // + // ********************************************************************************************** +// NEWTON_API NewtonCollision* NewtonCreateSoftShape (const NewtonWorld* newtonWorld); +// NEWTON_API void NewtonSoftBodySetMassCount (const NewtonCollision* convexCollision, int count); +// NEWTON_API void NewtonSoftBodySetSpringCount (const NewtonCollision* convexCollision, int count); + +// NEWTON_API void NewtonSoftBodySetMass (const NewtonCollision* convexCollision, int index, dFloat mass, dFloat* position); +// NEWTON_API int NewtonSoftBodySetSpring (const NewtonCollision* convexCollision, int index, int mass0, int mass1, dFloat stiffness, dFloat damper); +// NEWTON_API int NewtonSoftBodyGetMassArray (const NewtonCollision* convexCollision, dFloat* masses, dFloat** positions); + + + // ********************************************************************************************** + // + // complex collision primitives creation functions + // + // ********************************************************************************************** + NEWTON_API NewtonCollision* NewtonCreateCompoundCollision (const NewtonWorld* newtonWorld, int count, NewtonCollision* const collisionPrimitiveArray[]); + NEWTON_API NewtonCollision* NewtonCreateCompoundCollisionFromMesh (const NewtonWorld* newtonWorld, const NewtonMesh* mesh, dFloat concavity, int maxShapeCount); + + NEWTON_API NewtonCollision* NewtonCreateUserMeshCollision (const NewtonWorld* newtonWorld, const dFloat *minBox, + const dFloat *maxBox, void *userData, NewtonUserMeshCollisionCollideCallback collideCallback, + NewtonUserMeshCollisionRayHitCallback rayHitCallback, NewtonUserMeshCollisionDestroyCallback destroyCallback, + NewtonUserMeshCollisionGetCollisionInfo getInfoCallback, NewtonUserMeshCollisionGetFacesInAABB facesInAABBCallback); + + NEWTON_API NewtonCollision* NewtonCreateSceneCollision (const NewtonWorld* newtonWorld); + NEWTON_API NewtonSceneProxy* NewtonSceneCollisionCreateProxy (NewtonCollision* scene, NewtonCollision* collision); + + NEWTON_API void NewtonSceneCollisionDestroyProxy (NewtonCollision* scene, NewtonSceneProxy* Proxy); + NEWTON_API void NewtonSceneProxySetMatrix (NewtonSceneProxy* proxy, const dFloat* matrix); + NEWTON_API void NewtonSceneProxyGetMatrix (NewtonSceneProxy* proxy, dFloat* matrix); + + NEWTON_API void NewtonSceneCollisionOptimize (NewtonCollision* scene); + + // *********************************************************************************************************** + // + // Collision serialization functions + // + // *********************************************************************************************************** + NEWTON_API NewtonCollision* NewtonCreateCollisionFromSerialization (const NewtonWorld* newtonWorld, NewtonDeserialize deserializeFunction, void* serializeHandle); + NEWTON_API void NewtonCollisionSerialize (const NewtonWorld* newtonWorld, const NewtonCollision* collision, NewtonSerialize serializeFunction, void* serializeHandle); + NEWTON_API void NewtonCollisionGetInfo (const NewtonCollision* collision, NewtonCollisionInfoRecord* collisionInfo); + + // ********************************************************************************************** + // + // Static collision shapes functions + // + // ********************************************************************************************** + NEWTON_API NewtonCollision* NewtonCreateHeightFieldCollision (const NewtonWorld* newtonWorld, int width, int height, int gridsDiagonals, + unsigned short* elevationMap, char* attributeMap, + dFloat horizontalScale, dFloat verticalScale); + + NEWTON_API NewtonCollision* NewtonCreateTreeCollision (const NewtonWorld* newtonWorld); + NEWTON_API void NewtonTreeCollisionSetUserRayCastCallback (const NewtonCollision* treeCollision, NewtonCollisionTreeRayCastCallback rayHitCallback); + + NEWTON_API void NewtonTreeCollisionBeginBuild (const NewtonCollision* treeCollision); + NEWTON_API void NewtonTreeCollisionAddFace (const NewtonCollision* treeCollision, int vertexCount, const dFloat* vertexPtr, int strideInBytes, int faceAttribute); + NEWTON_API void NewtonTreeCollisionEndBuild (const NewtonCollision* treeCollision, int optimize); + + NEWTON_API int NewtonTreeCollisionGetFaceAtribute (const NewtonCollision* treeCollision, const int* faceIndexArray); + NEWTON_API void NewtonTreeCollisionSetFaceAtribute (const NewtonCollision* treeCollision, const int* faceIndexArray, int attribute); + NEWTON_API int NewtonTreeCollisionGetVertexListIndexListInAABB (const NewtonCollision* treeCollision, const dFloat* p0, const dFloat* p1, const dFloat** vertexArray, int* vertexCount, int* vertexStrideInBytes, const int* indexList, int maxIndexCount, const int* faceAttribute); + + + NEWTON_API void NewtonStaticCollisionSetDebugCallback (const NewtonCollision* staticCollision, NewtonTreeCollisionCallback userCallback); + + // ********************************************************************************************** + // + // General purpose collision library functions + // + // ********************************************************************************************** + NEWTON_API int NewtonCollisionPointDistance (const NewtonWorld* newtonWorld, const dFloat *point, + const NewtonCollision* collision, const dFloat* matrix, dFloat* contact, dFloat* normal, int threadIndex); + + NEWTON_API int NewtonCollisionClosestPoint (const NewtonWorld* newtonWorld, + const NewtonCollision* collisionA, const dFloat* matrixA, const NewtonCollision* collisionB, const dFloat* matrixB, + dFloat* contactA, dFloat* contactB, dFloat* normalAB, int threadIndex); + + NEWTON_API int NewtonCollisionCollide (const NewtonWorld* newtonWorld, int maxSize, + const NewtonCollision* collisionA, const dFloat* matrixA, const NewtonCollision* collisionB, const dFloat* matrixB, + dFloat* contacts, dFloat* normals, dFloat* penetration, int threadIndex); + + NEWTON_API int NewtonCollisionCollideContinue (const NewtonWorld* newtonWorld, int maxSize, const dFloat timestep, + const NewtonCollision* collisionA, const dFloat* matrixA, const dFloat* velocA, const dFloat* omegaA, + const NewtonCollision* collisionB, const dFloat* matrixB, const dFloat* velocB, const dFloat* omegaB, + dFloat* timeOfImpact, dFloat* contacts, dFloat* normals, dFloat* penetration, int threadIndex); + + NEWTON_API void NewtonCollisionSupportVertex (const NewtonCollision* collision, const dFloat* dir, dFloat* vertex); + NEWTON_API dFloat NewtonCollisionRayCast (const NewtonCollision* collision, const dFloat* p0, const dFloat* p1, dFloat* normals, int* attribute); + NEWTON_API void NewtonCollisionCalculateAABB (const NewtonCollision* collision, const dFloat *matrix, dFloat* p0, dFloat* p1); + NEWTON_API void NewtonCollisionForEachPolygonDo (const NewtonCollision* collision, const dFloat* matrix, NewtonCollisionIterator callback, void* userData); + + + + + // ********************************************************************************************** + // + // transforms utility functions + // + // ********************************************************************************************** + NEWTON_API void NewtonGetEulerAngle (const dFloat* matrix, dFloat* eulersAngles); + NEWTON_API void NewtonSetEulerAngle (const dFloat* eulersAngles, dFloat* matrix); + NEWTON_API dFloat NewtonCalculateSpringDamperAcceleration (dFloat dt, dFloat ks, dFloat x, dFloat kd, dFloat s); + + // ********************************************************************************************** + // + // body manipulation functions + // + // ********************************************************************************************** + NEWTON_API NewtonBody* NewtonCreateBody (const NewtonWorld* newtonWorld, const NewtonCollision* collision); + NEWTON_API void NewtonDestroyBody(const NewtonWorld* newtonWorld, const NewtonBody* body); + + NEWTON_API void NewtonBodyAddForce (const NewtonBody* body, const dFloat* force); + NEWTON_API void NewtonBodyAddTorque (const NewtonBody* body, const dFloat* torque); + NEWTON_API void NewtonBodyCalculateInverseDynamicsForce (const NewtonBody* body, dFloat timestep, const dFloat* desiredVeloc, dFloat* forceOut); + + NEWTON_API void NewtonBodySetMatrix (const NewtonBody* body, const dFloat* matrix); + NEWTON_API void NewtonBodySetMatrixRecursive (const NewtonBody* body, const dFloat* matrix); + NEWTON_API void NewtonBodySetMassMatrix (const NewtonBody* body, dFloat mass, dFloat Ixx, dFloat Iyy, dFloat Izz); + NEWTON_API void NewtonBodySetMaterialGroupID (const NewtonBody* body, int id); + NEWTON_API void NewtonBodySetContinuousCollisionMode (const NewtonBody* body, unsigned state); + NEWTON_API void NewtonBodySetJointRecursiveCollision (const NewtonBody* body, unsigned state); + NEWTON_API void NewtonBodySetOmega (const NewtonBody* body, const dFloat* omega); + NEWTON_API void NewtonBodySetVelocity (const NewtonBody* body, const dFloat* velocity); + NEWTON_API void NewtonBodySetForce (const NewtonBody* body, const dFloat* force); + NEWTON_API void NewtonBodySetTorque (const NewtonBody* body, const dFloat* torque); + + NEWTON_API void NewtonBodySetCentreOfMass (const NewtonBody* body, const dFloat* com); + NEWTON_API void NewtonBodySetLinearDamping (const NewtonBody* body, dFloat linearDamp); + NEWTON_API void NewtonBodySetAngularDamping (const NewtonBody* body, const dFloat* angularDamp); + NEWTON_API void NewtonBodySetUserData (const NewtonBody* body, void* userData); + NEWTON_API void NewtonBodySetCollision (const NewtonBody* body, const NewtonCollision* collision); + + + + NEWTON_API int NewtonBodyGetSleepState (const NewtonBody* body); + NEWTON_API int NewtonBodyGetAutoSleep (const NewtonBody* body); + NEWTON_API void NewtonBodySetAutoSleep (const NewtonBody* body, int state); + + NEWTON_API int NewtonBodyGetFreezeState(const NewtonBody* body); + NEWTON_API void NewtonBodySetFreezeState (const NewtonBody* body, int state); + + +// NEWTON_API void NewtonBodySetAutoFreeze(const NewtonBody* body, int state); +// NEWTON_API void NewtonBodyCoriolisForcesMode (const NewtonBody* body, int mode); +// NEWTON_API void NewtonBodySetGyroscopicForcesMode (const NewtonBody* body, int mode); +// NEWTON_API int NewtonBodyGetGyroscopicForcesMode (const NewtonBody* body); +// NEWTON_API int NewtonBodyGetFreezeState (const NewtonBody* body); +// NEWTON_API void NewtonBodySetFreezeState (const NewtonBody* body, int state); +// NEWTON_API void NewtonBodyGetFreezeTreshold (const NewtonBody* body, dFloat* freezeSpeed2, dFloat* freezeOmega2); +// NEWTON_API void NewtonBodySetFreezeTreshold (const NewtonBody* body, dFloat freezeSpeed2, dFloat freezeOmega2, int framesCount); +// NEWTON_API void NewtonBodySetAutoactiveCallback (const NewtonBody* body, NewtonBodyActivationState callback); + + NEWTON_API void NewtonBodySetTransformCallback (const NewtonBody* body, NewtonSetTransform callback); + NEWTON_API void NewtonBodySetDestructorCallback (const NewtonBody* body, NewtonBodyDestructor callback); + + NEWTON_API void NewtonBodySetForceAndTorqueCallback (const NewtonBody* body, NewtonApplyForceAndTorque callback); + NEWTON_API NewtonApplyForceAndTorque NewtonBodyGetForceAndTorqueCallback (const NewtonBody* body); + NEWTON_API void* NewtonBodyGetUserData (const NewtonBody* body); + NEWTON_API NewtonWorld* NewtonBodyGetWorld (const NewtonBody* body); + NEWTON_API NewtonCollision* NewtonBodyGetCollision (const NewtonBody* body); + NEWTON_API int NewtonBodyGetMaterialGroupID (const NewtonBody* body); + + NEWTON_API int NewtonBodyGetContinuousCollisionMode (const NewtonBody* body); + NEWTON_API int NewtonBodyGetJointRecursiveCollision (const NewtonBody* body); + + NEWTON_API void NewtonBodyGetMatrix(const NewtonBody* body, dFloat* matrix); + NEWTON_API void NewtonBodyGetRotation(const NewtonBody* body, dFloat* rotation); + NEWTON_API void NewtonBodyGetMassMatrix (const NewtonBody* body, dFloat* mass, dFloat* Ixx, dFloat* Iyy, dFloat* Izz); + NEWTON_API void NewtonBodyGetInvMass(const NewtonBody* body, dFloat* invMass, dFloat* invIxx, dFloat* invIyy, dFloat* invIzz); + NEWTON_API void NewtonBodyGetOmega(const NewtonBody* body, dFloat* vector); + NEWTON_API void NewtonBodyGetVelocity(const NewtonBody* body, dFloat* vector); + NEWTON_API void NewtonBodyGetForce(const NewtonBody* body, dFloat* vector); + NEWTON_API void NewtonBodyGetTorque(const NewtonBody* body, dFloat* vector); + NEWTON_API void NewtonBodyGetForceAcc(const NewtonBody* body, dFloat* vector); + NEWTON_API void NewtonBodyGetTorqueAcc(const NewtonBody* body, dFloat* vector); + NEWTON_API void NewtonBodyGetCentreOfMass (const NewtonBody* body, dFloat* com); + + NEWTON_API dFloat NewtonBodyGetLinearDamping (const NewtonBody* body); + NEWTON_API void NewtonBodyGetAngularDamping (const NewtonBody* body, dFloat* vector); + NEWTON_API void NewtonBodyGetAABB (const NewtonBody* body, dFloat* p0, dFloat* p1); + NEWTON_API NewtonJoint* NewtonBodyGetFirstJoint (const NewtonBody* body); + NEWTON_API NewtonJoint* NewtonBodyGetNextJoint (const NewtonBody* body, const NewtonJoint* joint); + NEWTON_API NewtonJoint* NewtonBodyGetFirstContactJoint (const NewtonBody* body); + NEWTON_API NewtonJoint* NewtonBodyGetNextContactJoint (const NewtonBody* body, const NewtonJoint* contactJoint); + + NEWTON_API void* NewtonContactJointGetFirstContact (const NewtonJoint* contactJoint); + NEWTON_API void* NewtonContactJointGetNextContact (const NewtonJoint* contactJoint, void* contact); + + NEWTON_API int NewtonContactJointGetContactCount(const NewtonJoint* contactJoint); + NEWTON_API void NewtonContactJointRemoveContact(const NewtonJoint* contactJoint, void* contact); + + NEWTON_API NewtonMaterial* NewtonContactGetMaterial (const void* contact); + + + + + + NEWTON_API void NewtonBodyAddBuoyancyForce (const NewtonBody* body, dFloat fluidDensity, + dFloat fluidLinearViscosity, dFloat fluidAngularViscosity, + const dFloat* gravityVector, NewtonGetBuoyancyPlane buoyancyPlane, void *context); + +// NEWTON_API void NewtonBodyForEachPolygonDo (const NewtonBody* body, NewtonCollisionIterator callback); + NEWTON_API void NewtonBodyAddImpulse (const NewtonBody* body, const dFloat* pointDeltaVeloc, const dFloat* pointPosit); + + + // ********************************************************************************************** + // + // Common joint functions + // + // ********************************************************************************************** + NEWTON_API void* NewtonJointGetUserData (const NewtonJoint* joint); + NEWTON_API void NewtonJointSetUserData (const NewtonJoint* joint, void* userData); + + NEWTON_API NewtonBody* NewtonJointGetBody0 (const NewtonJoint* joint); + NEWTON_API NewtonBody* NewtonJointGetBody1 (const NewtonJoint* joint); + + NEWTON_API void NewtonJointGetInfo (const NewtonJoint* joint, NewtonJointRecord* info); + NEWTON_API int NewtonJointGetCollisionState (const NewtonJoint* joint); + NEWTON_API void NewtonJointSetCollisionState (const NewtonJoint* joint, int state); + + NEWTON_API dFloat NewtonJointGetStiffness (const NewtonJoint* joint); + NEWTON_API void NewtonJointSetStiffness (const NewtonJoint* joint, dFloat state); + + NEWTON_API void NewtonDestroyJoint(const NewtonWorld* newtonWorld, const NewtonJoint* joint); + NEWTON_API void NewtonJointSetDestructor (const NewtonJoint* joint, NewtonConstraintDestructor destructor); + + + + + // ********************************************************************************************** + // + // Ball and Socket joint functions + // + // ********************************************************************************************** + NEWTON_API NewtonJoint* NewtonConstraintCreateBall (const NewtonWorld* newtonWorld, const dFloat* pivotPoint, + const NewtonBody* childBody, const NewtonBody* parentBody); + NEWTON_API void NewtonBallSetUserCallback (const NewtonJoint* ball, NewtonBallCallBack callback); + NEWTON_API void NewtonBallGetJointAngle (const NewtonJoint* ball, dFloat* angle); + NEWTON_API void NewtonBallGetJointOmega (const NewtonJoint* ball, dFloat* omega); + NEWTON_API void NewtonBallGetJointForce (const NewtonJoint* ball, dFloat* force); + NEWTON_API void NewtonBallSetConeLimits (const NewtonJoint* ball, const dFloat* pin, dFloat maxConeAngle, dFloat maxTwistAngle); + + // ********************************************************************************************** + // + // Hinge joint functions + // + // ********************************************************************************************** + NEWTON_API NewtonJoint* NewtonConstraintCreateHinge (const NewtonWorld* newtonWorld, + const dFloat* pivotPoint, const dFloat* pinDir, + const NewtonBody* childBody, const NewtonBody* parentBody); + + NEWTON_API void NewtonHingeSetUserCallback (const NewtonJoint* hinge, NewtonHingeCallBack callback); + NEWTON_API dFloat NewtonHingeGetJointAngle (const NewtonJoint* hinge); + NEWTON_API dFloat NewtonHingeGetJointOmega (const NewtonJoint* hinge); + NEWTON_API void NewtonHingeGetJointForce (const NewtonJoint* hinge, dFloat* force); + NEWTON_API dFloat NewtonHingeCalculateStopAlpha (const NewtonJoint* hinge, const NewtonHingeSliderUpdateDesc* desc, dFloat angle); + + // ********************************************************************************************** + // + // Slider joint functions + // + // ********************************************************************************************** + NEWTON_API NewtonJoint* NewtonConstraintCreateSlider (const NewtonWorld* newtonWorld, + const dFloat* pivotPoint, const dFloat* pinDir, + const NewtonBody* childBody, const NewtonBody* parentBody); + NEWTON_API void NewtonSliderSetUserCallback (const NewtonJoint* slider, NewtonSliderCallBack callback); + NEWTON_API dFloat NewtonSliderGetJointPosit (const NewtonJoint* slider); + NEWTON_API dFloat NewtonSliderGetJointVeloc (const NewtonJoint* slider); + NEWTON_API void NewtonSliderGetJointForce (const NewtonJoint* slider, dFloat* force); + NEWTON_API dFloat NewtonSliderCalculateStopAccel (const NewtonJoint* slider, const NewtonHingeSliderUpdateDesc* desc, dFloat position); + + + // ********************************************************************************************** + // + // Corkscrew joint functions + // + // ********************************************************************************************** + NEWTON_API NewtonJoint* NewtonConstraintCreateCorkscrew (const NewtonWorld* newtonWorld, + const dFloat* pivotPoint, const dFloat* pinDir, + const NewtonBody* childBody, const NewtonBody* parentBody); + NEWTON_API void NewtonCorkscrewSetUserCallback (const NewtonJoint* corkscrew, NewtonCorkscrewCallBack callback); + NEWTON_API dFloat NewtonCorkscrewGetJointPosit (const NewtonJoint* corkscrew); + NEWTON_API dFloat NewtonCorkscrewGetJointAngle (const NewtonJoint* corkscrew); + NEWTON_API dFloat NewtonCorkscrewGetJointVeloc (const NewtonJoint* corkscrew); + NEWTON_API dFloat NewtonCorkscrewGetJointOmega (const NewtonJoint* corkscrew); + NEWTON_API void NewtonCorkscrewGetJointForce (const NewtonJoint* corkscrew, dFloat* force); + NEWTON_API dFloat NewtonCorkscrewCalculateStopAlpha (const NewtonJoint* corkscrew, const NewtonHingeSliderUpdateDesc* desc, dFloat angle); + NEWTON_API dFloat NewtonCorkscrewCalculateStopAccel (const NewtonJoint* corkscrew, const NewtonHingeSliderUpdateDesc* desc, dFloat position); + + + // ********************************************************************************************** + // + // Universal joint functions + // + // ********************************************************************************************** + NEWTON_API NewtonJoint* NewtonConstraintCreateUniversal (const NewtonWorld* newtonWorld, + const dFloat* pivotPoint, const dFloat* pinDir0, const dFloat* pinDir1, + const NewtonBody* childBody, const NewtonBody* parentBody); + NEWTON_API void NewtonUniversalSetUserCallback (const NewtonJoint* universal, NewtonUniversalCallBack callback); + NEWTON_API dFloat NewtonUniversalGetJointAngle0 (const NewtonJoint* universal); + NEWTON_API dFloat NewtonUniversalGetJointAngle1 (const NewtonJoint* universal); + NEWTON_API dFloat NewtonUniversalGetJointOmega0 (const NewtonJoint* universal); + NEWTON_API dFloat NewtonUniversalGetJointOmega1 (const NewtonJoint* universal); + NEWTON_API void NewtonUniversalGetJointForce (const NewtonJoint* universal, dFloat* force); + NEWTON_API dFloat NewtonUniversalCalculateStopAlpha0 (const NewtonJoint* universal, const NewtonHingeSliderUpdateDesc* desc, dFloat angle); + NEWTON_API dFloat NewtonUniversalCalculateStopAlpha1 (const NewtonJoint* universal, const NewtonHingeSliderUpdateDesc* desc, dFloat angle); + + + // ********************************************************************************************** + // + // Up vector joint functions + // + // ********************************************************************************************** + NEWTON_API NewtonJoint* NewtonConstraintCreateUpVector (const NewtonWorld* newtonWorld, const dFloat* pinDir, const NewtonBody* body); + NEWTON_API void NewtonUpVectorGetPin (const NewtonJoint* upVector, dFloat *pin); + NEWTON_API void NewtonUpVectorSetPin (const NewtonJoint* upVector, const dFloat *pin); + + + // ********************************************************************************************** + // + // User defined bilateral Joint + // + // ********************************************************************************************** + NEWTON_API NewtonJoint* NewtonConstraintCreateUserJoint (const NewtonWorld* newtonWorld, int maxDOF, + NewtonUserBilateralCallBack callback, + NewtonUserBilateralGetInfoCallBack getInfo, + const NewtonBody* childBody, const NewtonBody* parentBody) ; + NEWTON_API void NewtonUserJointSetFeedbackCollectorCallback (const NewtonJoint* joint, NewtonUserBilateralCallBack getFeedback); + NEWTON_API void NewtonUserJointAddLinearRow (const NewtonJoint* joint, const dFloat *pivot0, const dFloat *pivot1, const dFloat *dir); + NEWTON_API void NewtonUserJointAddAngularRow (const NewtonJoint* joint, dFloat relativeAngle, const dFloat *dir); + NEWTON_API void NewtonUserJointAddGeneralRow (const NewtonJoint* joint, const dFloat *jacobian0, const dFloat *jacobian1); + NEWTON_API void NewtonUserJointSetRowMinimumFriction (const NewtonJoint* joint, dFloat friction); + NEWTON_API void NewtonUserJointSetRowMaximumFriction (const NewtonJoint* joint, dFloat friction); + NEWTON_API void NewtonUserJointSetRowAcceleration (const NewtonJoint* joint, dFloat acceleration); + NEWTON_API void NewtonUserJointSetRowSpringDamperAcceleration (const NewtonJoint* joint, dFloat springK, dFloat springD); + NEWTON_API void NewtonUserJointSetRowStiffness (const NewtonJoint* joint, dFloat stiffness); + NEWTON_API dFloat NewtonUserJointGetRowForce (const NewtonJoint* joint, int row); + + + // ********************************************************************************************** + // + // Mesh joint functions + // + // ********************************************************************************************** + NEWTON_API NewtonMesh* NewtonMeshCreate(); + NEWTON_API NewtonMesh* NewtonMeshCreateFromCollision(const NewtonCollision* collision); + NEWTON_API void NewtonMeshDestroy(const NewtonMesh*mesh); + + NEWTON_API void NewtonMeshCalculateVertexNormals(const NewtonMesh* mesh, dFloat angleInRadians); + NEWTON_API void NewtonMeshApplySphericalMapping(const NewtonMesh* mesh, int material); + NEWTON_API void NewtonMeshApplyBoxMapping(const NewtonMesh* mesh, int front, int side, int top); + NEWTON_API void NewtonMeshApplyCylindricalMapping(const NewtonMesh* mesh, int cylinderMaterial, int capMaterial); + + + NEWTON_API int NewtonMeshPlaneClip (const NewtonMesh* mesh, + const dFloat* plane, const dFloat* textureProjectionMatrix, + NewtonMesh** meshOut, int maxMeshCount, int capMaterial); + + NEWTON_API void NewtonMeshBeginFace(const NewtonMesh *mesh); + NEWTON_API void NewtonMeshAddFace(const NewtonMesh *mesh, int vertexCount, const dFloat* vertex, int strideInBytes, int materialIndex); + NEWTON_API void NewtonMeshEndFace(const NewtonMesh *mesh); + + NEWTON_API int NewtonMeshGetVertexCount (const NewtonMesh *mesh); + NEWTON_API void NewtonMeshGetVertexStreams (const NewtonMesh *mesh, + int vertexStrideInByte, dFloat* vertex, + int normalStrideInByte, dFloat* normal, + int uvStrideInByte, dFloat* uv); + NEWTON_API void NewtonMeshGetIndirectVertexStreams(const NewtonMesh *mesh, + int vertexStrideInByte, dFloat* vertex, int* vertexIndices, int* vertexCount, + int normalStrideInByte, dFloat* normal, int* normalIndices, int* normalCount, + int uvStrideInByte, dFloat* uv, int* uvIndices, int* uvCount); + + NEWTON_API int NewtonMeshFirstMaterial (const NewtonMesh *mesh); + NEWTON_API int NewtonMeshNextMaterial (const NewtonMesh *mesh, int materialHandle); + NEWTON_API int NewtonMeshMaterialGetMaterial (const NewtonMesh *mesh, int materialHandle); + NEWTON_API int NewtonMeshMaterialGetIndexCount (const NewtonMesh *mesh, int materialHandle); + NEWTON_API void NewtonMeshMaterialGetIndexStream (const NewtonMesh *mesh, int materialHandle, int* index); + NEWTON_API void NewtonMeshMaterialGetIndexStreamShort (const NewtonMesh *mesh, int materialHandle, short int* index); + + + // ********************************************************************************************** + // + // Rag doll joint container functions + // + // ********************************************************************************************** + // NEWTON_API NewtonRagDoll* NewtonCreateRagDoll (const NewtonWorld* newtonWorld); + // NEWTON_API void NewtonDestroyRagDoll (const NewtonWorld* newtonWorld, const NewtonRagDoll* ragDoll); + // NEWTON_API void NewtonRagDollBegin (const NewtonRagDoll* ragDoll); + // NEWTON_API void NewtonRagDollEnd (const NewtonRagDoll* ragDoll); + // NEWTON_API NewtonRagDollBone* NewtonRagDollFindBone (const NewtonRagDoll* ragDoll, int id); + // NEWTON_API void NewtonRagDollSetForceAndTorqueCallback (const NewtonRagDoll* ragDoll, NewtonApplyForceAndTorque callback); + // NEWTON_API void NewtonRagDollSetTransformCallback (const NewtonRagDoll* ragDoll, NewtonSetRagDollTransform callback); + // NEWTON_API NewtonRagDollBone* NewtonRagDollAddBone (const NewtonRagDoll* ragDoll, const NewtonRagDollBone* parent, + // void *userData, dFloat mass, const dFloat* matrix, + // const NewtonCollision* boneCollision, const dFloat* size); + // NEWTON_API void* NewtonRagDollBoneGetUserData (const NewtonRagDollBone* bone); + // NEWTON_API NewtonBody* NewtonRagDollBoneGetBody (const NewtonRagDollBone* bone); + // NEWTON_API void NewtonRagDollBoneSetID (const NewtonRagDollBone* bone, int id); + // NEWTON_API void NewtonRagDollBoneSetLimits (const NewtonRagDollBone* bone, + // const dFloat* coneDir, dFloat minConeAngle, dFloat maxConeAngle, dFloat maxTwistAngle, + // const dFloat* bilateralConeDir, dFloat negativeBilateralConeAngle, dFloat positiveBilateralConeAngle); + + // NEWTON_API void NewtonRagDollBoneGetLocalMatrix (const NewtonRagDollBone* bone, dFloat* matrix); + // NEWTON_API void NewtonRagDollBoneGetGlobalMatrix (const NewtonRagDollBone* bone, dFloat* matrix); + + + // ********************************************************************************************** + // + // Vehicle joint functions + // + // ********************************************************************************************** + // NEWTON_API NewtonJoint* NewtonConstraintCreateVehicle (const NewtonWorld* newtonWorld, const dFloat* upDir, const NewtonBody* body); + // NEWTON_API void NewtonVehicleReset (const NewtonJoint* vehicle); + // NEWTON_API void NewtonVehicleSetTireCallback (const NewtonJoint* vehicle, NewtonVehicleTireUpdate update); + // NEWTON_API void* NewtonVehicleAddTire (const NewtonJoint* vehicle, const dFloat* localMatrix, const dFloat* pin, dFloat mass, dFloat width, dFloat radius, dFloat suspesionShock, dFloat suspesionSpring, dFloat suspesionLength, void* userData, int collisionID); + // NEWTON_API void NewtonVehicleRemoveTire (const NewtonJoint* vehicle, void* tireId); + // NEWTON_API void* NewtonVehicleGetFirstTireID (const NewtonJoint* vehicle); + // NEWTON_API void* NewtonVehicleGetNextTireID (const NewtonJoint* vehicle, void* tireId); + // NEWTON_API int NewtonVehicleTireIsAirBorne (const NewtonJoint* vehicle, void* tireId); + // NEWTON_API int NewtonVehicleTireLostSideGrip (const NewtonJoint* vehicle, void* tireId); + // NEWTON_API int NewtonVehicleTireLostTraction (const NewtonJoint* vehicle, void* tireId); + // NEWTON_API void* NewtonVehicleGetTireUserData (const NewtonJoint* vehicle, void* tireId); + // NEWTON_API dFloat NewtonVehicleGetTireOmega (const NewtonJoint* vehicle, void* tireId); + // NEWTON_API dFloat NewtonVehicleGetTireNormalLoad (const NewtonJoint* vehicle, void* tireId); + // NEWTON_API dFloat NewtonVehicleGetTireSteerAngle (const NewtonJoint* vehicle, void* tireId); + // NEWTON_API dFloat NewtonVehicleGetTireLateralSpeed (const NewtonJoint* vehicle, void* tireId); + // NEWTON_API dFloat NewtonVehicleGetTireLongitudinalSpeed (const NewtonJoint* vehicle, void* tireId); + // NEWTON_API void NewtonVehicleGetTireMatrix (const NewtonJoint* vehicle, void* tireId, dFloat* matrix); + // NEWTON_API void NewtonVehicleSetTireTorque (const NewtonJoint* vehicle, void* tireId, dFloat torque); + // NEWTON_API void NewtonVehicleSetTireSteerAngle (const NewtonJoint* vehicle, void* tireId, dFloat angle); + // NEWTON_API void NewtonVehicleSetTireMaxSideSleepSpeed (const NewtonJoint* vehicle, void* tireId, dFloat speed); + // NEWTON_API void NewtonVehicleSetTireSideSleepCoeficient (const NewtonJoint* vehicle, void* tireId, dFloat coeficient); + // NEWTON_API void NewtonVehicleSetTireMaxLongitudinalSlideSpeed (const NewtonJoint* vehicle, void* tireId, dFloat speed); + // NEWTON_API void NewtonVehicleSetTireLongitudinalSlideCoeficient (const NewtonJoint* vehicle, void* tireId, dFloat coeficient); + // NEWTON_API dFloat NewtonVehicleTireCalculateMaxBrakeAcceleration (const NewtonJoint* vehicle, void* tireId); + // NEWTON_API void NewtonVehicleTireSetBrakeAcceleration (const NewtonJoint* vehicle, void* tireId, dFloat accelaration, dFloat torqueLimit); + + + +#ifdef __cplusplus +} +#endif +#endif + + diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 WIP/dlls/newton.dll Binary file WIP/dlls/newton.dll has changed diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 WIP/dlls/newton.lib Binary file WIP/dlls/newton.lib has changed diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 WIP/dlls/newton.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/WIP/dlls/newton.map Sat Aug 24 12:03:17 2013 -0500 @@ -0,0 +1,2460 @@ + newton + + Timestamp is 498f8e01 (Sun Feb 08 17:59:29 2009) + + Preferred load address is 10000000 + + Start Length Name Class + 0001:00000000 0008cdb4H .text CODE + 0001:0008cdc0 0000000cH .text$yc CODE + 0001:0008cdd0 00000001H .text$yd CODE + 0002:00000000 0000014cH .idata$5 DATA + 0002:0000014c 00000004H .CRT$XCA DATA + 0002:00000150 00000004H .CRT$XCU DATA + 0002:00000154 00000004H .CRT$XCZ DATA + 0002:00000158 00000004H .CRT$XIA DATA + 0002:0000015c 00000014H .CRT$XIC DATA + 0002:00000170 00000004H .CRT$XIZ DATA + 0002:00000174 00000004H .CRT$XPA DATA + 0002:00000178 00000004H .CRT$XPX DATA + 0002:0000017c 00000004H .CRT$XPXA DATA + 0002:00000180 00000004H .CRT$XPZ DATA + 0002:00000184 00000004H .CRT$XTA DATA + 0002:00000188 00000004H .CRT$XTZ DATA + 0002:00000190 00006938H .rdata DATA + 0002:00006ac8 00000055H .rdata$debug DATA + 0002:00006b20 00000010H .rdata$sxdata DATA + 0002:00006b30 00000004H .rtc$IAA DATA + 0002:00006b34 00000004H .rtc$IZZ DATA + 0002:00006b38 00000004H .rtc$TAA DATA + 0002:00006b3c 00000004H .rtc$TZZ DATA + 0002:00006b40 00000404H .xdata$x DATA + 0002:00006f44 00000014H .idata$2 DATA + 0002:00006f58 00000014H .idata$3 DATA + 0002:00006f6c 0000014cH .idata$4 DATA + 0002:000070b8 000005f0H .idata$6 DATA + 0002:000076b0 0000267dH .edata DATA + 0003:00000000 00001e10H .data DATA + 0003:00001e20 000040c4H .bss DATA + + Address Publics by Value Rva+Base Lib:Object + + 0000:00000000 __except_list 00000000 + 0000:00000004 ___safe_se_handler_count 00000004 + 0000:00000000 ___ImageBase 10000000 + 0001:00000000 _DllMain@12 10001000 f Newton.obj + 0001:00000010 _NewtonGetMemoryUsed 10001010 f Newton.obj + 0001:00000020 _NewtonInvalidateCache 10001020 f Newton.obj + 0001:00000030 _NewtonSetPlatformArchitecture 10001030 f Newton.obj + 0001:00000040 _NewtonGetPlatformArchitecture 10001040 f Newton.obj + 0001:00000050 _NewtonSetThreadsCount 10001050 f Newton.obj + 0001:00000060 _NewtonGetThreadsCount 10001060 f Newton.obj + 0001:00000070 _NewtonSetMultiThreadSolverOnSingleIsland 10001070 f Newton.obj + 0001:00000080 _NewtonSetSolverModel 10001080 f Newton.obj + 0001:00000090 _NewtonSetFrictionModel 10001090 f Newton.obj + 0001:000000a0 _NewtonSetPerformanceClock 100010a0 f Newton.obj + 0001:000000b0 _NewtonReadPerformanceTicks 100010b0 f Newton.obj + 0001:000000d0 _NewtonCollisionUpdate 100010d0 f Newton.obj + 0001:00000100 _NewtonSetIslandUpdateEvent 10001100 f Newton.obj + 0001:00000110 _NewtonSetBodyLeaveWorldEvent 10001110 f Newton.obj + 0001:00000120 _NewtonWorldGetVersion 10001120 f Newton.obj + 0001:00000130 _NewtonWorldSetUserData 10001130 f Newton.obj + 0001:00000140 _NewtonWorldGetUserData 10001140 f Newton.obj + 0001:00000150 _NewtonWorldGetBodyCount 10001150 f Newton.obj + 0001:00000160 _NewtonWorldGetConstraintCount 10001160 f Newton.obj + 0001:00000170 _NewtonIslandGetBody 10001170 f Newton.obj + 0001:00000190 _NewtonMaterialGetDefaultGroupID 10001190 f Newton.obj + 0001:000001a0 _NewtonMaterialCreateGroupID 100011a0 f Newton.obj + 0001:000001b0 _NewtonMaterialDestroyAllGroupID 100011b0 f Newton.obj + 0001:000001c0 _NewtonMaterialSetDefaultCollidable 100011c0 f Newton.obj + 0001:000001f0 _NewtonMaterialSetContinuousCollisionMode 100011f0 f Newton.obj + 0001:00000220 _NewtonWorldGetFirstMaterial 10001220 f Newton.obj + 0001:00000230 _NewtonWorldGetNextMaterial 10001230 f Newton.obj + 0001:00000240 _NewtonMaterialGetContactFaceAttribute 10001240 f Newton.obj + 0001:00000250 _NewtonMaterialGetContactPositionAndNormal 10001250 f Newton.obj + 0001:00000280 _NewtonMaterialGetContactTangentDirections 10001280 f Newton.obj + 0001:000002b0 _NewtonMaterialSetContactFrictionState 100012b0 f Newton.obj + 0001:00000300 _NewtonMaterialSetContactNormalAcceleration 10001300 f Newton.obj + 0001:00000320 _NewtonMaterialSetContactTangentAcceleration 10001320 f Newton.obj + 0001:00000350 _NewtonCreateNull 10001350 f Newton.obj + 0001:00000360 _NewtonCreateBox 10001360 f Newton.obj + 0001:000003c0 _NewtonCreateSphere 100013c0 f Newton.obj + 0001:000004b0 _NewtonCreateCone 100014b0 f Newton.obj + 0001:00000510 _NewtonCreateCapsule 10001510 f Newton.obj + 0001:00000570 _NewtonCreateCylinder 10001570 f Newton.obj + 0001:000005d0 _NewtonCreateChamferCylinder 100015d0 f Newton.obj + 0001:00000630 _NewtonCreateConvexHullFromMesh 10001630 f Newton.obj + 0001:00000650 _NewtonCreateConvexHullModifier 10001650 f Newton.obj + 0001:00000660 _NewtonConvexHullModifierGetMatrix 10001660 f Newton.obj + 0001:00000690 _NewtonConvexHullModifierSetMatrix 10001690 f Newton.obj + 0001:000006b0 _NewtonCreateCompoundCollision 100016b0 f Newton.obj + 0001:000006d0 _NewtonCreateCompoundCollisionFromMesh 100016d0 f Newton.obj + 0001:000006f0 _NewtonCollisionIsTriggerVolume 100016f0 f Newton.obj + 0001:00000710 _NewtonCollisionSetAsTriggerVolume 10001710 f Newton.obj + 0001:00000730 _NewtonConvexCollisionCalculateVolume 10001730 f Newton.obj + 0001:00000740 _NewtonCreateTreeCollision 10001740 f Newton.obj + 0001:00000750 _NewtonTreeCollisionSetUserRayCastCallback 10001750 f Newton.obj + 0001:00000760 _NewtonTreeCollisionBeginBuild 10001760 f Newton.obj + 0001:00000770 _NewtonTreeCollisionAddFace 10001770 f Newton.obj + 0001:00000790 _NewtonTreeCollisionEndBuild 10001790 f Newton.obj + 0001:000007a0 _NewtonCreateHeightFieldCollision 100017a0 f Newton.obj + 0001:000007e0 _NewtonCreateSceneCollision 100017e0 f Newton.obj + 0001:000007f0 _NewtonSceneCollisionCreateProxy 100017f0 f Newton.obj + 0001:00000800 _NewtonSceneCollisionOptimize 10001800 f Newton.obj + 0001:00000810 _NewtonCollisionPointDistance 10001810 f Newton.obj + 0001:00000840 _NewtonCollisionClosestPoint 10001840 f Newton.obj + 0001:00000880 _NewtonCollisionCollide 10001880 f Newton.obj + 0001:000008c0 _NewtonCollisionCollideContinue 100018c0 f Newton.obj + 0001:00000920 _NewtonCollisionForEachPolygonDo 10001920 f Newton.obj + 0001:00000960 _NewtonCollisionMakeUnique 10001960 f Newton.obj + 0001:00000970 _NewtonReleaseCollision 10001970 f Newton.obj + 0001:00000980 _NewtonCollisionSerialize 10001980 f Newton.obj + 0001:000009a0 _NewtonCreateCollisionFromSerialization 100019a0 f Newton.obj + 0001:000009c0 _NewtonCollisionGetInfo 100019c0 f Newton.obj + 0001:000009e0 _NewtonGetEulerAngle 100019e0 f Newton.obj + 0001:00000a10 _NewtonCalculateSpringDamperAcceleration 10001a10 f Newton.obj + 0001:00000a80 _NewtonCreateBody 10001a80 f Newton.obj + 0001:00000a90 _NewtonDestroyBody 10001a90 f Newton.obj + 0001:00000aa0 _NewtonBodySetMatrix 10001aa0 f Newton.obj + 0001:00000ae0 _NewtonBodyGetFirstJoint 10001ae0 f Newton.obj + 0001:00000af0 _NewtonBodyGetNextJoint 10001af0 f Newton.obj + 0001:00000b00 _NewtonBodyGetFirstContactJoint 10001b00 f Newton.obj + 0001:00000b10 _NewtonBodyGetNextContactJoint 10001b10 f Newton.obj + 0001:00000b20 _NewtonBodySetCollision 10001b20 f Newton.obj + 0001:00000b30 _NewtonBodySetFreezeState 10001b30 f Newton.obj + 0001:00000b50 _NewtonBallSetUserCallback 10001b50 f Newton.obj + 0001:00000b60 _NewtonBallGetJointAngle 10001b60 f Newton.obj + 0001:00000b90 _NewtonBallGetJointOmega 10001b90 f Newton.obj + 0001:00000bc0 _NewtonBallGetJointForce 10001bc0 f Newton.obj + 0001:00000bf0 _NewtonSliderSetUserCallback 10001bf0 f Newton.obj + 0001:00000bf0 _NewtonHingeSetUserCallback 10001bf0 f Newton.obj + 0001:00000c00 _NewtonHingeGetJointAngle 10001c00 f Newton.obj + 0001:00000c00 _NewtonSliderGetJointPosit 10001c00 f Newton.obj + 0001:00000c00 _NewtonCorkscrewGetJointAngle 10001c00 f Newton.obj + 0001:00000c00 _NewtonUniversalGetJointAngle0 10001c00 f Newton.obj + 0001:00000c10 _NewtonHingeCalculateStopAlpha 10001c10 f Newton.obj + 0001:00000c30 _NewtonHingeGetJointForce 10001c30 f Newton.obj + 0001:00000c60 _NewtonSliderCalculateStopAccel 10001c60 f Newton.obj + 0001:00000c80 _NewtonSliderGetJointForce 10001c80 f Newton.obj + 0001:00000cb0 _NewtonUniversalSetUserCallback 10001cb0 f Newton.obj + 0001:00000cb0 _NewtonCorkscrewSetUserCallback 10001cb0 f Newton.obj + 0001:00000cc0 _NewtonSliderGetJointVeloc 10001cc0 f Newton.obj + 0001:00000cc0 _NewtonCorkscrewGetJointVeloc 10001cc0 f Newton.obj + 0001:00000cd0 _NewtonCorkscrewCalculateStopAccel 10001cd0 f Newton.obj + 0001:00000cf0 _NewtonCorkscrewGetJointPosit 10001cf0 f Newton.obj + 0001:00000cf0 _NewtonUniversalGetJointAngle1 10001cf0 f Newton.obj + 0001:00000d00 _NewtonCorkscrewGetJointOmega 10001d00 f Newton.obj + 0001:00000d00 _NewtonUniversalGetJointOmega0 10001d00 f Newton.obj + 0001:00000d00 _NewtonHingeGetJointOmega 10001d00 f Newton.obj + 0001:00000d10 _NewtonUniversalGetJointOmega1 10001d10 f Newton.obj + 0001:00000d20 _NewtonCorkscrewCalculateStopAlpha 10001d20 f Newton.obj + 0001:00000d20 _NewtonUniversalCalculateStopAlpha0 10001d20 f Newton.obj + 0001:00000d40 _NewtonUniversalCalculateStopAlpha1 10001d40 f Newton.obj + 0001:00000d60 _NewtonUniversalGetJointForce 10001d60 f Newton.obj + 0001:00000d60 _NewtonCorkscrewGetJointForce 10001d60 f Newton.obj + 0001:00000d90 _NewtonUpVectorGetPin 10001d90 f Newton.obj + 0001:00000dc0 _NewtonUserJointAddGeneralRow 10001dc0 f Newton.obj + 0001:00000de0 _NewtonUserJointSetRowMaximumFriction 10001de0 f Newton.obj + 0001:00000e00 _NewtonUserJointSetRowMinimumFriction 10001e00 f Newton.obj + 0001:00000e20 _NewtonUserJointSetRowAcceleration 10001e20 f Newton.obj + 0001:00000e40 _NewtonUserJointSetRowSpringDamperAcceleration 10001e40 f Newton.obj + 0001:00000e60 _NewtonUserJointSetRowStiffness 10001e60 f Newton.obj + 0001:00000e80 _NewtonUserJointGetRowForce 10001e80 f Newton.obj + 0001:00000e90 _NewtonUserJointSetFeedbackCollectorCallback 10001e90 f Newton.obj + 0001:00000ea0 _NewtonJointSetUserData 10001ea0 f Newton.obj + 0001:00000eb0 _NewtonJointGetUserData 10001eb0 f Newton.obj + 0001:00000ec0 _NewtonJointGetInfo 10001ec0 f Newton.obj + 0001:00000ee0 _NewtonJointSetStiffness 10001ee0 f Newton.obj + 0001:00000f00 _NewtonJointGetStiffness 10001f00 f Newton.obj + 0001:00000f10 _NewtonJointSetDestructor 10001f10 f Newton.obj + 0001:00000f20 _NewtonDestroyJoint 10001f20 f Newton.obj + 0001:00000f30 _NewtonMeshDestroy 10001f30 f Newton.obj + 0001:00000f50 _NewtonMeshCalculateVertexNormals 10001f50 f Newton.obj + 0001:00000f70 _NewtonMeshApplySphericalMapping 10001f70 f Newton.obj + 0001:00000f80 _NewtonMeshApplyBoxMapping 10001f80 f Newton.obj + 0001:00000fa0 _NewtonMeshApplyCylindricalMapping 10001fa0 f Newton.obj + 0001:00000fc0 _NewtonMeshBeginFace 10001fc0 f Newton.obj + 0001:00000fd0 _NewtonMeshAddFace 10001fd0 f Newton.obj + 0001:00000ff0 _NewtonMeshEndFace 10001ff0 f Newton.obj + 0001:00001000 _NewtonMeshGetVertexCount 10002000 f Newton.obj + 0001:00001010 _NewtonMeshGetVertexStreams 10002010 f Newton.obj + 0001:00001040 _NewtonMeshGetIndirectVertexStreams 10002040 f Newton.obj + 0001:00001090 _NewtonMeshFirstMaterial 10002090 f Newton.obj + 0001:000010a0 _NewtonMeshNextMaterial 100020a0 f Newton.obj + 0001:000010b0 _NewtonMeshMaterialGetMaterial 100020b0 f Newton.obj + 0001:000010c0 _NewtonMeshMaterialGetIndexCount 100020c0 f Newton.obj + 0001:000010e0 _NewtonMeshMaterialGetIndexStream 100020e0 f Newton.obj + 0001:00001100 _NewtonMeshMaterialGetIndexStreamShort 10002100 f Newton.obj + 0001:00001120 ?dgGetUserLock@dgWorld@@QAEXXZ 10002120 f i Newton.obj + 0001:00001140 ?dgReleasedUserLock@dgWorld@@QAEXXZ 10002140 f i Newton.obj + 0001:00001160 ?Scale@?$dgTemplateVector@M@@QBE?AV1@M@Z 10002160 f i Newton.obj + 0001:00001190 ??H?$dgTemplateVector@M@@QBE?AV0@ABV0@@Z 10002190 f i Newton.obj + 0001:000011c0 ??G?$dgTemplateVector@M@@QBE?AV0@ABV0@@Z 100021c0 f i Newton.obj + 0001:000011f0 ??L?$dgTemplateVector@M@@QBEMABV0@@Z 100021f0 f i Newton.obj + 0001:00001220 ??D?$dgTemplateVector@M@@QBE?AV0@ABV0@@Z 10002220 f i Newton.obj + 0001:00001260 _NewtonDestroy 10002260 f Newton.obj + 0001:000012a0 _NewtonWorldCriticalSectionLock 100022a0 f Newton.obj + 0001:000012c0 _NewtonWorldCriticalSectionUnlock 100022c0 f Newton.obj + 0001:000012e0 _NewtonUpdate 100022e0 f Newton.obj + 0001:000013b0 _NewtonSetMinimumFrameRate 100023b0 f Newton.obj + 0001:00001410 _NewtonWorldGetFirstBody 10002410 f Newton.obj + 0001:00001430 _NewtonWorldGetNextBody 10002430 f Newton.obj + 0001:00001450 _NewtonIslandGetBodyAABB 10002450 f Newton.obj + 0001:000014b0 _NewtonMaterialSetSurfaceThickness 100024b0 f Newton.obj + 0001:00001510 _NewtonMaterialSetDefaultFriction 10002510 f Newton.obj + 0001:000015f0 _NewtonMaterialSetDefaultElasticity 100025f0 f Newton.obj + 0001:00001650 _NewtonMaterialSetDefaultSoftness 10002650 f Newton.obj + 0001:000016b0 _NewtonMaterialSetCollisionCallback 100026b0 f Newton.obj + 0001:000016f0 _NewtonMaterialGetUserData 100026f0 f Newton.obj + 0001:00001710 _NewtonMaterialGetMaterialPairUserData 10002710 f Newton.obj + 0001:00001720 _NewtonMaterialGetContactNormalSpeed 10002720 f Newton.obj + 0001:000018c0 _NewtonMaterialGetContactForce 100028c0 f Newton.obj + 0001:000019b0 _NewtonMaterialGetBodyCollisionID 100029b0 f Newton.obj + 0001:000019d0 _NewtonMaterialSetContactSoftness 100029d0 f Newton.obj + 0001:00001a30 _NewtonMaterialSetContactElasticity 10002a30 f Newton.obj + 0001:00001a90 _NewtonMaterialSetContactFrictionCoef 10002a90 f Newton.obj + 0001:00001ba0 _NewtonCreateConvexHull 10002ba0 f Newton.obj + 0001:00001c20 _NewtonCollisionSetUserID 10002c20 f Newton.obj + 0001:00001c30 _NewtonCollisionGetUserID 10002c30 f Newton.obj + 0001:00001c40 _NewtonStaticCollisionSetDebugCallback 10002c40 f Newton.obj + 0001:00001c70 _NewtonTreeCollisionGetFaceAtribute 10002c70 f Newton.obj + 0001:00001c80 _NewtonTreeCollisionSetFaceAtribute 10002c80 f Newton.obj + 0001:00001c90 _NewtonSceneProxySetMatrix 10002c90 f Newton.obj + 0001:00001cb0 _NewtonSceneProxyGetMatrix 10002cb0 f Newton.obj + 0001:00001ce0 _NewtonAddCollisionReference 10002ce0 f Newton.obj + 0001:00001cf0 _NewtonBodySetUserData 10002cf0 f Newton.obj + 0001:00001d00 _NewtonBodyGetUserData 10002d00 f Newton.obj + 0001:00001d10 _NewtonBodyGetWorld 10002d10 f Newton.obj + 0001:00001d20 _NewtonBodySetTransformCallback 10002d20 f Newton.obj + 0001:00001d30 _NewtonBodySetForceAndTorqueCallback 10002d30 f Newton.obj + 0001:00001d40 _NewtonBodyGetForceAndTorqueCallback 10002d40 f Newton.obj + 0001:00001d50 _NewtonBodySetDestructorCallback 10002d50 f Newton.obj + 0001:00001d60 _NewtonBodyGetMassMatrix 10002d60 f Newton.obj + 0001:00001de0 _NewtonBodyGetInvMass 10002de0 f Newton.obj + 0001:00001e60 _NewtonBodySetMatrixRecursive 10002e60 f Newton.obj + 0001:00001ea0 _NewtonBodyGetMatrix 10002ea0 f Newton.obj + 0001:00001ec0 _NewtonBodyGetRotation 10002ec0 f Newton.obj + 0001:00001ef0 _NewtonBodyGetForceAcc 10002ef0 f Newton.obj + 0001:00001f40 _NewtonBodyGetForce 10002f40 f Newton.obj + 0001:00001f90 _NewtonBodyGetTorque 10002f90 f Newton.obj + 0001:00001fe0 _NewtonBodyGetTorqueAcc 10002fe0 f Newton.obj + 0001:00002030 _NewtonBodyGetCentreOfMass 10003030 f Newton.obj + 0001:00002080 _NewtonContactJointGetContactCount 10003080 f Newton.obj + 0001:000020a0 _NewtonContactJointGetFirstContact 100030a0 f Newton.obj + 0001:000020d0 _NewtonContactJointGetNextContact 100030d0 f Newton.obj + 0001:00002100 _NewtonContactGetMaterial 10003100 f Newton.obj + 0001:00002110 _NewtonBodyGetCollision 10003110 f Newton.obj + 0001:00002120 _NewtonBodySetMaterialGroupID 10003120 f Newton.obj + 0001:00002130 _NewtonBodyGetMaterialGroupID 10003130 f Newton.obj + 0001:00002140 _NewtonBodySetContinuousCollisionMode 10003140 f Newton.obj + 0001:00002160 _NewtonBodyGetContinuousCollisionMode 10003160 f Newton.obj + 0001:00002180 _NewtonBodySetJointRecursiveCollision 10003180 f Newton.obj + 0001:000021b0 _NewtonBodyGetJointRecursiveCollision 100031b0 f Newton.obj + 0001:000021d0 _NewtonBodyGetFreezeState 100031d0 f Newton.obj + 0001:000021e0 _NewtonBodySetAutoSleep 100031e0 f Newton.obj + 0001:00002210 _NewtonBodyGetAutoSleep 10003210 f Newton.obj + 0001:00002230 _NewtonBodyGetSleepState 10003230 f Newton.obj + 0001:00002240 _NewtonBodyGetVelocity 10003240 f Newton.obj + 0001:00002290 _NewtonBodyGetOmega 10003290 f Newton.obj + 0001:000022e0 _NewtonBodyGetLinearDamping 100032e0 f Newton.obj + 0001:00002300 _NewtonConstraintCreateUserJoint 10003300 f Newton.obj + 0001:00002340 _NewtonJointGetBody0 10003340 f Newton.obj + 0001:00002350 _NewtonJointGetBody1 10003350 f Newton.obj + 0001:00002370 _NewtonJointSetCollisionState 10003370 f Newton.obj + 0001:00002390 _NewtonJointGetCollisionState 10003390 f Newton.obj + 0001:000023a0 _NewtonMeshCreate 100033a0 f Newton.obj + 0001:000023c0 _NewtonMeshCreateFromCollision 100033c0 f Newton.obj + 0001:000023e0 ?Unlink@?$dgList@VdgContactMaterial@@@@QAEXPAVdgListNode@1@@Z 100033e0 f i Newton.obj + 0001:00002450 ?SetCentreOfMass@dgBody@@QAEXABVdgVector@@@Z 10003450 f i Newton.obj + 0001:00002530 ?SetAngularDamping@dgBody@@QAEXABVdgVector@@@Z 10003530 f i Newton.obj + 0001:00002620 ?SetForce@dgBody@@QAEXABVdgVector@@@Z 10003620 f i Newton.obj + 0001:000026e0 ?SetTorque@dgBody@@QAEXABVdgVector@@@Z 100036e0 f i Newton.obj + 0001:000027a0 _NewtonSetWorldSize 100037a0 f Newton.obj + 0001:00002800 _NewtonWorldForEachBodyInAABBDo 10003800 f Newton.obj + 0001:00002860 _NewtonWorldRayCast 10003860 f Newton.obj + 0001:000028d0 _NewtonWorldConvexCast 100038d0 f Newton.obj + 0001:00002930 _NewtonMaterialGetContactTangentSpeed 10003930 f Newton.obj + 0001:00002b10 _NewtonMaterialContactRotateTangentDirections 10003b10 f Newton.obj + 0001:00002c80 _NewtonConvexCollisionCalculateInertialMatrix 10003c80 f Newton.obj + 0001:00002cd0 _NewtonCreateUserMeshCollision 10003cd0 f Newton.obj + 0001:00002d60 _NewtonTreeCollisionGetVertexListIndexListInAABB 10003d60 f Newton.obj + 0001:00002e20 _NewtonCollisionSupportVertex 10003e20 f Newton.obj + 0001:00002fb0 _NewtonCollisionCalculateAABB 10003fb0 f Newton.obj + 0001:00003010 _NewtonSetEulerAngle 10004010 f Newton.obj + 0001:00003410 _NewtonBodySetMassMatrix 10004410 f Newton.obj + 0001:00003590 _NewtonBodySetForce 10004590 f Newton.obj + 0001:000035d0 _NewtonBodyCalculateInverseDynamicsForce 100045d0 f Newton.obj + 0001:00003630 _NewtonBodySetTorque 10004630 f Newton.obj + 0001:00003670 _NewtonBodySetCentreOfMass 10004670 f Newton.obj + 0001:000036b0 _NewtonBodyAddBuoyancyForce 100046b0 f Newton.obj + 0001:00003710 _NewtonBodyGetAABB 10004710 f Newton.obj + 0001:00003790 _NewtonBodySetVelocity 10004790 f Newton.obj + 0001:000037f0 _NewtonBodySetOmega 100047f0 f Newton.obj + 0001:00003850 _NewtonBodySetLinearDamping 10004850 f Newton.obj + 0001:000038a0 _NewtonBodySetAngularDamping 100048a0 f Newton.obj + 0001:000038e0 _NewtonBodyGetAngularDamping 100048e0 f Newton.obj + 0001:00003940 _NewtonBodyAddImpulse 10004940 f Newton.obj + 0001:000039a0 _NewtonConstraintCreateBall 100049a0 f Newton.obj + 0001:000039e0 _NewtonBallSetConeLimits 100049e0 f Newton.obj + 0001:00003d40 _NewtonConstraintCreateHinge 10004d40 f Newton.obj + 0001:00003da0 _NewtonConstraintCreateSlider 10004da0 f Newton.obj + 0001:00003e00 _NewtonConstraintCreateCorkscrew 10004e00 f Newton.obj + 0001:00003e60 _NewtonConstraintCreateUniversal 10004e60 f Newton.obj + 0001:00003ee0 _NewtonConstraintCreateUpVector 10004ee0 f Newton.obj + 0001:00003f20 _NewtonUpVectorSetPin 10004f20 f Newton.obj + 0001:00003f60 _NewtonUserJointAddLinearRow 10004f60 f Newton.obj + 0001:00004060 _NewtonUserJointAddAngularRow 10005060 f Newton.obj + 0001:00004120 _NewtonMeshPlaneClip 10005120 f Newton.obj + 0001:00004170 ?AddForce@dgBody@@QAEXABVdgVector@@@Z 10005170 f i Newton.obj + 0001:000041e0 ?AddTorque@dgBody@@QAEXABVdgVector@@@Z 100051e0 f i Newton.obj + 0001:00004250 _NewtonCreate 10005250 f Newton.obj + 0001:00004320 _NewtonDestroyAllBodies 10005320 f Newton.obj + 0001:00004370 _NewtonCollisionRayCast 10005370 f Newton.obj + 0001:00004570 _NewtonBodyAddForce 10005570 f Newton.obj + 0001:000045b0 _NewtonBodyAddTorque 100055b0 f Newton.obj + 0001:000045f0 _NewtonContactJointRemoveContact 100055f0 f Newton.obj + 0001:00004630 _NewtonWorldForEachJointDo 10005630 f Newton.obj + 0001:000046e0 ?Append@?$dgList@UNewtonMeshPartition@@@@QAEPAVdgListNode@1@XZ 100056e0 f i NewtonAproximateConvexPartition.obj + 0001:00004770 ?CalculateHulls@NewtonAproximateConvexPartition@@QAEXPBVdgVector@@H@Z 10005770 f NewtonAproximateConvexPartition.obj + 0001:00004880 ?RemoveAll@?$dgList@UNewtonMeshPartition@@@@QAEXXZ 10005880 f i NewtonAproximateConvexPartition.obj + 0001:000048f0 ??0NewtonAproximateConvexPartition@@QAE@ABVNewtonMeshEffect@@MH@Z 100058f0 f NewtonAproximateConvexPartition.obj + 0001:00004970 ??1NewtonAproximateConvexPartition@@QAE@XZ 10005970 f NewtonAproximateConvexPartition.obj + 0001:00004980 ?JacobianDerivative@NewtonUserJoint@@UAEIAAVdgContraintDescritor@@@Z 10005980 f NewtonClass.obj + 0001:000049c0 ?SetAcceleration@NewtonUserJoint@@QAEXM@Z 100059c0 f NewtonClass.obj + 0001:000049f0 ?SetSpringDamperAcceleration@NewtonUserJoint@@QAEXMM@Z 100059f0 f NewtonClass.obj + 0001:00004a70 ?GetRowForce@NewtonUserJoint@@QBEMH@Z 10005a70 f NewtonClass.obj + 0001:00004aa0 ?GetInfo@NewtonUserJoint@@UBEXPAVdgConstraintInfo@@@Z 10005aa0 f NewtonClass.obj + 0001:00004ae0 ??_ENewtonUserJoint@@UAEPAXI@Z 10005ae0 f i NewtonClass.obj + 0001:00004ae0 ??_GNewtonUserJoint@@UAEPAXI@Z 10005ae0 f i NewtonClass.obj + 0001:00004b20 ?SetHighFriction@NewtonUserJoint@@QAEXM@Z 10005b20 f NewtonClass.obj + 0001:00004b90 ?SetLowerFriction@NewtonUserJoint@@QAEXM@Z 10005b90 f NewtonClass.obj + 0001:00004c10 ?SetRowStiffness@NewtonUserJoint@@QAEXM@Z 10005c10 f NewtonClass.obj + 0001:00004c80 ?SetUpdateFeedbackFunction@NewtonUserJoint@@QAEXP6AXPBUNewtonJoint@@MH@Z@Z 10005c80 f NewtonClass.obj + 0001:00004c90 ?DestroyJoints@NewtonDeadJoints@@QAEXAAVNewton@@@Z 10005c90 f NewtonClass.obj + 0001:00004cf0 ??1Newton@@QAE@XZ 10005cf0 f NewtonClass.obj + 0001:00004d40 ??0NewtonUserJoint@@QAE@PAVdgWorld@@HP6AXPBUNewtonJoint@@MH@ZP6AX1PAUNewtonJointRecord@@@ZPAVdgBody@@5@Z 10005d40 f NewtonClass.obj + 0001:00004df0 ?AddAngularRowJacobian@NewtonUserJoint@@QAEXABVdgVector@@M@Z 10005df0 f NewtonClass.obj + 0001:00004ec0 ?AddGeneralRowJacobian@NewtonUserJoint@@QAEXPBM0@Z 10005ec0 f NewtonClass.obj + 0001:00004f80 ?AddLinearRowJacobian@NewtonUserJoint@@QAEXABVdgVector@@00@Z 10005f80 f NewtonClass.obj + 0001:00005040 ??0Newton@@QAE@M@Z 10006040 f NewtonClass.obj + 0001:000050b0 ?DestroyJoint@Newton@@QAEXPAVdgConstraint@@@Z 100060b0 f NewtonClass.obj + 0001:000050e0 ?DestroyBody@Newton@@QAEXPAVdgBody@@@Z 100060e0 f NewtonClass.obj + 0001:00005110 ?DestroyBodies@NewtonDeadBodies@@QAEXAAVNewton@@@Z 10006110 f NewtonClass.obj + 0001:00005190 ?UpdatePhysics@Newton@@QAEXM@Z 10006190 f NewtonClass.obj + 0001:000051d0 ?GetShapeFromCollision@NewtonMeshEffectBuilder@@SAXPAXHPBMH@Z 100061d0 f i NewtonMeshEffect.obj + 0001:000052b0 ?BeginPolygon@NewtonMeshEffect@@QAEXXZ 100062b0 f NewtonMeshEffect.obj + 0001:000052c0 ?AddVertex@NewtonMeshEffect@@AAEXPBMH@Z 100062c0 f NewtonMeshEffect.obj + 0001:00005420 ?AddPolygon@NewtonMeshEffect@@QAEXHPBMHH@Z 10006420 f NewtonMeshEffect.obj + 0001:00005490 ?GetVertexStreams@NewtonMeshEffect@@QAEXHPAMH0H0@Z 10006490 f NewtonMeshEffect.obj + 0001:00005550 ?GetIndirectVertexStreams@NewtonMeshEffect@@QAEXHPAMPAH1H011H011@Z 10006550 f NewtonMeshEffect.obj + 0001:00005720 ?GetNextMaterial@NewtonMeshEffect@@QAEHH@Z 10006720 f NewtonMeshEffect.obj + 0001:00005750 ?GetMaterialGetIndexStream@NewtonMeshEffect@@QAEXHPAH@Z 10006750 f NewtonMeshEffect.obj + 0001:000057c0 ?GetMaterialGetIndexStreamShort@NewtonMeshEffect@@QAEXHPAF@Z 100067c0 f NewtonMeshEffect.obj + 0001:00005830 ?CreateConvexAproximationCollision@NewtonMeshEffect@@QBEPAVdgCollision@@MH@Z 10006830 f NewtonMeshEffect.obj + 0001:00005860 ??Y?$dgTemplateVector@M@@QAEAAV0@ABV0@@Z 10006860 f i NewtonMeshEffect.obj + 0001:00005890 ??0NewtonMeshEffect@@QAE@_N@Z 10006890 f NewtonMeshEffect.obj + 0001:000058f0 ??_ENewtonMeshEffect@@UAEPAXI@Z 100068f0 f i NewtonMeshEffect.obj + 0001:000058f0 ??_GNewtonMeshEffect@@UAEPAXI@Z 100068f0 f i NewtonMeshEffect.obj + 0001:00005940 ?EndPolygon@NewtonMeshEffect@@QAEXXZ 10006940 f NewtonMeshEffect.obj + 0001:00005b30 ?CreateConvexCollision@NewtonMeshEffect@@QBEPAVdgCollision@@M@Z 10006b30 f NewtonMeshEffect.obj + 0001:00005b90 ??0NewtonMeshEffect@@QAE@PAVdgCollision@@@Z 10006b90 f NewtonMeshEffect.obj + 0001:00005dd0 ?GetAttriubeArray@NewtonMeshEffect@@AAEXPAUdgVertexAtribute@1@@Z 10006dd0 f NewtonMeshEffect.obj + 0001:00005e60 ?ApplyAttriubeArray@NewtonMeshEffect@@AAEXPAUdgVertexAtribute@1@@Z 10006e60 f NewtonMeshEffect.obj + 0001:00005f20 ?GetOrigin@NewtonMeshEffect@@ABE?AVdgVector@@XZ 10006f20 f NewtonMeshEffect.obj + 0001:00006090 ?FixCylindricalMapping@NewtonMeshEffect@@ABEXPAUdgVertexAtribute@1@@Z 10007090 f NewtonMeshEffect.obj + 0001:000061e0 ?SphericalMapping@NewtonMeshEffect@@QAEXH@Z 100071e0 f NewtonMeshEffect.obj + 0001:00006400 ?CylindricalMapping@NewtonMeshEffect@@QAEXHH@Z 10007400 f NewtonMeshEffect.obj + 0001:00006890 ?BoxMapping@NewtonMeshEffect@@QAEXHHH@Z 10007890 f NewtonMeshEffect.obj + 0001:00006c30 ?CalcualetNormals@NewtonMeshEffect@@QAEXM@Z 10007c30 f NewtonMeshEffect.obj + 0001:000070e0 ?GetFirstMaterial@NewtonMeshEffect@@QAEHXZ 100080e0 f NewtonMeshEffect.obj + 0001:000072e0 ?CapClipFace@NewtonMeshEffect@@AAE_NABVdgPlane@@ABVdgMatrix@@HH@Z 100082e0 f NewtonMeshEffect.obj + 0001:00007530 ?PlaneClip@NewtonMeshEffect@@QAEHABVdgPlane@@ABVdgMatrix@@PAPAV1@HH@Z 10008530 f NewtonMeshEffect.obj + 0001:00008110 _NewtonMaterialSetContactNormalDirection 10009110 f Newton.obj + 0001:00008110 ?BeginFace@dgPolyhedra@@QAEXXZ 10009110 f corelib_2009:dgPolyhedra.obj + 0001:00008110 ??1dgBody@@QAE@XZ 10009110 f physics_2009:dgBody.obj + 0001:00008110 ??1dgCollidingPairCollector@@QAE@XZ 10009110 f physics_2009:dgContact.obj + 0001:00008110 ??3@YAXPAX@Z 10009110 f NewtonStdAfx.obj + 0001:00008110 ?Init@dgBilateralConstraint@@MAEXXZ 10009110 f NewtonClass.obj + 0001:00008120 ?ModifierGetMatrix@dgCollision@@UBE?AVdgMatrix@@XZ 10009120 f i physics_2009:dgWorld.obj + 0001:00008140 ?Release@dgCollision@@UAEHXZ 10009140 f i physics_2009:dgWorld.obj + 0001:00008160 ?GetSentinelBody@dgWorld@@QBEPAVdgBody@@XZ 10009160 f physics_2009:dgWorld.obj + 0001:00008170 ?SetFrictionMode@dgWorld@@QAEXH@Z 10009170 f physics_2009:dgWorld.obj + 0001:00008180 ?SetHardwareMode@dgWorld@@QAEXH@Z 10009180 f physics_2009:dgWorld.obj + 0001:000081b0 ?GetHardwareMode@dgWorld@@QAEHPAD@Z 100091b0 f physics_2009:dgWorld.obj + 0001:00008210 ?ThreadExecute@dgSetTrreadRoundMode@dgWorld@@UAEXXZ 10009210 f physics_2009:dgWorld.obj + 0001:00008230 ?SetThreadsCount@dgWorld@@QAEXH@Z 10009230 f physics_2009:dgWorld.obj + 0001:00008290 ?GetThreadsCount@dgWorld@@QBEHXZ 10009290 f physics_2009:dgWorld.obj + 0001:000082a0 ?EnableThreadOnSingleIsland@dgWorld@@QAEXH@Z 100092a0 f physics_2009:dgWorld.obj + 0001:000082c0 ?DestroyConstraint@dgWorld@@QAEXPAVdgConstraint@@@Z 100092c0 f physics_2009:dgWorld.obj + 0001:000082e0 ?UpdateCollision@dgWorld@@QAEXXZ 100092e0 f physics_2009:dgWorld.obj + 0001:00008400 ?Update@dgWorld@@QAEXM@Z 10009400 f physics_2009:dgWorld.obj + 0001:00008510 ?SetPerfomanceCounter@dgWorld@@QAEXP6AIXZ@Z 10009510 f physics_2009:dgWorld.obj + 0001:00008540 ?SetUserData@dgWorld@@QAEXPAX@Z 10009540 f physics_2009:dgWorld.obj + 0001:00008550 ?GetUserData@dgWorld@@QBEPAXXZ 10009550 f physics_2009:dgWorld.obj + 0001:00008560 ?SetIslandUpdateCallback@dgWorld@@QAEXP6AIPAXH@Z@Z 10009560 f physics_2009:dgWorld.obj + 0001:00008570 ?SetLeavingWorldCallback@dgWorld@@QAEXP6AXPAVdgBody@@H@Z@Z 10009570 f physics_2009:dgWorld.obj + 0001:00008580 ?CreateBallConstraint@dgWorld@@QAEPAVdgBallConstraint@@ABVdgVector@@PAVdgBody@@1@Z 10009580 f physics_2009:dgWorld.obj + 0001:000085d0 ?CreateHingeConstraint@dgWorld@@QAEPAVdgHingeConstraint@@ABVdgVector@@0PAVdgBody@@1@Z 100095d0 f physics_2009:dgWorld.obj + 0001:00008620 ?CreateUpVectorConstraint@dgWorld@@QAEPAVdgUpVectorConstraint@@ABVdgVector@@PAVdgBody@@@Z 10009620 f physics_2009:dgWorld.obj + 0001:00008670 ?CreateSlidingConstraint@dgWorld@@QAEPAVdgSlidingConstraint@@ABVdgVector@@0PAVdgBody@@1@Z 10009670 f physics_2009:dgWorld.obj + 0001:000086c0 ?CreateCorkscrewConstraint@dgWorld@@QAEPAVdgCorkscrewConstraint@@ABVdgVector@@0PAVdgBody@@1@Z 100096c0 f physics_2009:dgWorld.obj + 0001:00008710 ?CreateUniversalConstraint@dgWorld@@QAEPAVdgUniversalConstraint@@ABVdgVector@@00PAVdgBody@@1@Z 10009710 f physics_2009:dgWorld.obj + 0001:00008770 ?GetConstraintsCount@dgWorld@@QBEHXZ 10009770 f physics_2009:dgWorld.obj + 0001:00008780 ?AddBodyImpulse@dgWorld@@QAEXPAVdgBody@@ABVdgVector@@1@Z 10009780 f physics_2009:dgWorld.obj + 0001:000087b0 ??_EdgCollisionPoint@@UAEPAXI@Z 100097b0 f i physics_2009:dgWorld.obj + 0001:000087b0 ??_GdgCollisionPoint@@UAEPAXI@Z 100097b0 f i physics_2009:dgWorld.obj + 0001:000087d0 ??_EdgParallelSolverCalculateForces@@UAEPAXI@Z 100097d0 f i physics_2009:dgWorld.obj + 0001:000087d0 ??_EdgParallelSolverBodyInertia@@UAEPAXI@Z 100097d0 f i physics_2009:dgWorld.obj + 0001:000087d0 ??_GdgParallelSolverBodyInertia@@UAEPAXI@Z 100097d0 f i physics_2009:dgWorld.obj + 0001:000087d0 ??_GdgParallelSolverInitFeedbackUpdate@@UAEPAXI@Z 100097d0 f i physics_2009:dgWorld.obj + 0001:000087d0 ??_EdgParallelSolverClear@@UAEPAXI@Z 100097d0 f i physics_2009:dgWorld.obj + 0001:000087d0 ??_EdgSetTrreadRoundMode@dgWorld@@UAEPAXI@Z 100097d0 f i physics_2009:dgWorld.obj + 0001:000087d0 ??_EdgSolverWorlkerThreads@@UAEPAXI@Z 100097d0 f i physics_2009:dgWorld.obj + 0001:000087d0 ??_GdgBroadPhaseMaterialCallbackWorkerThread@@UAEPAXI@Z 100097d0 f i physics_2009:dgBroadPhaseCollision.obj + 0001:000087d0 ??_GdgWorkerThread@@UAEPAXI@Z 100097d0 f i physics_2009:dgWorld.obj + 0001:000087d0 ??_EdgParallelSolverInitInternalForces@@UAEPAXI@Z 100097d0 f i physics_2009:dgWorld.obj + 0001:000087d0 ??_EdgParallelSolverJointAcceleration@@UAEPAXI@Z 100097d0 f i physics_2009:dgWorld.obj + 0001:000087d0 ??_GdgBroadPhaseApplyExternalForce@@UAEPAXI@Z 100097d0 f i physics_2009:dgBroadPhaseCollision.obj + 0001:000087d0 ??_EdgParallelSolverBuildJacobianMatrix@@UAEPAXI@Z 100097d0 f i physics_2009:dgWorld.obj + 0001:000087d0 ??_GdgBroadPhaseCalculateContactsWorkerThread@@UAEPAXI@Z 100097d0 f i physics_2009:dgBroadPhaseCollision.obj + 0001:000087d0 ??_GdgBroadPhaseCellPairsWorkerThread@@UAEPAXI@Z 100097d0 f i physics_2009:dgBroadPhaseCollision.obj + 0001:000087d0 ??_GdgSolverWorlkerThreads@@UAEPAXI@Z 100097d0 f i physics_2009:dgWorld.obj + 0001:000087d0 ??_EdgParallelSolverUpdateForce@@UAEPAXI@Z 100097d0 f i physics_2009:dgWorld.obj + 0001:000087d0 ??_EdgBroadPhaseCellPairsWorkerThread@@UAEPAXI@Z 100097d0 f i physics_2009:dgBroadPhaseCollision.obj + 0001:000087d0 ??_GdgParallelSolverUpdateForce@@UAEPAXI@Z 100097d0 f i physics_2009:dgWorld.obj + 0001:000087d0 ??_EdgParallelSolverInitFeedbackUpdate@@UAEPAXI@Z 100097d0 f i physics_2009:dgWorld.obj + 0001:000087d0 ??_GdgParallelSolverUpdateVeloc@@UAEPAXI@Z 100097d0 f i physics_2009:dgWorld.obj + 0001:000087d0 ??_EdgBroadPhaseMaterialCallbackWorkerThread@@UAEPAXI@Z 100097d0 f i physics_2009:dgBroadPhaseCollision.obj + 0001:000087d0 ??_GdgParallelSolverJointAcceleration@@UAEPAXI@Z 100097d0 f i physics_2009:dgWorld.obj + 0001:000087d0 ??_GdgParallelSolverInitInternalForces@@UAEPAXI@Z 100097d0 f i physics_2009:dgWorld.obj + 0001:000087d0 ??_EdgParallelSolverBuildJacobianRows@@UAEPAXI@Z 100097d0 f i physics_2009:dgWorld.obj + 0001:000087d0 ??_GdgParallelSolverCalculateForces@@UAEPAXI@Z 100097d0 f i physics_2009:dgWorld.obj + 0001:000087d0 ??_GdgParallelSolverClear@@UAEPAXI@Z 100097d0 f i physics_2009:dgWorld.obj + 0001:000087d0 ??_EdgBroadPhaseApplyExternalForce@@UAEPAXI@Z 100097d0 f i physics_2009:dgBroadPhaseCollision.obj + 0001:000087d0 ??_GdgParallelSolverBuildJacobianMatrix@@UAEPAXI@Z 100097d0 f i physics_2009:dgWorld.obj + 0001:000087d0 ??_GdgSetTrreadRoundMode@dgWorld@@UAEPAXI@Z 100097d0 f i physics_2009:dgWorld.obj + 0001:000087d0 ??_EdgParallelSolverUpdateVeloc@@UAEPAXI@Z 100097d0 f i physics_2009:dgWorld.obj + 0001:000087d0 ??_EdgBroadPhaseCalculateContactsWorkerThread@@UAEPAXI@Z 100097d0 f i physics_2009:dgBroadPhaseCollision.obj + 0001:000087d0 ??_EdgWorkerThread@@UAEPAXI@Z 100097d0 f i physics_2009:dgWorld.obj + 0001:000087d0 ??_GdgParallelSolverBuildJacobianRows@@UAEPAXI@Z 100097d0 f i physics_2009:dgWorld.obj + 0001:000087f0 ?SetSolverMode@dgWorld@@QAEXH@Z 100097f0 f physics_2009:dgWorld.obj + 0001:00008810 ?RemoveAllGroupID@dgWorld@@QAEXXZ 10009810 f physics_2009:dgWorld.obj + 0001:00008860 ?DestroyBody@dgWorld@@QAEXPAVdgBody@@@Z 10009860 f physics_2009:dgWorld.obj + 0001:000088b0 ?GetPerfomanceTicks@dgWorld@@QBEIHI@Z 100098b0 f physics_2009:dgWorld.obj + 0001:000088f0 ?GetBodiesCount@dgWorld@@QBEHXZ 100098f0 f physics_2009:dgWorld.obj + 0001:00008900 ?AreBodyConnectedByJoints@dgWorld@@AAE_NPAVdgBody@@0@Z 10009900 f physics_2009:dgWorld.obj + 0001:000089e0 ?FlushCache@dgWorld@@QAEXXZ 100099e0 f physics_2009:dgWorld.obj + 0001:00008a30 ??0dgWorldDynamicUpdate@@QAE@XZ 10009a30 f i physics_2009:dgWorld.obj + 0001:00008e90 ??1dgWorldDynamicUpdate@@QAE@XZ 10009e90 f i physics_2009:dgWorld.obj + 0001:00008ff0 ?DestroyAllBodies@dgWorld@@QAEXXZ 10009ff0 f physics_2009:dgWorld.obj + 0001:00009050 ?CreateBody@dgWorld@@QAEPAVdgBody@@PAVdgCollision@@@Z 1000a050 f physics_2009:dgWorld.obj + 0001:000091a0 ?BodySetMatrix@dgWorld@@QAEXPAVdgBody@@ABVdgMatrix@@@Z 1000a1a0 f physics_2009:dgWorld.obj + 0001:00009470 ?RemoveAll@?$dgList@PAVdgContact@@@@QAEXXZ 1000a470 f i physics_2009:dgWorld.obj + 0001:00009470 ?RemoveAll@?$dgList@PAVdgEdge@@@@QAEXXZ 1000a470 f i corelib_2009:dgPolyhedra.obj + 0001:000094d0 ??1dgWorld@@QAE@XZ 1000a4d0 f physics_2009:dgWorld.obj + 0001:00009620 ??0dgWorld@@QAE@XZ 1000a620 f physics_2009:dgWorld.obj + 0001:00009980 ?GetIslandBody@dgWorld@@QBEPAVdgBody@@PBXH@Z 1000a980 f physics_2009:dgWorldDynamicUpdate.obj + 0001:000099b0 ?SortIslands@dgWorldDynamicUpdate@@AAEXXZ 1000a9b0 f physics_2009:dgWorldDynamicUpdate.obj + 0001:00009c20 ?ReallocBodyMemory@dgWorldDynamicUpdate@@AAEXH@Z 1000ac20 f physics_2009:dgWorldDynamicUpdate.obj + 0001:00009ce0 ?ReallocIslandMemory@dgWorldDynamicUpdate@@AAEXH@Z 1000ace0 f physics_2009:dgWorldDynamicUpdate.obj + 0001:00009da0 ?ReallocJointsMemory@dgWorldDynamicUpdate@@AAEXH@Z 1000ada0 f physics_2009:dgWorldDynamicUpdate.obj + 0001:00009ea0 ?ReallocJacobiansMemory@dgWorldDynamicUpdate@@AAEXHH@Z 1000aea0 f physics_2009:dgWorldDynamicUpdate.obj + 0001:0000a120 ?ReallocIntenalForcesMemory@dgWorldDynamicUpdate@@AAEXHH@Z 1000b120 f physics_2009:dgWorldDynamicUpdate.obj + 0001:0000a230 ?GetJacobialDerivativesParallel@dgWorldDynamicUpdate@@AAEHABVdgIsland@@_NHM@Z 1000b230 f physics_2009:dgWorldDynamicUpdate.obj + 0001:0000a330 ?ThreadExecute@dgParallelSolverJointAcceleration@@UAEXXZ 1000b330 f physics_2009:dgWorldDynamicUpdate.obj + 0001:0000a4e0 ?ThreadExecute@dgParallelSolverInitFeedbackUpdate@@UAEXXZ 1000b4e0 f physics_2009:dgWorldDynamicUpdate.obj + 0001:0000a630 ?SpanningTree@dgWorldDynamicUpdate@@AAEXPAVdgBody@@@Z 1000b630 f physics_2009:dgWorldDynamicUpdate.obj + 0001:0000a9f0 ?SortJointsArray@dgJacobianMemory@@QBEXXZ 1000b9f0 f physics_2009:dgWorldDynamicUpdate.obj + 0001:0000ad70 ?ApplyExternalForcesAndAccelerationSimD@dgJacobianMemory@@QBEXM@Z 1000bd70 f physics_2009:dgWorldDynamicUpdate.obj + 0001:0000b0f0 ?SwapRowsSimd@dgJacobianMemory@@QBEXHH@Z 1000c0f0 f physics_2009:dgWorldDynamicUpdate.obj + 0001:0000b2f0 ?SwapRows@dgJacobianMemory@@QBEXHH@Z 1000c2f0 f physics_2009:dgWorldDynamicUpdate.obj + 0001:0000b480 ?CalculateJointForcesSimD@dgJacobianMemory@@QBEMHPAMM@Z 1000c480 f physics_2009:dgWorldDynamicUpdate.obj + 0001:0000bfc0 ?AddDamingAcceleration@dgBody@@AAEXXZ 1000cfc0 f i physics_2009:dgWorldDynamicUpdate.obj + 0001:0000c180 ?IntegrateArray@dgWorldDynamicUpdate@@ABEXPBVdgBodyInfo@@HMMH_N@Z 1000d180 f physics_2009:dgWorldDynamicUpdate.obj + 0001:0000c7c0 ?ApplyExternalForcesAndAcceleration@dgJacobianMemory@@QBEXM@Z 1000d7c0 f physics_2009:dgWorldDynamicUpdate.obj + 0001:0000cf50 ?CalculateSimpleBodyReactionsForcesSimD@dgJacobianMemory@@QBEXM@Z 1000df50 f physics_2009:dgWorldDynamicUpdate.obj + 0001:0000dc00 ?CalculateSimpleBodyReactionsForces@dgJacobianMemory@@QBEXM@Z 1000ec00 f physics_2009:dgWorldDynamicUpdate.obj + 0001:0000edc0 ?CalculateForcesSimulationModeSimd@dgJacobianMemory@@QBEXM@Z 1000fdc0 f physics_2009:dgWorldDynamicUpdate.obj + 0001:00010240 ?CalculateJointForces@dgJacobianMemory@@QBEMHPAMM@Z 10011240 f physics_2009:dgWorldDynamicUpdate.obj + 0001:00011040 ?CalculateForcesGameModeSimD@dgJacobianMemory@@QBEXHM@Z 10012040 f physics_2009:dgWorldDynamicUpdate.obj + 0001:00011b40 ?CalculateForcesGameMode@dgJacobianMemory@@QBEXHM@Z 10012b40 f physics_2009:dgWorldDynamicUpdate.obj + 0001:00013290 ?ThreadExecute@dgParallelSolverBodyInertia@@UAEXXZ 10014290 f physics_2009:dgWorldDynamicUpdate.obj + 0001:00013340 ?ThreadExecute@dgParallelSolverBuildJacobianRows@@UAEXXZ 10014340 f physics_2009:dgWorldDynamicUpdate.obj + 0001:00013d60 ?BuildJacobianMatrixParallel@dgWorldDynamicUpdate@@AAEXABVdgIsland@@MH@Z 10014d60 f physics_2009:dgWorldDynamicUpdate.obj + 0001:00014090 ?ThreadExecute@dgParallelSolverClear@@UAEXXZ 10015090 f physics_2009:dgWorldDynamicUpdate.obj + 0001:00014270 ?ThreadExecute@dgParallelSolverInitInternalForces@@UAEXXZ 10015270 f physics_2009:dgWorldDynamicUpdate.obj + 0001:000147b0 ?ThreadExecute@dgParallelSolverUpdateVeloc@@UAEXXZ 100157b0 f physics_2009:dgWorldDynamicUpdate.obj + 0001:00014b20 ?ThreadExecute@dgParallelSolverUpdateForce@@UAEXXZ 10015b20 f physics_2009:dgWorldDynamicUpdate.obj + 0001:00015260 ?ThreadExecute@dgParallelSolverCalculateForces@@UAEXXZ 10016260 f physics_2009:dgWorldDynamicUpdate.obj + 0001:00015c40 ?CalculateForcesGameModeParallel@dgJacobianMemory@@QBEXHMH@Z 10016c40 f physics_2009:dgWorldDynamicUpdate.obj + 0001:00016470 ?CalculateForcesSimulationMode@dgJacobianMemory@@QBEXM@Z 10017470 f physics_2009:dgWorldDynamicUpdate.obj + 0001:00018ed0 ?UpdateDynamics@dgWorldDynamicUpdate@@AAEXPAVdgWorld@@HM@Z 10019ed0 f physics_2009:dgWorldDynamicUpdate.obj + 0001:00019310 ?ThreadExecute@dgParallelSolverBuildJacobianMatrix@@UAEXXZ 1001a310 f physics_2009:dgWorldDynamicUpdate.obj + 0001:00019940 ?GetJacobialDerivatives@dgWorldDynamicUpdate@@AAEHABVdgIsland@@H_NHM@Z 1001a940 f physics_2009:dgWorldDynamicUpdate.obj + 0001:00019ed0 ?BuildJacobianMatrixSimD@dgWorldDynamicUpdate@@AAEXABVdgIsland@@HM@Z 1001aed0 f physics_2009:dgWorldDynamicUpdate.obj + 0001:0001a480 ?BuildJacobianMatrix@dgWorldDynamicUpdate@@AAEXABVdgIsland@@HM@Z 1001b480 f physics_2009:dgWorldDynamicUpdate.obj + 0001:0001acf0 ?ThreadExecute@dgSolverWorlkerThreads@@UAEXXZ 1001bcf0 f physics_2009:dgWorldDynamicUpdate.obj + 0001:0001b720 ?CreateConvexModifier@dgWorld@@QAEPAVdgCollision@@PAV2@@Z 1001c720 f physics_2009:dgNarrowPhaseCollision.obj + 0001:0001b760 ?CreateCompoundCollision@dgWorld@@QAEPAVdgCollision@@HQBQAV2@@Z 1001c760 f physics_2009:dgNarrowPhaseCollision.obj + 0001:0001b790 ?CreateBVH@dgWorld@@QAEPAVdgCollision@@XZ 1001c790 f physics_2009:dgNarrowPhaseCollision.obj + 0001:0001b7b0 ?CreateStaticUserMesh@dgWorld@@QAEPAVdgCollision@@ABVdgVector@@0ABVdgUserMeshCreation@@@Z 1001c7b0 f physics_2009:dgNarrowPhaseCollision.obj + 0001:0001b7d0 ?CreateBVHFieldCollision@dgWorld@@QAEPAVdgCollision@@HHHPAGPADMM@Z 1001c7d0 f physics_2009:dgNarrowPhaseCollision.obj + 0001:0001b830 ?CreateScene@dgWorld@@QAEPAVdgCollision@@XZ 1001c830 f physics_2009:dgNarrowPhaseCollision.obj + 0001:0001b860 ?Serialize@dgWorld@@QBEXPAVdgCollision@@P6AXPAXPBXI@Z1@Z 1001c860 f physics_2009:dgNarrowPhaseCollision.obj + 0001:0001b8c0 ?GetDefualtBodyGroupID@dgWorld@@QBEIXZ 1001c8c0 f physics_2009:dgNarrowPhaseCollision.obj + 0001:0001b8d0 ?GetFirstMaterial@dgWorld@@QBEPAVdgContactMaterial@@XZ 1001c8d0 f physics_2009:dgNarrowPhaseCollision.obj + 0001:0001b8f0 ?SortContacts@dgWorld@@ABEXQAVdgContactPoint@@H@Z 1001c8f0 f physics_2009:dgNarrowPhaseCollision.obj + 0001:0001bae0 ?ReduceContacts@dgWorld@@ABEHHQAVdgContactPoint@@HMH@Z 1001cae0 f physics_2009:dgNarrowPhaseCollision.obj + 0001:0001bcb0 ?PruneContacts@dgWorld@@ABEHHQAVdgContactPoint@@H@Z 1001ccb0 f physics_2009:dgNarrowPhaseCollision.obj + 0001:0001be60 ?ProcessCachedContacts@dgWorld@@ABEXPAVdgContact@@PBVdgContactMaterial@@MH@Z 1001ce60 f physics_2009:dgNarrowPhaseCollision.obj + 0001:0001bf40 ?ProcessTriggers@dgWorld@@AAEXAAUdgPair@dgCollidingPairCollector@@MH@Z 1001cf40 f physics_2009:dgNarrowPhaseCollision.obj + 0001:0001c020 ?SceneContactsSimd@dgWorld@@ABEXABUdgProxy@dgCollisionScene@@QAUdgPair@dgCollidingPairCollector@@AAVdgCollisionParamProxi@@@Z 1001d020 f physics_2009:dgNarrowPhaseCollision.obj + 0001:0001c0e0 ?SceneContacts@dgWorld@@ABEXABUdgProxy@dgCollisionScene@@QAUdgPair@dgCollidingPairCollector@@AAVdgCollisionParamProxi@@@Z 1001d0e0 f physics_2009:dgNarrowPhaseCollision.obj + 0001:0001c1a0 ?Append@?$dgList@VdgContactMaterial@@@@QAEPAVdgListNode@1@XZ 1001d1a0 f i physics_2009:dgNarrowPhaseCollision.obj + 0001:0001c250 ?Find@?$dgTree@VdgContactMaterial@@I@@QBEPAVdgTreeNode@1@I@Z 1001d250 f i physics_2009:dgNarrowPhaseCollision.obj + 0001:0001c280 ?GetMaterial@dgWorld@@QBEPAVdgContactMaterial@@II@Z 1001d280 f physics_2009:dgNarrowPhaseCollision.obj + 0001:0001c2d0 ?GetNextMaterial@dgWorld@@QBEPAVdgContactMaterial@@PAV2@@Z 1001d2d0 f physics_2009:dgNarrowPhaseCollision.obj + 0001:0001c300 ?RemoveFromCache@dgWorld@@QAEXPAVdgCollision@@@Z 1001d300 f physics_2009:dgNarrowPhaseCollision.obj + 0001:0001c360 ?ReleaseCollision@dgWorld@@QAEXPAVdgCollision@@@Z 1001d360 f physics_2009:dgNarrowPhaseCollision.obj + 0001:0001c3d0 ?ClosestCompoundPoint@dgWorld@@ABEHPAVdgBody@@0AAVdgTriplex@@11H@Z 1001d3d0 f physics_2009:dgNarrowPhaseCollision.obj + 0001:0001c870 ?ValidateContactCache@dgWorld@@ABEHPAVdgBody@@0PAVdgContact@@@Z 1001d870 f physics_2009:dgNarrowPhaseCollision.obj + 0001:0001ced0 ?CompoundContactsSimd@dgWorld@@ABEXQAUdgPair@dgCollidingPairCollector@@AAVdgCollisionParamProxi@@@Z 1001ded0 f physics_2009:dgNarrowPhaseCollision.obj + 0001:0001dff0 ?CompoundContacts@dgWorld@@ABEXQAUdgPair@dgCollidingPairCollector@@AAVdgCollisionParamProxi@@@Z 1001eff0 f physics_2009:dgNarrowPhaseCollision.obj + 0001:0001f1e0 ?ConvexContactsSimd@dgWorld@@ABEXQAUdgPair@dgCollidingPairCollector@@AAVdgCollisionParamProxi@@@Z 100201e0 f physics_2009:dgNarrowPhaseCollision.obj + 0001:0001f2f0 ?ConvexContacts@dgWorld@@ABEXQAUdgPair@dgCollidingPairCollector@@AAVdgCollisionParamProxi@@@Z 100202f0 f physics_2009:dgNarrowPhaseCollision.obj + 0001:0001f400 ?SceneContacts@dgWorld@@ABEXQAUdgPair@dgCollidingPairCollector@@AAVdgCollisionParamProxi@@@Z 10020400 f physics_2009:dgNarrowPhaseCollision.obj + 0001:0001f4a0 ?SceneContactsSimd@dgWorld@@ABEXQAUdgPair@dgCollidingPairCollector@@AAVdgCollisionParamProxi@@@Z 100204a0 f physics_2009:dgNarrowPhaseCollision.obj + 0001:0001f540 ?CalculateContactsSimd@dgWorld@@AAEXQAUdgPair@dgCollidingPairCollector@@MH@Z 10020540 f physics_2009:dgNarrowPhaseCollision.obj + 0001:0001f6e0 ?CalculateContacts@dgWorld@@AAEXQAUdgPair@dgCollidingPairCollector@@MH@Z 100206e0 f physics_2009:dgNarrowPhaseCollision.obj + 0001:0001f8a0 ?CollideContinueSimd@dgWorld@@QAEHPAVdgCollision@@ABVdgMatrix@@ABVdgVector@@20122AAMPAVdgTriplex@@4PAMHH@Z 100208a0 f physics_2009:dgNarrowPhaseCollision.obj + 0001:0001ffc0 ?CollideContinue@dgWorld@@QAEHPAVdgCollision@@ABVdgMatrix@@ABVdgVector@@20122AAMPAVdgTriplex@@4PAMHH@Z 10020fc0 f physics_2009:dgNarrowPhaseCollision.obj + 0001:000206e0 ?Collide@dgWorld@@QAEHPAVdgCollision@@ABVdgMatrix@@01PAVdgTriplex@@2PAMHH@Z 100216e0 f physics_2009:dgNarrowPhaseCollision.obj + 0001:00020b40 ?ClosestPoint@dgWorld@@QBEHPAVdgCollision@@ABVdgMatrix@@01AAVdgTriplex@@22H@Z 10021b40 f physics_2009:dgNarrowPhaseCollision.obj + 0001:00020e10 ?ProcessContacts@dgWorld@@AAEXAAUdgPair@dgCollidingPairCollector@@MH@Z 10021e10 f physics_2009:dgNarrowPhaseCollision.obj + 0001:00021fa0 ?ClosestPoint@dgWorld@@QBEHAAVdgTriplex@@PAVdgCollision@@ABVdgMatrix@@00H@Z 10022fa0 f physics_2009:dgNarrowPhaseCollision.obj + 0001:00022010 ?Insert@?$dgTree@VdgContactMaterial@@I@@QAEPAVdgTreeNode@1@ABVdgContactMaterial@@IAA_N@Z 10023010 f i physics_2009:dgNarrowPhaseCollision.obj + 0001:000220f0 ?Insert@?$dgTree@PAVdgCollision@@I@@QAEPAVdgTreeNode@1@ABQAVdgCollision@@I@Z 100230f0 f i physics_2009:dgNarrowPhaseCollision.obj + 0001:00022110 ?CreateNull@dgWorld@@QAEPAVdgCollision@@XZ 10023110 f physics_2009:dgNarrowPhaseCollision.obj + 0001:00022190 ?CreateBox@dgWorld@@QAEPAVdgCollision@@MMMABVdgMatrix@@@Z 10023190 f physics_2009:dgNarrowPhaseCollision.obj + 0001:00022330 ?CreateSphere@dgWorld@@QAEPAVdgCollision@@MABVdgMatrix@@@Z 10023330 f physics_2009:dgNarrowPhaseCollision.obj + 0001:00022440 ?CreateEllipse@dgWorld@@QAEPAVdgCollision@@MMMABVdgMatrix@@@Z 10023440 f physics_2009:dgNarrowPhaseCollision.obj + 0001:000225c0 ?CreateCapsule@dgWorld@@QAEPAVdgCollision@@MMABVdgMatrix@@@Z 100235c0 f physics_2009:dgNarrowPhaseCollision.obj + 0001:00022710 ?CreateCone@dgWorld@@QAEPAVdgCollision@@MMABVdgMatrix@@@Z 10023710 f physics_2009:dgNarrowPhaseCollision.obj + 0001:00022860 ?CreateCylinder@dgWorld@@QAEPAVdgCollision@@MMABVdgMatrix@@@Z 10023860 f physics_2009:dgNarrowPhaseCollision.obj + 0001:000229b0 ?CreateChamferCylinder@dgWorld@@QAEPAVdgCollision@@MMABVdgMatrix@@@Z 100239b0 f physics_2009:dgNarrowPhaseCollision.obj + 0001:00022b00 ?CreateConvexHull@dgWorld@@QAEPAVdgCollision@@HPBMHMABVdgMatrix@@@Z 10023b00 f physics_2009:dgNarrowPhaseCollision.obj + 0001:00022cc0 ?CreateFromSerialization@dgWorld@@QAEPAVdgCollision@@P6AXPAX0I@Z0@Z 10023cc0 f physics_2009:dgNarrowPhaseCollision.obj + 0001:00022ff0 ?CreateBodyGroupID@dgWorld@@QAEIXZ 10023ff0 f physics_2009:dgNarrowPhaseCollision.obj + 0001:00023070 ?CalculateSignature@dgCollisionConvexPolygon@dgCollisionMesh@@UBEHXZ 10024070 f physics_2009:dgCollisionMesh.obj + 0001:00023080 ?RayCastSimd@dgCollision@@UBEMABVdgVector@@0AAVdgContactPoint@@P6AIPBVdgBody@@PBV1@PAX@Z24@Z 10024080 f physics_2009:dgCollision.obj + 0001:00023080 ?RayCast@dgCollisionConvexPolygon@dgCollisionMesh@@UBEMABVdgVector@@0AAVdgContactPoint@@P6AIPBVdgBody@@PBVdgCollision@@PAX@Z24@Z 10024080 f physics_2009:dgCollisionMesh.obj + 0001:00023090 ?CalculateInertia@dgCollisionMesh@@UBEXAAVdgVector@@0@Z 10024090 f physics_2009:dgCollisionMesh.obj + 0001:00023090 ?CalculateInertia@dgCollisionConvexPolygon@dgCollisionMesh@@UBEXAAVdgVector@@0@Z 10024090 f physics_2009:dgCollisionMesh.obj + 0001:00023090 ?CalculateInertia@dgCollisionScene@@EBEXAAVdgVector@@0@Z 10024090 f physics_2009:dgCollisionScene.obj + 0001:00023090 ?CalculateInertia@dgCollisionNull@@MBEXAAVdgVector@@0@Z 10024090 f physics_2009:dgCollisionNull.obj + 0001:00023090 ?CalculateInertia@dgCollisionPoint@@UBEXAAVdgVector@@0@Z 10024090 f physics_2009:dgCollisionSphere.obj + 0001:000230b0 ?SupportVertexSimd@dgCollisionConvexPolygon@dgCollisionMesh@@UBE?AVdgVector@@ABV3@@Z 100240b0 f physics_2009:dgCollisionMesh.obj + 0001:00023200 ??1dgCollisionMesh@@UAE@XZ 10024200 f physics_2009:dgCollisionMesh.obj + 0001:00023240 ?SetCollisionCallback@dgCollisionMesh@@QAEXP6AXPBVdgBody@@0HHPBMH@Z@Z 10024240 f physics_2009:dgCollisionMesh.obj + 0001:00023250 ?SetCollisionRayCastCallback@dgCollisionMesh@@QAEXP6AMMPAMHPAX@Z@Z 10024250 f physics_2009:dgCollisionMesh.obj + 0001:00023260 ?CalcAABBSimD@dgCollisionNull@@MBEXABVdgMatrix@@AAVdgVector@@1@Z 10024260 f physics_2009:dgCollisionNull.obj + 0001:00023260 ?CalcAABBSimD@dgCollisionMesh@@EBEXABVdgMatrix@@AAVdgVector@@1@Z 10024260 f physics_2009:dgCollisionMesh.obj + 0001:00023260 ?CalcAABBSimD@dgCollisionScene@@EBEXABVdgMatrix@@AAVdgVector@@1@Z 10024260 f physics_2009:dgCollisionScene.obj + 0001:00023270 ?OOBBTest@dgCollisionMesh@@EBE_NABVdgMatrix@@QBVdgConvexCollision@@PAX@Z 10024270 f physics_2009:dgCollisionMesh.obj + 0001:00023270 ?OOBBTest@dgCompoundCollision@@MBE_NABVdgMatrix@@QBVdgConvexCollision@@PAX@Z 10024270 f physics_2009:dgCompoundCollision.obj + 0001:00023270 ?OOBBTest@dgCollisionScene@@EBE_NABVdgMatrix@@QBVdgConvexCollision@@PAX@Z 10024270 f physics_2009:dgCollisionScene.obj + 0001:00023270 ?OOBBTest@dgCollisionConvexModifier@@MBE_NABVdgMatrix@@QBVdgConvexCollision@@PAX@Z 10024270 f physics_2009:dgCollisionConvexModifier.obj + 0001:00023270 ?OOBBTest@dgCollisionConvexPolygon@dgCollisionMesh@@UBE_NABVdgMatrix@@QBVdgConvexCollision@@PAX@Z 10024270 f physics_2009:dgCollisionMesh.obj + 0001:00023280 ?SupportVertex@dgCollisionConvexPolygon@dgCollisionMesh@@UBE?AVdgVector@@ABV3@@Z 10024280 f physics_2009:dgCollisionMesh.obj + 0001:00023430 ??_EdgCollisionMesh@@UAEPAXI@Z 10024430 f i physics_2009:dgCollisionMesh.obj + 0001:00023430 ??_GdgCollisionMesh@@UAEPAXI@Z 10024430 f i physics_2009:dgCollisionMesh.obj + 0001:00023450 ??0dgCollisionConvexPolygon@dgCollisionMesh@@QAE@XZ 10024450 f physics_2009:dgCollisionMesh.obj + 0001:00023500 ??_GdgCollisionConvexPolygon@dgCollisionMesh@@UAEPAXI@Z 10024500 f i physics_2009:dgCollisionMesh.obj + 0001:00023500 ??_EdgCollisionConvexPolygon@dgCollisionMesh@@UAEPAXI@Z 10024500 f i physics_2009:dgCollisionMesh.obj + 0001:00023520 ?CalculateNormalSimd@dgCollisionConvexPolygon@dgCollisionMesh@@QAEXXZ 10024520 f physics_2009:dgCollisionMesh.obj + 0001:00023630 ?CalculateNormal@dgCollisionConvexPolygon@dgCollisionMesh@@QAEXXZ 10024630 f physics_2009:dgCollisionMesh.obj + 0001:00023800 ?ClipContacts@dgCollisionConvexPolygon@dgCollisionMesh@@QBEHHQAVdgContactPoint@@ABVdgMatrix@@@Z 10024800 f physics_2009:dgCollisionMesh.obj + 0001:00023e10 ?ClosestDistanceToTriangle@dgCollisionConvexPolygon@dgCollisionMesh@@QBE?AVdgVector@@ABV3@000@Z 10024e10 f physics_2009:dgCollisionMesh.obj + 0001:00024370 ?PointToPolygonDistance@dgCollisionConvexPolygon@dgCollisionMesh@@QAE_NABVdgVector@@MAAV3@@Z 10025370 f physics_2009:dgCollisionMesh.obj + 0001:000245f0 ?MovingPointToPolygonContact@dgCollisionConvexPolygon@dgCollisionMesh@@QAEMABVdgVector@@0MAAVdgContactPoint@@@Z 100255f0 f physics_2009:dgCollisionMesh.obj + 0001:00024fa0 ?CalculatePlaneIntersection@dgCollisionConvexPolygon@dgCollisionMesh@@UBEHABVdgVector@@0QAV3@@Z 10025fa0 f physics_2009:dgCollisionMesh.obj + 0001:00025be0 ?CalculatePlaneIntersectionSimd@dgCollisionConvexPolygon@dgCollisionMesh@@UBEHABVdgVector@@0QAV3@@Z 10026be0 f physics_2009:dgCollisionMesh.obj + 0001:00026300 ?CalcAABB@dgCollisionMesh@@EBEXABVdgMatrix@@AAVdgVector@@1@Z 10027300 f physics_2009:dgCollisionMesh.obj + 0001:00026300 ?CalcAABB@dgCollisionScene@@EBEXABVdgMatrix@@AAVdgVector@@1@Z 10027300 f physics_2009:dgCollisionScene.obj + 0001:00026510 ?CalculateVolumeIntegral@dgCollisionMesh@@EBE?AVdgVector@@ABVdgMatrix@@P6AIPAX10AAVdgPlane@@@Z1@Z 10027510 f physics_2009:dgCollisionMesh.obj + 0001:00026510 ?CalculateVolumeIntegral@dgCollisionScene@@EBE?AVdgVector@@ABVdgMatrix@@P6AIPAX10AAVdgPlane@@@Z1@Z 10027510 f physics_2009:dgCollisionScene.obj + 0001:00026510 ?CalculateVolumeIntegral@dgCollisionNull@@MBE?AVdgVector@@ABVdgMatrix@@P6AIPAX10AAVdgPlane@@@Z1@Z 10027510 f physics_2009:dgCollisionNull.obj + 0001:00026530 ?QuickTestContinueSimd@dgCollisionConvexPolygon@dgCollisionMesh@@QAEHPBVdgConvexCollision@@ABVdgMatrix@@@Z 10027530 f physics_2009:dgCollisionMesh.obj + 0001:00026930 ?QuickTestContinue@dgCollisionConvexPolygon@dgCollisionMesh@@QAEHPBVdgConvexCollision@@ABVdgMatrix@@@Z 10027930 f physics_2009:dgCollisionMesh.obj + 0001:00026c30 ?QuickTest@dgCollisionConvexPolygon@dgCollisionMesh@@QAEHPBVdgConvexCollision@@ABVdgMatrix@@@Z 10027c30 f physics_2009:dgCollisionMesh.obj + 0001:000270a0 ?QuickTestSimd@dgCollisionConvexPolygon@dgCollisionMesh@@QAEHPBVdgConvexCollision@@ABVdgMatrix@@@Z 100280a0 f physics_2009:dgCollisionMesh.obj + 0001:000275c0 ??0dgCollisionMesh@@QAE@W4dgCollisionID@@@Z 100285c0 f physics_2009:dgCollisionMesh.obj + 0001:00027680 ??0dgCollisionMesh@@QAE@PAVdgWorld@@P6AXPAX1I@Z1@Z 10028680 f physics_2009:dgCollisionMesh.obj + 0001:00027740 ??0dgCollisionBVH@@QAE@XZ 10028740 f physics_2009:dgCollisionBVH.obj + 0001:00027780 ?Serialize@dgCollisionBVH@@EBEXP6AXPAXPBXI@Z0@Z 10028780 f physics_2009:dgCollisionBVH.obj + 0001:000277b0 ?AddFace@dgCollisionBVH@@QAEXHQBMHH@Z 100287b0 f physics_2009:dgCollisionBVH.obj + 0001:00027820 ?GetCollisionInfo@dgCollisionBVH@@EBEXPAVdgCollisionInfo@@@Z 10028820 f physics_2009:dgCollisionBVH.obj + 0001:00027820 ?GetCollisionInfo@dgCollisionConvexHull@@EBEXPAVdgCollisionInfo@@@Z 10028820 f physics_2009:dgCollisionConvexHull.obj + 0001:00027850 ?CollectVertexListIndexList@dgCollisionBVH@@CA?AW4dgIntersectStatus@@PAXQBMHQBHH@Z 10028850 f physics_2009:dgCollisionBVH.obj + 0001:000278f0 ?GetVertexListIndexList@dgCollisionBVH@@QBEXABVdgVector@@0AAVdgGetVertexListIndexList@1@@Z 100288f0 f physics_2009:dgCollisionBVH.obj + 0001:00027920 ?SupportVertex@dgCollisionBVH@@EBE?AVdgVector@@ABV2@@Z 10028920 f physics_2009:dgCollisionBVH.obj + 0001:00027950 ??_EdgCollisionBVH@@WMA@AEPAXI@Z 10028950 f i physics_2009:dgCollisionBVH.obj + 0001:00027960 ?Serialize@dgCollisionBVH@@GMA@BEXP6AXPAXPBXI@Z0@Z 10028960 f i physics_2009:dgCollisionBVH.obj + 0001:00027970 ??_EdgCollisionBVH@@UAEPAXI@Z 10028970 f i physics_2009:dgCollisionBVH.obj + 0001:00027970 ??_GdgCollisionBVH@@UAEPAXI@Z 10028970 f i physics_2009:dgCollisionBVH.obj + 0001:000279b0 ?BeginBuild@dgCollisionBVH@@QAEXXZ 100289b0 f physics_2009:dgCollisionBVH.obj + 0001:000279f0 ??0dgCollisionBVH@@QAE@PAVdgWorld@@P6AXPAX1I@Z1@Z 100289f0 f physics_2009:dgCollisionBVH.obj + 0001:00027a80 ?EndBuild@dgCollisionBVH@@QAEXH@Z 10028a80 f physics_2009:dgCollisionBVH.obj + 0001:00027b10 ?RayHitSimd@dgCollisionBVH@@CAMPAXQBMHQBHH@Z 10028b10 f physics_2009:dgCollisionBVH.obj + 0001:00027bd0 ?RayHit@dgCollisionBVH@@CAMPAXQBMHQBHH@Z 10028bd0 f physics_2009:dgCollisionBVH.obj + 0001:00027c90 ?RayHitUserSimd@dgCollisionBVH@@CAMPAXQBMHQBHH@Z 10028c90 f physics_2009:dgCollisionBVH.obj + 0001:00027dc0 ?RayHitUser@dgCollisionBVH@@CAMPAXQBMHQBHH@Z 10028dc0 f physics_2009:dgCollisionBVH.obj + 0001:00027f50 ?RayCastSimd@dgCollisionBVH@@EBEMABVdgVector@@0AAVdgContactPoint@@P6AIPBVdgBody@@PBVdgCollision@@PAX@Z24@Z 10028f50 f physics_2009:dgCollisionBVH.obj + 0001:00028160 ?RayCast@dgCollisionBVH@@EBEMABVdgVector@@0AAVdgContactPoint@@P6AIPBVdgBody@@PBVdgCollision@@PAX@Z24@Z 10029160 f physics_2009:dgCollisionBVH.obj + 0001:00028370 ?GetPolygon@dgCollisionBVH@@CA?AW4dgIntersectStatus@@PAXQBMHQBHH@Z 10029370 f physics_2009:dgCollisionBVH.obj + 0001:000287a0 ?GetCollidingFacesSimd@dgCollisionBVH@@EBEXQAVdgPolygonMeshDesc@@@Z 100297a0 f physics_2009:dgCollisionBVH.obj + 0001:00028810 ?GetCollidingFaces@dgCollisionBVH@@EBEXQAVdgPolygonMeshDesc@@@Z 10029810 f physics_2009:dgCollisionBVH.obj + 0001:00028880 ?ShowDebugPolygon@dgCollisionBVH@@CA?AW4dgIntersectStatus@@PAXQBMHQBHH@Z 10029880 f physics_2009:dgCollisionBVH.obj + 0001:00028c20 ?DebugCollision@dgCollisionBVH@@EBEXABVdgMatrix@@P6AXPAXHPBMH@Z1@Z 10029c20 f physics_2009:dgCollisionBVH.obj + 0001:00028ca0 ??_GdgSceneNode@dgCollisionScene@@QAEPAXI@Z 10029ca0 f i physics_2009:dgCollisionScene.obj + 0001:00028cf0 ?GetBoxMinRadius@dgCollisionScene@@EBEMXZ 10029cf0 f physics_2009:dgCollisionScene.obj + 0001:00028cf0 ?GetBoxMinRadius@dgCollisionMesh@@UBEMXZ 10029cf0 f physics_2009:dgCollisionMesh.obj + 0001:00028cf0 ?GetVolume@dgCollisionConvexPolygon@dgCollisionMesh@@UBEMXZ 10029cf0 f physics_2009:dgCollisionMesh.obj + 0001:00028cf0 ?GetVolume@dgCollisionScene@@EBEMXZ 10029cf0 f physics_2009:dgCollisionScene.obj + 0001:00028cf0 ?GetVolume@dgCollisionNull@@MBEMXZ 10029cf0 f physics_2009:dgCollisionNull.obj + 0001:00028cf0 ?GetBoxMaxRadius@dgCollisionConvexPolygon@dgCollisionMesh@@UBEMXZ 10029cf0 f physics_2009:dgCollisionMesh.obj + 0001:00028cf0 ?GetBoxMaxRadius@dgCollisionMesh@@UBEMXZ 10029cf0 f physics_2009:dgCollisionMesh.obj + 0001:00028cf0 ?GetBoxMinRadius@dgCollisionConvexPolygon@dgCollisionMesh@@UBEMXZ 10029cf0 f physics_2009:dgCollisionMesh.obj + 0001:00028cf0 ?GetBoxMaxRadius@dgCollisionScene@@EBEMXZ 10029cf0 f physics_2009:dgCollisionScene.obj + 0001:00028cf0 ?GetVolume@dgCollisionMesh@@UBEMXZ 10029cf0 f physics_2009:dgCollisionMesh.obj + 0001:00028cf0 ?GetVolume@dgCollisionPoint@@UBEMXZ 10029cf0 f physics_2009:dgCollisionSphere.obj + 0001:00028d00 ?UpdateAABB@dgSceneNode@dgCollisionScene@@QAEXABVdgVector@@0@Z 10029d00 f i physics_2009:dgCollisionScene.obj + 0001:00028e20 ?Serialize@dgCollisionScene@@EBEXP6AXPAXPBXI@Z0@Z 10029e20 f physics_2009:dgCollisionScene.obj + 0001:00028fa0 ?SetProxyMatrix@dgCollisionScene@@QAEXPAXABVdgMatrix@@@Z 10029fa0 f physics_2009:dgCollisionScene.obj + 0001:00028ff0 ?SetCollisionCallback@dgCollisionScene@@QAEXP6AXPBVdgBody@@0HHPBMH@Z@Z 10029ff0 f physics_2009:dgCollisionScene.obj + 0001:00029020 ?DebugCollision@dgCollisionScene@@EBEXABVdgMatrix@@P6AXPAXHPBMH@Z1@Z 1002a020 f physics_2009:dgCollisionScene.obj + 0001:00029090 ?GetCollisionInfo@dgCollisionScene@@EBEXPAVdgCollisionInfo@@@Z 1002a090 f physics_2009:dgCollisionScene.obj + 0001:000290c0 ?RemoveAll@?$dgList@UdgProxy@dgCollisionScene@@@@QAEXXZ 1002a0c0 f i physics_2009:dgCollisionScene.obj + 0001:00029120 ?Reset@FastRayTest@@QAEXM@Z 1002a120 f i physics_2009:dgCollisionScene.obj + 0001:00029180 ?GetProxyMatrix@dgCollisionScene@@QAE?AVdgMatrix@@PAX@Z 1002a180 f physics_2009:dgCollisionScene.obj + 0001:00029300 ?SetCollisionBBox@dgCollisionMesh@@MAEXABVdgVector@@0@Z 1002a300 f physics_2009:dgCollisionMesh.obj + 0001:00029300 ?SetCollisionBBox@dgCollisionScene@@EAEXABVdgVector@@0@Z 1002a300 f physics_2009:dgCollisionScene.obj + 0001:00029400 ?GetAxis@dgCollisionScene@@ABEHQAPAVdgListNode@?$dgList@UdgProxy@dgCollisionScene@@@@H@Z 1002a400 f physics_2009:dgCollisionScene.obj + 0001:000295a0 ?RayCast@dgCollisionScene@@EBEMABVdgVector@@0AAVdgContactPoint@@P6AIPBVdgBody@@PBVdgCollision@@PAX@Z24@Z 1002a5a0 f physics_2009:dgCollisionScene.obj + 0001:00029ad0 ?CollidePairSimd@dgCollisionScene@@QBEXQAUdgPair@dgCollidingPairCollector@@AAVdgCollisionParamProxi@@@Z 1002aad0 f physics_2009:dgCollisionScene.obj + 0001:00029e90 ?CollidePair@dgCollisionScene@@QBEXQAUdgPair@dgCollidingPairCollector@@AAVdgCollisionParamProxi@@@Z 1002ae90 f physics_2009:dgCollisionScene.obj + 0001:0002a350 ?SortAABBBoxes@dgCollisionScene@@ABEHQAPAVdgListNode@?$dgList@UdgProxy@dgCollisionScene@@@@H@Z 1002b350 f physics_2009:dgCollisionScene.obj + 0001:0002a4c0 ?SortAndSpliteSplite@dgCollisionScene@@ABEHQAPAVdgListNode@?$dgList@UdgProxy@dgCollisionScene@@@@H@Z 1002b4c0 f physics_2009:dgCollisionScene.obj + 0001:0002a6f0 ?BuildTree@dgCollisionScene@@AAEPAUdgSceneNode@1@PAU21@QAPAVdgListNode@?$dgList@UdgProxy@dgCollisionScene@@@@HH@Z 1002b6f0 f physics_2009:dgCollisionScene.obj + 0001:0002a820 ??0dgCollisionScene@@QAE@PAVdgWorld@@@Z 1002b820 f physics_2009:dgCollisionScene.obj + 0001:0002a8b0 ??1dgCollisionScene@@UAE@XZ 1002b8b0 f physics_2009:dgCollisionScene.obj + 0001:0002a930 ?RayCastSimd@dgCollisionScene@@EBEMABVdgVector@@0AAVdgContactPoint@@P6AIPBVdgBody@@PBVdgCollision@@PAX@Z24@Z 1002b930 f physics_2009:dgCollisionScene.obj + 0001:0002ae60 ??_GdgCollisionScene@@UAEPAXI@Z 1002be60 f i physics_2009:dgCollisionScene.obj + 0001:0002ae60 ??_EdgCollisionScene@@UAEPAXI@Z 1002be60 f i physics_2009:dgCollisionScene.obj + 0001:0002ae80 ?Append@?$dgList@UdgProxy@dgCollisionScene@@@@QAEPAVdgListNode@1@XZ 1002be80 f i physics_2009:dgCollisionScene.obj + 0001:0002af20 ?AddProxy@dgCollisionScene@@QAEPAXPAVdgCollision@@@Z 1002bf20 f physics_2009:dgCollisionScene.obj + 0001:0002af70 ?BuildTree@dgCollisionScene@@QAEXXZ 1002bf70 f physics_2009:dgCollisionScene.obj + 0001:0002b0c0 ??0dgCollisionScene@@QAE@PAVdgWorld@@P6AXPAX1I@Z1@Z 1002c0c0 f physics_2009:dgCollisionScene.obj + 0001:0002b370 ?SetAparentMassMatrix@dgBody@@QAEXABVdgVector@@@Z 1002c370 f physics_2009:dgBody.obj + 0001:0002b3f0 ??DdgQuaternion@@QBE?AV0@ABV0@@Z 1002c3f0 f i physics_2009:dgBody.obj + 0001:0002b480 ?AddBuoyancyForce@dgBody@@QAEXMMMABVdgVector@@P6AIPAX1ABVdgMatrix@@AAVdgPlane@@@Z1@Z 1002c480 f physics_2009:dgBody.obj + 0001:0002b7f0 ?CalcInvInertiaMatrix@dgBody@@QAEXXZ 1002c7f0 f physics_2009:dgBody.obj + 0001:0002b8c0 ?CalcInvInertiaMatrixSimD@dgBody@@QAEXXZ 1002c8c0 f physics_2009:dgBody.obj + 0001:0002b9b0 ?CalculateInverseDynamicForce@dgBody@@QBE?AVdgVector@@ABV2@M@Z 1002c9b0 f physics_2009:dgBody.obj + 0001:0002ba70 ?GetFirstJoint@dgBody@@QBEPAVdgConstraint@@XZ 1002ca70 f physics_2009:dgBody.obj + 0001:0002baa0 ?GetNextJoint@dgBody@@QBEPAVdgConstraint@@PAV2@@Z 1002caa0 f physics_2009:dgBody.obj + 0001:0002bae0 ?GetFirstContact@dgBody@@QBEPAVdgConstraint@@XZ 1002cae0 f physics_2009:dgBody.obj + 0001:0002bb10 ?GetNextContact@dgBody@@QBEPAVdgConstraint@@PAV2@@Z 1002cb10 f physics_2009:dgBody.obj + 0001:0002bb50 ?Freeze@dgBody@@QAEXXZ 1002cb50 f physics_2009:dgBody.obj + 0001:0002bba0 ?Unfreeze@dgBody@@QAEXXZ 1002cba0 f physics_2009:dgBody.obj + 0001:0002bbf0 ?RotateToEnd@?$dgList@VdgBodyMasterListRow@@@@QAEXPAVdgListNode@1@@Z 1002cbf0 f i physics_2009:dgBody.obj + 0001:0002bc50 ?InsertAfter@?$dgList@VdgBodyMasterListRow@@@@QAEXPAVdgListNode@1@0@Z 1002cc50 f i physics_2009:dgBody.obj + 0001:0002bcc0 ??0dgBody@@QAE@XZ 1002ccc0 f physics_2009:dgBody.obj + 0001:0002bce0 ?SetMassMatrix@dgBody@@QAEXMMMM@Z 1002cce0 f physics_2009:dgBody.obj + 0001:0002bde0 ?UpdateCollisionMatrixSimD@dgBody@@AAEXMH@Z 1002cde0 f physics_2009:dgBody.obj + 0001:0002c560 ?UpdateCollisionMatrix@dgBody@@AAEXMH@Z 1002d560 f physics_2009:dgBody.obj + 0001:0002cb40 ?UpdateMatrix@dgBody@@AAEXMH@Z 1002db40 f physics_2009:dgBody.obj + 0001:0002cb70 ?IntegrateVelocity@dgBody@@AAEXM@Z 1002db70 f physics_2009:dgBody.obj + 0001:0002cf10 ?CalculateContinueVelocity@dgBody@@ABEXMAAVdgVector@@0@Z 1002df10 f physics_2009:dgBody.obj + 0001:0002d100 ?CalculateContinueVelocitySimD@dgBody@@ABEXMAAVdgVector@@0@Z 1002e100 f physics_2009:dgBody.obj + 0001:0002d2c0 ?SetFreeze@dgBody@@QAEX_N@Z 1002e2c0 f physics_2009:dgBody.obj + 0001:0002d2e0 ?AddImpulse@dgBody@@AAEXABVdgVector@@0@Z 1002e2e0 f physics_2009:dgBody.obj + 0001:0002d740 ?SetMatrix@dgBody@@QAEXABVdgMatrix@@@Z 1002e740 f physics_2009:dgBody.obj + 0001:0002d870 ?SetMatrixIgnoreSleep@dgBody@@QAEXABVdgMatrix@@@Z 1002e870 f physics_2009:dgBody.obj + 0001:0002d910 ?RayCast@dgBody@@QBEMABUdgLineBox@@P6AMPBV1@ABVdgVector@@HPAXM@ZP6AI1PBVdgCollision@@3@Z3M@Z 1002e910 f physics_2009:dgBody.obj + 0001:0002dd90 ?AttachCollision@dgBody@@QAEXPAVdgCollision@@@Z 1002ed90 f physics_2009:dgBody.obj + 0001:0002dea0 ?SetJointParameterCallBack@dgBallConstraint@@QAEXP6AIABV1@M@Z@Z 1002eea0 f physics_2009:dgBallConstraint.obj + 0001:0002deb0 ?GetJointAngle@dgBallConstraint@@QBE?AVdgVector@@XZ 1002eeb0 f physics_2009:dgBallConstraint.obj + 0001:0002dee0 ?SetTwistLimitState@dgBallConstraint@@QAEX_N@Z 1002eee0 f physics_2009:dgBallConstraint.obj + 0001:0002df00 ?SetConeLimitState@dgBallConstraint@@QAEX_N@Z 1002ef00 f physics_2009:dgBallConstraint.obj + 0001:0002df20 ?SetLatealLimitState@dgBallConstraint@@QAEX_N@Z 1002ef20 f physics_2009:dgBallConstraint.obj + 0001:0002df40 ??_EdgBallConstraint@@EAEPAXI@Z 1002ef40 f i physics_2009:dgBallConstraint.obj + 0001:0002df40 ??_GdgBallConstraint@@EAEPAXI@Z 1002ef40 f i physics_2009:dgBallConstraint.obj + 0001:0002df70 ??0dgBallConstraint@@AAE@XZ 1002ef70 f physics_2009:dgBallConstraint.obj + 0001:0002dff0 ?GetJointOmega@dgBallConstraint@@QBE?AVdgVector@@XZ 1002eff0 f physics_2009:dgBallConstraint.obj + 0001:0002e180 ?GetJointForce@dgBallConstraint@@QBE?AVdgVector@@XZ 1002f180 f physics_2009:dgBallConstraint.obj + 0001:0002e2b0 ?SetLimits@dgBallConstraint@@QAEXABVdgVector@@MMM0MM@Z 1002f2b0 f physics_2009:dgBallConstraint.obj + 0001:0002ec60 ?SetPivotPoint@dgBallConstraint@@AAEXABVdgVector@@@Z 1002fc60 f physics_2009:dgBallConstraint.obj + 0001:0002ed70 ?JacobianDerivative@dgBallConstraint@@EAEIAAVdgContraintDescritor@@@Z 1002fd70 f physics_2009:dgBallConstraint.obj + 0001:0002f620 ??0dgHingeConstraint@@AAE@XZ 10030620 f physics_2009:dgHingeConstraint.obj + 0001:0002f660 ?SetJointParameterCallBack@dgSlidingConstraint@@QAEXP6AIABV1@PAVdgJointCallBackParam@@@Z@Z 10030660 f physics_2009:dgSlidingConstraint.obj + 0001:0002f660 ?SetJointParameterCallBack@dgHingeConstraint@@QAEXP6AIABV1@PAVdgJointCallBackParam@@@Z@Z 10030660 f physics_2009:dgHingeConstraint.obj + 0001:0002f670 ??_EdgHingeConstraint@@EAEPAXI@Z 10030670 f i physics_2009:dgHingeConstraint.obj + 0001:0002f670 ??_GdgHingeConstraint@@EAEPAXI@Z 10030670 f i physics_2009:dgHingeConstraint.obj + 0001:0002f6a0 ?CalculateStopAlpha@dgHingeConstraint@@QBEMMPBVdgJointCallBackParam@@@Z 100306a0 f physics_2009:dgHingeConstraint.obj + 0001:0002f780 ?GetJointForce@dgHingeConstraint@@QBE?AVdgVector@@XZ 10030780 f physics_2009:dgHingeConstraint.obj + 0001:0002f970 ?JacobianDerivative@dgHingeConstraint@@EAEIAAVdgContraintDescritor@@@Z 10030970 f physics_2009:dgHingeConstraint.obj + 0001:0002fc70 ??0dgSlidingConstraint@@AAE@XZ 10030c70 f physics_2009:dgSlidingConstraint.obj + 0001:0002fcb0 ??_GdgSlidingConstraint@@EAEPAXI@Z 10030cb0 f i physics_2009:dgSlidingConstraint.obj + 0001:0002fcb0 ??_EdgSlidingConstraint@@EAEPAXI@Z 10030cb0 f i physics_2009:dgSlidingConstraint.obj + 0001:0002fce0 ?CalculateStopAccel@dgSlidingConstraint@@QBEMMPBVdgJointCallBackParam@@@Z 10030ce0 f physics_2009:dgSlidingConstraint.obj + 0001:0002fdb0 ?GetJointForce@dgSlidingConstraint@@QBE?AVdgVector@@XZ 10030db0 f physics_2009:dgSlidingConstraint.obj + 0001:0002ffa0 ?JacobianDerivative@dgSlidingConstraint@@EAEIAAVdgContraintDescritor@@@Z 10030fa0 f physics_2009:dgSlidingConstraint.obj + 0001:00030550 ??0dgCorkscrewConstraint@@AAE@XZ 10031550 f physics_2009:dgCorkscrewConstraint.obj + 0001:00030590 ?GetJointAngle0@dgUniversalConstraint@@QBEMXZ 10031590 f physics_2009:dgUniversalConstraint.obj + 0001:00030590 ?GetJointAngle@dgHingeConstraint@@QBEMXZ 10031590 f physics_2009:dgHingeConstraint.obj + 0001:00030590 ?GetJointPosit@dgSlidingConstraint@@QBEMXZ 10031590 f physics_2009:dgSlidingConstraint.obj + 0001:00030590 ?GetJointAngle@dgCorkscrewConstraint@@QBEMXZ 10031590 f physics_2009:dgCorkscrewConstraint.obj + 0001:000305a0 ??_GdgCorkscrewConstraint@@EAEPAXI@Z 100315a0 f i physics_2009:dgCorkscrewConstraint.obj + 0001:000305a0 ??_EdgCorkscrewConstraint@@EAEPAXI@Z 100315a0 f i physics_2009:dgCorkscrewConstraint.obj + 0001:000305d0 ?GetJointVeloc@dgSlidingConstraint@@QBEMXZ 100315d0 f physics_2009:dgSlidingConstraint.obj + 0001:000305d0 ?GetJointVeloc@dgCorkscrewConstraint@@QBEMXZ 100315d0 f physics_2009:dgCorkscrewConstraint.obj + 0001:00030680 ?CalculateStopAccel@dgCorkscrewConstraint@@QBEMMPBVdgJointCallBackParam@@@Z 10031680 f physics_2009:dgCorkscrewConstraint.obj + 0001:00030750 ?JacobianDerivative@dgCorkscrewConstraint@@EAEIAAVdgContraintDescritor@@@Z 10031750 f physics_2009:dgCorkscrewConstraint.obj + 0001:00030c90 ??0dgUniversalConstraint@@AAE@XZ 10031c90 f physics_2009:dgUniversalConstraint.obj + 0001:00030cd0 ?SetJointParameterCallBack@dgUniversalConstraint@@QAEXP6AIABV1@PAVdgJointCallBackParam@@@Z@Z 10031cd0 f physics_2009:dgUniversalConstraint.obj + 0001:00030cd0 ?SetJointParameterCallBack@dgCorkscrewConstraint@@QAEXP6AIABV1@PAVdgJointCallBackParam@@@Z@Z 10031cd0 f physics_2009:dgCorkscrewConstraint.obj + 0001:00030ce0 ?GetJointPosit@dgCorkscrewConstraint@@QBEMXZ 10031ce0 f physics_2009:dgCorkscrewConstraint.obj + 0001:00030ce0 ?GetJointAngle1@dgUniversalConstraint@@QBEMXZ 10031ce0 f physics_2009:dgUniversalConstraint.obj + 0001:00030cf0 ??_GdgUniversalConstraint@@EAEPAXI@Z 10031cf0 f i physics_2009:dgUniversalConstraint.obj + 0001:00030cf0 ??_EdgUniversalConstraint@@EAEPAXI@Z 10031cf0 f i physics_2009:dgUniversalConstraint.obj + 0001:00030d20 ?GetJointOmega@dgCorkscrewConstraint@@QBEMXZ 10031d20 f physics_2009:dgCorkscrewConstraint.obj + 0001:00030d20 ?GetJointOmega@dgHingeConstraint@@QBEMXZ 10031d20 f physics_2009:dgHingeConstraint.obj + 0001:00030d20 ?GetJointOmega0@dgUniversalConstraint@@QBEMXZ 10031d20 f physics_2009:dgUniversalConstraint.obj + 0001:00030dd0 ?GetJointOmega1@dgUniversalConstraint@@QBEMXZ 10031dd0 f physics_2009:dgUniversalConstraint.obj + 0001:00030ea0 ?CalculateStopAlpha0@dgUniversalConstraint@@QBEMMPBVdgJointCallBackParam@@@Z 10031ea0 f physics_2009:dgUniversalConstraint.obj + 0001:00030ea0 ?CalculateStopAlpha@dgCorkscrewConstraint@@QBEMMPBVdgJointCallBackParam@@@Z 10031ea0 f physics_2009:dgCorkscrewConstraint.obj + 0001:00030f70 ?CalculateStopAlpha1@dgUniversalConstraint@@QBEMMPBVdgJointCallBackParam@@@Z 10031f70 f physics_2009:dgUniversalConstraint.obj + 0001:00031040 ?GetJointForce@dgCorkscrewConstraint@@QBE?AVdgVector@@XZ 10032040 f physics_2009:dgCorkscrewConstraint.obj + 0001:00031040 ?GetJointForce@dgUniversalConstraint@@QBE?AVdgVector@@XZ 10032040 f physics_2009:dgUniversalConstraint.obj + 0001:000311d0 ?JacobianDerivative@dgUniversalConstraint@@EAEIAAVdgContraintDescritor@@@Z 100321d0 f physics_2009:dgUniversalConstraint.obj + 0001:000317f0 ??0dgUpVectorConstraint@@AAE@XZ 100327f0 f physics_2009:dgUpVectorConstraint.obj + 0001:00031830 ?IsBilateral@dgUpVectorConstraint@@UBE_NXZ 10032830 f physics_2009:dgUpVectorConstraint.obj + 0001:00031830 ?IsTriggerVolume@dgCollision@@UBE_NXZ 10032830 f physics_2009:dgCollisionMesh.obj + 0001:00031830 ?IsBilateral@dgConstraint@@MBE_NXZ 10032830 f physics_2009:dgConstraint.obj + 0001:00031840 ?InitPinDir@dgUpVectorConstraint@@QAEXABVdgVector@@@Z 10032840 f physics_2009:dgUpVectorConstraint.obj + 0001:00031880 ?GetPinDir@dgUpVectorConstraint@@QBE?AVdgVector@@XZ 10032880 f physics_2009:dgUpVectorConstraint.obj + 0001:000318a0 ??_GdgUpVectorConstraint@@EAEPAXI@Z 100328a0 f i physics_2009:dgUpVectorConstraint.obj + 0001:000318a0 ??_EdgUpVectorConstraint@@EAEPAXI@Z 100328a0 f i physics_2009:dgUpVectorConstraint.obj + 0001:000318d0 ?SetPinDir@dgUpVectorConstraint@@QAEXABVdgVector@@@Z 100328d0 f physics_2009:dgUpVectorConstraint.obj + 0001:00031b50 ?JacobianDerivative@dgUpVectorConstraint@@EAEIAAVdgContraintDescritor@@@Z 10032b50 f physics_2009:dgUpVectorConstraint.obj + 0001:00031dd0 ?GetUserData@dgConstraint@@QBEPAXXZ 10032dd0 f physics_2009:dgConstraint.obj + 0001:00031de0 ?SetUserData@dgConstraint@@QAEXPAX@Z 10032de0 f physics_2009:dgConstraint.obj + 0001:00031df0 ?InitInfo@dgConstraint@@IBEXPAVdgConstraintInfo@@@Z 10032df0 f physics_2009:dgConstraint.obj + 0001:00031e80 ?InitPointParam@dgConstraint@@IBEXAAVdgPointParam@1@MABVdgVector@@1@Z 10032e80 f physics_2009:dgConstraint.obj + 0001:00032140 ?Realloc@dgBroadPhaseCalculateContactsWorkerThread@@QAEXHHH@Z 10033140 f physics_2009:dgBroadPhaseCollision.obj + 0001:00032220 ?ThreadExecute@dgBroadPhaseCalculateContactsWorkerThread@@UAEXXZ 10033220 f physics_2009:dgBroadPhaseCollision.obj + 0001:000323c0 ?ThreadExecute@dgBroadPhaseMaterialCallbackWorkerThread@@UAEXXZ 100333c0 f physics_2009:dgBroadPhaseCollision.obj + 0001:000324c0 ?RayCast@dgSortArray@@QBEMMABUdgLineBox@@P6AMPBVdgBody@@ABVdgVector@@HPAXM@ZP6AI1PBVdgCollision@@3@Z3@Z 100334c0 f physics_2009:dgBroadPhaseCollision.obj + 0001:00032530 ?UpdateAutoPair@dgBroadPhaseCell@@AAEXPAVdgWorld@@H@Z 10033530 f physics_2009:dgBroadPhaseCollision.obj + 0001:00032690 ?UpdatePairs@dgBroadPhaseCollision@@ABEXPAVdgBody@@PAVdgListNode@?$dgList@VdgSortArrayEntry@@@@HH@Z 10033690 f physics_2009:dgBroadPhaseCollision.obj + 0001:00032780 ?UpdatePairs@dgBroadPhaseCollision@@ABEXAAVdgBroadPhaseCell@@0H@Z 10033780 f physics_2009:dgBroadPhaseCollision.obj + 0001:00032800 ?ThreadExecute@dgBroadPhaseCellPairsWorkerThread@@UAEXXZ 10033800 f physics_2009:dgBroadPhaseCollision.obj + 0001:000328c0 ?UpdateContactsBroadPhaseEnd@dgBroadPhaseCollision@@AAEXM@Z 100338c0 f physics_2009:dgBroadPhaseCollision.obj + 0001:00032960 ?Append@?$dgList@VdgSortArrayEntry@@@@QAEPAVdgListNode@1@XZ 10033960 f i physics_2009:dgBroadPhaseCollision.obj + 0001:000329e0 ?InsertAfter@?$dgList@VdgSortArrayEntry@@@@QAEXPAVdgListNode@1@0@Z 100339e0 f i physics_2009:dgBroadPhaseCollision.obj + 0001:00032a50 ?InsertBefore@?$dgList@VdgSortArrayEntry@@@@QAEXPAVdgListNode@1@0@Z 10033a50 f i physics_2009:dgBroadPhaseCollision.obj + 0001:00032ac0 ?RemoveAll@?$dgList@VdgSortArrayEntry@@@@QAEXXZ 10033ac0 f i physics_2009:dgBroadPhaseCollision.obj + 0001:00032ac0 ?RemoveAll@?$dgList@VdgBodyMasterListCell@@@@QAEXXZ 10033ac0 f i physics_2009:dgBodyMasterList.obj + 0001:00032b20 ?ApplyExtenalForces@dgBody@@AAEXMH@Z 10033b20 f i physics_2009:dgBroadPhaseCollision.obj + 0001:00032bc0 ?IsInEquelibrium@dgBody@@QBE_NXZ 10033bc0 f i physics_2009:dgBroadPhaseCollision.obj + 0001:00032da0 ?Add@dgSortArray@@QAEXPAVdgBody@@@Z 10033da0 f physics_2009:dgBroadPhaseCollision.obj + 0001:00032e50 ?UpdatePoisition@dgSortArray@@QAEXPAVdgBody@@@Z 10033e50 f physics_2009:dgBroadPhaseCollision.obj + 0001:00032fa0 ?Add@dgBroadPhaseCell@@AAEXPAVdgBody@@@Z 10033fa0 f physics_2009:dgBroadPhaseCollision.obj + 0001:00032fe0 ?UpdatePoisition@dgBroadPhaseCell@@AAEXPAVdgBody@@@Z 10033fe0 f physics_2009:dgBroadPhaseCollision.obj + 0001:00033010 ?ForEachBodyInAABB@dgBroadPhaseCollision@@QBEXABVdgVector@@0P6AXPAVdgBody@@@Z@Z 10034010 f physics_2009:dgBroadPhaseCollision.obj + 0001:00033310 ?ConvexCast@dgBroadPhaseCollision@@QBEHPAVdgCollision@@ABVdgMatrix@@ABVdgVector@@AAMP6AIPBVdgBody@@PBV2@PAX@Z6QAVdgConvexCastReturnInfo@@HH@Z 10034310 f physics_2009:dgBroadPhaseCollision.obj + 0001:00033a30 ?ThreadExecute@dgBroadPhaseApplyExternalForce@@UAEXXZ 10034a30 f physics_2009:dgBroadPhaseCollision.obj + 0001:00033c90 ?Remove@?$dgList@VdgSortArrayEntry@@@@QAEXPAVdgListNode@1@@Z 10034c90 f i physics_2009:dgBroadPhaseCollision.obj + 0001:00033c90 ?Remove@?$dgList@VdgBodyMasterListCell@@@@QAEXPAVdgListNode@1@@Z 10034c90 f i physics_2009:dgBodyMasterList.obj + 0001:00033ce0 ?Remove@dgBroadPhaseCell@@AAEXPAVdgBody@@@Z 10034ce0 f physics_2009:dgBroadPhaseCollision.obj + 0001:00033d60 ??0dgBroadPhaseCollision@@AAE@XZ 10034d60 f physics_2009:dgBroadPhaseCollision.obj + 0001:00034070 ??1dgBroadPhaseCollision@@AAE@XZ 10035070 f physics_2009:dgBroadPhaseCollision.obj + 0001:00034140 ?Remove@dgBroadPhaseCollision@@AAEXPAVdgBody@@@Z 10035140 f physics_2009:dgBroadPhaseCollision.obj + 0001:000341a0 ?UpdateContactsBroadPhaseBegin@dgBroadPhaseCollision@@AAEXM_N@Z 100351a0 f physics_2009:dgBroadPhaseCollision.obj + 0001:000348e0 ?UpdateContactsSimd@dgBroadPhaseCollision@@AAEXM_N@Z 100358e0 f physics_2009:dgBroadPhaseCollision.obj + 0001:00034b20 ?UpdateContacts@dgBroadPhaseCollision@@AAEXM_N@Z 10035b20 f physics_2009:dgBroadPhaseCollision.obj + 0001:00034d50 ?RayCast@dgBroadPhaseCollision@@QBEXABVdgVector@@0P6AMPBVdgBody@@0HPAXM@ZP6AI1PBVdgCollision@@2@Z2@Z 10035d50 f physics_2009:dgBroadPhaseCollision.obj + 0001:00035540 ?Insert@?$dgTree@VdgBroadPhaseCell@@I@@QAEPAVdgTreeNode@1@ABVdgBroadPhaseCell@@IAA_N@Z 10036540 f i physics_2009:dgBroadPhaseCollision.obj + 0001:00035610 ?FindCreate@dgBroadPhaseLayer@@AAEPAVdgBroadPhaseCell@@HH@Z 10036610 f physics_2009:dgBroadPhaseCollision.obj + 0001:00035710 ?Add@dgBroadPhaseCollision@@AAEXPAVdgBody@@@Z 10036710 f physics_2009:dgBroadPhaseCollision.obj + 0001:00035760 ?UpdateBodyBroadphase@dgBroadPhaseCollision@@AAEXPAVdgBody@@H@Z 10036760 f physics_2009:dgBroadPhaseCollision.obj + 0001:00035c10 ?SetWorldSize@dgBroadPhaseCollision@@QAEXABVdgVector@@0@Z 10036c10 f physics_2009:dgBroadPhaseCollision.obj + 0001:00035ff0 ?Init@dgBroadPhaseCollision@@AAEXPAVdgWorld@@@Z 10036ff0 f physics_2009:dgBroadPhaseCollision.obj + 0001:00036060 ??0dgCollisionConvexHull@@QAE@PAVdgWorld@@P6AXPAX1I@Z1@Z 10037060 f physics_2009:dgCollisionConvexHull.obj + 0001:000361e0 ?Serialize@dgCollisionConvexHull@@EBEXP6AXPAXPBXI@Z0@Z 100371e0 f physics_2009:dgCollisionConvexHull.obj + 0001:00036310 ?PlaneSplite@dgCollisionConvexHull@@EBEXABVdgPlane@@PAPAV1@1@Z 10037310 f physics_2009:dgCollisionConvexHull.obj + 0001:00036310 ?PlaneSplite@dgCollisionBox@@MBEXABVdgPlane@@PAPAVdgCollisionConvexHull@@1@Z 10037310 f physics_2009:dgCollisionBox.obj + 0001:00036320 ??_EdgCollisionConvexHull@@UAEPAXI@Z 10037320 f i physics_2009:dgCollisionConvexHull.obj + 0001:00036320 ??_GdgCollisionConvexHull@@UAEPAXI@Z 10037320 f i physics_2009:dgCollisionConvexHull.obj + 0001:00036360 ?BruteForceSupportVertex@dgCollisionConvexHull@@ABEHHPAVdgVector@@ABV2@@Z 10037360 f physics_2009:dgCollisionConvexHull.obj + 0001:000364b0 ?DebugCollision@dgCollisionConvexHull@@EBEXABVdgMatrix@@P6AXPAXHPBMH@Z1@Z 100374b0 f physics_2009:dgCollisionConvexHull.obj + 0001:000365a0 ?FaceNormal@dgCollisionConvexHull@@ABE?AVdgVector@@PBVdgEdge@@PBV2@@Z 100375a0 f physics_2009:dgCollisionConvexHull.obj + 0001:000367e0 ?RemoveCoplanarEdge@dgCollisionConvexHull@@ABE_NAAVdgPolyhedra@@QAVdgVector@@@Z 100377e0 f physics_2009:dgCollisionConvexHull.obj + 0001:00036d80 ?OOBBTest@dgCollisionConvexHull@@EBE_NABVdgMatrix@@QBVdgConvexCollision@@PAX@Z 10037d80 f physics_2009:dgCollisionConvexHull.obj + 0001:00037270 ?Insert@?$dgTree@PAVdgConstraint@@PAV1@@@QAEPAVdgTreeNode@1@ABQAVdgConstraint@@PAV3@AA_N@Z 10038270 f i Newton.obj + 0001:00037270 ?Insert@?$dgTree@PAVdgEdge@@PAX@@QAEPAVdgTreeNode@1@ABQAVdgEdge@@PAXAA_N@Z 10038270 f i physics_2009:dgCollisionConvexHull.obj + 0001:00037270 ?Insert@?$dgTree@PAVdgConstraint@@PAX@@QAEPAVdgTreeNode@1@ABQAVdgConstraint@@PAXAA_N@Z 10038270 f i NewtonClass.obj + 0001:00037270 ?Insert@?$dgTree@PAVdgCollision@@I@@QAEPAVdgTreeNode@1@ABQAVdgCollision@@IAA_N@Z 10038270 f i physics_2009:dgNarrowPhaseCollision.obj + 0001:00037270 ?Insert@?$dgTree@PAVdgBody@@PAX@@QAEPAVdgTreeNode@1@ABQAVdgBody@@PAXAA_N@Z 10038270 f i NewtonClass.obj + 0001:00037340 ?Create@dgCollisionConvexHull@@AAE_NHHPBMM@Z 10038340 f physics_2009:dgCollisionConvexHull.obj + 0001:00038d50 ??0dgCollisionConvexHull@@QAE@IHHMPBMABVdgMatrix@@@Z 10039d50 f physics_2009:dgCollisionConvexHull.obj + 0001:00039130 ??0dgUserConstraint@@IAE@PAVdgWorld@@PAVdgBody@@1H@Z 1003a130 f physics_2009:dgUserConstraint.obj + 0001:00039190 ??1dgUserConstraint@@MAE@XZ 1003a190 f physics_2009:dgUserConstraint.obj + 0001:000391a0 ?GetInfo@dgUserConstraint@@MBEXPAVdgConstraintInfo@@@Z 1003a1a0 f physics_2009:dgUserConstraint.obj + 0001:000391b0 ??_EdgUserConstraint@@MAEPAXI@Z 1003a1b0 f i physics_2009:dgUserConstraint.obj + 0001:000391b0 ??_GdgUserConstraint@@MAEPAXI@Z 1003a1b0 f i physics_2009:dgUserConstraint.obj + 0001:000391e0 ?GetStiffness@dgConstraint@@UBEMXZ 1003a1e0 f i physics_2009:dgBilateralConstraint.obj + 0001:000391f0 ?SetUserData@dgCollision@@UAEXPAX@Z 1003a1f0 f i physics_2009:dgCollision.obj + 0001:000391f0 ?JointVelocityCorrection@dgContact@@EAEXABVdgJointAccelerationDecriptor@@@Z 1003a1f0 f i physics_2009:dgContact.obj + 0001:000391f0 ?Remove@dgBilateralConstraint@@MAEXPAVdgWorld@@@Z 1003a1f0 f i NewtonClass.obj + 0001:000391f0 ?GetCollisionInfo@dgCollisionMesh@@EBEXPAVdgCollisionInfo@@@Z 1003a1f0 f i physics_2009:dgCollisionMesh.obj + 0001:000391f0 ?SetDestructorCallback@dgContact@@EAEXP6AXAAVdgConstraint@@@Z@Z 1003a1f0 f i physics_2009:dgContact.obj + 0001:000391f0 ?JointVelocityCorrection@dgBilateralConstraint@@MAEXABVdgJointAccelerationDecriptor@@@Z 1003a1f0 f i physics_2009:dgBilateralConstraint.obj + 0001:000391f0 ?GetInfo@dgConstraint@@UBEXPAVdgConstraintInfo@@@Z 1003a1f0 f i physics_2009:dgConstraint.obj + 0001:000391f0 ?SetStiffness@dgConstraint@@UAEXM@Z 1003a1f0 f i physics_2009:dgBilateralConstraint.obj + 0001:000391f0 ?SetAsTriggerVolume@dgCollision@@UAEX_N@Z 1003a1f0 f i physics_2009:dgCollisionMesh.obj + 0001:000391f0 ?ModifierSetMatrix@dgCollision@@UAEXABVdgMatrix@@@Z 1003a1f0 f i physics_2009:dgWorld.obj + 0001:00039200 ??1dgBilateralConstraint@@MAE@XZ 1003a200 f physics_2009:dgBilateralConstraint.obj + 0001:00039230 ?IsBilateral@dgBilateralConstraint@@MBE_NXZ 1003a230 f physics_2009:dgBilateralConstraint.obj + 0001:00039240 ?GetStiffness@dgBilateralConstraint@@MBEMXZ 1003a240 f physics_2009:dgBilateralConstraint.obj + 0001:00039260 ?SetDestructorCallback@dgBilateralConstraint@@UAEXP6AXAAVdgConstraint@@@Z@Z 1003a260 f physics_2009:dgBilateralConstraint.obj + 0001:00039270 ?SetMotorAcceleration@dgBilateralConstraint@@IAEXHMAAVdgContraintDescritor@@@Z 1003a270 f physics_2009:dgBilateralConstraint.obj + 0001:000392b0 ??_EdgConstraint@@MAEPAXI@Z 1003a2b0 f i physics_2009:dgBilateralConstraint.obj + 0001:000392b0 ??_GdgConstraint@@MAEPAXI@Z 1003a2b0 f i physics_2009:dgBilateralConstraint.obj + 0001:000392d0 ??_EdgBilateralConstraint@@MAEPAXI@Z 1003a2d0 f i physics_2009:dgBilateralConstraint.obj + 0001:000392d0 ??_GdgBilateralConstraint@@MAEPAXI@Z 1003a2d0 f i physics_2009:dgBilateralConstraint.obj + 0001:00039310 ?SetStiffness@dgBilateralConstraint@@MAEXM@Z 1003a310 f physics_2009:dgBilateralConstraint.obj + 0001:00039360 ?SetJacobianDerivative@dgBilateralConstraint@@IAEXHAAVdgContraintDescritor@@PBM1PAM@Z 1003a360 f physics_2009:dgBilateralConstraint.obj + 0001:00039420 ?CalculatePointDerivative@dgBilateralConstraint@@IAEXHAAVdgContraintDescritor@@ABVdgVector@@ABVdgPointParam@dgConstraint@@PAM@Z 1003a420 f physics_2009:dgBilateralConstraint.obj + 0001:000396d0 ??0dgBilateralConstraint@@IAE@XZ 1003a6d0 f physics_2009:dgBilateralConstraint.obj + 0001:00039780 ?CalculateMatrixOffset@dgBilateralConstraint@@IAEXABVdgVector@@0AAVdgMatrix@@1@Z 1003a780 f physics_2009:dgBilateralConstraint.obj + 0001:00039d00 ?SetPivotAndPinDir@dgBilateralConstraint@@IAEXABVdgVector@@0@Z 1003ad00 f physics_2009:dgBilateralConstraint.obj + 0001:00039d20 ?SetPivotAndPinDir@dgBilateralConstraint@@IAEXABVdgVector@@00@Z 1003ad20 f physics_2009:dgBilateralConstraint.obj + 0001:0003a1e0 ?CalculateGlobalMatrixAndAngle@dgBilateralConstraint@@IBE?AVdgVector@@AAVdgMatrix@@0@Z 1003b1e0 f physics_2009:dgBilateralConstraint.obj + 0001:0003a3d0 ?CalculateSpringDamperAcceleration@dgBilateralConstraint@@IAEMHABVdgContraintDescritor@@MABVdgVector@@1MM@Z 1003b3d0 f physics_2009:dgBilateralConstraint.obj + 0001:0003a5f0 ?CalculateAngularDerivative@dgBilateralConstraint@@IAEXHAAVdgContraintDescritor@@ABVdgVector@@MMPAM@Z 1003b5f0 f physics_2009:dgBilateralConstraint.obj + 0001:0003a7a0 ?JointAccelerationsSimd@dgBilateralConstraint@@MAEXABVdgJointAccelerationDecriptor@@@Z 1003b7a0 f physics_2009:dgBilateralConstraint.obj + 0001:0003a7a0 ?JointAccelerations@dgBilateralConstraint@@MAEXABVdgJointAccelerationDecriptor@@@Z 1003b7a0 f physics_2009:dgBilateralConstraint.obj + 0001:0003aa00 ??1dgCollisionSphere@@UAE@XZ 1003ba00 f physics_2009:dgCollisionSphere.obj + 0001:0003aa20 ?CalculateSignature@dgCollisionSphere@@MBEHXZ 1003ba20 f physics_2009:dgCollisionSphere.obj + 0001:0003aa90 ?GetCollisionInfo@dgCollisionSphere@@MBEXPAVdgCollisionInfo@@@Z 1003ba90 f physics_2009:dgCollisionSphere.obj + 0001:0003aae0 ??_GdgCollisionSphere@@UAEPAXI@Z 1003bae0 f i physics_2009:dgCollisionSphere.obj + 0001:0003aae0 ??_EdgCollisionSphere@@UAEPAXI@Z 1003bae0 f i physics_2009:dgCollisionSphere.obj + 0001:0003ab20 ?SupportVertex@dgCollisionSphere@@MBE?AVdgVector@@ABV2@@Z 1003bb20 f physics_2009:dgCollisionSphere.obj + 0001:0003ab20 ?SupportVertexSimd@dgCollisionSphere@@MBE?AVdgVector@@ABV2@@Z 1003bb20 f physics_2009:dgCollisionSphere.obj + 0001:0003ab80 ?CalcAABB@dgCollisionSphere@@MBEXABVdgMatrix@@AAVdgVector@@1@Z 1003bb80 f physics_2009:dgCollisionSphere.obj + 0001:0003abe0 ?CalculatePlaneIntersection@dgCollisionSphere@@MBEHABVdgVector@@0QAV2@@Z 1003bbe0 f physics_2009:dgCollisionSphere.obj + 0001:0003abe0 ?CalculatePlaneIntersectionSimd@dgCollisionSphere@@MBEHABVdgVector@@0QAV2@@Z 1003bbe0 f physics_2009:dgCollisionSphere.obj + 0001:0003ac60 ?TesselateTriangle@dgCollisionSphere@@IBEXHABVdgVector@@00AAHPAV2@@Z 1003bc60 f physics_2009:dgCollisionSphere.obj + 0001:0003afd0 ?DebugCollision@dgCollisionSphere@@MBEXABVdgMatrix@@P6AXPAXHPBMH@Z1@Z 1003bfd0 f physics_2009:dgCollisionSphere.obj + 0001:0003b280 ?RayCast@dgCollisionSphere@@MBEMABVdgVector@@0AAVdgContactPoint@@P6AIPBVdgBody@@PBVdgCollision@@PAX@Z24@Z 1003c280 f physics_2009:dgCollisionSphere.obj + 0001:0003b500 ?CalculateMassProperties@dgCollisionSphere@@MBEMAAVdgVector@@00@Z 1003c500 f physics_2009:dgCollisionSphere.obj + 0001:0003b630 ?Serialize@dgCollisionSphere@@MBEXP6AXPAXPBXI@Z0@Z 1003c630 f physics_2009:dgCollisionSphere.obj + 0001:0003b690 ?Init@dgCollisionSphere@@IAEXM@Z 1003c690 f physics_2009:dgCollisionSphere.obj + 0001:0003ba80 ??0dgCollisionSphere@@QAE@IMABVdgMatrix@@@Z 1003ca80 f physics_2009:dgCollisionSphere.obj + 0001:0003bac0 ??0dgCollisionSphere@@QAE@PAVdgWorld@@P6AXPAX1I@Z1@Z 1003cac0 f physics_2009:dgCollisionSphere.obj + 0001:0003bb10 ?MassProperties@dgConvexMassData@@QAEMAAVdgVector@@00@Z 1003cb10 f i physics_2009:dgConvexCollision.obj + 0001:0003bbf0 ??1dgConvexCollision@@MAE@XZ 1003cbf0 f physics_2009:dgConvexCollision.obj + 0001:0003bc30 ?SerializeLow@dgConvexCollision@@MBEXP6AXPAXPBXI@Z0@Z 1003cc30 f physics_2009:dgConvexCollision.obj + 0001:0003bc70 ?GetUserData@dgConvexCollision@@MBEPAXXZ 1003cc70 f physics_2009:dgConvexCollision.obj + 0001:0003bc80 ?SetUserData@dgConvexCollision@@MAEXPAX@Z 1003cc80 f physics_2009:dgConvexCollision.obj + 0001:0003bc90 ?GetVolume@dgConvexCollision@@EBEMXZ 1003cc90 f physics_2009:dgConvexCollision.obj + 0001:0003bca0 ?GetBoxMinRadius@dgConvexCollision@@EBEMXZ 1003cca0 f physics_2009:dgConvexCollision.obj + 0001:0003bcb0 ?GetBoxMaxRadius@dgConvexCollision@@EBEMXZ 1003ccb0 f physics_2009:dgConvexCollision.obj + 0001:0003bcc0 ?IsTriggerVolume@dgConvexCollision@@UBE_NXZ 1003ccc0 f physics_2009:dgConvexCollision.obj + 0001:0003bcd0 ?SetAsTriggerVolume@dgConvexCollision@@MAEX_N@Z 1003ccd0 f physics_2009:dgConvexCollision.obj + 0001:0003bcf0 ?Push@?$dgUpHeap@HM@@QAEXAAHM@Z 1003ccf0 f i physics_2009:dgConvexCollision.obj + 0001:0003bcf0 ?Push@?$dgUpHeap@PAUdgPerimenterEdge@dgContactSolver@@M@@QAEXAAPAUdgPerimenterEdge@dgContactSolver@@M@Z 1003ccf0 f i physics_2009:dgMinkowskiConv.obj + 0001:0003bd40 ??_EdgConvexCollision@@MAEPAXI@Z 1003cd40 f i physics_2009:dgConvexCollision.obj + 0001:0003bd40 ??_GdgConvexCollision@@MAEPAXI@Z 1003cd40 f i physics_2009:dgConvexCollision.obj + 0001:0003bd90 ?GetDiscretedAngleStep@dgConvexCollision@@IBEMM@Z 1003cd90 f physics_2009:dgConvexCollision.obj + 0001:0003be00 ?GetSupportEdge@dgConvexCollision@@IBEPAVdgConvexSimplexEdge@@ABVdgVector@@@Z 1003ce00 f physics_2009:dgConvexCollision.obj + 0001:0003be90 ?RayHitBox@dgConvexCollision@@ABE_NABVdgVector@@0@Z 1003ce90 f physics_2009:dgConvexCollision.obj + 0001:0003c060 ?AddCg@dgConvexMassData@@QAEXHPBVdgVector@@@Z 1003d060 f i physics_2009:dgConvexCollision.obj + 0001:0003c230 ?AddInertia@dgConvexMassData@@QAEXHPBM@Z 1003d230 f i physics_2009:dgConvexCollision.obj + 0001:0003c520 ??0dgConvexCollision@@IAE@IABVdgMatrix@@W4dgCollisionID@@@Z 1003d520 f physics_2009:dgConvexCollision.obj + 0001:0003c620 ??0dgConvexCollision@@IAE@PAVdgWorld@@P6AXPAX1I@Z1@Z 1003d620 f physics_2009:dgConvexCollision.obj + 0001:0003c700 ?SetVolumeAndCG@dgConvexCollision@@IAEXXZ 1003d700 f physics_2009:dgConvexCollision.obj + 0001:0003cba0 ?DebugCollision@dgConvexCollision@@MBEXABVdgMatrix@@P6AXPAXHPBMH@Z1@Z 1003dba0 f physics_2009:dgConvexCollision.obj + 0001:0003ccc0 ?CalcAABB@dgConvexCollision@@UBEXABVdgMatrix@@AAVdgVector@@1@Z 1003dcc0 f physics_2009:dgConvexCollision.obj + 0001:0003cee0 ?CalcAABBSimD@dgConvexCollision@@UBEXABVdgMatrix@@AAVdgVector@@1@Z 1003dee0 f physics_2009:dgConvexCollision.obj + 0001:0003cf80 ?CalculateInertia@dgConvexCollision@@CAXPAXHPBMH@Z 1003df80 f physics_2009:dgConvexCollision.obj + 0001:0003cfa0 ?CalculateMassProperties@dgConvexCollision@@MBEMAAVdgVector@@00@Z 1003dfa0 f physics_2009:dgConvexCollision.obj + 0001:0003d010 ?CalculateInertia@dgConvexCollision@@EBEXAAVdgVector@@0@Z 1003e010 f physics_2009:dgConvexCollision.obj + 0001:0003d160 ?RayCastClosestFace@dgConvexCollision@@ABEHPAVdgVector@@ABV2@AAM@Z 1003e160 f physics_2009:dgConvexCollision.obj + 0001:0003d890 ?CalculateVolumeIntegral@dgConvexCollision@@IBE?AVdgVector@@ABVdgPlane@@@Z 1003e890 f physics_2009:dgConvexCollision.obj + 0001:0003dfc0 ?SupportVertex@dgConvexCollision@@UBE?AVdgVector@@ABV2@@Z 1003efc0 f physics_2009:dgConvexCollision.obj + 0001:0003e230 ?SupportVertexSimd@dgConvexCollision@@UBE?AVdgVector@@ABV2@@Z 1003f230 f physics_2009:dgConvexCollision.obj + 0001:0003e3f0 ?SimplifyClipPolygon@dgConvexCollision@@ABEHHABVdgVector@@PAV2@@Z 1003f3f0 f physics_2009:dgConvexCollision.obj + 0001:0003e620 ?RectifyConvexSlice@dgConvexCollision@@IBEHHABVdgVector@@QAV2@@Z 1003f620 f physics_2009:dgConvexCollision.obj + 0001:0003ea20 ?CalculatePlaneIntersectionSimd@dgConvexCollision@@UBEHABVdgVector@@0QAV2@@Z 1003fa20 f physics_2009:dgConvexCollision.obj + 0001:0003ef10 ?CalculatePlaneIntersection@dgConvexCollision@@UBEHABVdgVector@@0QAV2@@Z 1003ff10 f physics_2009:dgConvexCollision.obj + 0001:0003f420 ?RayCast@dgConvexCollision@@UBEMABVdgVector@@0AAVdgContactPoint@@P6AIPBVdgBody@@PBVdgCollision@@PAX@Z24@Z 10040420 f physics_2009:dgConvexCollision.obj + 0001:000404c0 ?OOBBTest@dgConvexCollision@@UBE_NABVdgMatrix@@QBV1@PAX@Z 100414c0 f physics_2009:dgConvexCollision.obj + 0001:000406a0 ?CalculateVolumeIntegral@dgConvexCollision@@EBE?AVdgVector@@ABVdgMatrix@@P6AIPAX10AAVdgPlane@@@Z1@Z 100416a0 f physics_2009:dgConvexCollision.obj + 0001:00040840 ?FindConstraintLink@dgBodyMasterList@@QBEPAVdgListNode@?$dgList@VdgBodyMasterListCell@@@@PBVdgBody@@0@Z 10041840 f physics_2009:dgBodyMasterList.obj + 0001:00040870 ?FindConstraintLinkNext@dgBodyMasterList@@QBEPAVdgListNode@?$dgList@VdgBodyMasterListCell@@@@PBV23@PBVdgBody@@@Z 10041870 f physics_2009:dgBodyMasterList.obj + 0001:000408a0 ?Addtop@?$dgList@VdgBodyMasterListCell@@@@QAEPAVdgListNode@1@XZ 100418a0 f i physics_2009:dgBodyMasterList.obj + 0001:00040910 ?SortList@dgBodyMasterListRow@@QAEXXZ 10041910 f physics_2009:dgBodyMasterList.obj + 0001:00040a00 ?AttachConstraint@dgBodyMasterList@@QAEXPAVdgConstraint@@PAVdgBody@@1@Z 10041a00 f physics_2009:dgBodyMasterList.obj + 0001:00040ac0 ?SortMasterList@dgBodyMasterList@@QAEXXZ 10041ac0 f physics_2009:dgBodyMasterList.obj + 0001:00040c80 ?RemoveConstraint@dgBodyMasterList@@QAEXPAVdgConstraint@@@Z 10041c80 f physics_2009:dgBodyMasterList.obj + 0001:00040d20 ?Append@?$dgList@VdgBodyMasterListRow@@@@QAEPAVdgListNode@1@XZ 10041d20 f i physics_2009:dgBodyMasterList.obj + 0001:00040da0 ?RemoveAll@?$dgList@VdgBodyMasterListRow@@@@QAEXXZ 10041da0 f i physics_2009:dgBodyMasterList.obj + 0001:00040e00 ?AddBody@dgBodyMasterList@@QAEXPAVdgBody@@@Z 10041e00 f physics_2009:dgBodyMasterList.obj + 0001:00040e30 ?Remove@?$dgList@VdgBodyMasterListRow@@@@QAEXPAVdgListNode@1@@Z 10041e30 f i physics_2009:dgBodyMasterList.obj + 0001:00040e90 ??0dgBodyMasterList@@QAE@XZ 10041e90 f physics_2009:dgBodyMasterList.obj + 0001:00040ea0 ??1dgBodyMasterList@@QAE@XZ 10041ea0 f physics_2009:dgBodyMasterList.obj + 0001:00040eb0 ?RemoveBody@dgBodyMasterList@@QAEXPAVdgBody@@@Z 10041eb0 f physics_2009:dgBodyMasterList.obj + 0001:00040f00 ??0dgCollisionNull@@QAE@I@Z 10041f00 f physics_2009:dgCollisionNull.obj + 0001:00040f30 ??0dgCollisionNull@@QAE@PAVdgWorld@@P6AXPAX1I@Z1@Z 10041f30 f physics_2009:dgCollisionNull.obj + 0001:00040f60 ?Serialize@dgCollisionNull@@EBEXP6AXPAXPBXI@Z0@Z 10041f60 f physics_2009:dgCollisionNull.obj + 0001:00040f70 ?SetCollisionBBox@dgCompoundCollision@@EAEXABVdgVector@@0@Z 10041f70 f physics_2009:dgCompoundCollision.obj + 0001:00040f70 ?SetCollisionBBox@dgCollisionSphere@@MAEXABVdgVector@@0@Z 10041f70 f physics_2009:dgCollisionSphere.obj + 0001:00040f70 ?SetCollisionBBox@dgCollisionEllipse@@EAEXABVdgVector@@0@Z 10041f70 f physics_2009:dgCollisionEllipse.obj + 0001:00040f70 ?SetCollisionBBox@dgCollisionConvexModifier@@EAEXABVdgVector@@0@Z 10041f70 f physics_2009:dgCollisionConvexModifier.obj + 0001:00040f70 ?SetCollisionBBox@dgCollisionChamferCylinder@@MAEXABVdgVector@@0@Z 10041f70 f physics_2009:dgCollisionChamferCylinder.obj + 0001:00040f70 ?SetCollisionBBox@dgCollisionBox@@MAEXABVdgVector@@0@Z 10041f70 f physics_2009:dgCollisionBox.obj + 0001:00040f70 ?Serialize@dgCollisionMesh@@EBEXP6AXPAXPBXI@Z0@Z 10041f70 f physics_2009:dgCollisionMesh.obj + 0001:00040f70 ?SetCollisionBBox@dgCollisionConvexHull@@EAEXABVdgVector@@0@Z 10041f70 f physics_2009:dgCollisionConvexHull.obj + 0001:00040f70 ?SetCollisionBBox@dgCollisionNull@@EAEXABVdgVector@@0@Z 10041f70 f physics_2009:dgCollisionNull.obj + 0001:00040f70 ?SetCollisionBBox@dgCollisionCapsule@@EAEXABVdgVector@@0@Z 10041f70 f physics_2009:dgCollisionCapsule.obj + 0001:00040f70 ?GetAABB@dgPolygonSoupDatabase@@UBEXAAVdgVector@@0@Z 10041f70 f corelib_2009:dgAABBPolygonSoup.obj + 0001:00040f70 ?Serialize@dgCollisionConvexPolygon@dgCollisionMesh@@UBEXP6AXPAXPBXI@Z0@Z 10041f70 f physics_2009:dgCollisionMesh.obj + 0001:00040f70 ?SetCollisionBBox@dgCollisionConvexPolygon@dgCollisionMesh@@UAEXABVdgVector@@0@Z 10041f70 f physics_2009:dgCollisionMesh.obj + 0001:00040f70 ?SetCollisionBBox@dgCollisionCylinder@@EAEXABVdgVector@@0@Z 10041f70 f physics_2009:dgCollisionCylinder.obj + 0001:00040f70 ?Serialize@dgCollisionUserMesh@@EBEXP6AXPAXPBXI@Z0@Z 10041f70 f physics_2009:dgCollisionUserMesh.obj + 0001:00040f70 ?SetCollisionBBox@dgCollisionCone@@EAEXABVdgVector@@0@Z 10041f70 f physics_2009:dgCollisionCone.obj + 0001:00040f80 ?ForAllSectorsRayHit@dgPolygonSoupDatabase@@MBEXABVFastRayTest@@P6AMPAXQBMHQBHH@ZQAX@Z 10041f80 f corelib_2009:dgAABBPolygonSoup.obj + 0001:00040f80 ?DebugCollision@dgCollisionUserMesh@@EBEXABVdgMatrix@@P6AXPAXHPBMH@Z1@Z 10041f80 f physics_2009:dgCollisionUserMesh.obj + 0001:00040f80 ?DebugCollision@dgCollisionNull@@MBEXABVdgMatrix@@P6AXPAXHPBMH@Z1@Z 10041f80 f physics_2009:dgCollisionNull.obj + 0001:00040f80 ?DebugCollision@dgCollisionMesh@@EBEXABVdgMatrix@@P6AXPAXHPBMH@Z1@Z 10041f80 f physics_2009:dgCollisionMesh.obj + 0001:00040f80 ?SpliteAcrossPlane@dgConvexCollision@@IBEXABVdgPlane@@PAPAVdgCollisionConvexHull@@1@Z 10041f80 f physics_2009:dgConvexCollision.obj + 0001:00040f80 ?ForAllSectorsRayHitSimd@dgPolygonSoupDatabase@@MBEXABVFastRayTest@@P6AMPAXQBMHQBHH@ZQAX@Z 10041f80 f corelib_2009:dgAABBPolygonSoup.obj + 0001:00040f90 ?CalculateSignature@dgCollisionConvexHull@@EBEHXZ 10041f90 f physics_2009:dgCollisionConvexHull.obj + 0001:00040f90 ?CalculateSignature@dgCollisionNull@@EBEHXZ 10041f90 f physics_2009:dgCollisionNull.obj + 0001:00040fa0 ?RayCastSimd@dgCollisionNull@@MBEMABVdgVector@@0AAVdgContactPoint@@P6AIPBVdgBody@@PBVdgCollision@@PAX@Z24@Z 10041fa0 f physics_2009:dgCollisionNull.obj + 0001:00040fa0 ?RayCast@dgCollisionNull@@MBEMABVdgVector@@0AAVdgContactPoint@@P6AIPBVdgBody@@PBVdgCollision@@PAX@Z24@Z 10041fa0 f physics_2009:dgCollisionNull.obj + 0001:00040fb0 ??_GdgCollisionNull@@UAEPAXI@Z 10041fb0 f i physics_2009:dgCollisionNull.obj + 0001:00040fb0 ??_EdgCollisionNull@@UAEPAXI@Z 10041fb0 f i physics_2009:dgCollisionNull.obj + 0001:00040fe0 ?CalcAABB@dgCollisionNull@@MBEXABVdgMatrix@@AAVdgVector@@1@Z 10041fe0 f physics_2009:dgCollisionNull.obj + 0001:00041020 ?SupportVertex@dgCollisionScene@@EBE?AVdgVector@@ABV2@@Z 10042020 f physics_2009:dgCollisionScene.obj + 0001:00041020 ?SupportVertex@dgCollisionNull@@MBE?AVdgVector@@ABV2@@Z 10042020 f physics_2009:dgCollisionNull.obj + 0001:00041020 ?SupportVertex@dgCollisionPoint@@UBE?AVdgVector@@ABV2@@Z 10042020 f physics_2009:dgCollisionSphere.obj + 0001:00041020 ?SupportVertex@dgCollisionMesh@@EBE?AVdgVector@@ABV2@@Z 10042020 f physics_2009:dgCollisionMesh.obj + 0001:00041020 ?SupportVertexSimd@dgCollisionPoint@@UBE?AVdgVector@@ABV2@@Z 10042020 f physics_2009:dgCollisionSphere.obj + 0001:00041020 ?SupportVertexSimd@dgCollisionNull@@MBE?AVdgVector@@ABV2@@Z 10042020 f physics_2009:dgCollisionNull.obj + 0001:00041040 ?JointAccelerationsSimd@dgContact@@EAEXABVdgJointAccelerationDecriptor@@@Z 10042040 f physics_2009:dgContact.obj + 0001:00041240 ??0dgCollidingPairCollector@@QAE@XZ 10042240 f physics_2009:dgContact.obj + 0001:00041260 ?Init@dgCollidingPairCollector@@QAEXPAVdgWorld@@@Z 10042260 f physics_2009:dgContact.obj + 0001:00041290 ?SetCaches@dgCollidingPairCollector@@QAEXQAUdgThreadPairCache@1@@Z 10042290 f physics_2009:dgContact.obj + 0001:00041310 ?FlushChache@dgCollidingPairCollector@@QAEXQAUdgThreadPairCache@1@@Z 10042310 f physics_2009:dgContact.obj + 0001:000413f0 ?GetInfo@dgContact@@EBEXPAVdgConstraintInfo@@@Z 100423f0 f physics_2009:dgContact.obj + 0001:00041440 ?CalculatePointDerivative@dgContact@@ABEXHAAVdgContraintDescritor@@ABVdgVector@@ABVdgPointParam@dgConstraint@@@Z 10042440 f physics_2009:dgContact.obj + 0001:00041530 ?JointAccelerations@dgContact@@EAEXABVdgJointAccelerationDecriptor@@@Z 10042530 f physics_2009:dgContact.obj + 0001:000417e0 ?AddPair@dgCollidingPairCollector@@QAEXPAVdgBody@@0H@Z 100427e0 f physics_2009:dgContact.obj + 0001:00041a90 ?RemoveAll@?$dgList@VdgContactMaterial@@@@QAEXXZ 10042a90 f i physics_2009:dgContact.obj + 0001:00041b00 ??0dgContactMaterial@@QAE@XZ 10042b00 f physics_2009:dgContact.obj + 0001:00041b50 ?JacobianContactDerivative@dgContact@@AAEXAAVdgContraintDescritor@@ABVdgContactMaterial@@HAAH@Z 10042b50 f physics_2009:dgContact.obj + 0001:00041f40 ??0dgContact@@AAE@PAVdgWorld@@@Z 10042f40 f physics_2009:dgContact.obj + 0001:00041fe0 ?Remove@?$dgList@PAVdgContact@@@@QAEXPAVdgListNode@1@@Z 10042fe0 f i physics_2009:dgContact.obj + 0001:00042030 ?JacobianDerivative@dgContact@@EAEIAAVdgContraintDescritor@@@Z 10043030 f physics_2009:dgContact.obj + 0001:00042080 ??_EdgContact@@EAEPAXI@Z 10043080 f i physics_2009:dgContact.obj + 0001:00042080 ??_GdgContact@@EAEPAXI@Z 10043080 f i physics_2009:dgContact.obj + 0001:000420e0 ??0dgCollisionConvexModifier@@QAE@PAVdgConvexCollision@@PAVdgWorld@@@Z 100430e0 f physics_2009:dgCollisionConvexModifier.obj + 0001:00042170 ?ModifierGetMatrix@dgCollisionConvexModifier@@UBE?AVdgMatrix@@XZ 10043170 f physics_2009:dgCollisionConvexModifier.obj + 0001:00042190 ?GetBoxMinRadius@dgCollisionConvexModifier@@EBEMXZ 10043190 f physics_2009:dgCollisionConvexModifier.obj + 0001:000421a0 ?GetBoxMaxRadius@dgCollisionConvexModifier@@EBEMXZ 100431a0 f physics_2009:dgCollisionConvexModifier.obj + 0001:000421b0 ?CalculatePlaneIntersectionSimd@dgCollisionConvexModifier@@EBEHABVdgVector@@0QAV2@@Z 100431b0 f physics_2009:dgCollisionConvexModifier.obj + 0001:000421c0 ?DebugCollision@dgCollisionConvexModifier@@MBEXABVdgMatrix@@P6AXPAXHPBMH@Z1@Z 100431c0 f physics_2009:dgCollisionConvexModifier.obj + 0001:00042230 ?GetVolume@dgCollisionConvexModifier@@MBEMXZ 10043230 f physics_2009:dgCollisionConvexModifier.obj + 0001:00042250 ?GetCollisionInfo@dgCollisionConvexModifier@@EBEXPAVdgCollisionInfo@@@Z 10043250 f physics_2009:dgCollisionConvexModifier.obj + 0001:00042290 ?Serialize@dgCollisionConvexModifier@@EBEXP6AXPAXPBXI@Z0@Z 10043290 f physics_2009:dgCollisionConvexModifier.obj + 0001:000422d0 ??_GdgCollisionConvexModifier@@UAEPAXI@Z 100432d0 f i physics_2009:dgCollisionConvexModifier.obj + 0001:000422d0 ??_EdgCollisionConvexModifier@@UAEPAXI@Z 100432d0 f i physics_2009:dgCollisionConvexModifier.obj + 0001:00042320 ?ModifierSetMatrix@dgCollisionConvexModifier@@UAEXABVdgMatrix@@@Z 10043320 f physics_2009:dgCollisionConvexModifier.obj + 0001:000425b0 ??0dgCollisionConvexModifier@@QAE@PAVdgWorld@@P6AXPAX1I@Z1@Z 100435b0 f physics_2009:dgCollisionConvexModifier.obj + 0001:00042640 ?CalcAABB@dgCollisionConvexModifier@@MBEXABVdgMatrix@@AAVdgVector@@1@Z 10043640 f physics_2009:dgCollisionConvexModifier.obj + 0001:00042910 ?CalcAABBSimD@dgCollisionConvexModifier@@MBEXABVdgMatrix@@AAVdgVector@@1@Z 10043910 f physics_2009:dgCollisionConvexModifier.obj + 0001:00042bb0 ?SupportVertex@dgCollisionConvexModifier@@MBE?AVdgVector@@ABV2@@Z 10043bb0 f physics_2009:dgCollisionConvexModifier.obj + 0001:00042d50 ?SupportVertexSimd@dgCollisionConvexModifier@@MBE?AVdgVector@@ABV2@@Z 10043d50 f physics_2009:dgCollisionConvexModifier.obj + 0001:00042e90 ?CalculatePlaneIntersection@dgCollisionConvexModifier@@EBEHABVdgVector@@0QAV2@@Z 10043e90 f physics_2009:dgCollisionConvexModifier.obj + 0001:000433b0 ?RayCast@dgCollisionConvexModifier@@MBEMABVdgVector@@0AAVdgContactPoint@@P6AIPBVdgBody@@PBVdgCollision@@PAX@Z24@Z 100443b0 f physics_2009:dgCollisionConvexModifier.obj + 0001:00043630 ?RayCastSimd@dgCollisionConvexModifier@@MBEMABVdgVector@@0AAVdgContactPoint@@P6AIPBVdgBody@@PBVdgCollision@@PAX@Z24@Z 10044630 f physics_2009:dgCollisionConvexModifier.obj + 0001:00043820 ?CalculateVolumeIntegral@dgCollisionConvexModifier@@MBE?AVdgVector@@ABVdgMatrix@@P6AIPAX10AAVdgPlane@@@Z1@Z 10044820 f physics_2009:dgCollisionConvexModifier.obj + 0001:00043ca0 ??1dgCompoundCollision@@UAE@XZ 10044ca0 f physics_2009:dgCompoundCollision.obj + 0001:00043cf0 ?GetUserData@dgCollisionMesh@@UBEPAXXZ 10044cf0 f physics_2009:dgCollisionMesh.obj + 0001:00043cf0 ?CalculateSignature@dgCompoundCollision@@EBEHXZ 10044cf0 f physics_2009:dgCompoundCollision.obj + 0001:00043cf0 ?CalculateSignature@dgCollisionConvexModifier@@EBEHXZ 10044cf0 f physics_2009:dgCollisionConvexModifier.obj + 0001:00043cf0 ?CalculateSignature@dgCollisionMesh@@EBEHXZ 10044cf0 f physics_2009:dgCollisionMesh.obj + 0001:00043cf0 ?CalculateSignature@dgCollisionScene@@EBEHXZ 10044cf0 f physics_2009:dgCollisionScene.obj + 0001:00043cf0 ?GetPerformanceCount@dgWorld@@CAIXZ 10044cf0 f physics_2009:dgWorld.obj + 0001:00043cf0 ?GetUserData@dgCollision@@UBEPAXXZ 10044cf0 f physics_2009:dgCollision.obj + 0001:00043d00 ?DebugCollision@dgCompoundCollision@@MBEXABVdgMatrix@@P6AXPAXHPBMH@Z1@Z 10044d00 f physics_2009:dgCompoundCollision.obj + 0001:00043d40 ?GetVolume@dgCompoundCollision@@MBEMXZ 10044d40 f physics_2009:dgCompoundCollision.obj + 0001:00043d80 ?GetBoxMinRadius@dgCompoundCollision@@MBEMXZ 10044d80 f physics_2009:dgCompoundCollision.obj + 0001:00043d90 ?GetBoxMaxRadius@dgCompoundCollision@@MBEMXZ 10044d90 f physics_2009:dgCompoundCollision.obj + 0001:00043da0 ?GetCollisionInfo@dgCompoundCollision@@EBEXPAVdgCollisionInfo@@@Z 10044da0 f physics_2009:dgCompoundCollision.obj + 0001:00043de0 ?Serialize@dgCompoundCollision@@EBEXP6AXPAXPBXI@Z0@Z 10044de0 f physics_2009:dgCompoundCollision.obj + 0001:00043e50 ??_GdgCompoundCollision@@UAEPAXI@Z 10044e50 f i physics_2009:dgCompoundCollision.obj + 0001:00043e50 ??_EdgCompoundCollision@@UAEPAXI@Z 10044e50 f i physics_2009:dgCompoundCollision.obj + 0001:00043e70 ?CalcAABB@dgCompoundCollision@@MBEXABVdgMatrix@@AAVdgVector@@1@Z 10044e70 f physics_2009:dgCompoundCollision.obj + 0001:000440b0 ?Init@dgCompoundCollision@@IAEXHQBQAVdgConvexCollision@@PAVdgWorld@@@Z 100450b0 f physics_2009:dgCompoundCollision.obj + 0001:00044210 ?CalcAABBSimD@dgCompoundCollision@@MBEXABVdgMatrix@@AAVdgVector@@1@Z 10045210 f physics_2009:dgCompoundCollision.obj + 0001:00044510 ?RayCastSimd@dgCompoundCollision@@MBEMABVdgVector@@0AAVdgContactPoint@@P6AIPBVdgBody@@PBVdgCollision@@PAX@Z24@Z 10045510 f physics_2009:dgCompoundCollision.obj + 0001:00044790 ?CalculateVolumeIntegral@dgCompoundCollision@@MBE?AVdgVector@@ABVdgMatrix@@P6AIPAX10AAVdgPlane@@@Z1@Z 10045790 f physics_2009:dgCompoundCollision.obj + 0001:00044860 ?CalculateInertia@dgCompoundCollision@@MBEXAAVdgVector@@0@Z 10045860 f physics_2009:dgCompoundCollision.obj + 0001:00044a00 ?SupportVertex@dgCompoundCollision@@MBE?AVdgVector@@ABV2@@Z 10045a00 f physics_2009:dgCompoundCollision.obj + 0001:00044b90 ??0dgCompoundCollision@@QAE@HQBQAVdgConvexCollision@@PAVdgWorld@@@Z 10045b90 f physics_2009:dgCompoundCollision.obj + 0001:00044bd0 ??0dgCompoundCollision@@QAE@PAVdgWorld@@P6AXPAX1I@Z1@Z 10045bd0 f physics_2009:dgCompoundCollision.obj + 0001:00044c80 ?RayCast@dgCompoundCollision@@MBEMABVdgVector@@0AAVdgContactPoint@@P6AIPBVdgBody@@PBVdgCollision@@PAX@Z24@Z 10045c80 f physics_2009:dgCompoundCollision.obj + 0001:00044f30 ??0dgCollisionUserMesh@@QAE@ABVdgVector@@0ABVdgUserMeshCreation@@@Z 10045f30 f physics_2009:dgCollisionUserMesh.obj + 0001:00044fa0 ?GetCollisionInfo@dgCollisionUserMesh@@EBEXPAVdgCollisionInfo@@@Z 10045fa0 f physics_2009:dgCollisionUserMesh.obj + 0001:00044fe0 ?GetCollidingFaces@dgCollisionUserMesh@@EBEXQAVdgPolygonMeshDesc@@@Z 10045fe0 f physics_2009:dgCollisionUserMesh.obj + 0001:00045010 ??_EdgCollisionUserMesh@@UAEPAXI@Z 10046010 f i physics_2009:dgCollisionUserMesh.obj + 0001:00045010 ??_GdgCollisionUserMesh@@UAEPAXI@Z 10046010 f i physics_2009:dgCollisionUserMesh.obj + 0001:00045050 ?RayCast@dgCollisionUserMesh@@EBEMABVdgVector@@0AAVdgContactPoint@@P6AIPBVdgBody@@PBVdgCollision@@PAX@Z24@Z 10046050 f physics_2009:dgCollisionUserMesh.obj + 0001:000451a0 ??1dgCollisionHeightField@@UAE@XZ 100461a0 f physics_2009:dgCollisionHeightField.obj + 0001:00045200 ?Serialize@dgCollisionHeightField@@EBEXP6AXPAXPBXI@Z0@Z 10046200 f physics_2009:dgCollisionHeightField.obj + 0001:000452b0 ?GetCollisionInfo@dgCollisionHeightField@@EBEXPAVdgCollisionInfo@@@Z 100462b0 f physics_2009:dgCollisionHeightField.obj + 0001:00045320 ?GetCollidingFacesSimd@dgCollisionUserMesh@@EBEXQAVdgPolygonMeshDesc@@@Z 10046320 f physics_2009:dgCollisionUserMesh.obj + 0001:00045320 ?GetCollidingFacesSimd@dgCollisionHeightField@@EBEXQAVdgPolygonMeshDesc@@@Z 10046320 f physics_2009:dgCollisionHeightField.obj + 0001:00045330 ??_GdgCollisionHeightField@@UAEPAXI@Z 10046330 f i physics_2009:dgCollisionHeightField.obj + 0001:00045330 ??_EdgCollisionHeightField@@UAEPAXI@Z 10046330 f i physics_2009:dgCollisionHeightField.obj + 0001:00045350 ?CalculateMinExtend2d@dgCollisionHeightField@@ABEXABVdgVector@@0AAV2@1@Z 10046350 f physics_2009:dgCollisionHeightField.obj + 0001:000455b0 ?CalculateMinExtend3d@dgCollisionHeightField@@ABEXABVdgVector@@0AAV2@1@Z 100465b0 f physics_2009:dgCollisionHeightField.obj + 0001:00045760 ??0dgCollisionHeightField@@QAE@PAVdgWorld@@HHHPAGPADMM@Z 10046760 f physics_2009:dgCollisionHeightField.obj + 0001:000459e0 ??0dgCollisionHeightField@@QAE@PAVdgWorld@@P6AXPAX1I@Z1@Z 100469e0 f physics_2009:dgCollisionHeightField.obj + 0001:00045b80 ?RayCastCellSimd@dgCollisionHeightField@@ABEMABVFastRayTest@@HHAAVdgVector@@@Z 10046b80 f physics_2009:dgCollisionHeightField.obj + 0001:00046170 ?RayCastCell@dgCollisionHeightField@@ABEMABVFastRayTest@@HHAAVdgVector@@@Z 10047170 f physics_2009:dgCollisionHeightField.obj + 0001:00046760 ?RayCastSimd@dgCollisionHeightField@@EBEMABVdgVector@@0AAVdgContactPoint@@P6AIPBVdgBody@@PBVdgCollision@@PAX@Z24@Z 10047760 f physics_2009:dgCollisionHeightField.obj + 0001:00046c20 ?RayCast@dgCollisionHeightField@@EBEMABVdgVector@@0AAVdgContactPoint@@P6AIPBVdgBody@@PBVdgCollision@@PAX@Z24@Z 10047c20 f physics_2009:dgCollisionHeightField.obj + 0001:00046fd0 ?GetCollidingFaces@dgCollisionHeightField@@EBEXQAVdgPolygonMeshDesc@@@Z 10047fd0 f physics_2009:dgCollisionHeightField.obj + 0001:000489b0 ?DebugCollision@dgCollisionHeightField@@EBEXABVdgMatrix@@P6AXPAXHPBMH@Z1@Z 100499b0 f physics_2009:dgCollisionHeightField.obj + 0001:00048f90 ?CalcFacePlaneSimd@dgContactSolver@@AAE_NPAVdgMinkFace@1@@Z 10049f90 f i physics_2009:dgMinkowskiConv.obj + 0001:000490a0 ?Push@?$dgDownHeap@PAVdgMinkFace@dgContactSolver@@M@@QAEXAAPAVdgMinkFace@dgContactSolver@@M@Z 1004a0a0 f i physics_2009:dgMinkowskiConv.obj + 0001:000490a0 ?Push@?$dgDownHeap@PAVdgEdge@@M@@QAEXAAPAVdgEdge@@M@Z 1004a0a0 f i corelib_2009:dgPolyhedra.obj + 0001:000490f0 ?Pop@?$dgUpHeap@HM@@QAEXXZ 1004a0f0 f i physics_2009:dgConvexCollision.obj + 0001:000490f0 ?Pop@?$dgUpHeap@PAUdgPerimenterEdge@dgContactSolver@@M@@QAEXXZ 1004a0f0 f i physics_2009:dgMinkowskiConv.obj + 0001:00049170 ?Remove@?$dgUpHeap@PAUdgPerimenterEdge@dgContactSolver@@M@@QAEXH@Z 1004a170 f i physics_2009:dgMinkowskiConv.obj + 0001:00049200 ??G?$dgTemplateVector@N@@QBE?AV0@ABV0@@Z 1004a200 f i physics_2009:dgMinkowskiConv.obj + 0001:00049230 ??D?$dgTemplateVector@N@@QBE?AV0@ABV0@@Z 1004a230 f i physics_2009:dgMinkowskiConv.obj + 0001:00049270 ?CheckTetraHedronVolume@dgContactSolver@@ABE_NXZ 1004a270 f i physics_2009:dgMinkowskiConv.obj + 0001:00049380 ?CheckTetraHedronVolumeLarge@dgContactSolver@@ABE_NXZ 1004a380 f i physics_2009:dgMinkowskiConv.obj + 0001:00049420 ?FilterPolygonEdgeContacts@dgWorld@@ABEHHQAVdgContactPoint@@@Z 1004a420 f physics_2009:dgMinkowskiConv.obj + 0001:00049560 ?Scale@?$dgTemplateVector@N@@QBE?AV1@N@Z 1004a560 f i physics_2009:dgMinkowskiConv.obj + 0001:00049590 ??H?$dgTemplateVector@N@@QBE?AV0@ABV0@@Z 1004a590 f i physics_2009:dgMinkowskiConv.obj + 0001:000495c0 ?CalcSupportVertexSimd@dgContactSolver@@AAEXABVdgVector@@H@Z 1004a5c0 f i physics_2009:dgMinkowskiConv.obj + 0001:000496d0 ?CalcSupportVertex@dgContactSolver@@AAEXABVdgVector@@H@Z 1004a6d0 f i physics_2009:dgMinkowskiConv.obj + 0001:000498a0 ?CalcSupportVertexLarge@dgContactSolver@@AAEXABVdgVector@@H@Z 1004a8a0 f i physics_2009:dgMinkowskiConv.obj + 0001:00049a50 ?CalculateConvexShapeIntersectionLine@dgContactSolver@@ABEHABVdgMatrix@@ABVdgVector@@IMHQAV3@H2QAVdgContactPoint@@@Z 1004aa50 f i physics_2009:dgMinkowskiConv.obj + 0001:00049fd0 ?ReduceContacts@dgContactSolver@@ABEPAUdgPerimenterEdge@1@PAU21@H@Z 1004afd0 f i physics_2009:dgMinkowskiConv.obj + 0001:0004a1a0 ?CalculateConvexShapeIntersectionSimd@dgContactSolver@@ABEHABVdgMatrix@@ABVdgVector@@IMHQAV3@H2QAVdgContactPoint@@H@Z 1004b1a0 f i physics_2009:dgMinkowskiConv.obj + 0001:0004a6d0 ?CalculateConvexShapeIntersection@dgContactSolver@@ABEHABVdgMatrix@@ABVdgVector@@IMHQAV3@H2QAVdgContactPoint@@H@Z 1004b6d0 f i physics_2009:dgMinkowskiConv.obj + 0001:0004aee0 ?ReduceLine@dgContactSolver@@AAE?AVdgVector@@ABV2@@Z 1004bee0 f i physics_2009:dgMinkowskiConv.obj + 0001:0004b0d0 ?ReduceLineLarge@dgContactSolver@@AAE?AVdgBigVector@@ABV2@@Z 1004c0d0 f i physics_2009:dgMinkowskiConv.obj + 0001:0004b240 ?ReduceTriangle@dgContactSolver@@AAE?AVdgVector@@ABV2@@Z 1004c240 f i physics_2009:dgMinkowskiConv.obj + 0001:0004b910 ?ReduceTriangleLarge@dgContactSolver@@AAE?AVdgBigVector@@ABV2@@Z 1004c910 f i physics_2009:dgMinkowskiConv.obj + 0001:0004be30 ?ReduceTetrahedrum@dgContactSolver@@AAE?AVdgVector@@ABV2@@Z 1004ce30 f i physics_2009:dgMinkowskiConv.obj + 0001:0004c270 ?ReduceTetrahedrumLarge@dgContactSolver@@AAE?AVdgBigVector@@ABV2@@Z 1004d270 f i physics_2009:dgMinkowskiConv.obj + 0001:0004c530 ?UpdateSeparatingPlaneFallbackSolution@dgContactSolver@@AAE?AW4dgMinkReturnCode@1@AAPAVdgMinkFace@1@ABVdgVector@@@Z 1004d530 f i physics_2009:dgMinkowskiConv.obj + 0001:0004e0f0 ?UpdateSeparatingPlaneFallbackSolutionLarge@dgContactSolver@@AAE?AW4dgMinkReturnCode@1@AAPAVdgMinkFace@1@ABVdgBigVector@@@Z 1004f0f0 f i physics_2009:dgMinkowskiConv.obj + 0001:0004f5d0 ?UpdateSeparatingPlaneSimd@dgContactSolver@@AAE?AW4dgMinkReturnCode@1@AAPAVdgMinkFace@1@ABVdgVector@@@Z 100505d0 f i physics_2009:dgMinkowskiConv.obj + 0001:0004ffd0 ?UpdateSeparatingPlane@dgContactSolver@@AAE?AW4dgMinkReturnCode@1@AAPAVdgMinkFace@1@ABVdgVector@@@Z 10050fd0 f i physics_2009:dgMinkowskiConv.obj + 0001:00050960 ?UpdateSeparatingPlaneLarge@dgContactSolver@@AAE?AW4dgMinkReturnCode@1@AAPAVdgMinkFace@1@ABVdgBigVector@@@Z 10051960 f i physics_2009:dgMinkowskiConv.obj + 0001:00050f60 ?CalcSeparatingPlaneSimd@dgContactSolver@@AAE?AW4dgMinkReturnCode@1@AAPAVdgMinkFace@1@ABVdgVector@@@Z 10051f60 f i physics_2009:dgMinkowskiConv.obj + 0001:00051690 ?CalcSeparatingPlane@dgContactSolver@@AAE?AW4dgMinkReturnCode@1@AAPAVdgMinkFace@1@ABVdgVector@@@Z 10052690 f i physics_2009:dgMinkowskiConv.obj + 0001:00051dc0 ?CalcSeparatingPlaneLarge@dgContactSolver@@AAE?AW4dgMinkReturnCode@1@AAPAVdgMinkFace@1@ABVdgBigVector@@@Z 10052dc0 f i physics_2009:dgMinkowskiConv.obj + 0001:00052340 ?CalcFacePlane@dgContactSolver@@AAE_NQAVdgMinkFace@1@@Z 10053340 f i physics_2009:dgMinkowskiConv.obj + 0001:00052500 ?CalcFacePlaneLarge@dgContactSolver@@AAE_NQAVdgMinkFace@1@@Z 10053500 f i physics_2009:dgMinkowskiConv.obj + 0001:00052630 ?CalculateVelocities@dgContactSolver@@QAEXM@Z 10053630 f i physics_2009:dgMinkowskiConv.obj + 0001:00052730 ?CalculateVelocitiesSimD@dgContactSolver@@QAEXM@Z 10053730 f i physics_2009:dgMinkowskiConv.obj + 0001:00052830 ?InitConvexCollision@dgWorld@@CAXXZ 10053830 f physics_2009:dgMinkowskiConv.obj + 0001:00053190 ?SphereSphereCollision@dgWorld@@ABEHABVdgVector@@M0MAAVdgCollisionParamProxi@@@Z 10054190 f physics_2009:dgMinkowskiConv.obj + 0001:00053440 ?CalculateSphereToSphereContacts@dgWorld@@ABEHAAVdgCollisionParamProxi@@@Z 10054440 f physics_2009:dgMinkowskiConv.obj + 0001:00053480 ?CalculateCapsuleToSphereContacts@dgWorld@@ABEHAAVdgCollisionParamProxi@@@Z 10054480 f physics_2009:dgMinkowskiConv.obj + 0001:000535d0 ?CalculateCapsuleToCapsuleContacts@dgWorld@@ABEHAAVdgCollisionParamProxi@@@Z 100545d0 f physics_2009:dgMinkowskiConv.obj + 0001:000543b0 ?CalculatePolySoupToSphereContactsDescrete@dgWorld@@ABEHAAVdgCollisionParamProxi@@@Z 100553b0 f physics_2009:dgMinkowskiConv.obj + 0001:00054a50 ?CalculateClosestPoints@dgContactSolver@@AAEHXZ 10055a50 f i physics_2009:dgMinkowskiConv.obj + 0001:00055a10 ?CalculateContactAlternateMethod@dgContactSolver@@AAEHQAVdgMinkFace@1@HQAVdgContactPoint@@H@Z 10056a10 f i physics_2009:dgMinkowskiConv.obj + 0001:00056e50 ?CalculateContactsSimd@dgContactSolver@@AAEHQAVdgMinkFace@1@HQAVdgContactPoint@@H@Z 10057e50 f i physics_2009:dgMinkowskiConv.obj + 0001:00058020 ?CalculateContacts@dgContactSolver@@AAEHQAVdgMinkFace@1@HQAVdgContactPoint@@H@Z 10059020 f i physics_2009:dgMinkowskiConv.obj + 0001:00059600 ?CalculateContactsContinuesSimd@dgContactSolver@@AAEHHQAVdgContactPoint@@HPBVdgVector@@1M@Z 1005a600 f i physics_2009:dgMinkowskiConv.obj + 0001:000597d0 ?CalculateContactsContinues@dgContactSolver@@AAEHHQAVdgContactPoint@@HPBVdgVector@@1M@Z 1005a7d0 f i physics_2009:dgMinkowskiConv.obj + 0001:00059af0 ?CalculateClipPlaneSimd@dgContactSolver@@AAEPAVdgMinkFace@1@XZ 1005aaf0 f i physics_2009:dgMinkowskiConv.obj + 0001:0005a760 ?CalculateClipPlane@dgContactSolver@@AAEPAVdgMinkFace@1@XZ 1005b760 f i physics_2009:dgMinkowskiConv.obj + 0001:0005b3d0 ?CalculateClipPlaneLarge@dgContactSolver@@AAEPAVdgMinkFace@1@XZ 1005c3d0 f i physics_2009:dgMinkowskiConv.obj + 0001:0005bec0 ??0dgContactSolver@@QAE@AAVdgCollisionParamProxi@@PAVdgCollision@@@Z 1005cec0 f i physics_2009:dgMinkowskiConv.obj + 0001:0005bf40 ??0dgContactSolver@@QAE@AAVdgCollisionParamProxi@@@Z 1005cf40 f i physics_2009:dgMinkowskiConv.obj + 0001:0005bfb0 ?HullHullContactsSimd@dgContactSolver@@QAEHH@Z 1005cfb0 f i physics_2009:dgMinkowskiConv.obj + 0001:0005c240 ?HullHullContacts@dgContactSolver@@QAEHH@Z 1005d240 f i physics_2009:dgMinkowskiConv.obj + 0001:0005c5b0 ?HullHullContactsLarge@dgContactSolver@@QAEHH@Z 1005d5b0 f i physics_2009:dgMinkowskiConv.obj + 0001:0005c9a0 ?HullHullContinueContactsSimd@dgContactSolver@@QAEHAAMQAVdgContactPoint@@HHH@Z 1005d9a0 f i physics_2009:dgMinkowskiConv.obj + 0001:0005d340 ?HullHullContinueContacts@dgContactSolver@@QAEHAAMQAVdgContactPoint@@HHH@Z 1005e340 f i physics_2009:dgMinkowskiConv.obj + 0001:0005dd90 ?ClosestPoint@dgWorld@@ABEHAAVdgCollisionParamProxi@@@Z 1005ed90 f physics_2009:dgMinkowskiConv.obj + 0001:0005df50 ?CalculateHullToHullContactsSimd@dgWorld@@ABEHAAVdgCollisionParamProxi@@@Z 1005ef50 f physics_2009:dgMinkowskiConv.obj + 0001:0005e1f0 ?CalculateHullToHullContacts@dgWorld@@ABEHAAVdgCollisionParamProxi@@@Z 1005f1f0 f physics_2009:dgMinkowskiConv.obj + 0001:0005e420 ?CalculatePolySoupToSphereContactsContinue@dgWorld@@ABEHAAVdgCollisionParamProxi@@@Z 1005f420 f physics_2009:dgMinkowskiConv.obj + 0001:0005e9b0 ?CalculatePolySoupToHullContactsDescreteSimd@dgWorld@@ABEHAAVdgCollisionParamProxi@@@Z 1005f9b0 f physics_2009:dgMinkowskiConv.obj + 0001:0005ec00 ?CalculatePolySoupToHullContactsDescrete@dgWorld@@ABEHAAVdgCollisionParamProxi@@@Z 1005fc00 f physics_2009:dgMinkowskiConv.obj + 0001:0005ee50 ?CalculateConvexToNonConvexContactsContinueSimd@dgWorld@@ABEHAAVdgCollisionParamProxi@@@Z 1005fe50 f physics_2009:dgMinkowskiConv.obj + 0001:0005f1e0 ?CalculateConvexToNonConvexContactsContinue@dgWorld@@ABEHAAVdgCollisionParamProxi@@@Z 100601e0 f physics_2009:dgMinkowskiConv.obj + 0001:0005f570 ?CalculateConvexToNonConvexContactsSimd@dgWorld@@ABEHAAVdgCollisionParamProxi@@@Z 10060570 f physics_2009:dgMinkowskiConv.obj + 0001:0005fef0 ?CalculateConvexToNonConvexContacts@dgWorld@@ABEHAAVdgCollisionParamProxi@@@Z 10060ef0 f physics_2009:dgMinkowskiConv.obj + 0001:000608c0 ?CalculateBoxToSphereContacts@dgWorld@@ABEHAAVdgCollisionParamProxi@@@Z 100618c0 f physics_2009:dgMinkowskiConv.obj + 0001:00062020 ?CalculateConvexToConvexContactsSimd@dgWorld@@ABEHAAVdgCollisionParamProxi@@@Z 10063020 f physics_2009:dgMinkowskiConv.obj + 0001:00062730 ?CalculateConvexToConvexContacts@dgWorld@@ABEHAAVdgCollisionParamProxi@@@Z 10063730 f physics_2009:dgMinkowskiConv.obj + 0001:00062dd0 ?CalculateSignature@dgCollisionBox@@MBEHXZ 10063dd0 f physics_2009:dgCollisionBox.obj + 0001:00062e60 ?GetCollisionInfo@dgCollisionBox@@MBEXPAVdgCollisionInfo@@@Z 10063e60 f physics_2009:dgCollisionBox.obj + 0001:00062eb0 ??_GdgCollisionBox@@UAEPAXI@Z 10063eb0 f i physics_2009:dgCollisionBox.obj + 0001:00062eb0 ??_EdgCollisionBox@@UAEPAXI@Z 10063eb0 f i physics_2009:dgCollisionBox.obj + 0001:00062ef0 ?CalcAABB@dgCollisionBox@@MBEXABVdgMatrix@@AAVdgVector@@1@Z 10063ef0 f physics_2009:dgCollisionBox.obj + 0001:00063040 ?CalcAABBSimD@dgCollisionBox@@MBEXABVdgMatrix@@AAVdgVector@@1@Z 10064040 f physics_2009:dgCollisionBox.obj + 0001:000630c0 ?CalculatePlaneIntersection@dgCollisionBox@@MBEHABVdgVector@@0QAV2@@Z 100640c0 f physics_2009:dgCollisionBox.obj + 0001:00063450 ?CalculatePlaneIntersectionSimd@dgCollisionBox@@MBEHABVdgVector@@0QAV2@@Z 10064450 f physics_2009:dgCollisionBox.obj + 0001:000637b0 ?Serialize@dgCollisionBox@@MBEXP6AXPAXPBXI@Z0@Z 100647b0 f physics_2009:dgCollisionBox.obj + 0001:00063840 ?Init@dgCollisionBox@@IAEXMMM@Z 10064840 f physics_2009:dgCollisionBox.obj + 0001:00063d20 ?SupportVertexSimd@dgCollisionBox@@MBE?AVdgVector@@ABV2@@Z 10064d20 f physics_2009:dgCollisionBox.obj + 0001:00063d20 ?SupportVertex@dgCollisionBox@@MBE?AVdgVector@@ABV2@@Z 10064d20 f physics_2009:dgCollisionBox.obj + 0001:00063d80 ?RayCast@dgCollisionBox@@MBEMABVdgVector@@0AAVdgContactPoint@@P6AIPBVdgBody@@PBVdgCollision@@PAX@Z24@Z 10064d80 f physics_2009:dgCollisionBox.obj + 0001:00063f60 ?CalculateMassProperties@dgCollisionBox@@MBEMAAVdgVector@@00@Z 10064f60 f physics_2009:dgCollisionBox.obj + 0001:000642b0 ??0dgCollisionBox@@QAE@IMMMABVdgMatrix@@@Z 100652b0 f physics_2009:dgCollisionBox.obj + 0001:00064300 ??0dgCollisionBox@@QAE@PAVdgWorld@@P6AXPAX1I@Z1@Z 10065300 f physics_2009:dgCollisionBox.obj + 0001:00064360 ??1dgCollision@@MAE@XZ 10065360 f physics_2009:dgCollision.obj + 0001:00064370 ?Quantize@dgCollision@@SAIM@Z 10065370 f physics_2009:dgCollision.obj + 0001:000643a0 ?MakeCRC@dgCollision@@SAIPAXH@Z 100653a0 f physics_2009:dgCollision.obj + 0001:000643c0 ?GetCollisionInfo@dgCollision@@UBEXPAVdgCollisionInfo@@@Z 100653c0 f physics_2009:dgCollision.obj + 0001:00064400 ?SerializeLow@dgCollision@@UBEXP6AXPAXPBXI@Z0@Z 10065400 f physics_2009:dgCollision.obj + 0001:00064450 ??_EdgCollision@@MAEPAXI@Z 10065450 f i physics_2009:dgCollision.obj + 0001:00064450 ??_GdgCollision@@MAEPAXI@Z 10065450 f i physics_2009:dgCollision.obj + 0001:00064470 ??0dgCollision@@IAE@IABVdgMatrix@@W4dgCollisionID@@@Z 10065470 f physics_2009:dgCollision.obj + 0001:000644c0 ??0dgCollision@@IAE@PAVdgWorld@@P6AXPAX1I@Z1@Z 100654c0 f physics_2009:dgCollision.obj + 0001:00064520 ?CalculateSignature@dgCollisionEllipse@@EBEHXZ 10065520 f physics_2009:dgCollisionEllipse.obj + 0001:000645b0 ?CalculateMassProperties@dgCollisionEllipse@@EBEMAAVdgVector@@00@Z 100655b0 f physics_2009:dgCollisionEllipse.obj + 0001:000645c0 ?GetCollisionInfo@dgCollisionEllipse@@EBEXPAVdgCollisionInfo@@@Z 100655c0 f physics_2009:dgCollisionEllipse.obj + 0001:00064610 ?Serialize@dgCollisionEllipse@@EBEXP6AXPAXPBXI@Z0@Z 10065610 f physics_2009:dgCollisionEllipse.obj + 0001:00064640 ??_EdgCollisionEllipse@@UAEPAXI@Z 10065640 f i physics_2009:dgCollisionEllipse.obj + 0001:00064640 ??_GdgCollisionEllipse@@UAEPAXI@Z 10065640 f i physics_2009:dgCollisionEllipse.obj + 0001:00064670 ?CalcAABB@dgCollisionEllipse@@MBEXABVdgMatrix@@AAVdgVector@@1@Z 10065670 f physics_2009:dgCollisionEllipse.obj + 0001:000647b0 ??0dgCollisionEllipse@@QAE@IMMMABVdgMatrix@@@Z 100657b0 f physics_2009:dgCollisionEllipse.obj + 0001:00064840 ??0dgCollisionEllipse@@QAE@PAVdgWorld@@P6AXPAX1I@Z1@Z 10065840 f physics_2009:dgCollisionEllipse.obj + 0001:000648c0 ?SupportVertex@dgCollisionEllipse@@MBE?AVdgVector@@ABV2@@Z 100658c0 f physics_2009:dgCollisionEllipse.obj + 0001:000649d0 ?SupportVertexSimd@dgCollisionEllipse@@MBE?AVdgVector@@ABV2@@Z 100659d0 f physics_2009:dgCollisionEllipse.obj + 0001:00064a90 ?CalculatePlaneIntersection@dgCollisionEllipse@@EBEHABVdgVector@@0QAV2@@Z 10065a90 f physics_2009:dgCollisionEllipse.obj + 0001:00064a90 ?CalculatePlaneIntersectionSimd@dgCollisionEllipse@@EBEHABVdgVector@@0QAV2@@Z 10065a90 f physics_2009:dgCollisionEllipse.obj + 0001:00064b90 ?DebugCollision@dgCollisionEllipse@@MBEXABVdgMatrix@@P6AXPAXHPBMH@Z1@Z 10065b90 f physics_2009:dgCollisionEllipse.obj + 0001:00064e70 ?RayCast@dgCollisionEllipse@@MBEMABVdgVector@@0AAVdgContactPoint@@P6AIPBVdgBody@@PBVdgCollision@@PAX@Z24@Z 10065e70 f physics_2009:dgCollisionEllipse.obj + 0001:00064f20 ?RayCastSimd@dgCollisionEllipse@@MBEMABVdgVector@@0AAVdgContactPoint@@P6AIPBVdgBody@@PBVdgCollision@@PAX@Z24@Z 10065f20 f physics_2009:dgCollisionEllipse.obj + 0001:00064fd0 ?CalculateSignature@dgCollisionCapsule@@EBEHXZ 10065fd0 f physics_2009:dgCollisionCapsule.obj + 0001:00065050 ?GetCollisionInfo@dgCollisionCapsule@@EBEXPAVdgCollisionInfo@@@Z 10066050 f physics_2009:dgCollisionCapsule.obj + 0001:000650a0 ??_GdgCollisionCapsule@@UAEPAXI@Z 100660a0 f i physics_2009:dgCollisionCapsule.obj + 0001:000650a0 ??_EdgCollisionCapsule@@UAEPAXI@Z 100660a0 f i physics_2009:dgCollisionCapsule.obj + 0001:000650e0 ?SupportVertexSimd@dgCollisionCapsule@@EBE?AVdgVector@@ABV2@@Z 100660e0 f physics_2009:dgCollisionCapsule.obj + 0001:000650e0 ?SupportVertex@dgCollisionCapsule@@EBE?AVdgVector@@ABV2@@Z 100660e0 f physics_2009:dgCollisionCapsule.obj + 0001:00065160 ?Init@dgCollisionCapsule@@AAEXMM@Z 10066160 f physics_2009:dgCollisionCapsule.obj + 0001:000656a0 ?TesselateTriangle@dgCollisionCapsule@@ABEXHMABVdgVector@@00AAHPAV2@@Z 100666a0 f physics_2009:dgCollisionCapsule.obj + 0001:00065af0 ?DebugCollision@dgCollisionCapsule@@EBEXABVdgMatrix@@P6AXPAXHPBMH@Z1@Z 10066af0 f physics_2009:dgCollisionCapsule.obj + 0001:00065f20 ?RayCast@dgCollisionCapsule@@EBEMABVdgVector@@0AAVdgContactPoint@@P6AIPBVdgBody@@PBVdgCollision@@PAX@Z24@Z 10066f20 f physics_2009:dgCollisionCapsule.obj + 0001:00066b10 ?CalculateMassProperties@dgCollisionCapsule@@EBEMAAVdgVector@@00@Z 10067b10 f physics_2009:dgCollisionCapsule.obj + 0001:00066ee0 ?CalculatePlaneIntersection@dgCollisionCapsule@@EBEHABVdgVector@@0QAV2@@Z 10067ee0 f physics_2009:dgCollisionCapsule.obj + 0001:00067930 ?Serialize@dgCollisionCapsule@@EBEXP6AXPAXPBXI@Z0@Z 10068930 f physics_2009:dgCollisionCapsule.obj + 0001:00067990 ??0dgCollisionCapsule@@QAE@IMMABVdgMatrix@@@Z 10068990 f physics_2009:dgCollisionCapsule.obj + 0001:000679d0 ??0dgCollisionCapsule@@QAE@PAVdgWorld@@P6AXPAX1I@Z1@Z 100689d0 f physics_2009:dgCollisionCapsule.obj + 0001:00067a30 ?CalculatePlaneIntersectionSimd@dgCollisionCapsule@@EBEHABVdgVector@@0QAV2@@Z 10068a30 f physics_2009:dgCollisionCapsule.obj + 0001:00067a40 ?CalculateSignature@dgCollisionCone@@EBEHXZ 10068a40 f physics_2009:dgCollisionCone.obj + 0001:00067ac0 ?DebugCollision@dgCollisionCone@@EBEXABVdgMatrix@@P6AXPAXHPBMH@Z1@Z 10068ac0 f physics_2009:dgCollisionCone.obj + 0001:00067c80 ?SupportVertexSimd@dgCollisionCone@@EBE?AVdgVector@@ABV2@@Z 10068c80 f physics_2009:dgCollisionCone.obj + 0001:00067c80 ?SupportVertexSimd@dgCollisionChamferCylinder@@MBE?AVdgVector@@ABV2@@Z 10068c80 f physics_2009:dgCollisionChamferCylinder.obj + 0001:00067c80 ?SupportVertexSimd@dgCollisionCylinder@@EBE?AVdgVector@@ABV2@@Z 10068c80 f physics_2009:dgCollisionCylinder.obj + 0001:00067ca0 ?GetCollisionInfo@dgCollisionCone@@EBEXPAVdgCollisionInfo@@@Z 10068ca0 f physics_2009:dgCollisionCone.obj + 0001:00067ce0 ??_GdgCollisionCone@@UAEPAXI@Z 10068ce0 f i physics_2009:dgCollisionCone.obj + 0001:00067ce0 ??_EdgCollisionCone@@UAEPAXI@Z 10068ce0 f i physics_2009:dgCollisionCone.obj + 0001:00067d20 ?Init@dgCollisionCone@@AAEXMM@Z 10068d20 f physics_2009:dgCollisionCone.obj + 0001:00067ff0 ?SupportVertex@dgCollisionCone@@EBE?AVdgVector@@ABV2@@Z 10068ff0 f physics_2009:dgCollisionCone.obj + 0001:000680d0 ?CalculateMassProperties@dgCollisionCone@@EBEMAAVdgVector@@00@Z 100690d0 f physics_2009:dgCollisionCone.obj + 0001:00068470 ?CalculatePlaneIntersectionSimd@dgCollisionCone@@EBEHABVdgVector@@0QAV2@@Z 10069470 f physics_2009:dgCollisionCone.obj + 0001:00068470 ?CalculatePlaneIntersectionSimd@dgCollisionCylinder@@EBEHABVdgVector@@0QAV2@@Z 10069470 f physics_2009:dgCollisionCylinder.obj + 0001:000686e0 ?Serialize@dgCollisionCone@@EBEXP6AXPAXPBXI@Z0@Z 100696e0 f physics_2009:dgCollisionCone.obj + 0001:00068730 ??0dgCollisionCone@@QAE@IMMABVdgMatrix@@@Z 10069730 f physics_2009:dgCollisionCone.obj + 0001:00068770 ??0dgCollisionCone@@QAE@PAVdgWorld@@P6AXPAX1I@Z1@Z 10069770 f physics_2009:dgCollisionCone.obj + 0001:000687d0 ?CalculateSignature@dgCollisionCylinder@@EBEHXZ 100697d0 f physics_2009:dgCollisionCylinder.obj + 0001:00068850 ?DebugCollision@dgCollisionCylinder@@EBEXABVdgMatrix@@P6AXPAXHPBMH@Z1@Z 10069850 f physics_2009:dgCollisionCylinder.obj + 0001:00068a40 ?RayCastSimd@dgCollisionCapsule@@EBEMABVdgVector@@0AAVdgContactPoint@@P6AIPBVdgBody@@PBVdgCollision@@PAX@Z24@Z 10069a40 f physics_2009:dgCollisionCapsule.obj + 0001:00068a40 ?RayCastSimd@dgCollisionBox@@MBEMABVdgVector@@0AAVdgContactPoint@@P6AIPBVdgBody@@PBVdgCollision@@PAX@Z24@Z 10069a40 f physics_2009:dgCollisionBox.obj + 0001:00068a40 ?RayCastSimd@dgCollisionCylinder@@EBEMABVdgVector@@0AAVdgContactPoint@@P6AIPBVdgBody@@PBVdgCollision@@PAX@Z24@Z 10069a40 f physics_2009:dgCollisionCylinder.obj + 0001:00068a40 ?RayCastSimd@dgCollisionSphere@@MBEMABVdgVector@@0AAVdgContactPoint@@P6AIPBVdgBody@@PBVdgCollision@@PAX@Z24@Z 10069a40 f physics_2009:dgCollisionSphere.obj + 0001:00068a40 ?RayCastSimd@dgCollisionUserMesh@@EBEMABVdgVector@@0AAVdgContactPoint@@P6AIPBVdgBody@@PBVdgCollision@@PAX@Z24@Z 10069a40 f physics_2009:dgCollisionUserMesh.obj + 0001:00068a40 ?RayCastSimd@dgConvexCollision@@UBEMABVdgVector@@0AAVdgContactPoint@@P6AIPBVdgBody@@PBVdgCollision@@PAX@Z24@Z 10069a40 f physics_2009:dgConvexCollision.obj + 0001:00068a50 ?GetCollisionInfo@dgCollisionCylinder@@EBEXPAVdgCollisionInfo@@@Z 10069a50 f physics_2009:dgCollisionCylinder.obj + 0001:00068aa0 ??_GdgCollisionCylinder@@UAEPAXI@Z 10069aa0 f i physics_2009:dgCollisionCylinder.obj + 0001:00068aa0 ??_EdgCollisionCylinder@@UAEPAXI@Z 10069aa0 f i physics_2009:dgCollisionCylinder.obj + 0001:00068ae0 ?Init@dgCollisionCylinder@@AAEXMM@Z 10069ae0 f physics_2009:dgCollisionCylinder.obj + 0001:00068da0 ?SupportVertex@dgCollisionCylinder@@EBE?AVdgVector@@ABV2@@Z 10069da0 f physics_2009:dgCollisionCylinder.obj + 0001:00068e50 ?CalculateMassProperties@dgCollisionCylinder@@EBEMAAVdgVector@@00@Z 10069e50 f physics_2009:dgCollisionCylinder.obj + 0001:000691c0 ?CalculatePlaneIntersection@dgCollisionCylinder@@EBEHABVdgVector@@0QAV2@@Z 1006a1c0 f physics_2009:dgCollisionCylinder.obj + 0001:000691c0 ?CalculatePlaneIntersection@dgCollisionCone@@EBEHABVdgVector@@0QAV2@@Z 1006a1c0 f physics_2009:dgCollisionCone.obj + 0001:00069410 ?RayCast@dgCollisionCylinder@@EBEMABVdgVector@@0AAVdgContactPoint@@P6AIPBVdgBody@@PBVdgCollision@@PAX@Z24@Z 1006a410 f physics_2009:dgCollisionCylinder.obj + 0001:00069a20 ?Serialize@dgCollisionCylinder@@EBEXP6AXPAXPBXI@Z0@Z 1006aa20 f physics_2009:dgCollisionCylinder.obj + 0001:00069a90 ??0dgCollisionCylinder@@QAE@IMMABVdgMatrix@@@Z 1006aa90 f physics_2009:dgCollisionCylinder.obj + 0001:00069ad0 ??0dgCollisionCylinder@@QAE@PAVdgWorld@@P6AXPAX1I@Z1@Z 1006aad0 f physics_2009:dgCollisionCylinder.obj + 0001:00069b30 ?CalculateSignature@dgCollisionChamferCylinder@@MBEHXZ 1006ab30 f physics_2009:dgCollisionChamferCylinder.obj + 0001:00069bb0 ?GetCollisionInfo@dgCollisionChamferCylinder@@MBEXPAVdgCollisionInfo@@@Z 1006abb0 f physics_2009:dgCollisionChamferCylinder.obj + 0001:00069c00 ??_EdgCollisionChamferCylinder@@UAEPAXI@Z 1006ac00 f i physics_2009:dgCollisionChamferCylinder.obj + 0001:00069c00 ??_GdgCollisionChamferCylinder@@UAEPAXI@Z 1006ac00 f i physics_2009:dgCollisionChamferCylinder.obj + 0001:00069c40 ?Init@dgCollisionChamferCylinder@@IAEXMM@Z 1006ac40 f physics_2009:dgCollisionChamferCylinder.obj + 0001:0006a1b0 ?DebugCollision@dgCollisionChamferCylinder@@MBEXABVdgMatrix@@P6AXPAXHPBMH@Z1@Z 1006b1b0 f physics_2009:dgCollisionChamferCylinder.obj + 0001:0006a7f0 ?SupportVertex@dgCollisionChamferCylinder@@MBE?AVdgVector@@ABV2@@Z 1006b7f0 f physics_2009:dgCollisionChamferCylinder.obj + 0001:0006a950 ?RayCast@dgCollisionChamferCylinder@@MBEMABVdgVector@@0AAVdgContactPoint@@P6AIPBVdgBody@@PBVdgCollision@@PAX@Z24@Z 1006b950 f physics_2009:dgCollisionChamferCylinder.obj + 0001:0006ab60 ?RayCastSimd@dgCollisionChamferCylinder@@MBEMABVdgVector@@0AAVdgContactPoint@@P6AIPBVdgBody@@PBVdgCollision@@PAX@Z24@Z 1006bb60 f physics_2009:dgCollisionChamferCylinder.obj + 0001:0006ad70 ?CalculatePlaneIntersection@dgCollisionChamferCylinder@@MBEHABVdgVector@@0QAV2@@Z 1006bd70 f physics_2009:dgCollisionChamferCylinder.obj + 0001:0006b760 ?Serialize@dgCollisionChamferCylinder@@MBEXP6AXPAXPBXI@Z0@Z 1006c760 f physics_2009:dgCollisionChamferCylinder.obj + 0001:0006b7c0 ??0dgCollisionChamferCylinder@@QAE@IMMABVdgMatrix@@@Z 1006c7c0 f physics_2009:dgCollisionChamferCylinder.obj + 0001:0006b800 ??0dgCollisionChamferCylinder@@QAE@PAVdgWorld@@P6AXPAX1I@Z1@Z 1006c800 f physics_2009:dgCollisionChamferCylinder.obj + 0001:0006b860 ?CalculatePlaneIntersectionSimd@dgCollisionChamferCylinder@@MBEHABVdgVector@@0QAV2@@Z 1006c860 f physics_2009:dgCollisionChamferCylinder.obj + 0001:0006b870 ?Malloc@dgMemoryAllocator@@QAEPAXH@Z 1006c870 f i corelib_2009:dgMemory.obj + 0001:0006b9b0 ?Free@dgMemoryAllocator@@QAEXPAX@Z 1006c9b0 f i corelib_2009:dgMemory.obj + 0001:0006bab0 ?__malloc__@dgMemoryAllocator@@CAPAXI@Z 1006cab0 f i corelib_2009:dgMemory.obj + 0001:0006bab0 ?DefaultAllocMemory@Newton@@SAPAXH@Z 1006cab0 f i NewtonClass.obj + 0001:0006bac0 ?DefaultFreeMemory@Newton@@SAXPAXH@Z 1006cac0 f i NewtonClass.obj + 0001:0006bac0 ?__free__@dgMemoryAllocator@@CAXPAXI@Z 1006cac0 f i corelib_2009:dgMemory.obj + 0001:0006bad0 ?dgSetMemoryDrivers@@YAXP6APAXI@ZP6AXPAXI@Z@Z 1006cad0 f corelib_2009:dgMemory.obj + 0001:0006baf0 ?dgGetMemoryUsed@@YAHXZ 1006caf0 f corelib_2009:dgMemory.obj + 0001:0006bb00 ?dgMallocStack@@YAPAXI@Z 1006cb00 f corelib_2009:dgMemory.obj + 0001:0006bb30 ?dgFreeStack@@YAXPAX@Z 1006cb30 f corelib_2009:dgMemory.obj + 0001:0006bb50 ?dgMalloc@@YAPAXI@Z 1006cb50 f corelib_2009:dgMemory.obj + 0001:0006bb70 ?dgFree@@YAXPAX@Z 1006cb70 f corelib_2009:dgMemory.obj + 0001:0006bb90 ?dgCRC@@YAIPBXHI@Z 1006cb90 f corelib_2009:dgCRC.obj + 0001:0006bbd0 ?TransformTriplex@dgMatrix@@QBEXQAXHQBXHH@Z 1006cbd0 f corelib_2009:dgMatrix.obj + 0001:0006bec0 ?dgGetIdentityMatrix@@YAABVdgMatrix@@XZ 1006cec0 f corelib_2009:dgMatrix.obj + 0001:0006bfd0 ??0dgMatrix@@QAE@ABVdgQuaternion@@ABVdgVector@@@Z 1006cfd0 f corelib_2009:dgMatrix.obj + 0001:0006c150 ??DdgMatrix@@QBE?AV0@ABV0@@Z 1006d150 f corelib_2009:dgMatrix.obj + 0001:0006c3f0 ?Symetric3by3Inverse@dgMatrix@@QBE?AV1@XZ 1006d3f0 f corelib_2009:dgMatrix.obj + 0001:0006c570 ?CalcPitchYawRoll@dgMatrix@@QBE?AVdgVector@@XZ 1006d570 f corelib_2009:dgMatrix.obj + 0001:0006c670 ?dgAbsf@@YAMM@Z 1006d670 f corelib_2009:dgTypes.obj + 0001:0006c680 ?dgSqrt@@YAMM@Z 1006d680 f corelib_2009:dgTypes.obj + 0001:0006c690 ?dgSin@@YAMM@Z 1006d690 f corelib_2009:dgTypes.obj + 0001:0006c6a0 ?dgCos@@YAMM@Z 1006d6a0 f corelib_2009:dgTypes.obj + 0001:0006c6b0 ?dgAsin@@YAMM@Z 1006d6b0 f corelib_2009:dgTypes.obj + 0001:0006c6d0 ?dgAcos@@YAMM@Z 1006d6d0 f corelib_2009:dgTypes.obj + 0001:0006c6f0 ?dgAtan2@@YAMMM@Z 1006d6f0 f corelib_2009:dgTypes.obj + 0001:0006c710 ?dgFloor@@YAMM@Z 1006d710 f corelib_2009:dgTypes.obj + 0001:0006c750 ?dgFastInt@@YAHM@Z 1006d750 f corelib_2009:dgTypes.obj + 0001:0006c810 ?dgGetCpuType@@YA?AW4dgCpuClass@@XZ 1006d810 f corelib_2009:dgTypes.obj + 0001:0006c830 ?GetMinMax@@YAXAAVdgVector@@0QBMHH@Z 1006d830 f corelib_2009:dgTypes.obj + 0001:0006de60 ?dgVertexListToIndexList@@YAHQAMHHHHQAHM@Z 1006ee60 f corelib_2009:dgTypes.obj + 0001:0006dfe0 ?Minimum@dgRedBackNode@@QBEPAV1@XZ 1006efe0 f corelib_2009:dgTree.obj + 0001:0006e000 ?Next@dgRedBackNode@@QBEPAV1@XZ 1006f000 f corelib_2009:dgTree.obj + 0001:0006e030 ?InsertFixup@dgRedBackNode@@QAEXPAPAV1@@Z 1006f030 f corelib_2009:dgTree.obj + 0001:0006e200 ?RemoveFixup@dgRedBackNode@@QAEXPAV1@PAPAV1@@Z 1006f200 f corelib_2009:dgTree.obj + 0001:0006e4b0 ?Unlink@dgRedBackNode@@QAEXPAPAV1@@Z 1006f4b0 f corelib_2009:dgTree.obj + 0001:0006e5b0 ?RemoveAllLow@dgRedBackNode@@QAEXXZ 1006f5b0 f corelib_2009:dgTree.obj + 0001:0006e5e0 ?RemoveAll@dgRedBackNode@@QAEXXZ 1006f5e0 f corelib_2009:dgTree.obj + 0001:0006e620 ?Remove@dgRedBackNode@@QAEXPAPAV1@@Z 1006f620 f corelib_2009:dgTree.obj + 0001:0006e640 ??0dgThreads@@QAE@XZ 1006f640 f corelib_2009:dgThreads.obj + 0001:0006e710 ?DestroydgThreads@dgThreads@@QAEXXZ 1006f710 f corelib_2009:dgThreads.obj + 0001:0006e7d0 ?SubmitJob@dgThreads@@QAEHPAVdgWorkerThread@@@Z 1006f7d0 f corelib_2009:dgThreads.obj + 0001:0006e860 ?GetWork@dgThreads@@AAEHPAPAVdgWorkerThread@@@Z 1006f860 f corelib_2009:dgThreads.obj + 0001:0006e8f0 ?DoWork@dgThreads@@AAEXH@Z 1006f8f0 f corelib_2009:dgThreads.obj + 0001:0006e940 ?CalculateChunkSizes@dgThreads@@QBEXHQAH@Z 1006f940 f corelib_2009:dgThreads.obj + 0001:0006e990 ?GetThreadCount@dgThreads@@QBEHXZ 1006f990 f corelib_2009:dgThreads.obj + 0001:0006e9a0 ?SynchronizationBarrier@dgThreads@@QAEXXZ 1006f9a0 f corelib_2009:dgThreads.obj + 0001:0006e9c0 ?dgGetLock@dgThreads@@QAEXXZ 1006f9c0 f corelib_2009:dgThreads.obj + 0001:0006ea00 ?dgReleaseLock@dgThreads@@QAEXXZ 1006fa00 f corelib_2009:dgThreads.obj + 0001:0006ea10 ?dgGetIndirectLock@dgThreads@@QAEXPAH@Z 1006fa10 f corelib_2009:dgThreads.obj + 0001:0006ea50 ?dgReleaseIndirectLock@dgThreads@@QAEXPAH@Z 1006fa50 f corelib_2009:dgThreads.obj + 0001:0006ea60 ??1dgThreads@@QAE@XZ 1006fa60 f corelib_2009:dgThreads.obj + 0001:0006ea70 ?ThreadExecute@dgThreads@@CGIPAX@Z 1006fa70 f corelib_2009:dgThreads.obj + 0001:0006ea90 ?CreateThreaded@dgThreads@@QAEXH@Z 1006fa90 f corelib_2009:dgThreads.obj + 0001:0006eb40 ??0VERTEX_METRIC_STRUCT@InternalPolyhedra@@QAE@ABVdgBigPlane@@@Z 1006fb40 f i corelib_2009:dgPolyhedra.obj + 0001:0006ebb0 ?Accumulate@VERTEX_METRIC_STRUCT@InternalPolyhedra@@QAEXAAVdgBigPlane@@@Z 1006fbb0 f i corelib_2009:dgPolyhedra.obj + 0001:0006ec40 ?Pop@?$dgDownHeap@PAVdgEdge@@M@@QAEXXZ 1006fc40 f i corelib_2009:dgPolyhedra.obj + 0001:0006ec40 ?Pop@?$dgDownHeap@PAVdgMinkFace@dgContactSolver@@M@@QAEXXZ 1006fc40 f i physics_2009:dgMinkowskiConv.obj + 0001:0006ecc0 ?Pop@?$dgDownHeap@PAVdgListNode@?$dgList@UEDGE_HANDLE@InternalPolyhedra@@@@N@@QAEXXZ 1006fcc0 f i corelib_2009:dgPolyhedra.obj + 0001:0006ed60 ?Push@?$dgDownHeap@PAVdgListNode@?$dgList@UEDGE_HANDLE@InternalPolyhedra@@@@N@@QAEXAAPAVdgListNode@?$dgList@UEDGE_HANDLE@InternalPolyhedra@@@@N@Z 1006fd60 f i corelib_2009:dgPolyhedra.obj + 0001:0006f500 ?DeleteEdge@dgPolyhedra@@QAEXPAVdgEdge@@@Z 10070500 f corelib_2009:dgPolyhedra.obj + 0001:0006f580 ?FaceNormal@dgPolyhedra@@QBE?AVdgVector@@PAVdgEdge@@QBMH@Z 10070580 f corelib_2009:dgPolyhedra.obj + 0001:0006f5d0 ?Append@?$dgList@PAVdgContact@@@@QAEPAVdgListNode@1@ABQAVdgContact@@@Z 100705d0 f i physics_2009:dgContact.obj + 0001:0006f5d0 ?Append@?$dgList@PAVdgEdge@@@@QAEPAVdgListNode@1@ABQAVdgEdge@@@Z 100705d0 f i corelib_2009:dgPolyhedra.obj + 0001:0006f660 ?Find@?$dgTree@VdgEdge@@_J@@QBEPAVdgTreeNode@1@_J@Z 10070660 f i corelib_2009:dgPolyhedra.obj + 0001:0006f6a0 ?Addtop@?$dgList@UEDGE_HANDLE@InternalPolyhedra@@@@QAEPAVdgListNode@1@ABUEDGE_HANDLE@InternalPolyhedra@@@Z 100706a0 f i corelib_2009:dgPolyhedra.obj + 0001:0006f750 ?Insert@?$dgTree@VdgEdge@@_J@@QAEPAVdgTreeNode@1@PAV21@_J@Z 10070750 f i corelib_2009:dgPolyhedra.obj + 0001:0006f810 ?RemoveAll@?$dgList@UEDGE_HANDLE@InternalPolyhedra@@@@QAEXXZ 10070810 f i corelib_2009:dgPolyhedra.obj + 0001:00070260 ??0dgPolyhedra@@QAE@XZ 10071260 f corelib_2009:dgPolyhedra.obj + 0001:00070280 ??1dgPolyhedra@@UAE@XZ 10071280 f corelib_2009:dgPolyhedra.obj + 0001:000702b0 ?DeleteFace@dgPolyhedra@@QAEXPAVdgEdge@@@Z 100712b0 f corelib_2009:dgPolyhedra.obj + 0001:00070320 ?DeleteDegenerateFaces@dgPolyhedra@@QAEXQBMHM@Z 10071320 f corelib_2009:dgPolyhedra.obj + 0001:00070450 ?SwapInfo@dgPolyhedra@@QAEXAAV1@@Z 10071450 f corelib_2009:dgPolyhedra.obj + 0001:00070c90 ?Update@dgPolyhedraDescriptor@@QAEXABVdgPolyhedra@@@Z 10071c90 f corelib_2009:dgPolyhedra.obj + 0001:00070dd0 ??_EdgPolyhedra@@UAEPAXI@Z 10071dd0 f i corelib_2009:dgPolyhedra.obj + 0001:00070dd0 ??_GdgPolyhedra@@UAEPAXI@Z 10071dd0 f i corelib_2009:dgPolyhedra.obj + 0001:00070e10 ?CollapseEdge@dgPolyhedra@@AAEPAVdgEdge@@PAV2@@Z 10071e10 f corelib_2009:dgPolyhedra.obj + 0001:00071210 ?ChangeEdgeIncidentVertex@dgPolyhedra@@QAEXPAVdgEdge@@H@Z 10072210 f corelib_2009:dgPolyhedra.obj + 0001:000712e0 ?Insert@?$dgTree@VdgEdge@@_J@@QAEPAVdgTreeNode@1@ABVdgEdge@@_JAA_N@Z 100722e0 f i corelib_2009:dgPolyhedra.obj + 0001:00071520 ?EndFace@dgPolyhedra@@QAEXXZ 10072520 f corelib_2009:dgPolyhedra.obj + 0001:00071540 ?AddFace@dgPolyhedra@@QAEPAVdgEdge@@HQBHQB_J@Z 10072540 f corelib_2009:dgPolyhedra.obj + 0001:000717e0 ?Optimize@dgPolyhedra@@QAEXQBMHM@Z 100727e0 f corelib_2009:dgPolyhedra.obj + 0001:00071fd0 ??0dgPolyhedra@@QAE@ABV0@@Z 10072fd0 f corelib_2009:dgPolyhedra.obj + 0001:00072110 ?AddFace@dgPolyhedra@@QAEPAVdgEdge@@HQBH@Z 10073110 f corelib_2009:dgPolyhedra.obj + 0001:00072160 ?AddFace@dgPolyhedra@@QAEPAVdgEdge@@HHH@Z 10073160 f corelib_2009:dgPolyhedra.obj + 0001:000721b0 ?AddHalfEdge@dgPolyhedra@@QAEPAVdgEdge@@HH@Z 100731b0 f corelib_2009:dgPolyhedra.obj + 0001:00072240 ?SpliteEdge@dgPolyhedra@@QAEXHPAVdgEdge@@@Z 10073240 f corelib_2009:dgPolyhedra.obj + 0001:00072330 ?SpliteEdgeAndTriangulate@dgPolyhedra@@QAEXHPAVdgEdge@@@Z 10073330 f corelib_2009:dgPolyhedra.obj + 0001:00072410 ?GetConectedSurface@dgPolyhedra@@QBE_NAAV1@@Z 10073410 f corelib_2009:dgPolyhedra.obj + 0001:00073520 ?TriangulateFace@dgPolyhedra@@QAE_NPAVdgEdge@@QBMHAAVdgVector@@@Z 10074520 f corelib_2009:dgPolyhedra.obj + 0001:000735a0 ?Triangulate@dgPolyhedra@@QAEXQBMHPAV1@@Z 100745a0 f corelib_2009:dgPolyhedra.obj + 0001:00073760 ?ConvexPartition@dgPolyhedra@@QAEXQBMHPAV1@@Z 10074760 f corelib_2009:dgPolyhedra.obj + 0001:000737d0 ??0dgStackBase@@IAE@H@Z 100747d0 f corelib_2009:dgStack.obj + 0001:000737f0 ??1dgStackBase@@IAE@XZ 100747f0 f corelib_2009:dgStack.obj + 0001:00073800 ?ForAllSectorsSimd@dgPolygonSoupDatabase@@MBEXABVdgVector@@0P6A?AW4dgIntersectStatus@@PAXQBMHQBHH@ZQAX@Z 10074800 f i corelib_2009:dgAABBPolygonSoup.obj + 0001:00073800 ?ForAllSectors@dgPolygonSoupDatabase@@MBEXABVdgVector@@0P6A?AW4dgIntersectStatus@@PAXQBMHQBHH@ZQAX@Z 10074800 f i corelib_2009:dgAABBPolygonSoup.obj + 0001:00073810 ?ForAllSectorsSimd@dgAABBTree@@QBEXQBHQBMABVdgVector@@2P6A?AW4dgIntersectStatus@@PAX1H0H@Z3@Z 10074810 f i corelib_2009:dgAABBPolygonSoup.obj + 0001:00073a50 ?ForAllSectors@dgAABBTree@@QBEXQBHQBMABVdgVector@@2P6A?AW4dgIntersectStatus@@PAX1H0H@Z3@Z 10074a50 f i corelib_2009:dgAABBPolygonSoup.obj + 0001:00073d30 ?SortBoxes@dgAABBTree@@ABEXQAV1@HHQBVdgTriplex@@@Z 10074d30 f i corelib_2009:dgAABBPolygonSoup.obj + 0001:00073fc0 ??0dgAABBPolygonSoup@@IAE@XZ 10074fc0 f corelib_2009:dgAABBPolygonSoup.obj + 0001:00073fe0 ??1dgAABBPolygonSoup@@MAE@XZ 10074fe0 f corelib_2009:dgAABBPolygonSoup.obj + 0001:00074020 ?ForAllSectorsSimd@dgAABBPolygonSoup@@MBEXABVdgVector@@0P6A?AW4dgIntersectStatus@@PAXQBMHQBHH@ZQAX@Z 10075020 f corelib_2009:dgAABBPolygonSoup.obj + 0001:00074050 ?ForAllSectors@dgAABBPolygonSoup@@MBEXABVdgVector@@0P6A?AW4dgIntersectStatus@@PAXQBMHQBHH@ZQAX@Z 10075050 f corelib_2009:dgAABBPolygonSoup.obj + 0001:00074080 ?Serialize@dgAABBPolygonSoup@@UBEXP6AXPAXPBXI@Z0@Z 10075080 f corelib_2009:dgAABBPolygonSoup.obj + 0001:00074100 ?Deserialize@dgAABBPolygonSoup@@UAEXP6AXPAX0I@Z0@Z 10075100 f corelib_2009:dgAABBPolygonSoup.obj + 0001:000741d0 ?Resize@?$dgArray@VdgTriplex@@@@QBEXH@Z 100751d0 f i corelib_2009:dgAABBPolygonSoup.obj + 0001:000742c0 ?Resize@?$dgArray@H@@QBEXH@Z 100752c0 f i corelib_2009:dgAABBPolygonSoup.obj + 0001:00074370 ??_EdgPolygonSoupDatabase@@MAEPAXI@Z 10075370 f i corelib_2009:dgAABBPolygonSoup.obj + 0001:00074370 ??_GdgPolygonSoupDatabase@@MAEPAXI@Z 10075370 f i corelib_2009:dgAABBPolygonSoup.obj + 0001:000743a0 ?CalcExtends@dgAABBTree@@QAEXQAVdgTriplex@@HQBH@Z 100753a0 f i corelib_2009:dgAABBPolygonSoup.obj + 0001:00074960 ?ForAllSectorsRayHitSimd@dgAABBTree@@QBEXABVFastRayTest@@PBHPBMP6AMPAXQBMHQBHH@ZQAX@Z 10075960 f i corelib_2009:dgAABBPolygonSoup.obj + 0001:00074ca0 ?ForAllSectorsRayHit@dgAABBTree@@QBEXABVFastRayTest@@PBHPBMP6AMPAXQBMHQBHH@ZQAX@Z 10075ca0 f i corelib_2009:dgAABBPolygonSoup.obj + 0001:00075030 ?ForAllSectorsSupportVertex@dgAABBTree@@QBE?AVdgVector@@ABV2@QBHQBM@Z 10076030 f i corelib_2009:dgAABBPolygonSoup.obj + 0001:00075860 ?CalcBoxFromBoxArray@dgAABBTree@@AAEXQBV1@HPAVdgTriplex@@AAH@Z 10076860 f i corelib_2009:dgAABBPolygonSoup.obj + 0001:00075f20 ?GetAxis@dgAABBTree@@ABEHQBV1@HQBVdgTriplex@@@Z 10076f20 f i corelib_2009:dgAABBPolygonSoup.obj + 0001:00076560 ?SpliteBoxArray@dgAABBTree@@ABEHQAV1@HQBVdgTriplex@@@Z 10077560 f i corelib_2009:dgAABBPolygonSoup.obj + 0001:00076890 ??_GdgAABBPolygonSoup@@MAEPAXI@Z 10077890 f i corelib_2009:dgAABBPolygonSoup.obj + 0001:00076890 ??_EdgAABBPolygonSoup@@MAEPAXI@Z 10077890 f i corelib_2009:dgAABBPolygonSoup.obj + 0001:000768e0 ?ForAllSectorsSupportVectex@dgAABBPolygonSoup@@MBE?AVdgVector@@ABV2@@Z 100778e0 f corelib_2009:dgAABBPolygonSoup.obj + 0001:00076920 ?GetAABB@dgAABBPolygonSoup@@UBEXAAVdgVector@@0@Z 10077920 f corelib_2009:dgAABBPolygonSoup.obj + 0001:00076a10 ?ForAllSectorsRayHit@dgAABBPolygonSoup@@MBEXABVFastRayTest@@P6AMPAXQBMHQBHH@ZQAX@Z 10077a10 f corelib_2009:dgAABBPolygonSoup.obj + 0001:00076a40 ?ForAllSectorsRayHitSimd@dgAABBPolygonSoup@@MBEXABVFastRayTest@@P6AMPAXQBMHQBHH@ZQAX@Z 10077a40 f corelib_2009:dgAABBPolygonSoup.obj + 0001:00076a70 ?CollectMyFaces@dgAABBPolygonSoup@@CA?AW4dgIntersectStatus@@PAXQBMHQBHH@Z 10077a70 f corelib_2009:dgAABBPolygonSoup.obj + 0001:00076c10 ?Build@dgAABBTree@@QAEXPAV1@QAV1@QBV1@HPBV1@AAHQAVdgTriplex@@4@Z 10077c10 f i corelib_2009:dgAABBPolygonSoup.obj + 0001:00076d30 ?CollectAllFaces@dgAABBPolygonSoup@@CA?AW4dgIntersectStatus@@PAXQBMHQBHH@Z 10077d30 f corelib_2009:dgAABBPolygonSoup.obj + 0001:000773c0 ?Create@dgAABBPolygonSoup@@IAEXABVdgPolygonSoupDatabaseBuilder@@@Z 100783c0 f corelib_2009:dgAABBPolygonSoup.obj + 0001:000778e0 ?AddFilterFace@dgPolySoupFilterAllocator@@QAEHIQAH@Z 100788e0 f i corelib_2009:dgPolygonSoupBuilder.obj + 0001:00077990 ?Begin@dgPolygonSoupDatabaseBuilder@@QAEXXZ 10078990 f corelib_2009:dgPolygonSoupBuilder.obj + 0001:000779a0 ??_GdgPolySoupFilterAllocator@@UAEPAXI@Z 100789a0 f i corelib_2009:dgPolygonSoupBuilder.obj + 0001:000779a0 ??_EdgPolySoupFilterAllocator@@UAEPAXI@Z 100789a0 f i corelib_2009:dgPolygonSoupBuilder.obj + 0001:000779d0 ??1dgPolygonSoupDatabaseBuilder@@QAE@XZ 100789d0 f corelib_2009:dgPolygonSoupBuilder.obj + 0001:00077a30 ??A?$dgArray@VdgTriplex@@@@QAEAAVdgTriplex@@H@Z 10078a30 f i corelib_2009:dgPolygonSoupBuilder.obj + 0001:00077a60 ??0dgPolygonSoupDatabaseBuilder@@QAE@XZ 10078a60 f corelib_2009:dgPolygonSoupBuilder.obj + 0001:00077ab0 ?FilterFace@dgPolygonSoupDatabaseBuilder@@AAEHHQAH@Z 10078ab0 f corelib_2009:dgPolygonSoupBuilder.obj + 0001:00078450 ?AddConvexFace@dgPolygonSoupDatabaseBuilder@@AAEHHQAH0@Z 10079450 f corelib_2009:dgPolygonSoupBuilder.obj + 0001:00078ee0 ?AddMesh@dgPolygonSoupDatabaseBuilder@@QAEXQBMHHHQBH11ABVdgMatrix@@@Z 10079ee0 f corelib_2009:dgPolygonSoupBuilder.obj + 0001:000791b0 ?OptimizeByGroupID@dgPolygonSoupDatabaseBuilder@@AAEXAAV1@HH0@Z 1007a1b0 f corelib_2009:dgPolygonSoupBuilder.obj + 0001:00079670 ?OptimizeByIndividualFaces@dgPolygonSoupDatabaseBuilder@@AAEXXZ 1007a670 f corelib_2009:dgPolygonSoupBuilder.obj + 0001:000797b0 ?Insert@?$dgTree@HH@@QAEPAVdgTreeNode@1@ABHHAA_N@Z 1007a7b0 f i corelib_2009:dgPolygonSoupBuilder.obj + 0001:00079880 ?OptimizeByGroupID@dgPolygonSoupDatabaseBuilder@@AAEXXZ 1007a880 f corelib_2009:dgPolygonSoupBuilder.obj + 0001:00079fe0 ?EndAndOptimize@dgPolygonSoupDatabaseBuilder@@AAEX_N@Z 1007afe0 f corelib_2009:dgPolygonSoupBuilder.obj + 0001:0007a110 ?End@dgPolygonSoupDatabaseBuilder@@QAEX_N@Z 1007b110 f corelib_2009:dgPolygonSoupBuilder.obj + 0001:0007b290 ?BoxTestSimd@FastRayTest@@QBEHABVdgVector@@0@Z 1007c290 f corelib_2009:dgIntersections.obj + 0001:0007b360 ?PolygonIntersectSimd@FastRayTest@@QBEMABVdgVector@@QBMHQBHH@Z 1007c360 f corelib_2009:dgIntersections.obj + 0001:0007b590 ??0FastRayTest@@QAE@ABVdgVector@@0@Z 1007c590 f corelib_2009:dgIntersections.obj + 0001:0007b810 ?BoxTest@FastRayTest@@QBEHABVdgVector@@0@Z 1007c810 f corelib_2009:dgIntersections.obj + 0001:0007b920 ?PolygonIntersect@FastRayTest@@QBEMABVdgVector@@QBMHQBHH@Z 1007c920 f corelib_2009:dgIntersections.obj + 0001:0007bb40 ?dgRayBoxClip@@YA_NAAVdgVector@@0ABV1@1@Z 1007cb40 f corelib_2009:dgIntersections.obj + 0001:0007bea0 ?dgPointToRayDistance@@YA?AVdgVector@@ABV1@00@Z 1007cea0 f corelib_2009:dgIntersections.obj + 0001:0007bfd0 ?dgRayToRayDistance@@YAXABVdgVector@@000AAV1@1@Z 1007cfd0 f corelib_2009:dgIntersections.obj + 0001:0007c390 ?dgPointToTriangleDistance@@YA?AVdgVector@@ABV1@000@Z 1007d390 f corelib_2009:dgIntersections.obj + 0001:0007c8f0 ?dgPointToTriangleDistance@@YA?AVdgBigVector@@ABV1@000@Z 1007d8f0 f corelib_2009:dgIntersections.obj + 0001:0007cc80 ??0dgQuaternion@@QAE@ABVdgVector@@M@Z 1007dc80 f corelib_2009:dgQuaternion.obj + 0001:0007cce0 ??0dgQuaternion@@QAE@ABVdgMatrix@@@Z 1007dce0 f corelib_2009:dgQuaternion.obj + 0001:0007ce70 _ceil 1007de70 f LIBCMT:_ceil_pentium4_.obj + 0001:0007ceb0 __ceil_pentium4 1007deb0 f LIBCMT:_ceil_pentium4_.obj + 0001:0007cf8d __cfltcvt_init 1007df8d f LIBCMT:_fpinit_.obj + 0001:0007cfed __fpmath 1007dfed f LIBCMT:_fpinit_.obj + 0001:0007d010 __ftol2_sse 1007e010 f LIBCMT:ftol2.obj + 0001:0007d019 __ftol2_pentium4 1007e019 f LIBCMT:ftol2.obj + 0001:0007d02c __ftol2_sse_excpt 1007e02c f LIBCMT:ftol2.obj + 0001:0007d046 __ftol2 1007e046 f LIBCMT:ftol2.obj + 0001:0007d0bb _V6_HeapAlloc 1007e0bb f LIBCMT:malloc.obj + 0001:0007d10a _malloc 1007e10a f LIBCMT:malloc.obj + 0001:0007d1d4 _free 1007e1d4 f LIBCMT:free.obj + 0001:0007d270 _memset 1007e270 f LIBCMT:memset.obj + 0001:0007d2f0 _memcpy 1007e2f0 f LIBCMT:memcpy.obj + 0001:0007d660 __alloca_probe 1007e660 LIBCMT:chkstk.obj + 0001:0007d660 __chkstk 1007e660 f LIBCMT:chkstk.obj + 0001:0007d68b __CRT_INIT@12 1007e68b f LIBCMT:dllcrt0.obj + 0001:0007d8b6 __DllMainCRTStartup@12 1007e8b6 f LIBCMT:dllcrt0.obj + 0001:0007d8d9 _sprintf 1007e8d9 f LIBCMT:sprintf.obj + 0001:0007da84 __control87 1007ea84 f i LIBCMT:_ieee87_.obj + 0001:0007dd93 __controlfp 1007ed93 f LIBCMT:_ieee87_.obj + 0001:0007e0a5 __purecall 1007f0a5 f LIBCMT:purevirt.obj + 0001:0007e0d0 _log 1007f0d0 f LIBCMT:_log_.obj + 0001:0007e110 __CIlog 1007f110 f LIBCMT:_log_.obj + 0001:0007e14b __CIlog_default 1007f14b f LIBCMT:_log_.obj + 0001:0007e15f __log_default 1007f15f LIBCMT:_log_.obj + 0001:0007e220 _pow 1007f220 f LIBCMT:_pow_.obj + 0001:0007e260 __CIpow 1007f260 f LIBCMT:_pow_.obj + 0001:0007e29b __CIpow_default 1007f29b f LIBCMT:_pow_.obj + 0001:0007e2b4 __pow_default 1007f2b4 LIBCMT:_pow_.obj + 0001:0007e4b0 __CIsqrt 1007f4b0 f LIBCMT:_sqrt_.obj + 0001:0007e4c4 _sqrt 1007f4c4 LIBCMT:_sqrt_.obj + 0001:0007e624 ___onexitinit 1007f624 f LIBCMT:onexit.obj + 0001:0007e655 __onexit 1007f655 f LIBCMT:onexit.obj + 0001:0007e691 _atexit 1007f691 f LIBCMT:onexit.obj + 0001:0007e6b0 __except_handler3 1007f6b0 f LIBCMT:exsup3.obj + 0001:0007e7ae __seh_longjmp_unwind@4 1007f7ae f LIBCMT:exsup3.obj + 0001:0007e7c9 __endthreadex 1007f7c9 f LIBCMT:threadex.obj + 0001:0007e8ca __beginthreadex 1007f8ca f LIBCMT:threadex.obj + 0001:0007e980 __allmul 1007f980 f LIBCMT:llmul.obj + 0001:0007e9b4 ___libm_error_support 1007f9b4 f LIBCMT:_libm_error_.obj + 0001:0007ec64 __sse2_mathfcns_init 1007fc64 f LIBCMT:_mathfcns_.obj + 0001:0007ec78 __ceil_default 1007fc78 f LIBCMT:_ceil_.obj + 0001:0007ed4d ??0_LocaleUpdate@@QAE@PAUlocaleinfo_struct@@@Z 1007fd4d f i LIBCMT:cvt.obj + 0001:0007edd4 __forcdecpt_l 1007fdd4 f LIBCMT:cvt.obj + 0001:0007ee47 __cropzeros_l 1007fe47 f LIBCMT:cvt.obj + 0001:0007eec9 __positive 1007fec9 f LIBCMT:cvt.obj + 0001:0007eee5 __fassign_l 1007fee5 f LIBCMT:cvt.obj + 0001:0007ef27 __fassign 1007ff27 f LIBCMT:cvt.obj + 0001:0007ef60 __forcdecpt 1007ff60 f LIBCMT:cvt.obj + 0001:0007ef73 __cropzeros 1007ff73 f LIBCMT:cvt.obj + 0001:0007f0f5 __cftoe_l 100800f5 f LIBCMT:cvt.obj + 0001:0007f1c5 __cftoe 100801c5 f LIBCMT:cvt.obj + 0001:0007f1e5 __cftoa_l 100801e5 f LIBCMT:cvt.obj + 0001:0007f64f __cftof_l 1008064f f LIBCMT:cvt.obj + 0001:0007f70a __cftog_l 1008070a f LIBCMT:cvt.obj + 0001:0007f804 __cfltcvt_l 10080804 f LIBCMT:cvt.obj + 0001:0007f88c __cfltcvt 1008088c f LIBCMT:cvt.obj + 0001:0007f8af __initp_misc_cfltcvt_tab 100808af f LIBCMT:cmiscdat.obj + 0001:0007f8d0 __setdefaultprecision 100808d0 f LIBCMT:fp8.obj + 0001:0007f8fb __ms_p5_test_fdiv 100808fb f LIBCMT:_testfdiv_.obj + 0001:0007f939 __ms_p5_mp_test_fdiv 10080939 f LIBCMT:_testfdiv_.obj + 0001:0007f962 __mtinitlocks 10080962 f LIBCMT:mlock.obj + 0001:0007f9ad __mtdeletelocks 100809ad f LIBCMT:mlock.obj + 0001:0007fa04 __unlock 10080a04 f LIBCMT:mlock.obj + 0001:0007fa1b __mtinitlocknum 10080a1b f LIBCMT:mlock.obj + 0001:0007fade __lock 10080ade f LIBCMT:mlock.obj + 0001:0007fb11 ___sbh_find_block 10080b11 f LIBCMT:sbheap.obj + 0001:0007fb41 ___sbh_free_block 10080b41 f LIBCMT:sbheap.obj + 0001:0007fe57 ___sbh_alloc_new_region 10080e57 f LIBCMT:sbheap.obj + 0001:0007ff07 ___sbh_alloc_new_group 10080f07 f LIBCMT:sbheap.obj + 0001:0008000f ___sbh_resize_block 1008100f f LIBCMT:sbheap.obj + 0001:000802f0 ___sbh_alloc_block 100812f0 f LIBCMT:sbheap.obj + 0001:000805d8 __SEH_prolog4 100815d8 f LIBCMT:sehprolg4.obj + 0001:0008061d __SEH_epilog4 1008161d f LIBCMT:sehprolg4.obj + 0001:00080640 __except_handler4 10081640 f LIBCMT:chandler4.obj + 0001:000807cc __heap_init 100817cc f LIBCMT:heapinit.obj + 0001:000807fc __heap_term 100817fc f LIBCMT:heapinit.obj + 0001:00080870 __crt_waiting_on_module_handle 10081870 f LIBCMT:crt0dat.obj + 0001:000808a0 __amsg_exit 100818a0 f LIBCMT:crt0dat.obj + 0001:000808c9 ___crtCorExitProcess 100818c9 f LIBCMT:crt0dat.obj + 0001:000808f4 ___crtExitProcess 100818f4 f LIBCMT:crt0dat.obj + 0001:0008090c __lockexit 1008190c f LIBCMT:crt0dat.obj + 0001:00080915 __unlockexit 10081915 f LIBCMT:crt0dat.obj + 0001:0008093b __initterm_e 1008193b f LIBCMT:crt0dat.obj + 0001:0008095f __cinit 1008195f f LIBCMT:crt0dat.obj + 0001:00080b10 __exit 10081b10 f LIBCMT:crt0dat.obj + 0001:00080b26 __cexit 10081b26 f LIBCMT:crt0dat.obj + 0001:00080b35 __init_pointers 10081b35 f LIBCMT:crt0dat.obj + 0001:00080b83 __NMSG_WRITE 10081b83 f LIBCMT:crt0msg.obj + 0001:00080d2e __FF_MSGBANNER 10081d2e f LIBCMT:crt0msg.obj + 0001:00080d67 __get_errno_from_oserr 10081d67 f LIBCMT:dosmap.obj + 0001:00080da9 __errno 10081da9 f LIBCMT:dosmap.obj + 0001:00080dbc ___doserrno 10081dbc f LIBCMT:dosmap.obj + 0001:00080dcf __dosmaperr 10081dcf f LIBCMT:dosmap.obj + 0001:00080df2 __initp_heap_handler 10081df2 f LIBCMT:handler.obj + 0001:00080e01 __callnewh 10081e01 f LIBCMT:handler.obj + 0001:00080e80 __VEC_memzero 10081e80 f LIBCMT:p4_memset.obj + 0001:00080f96 __VEC_memcpy 10081f96 f LIBCMT:p4_memcpy.obj + 0001:00081079 __encode_pointer 10082079 f LIBCMT:tidtable.obj + 0001:000810eb __encoded_null 100820eb f LIBCMT:tidtable.obj + 0001:000810f4 __decode_pointer 100820f4 f LIBCMT:tidtable.obj + 0001:00081166 ___crtTlsAlloc@4 10082166 f LIBCMT:tidtable.obj + 0001:0008116f ___fls_getvalue@4 1008216f f LIBCMT:tidtable.obj + 0001:00081189 ___get_flsindex 10082189 f LIBCMT:tidtable.obj + 0001:0008118f ___set_flsgetvalue 1008218f f LIBCMT:tidtable.obj + 0001:000811c3 ___fls_setvalue@8 100821c3 f LIBCMT:tidtable.obj + 0001:000811e0 __mtterm 100821e0 f LIBCMT:tidtable.obj + 0001:0008121d __initptd 1008221d f LIBCMT:tidtable.obj + 0001:00081304 __getptd_noexit 10082304 f LIBCMT:tidtable.obj + 0001:0008137d __getptd 1008237d f LIBCMT:tidtable.obj + 0001:00081397 __freefls@4 10082397 f LIBCMT:tidtable.obj + 0001:000814c6 __freeptd 100824c6 f LIBCMT:tidtable.obj + 0001:00081534 __mtinit 10082534 f LIBCMT:tidtable.obj + 0001:000816c1 __malloc_crt 100826c1 f LIBCMT:crtheap.obj + 0001:00081706 __calloc_crt 10082706 f LIBCMT:crtheap.obj + 0001:00081752 __realloc_crt 10082752 f LIBCMT:crtheap.obj + 0001:000817a0 __ioinit 100827a0 f LIBCMT:ioinit.obj + 0001:000819f4 __ioterm 100829f4 f LIBCMT:ioinit.obj + 0001:00081a42 __setenvp 10082a42 f LIBCMT:stdenvp.obj + 0001:00081cba __setargv 10082cba f LIBCMT:stdargv.obj + 0001:00081d75 ___crtGetEnvironmentStringsA 10082d75 f LIBCMT:a_env.obj + 0001:00081eac __RTC_Initialize 10082eac f LIBCMT:_initsect_.obj + 0001:00081ed2 __RTC_Terminate 10082ed2 f LIBCMT:_initsect_.obj + 0001:00081ef8 __fpclear 10082ef8 f LIBCMT:_fpinit_.obj + 0001:00081ef8 __initp_misc_winxfltr 10082ef8 f LIBCMT:winxfltr.obj + 0001:00081ef9 __XcptFilter 10082ef9 f LIBCMT:winxfltr.obj + 0001:00082059 ___CppXcptFilter 10083059 f LIBCMT:winxfltr.obj + 0001:00082079 ___security_init_cookie 10083079 f LIBCMT:gs_support.obj + 0001:0008210f __flsbuf 1008310f f LIBCMT:_flsbuf.obj + 0001:00082319 __output_l 10083319 f LIBCMT:output.obj + 0001:00082eb1 __initp_misc_invarg 10083eb1 f LIBCMT:invarg.obj + 0001:00082ec0 __invoke_watson 10083ec0 f LIBCMT:invarg.obj + 0001:00082fe8 __invalid_parameter 10083fe8 f LIBCMT:invarg.obj + 0001:0008300e __controlfp_s 1008400e f LIBCMT:_contrlfp_.obj + 0001:0008307a __statfp 1008407a f LIBCMT:_fpctrl_.obj + 0001:0008308a __clrfp 1008408a f LIBCMT:_fpctrl_.obj + 0001:0008309b __ctrlfp 1008409b f LIBCMT:_fpctrl_.obj + 0001:000830c4 __set_statfp 100840c4 f LIBCMT:_fpctrl_.obj + 0001:0008311c ___set_fpsr_sse2 1008411c f LIBCMT:_fpctrl_.obj + 0001:0008318e __initp_misc_winsig 1008418e f LIBCMT:winsig.obj + 0001:000831e3 ___get_sigabrt 100841e3 f LIBCMT:winsig.obj + 0001:000831f0 _raise 100841f0 f LIBCMT:winsig.obj + 0001:000833a0 _abort 100843a0 f LIBCMT:abort.obj + 0001:000834b7 __set_abort_behavior 100844b7 f LIBCMT:abort.obj + 0001:000834d8 __initp_misc_purevirt 100844d8 f LIBCMT:inithelp.obj + 0001:000834f0 __CIlog_pentium4 100844f0 f LIBCMT:_log_pentium4_.obj + 0001:00083508 __log_pentium4 10084508 LIBCMT:_log_pentium4_.obj + 0001:00083771 __fFEXP 10084771 LIBCMT:_87tran_.obj + 0001:000837d8 __rtinfpopse 100847d8 LIBCMT:_87tran_.obj + 0001:000837da __rtinfnpopse 100847da LIBCMT:_87tran_.obj + 0001:000837ea __fFLN 100847ea LIBCMT:_87tran_.obj + 0001:0008389f __rtinfpop 1008489f LIBCMT:_87tran_.obj + 0001:000838a1 __rtinfnpop 100848a1 LIBCMT:_87tran_.obj + 0001:000838be __ffexpm1 100848be LIBCMT:_87tran_.obj + 0001:00083970 __trandisp1 10084970 f LIBCMT:_87disp_.obj + 0001:000839d7 __trandisp2 100849d7 f LIBCMT:_87disp_.obj + 0001:00083a63 __rttospopde 10084a63 LIBCMT:_87disp_.obj + 0001:00083a68 __rttospop 10084a68 LIBCMT:_87disp_.obj + 0001:00083a6a __rtnospop 10084a6a LIBCMT:_87disp_.obj + 0001:00083a6c __rttosnpop 10084a6c LIBCMT:_87disp_.obj + 0001:00083a6d __rtnospopde 10084a6d LIBCMT:_87disp_.obj + 0001:00083a74 __rtzeropop 10084a74 LIBCMT:_87disp_.obj + 0001:00083a76 __rtzeronpop 10084a76 LIBCMT:_87disp_.obj + 0001:00083a7b __rtonepop 10084a7b LIBCMT:_87disp_.obj + 0001:00083a7d __rtonenpop 10084a7d LIBCMT:_87disp_.obj + 0001:00083a82 __tosnan1 10084a82 LIBCMT:_87disp_.obj + 0001:00083aad __nosnan2 10084aad LIBCMT:_87disp_.obj + 0001:00083aaf __tosnan2 10084aaf LIBCMT:_87disp_.obj + 0001:00083ad7 __nan2 10084ad7 LIBCMT:_87disp_.obj + 0001:00083b16 __rtindfpop 10084b16 LIBCMT:_87disp_.obj + 0001:00083b18 __rtindfnpop 10084b18 LIBCMT:_87disp_.obj + 0001:00083b29 __rttosnpopde 10084b29 LIBCMT:_87disp_.obj + 0001:00083b33 __rtchsifneg 10084b33 LIBCMT:_87disp_.obj + 0001:00083b40 __twoToTOS 10084b40 f LIBCMT:_common_.obj + 0001:00083b55 __load_CW 10084b55 f LIBCMT:_common_.obj + 0001:00083b6c __convertTOStoQNaN 10084b6c f LIBCMT:_common_.obj + 0001:00083b85 __fload_withFB 10084b85 f LIBCMT:_common_.obj + 0001:00083bc8 __checkTOS_withFB 10084bc8 f LIBCMT:_common_.obj + 0001:00083bde __fast_exit 10084bde f LIBCMT:_common_.obj + 0001:00083beb __math_exit 10084beb f LIBCMT:_common_.obj + 0001:00083c15 __check_overflow_exit 10084c15 f LIBCMT:_common_.obj + 0001:00083c29 __check_range_exit 10084c29 f LIBCMT:_common_.obj + 0001:00083cd0 __startTwoArgErrorHandling 10084cd0 f LIBCMT:_genexcep_.obj + 0001:00083ce7 __startOneArgErrorHandling 10084ce7 f LIBCMT:_genexcep_.obj + 0001:00083d30 __CIpow_pentium4 10084d30 f LIBCMT:_pow_pentium4_.obj + 0001:00083d49 __pow_pentium4 10084d49 LIBCMT:_pow_pentium4_.obj + 0001:00084890 __d_inttype 10085890 f LIBCMT:_powhlp_.obj + 0001:000848f6 __powhlp 100858f6 f LIBCMT:_powhlp_.obj + 0001:00084a36 __msize 10085a36 f LIBCMT:msize.obj + 0001:00084ad9 _CallDestructExceptionObject 10085ad9 f LIBCMT:calldtor.obj + 0001:00084b14 __global_unwind2 10085b14 f LIBCMT:exsup.obj + 0001:00084b79 __local_unwind2 10085b79 f LIBCMT:exsup.obj + 0001:00084bfd __abnormal_termination 10085bfd f LIBCMT:exsup.obj + 0001:00084c20 __NLG_Notify1 10085c20 f LIBCMT:exsup.obj + 0001:00084c29 __NLG_Notify 10085c29 f LIBCMT:exsup.obj + 0001:00084c40 __NLG_Dispatch 10085c40 LIBCMT:exsup.obj + 0001:00084c40 __NLG_Dispatch2 10085c40 LIBCMT:exsup.obj + 0001:00084c48 __NLG_Call 10085c48 f LIBCMT:exsup.obj + 0001:00084c4a __NLG_Return2 10085c4a LIBCMT:exsup.obj + 0001:00084d10 __ValidateEH3RN 10085d10 f LIBCMT:eh3valid.obj + 0001:00085060 __ValidateImageBase 10086060 f LIBCMT:pesect.obj + 0001:000850a0 __FindPESection 100860a0 f LIBCMT:pesect.obj + 0001:000850f0 __IsNonwritableInCurrentImage 100860f0 f LIBCMT:pesect.obj + 0001:000851ad __matherr 100861ad f LIBCMT:_matherr_.obj + 0001:00085200 __get_sse2_info 10086200 f LIBCMT:cpu_disp.obj + 0001:00085262 ___sse2_available_init 10086262 f LIBCMT:cpu_disp.obj + 0001:0008526f __raise_exc_ex 1008626f f LIBCMT:_fpexcept_.obj + 0001:0008554b __raise_exc 1008654b f LIBCMT:_fpexcept_.obj + 0001:0008556e __handle_exc 1008656e f LIBCMT:_fpexcept_.obj + 0001:00085750 __set_errno_from_matherr 10086750 f LIBCMT:_fpexcept_.obj + 0001:0008577d __errcode 1008677d f LIBCMT:_fpexcept_.obj + 0001:000857b1 __umatherr 100867b1 f LIBCMT:_fpexcept_.obj + 0001:00085851 __handle_qnan1 10086851 f LIBCMT:_fpexcept_.obj + 0001:000858a6 __except1 100868a6 f LIBCMT:_fpexcept_.obj + 0001:0008596f __frnd 1008696f f LIBCMT:_frnd_.obj + 0001:00085983 __set_exp 10086983 f LIBCMT:_util_.obj + 0001:000859af __sptype 100869af f LIBCMT:_util_.obj + 0001:00085a0f __decomp 10086a0f f LIBCMT:_util_.obj + 0001:00085ad0 _strrchr 10086ad0 f LIBCMT:strrchr.obj + 0001:00085d23 ___updatetmbcinfo 10086d23 f LIBCMT:mbctype.obj + 0001:00085e43 __setmbcp_nolock 10086e43 f LIBCMT:mbctype.obj + 0001:00086028 __setmbcp 10087028 f LIBCMT:mbctype.obj + 0001:000861c2 ___initmbctable 100871c2 f LIBCMT:mbctype.obj + 0001:000861e0 ___freetlocinfo 100871e0 f LIBCMT:setlocal.obj + 0001:00086329 ___addlocaleref 10087329 f LIBCMT:setlocal.obj + 0001:000863b8 ___removelocaleref 100873b8 f LIBCMT:setlocal.obj + 0001:0008648f ___updatetlocinfo 1008748f f LIBCMT:setlocal.obj + 0001:00086505 __isdigit_l 10087505 f i LIBCMT:_ctype.obj + 0001:00086556 _isdigit 10087556 f i LIBCMT:_ctype.obj + 0001:00086584 __tolower_l 10087584 f LIBCMT:tolower.obj + 0001:00086699 _tolower 10087699 f LIBCMT:tolower.obj + 0001:000866c5 __atodbl_l 100876c5 f LIBCMT:atodbl.obj + 0001:0008676d __atoflt_l 1008776d f LIBCMT:atodbl.obj + 0001:00086820 _memmove 10087820 f LIBCMT:memmove.obj + 0001:00086b90 _strlen 10087b90 f LIBCMT:strlen.obj + 0001:00086c1b _strcpy_s 10087c1b f LIBCMT:strcpy_s.obj + 0001:00086c83 __fptostr 10087c83 f LIBCMT:_fptostr.obj + 0001:00086d42 ___dtold 10087d42 f LIBCMT:_cfout_.obj + 0001:00086dff __fltout2 10087dff f LIBCMT:_cfout_.obj + 0001:00086e8f @__security_check_cookie@4 10087e8f f LIBCMT:secchk.obj + 0001:00086ea0 __alldvrm 10087ea0 f LIBCMT:lldvrm.obj + 0001:00086f80 __aullshr 10087f80 f LIBCMT:ullshr.obj + 0001:00086f9f __fptrap 10087f9f f LIBCMT:crt0fp.obj + 0001:00086fa8 __initp_misc_initcrit 10087fa8 f LIBCMT:initcrit.obj + 0001:00086fb7 ___crtInitCritSecAndSpinCount 10087fb7 f LIBCMT:initcrit.obj + 0001:00087018 __local_unwind4 10088018 f LIBCMT:exsup4.obj + 0001:000870ee __seh_longjmp_unwind4@4 100880ee f LIBCMT:exsup4.obj + 0001:0008710a @_EH4_CallFilterFunc@8 1008810a f LIBCMT:exsup4.obj + 0001:00087121 @_EH4_TransferToHandler@8 10088121 f LIBCMT:exsup4.obj + 0001:0008713a @_EH4_GlobalUnwind@4 1008813a f LIBCMT:exsup4.obj + 0001:00087154 @_EH4_LocalUnwind@16 10088154 f LIBCMT:exsup4.obj + 0001:0008716b ?terminate@@YAXXZ 1008816b f LIBCMT:hooks.obj + 0001:000871a4 __initp_eh_hooks 100881a4 f LIBCMT:hooks.obj + 0001:000871b5 __initp_misc_rand_s 100881b5 f LIBCMT:rand_s.obj + 0001:000871c4 ___crtMessageBoxA 100881c4 f LIBCMT:crtmbox.obj + 0001:0008732d _strcat_s 1008832d f LIBCMT:strcat_s.obj + 0001:000873a1 _strncpy_s 100883a1 f LIBCMT:strncpy_s.obj + 0001:00087456 __set_error_mode 10088456 f LIBCMT:errmode.obj + 0001:000874a1 __calloc_impl 100884a1 f LIBCMT:calloc_impl.obj + 0001:000875bf _realloc 100885bf f LIBCMT:realloc.obj + 0001:0008782d __ismbblead 1008882d f LIBCMT:ismbbyte.obj + 0001:00087845 __lseeki64_nolock 10088845 f LIBCMT:lseeki64.obj + 0001:000878ca __lseeki64 100888ca f LIBCMT:lseeki64.obj + 0001:000879e3 __write_nolock 100889e3 f LIBCMT:write.obj + 0001:00088116 __write 10089116 f LIBCMT:write.obj + 0001:000881f2 __getbuf 100891f2 f LIBCMT:_getbuf.obj + 0001:0008823b __isatty 1008923b f LIBCMT:isatty.obj + 0001:0008829f ___iob_func 1008929f f LIBCMT:_file.obj + 0001:000882a5 ___initstdio 100892a5 f LIBCMT:_file.obj + 0001:00088356 ___endstdio 10089356 f LIBCMT:_file.obj + 0001:00088376 __lock_file 10089376 f LIBCMT:_file.obj + 0001:000883b7 __lock_file2 100893b7 f LIBCMT:_file.obj + 0001:000883e9 __unlock_file 100893e9 f LIBCMT:_file.obj + 0001:00088425 __unlock_file2 10089425 f LIBCMT:_file.obj + 0001:00088454 __fileno 10089454 f LIBCMT:fileno.obj + 0001:00088486 __get_printf_count_output 10089486 f LIBCMT:printf.obj + 0001:0008849c __wctomb_s_l 1008949c f LIBCMT:wctomb.obj + 0001:00088608 _wctomb_s 10089608 f LIBCMT:wctomb.obj + 0001:00088625 __isleadbyte_l 10089625 f i LIBCMT:_wctype.obj + 0001:0008865d _isleadbyte 1008965d f i LIBCMT:_wctype.obj + 0001:00088670 __aulldvrm 10089670 f LIBCMT:ulldvrm.obj + 0001:00088705 __crt_debugger_hook 10089705 f LIBCMT:dbghook.obj + 0001:0008870d __freea 1008970d f i LIBCMT:a_loc.obj + 0001:00088730 _fdiv_main_routine 10089730 f LIBCMT:_adj_fdiv_.obj + 0001:00088847 __adj_fdiv_r 10089847 f LIBCMT:_adj_fdiv_.obj + 0001:00088ce6 __fdivp_sti_st 10089ce6 f LIBCMT:_adj_fdiv_.obj + 0001:00088cf9 __fdivrp_sti_st 10089cf9 f LIBCMT:_adj_fdiv_.obj + 0001:00088d0c __adj_fdiv_m32 10089d0c f LIBCMT:_adj_fdiv_.obj + 0001:00088d58 __adj_fdiv_m64 10089d58 f LIBCMT:_adj_fdiv_.obj + 0001:00088da4 __adj_fdiv_m16i 10089da4 f LIBCMT:_adj_fdiv_.obj + 0001:00088dd8 __adj_fdiv_m32i 10089dd8 f LIBCMT:_adj_fdiv_.obj + 0001:00088e0c __adj_fdivr_m32 10089e0c f LIBCMT:_adj_fdiv_.obj + 0001:00088e58 __adj_fdivr_m64 10089e58 f LIBCMT:_adj_fdiv_.obj + 0001:00088ea4 __adj_fdivr_m16i 10089ea4 f LIBCMT:_adj_fdiv_.obj + 0001:00088ed8 __adj_fdivr_m32i 10089ed8 f LIBCMT:_adj_fdiv_.obj + 0001:00088f0c __safe_fdiv 10089f0c f LIBCMT:_adj_fdiv_.obj + 0001:00088f21 __safe_fdivr 10089f21 f LIBCMT:_adj_fdiv_.obj + 0001:00088f36 __fprem_common 10089f36 f LIBCMT:_adj_fdiv_.obj + 0001:0008913c __adj_fprem 1008a13c f LIBCMT:_adj_fdiv_.obj + 0001:000891ee __fprem1_common 1008a1ee f LIBCMT:_adj_fdiv_.obj + 0001:000893f4 __adj_fprem1 1008a3f4 f LIBCMT:_adj_fdiv_.obj + 0001:000894a9 __safe_fprem 1008a4a9 f LIBCMT:_adj_fdiv_.obj + 0001:000894af __safe_fprem1 1008a4af f LIBCMT:_adj_fdiv_.obj + 0001:000894b5 __adj_fpatan 1008a4b5 f LIBCMT:_adj_fdiv_.obj + 0001:000894b8 __adj_fptan 1008a4b8 f LIBCMT:_adj_fdiv_.obj + 0001:000894bb __87except 1008a4bb f LIBCMT:_87except_.obj + 0001:000895fa __fpclass 1008a5fa f LIBCMT:_ieeemisc_.obj + 0001:00089a33 ___crtLCMapStringA 1008aa33 f LIBCMT:a_map.obj + 0001:00089c32 ___crtGetStringTypeA 1008ac32 f LIBCMT:a_str.obj + 0001:00089c74 ___free_lc_time 1008ac74 f LIBCMT:inittime.obj + 0001:00089e09 ___free_lconv_num 1008ae09 f LIBCMT:initnum.obj + 0001:00089e4e ___free_lconv_mon 1008ae4e f LIBCMT:initmon.obj + 0001:00089ee0 _strcspn 1008aee0 f LIBCMT:strcspn.obj + 0001:00089f30 _strcmp 1008af30 f LIBCMT:strcmp.obj + 0001:00089fc0 _strpbrk 1008afc0 f LIBCMT:strpbrk.obj + 0001:0008a000 __isctype_l 1008b000 f LIBCMT:isctype.obj + 0001:0008a0b8 __ld12tod 1008b0b8 f LIBCMT:_intrncvt_.obj + 0001:0008a5fc __ld12tof 1008b5fc f LIBCMT:_intrncvt_.obj + 0001:0008ab40 ___strgtold12_l 1008bb40 f LIBCMT:_strgtold_.obj + 0001:0008b238 _$I10_OUTPUT 1008c238 f LIBCMT:_x10fout_.obj + 0001:0008bb5c ___report_gsfailure 1008cb5c f LIBCMT:gs_report.obj + 0001:0008bc62 __free_osfhnd 1008cc62 f LIBCMT:osfinfo.obj + 0001:0008bce8 __get_osfhandle 1008cce8 f LIBCMT:osfinfo.obj + 0001:0008bd5f ___lock_fhandle 1008cd5f f LIBCMT:osfinfo.obj + 0001:0008bdff __unlock_fhandle 1008cdff f LIBCMT:osfinfo.obj + 0001:0008be26 __putwch_nolock 1008ce26 f LIBCMT:putwch.obj + 0001:0008beeb __mbtowc_l 1008ceeb f LIBCMT:mbtowc.obj + 0001:0008c002 _mbtowc 1008d002 f LIBCMT:mbtowc.obj + 0001:0008c01c __fcloseall 1008d01c f LIBCMT:closeall.obj + 0001:0008c0bb __flush 1008d0bb f LIBCMT:fflush.obj + 0001:0008c123 __fflush_nolock 1008d123 f LIBCMT:fflush.obj + 0001:0008c245 __flushall 1008d245 f LIBCMT:fflush.obj + 0001:0008c47d _strtol 1008d47d f LIBCMT:strtol.obj + 0001:0008c4b0 __alloca_probe_16 1008d4b0 f LIBCMT:alloca16.obj + 0001:0008c4c6 __alloca_probe_8 1008d4c6 LIBCMT:alloca16.obj + 0001:0008c4dc ___ansicp 1008d4dc f LIBCMT:convrtcp.obj + 0001:0008c525 ___convertcp 1008d525 f LIBCMT:convrtcp.obj + 0001:0008c6d9 _atol 1008d6d9 f LIBCMT:atox.obj + 0001:0008c6ef ___mtold12 1008d6ef f LIBCMT:_mantold_.obj + 0001:0008c8bd ___initconout 1008d8bd f LIBCMT:initcon.obj + 0001:0008c8dc ___termcon 1008d8dc f LIBCMT:initcon.obj + 0001:0008c909 __fclose_nolock 1008d909 f LIBCMT:fclose.obj + 0001:0008c980 _fclose 1008d980 f LIBCMT:fclose.obj + 0001:0008c9fc __commit 1008d9fc f LIBCMT:commit.obj + 0001:0008cae0 ___ascii_strnicmp 1008dae0 f LIBCMT:_strnicm.obj + 0001:0008cb41 __close_nolock 1008db41 f LIBCMT:close.obj + 0001:0008cbdd __close 1008dbdd f LIBCMT:close.obj + 0001:0008ccaa __freebuf 1008dcaa f LIBCMT:_freebuf.obj + 0001:0008ccf0 _strchr 1008dcf0 f LIBCMT:strchr.obj + 0001:0008ccf6 ___from_strstr_to_strchr 1008dcf6 LIBCMT:strchr.obj + 0001:0008cdae _RtlUnwind@16 1008ddae f kernel32:KERNEL32.dll + 0002:00000000 __imp__Sleep@4 1008e000 kernel32:KERNEL32.dll + 0002:00000004 __imp__InterlockedExchange@8 1008e004 kernel32:KERNEL32.dll + 0002:00000008 __imp__GetSystemInfo@4 1008e008 kernel32:KERNEL32.dll + 0002:0000000c __imp__CloseHandle@4 1008e00c kernel32:KERNEL32.dll + 0002:00000010 __imp__WaitForMultipleObjects@16 1008e010 kernel32:KERNEL32.dll + 0002:00000014 __imp__DeleteCriticalSection@4 1008e014 kernel32:KERNEL32.dll + 0002:00000018 __imp__SetEvent@4 1008e018 kernel32:KERNEL32.dll + 0002:0000001c __imp__LeaveCriticalSection@4 1008e01c kernel32:KERNEL32.dll + 0002:00000020 __imp__ReleaseSemaphore@12 1008e020 kernel32:KERNEL32.dll + 0002:00000024 __imp__EnterCriticalSection@4 1008e024 kernel32:KERNEL32.dll + 0002:00000028 __imp__WaitForSingleObject@8 1008e028 kernel32:KERNEL32.dll + 0002:0000002c __imp__InterlockedIncrement@4 1008e02c kernel32:KERNEL32.dll + 0002:00000030 __imp__InterlockedDecrement@4 1008e030 kernel32:KERNEL32.dll + 0002:00000034 __imp__InitializeCriticalSection@4 1008e034 kernel32:KERNEL32.dll + 0002:00000038 __imp__CreateEventA@16 1008e038 kernel32:KERNEL32.dll + 0002:0000003c __imp__CreateSemaphoreA@16 1008e03c kernel32:KERNEL32.dll + 0002:00000040 __imp__HeapAlloc@12 1008e040 kernel32:KERNEL32.dll + 0002:00000044 __imp__GetLastError@0 1008e044 kernel32:KERNEL32.dll + 0002:00000048 __imp__HeapFree@12 1008e048 kernel32:KERNEL32.dll + 0002:0000004c __imp__GetCurrentThreadId@0 1008e04c kernel32:KERNEL32.dll + 0002:00000050 __imp__GetCommandLineA@0 1008e050 kernel32:KERNEL32.dll + 0002:00000054 __imp__ExitThread@4 1008e054 kernel32:KERNEL32.dll + 0002:00000058 __imp__CreateThread@24 1008e058 kernel32:KERNEL32.dll + 0002:0000005c __imp__GetProcAddress@8 1008e05c kernel32:KERNEL32.dll + 0002:00000060 __imp__GetModuleHandleA@4 1008e060 kernel32:KERNEL32.dll + 0002:00000064 __imp__VirtualFree@12 1008e064 kernel32:KERNEL32.dll + 0002:00000068 __imp__VirtualAlloc@16 1008e068 kernel32:KERNEL32.dll + 0002:0000006c __imp__HeapReAlloc@16 1008e06c kernel32:KERNEL32.dll + 0002:00000070 __imp__HeapCreate@12 1008e070 kernel32:KERNEL32.dll + 0002:00000074 __imp__HeapDestroy@4 1008e074 kernel32:KERNEL32.dll + 0002:00000078 __imp__GetModuleHandleW@4 1008e078 kernel32:KERNEL32.dll + 0002:0000007c __imp__ExitProcess@4 1008e07c kernel32:KERNEL32.dll + 0002:00000080 __imp__WriteFile@20 1008e080 kernel32:KERNEL32.dll + 0002:00000084 __imp__GetStdHandle@4 1008e084 kernel32:KERNEL32.dll + 0002:00000088 __imp__GetModuleFileNameA@12 1008e088 kernel32:KERNEL32.dll + 0002:0000008c __imp__TlsGetValue@4 1008e08c kernel32:KERNEL32.dll + 0002:00000090 __imp__TlsAlloc@0 1008e090 kernel32:KERNEL32.dll + 0002:00000094 __imp__TlsSetValue@8 1008e094 kernel32:KERNEL32.dll + 0002:00000098 __imp__TlsFree@4 1008e098 kernel32:KERNEL32.dll + 0002:0000009c __imp__SetLastError@4 1008e09c kernel32:KERNEL32.dll + 0002:000000a0 __imp__SetHandleCount@4 1008e0a0 kernel32:KERNEL32.dll + 0002:000000a4 __imp__GetFileType@4 1008e0a4 kernel32:KERNEL32.dll + 0002:000000a8 __imp__GetStartupInfoA@4 1008e0a8 kernel32:KERNEL32.dll + 0002:000000ac __imp__FreeEnvironmentStringsA@4 1008e0ac kernel32:KERNEL32.dll + 0002:000000b0 __imp__GetEnvironmentStrings@0 1008e0b0 kernel32:KERNEL32.dll + 0002:000000b4 __imp__FreeEnvironmentStringsW@4 1008e0b4 kernel32:KERNEL32.dll + 0002:000000b8 __imp__WideCharToMultiByte@32 1008e0b8 kernel32:KERNEL32.dll + 0002:000000bc __imp__GetEnvironmentStringsW@0 1008e0bc kernel32:KERNEL32.dll + 0002:000000c0 __imp__QueryPerformanceCounter@4 1008e0c0 kernel32:KERNEL32.dll + 0002:000000c4 __imp__GetTickCount@0 1008e0c4 kernel32:KERNEL32.dll + 0002:000000c8 __imp__GetCurrentProcessId@0 1008e0c8 kernel32:KERNEL32.dll + 0002:000000cc __imp__GetSystemTimeAsFileTime@4 1008e0cc kernel32:KERNEL32.dll + 0002:000000d0 __imp__TerminateProcess@8 1008e0d0 kernel32:KERNEL32.dll + 0002:000000d4 __imp__GetCurrentProcess@0 1008e0d4 kernel32:KERNEL32.dll + 0002:000000d8 __imp__UnhandledExceptionFilter@4 1008e0d8 kernel32:KERNEL32.dll + 0002:000000dc __imp__SetUnhandledExceptionFilter@4 1008e0dc kernel32:KERNEL32.dll + 0002:000000e0 __imp__IsDebuggerPresent@0 1008e0e0 kernel32:KERNEL32.dll + 0002:000000e4 __imp__HeapSize@12 1008e0e4 kernel32:KERNEL32.dll + 0002:000000e8 __imp__RtlUnwind@16 1008e0e8 kernel32:KERNEL32.dll + 0002:000000ec __imp__VirtualQuery@12 1008e0ec kernel32:KERNEL32.dll + 0002:000000f0 __imp__RaiseException@16 1008e0f0 kernel32:KERNEL32.dll + 0002:000000f4 __imp__GetCPInfo@8 1008e0f4 kernel32:KERNEL32.dll + 0002:000000f8 __imp__GetACP@0 1008e0f8 kernel32:KERNEL32.dll + 0002:000000fc __imp__GetOEMCP@0 1008e0fc kernel32:KERNEL32.dll + 0002:00000100 __imp__IsValidCodePage@4 1008e100 kernel32:KERNEL32.dll + 0002:00000104 __imp__InitializeCriticalSectionAndSpinCount@8 1008e104 kernel32:KERNEL32.dll + 0002:00000108 __imp__LoadLibraryA@4 1008e108 kernel32:KERNEL32.dll + 0002:0000010c __imp__SetFilePointer@16 1008e10c kernel32:KERNEL32.dll + 0002:00000110 __imp__GetConsoleCP@0 1008e110 kernel32:KERNEL32.dll + 0002:00000114 __imp__GetConsoleMode@8 1008e114 kernel32:KERNEL32.dll + 0002:00000118 __imp__GetLocaleInfoA@16 1008e118 kernel32:KERNEL32.dll + 0002:0000011c __imp__LCMapStringA@24 1008e11c kernel32:KERNEL32.dll + 0002:00000120 __imp__MultiByteToWideChar@24 1008e120 kernel32:KERNEL32.dll + 0002:00000124 __imp__LCMapStringW@24 1008e124 kernel32:KERNEL32.dll + 0002:00000128 __imp__GetStringTypeA@20 1008e128 kernel32:KERNEL32.dll + 0002:0000012c __imp__GetStringTypeW@16 1008e12c kernel32:KERNEL32.dll + 0002:00000130 __imp__SetStdHandle@8 1008e130 kernel32:KERNEL32.dll + 0002:00000134 __imp__WriteConsoleA@20 1008e134 kernel32:KERNEL32.dll + 0002:00000138 __imp__GetConsoleOutputCP@0 1008e138 kernel32:KERNEL32.dll + 0002:0000013c __imp__WriteConsoleW@20 1008e13c kernel32:KERNEL32.dll + 0002:00000140 __imp__CreateFileA@28 1008e140 kernel32:KERNEL32.dll + 0002:00000144 __imp__FlushFileBuffers@4 1008e144 kernel32:KERNEL32.dll + 0002:00000148 \177KERNEL32_NULL_THUNK_DATA 1008e148 kernel32:KERNEL32.dll + 0002:0000014c ___xc_a 1008e14c LIBCMT:crt0init.obj + 0002:00000154 ___xc_z 1008e154 LIBCMT:crt0init.obj + 0002:00000158 ___xi_a 1008e158 LIBCMT:crt0init.obj + 0002:00000170 ___xi_z 1008e170 LIBCMT:crt0init.obj + 0002:00000174 ___xp_a 1008e174 LIBCMT:crt0init.obj + 0002:00000180 ___xp_z 1008e180 LIBCMT:crt0init.obj + 0002:00000184 ___xt_a 1008e184 LIBCMT:crt0init.obj + 0002:00000188 ___xt_z 1008e188 LIBCMT:crt0init.obj + 0002:000001b0 ??_C@_0IE@IMGBDMJL@Newton?5Game?5Dynamics?5is?5the?5prop@ 1008e1b0 Newton.obj + 0002:00000238 __real@3727c5ac 1008e238 Newton.obj + 0002:00000240 __real@3ff0000000000000 1008e240 Newton.obj + 0002:00000248 __real@3f800000 1008e248 Newton.obj + 0002:00000250 __real@3f947ae140000000 1008e250 Newton.obj + 0002:00000258 __real@0000000000000000 1008e258 Newton.obj + 0002:00000260 __real@3ddb7cdfe0000000 1008e260 Newton.obj + 0002:00000268 __real@3c888889 1008e268 Newton.obj + 0002:0000026c __real@3a83126f 1008e26c Newton.obj + 0002:00000270 __real@4479ffff 1008e270 Newton.obj + 0002:00000278 __real@408f3fffe0000000 1008e278 Newton.obj + 0002:00000280 __real@426fffff 1008e280 Newton.obj + 0002:00000288 __real@404dffffe0000000 1008e288 Newton.obj + 0002:00000290 __real@3e000000 1008e290 Newton.obj + 0002:00000298 __real@3fc0000000000000 1008e298 Newton.obj + 0002:000002a0 __real@40000000 1008e2a0 Newton.obj + 0002:000002a4 __real@3c23d70a 1008e2a4 Newton.obj + 0002:000002a8 __real@3f333333 1008e2a8 Newton.obj + 0002:000002b0 __real@42fc6bf520000000 1008e2b0 Newton.obj + 0002:000002b8 __real@3e45798ee0000000 1008e2b8 Newton.obj + 0002:000002c0 __real@3f1a36e2e0000000 1008e2c0 Newton.obj + 0002:000002c8 __real@358637bd 1008e2c8 Newton.obj + 0002:000002cc __real@58aa87bf 1008e2cc Newton.obj + 0002:000002d0 __real@4059000000000000 1008e2d0 Newton.obj + 0002:000002d8 __real@3f50624de0000000 1008e2d8 Newton.obj + 0002:000002e0 __real@3feff7cee0000000 1008e2e0 Newton.obj + 0002:000002e8 __real@42c80000 1008e2e8 Newton.obj + 0002:000002ec __real@c2c80000 1008e2ec Newton.obj + 0002:000002f0 __real@3d4ccccd 1008e2f0 NewtonAproximateConvexPartition.obj + 0002:000002f4 ??_7NewtonUserJoint@@6B@ 1008e2f4 NewtonClass.obj + 0002:00000324 __real@58635fa9 1008e324 NewtonClass.obj + 0002:00000328 __real@430c6bf520000000 1008e328 NewtonClass.obj + 0002:00000330 __real@ba83126f 1008e330 NewtonClass.obj + 0002:00000334 __real@d8635fa9 1008e334 NewtonClass.obj + 0002:00000338 __real@c30c6bf520000000 1008e338 NewtonClass.obj + 0002:00000340 __real@4058c00000000000 1008e340 NewtonClass.obj + 0002:00000348 ??_7NewtonMeshEffect@@6B@ 1008e348 NewtonMeshEffect.obj + 0002:0000034c __real@3f19999a 1008e34c NewtonMeshEffect.obj + 0002:00000350 __real@3fe0000000000000 1008e350 NewtonMeshEffect.obj + 0002:00000358 __real@3ff921fb00000000 1008e358 NewtonMeshEffect.obj + 0002:00000360 __real@3fc45f30c0000000 1008e360 NewtonMeshEffect.obj + 0002:00000368 __real@3f7ff972 1008e368 NewtonMeshEffect.obj + 0002:00000370 __real@3fefff2e40000000 1008e370 NewtonMeshEffect.obj + 0002:00000378 __real@bf7ff972 1008e378 NewtonMeshEffect.obj + 0002:00000380 __real@bfefff2e40000000 1008e380 NewtonMeshEffect.obj + 0002:00000388 __real@401921fb00000000 1008e388 NewtonMeshEffect.obj + 0002:00000390 __real@3fefae1480000000 1008e390 NewtonMeshEffect.obj + 0002:00000398 __real@d01502f9 1008e398 NewtonMeshEffect.obj + 0002:0000039c __real@501502f9 1008e39c NewtonMeshEffect.obj + 0002:000003a0 __real@3c9cd2b2a0000000 1008e3a0 NewtonMeshEffect.obj + 0002:000003a8 __real@b727c5ac 1008e3a8 NewtonMeshEffect.obj + 0002:000003ac ??_C@_0P@GHFPNOJB@bad?5allocation?$AA@ 1008e3ac NewtonStdAfx.obj + 0002:000003d0 ??_7dgCollisionPoint@@6B@ 1008e3d0 physics_2009:dgWorld.obj + 0002:00000444 ??_C@_04IABPNMKE@simd?$AA@ 1008e444 physics_2009:dgWorld.obj + 0002:0000044c ??_C@_03MKEPLMIM@x87?$AA@ 1008e44c physics_2009:dgWorld.obj + 0002:00000450 ??_7dgWorkerThread@@6B@ 1008e450 physics_2009:dgWorld.obj + 0002:00000458 ??_7dgSetTrreadRoundMode@dgWorld@@6B@ 1008e458 physics_2009:dgWorld.obj + 0002:00000460 ??_7dgSolverWorlkerThreads@@6B@ 1008e460 physics_2009:dgWorld.obj + 0002:00000468 ??_7dgParallelSolverClear@@6B@ 1008e468 physics_2009:dgWorld.obj + 0002:00000470 ??_7dgParallelSolverBodyInertia@@6B@ 1008e470 physics_2009:dgWorld.obj + 0002:00000478 ??_7dgParallelSolverUpdateVeloc@@6B@ 1008e478 physics_2009:dgWorld.obj + 0002:00000480 ??_7dgParallelSolverUpdateForce@@6B@ 1008e480 physics_2009:dgWorld.obj + 0002:00000488 ??_7dgParallelSolverCalculateForces@@6B@ 1008e488 physics_2009:dgWorld.obj + 0002:00000490 ??_7dgParallelSolverInitInternalForces@@6B@ 1008e490 physics_2009:dgWorld.obj + 0002:00000498 ??_7dgParallelSolverBuildJacobianRows@@6B@ 1008e498 physics_2009:dgWorld.obj + 0002:000004a0 ??_7dgParallelSolverJointAcceleration@@6B@ 1008e4a0 physics_2009:dgWorld.obj + 0002:000004a8 ??_7dgParallelSolverInitFeedbackUpdate@@6B@ 1008e4a8 physics_2009:dgWorld.obj + 0002:000004b0 ??_7dgParallelSolverBuildJacobianMatrix@@6B@ 1008e4b0 physics_2009:dgWorld.obj + 0002:000004b8 __real@58e35fa9 1008e4b8 physics_2009:dgWorld.obj + 0002:000004bc __real@3dd60419 1008e4bc physics_2009:dgWorld.obj + 0002:000004c0 __real@3f611f0c3704ff40 1008e4c0 physics_2009:dgWorld.obj + 0002:000004c8 __real@3dcccccd 1008e4c8 physics_2009:dgWorld.obj + 0002:000004d0 __real@3ff6666660000000 1008e4d0 physics_2009:dgWorld.obj + 0002:000004d8 __real@3ff8000000000000 1008e4d8 physics_2009:dgWorld.obj + 0002:000004e0 __real@3c23d70b 1008e4e0 physics_2009:dgWorld.obj + 0002:000004e4 __real@3e800000 1008e4e4 physics_2009:dgWorld.obj + 0002:000004e8 __real@60ad78ec 1008e4e8 physics_2009:dgWorldDynamicUpdate.obj + 0002:000004ec __real@233877aa 1008e4ec physics_2009:dgWorldDynamicUpdate.obj + 0002:000004f0 __real@40400000 1008e4f0 physics_2009:dgWorldDynamicUpdate.obj + 0002:000004f4 __real@bf800000 1008e4f4 physics_2009:dgWorldDynamicUpdate.obj + 0002:000004f8 __real@40800000 1008e4f8 physics_2009:dgWorldDynamicUpdate.obj + 0002:000004fc __real@a4e69595 1008e4fc physics_2009:dgWorldDynamicUpdate.obj + 0002:00000500 __real@24e69595 1008e500 physics_2009:dgWorldDynamicUpdate.obj + 0002:00000504 __real@322bcc77 1008e504 physics_2009:dgWorldDynamicUpdate.obj + 0002:00000508 __real@404e000000000000 1008e508 physics_2009:dgWorldDynamicUpdate.obj + 0002:00000510 __real@3fecccccc0000000 1008e510 physics_2009:dgWorldDynamicUpdate.obj + 0002:00000518 __real@3c670ef540000000 1008e518 physics_2009:dgWorldDynamicUpdate.obj + 0002:00000520 __real@bc9cd2b2a0000000 1008e520 physics_2009:dgWorldDynamicUpdate.obj + 0002:00000528 __real@4010000000000000 1008e528 physics_2009:dgWorldDynamicUpdate.obj + 0002:00000530 __real@3fd0000000000000 1008e530 physics_2009:dgWorldDynamicUpdate.obj + 0002:00000538 __real@c010000000000000 1008e538 physics_2009:dgWorldDynamicUpdate.obj + 0002:00000540 __real@4000000000000000 1008e540 physics_2009:dgNarrowPhaseCollision.obj + 0002:00000548 __real@3ca3d70a 1008e548 physics_2009:dgNarrowPhaseCollision.obj + 0002:00000550 __real@3f847ae140000000 1008e550 physics_2009:dgNarrowPhaseCollision.obj + 0002:00000558 __real@358637be 1008e558 physics_2009:dgNarrowPhaseCollision.obj + 0002:00000560 __real@bff0000000000000 1008e560 physics_2009:dgNarrowPhaseCollision.obj + 0002:00000568 __real@3feffbe760000000 1008e568 physics_2009:dgNarrowPhaseCollision.obj + 0002:00000570 __real@3f13b646 1008e570 physics_2009:dgNarrowPhaseCollision.obj + 0002:00000578 ??_7dgCollisionMesh@@6B@ 1008e578 physics_2009:dgCollisionMesh.obj + 0002:000005e8 ??_7dgCollisionConvexPolygon@dgCollisionMesh@@6B@ 1008e5e8 physics_2009:dgCollisionMesh.obj + 0002:00000660 __real@3af357c2a0000000 1008e660 physics_2009:dgCollisionMesh.obj + 0002:00000668 __real@3b23d70b 1008e668 physics_2009:dgCollisionMesh.obj + 0002:00000670 __real@3feffe5ca0000000 1008e670 physics_2009:dgCollisionMesh.obj + 0002:00000678 __real@c000000000000000 1008e678 physics_2009:dgCollisionMesh.obj + 0002:00000680 __real@bfb99999a0000000 1008e680 physics_2009:dgCollisionMesh.obj + 0002:00000688 __real@3f80000000000000 1008e688 physics_2009:dgCollisionMesh.obj + 0002:00000690 __real@bb800000 1008e690 physics_2009:dgCollisionMesh.obj + 0002:00000694 __real@3e31c433 1008e694 physics_2009:dgCollisionMesh.obj + 0002:00000698 __real@3fb99999a0000000 1008e698 physics_2009:dgCollisionMesh.obj + 0002:000006a0 ??_7dgCollisionBVH@@6BdgCollisionMesh@@@ 1008e6a0 physics_2009:dgCollisionBVH.obj + 0002:0000070c ??_7dgCollisionBVH@@6BdgAABBPolygonSoup@@@ 1008e70c physics_2009:dgCollisionBVH.obj + 0002:00000730 __real@3f99999a 1008e730 physics_2009:dgCollisionBVH.obj + 0002:00000734 __real@e0ad78ec 1008e734 physics_2009:dgCollisionBVH.obj + 0002:00000738 __real@4050000000000000 1008e738 physics_2009:dgCollisionScene.obj + 0002:00000740 ??_7dgCollisionScene@@6B@ 1008e740 physics_2009:dgCollisionScene.obj + 0002:000007a8 __real@408f400000000000 1008e7a8 physics_2009:dgBody.obj + 0002:000007b0 __real@41200000 1008e7b0 physics_2009:dgBody.obj + 0002:000007b8 __real@4024000000000000 1008e7b8 physics_2009:dgBody.obj + 0002:000007c0 __real@3ff99999a0000000 1008e7c0 physics_2009:dgBody.obj + 0002:000007c8 __real@3f899999a0000000 1008e7c8 physics_2009:dgBody.obj + 0002:000007d0 __real@3fe99999a0000000 1008e7d0 physics_2009:dgBody.obj + 0002:000007d8 __real@4046800000000000 1008e7d8 physics_2009:dgBody.obj + 0002:000007e4 ??_7dgBallConstraint@@6B@ 1008e7e4 physics_2009:dgBallConstraint.obj + 0002:00000818 __real@4065e00000000000 1008e818 physics_2009:dgBallConstraint.obj + 0002:00000820 __real@4056800000000000 1008e820 physics_2009:dgBallConstraint.obj + 0002:00000828 __real@4014000000000000 1008e828 physics_2009:dgBallConstraint.obj + 0002:00000830 __real@bfc90fd0 1008e830 physics_2009:dgBallConstraint.obj + 0002:00000834 __real@3fc90fd0 1008e834 physics_2009:dgBallConstraint.obj + 0002:00000838 __real@3ff19999a0000000 1008e838 physics_2009:dgBallConstraint.obj + 0002:00000840 __real@4030000000000000 1008e840 physics_2009:dgBallConstraint.obj + 0002:00000848 ??_7dgHingeConstraint@@6B@ 1008e848 physics_2009:dgHingeConstraint.obj + 0002:00000878 __real@3ff028f5c0000000 1008e878 physics_2009:dgHingeConstraint.obj + 0002:00000880 ??_7dgSlidingConstraint@@6B@ 1008e880 physics_2009:dgSlidingConstraint.obj + 0002:000008b0 ??_7dgCorkscrewConstraint@@6B@ 1008e8b0 physics_2009:dgCorkscrewConstraint.obj + 0002:000008e0 ??_7dgUniversalConstraint@@6B@ 1008e8e0 physics_2009:dgUniversalConstraint.obj + 0002:00000910 ??_7dgUpVectorConstraint@@6B@ 1008e910 physics_2009:dgUpVectorConstraint.obj + 0002:00000940 __real@3f7eb852 1008e940 physics_2009:dgUpVectorConstraint.obj + 0002:00000944 ??_7dgBroadPhaseApplyExternalForce@@6B@ 1008e944 physics_2009:dgBroadPhaseCollision.obj + 0002:0000094c ??_7dgBroadPhaseCellPairsWorkerThread@@6B@ 1008e94c physics_2009:dgBroadPhaseCollision.obj + 0002:00000954 ??_7dgBroadPhaseMaterialCallbackWorkerThread@@6B@ 1008e954 physics_2009:dgBroadPhaseCollision.obj + 0002:0000095c ??_7dgBroadPhaseCalculateContactsWorkerThread@@6B@ 1008e95c physics_2009:dgBroadPhaseCollision.obj + 0002:00000964 __real@447a0000 1008e964 physics_2009:dgBroadPhaseCollision.obj + 0002:00000968 __real@c47a0000 1008e968 physics_2009:dgBroadPhaseCollision.obj + 0002:0000096c __real@3f8ccccd 1008e96c physics_2009:dgBroadPhaseCollision.obj + 0002:00000970 __real@4060000000000000 1008e970 physics_2009:dgBroadPhaseCollision.obj + 0002:00000978 ??_7dgCollisionConvexHull@@6B@ 1008e978 physics_2009:dgCollisionConvexHull.obj + 0002:000009f0 __real@c202a05f20000000 1008e9f0 physics_2009:dgCollisionConvexHull.obj + 0002:000009f8 __real@3fefff9720000000 1008e9f8 physics_2009:dgCollisionConvexHull.obj + 0002:00000a00 __real@b58637bd 1008ea00 physics_2009:dgCollisionConvexHull.obj + 0002:00000a08 __real@3f40000000000000 1008ea08 physics_2009:dgCollisionConvexHull.obj + 0002:00000a10 __real@40a0000000000000 1008ea10 physics_2009:dgCollisionConvexHull.obj + 0002:00000a18 __real@43000000 1008ea18 physics_2009:dgCollisionConvexHull.obj + 0002:00000a20 __real@3eb0c6f7a0000000 1008ea20 physics_2009:dgCollisionConvexHull.obj + 0002:00000a28 __real@3fef5c2900000000 1008ea28 physics_2009:dgCollisionConvexHull.obj + 0002:00000a30 ??_7dgUserConstraint@@6B@ 1008ea30 physics_2009:dgUserConstraint.obj + 0002:00000a60 ??_7dgConstraint@@6B@ 1008ea60 physics_2009:dgBilateralConstraint.obj + 0002:00000a88 ??_7dgBilateralConstraint@@6B@ 1008ea88 physics_2009:dgBilateralConstraint.obj + 0002:00000ab8 __real@3b23d70a 1008eab8 physics_2009:dgBilateralConstraint.obj + 0002:00000ac0 __real@4097700000000000 1008eac0 physics_2009:dgBilateralConstraint.obj + 0002:00000ac8 __real@461c4000 1008eac8 physics_2009:dgBilateralConstraint.obj + 0002:00000acc __real@c61c4000 1008eacc physics_2009:dgBilateralConstraint.obj + 0002:00000ad0 __real@3fb33334 1008ead0 physics_2009:dgBilateralConstraint.obj + 0002:00000ad8 __real@4079000000000000 1008ead8 physics_2009:dgBilateralConstraint.obj + 0002:00000ae0 __real@4077700000000000 1008eae0 physics_2009:dgBilateralConstraint.obj + 0002:00000ae8 ??_7dgCollisionSphere@@6B@ 1008eae8 physics_2009:dgCollisionSphere.obj + 0002:00000b60 __real@3fd99999a0000000 1008eb60 physics_2009:dgCollisionSphere.obj + 0002:00000b68 __real@4010c15200000000 1008eb68 physics_2009:dgCollisionSphere.obj + 0002:00000b78 ??_7dgConvexCollision@@6B@ 1008eb78 physics_2009:dgConvexCollision.obj + 0002:00000bec __real@44800000 1008ebec physics_2009:dgConvexCollision.obj + 0002:00000bf0 __real@4070000000000000 1008ebf0 physics_2009:dgConvexCollision.obj + 0002:00000bf8 __real@38d1b717 1008ebf8 physics_2009:dgConvexCollision.obj + 0002:00000bfc __real@179abe15 1008ebfc physics_2009:dgConvexCollision.obj + 0002:00000c00 __real@bf1a36e2e0000000 1008ec00 physics_2009:dgConvexCollision.obj + 0002:00000c08 __real@3716feb5 1008ec08 physics_2009:dgConvexCollision.obj + 0002:00000c0c __real@979abe15 1008ec0c physics_2009:dgConvexCollision.obj + 0002:00000c10 __real@2b8cbccc 1008ec10 physics_2009:dgConvexCollision.obj + 0002:00000c18 ??_7dgCollisionNull@@6B@ 1008ec18 physics_2009:dgCollisionNull.obj + 0002:00000c8c ??_C@_07FLDMKAK@contact?$AA@ 1008ec8c physics_2009:dgContact.obj + 0002:00000c94 __real@3f000000 1008ec94 physics_2009:dgContact.obj + 0002:00000c98 __real@3f666666 1008ec98 physics_2009:dgContact.obj + 0002:00000c9c __real@3ecccccd 1008ec9c physics_2009:dgContact.obj + 0002:00000ca0 __real@3e99999a 1008eca0 physics_2009:dgContact.obj + 0002:00000ca4 __real@c0800000 1008eca4 physics_2009:dgContact.obj + 0002:00000ca8 __real@4049000000000000 1008eca8 physics_2009:dgContact.obj + 0002:00000cb0 ??_7dgContact@@6B@ 1008ecb0 physics_2009:dgContact.obj + 0002:00000cd8 ??_7dgCollisionConvexModifier@@6B@ 1008ecd8 physics_2009:dgCollisionConvexModifier.obj + 0002:00000d50 __real@3fa99999a0000000 1008ed50 physics_2009:dgCollisionConvexModifier.obj + 0002:00000d58 __real@ccbebc20 1008ed58 physics_2009:dgCollisionConvexModifier.obj + 0002:00000d60 ??_7dgCompoundCollision@@6B@ 1008ed60 physics_2009:dgCompoundCollision.obj + 0002:00000dc4 __real@9e3ce508 1008edc4 physics_2009:dgCompoundCollision.obj + 0002:00000dc8 ??_7dgCollisionUserMesh@@6B@ 1008edc8 physics_2009:dgCollisionUserMesh.obj + 0002:00000e38 ??_7dgCollisionHeightField@@6B@ 1008ee38 physics_2009:dgCollisionHeightField.obj + 0002:00000ea4 __real@d368d4a5 1008eea4 physics_2009:dgCollisionHeightField.obj + 0002:00000ea8 __real@3feb851ec0000000 1008eea8 physics_2009:dgMinkowskiConv.obj + 0002:00000eb0 __real@2edbe6ff 1008eeb0 physics_2009:dgMinkowskiConv.obj + 0002:00000eb8 __real@4415af1d80000000 1008eeb8 physics_2009:dgMinkowskiConv.obj + 0002:00000ec0 __real@3fa1de6660000000 1008eec0 physics_2009:dgMinkowskiConv.obj + 0002:00000ec8 __real@3feffb00c0000000 1008eec8 physics_2009:dgMinkowskiConv.obj + 0002:00000ed0 __real@3fe6a09e60000000 1008eed0 physics_2009:dgMinkowskiConv.obj + 0002:00000ed8 __real@3fa1de58c0000000 1008eed8 physics_2009:dgMinkowskiConv.obj + 0002:00000ee0 __real@3feffb0280000000 1008eee0 physics_2009:dgMinkowskiConv.obj + 0002:00000ee8 __real@3a03126f 1008eee8 physics_2009:dgMinkowskiConv.obj + 0002:00000eec __real@3089705f 1008eeec physics_2009:dgMinkowskiConv.obj + 0002:00000ef0 __real@4202a05f20000000 1008eef0 physics_2009:dgMinkowskiConv.obj + 0002:00000ef8 __real@3f40624de0000000 1008eef8 physics_2009:dgMinkowskiConv.obj + 0002:00000f00 __real@3e112e0be0000000 1008ef00 physics_2009:dgMinkowskiConv.obj + 0002:00000f08 __real@3f1a36e300000000 1008ef08 physics_2009:dgMinkowskiConv.obj + 0002:00000f10 __real@3eb0c6f7c0000000 1008ef10 physics_2009:dgMinkowskiConv.obj + 0002:00000f18 __real@3b000000 1008ef18 physics_2009:dgMinkowskiConv.obj + 0002:00000f1c __real@3c000000 1008ef1c physics_2009:dgMinkowskiConv.obj + 0002:00000f20 __real@3f60000000000000 1008ef20 physics_2009:dgMinkowskiConv.obj + 0002:00000f28 __real@bf13cd36 1008ef28 physics_2009:dgMinkowskiConv.obj + 0002:00000f2c __real@3f13cd36 1008ef2c physics_2009:dgMinkowskiConv.obj + 0002:00000f30 __real@3fefef9dc0000000 1008ef30 physics_2009:dgMinkowskiConv.obj + 0002:00000f38 __real@3f70000000000000 1008ef38 physics_2009:dgMinkowskiConv.obj + 0002:00000f40 __real@3b800000 1008ef40 physics_2009:dgMinkowskiConv.obj + 0002:00000f44 __real@3a000000 1008ef44 physics_2009:dgMinkowskiConv.obj + 0002:00000f48 __real@4040000000000000 1008ef48 physics_2009:dgMinkowskiConv.obj + 0002:00000f50 __real@3ee4f8b580000000 1008ef50 physics_2009:dgMinkowskiConv.obj + 0002:00000f58 __real@3fb0000000000000 1008ef58 physics_2009:dgMinkowskiConv.obj + 0002:00000f60 ??_7dgCollisionBox@@6B@ 1008ef60 physics_2009:dgCollisionBox.obj + 0002:00000fd8 __real@3fd5555560000000 1008efd8 physics_2009:dgCollisionBox.obj + 0002:00000fe0 __real@4020000000000000 1008efe0 physics_2009:dgCollisionBox.obj + 0002:00000fe8 ??_7dgCollision@@6B@ 1008efe8 physics_2009:dgCollision.obj + 0002:00001050 __real@4090000000000000 1008f050 physics_2009:dgCollision.obj + 0002:00001058 ??_7dgCollisionEllipse@@6B@ 1008f058 physics_2009:dgCollisionEllipse.obj + 0002:000010d0 ??_7dgCollisionCapsule@@6B@ 1008f0d0 physics_2009:dgCollisionCapsule.obj + 0002:00001148 __real@4018000000000000 1008f148 physics_2009:dgCollisionCapsule.obj + 0002:00001150 __real@4010dca360000000 1008f150 physics_2009:dgCollisionCapsule.obj + 0002:00001158 __real@40194af500000000 1008f158 physics_2009:dgCollisionCapsule.obj + 0002:00001160 __real@bfe0000000000000 1008f160 physics_2009:dgCollisionCapsule.obj + 0002:00001170 ??_7dgCollisionCone@@6B@ 1008f170 physics_2009:dgCollisionCone.obj + 0002:000011e8 __real@4038000000000000 1008f1e8 physics_2009:dgCollisionCone.obj + 0002:000011f0 __real@3fc3333340000000 1008f1f0 physics_2009:dgCollisionCone.obj + 0002:000011f8 __real@3fd3333340000000 1008f1f8 physics_2009:dgCollisionCone.obj + 0002:00001200 __real@4000dca360000000 1008f200 physics_2009:dgCollisionCone.obj + 0002:00001210 ??_7dgCollisionCylinder@@6B@ 1008f210 physics_2009:dgCollisionCylinder.obj + 0002:00001288 ??_7dgCollisionChamferCylinder@@6B@ 1008f288 physics_2009:dgCollisionChamferCylinder.obj + 0002:00001300 __real@3fe921fa00000000 1008f300 physics_2009:dgCollisionChamferCylinder.obj + 0002:00001308 __real@3fd0c15160000000 1008f308 physics_2009:dgCollisionChamferCylinder.obj + 0002:00001310 __real@3c32725de0000000 1008f310 physics_2009:dgCollisionChamferCylinder.obj + 0002:00001328 __real@bfefff9720000000 1008f328 corelib_2009:dgMatrix.obj + 0002:00001330 __real@3f7fffef 1008f330 corelib_2009:dgMatrix.obj + 0002:00001338 __real@3feffffde0000000 1008f338 corelib_2009:dgMatrix.obj + 0002:00001340 __real@bf7fffef 1008f340 corelib_2009:dgMatrix.obj + 0002:00001348 __real@bfeffffde0000000 1008f348 corelib_2009:dgMatrix.obj + 0002:00001350 __real@3f1a36e2eb1c432d 1008f350 corelib_2009:dgTypes.obj + 0002:00001360 __real@3d71979980000000 1008f360 corelib_2009:dgPolyhedra.obj + 0002:00001368 __real@3fe69fbe80000000 1008f368 corelib_2009:dgPolyhedra.obj + 0002:00001370 __real@bfecccccc0000000 1008f370 corelib_2009:dgPolyhedra.obj + 0002:00001378 ??_7dgPolyhedra@@6B@ 1008f378 corelib_2009:dgPolyhedra.obj + 0002:0000137c ??_7dgPolygonSoupDatabase@@6B@ 1008f37c corelib_2009:dgAABBPolygonSoup.obj + 0002:0000139c ??_7dgAABBPolygonSoup@@6B@ 1008f39c corelib_2009:dgAABBPolygonSoup.obj + 0002:000013c0 ??_7dgPolySoupFilterAllocator@@6B@ 1008f3c0 corelib_2009:dgPolygonSoupBuilder.obj + 0002:000013c8 __real@3bc79ca100000000 1008f3c8 corelib_2009:dgPolygonSoupBuilder.obj + 0002:000013d0 __real@3fb5555560000000 1008f3d0 corelib_2009:dgPolygonSoupBuilder.obj + 0002:00001428 __FPinit 1008f428 LIBCMT:_fpinit_.obj + 0002:0000142c __FPmtinit 1008f42c LIBCMT:_fpinit_.obj + 0002:00001430 __FPmtterm 1008f430 LIBCMT:_fpinit_.obj + 0002:00001434 __pDefaultRawDllMain 1008f434 LIBCMT:dllcrt0.obj + 0002:00001434 __pRawDllMain 1008f434 LIBCMT:dllcrt0.obj + 0002:000014a0 ??_C@_03IIINPABG@tan?$AA@ 1008f4a0 LIBCMT:_libm_error_.obj + 0002:000014a4 ??_C@_03LALBNOCG@cos?$AA@ 1008f4a4 LIBCMT:_libm_error_.obj + 0002:000014a8 ??_C@_03BLEJJJBH@sin?$AA@ 1008f4a8 LIBCMT:_libm_error_.obj + 0002:000014ac ??_C@_04EHEDPDJG@modf?$AA@ 1008f4ac LIBCMT:_libm_error_.obj + 0002:000014b4 ??_C@_05PBJFFIGL@floor?$AA@ 1008f4b4 LIBCMT:_libm_error_.obj + 0002:000014bc ??_C@_04GFPJNGEK@ceil?$AA@ 1008f4bc LIBCMT:_libm_error_.obj + 0002:000014c4 ??_C@_04MLLJIGOK@atan?$AA@ 1008f4c4 LIBCMT:_libm_error_.obj + 0002:000014cc ??_C@_05EOHGHCHD@exp10?$AA@ 1008f4cc LIBCMT:_libm_error_.obj + 0002:000014d4 ??_C@_04PDIFKINK@acos?$AA@ 1008f4d4 LIBCMT:_libm_error_.obj + 0002:000014dc ??_C@_04FIHNOPOL@asin?$AA@ 1008f4dc LIBCMT:_libm_error_.obj + 0002:000014e4 ??_C@_03MGHMBJCF@log?$AA@ 1008f4e4 LIBCMT:_libm_error_.obj + 0002:000014e8 ??_C@_05HGHHAHAP@log10?$AA@ 1008f4e8 LIBCMT:_libm_error_.obj + 0002:000014f0 ??_C@_03KHJOGHMM@exp?$AA@ 1008f4f0 LIBCMT:_libm_error_.obj + 0002:000014f4 ??_C@_03JGHBODFD@pow?$AA@ 1008f4f4 LIBCMT:_libm_error_.obj + 0002:000014f8 ??_C@_05KLBDPFGC@e?$CL000?$AA@ 1008f4f8 LIBCMT:cvt.obj + 0002:00001500 __real@4150017ec0000000 1008f500 LIBCMT:_testfdiv_.obj + 0002:00001508 __real@4147ffff80000000 1008f508 LIBCMT:_testfdiv_.obj + 0002:00001510 ??_C@_0BK@NHEOCAHP@IsProcessorFeaturePresent?$AA@ 1008f510 LIBCMT:_testfdiv_.obj + 0002:0000152c ??_C@_08CPNIBGIE@KERNEL32?$AA@ 1008f52c LIBCMT:_testfdiv_.obj + 0002:00001538 ??_C@_0P@MIGLKIOC@CorExitProcess?$AA@ 1008f538 LIBCMT:crt0dat.obj + 0002:00001548 ??_C@_1BI@BGOHAHKC@?$AAm?$AAs?$AAc?$AAo?$AAr?$AAe?$AAe?$AA?4?$AAd?$AAl?$AAl?$AA?$AA@ 1008f548 LIBCMT:crt0dat.obj + 0002:00001560 ??_C@_0P@GGKDKEEG@runtime?5error?5?$AA@ 1008f560 LIBCMT:crt0msg.obj + 0002:00001570 ??_C@_02PCIJFNDE@?$AN?6?$AA@ 1008f570 LIBCMT:crt0msg.obj + 0002:00001574 ??_C@_0O@MJNIPGOH@TLOSS?5error?$AN?6?$AA@ 1008f574 LIBCMT:crt0msg.obj + 0002:00001584 ??_C@_0N@BONNPDHF@SING?5error?$AN?6?$AA@ 1008f584 LIBCMT:crt0msg.obj + 0002:00001594 ??_C@_0P@MBDAJNE@DOMAIN?5error?$AN?6?$AA@ 1008f594 LIBCMT:crt0msg.obj + 0002:000015a8 ??_C@_0JL@DFDOOABL@R6034?$AN?6An?5application?5has?5made?5a@ 1008f5a8 LIBCMT:crt0msg.obj + 0002:00001648 ??_C@_0PH@EPAFIJ@R6033?$AN?6?9?5Attempt?5to?5use?5MSIL?5cod@ 1008f648 LIBCMT:crt0msg.obj + 0002:00001740 ??_C@_0DD@BKEEABMM@R6032?$AN?6?9?5not?5enough?5space?5for?5lo@ 1008f740 LIBCMT:crt0msg.obj + 0002:00001778 ??_C@_0GD@OFKILIED@R6031?$AN?6?9?5Attempt?5to?5initialize?5t@ 1008f778 LIBCMT:crt0msg.obj + 0002:000017dc ??_C@_0BP@LPMHJOKI@R6030?$AN?6?9?5CRT?5not?5initialized?$AN?6?$AA@ 1008f7dc LIBCMT:crt0msg.obj + 0002:000017fc ??_C@_0CF@KJDAIALP@R6028?$AN?6?9?5unable?5to?5initialize?5he@ 1008f7fc LIBCMT:crt0msg.obj + 0002:00001824 ??_C@_0DF@GAKBPDFP@R6027?$AN?6?9?5not?5enough?5space?5for?5lo@ 1008f824 LIBCMT:crt0msg.obj + 0002:0000185c ??_C@_0DF@IBLNNAIG@R6026?$AN?6?9?5not?5enough?5space?5for?5st@ 1008f85c LIBCMT:crt0msg.obj + 0002:00001894 ??_C@_0CG@IOHKGFNJ@R6025?$AN?6?9?5pure?5virtual?5function?5c@ 1008f894 LIBCMT:crt0msg.obj + 0002:000018bc ??_C@_0DF@JIJJFJDC@R6024?$AN?6?9?5not?5enough?5space?5for?5_o@ 1008f8bc LIBCMT:crt0msg.obj + 0002:000018f4 ??_C@_0CJ@EGEJHFME@R6019?$AN?6?9?5unable?5to?5open?5console?5@ 1008f8f4 LIBCMT:crt0msg.obj + 0002:00001920 ??_C@_0CB@GNHNIELH@R6018?$AN?6?9?5unexpected?5heap?5error?$AN?6@ 1008f920 LIBCMT:crt0msg.obj + 0002:00001944 ??_C@_0CN@FOLDKNG@R6017?$AN?6?9?5unexpected?5multithread?5@ 1008f944 LIBCMT:crt0msg.obj + 0002:00001974 ??_C@_0CM@FAHFJNHO@R6016?$AN?6?9?5not?5enough?5space?5for?5th@ 1008f974 LIBCMT:crt0msg.obj + 0002:000019a0 ??_C@_0JG@LBKMGKLD@?$AN?6This?5application?5has?5requested@ 1008f9a0 LIBCMT:crt0msg.obj + 0002:00001a38 ??_C@_0CM@FLCNIPKK@R6009?$AN?6?9?5not?5enough?5space?5for?5en@ 1008fa38 LIBCMT:crt0msg.obj + 0002:00001a64 ??_C@_0CK@KMMJOAPP@R6008?$AN?6?9?5not?5enough?5space?5for?5ar@ 1008fa64 LIBCMT:crt0msg.obj + 0002:00001a90 ??_C@_0CN@LEKKICBM@R6002?$AN?6?9?5floating?5point?5support?5@ 1008fa90 LIBCMT:crt0msg.obj + 0002:00001ac0 ??_C@_0CF@GOGNBNAK@Microsoft?5Visual?5C?$CL?$CL?5Runtime?5Lib@ 1008fac0 LIBCMT:crt0msg.obj + 0002:00001ae8 ??_C@_02PHMGELLB@?6?6?$AA@ 1008fae8 LIBCMT:crt0msg.obj + 0002:00001aec ??_C@_03KHICJKCI@?4?4?4?$AA@ 1008faec LIBCMT:crt0msg.obj + 0002:00001af0 ??_C@_0BH@DNAGHKFM@?$DMprogram?5name?5unknown?$DO?$AA@ 1008faf0 LIBCMT:crt0msg.obj + 0002:00001b08 ??_C@_0BK@OFGJDLJJ@Runtime?5Error?$CB?6?6Program?3?5?$AA@ 1008fb08 LIBCMT:crt0msg.obj + 0002:00001b24 ??_C@_0O@NLDKAIKN@EncodePointer?$AA@ 1008fb24 LIBCMT:tidtable.obj + 0002:00001b34 ??_C@_1BK@DBDEIDLH@?$AAK?$AAE?$AAR?$AAN?$AAE?$AAL?$AA3?$AA2?$AA?4?$AAD?$AAL?$AAL?$AA?$AA@ 1008fb34 LIBCMT:tidtable.obj + 0002:00001b50 ??_C@_0O@KBPMFGHI@DecodePointer?$AA@ 1008fb50 LIBCMT:tidtable.obj + 0002:00001b60 ??_C@_07PEJMOBNF@FlsFree?$AA@ 1008fb60 LIBCMT:tidtable.obj + 0002:00001b68 ??_C@_0M@JCPCPOEF@FlsSetValue?$AA@ 1008fb68 LIBCMT:tidtable.obj + 0002:00001b74 ??_C@_0M@GDNOONDI@FlsGetValue?$AA@ 1008fb74 LIBCMT:tidtable.obj + 0002:00001b80 ??_C@_08KNHFBNJ@FlsAlloc?$AA@ 1008fb80 LIBCMT:tidtable.obj + 0002:00001b90 __XcptActTab 1008fb90 LIBCMT:winxfltr.obj + 0002:00001c08 ??_C@_1O@CEDCILHN@?$AA?$CI?$AAn?$AAu?$AAl?$AAl?$AA?$CJ?$AA?$AA@ 1008fc08 LIBCMT:output.obj + 0002:00001c18 ??_C@_06OJHGLDPL@?$CInull?$CJ?$AA@ 1008fc18 LIBCMT:output.obj + 0002:00001c20 ___lookuptable 1008fc20 LIBCMT:output.obj + 0002:00002588 __DEFAULT_CW_in_mem 10090588 LIBCMT:_common_.obj + 0002:0000258a __pi_by_2_to_61 1009058a LIBCMT:_common_.obj + 0002:00005f10 ??_C@_0L@KDOEJCKC@_nextafter?$AA@ 10093f10 LIBCMT:_fpexcept_.obj + 0002:00005f1c ??_C@_05JGDBENOH@_logb?$AA@ 10093f1c LIBCMT:_fpexcept_.obj + 0002:00005f24 ??_C@_03ONILCKOB@_yn?$AA@ 10093f24 LIBCMT:_fpexcept_.obj + 0002:00005f28 ??_C@_03NAKIGLHK@_y1?$AA@ 10093f28 LIBCMT:_fpexcept_.obj + 0002:00005f2c ??_C@_03MJLDFKDL@_y0?$AA@ 10093f2c LIBCMT:_fpexcept_.obj + 0002:00005f30 ??_C@_05GKKHEGJL@frexp?$AA@ 10093f30 LIBCMT:_fpexcept_.obj + 0002:00005f38 ??_C@_04KEPJIHGP@fmod?$AA@ 10093f38 LIBCMT:_fpexcept_.obj + 0002:00005f40 ??_C@_06MEIMCGCF@_hypot?$AA@ 10093f40 LIBCMT:_fpexcept_.obj + 0002:00005f48 ??_C@_05KBKMEMPO@_cabs?$AA@ 10093f48 LIBCMT:_fpexcept_.obj + 0002:00005f50 ??_C@_05CEJMAHNP@ldexp?$AA@ 10093f50 LIBCMT:_fpexcept_.obj + 0002:00005f58 ??_C@_04ODHECPBC@fabs?$AA@ 10093f58 LIBCMT:_fpexcept_.obj + 0002:00005f60 ??_C@_04EIAKFFMI@sqrt?$AA@ 10093f60 LIBCMT:_fpexcept_.obj + 0002:00005f68 ??_C@_05KNGEOGJB@atan2?$AA@ 10093f68 LIBCMT:_fpexcept_.obj + 0002:00005f70 ??_C@_04FJHINJAO@tanh?$AA@ 10093f70 LIBCMT:_fpexcept_.obj + 0002:00005f78 ??_C@_04HPJJNFIM@cosh?$AA@ 10093f78 LIBCMT:_fpexcept_.obj + 0002:00005f80 ??_C@_04COOMCNPB@sinh?$AA@ 10093f80 LIBCMT:_fpexcept_.obj + 0002:00006008 ??_C@_0BI@DFKBFLJE@GetProcessWindowStation?$AA@ 10094008 LIBCMT:crtmbox.obj + 0002:00006020 ??_C@_0BK@CIDNPOGP@GetUserObjectInformationA?$AA@ 10094020 LIBCMT:crtmbox.obj + 0002:0000603c ??_C@_0BD@HHGDFDBJ@GetLastActivePopup?$AA@ 1009403c LIBCMT:crtmbox.obj + 0002:00006050 ??_C@_0BA@HNOPNCHB@GetActiveWindow?$AA@ 10094050 LIBCMT:crtmbox.obj + 0002:00006060 ??_C@_0M@CHKKJDAI@MessageBoxA?$AA@ 10094060 LIBCMT:crtmbox.obj + 0002:0000606c ??_C@_0L@NDEGIDAG@USER32?4DLL?$AA@ 1009406c LIBCMT:crtmbox.obj + 0002:00006078 ___lookuptable_s 10094078 LIBCMT:outputs.obj + 0002:000060d4 __real@00000000 100940d4 Newton.obj + 0002:000060d4 ??_C@_13NOLLCAOD@?$AA?$AA?$AA?$AA@ 100940d4 LIBCMT:a_map.obj + 0002:000060d8 ___newctype 100940d8 LIBCMT:ctype.obj + 0002:000063d8 __wctype 100943d8 LIBCMT:ctype.obj + 0002:000065e0 ___newclmap 100945e0 LIBCMT:ctype.obj + 0002:00006760 ___newcumap 10094760 LIBCMT:ctype.obj + 0002:000068e0 ??_C@_08JCCMCCIL@HH?3mm?3ss?$AA@ 100948e0 LIBCMT:strftime.obj + 0002:000068ec ??_C@_0BE@CKGJFCPC@dddd?0?5MMMM?5dd?0?5yyyy?$AA@ 100948ec LIBCMT:strftime.obj + 0002:00006900 ??_C@_08BPBNCDIB@MM?1dd?1yy?$AA@ 10094900 LIBCMT:strftime.obj + 0002:0000690c ??_C@_02CJNFDJBF@PM?$AA@ 1009490c LIBCMT:strftime.obj + 0002:00006910 ??_C@_02DEDBPAFC@AM?$AA@ 10094910 LIBCMT:strftime.obj + 0002:00006914 ??_C@_08EDHMEBNP@December?$AA@ 10094914 LIBCMT:strftime.obj + 0002:00006920 ??_C@_08HCHEGEOA@November?$AA@ 10094920 LIBCMT:strftime.obj + 0002:0000692c ??_C@_07JJNFCEND@October?$AA@ 1009492c LIBCMT:strftime.obj + 0002:00006934 ??_C@_09BHHEALKD@September?$AA@ 10094934 LIBCMT:strftime.obj + 0002:00006940 ??_C@_06LBBHFDDG@August?$AA@ 10094940 LIBCMT:strftime.obj + 0002:00006948 ??_C@_04MIEPOIFP@July?$AA@ 10094948 LIBCMT:strftime.obj + 0002:00006950 ??_C@_04CNLMGBGM@June?$AA@ 10094950 LIBCMT:strftime.obj + 0002:00006958 ??_C@_05DMJDNLEJ@April?$AA@ 10094958 LIBCMT:strftime.obj + 0002:00006960 ??_C@_05HPCKOFNC@March?$AA@ 10094960 LIBCMT:strftime.obj + 0002:00006968 ??_C@_08GNJGEPFN@February?$AA@ 10094968 LIBCMT:strftime.obj + 0002:00006974 ??_C@_07CGJPFGJA@January?$AA@ 10094974 LIBCMT:strftime.obj + 0002:0000697c ??_C@_03MKABNOCG@Dec?$AA@ 1009497c LIBCMT:strftime.obj + 0002:00006980 ??_C@_03JPJOFNIA@Nov?$AA@ 10094980 LIBCMT:strftime.obj + 0002:00006984 ??_C@_03BMAOKBAD@Oct?$AA@ 10094984 LIBCMT:strftime.obj + 0002:00006988 ??_C@_03GGCAPAJC@Sep?$AA@ 10094988 LIBCMT:strftime.obj + 0002:0000698c ??_C@_03IFJFEIGA@Aug?$AA@ 1009498c LIBCMT:strftime.obj + 0002:00006990 ??_C@_03LBGABGKK@Jul?$AA@ 10094990 LIBCMT:strftime.obj + 0002:00006994 ??_C@_03IDFGHECI@Jun?$AA@ 10094994 LIBCMT:strftime.obj + 0002:00006998 ??_C@_03CNMDKL@May?$AA@ 10094998 LIBCMT:strftime.obj + 0002:0000699c ??_C@_03LEOLGMJP@Apr?$AA@ 1009499c LIBCMT:strftime.obj + 0002:000069a0 ??_C@_03ODNJBKGA@Mar?$AA@ 100949a0 LIBCMT:strftime.obj + 0002:000069a4 ??_C@_03HJBDCHOM@Feb?$AA@ 100949a4 LIBCMT:strftime.obj + 0002:000069a8 ??_C@_03JIHJHPIE@Jan?$AA@ 100949a8 LIBCMT:strftime.obj + 0002:000069ac ??_C@_08INBOOONO@Saturday?$AA@ 100949ac LIBCMT:strftime.obj + 0002:000069b8 ??_C@_06JECMNKMI@Friday?$AA@ 100949b8 LIBCMT:strftime.obj + 0002:000069c0 ??_C@_08HACCIKIA@Thursday?$AA@ 100949c0 LIBCMT:strftime.obj + 0002:000069cc ??_C@_09DLIGFAKA@Wednesday?$AA@ 100949cc LIBCMT:strftime.obj + 0002:000069d8 ??_C@_07BAAGCFCM@Tuesday?$AA@ 100949d8 LIBCMT:strftime.obj + 0002:000069e0 ??_C@_06JLEDEDGH@Monday?$AA@ 100949e0 LIBCMT:strftime.obj + 0002:000069e8 ??_C@_06OOPIFAJ@Sunday?$AA@ 100949e8 LIBCMT:strftime.obj + 0002:000069f0 ??_C@_03FEFJNEK@Sat?$AA@ 100949f0 LIBCMT:strftime.obj + 0002:000069f4 ??_C@_03IDIOELNC@Fri?$AA@ 100949f4 LIBCMT:strftime.obj + 0002:000069f8 ??_C@_03IOFIKPDN@Thu?$AA@ 100949f8 LIBCMT:strftime.obj + 0002:000069fc ??_C@_03MHOMLAJA@Wed?$AA@ 100949fc LIBCMT:strftime.obj + 0002:00006a00 ??_C@_03NAGEINEP@Tue?$AA@ 10094a00 LIBCMT:strftime.obj + 0002:00006a04 ??_C@_03PDAGKDH@Mon?$AA@ 10094a04 LIBCMT:strftime.obj + 0002:00006a08 ??_C@_03KOEHGMDN@Sun?$AA@ 10094a08 LIBCMT:strftime.obj + 0002:00006a0c ??_C@_06IMKFLFPG@1?$CDQNAN?$AA@ 10094a0c LIBCMT:_x10fout_.obj + 0002:00006a14 ??_C@_05DNEBIAHO@1?$CDINF?$AA@ 10094a14 LIBCMT:_x10fout_.obj + 0002:00006a1c ??_C@_05PHHOCPM@1?$CDIND?$AA@ 10094a1c LIBCMT:_x10fout_.obj + 0002:00006a24 ??_C@_06PGGFOGJG@1?$CDSNAN?$AA@ 10094a24 LIBCMT:_x10fout_.obj + 0002:00006a34 ___dnames 10094a34 LIBCMT:timeset.obj + 0002:00006a4c ___mnames 10094a4c LIBCMT:timeset.obj + 0002:00006a74 ??_C@_07GPDNMNG@CONOUT$?$AA@ 10094a74 LIBCMT:initcon.obj + 0002:00006a80 __load_config_used 10094a80 LIBCMT:loadcfg.obj + 0002:00006b20 ___safe_se_handler_table 10094b20 + 0002:00006b30 ___rtc_iaa 10094b30 LIBCMT:_initsect_.obj + 0002:00006b34 ___rtc_izz 10094b34 LIBCMT:_initsect_.obj + 0002:00006b38 ___rtc_taa 10094b38 LIBCMT:_initsect_.obj + 0002:00006b3c ___rtc_tzz 10094b3c LIBCMT:_initsect_.obj + 0002:00006f44 __IMPORT_DESCRIPTOR_KERNEL32 10094f44 kernel32:KERNEL32.dll + 0002:00006f58 __NULL_IMPORT_DESCRIPTOR 10094f58 kernel32:KERNEL32.dll + 0003:00000020 ?m_rayCastSimplex@dgConvexCollision@@1PAY03HA 10098020 physics_2009:dgConvexCollision.obj + 0003:00000060 ?m_hullDirs@dgConvexCollision@@1PAVdgTriplex@@A 10098060 physics_2009:dgConvexCollision.obj + 0003:00000108 ?mult@dgConvexMassData@@2PAMA 10098108 physics_2009:dgConvexCollision.obj + 0003:00000140 ?m_negOne@dgConvexCollision@@1VdgVector@@A 10098140 physics_2009:dgConvexCollision.obj + 0003:00000150 ?m_nrh0p5@dgConvexCollision@@1VdgVector@@A 10098150 physics_2009:dgConvexCollision.obj + 0003:00000160 ?m_nrh3p0@dgConvexCollision@@1VdgVector@@A 10098160 physics_2009:dgConvexCollision.obj + 0003:00000170 ?m_indexStep@dgConvexCollision@@1VdgVector@@A 10098170 physics_2009:dgConvexCollision.obj + 0003:00000180 ?m_index_0123@dgConvexCollision@@1VdgVector@@A 10098180 physics_2009:dgConvexCollision.obj + 0003:00000190 ?m_index_4567@dgConvexCollision@@1VdgVector@@A 10098190 physics_2009:dgConvexCollision.obj + 0003:000001a0 ?m_huge@dgConvexCollision@@1VdgVector@@A 100981a0 physics_2009:dgConvexCollision.obj + 0003:000001b0 ?m_negativeTiny@dgConvexCollision@@1VdgVector@@A 100981b0 physics_2009:dgConvexCollision.obj + 0003:000001c0 ?m_aabb_padd@dgConvexCollision@@1VdgVector@@A 100981c0 physics_2009:dgConvexCollision.obj + 0003:000001d0 ?m_faceIndex@dgContactSolver@@2PAY03HA 100981d0 physics_2009:dgMinkowskiConv.obj + 0003:00000210 ?m_edgeArray@dgCollisionBox@@1PAVdgConvexSimplexEdge@@A 10098210 physics_2009:dgCollisionBox.obj + 0003:000003a0 ?g_allocaror@dgInternalMemory@@3VdgMemoryAllocator@@A 100983a0 corelib_2009:dgMemory.obj + 0003:000008d0 __fltused 100988d0 LIBCMT:_fpinit_.obj + 0003:000008d4 __ldused 100988d4 LIBCMT:_fpinit_.obj + 0003:000008f0 __half 100988f0 LIBCMT:_pow_.obj + 0003:00000914 __cfltcvt_tab 10098914 LIBCMT:cmiscdat.obj + 0003:00000a60 __amblksiz 10098a60 LIBCMT:heapinit.obj + 0003:00000a64 __aexit_rtn 10098a64 LIBCMT:crt0dat.obj + 0003:00000c90 ___flsindex 10098c90 LIBCMT:tidtable.obj + 0003:00000c94 ___getvalueindex 10098c94 LIBCMT:tidtable.obj + 0003:00000c98 ___badioinfo 10098c98 LIBCMT:ioinit.obj + 0003:00000cd8 __First_FPE_Indx 10098cd8 LIBCMT:winxfltr.obj + 0003:00000cdc __Num_FPE 10098cdc LIBCMT:winxfltr.obj + 0003:00000ce0 __XcptActTabSize 10098ce0 LIBCMT:winxfltr.obj + 0003:00000ce4 __XcptActTabCount 10098ce4 LIBCMT:winxfltr.obj + 0003:00000ce8 ___nullstring 10098ce8 LIBCMT:output.obj + 0003:00000cec ___wnullstring 10098cec LIBCMT:output.obj + 0003:00000d0c ___abort_behavior 10098d0c LIBCMT:abort.obj + 0003:00000d10 __infinity 10098d10 LIBCMT:_87tran_.obj + 0003:00000d1a __minfinity 10098d1a LIBCMT:_87tran_.obj + 0003:00000d24 __logemax 10098d24 LIBCMT:_87tran_.obj + 0003:00000d4a __OP_EXPjmptab 10098d4a LIBCMT:_87tran_.obj + 0003:00000d70 __indefinite 10098d70 LIBCMT:_87disp_.obj + 0003:00000d7a __piby2 10098d7a LIBCMT:_87disp_.obj + 0003:00000da0 __NLG_Destination 10098da0 LIBCMT:exsup.obj + 0003:00000db0 __matherr_flag 10098db0 LIBCMT:_matherr_.obj + 0003:00000ea0 __d_inf 10098ea0 LIBCMT:_util_.obj + 0003:00000ea8 __d_ind 10098ea8 LIBCMT:_util_.obj + 0003:00000eb0 __d_max 10098eb0 LIBCMT:_util_.obj + 0003:00000eb8 __d_min 10098eb8 LIBCMT:_util_.obj + 0003:00000ec0 __d_mzero 10098ec0 LIBCMT:_util_.obj + 0003:00000ed0 ___initialmbcinfo 10098ed0 LIBCMT:mbctype.obj + 0003:000010f0 __mbctype 100990f0 LIBCMT:mbctype.obj + 0003:000011f8 __mbcasemap 100991f8 LIBCMT:mbctype.obj + 0003:000012f8 ___ptmbcinfo 100992f8 LIBCMT:mbctype.obj + 0003:000013f4 ___globallocalestatus 100993f4 LIBCMT:glstatus.obj + 0003:000013f8 ___clocalestr 100993f8 LIBCMT:nlsdata2.obj + 0003:00001400 ___initiallocinfo 10099400 LIBCMT:nlsdata2.obj + 0003:000014d8 ___ptlocinfo 100994d8 LIBCMT:nlsdata2.obj + 0003:000014dc ___lc_clike 100994dc LIBCMT:nlsdata2.obj + 0003:000014e0 ___initiallocalestructinfo 100994e0 LIBCMT:nlsdata2.obj + 0003:000014f0 ___security_cookie 100994f0 LIBCMT:gs_cookie.obj + 0003:000014f4 ___security_cookie_complement 100994f4 LIBCMT:gs_cookie.obj + 0003:00001500 __iob 10099500 LIBCMT:_file.obj + 0003:000018e0 __pctype 100998e0 LIBCMT:ctype.obj + 0003:000018e4 __pwctype 100998e4 LIBCMT:ctype.obj + 0003:000018e8 ___lc_time_c 100998e8 LIBCMT:strftime.obj + 0003:000019a0 ___lc_time_curr 100999a0 LIBCMT:strftime.obj + 0003:000019a4 ___lconv_static_decimal 100999a4 LIBCMT:lconv.obj + 0003:000019a8 ___lconv_c 100999a8 LIBCMT:lconv.obj + 0003:000019d8 ___lconv 100999d8 LIBCMT:lconv.obj + 0003:000019dc ___mb_cur_max 100999dc LIBCMT:nlsdata1.obj + 0003:000019e0 ___decimal_point 100999e0 LIBCMT:nlsdata1.obj + 0003:000019e4 ___decimal_point_length 100999e4 LIBCMT:nlsdata1.obj + 0003:00001a30 __timezone 10099a30 LIBCMT:timeset.obj + 0003:00001a34 __daylight 10099a34 LIBCMT:timeset.obj + 0003:00001a38 __dstbias 10099a38 LIBCMT:timeset.obj + 0003:00001ac0 __tzname 10099ac0 LIBCMT:timeset.obj + 0003:00001ae0 __pow10pos 10099ae0 LIBCMT:_constpow_.obj + 0003:00001c40 __pow10neg 10099c40 LIBCMT:_constpow_.obj + 0003:00001d9c __coninpfh 10099d9c LIBCMT:initcon.obj + 0003:00001da0 __confh 10099da0 LIBCMT:initcon.obj + 0003:00001da4 __lpdays 10099da4 LIBCMT:days.obj + 0003:00001dd8 __days 10099dd8 LIBCMT:days.obj + 0003:00001e30 ?m_edgeArray@dgCollisionSphere@@1PAVdgConvexSimplexEdge@@A 10099e30 physics_2009:dgCollisionSphere.obj + 0003:00002430 ?m_shapeRefCount@dgCollisionSphere@@1HA 1009a430 physics_2009:dgCollisionSphere.obj + 0003:00002440 ?m_unitSphere@dgCollisionSphere@@1PAVdgVector@@A 1009a440 physics_2009:dgCollisionSphere.obj + 0003:00002560 ?m_iniliazised@dgConvexCollision@@1HA 1009a560 physics_2009:dgConvexCollision.obj + 0003:00002570 ?m_zero@dgConvexCollision@@1VdgVector@@A 1009a570 physics_2009:dgConvexCollision.obj + 0003:00002580 ?m_signMask@dgConvexCollision@@1VdgVector@@A 1009a580 physics_2009:dgConvexCollision.obj + 0003:00002590 ?m_triplexMask@dgConvexCollision@@1VdgVector@@A 1009a590 physics_2009:dgConvexCollision.obj + 0003:000025a0 ?m_multiResDir@dgConvexCollision@@1PAVdgVector@@A 1009a5a0 physics_2009:dgConvexCollision.obj + 0003:00002620 ?m_multiResDir_sse@dgConvexCollision@@1PAVdgVector@@A 1009a620 physics_2009:dgConvexCollision.obj + 0003:00002680 ?m_vertex@dgCollisionHeightField@@0PAPAVdgVector@@A 1009a680 physics_2009:dgCollisionHeightField.obj + 0003:000026a0 ?m_vertexCount@dgCollisionHeightField@@0PAHA 1009a6a0 physics_2009:dgCollisionHeightField.obj + 0003:000026c0 ?m_refCount@dgCollisionHeightField@@0HA 1009a6c0 physics_2009:dgCollisionHeightField.obj + 0003:000026d0 ?m_negIndex@dgContactSolver@@2T__m128@@A 1009a6d0 physics_2009:dgMinkowskiConv.obj + 0003:000026e0 ?m_zero@dgContactSolver@@2T__m128@@A 1009a6e0 physics_2009:dgMinkowskiConv.obj + 0003:000026f0 ?m_index_yx@dgContactSolver@@2T__m128@@A 1009a6f0 physics_2009:dgMinkowskiConv.obj + 0003:00002700 ?m_index_wz@dgContactSolver@@2T__m128@@A 1009a700 physics_2009:dgMinkowskiConv.obj + 0003:00002710 ?m_zeroTolerenace@dgContactSolver@@2T__m128@@A 1009a710 physics_2009:dgMinkowskiConv.obj + 0003:00002720 ?m_nrh0p5@dgContactSolver@@2T__m128@@A 1009a720 physics_2009:dgMinkowskiConv.obj + 0003:00002730 ?m_nrh3p0@dgContactSolver@@2T__m128@@A 1009a730 physics_2009:dgMinkowskiConv.obj + 0003:00002740 ?m_negativeOne@dgContactSolver@@2T__m128@@A 1009a740 physics_2009:dgMinkowskiConv.obj + 0003:00002750 ?m_dir@dgContactSolver@@2PAVdgVector@@A 1009a750 physics_2009:dgMinkowskiConv.obj + 0003:00002830 ?m_edgeArray@dgCollisionCapsule@@0PAVdgConvexSimplexEdge@@A 1009a830 physics_2009:dgCollisionCapsule.obj + 0003:00003370 ?m_shapeRefCount@dgCollisionCapsule@@0HA 1009b370 physics_2009:dgCollisionCapsule.obj + 0003:00003378 ?m_edgeArray@dgCollisionCone@@0PAVdgConvexSimplexEdge@@A 1009b378 physics_2009:dgCollisionCone.obj + 0003:00003578 ?m_shapeRefCount@dgCollisionCone@@0HA 1009b578 physics_2009:dgCollisionCone.obj + 0003:00003580 ?m_edgeArray@dgCollisionCylinder@@0PAVdgConvexSimplexEdge@@A 1009b580 physics_2009:dgCollisionCylinder.obj + 0003:00003880 ?m_shapeRefCount@dgCollisionCylinder@@0HA 1009b880 physics_2009:dgCollisionCylinder.obj + 0003:00003890 ?m_edgeArray@dgCollisionChamferCylinder@@0PAVdgConvexSimplexEdge@@A 1009b890 physics_2009:dgCollisionChamferCylinder.obj + 0003:00004190 ?m_shapeRefCount@dgCollisionChamferCylinder@@0HA 1009c190 physics_2009:dgCollisionChamferCylinder.obj + 0003:000041a0 ?m_shapesDirs@dgCollisionChamferCylinder@@0PAVdgVector@@A 1009c1a0 physics_2009:dgCollisionChamferCylinder.obj + 0003:00004264 ___fastflag 1009c264 LIBCMT:_fpinit_.obj + 0003:00004268 __adjust_fdiv 1009c268 LIBCMT:_fpinit_.obj + 0003:00004270 __aenvptr 1009c270 LIBCMT:dllcrt0.obj + 0003:00004274 __wenvptr 1009c274 LIBCMT:dllcrt0.obj + 0003:00004278 ___error_mode 1009c278 LIBCMT:dllcrt0.obj + 0003:0000427c ___app_type 1009c27c LIBCMT:dllcrt0.obj + 0003:000043d8 ___sbh_pHeaderDefer 1009c3d8 LIBCMT:sbheap.obj + 0003:000043dc __crtheap 1009c3dc LIBCMT:heapinit.obj + 0003:000043e0 __umaskval 1009c3e0 LIBCMT:crt0dat.obj + 0003:000043e4 ___argc 1009c3e4 LIBCMT:crt0dat.obj + 0003:000043e8 ___argv 1009c3e8 LIBCMT:crt0dat.obj + 0003:000043ec ___wargv 1009c3ec LIBCMT:crt0dat.obj + 0003:000043f0 __environ 1009c3f0 LIBCMT:crt0dat.obj + 0003:000043f4 ___initenv 1009c3f4 LIBCMT:crt0dat.obj + 0003:000043f8 __wenviron 1009c3f8 LIBCMT:crt0dat.obj + 0003:000043fc ___winitenv 1009c3fc LIBCMT:crt0dat.obj + 0003:00004400 __pgmptr 1009c400 LIBCMT:crt0dat.obj + 0003:00004404 __wpgmptr 1009c404 LIBCMT:crt0dat.obj + 0003:00004408 __exitflag 1009c408 LIBCMT:crt0dat.obj + 0003:0000440c __C_Termination_Done 1009c40c LIBCMT:crt0dat.obj + 0003:00004410 __C_Exit_Done 1009c410 LIBCMT:crt0dat.obj + 0003:0000472c ?_pnhHeap@@3P6AHI@ZA 1009c72c LIBCMT:handler.obj + 0003:00004730 __newmode 1009c730 LIBCMT:_newmode.obj + 0003:00004734 _gpFlsAlloc 1009c734 LIBCMT:tidtable.obj + 0003:00004738 _gpFlsGetValue 1009c738 LIBCMT:tidtable.obj + 0003:0000473c _gpFlsSetValue 1009c73c LIBCMT:tidtable.obj + 0003:00004740 _gpFlsFree 1009c740 LIBCMT:tidtable.obj + 0003:00004744 __maxwait 1009c744 LIBCMT:crtheap.obj + 0003:00004854 ___pInvalidArgHandler 1009c854 LIBCMT:invarg.obj + 0003:00004874 ___pPurecall 1009c874 LIBCMT:inithelp.obj + 0003:00004904 ___mbulinfo 1009c904 LIBCMT:mbctype.obj + 0003:00004910 ___mbcodepage 1009c910 LIBCMT:mbctype.obj + 0003:00004914 ___ismbcodepage 1009c914 LIBCMT:mbctype.obj + 0003:00004918 ___mblcid 1009c918 LIBCMT:mbctype.obj + 0003:0000491c ___locale_changed 1009c91c LIBCMT:setlocal.obj + 0003:00004920 ___lc_handle 1009c920 LIBCMT:nlsdata2.obj + 0003:00004938 ___lc_codepage 1009c938 LIBCMT:nlsdata2.obj + 0003:0000493c ___lc_collate_cp 1009c93c LIBCMT:nlsdata2.obj + 0003:00004940 __outputformat 1009c940 LIBCMT:outputformat.obj + 0003:00004948 ?__pInconsistency@@3P6AXXZA 1009c948 LIBCMT:hooks.obj + 0003:00004964 __cflush 1009c964 LIBCMT:_file.obj + 0003:00004974 ___lconv_static_null 1009c974 LIBCMT:lconv.obj + 0003:00004c9c __stdbuf 1009cc9c LIBCMT:_sftbuf.obj + 0003:00004d60 __debugger_hook_dummy 1009cd60 + 0003:00004d64 ___piob 1009cd64 + 0003:00004d80 __bufin 1009cd80 + 0003:00005d80 __nstream 1009dd80 + 0003:00005d84 __nhandle 1009dd84 + 0003:00005da0 ___pioinfo 1009dda0 + 0003:00005ea0 ___env_initialized 1009dea0 + 0003:00005ea4 ___onexitend 1009dea4 + 0003:00005ea8 ___onexitbegin 1009dea8 + 0003:00005eac ___mbctype_initialized 1009deac + 0003:00005eb0 ___dyn_tls_init_callback 1009deb0 + 0003:00005eb4 ___active_heap 1009deb4 + 0003:00005eb8 __pDestructExceptionObject 1009deb8 + 0003:00005ebc ___sbh_cntHeaderList 1009debc + 0003:00005ec0 ___sbh_pHeaderList 1009dec0 + 0003:00005ec4 ___sbh_threshold 1009dec4 + 0003:00005ec8 ___sbh_pHeaderScan 1009dec8 + 0003:00005ecc ___sbh_sizeHeaderList 1009decc + 0003:00005ed0 ___sbh_indGroupDefer 1009ded0 + 0003:00005ed4 ___use_sse2_mathfcns 1009ded4 + 0003:00005ed8 ___sse2_available 1009ded8 + 0003:00005edc __pmatherr 1009dedc + 0003:00005ee0 __acmdln 1009dee0 + + entry point at 0001:0007d8b6 + + Static symbols + + 0001:0006c780 ?DetectSSE@@YA_NXZ 1006d780 f corelib_2009:dgTypes.obj + 0001:0006c780 ?DetectSSE_3@@YA_NXZ 1006d780 f corelib_2009:dgTypes.obj + 0001:0006ce60 ?SortVertices@InternalGeoUtil@@YAHQAMHHHHM@Z 1006de60 f corelib_2009:dgTypes.obj + 0001:0006d8a0 ?QuickSortVertices@InternalGeoUtil@@YAHQAMHHHHM@Z 1006e8a0 f corelib_2009:dgTypes.obj + 0001:0006edd0 ?NormalizeVertex@InternalPolyhedra@@YAXHQAVdgTriplex@@QBMH@Z 1006fdd0 f corelib_2009:dgPolyhedra.obj + 0001:0006ef20 ?EdgePlane@InternalPolyhedra@@YA?AVdgBigPlane@@HHHQBVdgTriplex@@@Z 1006ff20 f corelib_2009:dgPolyhedra.obj + 0001:0006f040 ?UnboundedLoopPlane@InternalPolyhedra@@YA?AVdgBigPlane@@HHHQBVdgTriplex@@@Z 10070040 f corelib_2009:dgPolyhedra.obj + 0001:0006f190 ?BigFaceNormal@InternalPolyhedra@@YA?AVdgBigVector@@PAVdgEdge@@QBMH@Z 10070190 f corelib_2009:dgPolyhedra.obj + 0001:0006f2a0 ?CalculateVertexMetrics@InternalPolyhedra@@YAXQAUVERTEX_METRIC_STRUCT@1@QBVdgTriplex@@PAVdgEdge@@@Z 100702a0 f corelib_2009:dgPolyhedra.obj + 0001:0006f380 ?IsEssensialPointDiagonal@InternalPolyhedra@@YA_NPAVdgEdge@@ABVdgBigVector@@QBMH@Z 10070380 f corelib_2009:dgPolyhedra.obj + 0001:0006f880 ?CalculateAllMetrics@InternalPolyhedra@@YAXPBVdgPolyhedra@@QAUVERTEX_METRIC_STRUCT@1@QBVdgTriplex@@@Z 10070880 f corelib_2009:dgPolyhedra.obj + 0001:0006fb10 ?EdgePenalty@InternalPolyhedra@@YAMABVdgPolyhedra@@QBVdgTriplex@@PAVdgEdge@@@Z 10070b10 f corelib_2009:dgPolyhedra.obj + 0001:00070200 ?GetInteriorDiagonals@InternalPolyhedra@@YAHAAVdgPolyhedra@@QAPAVdgEdge@@H@Z 10071200 f corelib_2009:dgPolyhedra.obj + 0001:000704a0 ?MatchTwins@InternalPolyhedra@@YA_NPAVdgPolyhedra@@@Z 100714a0 f corelib_2009:dgPolyhedra.obj + 0001:00070550 ?FindEarTip@InternalPolyhedra@@YAPAVdgEdge@@ABVdgPolyhedra@@PAV2@QBMHAAV?$dgDownHeap@PAVdgEdge@@M@@ABVdgVector@@@Z 10071550 f corelib_2009:dgPolyhedra.obj + 0001:000713d0 ?CloseOpenBounds@InternalPolyhedra@@YAXPAVdgPolyhedra@@@Z 100723d0 f corelib_2009:dgPolyhedra.obj + 0001:00072550 ?MarkAdjacentCoplanarFaces@InternalPolyhedra@@YAXAAVdgPolyhedra@@0PAVdgEdge@@QBMH@Z 10073550 f corelib_2009:dgPolyhedra.obj + 0001:00072880 ?ConvexPartition@InternalPolyhedra@@YA_NAAVdgPolyhedra@@QBMH@Z 10073880 f corelib_2009:dgPolyhedra.obj + 0001:000732e0 ?TriangulateFace@InternalPolyhedra@@YAPAVdgEdge@@AAVdgPolyhedra@@PAV2@QBMHAAV?$dgDownHeap@PAVdgEdge@@M@@PAVdgVector@@@Z 100742e0 f corelib_2009:dgPolyhedra.obj + 0001:0007d7c0 ___DllMainCRTStartup 1007e7c0 f LIBCMT:dllcrt0.obj + 0001:0007d956 __hw_cw 1007e956 f LIBCMT:_ieee87_.obj + 0001:0007d9e4 ___hw_cw_sse2 1007e9e4 f LIBCMT:_ieee87_.obj + 0001:0007e56a __onexit_nolock 1007f56a f LIBCMT:onexit.obj + 0001:0007e806 __callthreadstartex 1007f806 f LIBCMT:threadex.obj + 0001:0007e847 __threadstartex@4 1007f847 f LIBCMT:threadex.obj + 0001:0007ef41 __shift 1007ff41 f LIBCMT:cvt.obj + 0001:0007ef86 __cftoe2_l 1007ff86 f LIBCMT:cvt.obj + 0001:0007f558 __cftof2_l 10080558 f LIBCMT:cvt.obj + 0001:0008091e __initterm 1008191e f LIBCMT:crt0dat.obj + 0001:000809e4 _doexit 100819e4 f LIBCMT:crt0dat.obj + 0001:00080e29 _fastzero_I 10081e29 f LIBCMT:p4_memset.obj + 0001:00080f0f _fastcopy_I 10081f0f f LIBCMT:p4_memcpy.obj + 0001:00081b20 _parse_cmdline 10082b20 f LIBCMT:stdargv.obj + 0001:00082273 _write_char 10083273 f LIBCMT:output.obj + 0001:000822a6 _write_multi_char 100832a6 f LIBCMT:output.obj + 0001:000822cc _write_string 100832cc f LIBCMT:output.obj + 0001:000831ac _siglookup 100841ac f LIBCMT:winsig.obj + 0001:00084b34 __unwind_handler 10085b34 f LIBCMT:exsup.obj + 0001:00084c50 _ValidateScopeTableHandlers 10085c50 f LIBCMT:eh3valid.obj + 0001:000851b0 _has_osfxsr_set 100861b0 f LIBCMT:cpu_disp.obj + 0001:00085afd ?CPtoLCID@@YAHH@Z 10086afd f LIBCMT:mbctype.obj + 0001:00085b2c ?setSBCS@@YAXPAUthreadmbcinfostruct@@@Z 10086b2c f LIBCMT:mbctype.obj + 0001:00085b90 ?setSBUpLow@@YAXPAUthreadmbcinfostruct@@@Z 10086b90 f LIBCMT:mbctype.obj + 0001:00085dc7 ?getSystemCP@@YAHH@Z 10086dc7 f LIBCMT:mbctype.obj + 0001:00086451 __updatetlocinfoEx_nolock 10087451 f LIBCMT:setlocal.obj + 0001:000870a8 __unwind_handler4 100880a8 f LIBCMT:exsup4.obj + 0001:000877da ?x_ismbbtype_l@@YAHPAUlocaleinfo_struct@@IHH@Z 100887da f LIBCMT:ismbbyte.obj + 0001:0008968e ?__crtLCMapStringA_stat@@YAHPAUlocaleinfo_struct@@KKPBDHPADHHH@Z 1008a68e f LIBCMT:a_map.obj + 0001:00089a78 ?__crtGetStringTypeA_stat@@YAHPAUlocaleinfo_struct@@KPBDHPAGHHH@Z 1008aa78 f LIBCMT:a_str.obj + 0001:0008c16b _flsall 1008d16b f LIBCMT:fflush.obj + 0001:0008c24e ?strtoxl@@YAKPAUlocaleinfo_struct@@PBDPAPBDHH@Z 1008d24e f LIBCMT:strtol.obj + 0001:0008cdc0 ??__Eg_allocaror@dgInternalMemory@@YAXXZ 1008ddc0 f corelib_2009:dgMemory.obj + 0001:0008cdd0 ??__Fg_allocaror@dgInternalMemory@@YAXXZ 1008ddd0 f corelib_2009:dgMemory.obj diff -r 0000000000000000000000000000000000000000 -r ca2aafbed07aa2fcc3d877153c7ece78716eedd9 WIP/dlls/newton.pdb Binary file WIP/dlls/newton.pdb has changed