VsTrackballDragger::VsTrackballDragger(bool bAllowRotateX, bool bAllowRotateY, bool bAllowRotateZ) { if(bAllowRotateX) { _xDragger = new osgManipulator::RotateCylinderDragger(); addChild(_xDragger.get()); addDragger(_xDragger.get()); } if(bAllowRotateY) { _yDragger = new osgManipulator::RotateCylinderDragger(); addChild(_yDragger.get()); addDragger(_yDragger.get()); } if(bAllowRotateZ) { _zDragger = new osgManipulator::RotateCylinderDragger(); addChild(_zDragger.get()); addDragger(_zDragger.get()); } setParentDragger(getParentDragger()); }
/** * Regenerates the draggers list from the current selection; is called when selection is changed or modified */ void VPDrag::updateDraggers () { if (this->dragging) return; // delete old draggers for (GList const* i = this->draggers; i != NULL; i = i->next) { delete ((VPDragger *) i->data); } g_list_free (this->draggers); this->draggers = NULL; g_return_if_fail (this->selection != NULL); for (GSList const* i = this->selection->itemList(); i != NULL; i = i->next) { SPItem *item = SP_ITEM(i->data); if (!SP_IS_BOX3D (item)) continue; SPBox3D *box = SP_BOX3D (item); VanishingPoint vp; for (int i = 0; i < 3; ++i) { vp.set(box3d_get_perspective(box), Proj::axes[i]); addDragger (vp); } } }
NewDragger::NewDragger() { _xDragger = new osgManipulator::Translate1DDragger(osg::Vec3(0.0,0.0,0.0),osg::Vec3(0.0,0.0,1.0)); addChild(_xDragger.get()); addDragger(_xDragger.get()); _yDragger = new osgManipulator::Translate1DDragger(osg::Vec3(0.0,0.0,0.0),osg::Vec3(0.0,0.0,1.0)); addChild(_yDragger.get()); addDragger(_yDragger.get()); _zDragger = new osgManipulator::Translate1DDragger(osg::Vec3(0.0,0.0,0.0),osg::Vec3(0.0,0.0,1.0)); addChild(_zDragger.get()); addDragger(_zDragger.get()); setParentDragger(getParentDragger()); }