Hi Eric,

have a look at CameraManipulator->setHomePosition()

On Wed, Apr 22, 2020 at 3:20 PM Erik Hensens <[email protected]> wrote:

> Thank you all so much for your help on this. Generally speaking, what is
> the proper approach if I want to set the initial view to a specific look-at
> but after that I want the default manipulator to behave as normal?
>
> On Tuesday, April 21, 2020 at 1:43:45 AM UTC-5, Erik Hensens wrote:
>>
>> Hello everyone,
>>
>> I am trying to change the camera's perspective by calling
>> setViewMatrixAsLookAt, but it is not making any change in the orientation
>> of my scene. Here is the full code for the simplest application that
>> reproduces my problem. There must be something I'm fundamentally
>> misunderstanding here. I appreciate any and all help! Thanks in advance!
>>
>> #include <osg/Geode>
>> #include <osg/ShapeDrawable>
>> #include <osgViewer/Viewer>
>>
>>
>> // Get a new sphere geode
>> osg::ref_ptr<osg::Geode> CreateSphereGeode(
>>  osg::Vec3 tCenter, // The location of the center of the sphere
>>  osg::Vec4 tColor, // The color of the sphere
>>  float fRadius // The sphere radius
>>  )
>> {
>>  // Create the geode to return
>>  osg::ref_ptr<osg::Geode> pRetv = new osg::Geode;
>>
>>
>>  // Create the sphere
>>  osg::ref_ptr<osg::Sphere> pSphere = new osg::Sphere(tCenter, fRadius);
>>
>>
>>  // Create the drawable
>>  osg::ref_ptr<osg::ShapeDrawable> pSphereDrawable = new osg::
>> ShapeDrawable(pSphere);
>>
>>
>>  // Set the color
>>  pSphereDrawable->setColor(tColor);
>>
>>
>>  // Add the drawable
>>  pRetv->addDrawable(pSphereDrawable);
>>
>>
>>  // Return this geode
>>  return pRetv;
>> }
>>
>>
>> // The main application entry point
>> int main(int argc, char *argv[])
>> {
>>  // Create the viewer
>>  osg::ref_ptr<osgViewer::Viewer> pViewer = new osgViewer::Viewer;
>>
>>  // Create the top group parent
>>  osg::ref_ptr<osg::Group> pTopGroup = new osg::Group;
>>
>>
>>  // Create some spheres
>>  osg::ref_ptr<osg::Geode> pSphere1 = CreateSphereGeode(osg::Vec3(0.0f,
>> 0.0f, 0.0f), osg::Vec4(1.0f, 0.0f, 0.0f, 1.0f), 2.0f);
>>  osg::ref_ptr<osg::Geode> pSphere2 = CreateSphereGeode(osg::Vec3(10.0f,
>> 0.0f, 5.0f), osg::Vec4(0.0f, 0.0f, 1.0f, 1.0f), 1.0f);
>>  osg::ref_ptr<osg::Geode> pSphere3 = CreateSphereGeode(osg::Vec3(-15.0f,
>> 6.0f, 0.0f), osg::Vec4(0.0f, 1.0f, 0.0f, 1.0f), 4.0f);
>>
>>
>>  // Add these spheres to the top group node
>>  pTopGroup->addChild(pSphere1);
>>  pTopGroup->addChild(pSphere2);
>>  pTopGroup->addChild(pSphere3);
>>
>>
>>  // Here I am attempting to change the initial perspective, but I can
>> make these numbers anything and it doesn't seem to change anything
>>  pViewer->getCamera()->setViewMatrixAsLookAt(
>>  osg::Vec3(-0.9983f, 0.0252f, -0.0530f),
>>  osg::Vec3(0.8639f, -2.5189f, -70.0939f),
>>  osg::Vec3(0.8880f, -1.5194f, -70.0726f)
>>  );
>>
>>  // Add a viewport to the viewer and attach the scene graph
>>  pViewer->setSceneData(pTopGroup);
>>
>>
>>  // Run the viewer
>>  return pViewer->run();
>> }
>>
>> --
> You received this message because you are subscribed to the Google Groups
> "OpenSceneGraph Users" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/osg-users/5a697087-a62b-4a5a-b8ab-15ab1c25cfdc%40googlegroups.com
> <https://groups.google.com/d/msgid/osg-users/5a697087-a62b-4a5a-b8ab-15ab1c25cfdc%40googlegroups.com?utm_medium=email&utm_source=footer>
> .
>


-- 
trajce nikolov nick

-- 
You received this message because you are subscribed to the Google Groups 
"OpenSceneGraph Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/osg-users/CAO-%2Bzi%3DS59-pOcHTHT1DMRJCa508ceuQTS7GNiGuYPunBddXUQ%40mail.gmail.com.

Reply via email to