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());
}
Beispiel #2
0
/**
 * 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);
        }
    }
}
Beispiel #3
0
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());
}