void GridBuilder::buildInScene(Ogre::SceneManager *_scene, int _units) { using namespace Ogre; SceneNode *gridNode = _scene->getRootSceneNode()->createChildSceneNode("WorldGrid Node"); ManualObject *axes = _scene->createManualObject("AXES"); axes->begin("WorldGrid/Axes", RenderOperation::OT_LINE_LIST); // X axis axes->position(-_units, 0.0, 0.0); axes->colour(0.1, 0.0, 0.0); axes->position( _units, 0.0, 0.0); axes->colour(1.0, 0.0, 0.0); // Y Axis axes->position(0.0, -_units, 0.0); axes->colour(0.0, 0.1, 0.0); axes->position(0.0, _units, 0.0); axes->colour(0.0, 1.0, 0.0); // Z axis axes->position( 0.0, 0.0, -_units); axes->colour(0.0, 0.0, 0.1); axes->position( 0.0, 0.0, _units); axes->colour(0.0, 0.0, 1.0); axes->end(); gridNode->attachObject(axes); axes->setQueryFlags(0x00); ManualObject *grid = _scene->createManualObject("Grid Lines"); grid->begin("WorldGrid/Lines", RenderOperation::OT_LINE_LIST); float c; for (int i = 10; i<=_units ; i+=10) { c = (i%100) ? 0.6 : 0.7; grid->position(-_units, 0, i); grid->colour(c, c, c); grid->position( _units, 0, i); grid->colour(c, c, c); grid->position(-_units, 0, -i); grid->colour(c, c, c); grid->position( _units, 0, -i); grid->colour(c, c, c); grid->position(i, 0, -_units); grid->colour(c, c, c); grid->position(i, 0, _units); grid->colour(c, c, c); grid->position(-i, 0, -_units); grid->colour(c, c, c); grid->position(-i, 0, _units); grid->colour(c, c, c); } grid->end(); grid->setQueryFlags(0x00); gridNode->attachObject(grid); }
//----------------------------------------------------------------------------- void OgreApplication::_createGrid(int _units) { SceneNode *gridNode = mSceneMgr->getRootSceneNode()->createChildSceneNode("WorldGrid Node"); ManualObject *axes = mSceneMgr->createManualObject("AXES"); axes->begin("WorldGrid/Axes", RenderOperation::OT_LINE_LIST); // X axis axes->position(-_units, 0.0, 0.0); axes->colour(0.1, 0.0, 0.0); axes->position( _units, 0.0, 0.0); axes->colour(1.0, 0.0, 0.0); // Y Axis axes->position(0.0, -_units, 0.0); axes->colour(0.0, 0.1, 0.0); axes->position(0.0, _units, 0.0); axes->colour(0.0, 1.0, 0.0); // Z axis axes->position( 0.0, 0.0, -_units); axes->colour(0.0, 0.0, 0.1); axes->position( 0.0, 0.0, _units); axes->colour(0.0, 0.0, 1.0); axes->end(); gridNode->attachObject(axes); axes->setQueryFlags(0x00); ManualObject *grid = mSceneMgr->createManualObject("Grid Lines"); grid->begin("WorldGrid/Lines", RenderOperation::OT_LINE_LIST); float c; for (int i = 10; i<=_units ; i+=10) { c = (i%100) ? 0.6 : 0.7; grid->position(-_units, 0, i); grid->colour(c, c, c); grid->position( _units, 0, i); grid->colour(c, c, c); grid->position(-_units, 0, -i); grid->colour(c, c, c); grid->position( _units, 0, -i); grid->colour(c, c, c); grid->position(i, 0, -_units); grid->colour(c, c, c); grid->position(i, 0, _units); grid->colour(c, c, c); grid->position(-i, 0, -_units); grid->colour(c, c, c); grid->position(-i, 0, _units); grid->colour(c, c, c); } grid->end(); grid->setQueryFlags(0x00); gridNode->attachObject(grid); }