ViewPtr ViewCollectionWidgetMixed::addView(View::Type type, LayoutRegion region)
{
	ViewPtr view;
	mTotalRegion = merge(region, mTotalRegion);

	if (type==View::VIEW_3D)
	{
		ViewWidget* overlay = this->mViewCacheOverlay->retrieveView();
		overlay->getView()->setType(type);
		overlay->show();
		mOverlays.push_back(overlay);
		view = overlay->getView();
		this->addWidgetToLayout(mLayout, overlay, region);
	}
	else
	{
        mBaseRegion = merge(region, mBaseRegion);
		view = mBaseLayout->addView(type, region);
		// re-add the base widget with updated position in grid
		this->addWidgetToLayout(mLayout, mBaseLayout, mBaseRegion);
	}
	view_utils::setStretchFactors(mLayout, mTotalRegion, 1);

	return view;
}
Ejemplo n.º 2
0
 void ModelExplorer::showPrecision(const bool showPrecision)
 {
   ViewWidget * widget = NULL;
   widget = static_cast<ViewWidget *>(mStackedWidget->currentWidget());
   if(widget){
     widget->showPrecisionDlg(showPrecision);
   }
 }
Ejemplo n.º 3
0
 void ModelExplorer::showComments(const bool showComments)
 {
   ViewWidget * widget = NULL;
   widget = static_cast<ViewWidget *>(mStackedWidget->currentWidget());
   if(widget){
     widget->showComments(showComments);
   }
 }
Ejemplo n.º 4
0
 void ModelExplorer::copyObjects()
 {
   ViewWidget * widget = nullptr;
   widget = static_cast<ViewWidget *>(mStackedWidget->currentWidget());
   if(widget){
     widget->copyObjects();
   }
 }
Ejemplo n.º 5
0
 void ModelExplorer::pasteObjects()
 {
   ViewWidget * widget = NULL;
   widget = static_cast<ViewWidget *>(mStackedWidget->currentWidget());
   if(widget){
     widget->pasteObjects();
   }
 }
void LayoutWidgetUsingViewWidgets::setModified()
{
	for (unsigned i=0; i<mViews.size(); ++i)
	{
		ViewWidget* current = mViews[i];
		current->setModified();
	}
}
Ejemplo n.º 7
0
 void ModelExplorer::showAllFields(bool state)
 {
   ViewWidget * widget = NULL;
   widget = static_cast<ViewWidget *>(mStackedWidget->currentWidget());
   if(widget){
     widget->showAllFields(state);
   }
 }
Ejemplo n.º 8
0
 void ModelExplorer::createAllFields()
 {
   ViewWidget * widget = NULL;
   widget = static_cast<ViewWidget *>(mStackedWidget->currentWidget());
   if(widget){
     widget->createAllFields();
   }
 }
Ejemplo n.º 9
0
 void ModelExplorer::setRecursive(bool state)
 {
   ViewWidget * widget = NULL;
   widget = static_cast<ViewWidget *>(mStackedWidget->currentWidget());
   if(widget){
     widget->setRecursive(state);
   }
 }
Ejemplo n.º 10
0
 void ModelExplorer::addObjects(openstudio::IddObjectType type)
 {
   ViewWidget * widget = NULL;
   widget = static_cast<ViewWidget *>(mStackedWidget->currentWidget());
   if(widget){
     widget->addObjects(type);
   }
 }
