[osg-users] setViewMatrixAsLookAt not working to set the initial camera position
sam
brkopac at gmail.com
Mon Jan 7 19:01:15 PST 2019
Hey Rodrigo,
You have to set the home position of your camera manipulator and make a
call to home(1). You can force the delta time with a 1.
Sam
On Mon, Jan 7, 2019 at 6:48 PM Rodrigo Dias <rodrigo1406 at gmail.com> wrote:
> Hi,
>
> I'm able to change the camera's position with TrackballManipulator.
> However, I'd like to change the camera's initial position, but all the
> examples I've found just won't work. My source code is:
>
>
> Code:
> #include <iostream>
> #include <osg/Camera>
> #include <osgDB/ReadFile>
> #include <osgGA/TrackballManipulator>
> #include <osgViewer/Viewer>
> #include <osgEarth/ImageLayer>
> #include <osgEarth/Map>
> #include <osgEarth/MapNode>
> #include <osgEarthDrivers/tms/TMSOptions>
> #include <osgEarthDrivers/gdal/GDALOptions>
>
> using namespace std;
> using namespace osg;
> using namespace osgEarth;
> using namespace osgEarth::Drivers;
>
> int main (int argc, char** argv) {
> MapOptions mapOpt;
> mapOpt.coordSysType() = MapOptions::CSTYPE_PROJECTED;
> mapOpt.profile() = ProfileOptions("plate-carre");
> osg::ref_ptr<Map> map = new Map(mapOpt);
> {
> GDALOptions gdal;
> gdal.url() = "br_modified.tif";
> osg::ref_ptr<ImageLayer> layer = new ImageLayer( "BR",
> gdal );
> map->addLayer( layer );
> }
> {
> GDALOptions gdal;
> gdal.url() = "BRalt.tif";
> osg::ref_ptr<ElevationLayer> layer = new ElevationLayer(
> "SRTM", gdal );
> map->addLayer( layer );
> }
> osg::ref_ptr<MapNode> mapNode = new MapNode( map );
> osgViewer::Viewer viewer;
> viewer.setSceneData( mapNode.get() );
> viewer.setCameraManipulator( new osgGA::TrackballManipulator );
>
> Vec3 eye( 10000.0, 50000.0, 100000.0 ); // The position of your
> camera
> Vec3 center( 0.0, 0.0, 0.0 ); // The point your camera is looking
> at
> Vec3 up( 0.0, 1.0, 0.0 ); // The up-vector of your camera - this
> controls how your viewport will be rotated about its center and should be
> equal to [0, 1, 0] in a conventional graphics coordinate system
> viewer.getCamera()->setViewMatrixAsLookAt( eye, center, up );
> while ( !viewer.done() ) {
> viewer.frame();
> }
> return 0;
> }
>
>
>
>
> No matter which values I use for "eye", the camera always begins in the
> same position. Why is that?
>
> Thank you!
>
> Cheers,
> Rodrigo
>
> ------------------
> Read this topic online here:
> http://forum.openscenegraph.org/viewtopic.php?p=75411#75411
>
>
>
>
>
> _______________________________________________
> osg-users mailing list
> osg-users at lists.openscenegraph.org
> http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openscenegraph.org/pipermail/osg-users-openscenegraph.org/attachments/20190107/b83d4760/attachment.html>
More information about the osg-users
mailing list