Example #1
0
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();
}
Example #2
0
  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;
	}
Example #4
0
// constructor
CloudsLayer::CloudsLayer(osg::Group * pScene)
    : _clDensity(0.f)
{
     
    // state set composing
    _buildStateSet();
    // geometry creation
    _createGeometry();

    setCloudsTexture(av::weather_params::cirrus);
    setCloudsDensity(1.0);
}
Example #5
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;
	}