From 393b5cd1dc438872af89d334ef6e5fcc59f27d47 Mon Sep 17 00:00:00 2001 From: David Walter Seikel Date: Sun, 13 Jan 2013 17:24:39 +1000 Subject: Added Irrlicht 1.8, but without all the Windows binaries. --- libraries/irrlicht-1.8/doc/html/index.html | 189 +++++++++++++++++++++++++++++ 1 file changed, 189 insertions(+) create mode 100644 libraries/irrlicht-1.8/doc/html/index.html (limited to 'libraries/irrlicht-1.8/doc/html/index.html') diff --git a/libraries/irrlicht-1.8/doc/html/index.html b/libraries/irrlicht-1.8/doc/html/index.html new file mode 100644 index 0000000..33366c8 --- /dev/null +++ b/libraries/irrlicht-1.8/doc/html/index.html @@ -0,0 +1,189 @@ + + +
+ +Welcome to the Irrlicht Engine API documentation. Here you'll find any information you'll need to develop applications with the Irrlicht Engine. If you are looking for a tutorial on how to start, you'll find some on the homepage of the Irrlicht Engine at irrlicht.sourceforge.net or inside the SDK in the examples directory.
+The Irrlicht Engine is intended to be an easy-to-use 3d engine, so this documentation is an important part of it. If you have any questions or suggestions, just send a email to the author of the engine, Nikolaus Gebhardt (niko (at) irrlicht3d.org).
+Namespaces: A very good place to start reading the documentation.
+ Class list: List of all classes with descriptions.
+ Class members: Good place to find forgotten features.
+
A simple application, starting up the engine, loading a Quake 2 animated model file and the corresponding texture, animating and displaying it in front of a blue background and placing a user controlable 3d camera would look like the following code. I think this example shows the usage of the engine quite well:
+#include <irrlicht.h> + using namespace irr; + + int main() + { + // start up the engine + IrrlichtDevice *device = createDevice(video::EDT_DIRECT3D8, + core::dimension2d<u32>(640,480)); + + video::IVideoDriver* driver = device->getVideoDriver(); + scene::ISceneManager* scenemgr = device->getSceneManager(); + + device->setWindowCaption(L"Hello World!"); + + // load and show quake2 .md2 model + scene::ISceneNode* node = scenemgr->addAnimatedMeshSceneNode( + scenemgr->getMesh("quake2model.md2")); + + // if everything worked, add a texture and disable lighting + if (node) + { + node->setMaterialTexture(0, driver->getTexture("texture.bmp")); + node->setMaterialFlag(video::EMF_LIGHTING, false); + } + + // add a first person shooter style user controlled camera + scenemgr->addCameraSceneNodeFPS(); + + // draw everything + while(device->run() && driver) + { + driver->beginScene(true, true, video::SColor(255,0,0,255)); + scenemgr->drawAll(); + driver->endScene(); + } + + // delete device + device->drop(); + return 0; + } +
Irrlicht can load a lot of file formats automaticly, see irr::scene::ISceneManager::getMesh() for a detailed list. So if you would like to replace the simple blue screen background by a cool Quake 3 Map, optimized by an octree, just insert this code somewhere before the while loop:
+// add .pk3 archive to the file system + device->getFileSystem()->addZipFileArchive("quake3map.pk3"); + + // load .bsp file and show it using an octree + scenemgr->addOctreeSceneNode( + scenemgr->getMesh("quake3map.bsp")); +
As you can see, the engine uses namespaces. Everything in the engine is placed into the namespace 'irr', but there are also 5 sub namespaces. You can find a list of all namespaces with descriptions at the namespaces page. This is also a good place to start reading the documentation. If you don't want to write the namespace names all the time, just use all namespaces like this:
+using namespace core; + using namespace scene; + using namespace video; + using namespace io; + using namespace gui; +
There is a lot more the engine can do, but I hope this gave a short overview over the basic features of the engine. For more examples, please take a look into the examples directory of the SDK.
+