Beispiel #1
0
    //---------------------------- Stereo tuning  ------------------------
    void StereoManager::setFocalLength(Ogre::Real l)
    {
        if(l == std::numeric_limits<Ogre::Real>::infinity())
        {
            setFocalLengthInfinite(true);
        }
        else
        {
            setFocalLengthInfinite(false);

            Ogre::Real old = focal_length_;
            focal_length_ = l;
            if( camera_ )
            {
                camera_->setFocalLength(focal_length_);
                if(focal_plane_fixed_)
                    updateCamera(focal_length_ - old);
                else if(debug_plane_)
                    updateDebugPlane();
            }
        }
    }
Beispiel #2
0
//---------------------------- Stereo tuning  ------------------------
void StereoManager::setFocalLength(Ogre::Real l)
{
	if(l == std::numeric_limits<Ogre::Real>::infinity())
	{
		setFocalLengthInfinite(true);
	}
	else
	{
		setFocalLengthInfinite(false);

		Ogre::Real old = mFocalLength;
		mFocalLength = l;
		if( mCamera )
		{
			mCamera->setFocalLength(mFocalLength);
			if(mIsFocalPlaneFixed)
				updateCamera(mFocalLength - old);
			else if(mDebugPlane)
				updateDebugPlane();
		}
	}
}
Beispiel #3
0
    void StereoManager::createDebugPlane(Ogre::SceneManager *sceneMgr, const Ogre::String &leftMaterialName, const Ogre::String &rightMaterialName)
    {
        if(debug_plane_)
            return;

        sceneMngr_ = sceneMgr;
        Ogre::Plane screenPlane;
        screenPlane.normal = Ogre::Vector3::UNIT_Z;
        Ogre::MeshManager::getSingleton().createPlane("Stereo/Plane",
            Ogre::ResourceGroupManager::DEFAULT_RESOURCE_GROUP_NAME,
            screenPlane,1,1,10,10);
        debug_plane_ = sceneMgr->createEntity( "Stereo/DebugPlane", "Stereo/Plane" );

        if(leftMaterialName == "")
        {
            left_mat_name_ = "Stereo/Wireframe";
        }
        else
        {
            left_mat_name_ = leftMaterialName;
        }

        if(rightMaterialName == "")
        {
            right_mat_name_ = "Stereo/Wireframe";
        }
        else
        {
            right_mat_name_ = rightMaterialName;
        }


        debug_plane_node_ = static_cast<Ogre::SceneNode*>(sceneMgr->getRootSceneNode()->createChild("Stereo/DebugPlaneNode"));
        debug_plane_node_->attachObject(debug_plane_);

        enableDebugPlane(true);
        updateDebugPlane();
    }