OpenSceneGraph ustawia kamerę w początkowej pozycji

Pracuję nad OpenSceneGraph po raz pierwszy i jestem trochę zagubiony, ponieważ dokumentacja nie jest tak jasna ...

Mam więc ten kod, który ładuje plik obj z domem na nim, i utopiłem małe pole, w którym chcę, aby „osoba” była. Więc teraz, zamiast tego pudełka, chciałbym mieć tam aparat, patrząc z przodu, a potem na coś, aby przesunąć teren wokół nieruchomej kamery, tak aby wyglądała, jakby kamera się poruszała, ale teren się porusza.

Oto mój kod:

int main()
{
    osgViewer::Viewer viewer;

    viewer.setUpViewInWindow(0,0,800,800);

    osg::ref_ptr<osg::Group> root (new osg::Group);

    osg::Node* terrain = osgDB::readNodeFile(".terrain.obj");
    if(terrain == NULL) {
        return -1;
    }

    Geode* gbox = new Geode();
    gbox->addDrawable(new ShapeDrawable(new Box()));

    PositionAttitudeTransform* terrainT = new PositionAttitudeTransform();

    PositionAttitudeTransform* boxT = new PositionAttitudeTransform();
    boxT->setScale(Vec3d(50,50,50));
    boxT->setPosition(Vec3d(1000,1000,0)); 

    root->addChild(terrainT);
    root->addChild(boxT);
    terrainT->addChild(terrain);
    boxT->addChild(gbox);

    viewer.setSceneData( root.get() ); 
    viewer.addEventHandler(new osgViewer::WindowSizeHandler);
    viewer.setCameraManipulator(new osgGA::TrackballManipulator());

    viewer.realize();
    while(!viewer.done()) {
        viewer.frame(); 
    }

    return 0;
}

Więc ten kod działa, poprawnie ładuje pole, umieszcza pole, w którym chcę i mogę nawigować za pomocą myszy.

Teraz naprawdę nie mogę znaleźć niczego, by umieścić kamerę tam, gdzie jest pudełko. Po prostu nie mogę.

Czy ktoś może mi podpowiedzieć, jak to zrobić? Nie powinno to być trudne, ale nie mogę znaleźć żadnego dobrego samouczka, a dokumentacja klas Viewer i Camera nie jest zbyt pomocna.

questionAnswers(1)

yourAnswerToTheQuestion