Hi Ragnar, I'm not clear on what you are after, but at a guess you might need to explictly call viewer->home() to set the camera manipulator position to the appropriate place.
Robert. On Tue, Sep 1, 2009 at 7:49 AM, Ragnar Hammarqvist<ragnar.hammarqv...@foi.se> wrote: > Hi All > > I am trying to set up a map view using a TerrainManipulator. But when my > aplication is running I nead to press "space" in order to get somhing in the > view that makes sense. Whene I remove the TerrainManipulator the view shows > me what it is supose to. I gues that Im using the TerreinManipulator wrong in > som sens but I can not figure out what. > > I have the folowing code running when the view is initialized: > > > > osg::ref_ptr<osgViewer::View> pViewC2 = new osgViewer::View; > > osg::Camera* pCamera = new osg::Camera; > pViewC2->setCamera(pCameraC2); > pViewC2->getCamera()->setComputeNearFarMode(osgUtil::CullVisitor::ComputeNearFarMode::COMPUTE_NEAR_FAR_USING_PRIMITIVES); > pViewC2->getCamera()->setGraphicsContext(m_pCanvasC2); > pViewC2->getCamera()->setViewport(0, 0, nWidth, nHeight); > pViewC2->addEventHandler(new osgViewer::StatsHandler); > > m_pRootC2 = new osg::Group; > m_pRootC2->setDataVariance(osg::Object::DYNAMIC); > m_pRootC2->addChild(getScene()->getMapRoot().get()); > pViewC2->setSceneData(m_pRootC2); > > osgGA::TerrainManipulator* pCameraManipulator = > newosgGA::TerrainManipulator(); > pViewC2->addEventHandler(pCameraManipulator); > pViewC2->setCameraManipulator(pCameraManipulator); > > osg::Viewport* pViewportC2 = pViewC2->getCamera()->getViewport(); > double dAspectRatio = pViewportC2->aspectRatio(); > > pViewC2->getCamera()->setProjectionMatrixAsPerspective(45.0,dAspectRatio, > 100.0, 100000.0); > > osg::Vec3d eyePos, centerPos, upVec; > //Get hold of the vectors from our system > pTerrain->getInitialMapCamViewAsLookat(eyePos, centerPos, upVec); > > osg::Matrixd mapCamViewMatrix; > mapCamViewMatrix.makeLookAt( > eyePos, centerPos, upVec); > > pViewC2->getCamera()->setViewMatrix(mapCamViewMatrix); > > pCameraManipulator->setByMatrix(mapCamViewMatrix); > pCameraManipulator->setNode(m_pRootC2); > pCameraManipulator->setHomePosition( > eyePos, centerPos, upVec); > > > Regards. > Ragnar Hammarqvist @ FOI > _______________________________________________ > osg-users mailing list > osg-users@lists.openscenegraph.org > http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org > _______________________________________________ osg-users mailing list osg-users@lists.openscenegraph.org http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org