ViewWidget* LayoutWidgetUsingViewWidgets::WidgetFromView(ViewPtr view)
{
    for (unsigned i=0; i<mViews.size(); ++i)
    {
        ViewWidget* current = mViews[i];
        if (current->getView()==view)
            return current;
    }
    return NULL;
}
void LayoutWidgetUsingViewWidgets::render()
{
	for (unsigned i=0; i<mViews.size(); ++i)
	{
		ViewWidget* current = mViews[i];
		current->render(); // render only changed scenegraph (shaky but smooth)
	}

    emit rendered();
}
QPoint LayoutWidgetUsingViewWidgets::getPosition(ViewPtr view)
{
    ViewWidget* widget = this->WidgetFromView(view);
    if (!widget)
    {
        CX_LOG_ERROR() << "Did not find view in layout " << view->getUid();
        return QPoint(0,0);
    }

    QPoint p = widget->mapToGlobal(QPoint(0,0));
    p = this->mapFromGlobal(p);
    return p;
}
ViewPtr LayoutWidgetUsingViewWidgets::addView(View::Type type, LayoutRegion region)
{
	ViewWidget* view = this->retrieveView(type);

	view->getView()->setType(type);

	mLayout->addWidget(view, region.pos.row, region.pos.col, region.span.row, region.span.col);
	view_utils::setStretchFactors(mLayout, region, 1);
	view->show();

	mViews.push_back(view);
	return view->getView();
}
Ejemplo n.º 15
0
void QViewWidget::setSelectedCamera(int index)
{
	if (!viewMap.contains(sceneSelection.currentText()) || (index > ISOMETRIC && index < PERSPECTIVE))
		return;

	ViewWidget * viewWidget = viewMap.value(sceneSelection.currentText());
	osg::Vec3d cameraVector = viewWidget->getView()->getCameraManipulator()->getMatrix().getTrans();
	double distance = pow((pow(cameraVector.x(),2) + pow(cameraVector.y(),2) + pow(cameraVector.z(),2)), 0.5);
	osg::Vec3d *eye = 0, center(0,0,0), up(0,0,1);

	switch (index)
	{
	case PERSPECTIVE:
	case ISOMETRIC:
		eye = new osg::Vec3d(0,distance,distance);
		break;
	case LEFT:
		eye = new osg::Vec3d(-distance,0,0);
		break;
	case RIGHT:
		eye = new osg::Vec3d(distance,0,0);
		break;
	case FRONT:
		eye = new osg::Vec3d(0,distance,0);
		break;
	case BACK:
		eye = new osg::Vec3d(0,-distance,0);
		break;
	case TOP:
		eye = new osg::Vec3d(0,0,distance);
		break;
	case BOTTOM:
		eye = new osg::Vec3d(0,0,-distance);
		break;
	}

	// if the change concerned the eye position, apply it
	if (eye)
	{
		viewWidget->getView()->getCameraManipulator()->setHomePosition(*eye,center,up);
		viewWidget->getView()->home();
		delete eye;
	}
}
Ejemplo n.º 16
0
void QViewWidget::setSelectedDisplay(int index)
{
	if (!viewMap.contains(sceneSelection.currentText()) || (index > ISOMETRIC && index < PERSPECTIVE))
		return;

	ViewWidget * viewWidget = viewMap.value(sceneSelection.currentText());
	osg::StateSet * state = viewWidget->getRoot()->getOrCreateStateSet();
	osg::CullFace* cf;
	osg::PolygonMode *polyModeObj;
	osg::ShadeModel* sm;

	switch (index)
	{
	case WIREFRAME:
		polyModeObj = dynamic_cast<osg::PolygonMode*>(state->getAttribute(osg::StateAttribute::POLYGONMODE));
		if (!polyModeObj) 
		{
			polyModeObj = new osg::PolygonMode;
			state->setAttributeAndModes(polyModeObj,
									osg::StateAttribute::ON | osg::StateAttribute::OVERRIDE);
		}
		polyModeObj->setMode(osg::PolygonMode::FRONT_AND_BACK, osg::PolygonMode::LINE);
		break;
	case POLYMODE_FILL:
		polyModeObj = dynamic_cast<osg::PolygonMode*>(state->getAttribute(osg::StateAttribute::POLYGONMODE));
		if (polyModeObj) 
			polyModeObj->setMode(osg::PolygonMode::FRONT_AND_BACK, osg::PolygonMode::FILL);
		break;
	case BACK_CULL:
		cf = dynamic_cast<osg::CullFace*>(state->getAttribute(osg::StateAttribute::CULLFACE));
		if (!cf)
			cf = new osg::CullFace; 
		state->setAttributeAndModes(cf, osg::StateAttribute::ON | osg::StateAttribute::OVERRIDE);
		break;
	case SHADING:
		sm = new osg::ShadeModel;
		sm->setMode(osg::ShadeModel::FLAT);
		state->setAttributeAndModes(sm, osg::StateAttribute::ON | osg::StateAttribute::OVERRIDE);
		break;
	}
}
Ejemplo n.º 17
0
int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    MainWindow w;
    ViewWidget vWidget;

    if (argc > 1)
    {
        vWidget.loadModel(argv[1]);
    }
    else
    {
        vWidget.loadModel("");
    }
    vWidget.resize(800, 600);
    w.setCentralWidget(&vWidget);

    w.resize(800, 600);
    w.show();
    
    return a.exec();
}
Ejemplo n.º 18
0
void QViewWidget::addScene(osg::Group * sceneRoot, QString name)
{
	bool showGrid = true;
	bool showAxes = true;
	if (name.toStdString() == "dummy")
		showGrid = showAxes = false;

	ViewWidget * viewWidget = splitter->
		addViewWidget(splitter->createCamera(0,0,100,100), sceneRoot, showGrid, showAxes);

	if (viewWidget)
	{
		if (name.toStdString() != "dummy")
			sceneSelection.addItem(name);
		
		sceneStack->addWidget(viewWidget->getWidget());
		if (viewMap.count() == 1)
			sceneStack->setCurrentWidget(viewWidget->getWidget());

		viewMap.insert(name, viewWidget);
	}
}
Ejemplo n.º 19
0
void QViewWidget::setSelectedScene(int index)
{
	ViewWidget * viewWidget = viewMap.value(sceneSelection.itemText(index));
	sceneStack->setCurrentWidget(viewWidget->getWidget());
	viewWidget->getView()->requestRedraw();
}