Forum Replies Created
-
AuthorPosts
-
remibessard
BlockedHi,
Agreed with @epernod, I would also precise these information to the RigidMapping when trying to make it work with this component.
As @Hugo mentionned I am using the BeamLinearMapping to map a collision model to a Beam model, but I think it is accessible in SOFA master without compiling any plugin.
Hope you can also find it and use it on your side.
(I have to say I am not mapping a volume into the beam (only a more discretized description of the same beam), so I don’t know if it will work with your visual volumetric model…)As for me I use it that way in my scene configuration file:
endoCollNode.createObject('BeamLinearMapping', localCoord=False, applyRestPosition=True)
(feel free to play with these 2 parameters to fit your case)Cheers,
Remi
remibessard
BlockedGlad to hear from you Vincent !
And happy to read it helped you a bit.Your developments sound interesting, good luck with it !
Cheers,
Rémiremibessard
BlockedHi François,
I would like to suggest you to check the pull request I just did in your github repository.
I was able to compile your code (by adding some lines, eg. some ContactMapper) and pushed a version in which I was able to run your scene and see the 2 cubes interacting one another.I hope you will be able to compile this update on your side (I changed a bit the architecture in a way it is a Sofa plugin you can add in your SOFA_EXTERNAL_DIRECTORIES CMakeLists.
Let me know if something gets wrong.
Cheers,
Remi.
remibessard
BlockedHi Binesh and Hugo,
I just wanted to suggest the fact that you did not called the method setScene():
void BaseViewer::setScene(sofa::simulation::Node::SPtr scene, const char* filename /* = NULL */, bool /* = false */)
that is used to set the scene that a viewer is going to render.
maybe you could try to call it (after testwindow->show()) ?Regards,
– Rémi
19 January 2016 at 00:07 in reply to: [SOLVED] NewOmniDriver: GNode cannot access protected member #5332remibessard
BlockedHello,
Indeed you can use getParents(), or getFirstParent() as it has been used to replace the same parent() method in ExportDotVisitor.cpp(344).
Also do not forget to cast the returned value :
if (parentRoot->getFirstParent())
parentRoot = dynamic_cast<sofa::simulation::tree::GNode*>(parentRoot->getFirstParent());Regards,
– Remi
remibessard
BlockedHello,
I have checked a bit what is in the CarvingManager plugin in Sofa and launched the example scene.
It seems that it is a really old code, and the “OmniEvent.h” you talked about have been replaced by a “HapticDeviceEvent.h” since October,2011.
Are you sure that you are up-to-date with Sofa ?I was able to make the instrument carve by coupling the CarvinManager with an OmniDriver (SensablePluginin Sofa).
By doing so the OmniDriver is throwing HapticDeviceEvents (when I push the Omni button) that the CarvingManger is able to catch and let it change the value of the “active” data (which activates the carving).
I also attached the instrument to the OmniDriver with a RestShapeSpringsForceField in a way that the instrument follows the physical displacements I apply to the Phantom Omni.Let me know if you want me to send you the modified example scene.
Cheers,
-Remi
-
AuthorPosts