<div>I tried by best and I found a way to solve thi problem.</div>
<div>The idea is:</div>
<div>First see the scene structure:</div>
<div> </div>
<div>SceneRoot</div>
<div>Teapot01 Box01</div>
<div> </div>
<div>Teapot01 and Box01 are the children of SceneRoot.</div>
<div>When I select "Teapot01", the osgManipulator::selection (I call it in my program Selection) set Teapot01 as one if its children.</div>
<div>Then I find all the parents of Teapot01, in this example, is SceneRoot and Selection.</div>
<div>Then I replace the Teapot01 child of SceneRoot with Selection. Now the scene structure is:</div>
<div> </div>
<div>SceneRoot</div>
<div>Selection      Box01</div>
<div>Teapot01</div>
<div> </div>
<div>And then I connect the dragger with Selection. All things go right.</div>
<div>When Box01 is selected, I replace the Selection child of SceneRoot with Teapot01 and calculate the matrix of Teapot01.</div>
<div>The matrix of Selection is also reset. Then repeat the above steps to make Box01 dragable.</div>
<div> </div>
<div>My demo program and test scene is attached. If you have better ideas, please tell me! Thanks in advanced!</div>
<div> </div>
<div><span class="gmail_quote">2007/9/10, David Callu <<a href="mailto:ledocc@gmail.com">ledocc@gmail.com</a>>:</span>
<blockquote class="gmail_quote" style="PADDING-LEFT: 1ex; MARGIN: 0px 0px 0px 0.8ex; BORDER-LEFT: #ccc 1px solid">Hi,<br><br><br>Can you send the osgmanipulator.cpp modified and your scene to test?<br><br>David Callu<br>
<br>
<div><span class="gmail_quote">2007/9/10, hesicong2006 <<a onclick="return top.js.OpenExtLink(window,event,this)" href="mailto:hesicong2006@163.com" target="_blank">hesicong2006@163.com </a>>:</span> 
<div><span class="q" id="q_114eec3d49323d62_1">
<blockquote class="gmail_quote" style="PADDING-LEFT: 1ex; MARGIN: 0pt 0pt 0pt 0.8ex; BORDER-LEFT: rgb(204,204,204) 1px solid">I know why. root should add an Child include the scene.<br><br>But another question. I can drag the Teapot01, but the whole scene now 
<br>has two "Teapot". Then how can I fix it?<br><br>hesicong2006 wrote:<br>> Hi, Robert<br>> Someday before I asked a question about drag object in OSG and you told<br>> me to see osgmanipulator example. It's great. 
<br>> I tried to modify it as I want to move one object in the scene but the<br>> whole scene. I tried to do this in addDraggerToScene function:<br>><br>> osg::Node* addDraggerToScene(osg::Node* scene,<br>> osgManipulator::CommandManager* cmdMgr, const std::string& name) 
<br>> {<br>>    scene->getOrCreateStateSet()->setMode(GL_NORMALIZE,<br>> osg::StateAttribute::ON);<br>><br>>    osg::Node* selectedObject=FindByName("Teapot01");<br>><br>>    osgManipulator::Selection* selection = new osgManipulator::Selection; 
<br>>    selection->addChild(selectedObject);<br>><br>>    osgManipulator::Dragger* dragger = createDragger(name);<br>><br>>    osg::Group* root = new osg::Group;<br>>    root->addChild(dragger);<br>
>    root->addChild(selection);<br>>    root->addChild(createHUD());<br>><br>>    float scale = selectedObject->getBound().radius() * 1.6;<br>>    dragger->setMatrix(osg::Matrix::scale(scale, scale, scale) * 
<br>><br>> osg::Matrix::translate(selectedObject->getBound().center()));<br>>    cmdMgr->connect(*dragger, *selection);<br>><br>>    return root;<br>> }<br>><br>><br>> And here my scene has two objects, one teapot, one box. But when I run 
<br>> the program, I see only the "Teapot01" which really can drag and move,<br>> but the box is lost!<br>> I don't know how to only move one object in the scene. Please give me<br>> some ideas. Thanks. 
<br>><br>><br><br>_______________________________________________<br>osg-users mailing list<br><a onclick="return top.js.OpenExtLink(window,event,this)" href="mailto:osg-users@lists.openscenegraph.org" target="_blank">
osg-users@lists.openscenegraph.org</a><br><a onclick="return top.js.OpenExtLink(window,event,this)" href="http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org" target="_blank">http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org
</a><br></blockquote></span></div></div><br><br>_______________________________________________<br>osg-users mailing list<br><a onclick="return top.js.OpenExtLink(window,event,this)" href="mailto:osg-users@lists.openscenegraph.org">
osg-users@lists.openscenegraph.org</a><br><a onclick="return top.js.OpenExtLink(window,event,this)" href="http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org" target="_blank">http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org
</a><br><br></blockquote></div><br>