From f9158592e1478b2013afc7041d9ed041cf2d2f4a Mon Sep 17 00:00:00 2001 From: David Walter Seikel Date: Mon, 13 Jan 2014 19:47:58 +1000 Subject: Update Irrlicht to 1.8.1. Include actual change markers this time. lol --- .../irrlicht-1.8/examples/15.LoadIrrFile/main.cpp | 173 --------------------- 1 file changed, 173 deletions(-) delete mode 100644 libraries/irrlicht-1.8/examples/15.LoadIrrFile/main.cpp (limited to 'libraries/irrlicht-1.8/examples/15.LoadIrrFile/main.cpp') diff --git a/libraries/irrlicht-1.8/examples/15.LoadIrrFile/main.cpp b/libraries/irrlicht-1.8/examples/15.LoadIrrFile/main.cpp deleted file mode 100644 index 4abffb3..0000000 --- a/libraries/irrlicht-1.8/examples/15.LoadIrrFile/main.cpp +++ /dev/null @@ -1,173 +0,0 @@ -/** Example 015 Loading Scenes from .irr Files - -Since version 1.1, Irrlicht is able to save and load -the full scene graph into an .irr file, an xml based -format. There is an editor available to edit -those files, named irrEdit (http://www.ambiera.com/irredit) -which can also be used as world and particle editor. -This tutorial shows how to use .irr files. - -Lets start: Create an Irrlicht device and setup the window. -*/ - -#include -#include "driverChoice.h" - -using namespace irr; - -#ifdef _MSC_VER -#pragma comment(lib, "Irrlicht.lib") -#endif - -int main(int argc, char** argv) -{ - // ask user for driver - video::E_DRIVER_TYPE driverType=driverChoiceConsole(); - if (driverType==video::EDT_COUNT) - return 1; - - // create device and exit if creation failed - - IrrlichtDevice* device = - createDevice(driverType, core::dimension2d(640, 480)); - - if (device == 0) - return 1; // could not create selected driver. - - device->setWindowCaption(L"Load .irr file example"); - - video::IVideoDriver* driver = device->getVideoDriver(); - scene::ISceneManager* smgr = device->getSceneManager(); - - /* - Now load our .irr file. - .irr files can store the whole scene graph including animators, - materials and particle systems. And there is also the possibility to - store arbitrary user data for every scene node in that file. To keep - this example simple, we are simply loading the scene here. See the - documentation at ISceneManager::loadScene and ISceneManager::saveScene - for more information. So to load and display a complicated huge scene, - we only need a single call to loadScene(). - */ - - // load the scene - if (argc>1) - smgr->loadScene(argv[1]); - else - smgr->loadScene("../../media/example.irr"); - - /* - Now we'll create a camera, and give it a collision response animator - that's built from the mesh nodes in the scene we just loaded. - */ - scene::ICameraSceneNode * camera = smgr->addCameraSceneNodeFPS(0, 50.f, 0.1f); - - // Create a meta triangle selector to hold several triangle selectors. - scene::IMetaTriangleSelector * meta = smgr->createMetaTriangleSelector(); - - /* - Now we will find all the nodes in the scene and create triangle - selectors for all suitable nodes. Typically, you would want to make a - more informed decision about which nodes to performs collision checks - on; you could capture that information in the node name or Id. - */ - core::array nodes; - smgr->getSceneNodesFromType(scene::ESNT_ANY, nodes); // Find all nodes - - for (u32 i=0; i < nodes.size(); ++i) - { - scene::ISceneNode * node = nodes[i]; - scene::ITriangleSelector * selector = 0; - - switch(node->getType()) - { - case scene::ESNT_CUBE: - case scene::ESNT_ANIMATED_MESH: - // Because the selector won't animate with the mesh, - // and is only being used for camera collision, we'll just use an approximate - // bounding box instead of ((scene::IAnimatedMeshSceneNode*)node)->getMesh(0) - selector = smgr->createTriangleSelectorFromBoundingBox(node); - break; - - case scene::ESNT_MESH: - case scene::ESNT_SPHERE: // Derived from IMeshSceneNode - selector = smgr->createTriangleSelector(((scene::IMeshSceneNode*)node)->getMesh(), node); - break; - - case scene::ESNT_TERRAIN: - selector = smgr->createTerrainTriangleSelector((scene::ITerrainSceneNode*)node); - break; - - case scene::ESNT_OCTREE: - selector = smgr->createOctreeTriangleSelector(((scene::IMeshSceneNode*)node)->getMesh(), node); - break; - - default: - // Don't create a selector for this node type - break; - } - - if(selector) - { - // Add it to the meta selector, which will take a reference to it - meta->addTriangleSelector(selector); - // And drop my reference to it, so that the meta selector owns it. - selector->drop(); - } - } - - /* - Now that the mesh scene nodes have had triangle selectors created and added - to the meta selector, create a collision response animator from that meta selector. - */ - scene::ISceneNodeAnimator* anim = smgr->createCollisionResponseAnimator( - meta, camera, core::vector3df(5,5,5), - core::vector3df(0,0,0)); - meta->drop(); // I'm done with the meta selector now - - camera->addAnimator(anim); - anim->drop(); // I'm done with the animator now - - // And set the camera position so that it doesn't start off stuck in the geometry - camera->setPosition(core::vector3df(0.f, 20.f, 0.f)); - - // Point the camera at the cube node, by finding the first node of type ESNT_CUBE - scene::ISceneNode * cube = smgr->getSceneNodeFromType(scene::ESNT_CUBE); - if(cube) - camera->setTarget(cube->getAbsolutePosition()); - - /* - That's it. Draw everything and finish as usual. - */ - - int lastFPS = -1; - - while(device->run()) - if (device->isWindowActive()) - { - driver->beginScene(true, true, video::SColor(0,200,200,200)); - smgr->drawAll(); - driver->endScene(); - - int fps = driver->getFPS(); - - if (lastFPS != fps) - { - core::stringw str = L"Load Irrlicht File example - Irrlicht Engine ["; - str += driver->getName(); - str += "] FPS:"; - str += fps; - - device->setWindowCaption(str.c_str()); - lastFPS = fps; - } - - } - - device->drop(); - - return 0; -} - -/* -**/ -- cgit v1.1