Ejemplo n.º 1
0
void Surface_Render_Plugin::mapAdded(MapHandlerGen *map)
{
	DEBUG_SLOT();
	connect(map, SIGNAL(vboAdded(Utils::VBO*)), this, SLOT(vboAdded(Utils::VBO*)));
	connect(map, SIGNAL(vboRemoved(Utils::VBO*)), this, SLOT(vboRemoved(Utils::VBO*)));
	connect(map, SIGNAL(boundingBoxModified()), this, SLOT(boundingBoxModified()));
}
Ejemplo n.º 2
0
void View::linkMap(MapHandlerGen* map)
{
	// RECORDING
	QTextStream* rec = m_schnapps->pythonStreamRecorder();
	if (rec)
		*rec << this->getName() << ".linkMap(\"" << map->getName() << "\");" << endl;

	DEBUG_SLOT();
	if(map && !l_maps.contains(map))
	{
		l_maps.push_back(map);
		map->linkView(this);

		DEBUG_EMIT("mapLinked");
		emit(mapLinked(map));

		connect(map, SIGNAL(selectedCellsChanged(CellSelectorGen*)), this, SLOT(updateGL()));
		connect(map, SIGNAL(boundingBoxModified()), this, SLOT(updateBoundingBox()));

		if(map->isSelectedMap())
			setManipulatedFrame(map->getFrame());

		updateBoundingBox();

		b_updatingUI = true;
		m_dialogMaps->check(map->getName(), Qt::Checked);
		b_updatingUI = false;
	}
Ejemplo n.º 3
0
void Surface_Render_Plugin::mapRemoved(MapHandlerGen *map)
{
	DEBUG_SLOT();
	disconnect(map, SIGNAL(vboAdded(Utils::VBO*)), this, SLOT(vboAdded(Utils::VBO*)));
	disconnect(map, SIGNAL(vboRemoved(Utils::VBO*)), this, SLOT(vboRemoved(Utils::VBO*)));
	disconnect(map, SIGNAL(boundingBoxModified()), this, SLOT(boundingBoxModified()));

	if(map == m_schnapps->getSelectedMap())
		m_dockTab->updateMapParameters();
}
Ejemplo n.º 4
0
void Surface_Render_Plugin::boundingBoxModified()
{
	DEBUG_SLOT();
	MapHandlerGen* map = static_cast<MapHandlerGen*>(QObject::sender());

	QList<View*> views = map->getLinkedViews();
	foreach(View* v, views)
	{
		if (h_viewParameterSet.contains(v))
			h_viewParameterSet[v][map].basePSradius = map->getBBdiagSize() / (2 * std::sqrt(map->getNbOrbits(EDGE)));
	}
}
Ejemplo n.º 5
0
void Surface_Render_Plugin::changeVerticesScaleFactor(const QString& view, const QString& map, float f)
{
	DEBUG_SLOT();
	View* v = m_schnapps->getView(view);
	MapHandlerGen* m = m_schnapps->getMap(map);
	if(v && m)
	{
		h_viewParameterSet[v][m].verticesScaleFactor = f;
		if(v->isSelectedView())
		{
			if(v->isLinkedToMap(m))	v->updateGL();
			if(m->isSelectedMap()) m_dockTab->updateMapParameters();
		}
	}
}
Ejemplo n.º 6
0
void Surface_Render_Plugin::vboAdded(Utils::VBO *vbo)
{
	DEBUG_SLOT();
	MapHandlerGen* map = static_cast<MapHandlerGen*>(QObject::sender());

	if(map == m_schnapps->getSelectedMap())
	{
		if(vbo->dataSize() == 3)
		{
			m_dockTab->addPositionVBO(QString::fromStdString(vbo->name()));
			m_dockTab->addNormalVBO(QString::fromStdString(vbo->name()));
			m_dockTab->addColorVBO(QString::fromStdString(vbo->name()));
		}
	}
}
Ejemplo n.º 7
0
void Surface_Render_Plugin::changeBackColor(const QString& view, const QString& map, float r, float g, float b)
{
	DEBUG_SLOT();
	View* v = m_schnapps->getView(view);
	MapHandlerGen* m = m_schnapps->getMap(map);
	if (v && m)
	{
		h_viewParameterSet[v][m].backColor = Geom::Vec4f(r, g, b, 0);
		if (v->isSelectedView())
		{
			if (v->isLinkedToMap(m))	v->updateGL();
			if (m->isSelectedMap()) m_dockTab->updateMapParameters();
		}
	}
}
Ejemplo n.º 8
0
void Surface_Render_Plugin::changeRenderBackfaces(const QString& view, const QString& map, bool b)
{
	DEBUG_SLOT();
	View* v = m_schnapps->getView(view);
	MapHandlerGen* m = m_schnapps->getMap(map);
	if (v && m)
	{
		h_viewParameterSet[v][m].renderBackfaces = b;
		if (v->isSelectedView())
		{
			if (v->isLinkedToMap(m))	v->updateGL();
			if (m->isSelectedMap()) m_dockTab->updateMapParameters();
		}
	}
}
Ejemplo n.º 9
0
void Surface_Render_Plugin::changeColorVBO(const QString& view, const QString& map, const QString& vbo)
{
	DEBUG_SLOT();
	View* v = m_schnapps->getView(view);
	MapHandlerGen* m = m_schnapps->getMap(map);
	if(v && m)
	{
		Utils::VBO* vbuf = m->getVBO(vbo);
		h_viewParameterSet[v][m].colorVBO = vbuf;
		if(v->isSelectedView())
		{
			if(v->isLinkedToMap(m))	v->updateGL();
			if(m->isSelectedMap()) m_dockTab->updateMapParameters();
		}
	}
}
Ejemplo n.º 10
0
void Surface_Render_Plugin::changeFacesStyle(const QString& view, const QString& map, int iStyle)
{
	MapParameters::FaceShadingStyle style = MapParameters::FaceShadingStyle(iStyle);
	DEBUG_SLOT();
	View* v = m_schnapps->getView(view);
	MapHandlerGen* m = m_schnapps->getMap(map);
	if(v && m)
	{
		h_viewParameterSet[v][m].faceStyle = style;
		if(v->isSelectedView())
		{
			if(v->isLinkedToMap(m))	v->updateGL();
			if(m->isSelectedMap()) m_dockTab->updateMapParameters();
		}
	}
}
Ejemplo n.º 11
0
void Surface_Render_Plugin::changeRenderEdges(const QString& view, const QString& map, bool b)
{
	DEBUG_SLOT();
	View* v = m_schnapps->getView(view);
	MapHandlerGen* m = m_schnapps->getMap(map);
	if(v && m)
	{
		h_viewParameterSet[v][m].renderEdges = b;
		if (b)
			h_viewParameterSet[v][m].basePSradius = m->getBBdiagSize() / (16 * std::sqrt(m->getNbOrbits(EDGE)));
		if(v->isSelectedView())
		{
			if(v->isLinkedToMap(m))	v->updateGL();
			if(m->isSelectedMap()) m_dockTab->updateMapParameters();
		}
	}
}
Ejemplo n.º 12
0
void Surface_Selection_Plugin::changeVerticesBaseSize(const QString& map, float f)
{
	DEBUG_SLOT();
	MapHandlerGen* m = m_schnapps->getMap(map);
	if (m)
	{
		h_parameterSet[m].basePSradius = f;
		if (m->isSelectedMap())
			m_dockTab->updateMapParameters();
	}

	View* v = m_schnapps->getSelectedView();
	if (v)
	{
		if (v->isLinkedToMap(m))
			v->updateGL();
	}
}
Ejemplo n.º 13
0
void Surface_Render_Plugin::vboRemoved(Utils::VBO *vbo)
{
	DEBUG_SLOT();
	MapHandlerGen* map = static_cast<MapHandlerGen*>(QObject::sender());

	if(map == m_schnapps->getSelectedMap())
	{
		if(vbo->dataSize() == 3)
		{
			m_dockTab->removePositionVBO(QString::fromStdString(vbo->name()));
			m_dockTab->removeNormalVBO(QString::fromStdString(vbo->name()));
			m_dockTab->removeColorVBO(QString::fromStdString(vbo->name()));
		}
	}

	QSet<View*> viewsToUpdate;

	QHash<View*, QHash<MapHandlerGen*, MapParameters> >::iterator i;
	for (i = h_viewParameterSet.begin(); i != h_viewParameterSet.end(); ++i)
	{
		View* view = i.key();
		QHash<MapHandlerGen*, MapParameters>& viewParamSet = i.value();
		MapParameters& mapParam = viewParamSet[map];
		if(mapParam.positionVBO == vbo)
		{
			mapParam.positionVBO = NULL;
			if(view->isLinkedToMap(map)) viewsToUpdate.insert(view);
		}
		if(mapParam.normalVBO == vbo)
		{
			mapParam.normalVBO = NULL;
			if(view->isLinkedToMap(map)) viewsToUpdate.insert(view);
		}
		if(mapParam.colorVBO == vbo)
		{
			mapParam.colorVBO = NULL;
			if(view->isLinkedToMap(map)) viewsToUpdate.insert(view);
		}
	}

	foreach(View* v, viewsToUpdate)
		v->updateGL();
}
Ejemplo n.º 14
0
void View::linkPlugin(PluginInteraction* plugin)
{
	// RECORDING
	QTextStream* rec = m_schnapps->pythonStreamRecorder();
	if (rec)
		*rec << this->getName() << ".linkPlugin(\"" << plugin->getName() << "\");" << endl;

	DEBUG_SLOT();
	if(plugin && !l_plugins.contains(plugin))
	{
		l_plugins.push_back(plugin);
		plugin->linkView(this);

		DEBUG_EMIT("pluginLinked");
		emit(pluginLinked(plugin));

		b_updatingUI = true;
		m_dialogPlugins->check(plugin->getName(), Qt::Checked);
		b_updatingUI = false;

		updateGL();
	}
}
Ejemplo n.º 15
0
void View::unlinkPlugin(PluginInteraction* plugin)
{
	DEBUG_SLOT();
	if(l_plugins.removeOne(plugin))
	{
		// RECORDING
		QTextStream* rec = m_schnapps->pythonStreamRecorder();
		if (rec)
			*rec << this->getName() << ".unlinkPlugin(\"" << plugin->getName() << "\");" << endl;


		plugin->unlinkView(this);

		DEBUG_EMIT("pluginUnlinked");
		emit(pluginUnlinked(plugin));

		b_updatingUI = true;
		m_dialogPlugins->check(plugin->getName(), Qt::Unchecked);
		b_updatingUI = false;

		updateGL();
	}
}
Ejemplo n.º 16
0
void Surface_Render_Plugin::selectedViewChanged(View *prev, View *cur)
{
	DEBUG_SLOT();
	m_dockTab->updateMapParameters();
}
Ejemplo n.º 17
0
void Surface_Render_Plugin::selectedMapChanged(MapHandlerGen *prev, MapHandlerGen *cur)
{
	DEBUG_SLOT();
	m_dockTab->updateMapParameters();
}