[osg-users] osgmanipulator example questions

hesicong2006 hesicong2006 at 163.com
Sun Sep 9 06:28:13 PDT 2007


Hi, Robert
Someday before I asked a question about drag object in OSG and you told 
me to see osgmanipulator example. It's great.
I tried to modify it as I want to move one object in the scene but the 
whole scene. I tried to do this in addDraggerToScene function:

osg::Node* addDraggerToScene(osg::Node* scene, 
osgManipulator::CommandManager* cmdMgr, const std::string& name)
{
    scene->getOrCreateStateSet()->setMode(GL_NORMALIZE, 
osg::StateAttribute::ON);

    osg::Node* selectedObject=FindByName("Teapot01");

    osgManipulator::Selection* selection = new osgManipulator::Selection;
    selection->addChild(selectedObject);

    osgManipulator::Dragger* dragger = createDragger(name);

    osg::Group* root = new osg::Group;
    root->addChild(dragger);
    root->addChild(selection);
    root->addChild(createHUD());

    float scale = selectedObject->getBound().radius() * 1.6;
    dragger->setMatrix(osg::Matrix::scale(scale, scale, scale) *
                       
osg::Matrix::translate(selectedObject->getBound().center()));
    cmdMgr->connect(*dragger, *selection);

    return root;
}


And here my scene has two objects, one teapot, one box. But when I run 
the program, I see only the "Teapot01" which really can drag and move, 
but the box is lost!
I don't know how to only move one object in the scene. Please give me 
some ideas. Thanks.




More information about the osg-users mailing list