Example #1
0
void WorkspacePanel::OnSelectionChanged(wxTreeEvent& event)
{
	SelectionList list;
	wxTreeItemId id = event.GetItem();
	if(isProject(id)) list.push_back(getProject(id));
	else if(isMaterial(id)) list.push_back(getMaterial(id));
	else if(isTechnique(id)) list.push_back(getTechnique(id));
	else if(isPass(id)) list.push_back(getPass(id));
	// else its the workspace so just leave the list empty as if nothing were selected

	SelectionService::getSingletonPtr()->setSelection(list);
}
Example #2
0
SelectionList
TrajectoryAnalysisModuleData::parallelSelections(const SelectionList &selections)
{
    // TODO: Consider an implementation that does not allocate memory every time.
    SelectionList                 newSelections;
    newSelections.reserve(selections.size());
    SelectionList::const_iterator i = selections.begin();
    for (; i != selections.end(); ++i)
    {
        newSelections.push_back(parallelSelection(*i));
    }
    return newSelections;
}
Example #3
0
int main(int argc,char** argv)
{
	osgViewer::Viewer viewer;

	osg::Camera* camera = createMasterCamera( 50, 50, 640, 480 );
	viewer.setCamera(camera);
	viewer.addEventHandler(new PickNode);

	osg::ref_ptr<osg::Group> root = new osg::Group;
	viewer.setSceneData(root.get());
	osgDragger::ShowBound::Instence()->setNodeMask(~0x1);
	root->addChild(osgDragger::ShowBound::Instence()->getRoot());

	osg::ref_ptr<osg::MatrixTransform> scene = new osg::MatrixTransform;
	root->addChild(scene.get());
	scene->setNodeMask(0x1);

	osg::ref_ptr<osg::Camera> hudCamera = 0;

	osg::ref_ptr<osgDragger::HudCamera> _hudCamera;

	osgViewer::Viewer::Windows windows;
	viewer.getWindows(windows);
	
	if (windows.size() != 0)
	{
		hudCamera = createHUD(windows[0]);
		hudCamera->addChild(CustomDraggerManager::Instence()->getRoot());
		viewer.addSlave(hudCamera.get(), false);
		_hudCamera = new osgDragger::HudCamera(hudCamera.get(), 60, 60);//左下角坐标系
	}
	else
	{
		CustomDraggerManager::Instence()->getRoot()->getOrCreateStateSet()->setAttributeAndModes(new osgDragger::ClearDepth);
		CustomDraggerManager::Instence()->getRoot()->getOrCreateStateSet()->setRenderingHint(osg::StateSet::TRANSPARENT_BIN);
		CustomDraggerManager::Instence()->getRoot()->getOrCreateStateSet()->setMode(GL_NORMALIZE, osg::StateAttribute::ON);
		root->addChild(CustomDraggerManager::Instence()->getRoot());
		_hudCamera = new osgDragger::HudCamera(camera, 60, 60);//左下角坐标系
	}
	
	osgDragger::MoveDragger* move = new osgDragger::MoveDragger;
	move->setName("move");
	move->setIntersectionMask(0x2);
	move->setIntersectionCamera(hudCamera.get());
	move->setupDefaultGeometry();
	move->setHandleEvents(true);
	CustomDraggerManager::Instence()->addDragger(move, true);
	CustomDraggerManager::Instence()->setIntersectionMask(0x2);

	osgDragger::RotateDragger* rotate = new osgDragger::RotateDragger;
	rotate->setName("rotate");
	rotate->setIntersectionMask(0x2);
	rotate->setIntersectionCamera(hudCamera.get());
	rotate->setupDefaultGeometry();
	rotate->setHandleEvents(true);
	CustomDraggerManager::Instence()->addDragger(rotate, false);
	CustomDraggerManager::Instence()->setIntersectionMask(0x2);

	osg::ref_ptr<osg::Geode> geode = new osg::Geode;
	geode->addDrawable(new osg::ShapeDrawable(new osg::Box(osg::Vec3(), 5.0f)));

	SelectionList sl;
	{
		osg::ref_ptr<osg::MatrixTransform> mt = new osg::MatrixTransform;
		mt->setName("mt");
		mt->addChild(geode.get());
		sl.push_back(mt.get());
		scene->addChild(mt.get());
	}
	{
		osg::ref_ptr<osg::MatrixTransform> mt = new osg::MatrixTransform;
		mt->setName("mt");
		mt->setMatrix(osg::Matrix::translate(osg::Vec3(20,0,0)));
		mt->addChild(geode.get());
		scene->addChild(mt.get());
	}

	CustomDraggerManager::Instence()->setSelections(sl);

	viewer.setCameraManipulator(new osgGA::TrackballManipulator);

	while (!viewer.done())
	{
		viewer.frame();
	}

	return 0;
}