Hi Paul, I'm just reviewing your changes now. All they seem to do is an addChild, which makes me wonder why don't you just do a:
dragger->addChild(mysubgraph); As it's the same thing as dragger->setupCustomGeometry(customDragger); I also don't understand they this method only takes a MatrixTransform as a parameter. Robert. On Sat, Nov 1, 2008 at 12:57 PM, Paul McIntosh <[EMAIL PROTECTED]> wrote: > Hi Robert, > > No problems. Files attached. Let me know if there are any issues. > > Cheers, > > Paul > >> -----Original Message----- >> From: [EMAIL PROTECTED] >> [mailto:[EMAIL PROTECTED] On >> Behalf Of Robert Osfield >> Sent: Saturday, 1 November 2008 9:31 PM >> To: OpenSceneGraph Submissions >> Subject: Re: >> [osg-submissions]Dragger::setupCustomGeometry(osg::MatrixTrans >> form* customxform) >> >> Hi Paul, >> >> Could you post whole changed files, copy and paste in a email >> is not appropriate form as it's very prone to errors. >> >> Thanks, >> Robeert. >> >> On Sat, Nov 1, 2008 at 11:14 AM, Paul McIntosh >> <[EMAIL PROTECTED]> wrote: >> > Hi All, >> > >> > This is my first submission so hopefully it will make sense... >> > >> > This is a very simple but powerful change to the osgManipulator >> > "Dragger" class, it allows you to specify your own custom >> geometry for >> > a dragger when you create it. The actual osg changes are >> very simple, >> > but I have also included an example of how to use it >> (because that is >> > the hardest bit). I think the how to use comments should be >> added to >> > the Dragger code somewhere (Dragger.cpp?). >> > >> > >> > "Dragger" >> > >> > /** Setup custom geometry for dragger. */ void >> > setupCustomGeometry(osg::MatrixTransform* customxform); >> > >> > >> > "Dragger.cpp" >> > >> > /** Setup custom geometry for dragger. */ void >> > Dragger::setupCustomGeometry(osg::MatrixTransform* customxform) { >> > addChild(customxform); >> > } >> > >> > "How to use" >> > >> > /* Here is an example of using setupCustomGeometry // As >> before create >> > the type of dragger that you need dragger = new >> > osgManipulator::Translate2DDragger(); >> > >> > // however instead of calling "dragger->setupDefaultGeometry();" >> > // create your own geometry to suit your task (refer to >> > setupDefaultGeometry() for hints) >> > // an example of a "box" dragger looks like... >> > osg::ref_ptr<osg::MatrixTransform> customDraggerxform = new >> > osg::MatrixTransform; osg::ref_ptr<osg::Geode> customDraggerGeode > = >> > new osg::Geode; osg::ref_ptr<osg::Box> box = new osg::Box >> > (osg::Vec3(0.0f,0.0f,0.0f), 400.0f, 2.0f, 400.0f); >> > osg::ref_ptr<osg::Drawable> drawable = new >> > osg::ShapeDrawable(box.get()); >> > //osgManipulator::setDrawableToAlwaysCull(*drawable); // >> you can make >> > draggers invisible too >> > customDraggerGeode->addDrawable(drawable.get()); >> > customDraggerxform->addChild(customDraggerGeode.get()); >> > >> > // once you have your geometry, pass it to the dragger to >> use as the >> > pick geometry >> > dragger->setupCustomGeometry(customDraggerxform.get()); >> > */ >> > >> > Cheers, >> > >> > Paul >> > -- >> > Paul McIntosh >> > www.internetscooter.com >> > >> > _______________________________________________ >> > osg-submissions mailing list >> > [email protected] >> > >> > http://lists.openscenegraph.org/listinfo.cgi/osg-submissions-openscene >> > graph.org >> > >> _______________________________________________ >> osg-submissions mailing list >> [email protected] >> http://lists.openscenegraph.org/listinfo.cgi/osg-submissions-o >> penscenegraph.org >> > > _______________________________________________ > osg-submissions mailing list > [email protected] > http://lists.openscenegraph.org/listinfo.cgi/osg-submissions-openscenegraph.org > > _______________________________________________ osg-submissions mailing list [email protected] http://lists.openscenegraph.org/listinfo.cgi/osg-submissions-openscenegraph.org
