OSG Earth положение камеры - PullRequest
       98

OSG Earth положение камеры

1 голос
/ 05 февраля 2020

Я пишу вам после нескольких отрицательных попыток.

Я работаю с OSGEarth , в частности, я не могу установить долготу, широту и высоту камеры для начальной позиции.

Боюсь, это связано с тем, что я использую EarthManipulator

Итак, я создаю камеру:

osg::ref_ptr<osg::GraphicsContext> gc = osg::GraphicsContext::createGraphicsContext(traits.get());  
osg::ref_ptr<osg::Camera> camera = new osg::Camera;
camera->setGraphicsContext(gc);
camera->setViewport(new osg::Viewport(0, 0, traits->width, traits->height));
camera->setClearMask(GL_DEPTH_BUFFER_BIT | GL_COLOR_BUFFER_BIT);

Затем, Поэтому я создаю представление , в которое я передаю EarthManipulator

osg::ref_ptr<osgViewer::Viewer> g_viewer = new osgViewer::Viewer;

osg::Vec3d eye(1110.0, 1110.0, 1110.0);
osg::Vec3d center(10.0, 10.0, 10.0);
osg::Vec3d up(0.0, 1.0, 0.0);

g_viewer->setCamera(camera.get());

EarthManipulator* manip = new EarthManipulator();

manip->setViewpoint(Viewpoint(
    "Home",
    -71.0763, 42.34425, 0,
    // -71.0763, 42.34425, 0,   // longitude, latitude, altitude
    24.261, -21.6, 3450.0), // heading, pitch, range//3450
    4.0);     // duration, 4.0);

g_viewer->setCameraManipulator(manip);

Но я не могу двигаться от обычной точки.

I также пытался работать на EarthMipulator, в частности, установив исходное положение

handle-> setHomePosition ()

, но ничего не меняется

1 Ответ

2 голосов
/ 05 февраля 2020

Вы хотите использовать метод EarthManipulator :: setHomeViewpoint:

manip->setHomeViewpoint(Viewpoint(
    "Home",
    -71.0763, 42.34425, 0,   // longitude, latitude, altitude
    24.261, -21.6, 3450.0)); // heading, pitch, range

Надеюсь, это поможет!

...