Sebastian
Thank you for your patience and guidance. Programmatically definitely makes
sense and I did look into that a short while back. I was initially looking
at PositionAttitudeTransform. Now revisiting that approach, I understand
why I started to look in another direction. Here is the dilemma I've come
across. All is good until I try to assign a parent to the Transform
hive::display::FindNamedNodeVisitor fnnv("Main_Hub");
scene->accept(fnnv);
osg::ref_ptr <osg::PositionAttitudeTransform> autoTrans = new osg::
PositionAttitudeTransform();
//puts node and all children under transform
autoTrans->addChild(fnnv.getFoundNode());
//set the parent (this doesn’t seem completely right to me, but may be)
fnnv.getFoundNode()->getParent(0)->addChild(autoTrans);
issue 1) at this point it appears to create a duplicate object (node and
children) of the “Main_Hub” group;
issue 2) when I attempt rotation of the object it seems to be around the
origin of the model instead of the previous “pivot pilot”
I seem to be missing how to squeeze that transform between the parent and
child appropriately.
Jeremy
On Thursday, April 16, 2020 at 9:41:55 AM UTC-4, OpenSceneGraph Users wrote:
>
> Hi Jeremy,
>
>
>
> Yes programmatically. You simply create a Transform, DOFTransform,
> whatever and set all the children of the original Group as childs of the
> new one (transforms, as you surely know are groups too).
>
> Lastly you want to want to set the parent as well. I haven’t used OSG in a
> while, but this pattern for sure works.
>
> If you have more questions fell free to ask.
>
>
>
> Cheers
>
> Sebastian
>
>
>
> *From:* osg-users <[email protected] <javascript:>> *On
> Behalf Of *OpenSceneGraph Users
> *Sent:* Donnerstag, 16. April 2020 14:36
> *To:* OpenSceneGraph Users <[email protected] <javascript:>>
> *Subject:* Re: [osg-users] Edit 3D (osgt) model to add DOFTransform and
> perform "node" rotation
>
>
>
> Sebastian, I've used the nodevisitor to find the node by name, the node
> just happens to be a osg::group. Could you explain what you mean by
> "replace them with a DOF-Transform"? I'm optimistic that you mean
> programmatically. My current approach is to replace it manually in the osgt
> file.
>
>
>
> Thanks
>
> Jeremy
>
> On Thursday, April 16, 2020 at 7:14:18 AM UTC-4, OpenSceneGraph Users
> wrote:
>
> Hi Jeremy,
>
>
>
> As your geometry-parts are usually under a transform /group you can use a
> NodeVisitor to collect those (Find the nodes by name) and replace them with
> a DOF-Transform.
>
> You could of course also mess with the osgt-files, but that would be a
> last resort.
>
>
>
> Cheers
>
> Sebastian
>
>
>
> *From:* osg-users <[email protected]> *On Behalf Of
> *OpenSceneGraph
> Users
> *Sent:* Mittwoch, 15. April 2020 21:54
> *To:* OpenSceneGraph Users <[email protected]>
> *Subject:* [osg-users] Edit 3D (osgt) model to add DOFTransform and
> perform "node" rotation
>
>
>
> First off, I hope everyone is staying sane and healthy during this
> pandemic.
>
>
>
> I’m working with a collection of 3D models that have come from a variety
> of different source but are now all in osgb format. For several of the
> models I’d like to grab a “node” and apply rotation.
>
>
>
> As I’m working through my understanding of the approach, I’ve created a
> simple application that loads the model, traverses the scene, returns a
> pointer to the “node”, casts to a DOFTransform and manipulate the “node”
> (DOFTransform). Snippet:
>
> FindNamedNodeVisitor fnnv("turret");
>
> scene->accept(fnnv);
>
> osg::ref_ptr<osgSim::DOFTransform> dofTrans = new osgSim::DOFTransform();
>
> dofTrans =
> dynamic_cast<osgSim::DOFTransform*>(fnnv.getFoundNode()->asTransform());
>
> if(dofTrans != NULL)
>
> //manipulate (rotate)
>
>
>
> This approach works for the tank.osg model. Now I’m trying to apply this
> approach to a different model (helicopter for example). When I access the
> “node” of interest, “Main_Hub” which is an osg::Group I obviously can’t
> cast that to a osgSim::DOFTransform. I’m trying to get an understand of how
> I can change the model, now in osgt (readable) format, to a structure that
> can be used. I’ve been using the tank.osg as a guide and attempted to
> recreate a similar structure in the helicopter.osgt. I’m trying to take
> logical stabs in the dark, in the helicopter model I’ve attempted to simply
> renamed the “node” of interest from an osg::Group to osgSim::DOFTransform.
> The model still displays correctly, but the cast to osgSim::DOFTransform
> returns NULL. I thought there may be some required variables at are needed
> as part of the osgSim::DOFTransform structure, so I began adding
> currentHPR, currentTranslate, and currentScale and continued to add more
> bringing it in line with the tank.osg example. Through all the attempts I
> still getting NULL when casting.
>
>
>
> I’m looking for any guidance/suggestions/lessons learned on how to
> properly do this.
>
>
>
> Thanks in advance
>
>
>
> Jeremy
>
> --
> You received this message because you are subscribed to the Google Groups
> "OpenSceneGraph Users" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/osg-users/cbb4b132-24a7-4e75-b10f-7474c1a99378%40googlegroups.com
>
> <https://groups.google.com/d/msgid/osg-users/cbb4b132-24a7-4e75-b10f-7474c1a99378%40googlegroups.com?utm_medium=email&utm_source=footer>
> .
>
> --
> You received this message because you are subscribed to the Google Groups
> "OpenSceneGraph Users" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected] <javascript:>.
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/osg-users/5fcaac09-655d-44f9-bf97-47eee2a19b97%40googlegroups.com
>
> <https://groups.google.com/d/msgid/osg-users/5fcaac09-655d-44f9-bf97-47eee2a19b97%40googlegroups.com?utm_medium=email&utm_source=footer>
> .
>
--
You received this message because you are subscribed to the Google Groups
"OpenSceneGraph Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/osg-users/4fe387e2-619f-48b5-8b8d-d99b1c28198d%40googlegroups.com.
_______________________________________________
osg-users mailing list
[email protected]
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org