[osg-users] Implementation of movement, rotation of scale
Maxim Senin
ok23senya at yahoo.com
Fri May 31 02:14:32 PDT 2019
Hi, i finded code, but in this function is failed why?
Code:
osg::Node* addDraggerToScene(osg::Node* scene, const std::string& name)
{
scene->getOrCreateStateSet()->setMode(GL_NORMALIZE, osg::StateAttribute::ON);
osg::MatrixTransform* selection = new osg::MatrixTransform;
selection->addChild(scene);
osgManipulator::Dragger* dragger = createDragger(name);
osg::Group* root = new osg::Group;
root->addChild(dragger);
root->addChild(selection);
float scale = scene->getBound().radius() * 1.6;
dragger->setMatrix(osg::Matrix::scale(scale, scale, scale) *
osg::Matrix::translate(scene->getBound().center()));
osgManipulator::GridConstraint *con = new osgManipulator::GridConstraint(*selection, osg::Vec3(0, 0, 0), osg::Vec3(30, 30, 30));
osg::ref_ptr<osgManipulator::TabBoxDragger> m_pManipulator = new osgManipulator::TabBoxDragger;
m_pManipulator->addConstraint(con);
dragger->addConstraint(con);
dragger->addTransformUpdating(selection);
// we want the dragger to handle it's own events automatically
dragger->setHandleEvents(true);
// if we don't set an activation key or mod mask then any mouse click on
// the dragger will activate it, however if do define either of ActivationModKeyMask or
// and ActivationKeyEvent then you'll have to press either than mod key or the specified key to
// be able to activate the dragger when you mouse click on it. Please note the follow allows
// activation if either the ctrl key or the 'a' key is pressed and held down.
dragger->setActivationModKeyMask(osgGA::GUIEventAdapter::MODKEY_CTRL);
dragger->setActivationKeyEvent('a');
return root;
}
after RETURN failde:(
...
Thank you!
Cheers,
Maxim
------------------
Read this topic online here:
http://forum.openscenegraph.org/viewtopic.php?p=76158#76158
More information about the osg-users
mailing list