int main_teapot( int argc, char** argv ) { osg::ArgumentParser arguments(&argc,argv); osg::setNotifyLevel( osg::INFO ); osg::ref_ptr<osg::Group> root= new osg::Group; osg::ref_ptr<osg::Geode> teapot = new osg::Geode; teapot->addDrawable( new TeapotDrawable(1.0f) ); //root->addChild(teapot); osg::ref_ptr<osg::Geode> smthg = new osg::Geode; auto geom = _createGeometry(); add_something(geom); smthg->addDrawable(geom); root->addChild(smthg); osgViewer::Viewer viewer(arguments); viewer.getCamera()->setReferenceFrame(osg::Transform::ABSOLUTE_RF); //viewer.getCamera()->setProjectionMatrix(osg::Matrixd::identity()); //viewer.getCamera()->setViewMatrix(osg::Matrixd::scale(1,1,-1)); viewer.getCamera()->setCullingMode( osg::CullSettings::NO_CULLING ); viewer.apply(new osgViewer::SingleScreen(1)); viewer.setSceneData( root.get() ); return viewer.run(); }
void MeshManager::create() { if(mCreated) { return; } // Create mesh and submesh mMesh = Ogre::MeshManager::getSingleton().createManual("SkyXMesh", SKYX_RESOURCE_GROUP); mSubMesh = mMesh->createSubMesh(); mSubMesh->useSharedVertices = false; // Create mesh geometry _createGeometry(); // End mesh creation mMesh->load(); mMesh->touch(); mEntity = mSkyX->getSceneManager()->createEntity("SkyXMeshEnt", "SkyXMesh"); mEntity->setMaterialName(mMaterialName); mEntity->setCastShadows(false); mEntity->setRenderQueueGroup(Ogre::RENDER_QUEUE_SKIES_EARLY); mSceneNode = mSkyX->getSceneManager()->getRootSceneNode()->createChildSceneNode(); mSceneNode->showBoundingBox(false); mSceneNode->attachObject(mEntity); mSceneNode->setPosition(mSkyX->getCamera()->getDerivedPosition()); mCreated = true; _updateGeometry(); }
void GeometryManager::create() { remove(); mSceneNode = mVClouds->getSceneManager()->getRootSceneNode()->createChildSceneNode(); _createGeometry(); mCreated = true; }
// constructor CloudsLayer::CloudsLayer(osg::Group * pScene) : _clDensity(0.f) { // state set composing _buildStateSet(); // geometry creation _createGeometry(); setCloudsTexture(av::weather_params::cirrus); setCloudsDensity(1.0); }
void Mesh::create() { if (mCreated) { return; } // Create mesh and submesh mMesh = Ogre::MeshManager::getSingleton().createManual("HydraxMesh", HYDRAX_RESOURCE_GROUP); mSubMesh = mMesh->createSubMesh(); mSubMesh->useSharedVertices = false; if (mHydrax->getModule()) { if (!mHydrax->getModule()->_createGeometry(this)) { _createGeometry(); } } // End mesh creation Ogre::AxisAlignedBox meshBounds; if (mOptions.MeshSize.Width == 0 && mOptions.MeshSize.Height == 0) { meshBounds = Ogre::AxisAlignedBox(-1000000, -mOptions.MeshStrength/2,-1000000, 1000000, mOptions.MeshStrength/2, 1000000); } else { meshBounds = Ogre::AxisAlignedBox(0, -mOptions.MeshStrength/2, 0, float(mOptions.MeshSize.Width), mOptions.MeshStrength/2, float(mOptions.MeshSize.Height)); } mMesh->_setBounds(meshBounds); mMesh->load(); mMesh->touch(); mEntity = mHydrax->getSceneManager()->createEntity("HydraxMeshEnt", "HydraxMesh"); mEntity->setMaterialName(mMaterialName); mEntity->setCastShadows(false); mEntity->setRenderQueueGroup(Ogre::RENDER_QUEUE_1); mSceneNode = mHydrax->getSceneManager()->getRootSceneNode()->createChildSceneNode(); mSceneNode->showBoundingBox(false); mSceneNode->attachObject(mEntity); mSceneNode->setPosition(mHydrax->getPosition().x-mOptions.MeshSize.Width/2,mHydrax->getPosition().y,mHydrax->getPosition().z-mOptions.MeshSize.Height/2); mCreated = true; }
void GeometryManager::create(const noVec2& Height, const float& Radius, const float& Alpha, const float& Beta, const int& NumberOfBlocks, const int& Na, const int& Nb, const int& Nc) { remove(); mHeight = Height; mRadius = Radius; mAlpha = Alpha; mBeta = Beta; mPhi = noMath::TWO_PI / NumberOfBlocks; mNumberOfBlocks = NumberOfBlocks; mNa = Na; mNb = Nb; mNc = Nc; mSceneNode = SceneNode::NewNode(); _createGeometry(); mCreated = true; }
void GeometryManager::create(const Ogre::Vector2& Height, const float& Radius, const Ogre::Radian& Alpha, const Ogre::Radian& Beta, const int& NumberOfBlocks, const int& Na, const int& Nb, const int& Nc) { remove(); mHeight = Height; mRadius = Radius; mAlpha = Alpha; mBeta = Beta; mPhi = Ogre::Math::TWO_PI / NumberOfBlocks; mNumberOfBlocks = NumberOfBlocks; mNa = Na; mNb = Nb; mNc = Nc; mSceneNode = mVClouds->getSceneManager()->getRootSceneNode()->createChildSceneNode(); _createGeometry(); mCreated = true; }