From 959831f4ef5a3e797f576c3de08cd65032c997ad Mon Sep 17 00:00:00 2001 From: David Walter Seikel Date: Sun, 13 Jan 2013 18:54:10 +1000 Subject: Remove damned ancient DOS line endings from Irrlicht. Hopefully I did not go overboard. --- .../irrlicht-1.8/examples/15.LoadIrrFile/main.cpp | 346 ++++++++++----------- 1 file changed, 173 insertions(+), 173 deletions(-) (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 index 42327cd..4abffb3 100644 --- a/libraries/irrlicht-1.8/examples/15.LoadIrrFile/main.cpp +++ b/libraries/irrlicht-1.8/examples/15.LoadIrrFile/main.cpp @@ -1,173 +1,173 @@ -/** 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; -} - -/* -**/ +/** 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