From 44d02608251aff031413d536a4a42966fbe11fa0 Mon Sep 17 00:00:00 2001 From: untereiner Date: Mon, 18 Feb 2013 16:43:01 +0100 Subject: [PATCH] plugin renderExplod v0.01 --- .../renderExplod/forms/renderExplod.ui | 4 +- .../renderExplod/include/renderExplod.h | 39 +-- .../include/renderExplodDockTab.h | 10 +- .../Plugins/renderExplod/src/renderExplod.cpp | 224 +++++++++++------- .../renderExplod/src/renderExplodDockTab.cpp | 57 +++-- SCHNApps/bin/init.py | 24 +- SCHNApps/include/mapHandler.hpp | 2 +- include/Algo/Modelisation/subdivision3.hpp | 19 +- 8 files changed, 210 insertions(+), 169 deletions(-) diff --git a/SCHNApps/Plugins/renderExplod/forms/renderExplod.ui b/SCHNApps/Plugins/renderExplod/forms/renderExplod.ui index f5e815768..ff88a12d9 100644 --- a/SCHNApps/Plugins/renderExplod/forms/renderExplod.ui +++ b/SCHNApps/Plugins/renderExplod/forms/renderExplod.ui @@ -37,7 +37,7 @@ - + 0 @@ -47,7 +47,7 @@ - + 0 diff --git a/SCHNApps/Plugins/renderExplod/include/renderExplod.h b/SCHNApps/Plugins/renderExplod/include/renderExplod.h index 1227cb7e9..974d695c5 100644 --- a/SCHNApps/Plugins/renderExplod/include/renderExplod.h +++ b/SCHNApps/Plugins/renderExplod/include/renderExplod.h @@ -12,25 +12,28 @@ namespace CGoGN namespace SCHNApps { +enum FaceShadingStyle +{ + FLAT = 0, + SMOOTH = 1 +}; + struct PerMapParameterSet { - PerMapParameterSet() : - positionVBO(NULL), - colorVBO(NULL), - facesScaleFactor(1.0f), - volumesScaleFactor(1.0f), - renderEdges(false), - renderFaces(true) - {} + PerMapParameterSet(MapHandlerGen* mh); + ~PerMapParameterSet(); - PerMapParameterSet(MapHandlerGen* map); + void updateRender(); - Utils::VBO* positionVBO; - Utils::VBO* colorVBO; + Algo::Render::GL2::ExplodeVolumeRender* m_renderExplod; + MapHandlerGen* mh; + VertexAttribute positionAttribute; + VolumeAttribute colorAttribute; float facesScaleFactor; float volumesScaleFactor; bool renderEdges; bool renderFaces; + FaceShadingStyle faceStyle; }; struct ParameterSet @@ -38,7 +41,7 @@ struct ParameterSet ParameterSet() : selectedMap(NULL) {} - QHash perMap; + QHash perMap; MapHandlerGen* selectedMap; }; @@ -81,16 +84,20 @@ public slots: void mapLinked(MapHandlerGen* m); void mapUnlinked(MapHandlerGen* m); - void vboAdded(Utils::VBO* vbo); - void vboRemoved(Utils::VBO* vbo); + //void addAttributeToList(unsigned int orbit, const QString& nameAttr); void changeSelectedMap(View* view, MapHandlerGen* map, bool fromUI = false); - void changePositionVBO(View* view, MapHandlerGen* map, Utils::VBO* vbo, bool fromUI = false); - void changeColorVBO(View* view, MapHandlerGen* map, Utils::VBO* vbo, bool fromUI = false); + + void changePositionAttribute(View* view, MapHandlerGen* map, VertexAttribute attribute, bool fromUI = false); + void changeColorAttribute(View* view, MapHandlerGen* map, VertexAttribute attribute, bool fromUI = false); + void changeRenderEdges(View* view, MapHandlerGen* map, bool b, bool fromUI = false); void changeRenderFaces(View* view, MapHandlerGen* map, bool b, bool fromUI = false); void changeFacesScaleFactor(View* view, MapHandlerGen* map, int i, bool fromUI = false); void changeVolumesScaleFactor(View* view, MapHandlerGen* map, int i, bool fromUI = false); + + void attributeModified(unsigned int orbit, QString nameAttr); + void connectivityModified(); }; } // namespace SCHNApps diff --git a/SCHNApps/Plugins/renderExplod/include/renderExplodDockTab.h b/SCHNApps/Plugins/renderExplod/include/renderExplodDockTab.h index d181d9050..da2fbd636 100644 --- a/SCHNApps/Plugins/renderExplod/include/renderExplodDockTab.h +++ b/SCHNApps/Plugins/renderExplod/include/renderExplodDockTab.h @@ -1,5 +1,5 @@ -#ifndef _RENDEREXPLOD_DOCK_TAB_H_ -#define _RENDEREXPLOD_DOCK_TAB_H_ +#ifndef _RENDER_EXPLOD_DOCK_TAB_H_ +#define _RENDER_EXPLOD_DOCK_TAB_H_ #include "ui_renderExplod.h" @@ -30,12 +30,14 @@ public slots: void refreshUI(ParameterSet* params); void selectedMapChanged(); - void positionVBOChanged(int index); - void colorVBOChanged(int index); + void positionAttributeChanged(int index); + void colorAttributeChanged(int index); void renderEdgesChanged(bool b); void renderFacesChanged(bool b); void facesScaleFactorChanged(int i); void volumesScaleFactorChanged(int i); + + void addAttributeToList(unsigned int orbit, const QString& nameAttr); }; } // namespace SCHNApps diff --git a/SCHNApps/Plugins/renderExplod/src/renderExplod.cpp b/SCHNApps/Plugins/renderExplod/src/renderExplod.cpp index 66d61d4ef..b3dc224c8 100644 --- a/SCHNApps/Plugins/renderExplod/src/renderExplod.cpp +++ b/SCHNApps/Plugins/renderExplod/src/renderExplod.cpp @@ -8,72 +8,74 @@ namespace CGoGN namespace SCHNApps { -PerMapParameterSet::PerMapParameterSet(MapHandlerGen* map) : - positionVBO(NULL), - colorVBO(NULL), +PerMapParameterSet::PerMapParameterSet(MapHandlerGen* m) : + mh(m), facesScaleFactor(1.0f), volumesScaleFactor(1.0f), renderEdges(false), - renderFaces(true) + renderFaces(true), + faceStyle(FLAT) { - bool positionFound = false; - bool colorFound = false; - QList vbos = map->getVBOList(); - for(int i = 0; i < vbos.count(); ++i) + m_renderExplod = new Algo::Render::GL2::ExplodeVolumeRender(false, false, false); + + m_renderExplod->setNoClippingPlane(); + m_renderExplod->setExplodeVolumes(1.0f); + m_renderExplod->setExplodeFaces(1.0f); + + QString positionName; + + QString vec3TypeName = QString::fromStdString(nameOfType(PFP3::VEC3())); + + const AttributeHash& attribs = mh->getAttributesList(VERTEX); + for(AttributeHash::const_iterator i = attribs.constBegin(); i != attribs.constEnd(); ++i) { - if(vbos[i]->dataSize() == 3) + if(i.value() == vec3TypeName) { - if(!positionFound) positionVBO = vbos[i]; - if(vbos[i]->name() == "position") // try to select a VBO named "position" - { - positionVBO = vbos[i]; - positionFound = true; - } - - if(!colorFound) colorVBO = vbos[i]; - if(vbos[i]->name() == "color") // try to select a VBO named "color" - { - colorVBO = vbos[i]; - colorFound = true; - } + if(positionName != "position") // try to select an attribute named "position" + positionName = i.key(); // or anything else if not found } } + positionAttribute = mh->getAttribute(positionName); + + colorAttribute = mh->getAttribute("color"); + + updateRender(); +} + +PerMapParameterSet::~PerMapParameterSet() +{ + delete m_renderExplod; } +void PerMapParameterSet::updateRender() +{ + MapHandler* mh3 = static_cast*>(mh); + if(mh3 == NULL) + return; + + PFP3::MAP* m = mh3->getMap(); + + //if(!color.isValid()) + m_renderExplod->updateData(*m,positionAttribute); +} bool RenderExplodPlugin::enable() { m_dockTab = new RenderExplodDockTab(m_window, this); addTabInDock(m_dockTab, "RenderExplod"); -// m_renderExplod = new Algo::Render::GL2::ExplodeVolumeRender(true); -// -// m_renderExplod->setNoClippingPlane(); -// m_renderExplod->setExplodeVolumes(0.9f); -// m_renderExplod->setExplodeFaces(1.0f); -// -// //m_renderExplod->setAmbiant(Geom::Vec4f(0.1f,0.1f,0.1f,0.0f)); -// //m_renderExplod->setBackColor(Geom::Vec4f(0.1f,1.0f,0.1f,0.0f)); -// //m_renderExplod->setColorLine(Geom::Vec4f(0.1f,0.1f,0.1f,0.0f)); -// //m_renderExplod->setAmbiant(Geom::Vec4f(0.9f, 0.5f, 0.0f, 0.0f)); -// m_renderExplod->setBackColor(Geom::Vec4f(0.9f, 0.5f, 0.0f, 0.0f)); -// //m_renderExplod->setColorLine(Geom::Vec4f(0.9f, 0.5f, 0.0f, 0.0f)); -// m_renderExplod->setColorLine(Geom::Vec4f(0.0f, 0.0f, 0.0f, 0.0f)); -// -// registerShader(m_renderExplod->shaderFaces()); -// registerShader(m_renderExplod->shaderLines()); - connect(m_window, SIGNAL(viewAndPluginLinked(View*, Plugin*)), this, SLOT(viewLinked(View*, Plugin*))); connect(m_window, SIGNAL(viewAndPluginUnlinked(View*, Plugin*)), this, SLOT(viewUnlinked(View*, Plugin*))); connect(m_window, SIGNAL(currentViewChanged(View*)), this, SLOT(currentViewChanged(View*))); + return true; } void RenderExplodPlugin::disable() { - + //delete m_renderExplod; } void RenderExplodPlugin::redraw(View* view) @@ -83,22 +85,23 @@ void RenderExplodPlugin::redraw(View* view) const QList& maps = view->getLinkedMaps(); foreach(MapHandlerGen* m, maps) { - const PerMapParameterSet& p = params->perMap[m->getName()]; - if(p.positionVBO != NULL) + PerMapParameterSet* p = params->perMap[m->getName()]; + + p->m_renderExplod->setExplodeFaces(p->facesScaleFactor); + p->m_renderExplod->setExplodeVolumes(p->volumesScaleFactor); + + if(p->renderEdges) { - if(p.renderEdges) - { -// m_renderExplod->drawEdges(); - } - if(p.renderFaces) - { -// glPolygonMode(GL_FRONT_AND_BACK, GL_FILL); -// glEnable(GL_LIGHTING); -// glEnable(GL_POLYGON_OFFSET_FILL); -// glPolygonOffset(1.0f, 1.0f) ; -// m_renderExplod->drawFaces(); -// glDisable(GL_POLYGON_OFFSET_FILL); - } + p->m_renderExplod->drawEdges(); + } + if(p->renderFaces) + { + glPolygonMode(GL_FRONT_AND_BACK, GL_FILL); + glEnable(GL_LIGHTING); + glEnable(GL_POLYGON_OFFSET_FILL); + glPolygonOffset(1.0f, 1.0f) ; + p->m_renderExplod->drawFaces(); + glDisable(GL_POLYGON_OFFSET_FILL); } } } @@ -110,10 +113,12 @@ void RenderExplodPlugin::viewLinked(View* view, Plugin* plugin) ParameterSet* params = new ParameterSet(); h_viewParams.insert(view, params); const QList& maps = view->getLinkedMaps(); - foreach(MapHandlerGen* map, maps) + foreach(MapHandlerGen* mh, maps) { - PerMapParameterSet p(map); - params->perMap.insert(map->getName(), p); + PerMapParameterSet* p = new PerMapParameterSet(mh); + registerShader(p->m_renderExplod->shaderFaces()); + registerShader(p->m_renderExplod->shaderLines()); + params->perMap.insert(mh->getName(), p); } if (!maps.empty()) changeSelectedMap(view, maps[0]); @@ -140,7 +145,11 @@ void RenderExplodPlugin::viewUnlinked(View* view, Plugin* plugin) void RenderExplodPlugin::currentViewChanged(View* view) { if(isLinkedToView(view)) + { + ParameterSet* params = h_viewParams[view]; + changeSelectedMap(view, params->selectedMap); m_dockTab->refreshUI(h_viewParams[view]); + } } void RenderExplodPlugin::mapLinked(MapHandlerGen* m) @@ -148,9 +157,17 @@ void RenderExplodPlugin::mapLinked(MapHandlerGen* m) View* view = static_cast(QObject::sender()); assert(isLinkedToView(view)); + connect(m, SIGNAL(attributeModified(unsigned int, QString)), this, SLOT(attributeModified(unsigned int, QString))); + connect(m, SIGNAL(connectivityModified()), this, SLOT(connectivityModified())); + + ParameterSet* params = h_viewParams[view]; - PerMapParameterSet p(m); + + PerMapParameterSet* p = new PerMapParameterSet(m); + registerShader(p->m_renderExplod->shaderFaces()); + registerShader(p->m_renderExplod->shaderLines()); params->perMap.insert(m->getName(), p); + if(params->selectedMap == NULL || params->perMap.count() == 1) changeSelectedMap(view, m); else @@ -162,6 +179,10 @@ void RenderExplodPlugin::mapUnlinked(MapHandlerGen* m) View* view = static_cast(QObject::sender()); assert(isLinkedToView(view)); + disconnect(m, SIGNAL(attributeModified(unsigned int, QString)), this, SLOT(attributeModified(unsigned int, QString))); + disconnect(m, SIGNAL(connectivityModified()), this, SLOT(connectivityModified())); + + ParameterSet* params = h_viewParams[view]; params->perMap.remove(m->getName()); @@ -176,24 +197,6 @@ void RenderExplodPlugin::mapUnlinked(MapHandlerGen* m) m_dockTab->refreshUI(params); } -void RenderExplodPlugin::vboAdded(Utils::VBO* vbo) -{ - m_dockTab->refreshUI(h_viewParams[m_window->getCurrentView()]); -} - -void RenderExplodPlugin::vboRemoved(Utils::VBO* vbo) -{ - MapHandlerGen* map = static_cast(QObject::sender()); - - View* view = m_window->getCurrentView(); - ParameterSet* params = h_viewParams[view]; - if(params->perMap[map->getName()].positionVBO == vbo) - changePositionVBO(view, map, NULL); - if(params->perMap[map->getName()].colorVBO == vbo) - changeColorVBO(view, map, NULL); - - m_dockTab->refreshUI(h_viewParams[view]); -} void RenderExplodPlugin::changeSelectedMap(View* view, MapHandlerGen* map, bool fromUI) { @@ -204,21 +207,18 @@ void RenderExplodPlugin::changeSelectedMap(View* view, MapHandlerGen* map, bool if(view->isCurrentView()) { - if(prev) - disconnect(prev, SIGNAL(vboAdded(Utils::VBO*)), this, SLOT(vboAdded(Utils::VBO*))); - if(map) - connect(map, SIGNAL(vboAdded(Utils::VBO*)), this, SLOT(vboAdded(Utils::VBO*))); - if(!fromUI) m_dockTab->refreshUI(params); view->updateGL(); } } -void RenderExplodPlugin::changePositionVBO(View* view, MapHandlerGen* map, Utils::VBO* vbo, bool fromUI) +void RenderExplodPlugin::changePositionAttribute(View* view, MapHandlerGen* map, VertexAttribute attribute, bool fromUI) { ParameterSet* params = h_viewParams[view]; - params->perMap[map->getName()].positionVBO = vbo; + PerMapParameterSet* perMap = params->perMap[map->getName()]; + perMap->positionAttribute = attribute; + perMap->updateRender(); if(view->isCurrentView()) { @@ -228,10 +228,11 @@ void RenderExplodPlugin::changePositionVBO(View* view, MapHandlerGen* map, Utils } } -void RenderExplodPlugin::changeColorVBO(View* view, MapHandlerGen* map, Utils::VBO* vbo, bool fromUI) +void RenderExplodPlugin::changeColorAttribute(View* view, MapHandlerGen* map, VertexAttribute attribute, bool fromUI) { ParameterSet* params = h_viewParams[view]; - params->perMap[map->getName()].colorVBO = vbo; +// params->perMap[map->getName()].colorAttribute = attribute; + //perMap->colorAttribute = attribute; if(view->isCurrentView()) { @@ -244,7 +245,7 @@ void RenderExplodPlugin::changeColorVBO(View* view, MapHandlerGen* map, Utils::V void RenderExplodPlugin::changeRenderEdges(View* view, MapHandlerGen* map, bool b, bool fromUI) { ParameterSet* params = h_viewParams[view]; - params->perMap[map->getName()].renderEdges = b; + params->perMap[map->getName()]->renderEdges = b; if(view->isCurrentView()) { @@ -257,7 +258,7 @@ void RenderExplodPlugin::changeRenderEdges(View* view, MapHandlerGen* map, bool void RenderExplodPlugin::changeRenderFaces(View* view, MapHandlerGen* map, bool b, bool fromUI) { ParameterSet* params = h_viewParams[view]; - params->perMap[map->getName()].renderFaces = b; + params->perMap[map->getName()]->renderFaces = b; if(view->isCurrentView()) { @@ -270,7 +271,7 @@ void RenderExplodPlugin::changeRenderFaces(View* view, MapHandlerGen* map, bool void RenderExplodPlugin::changeFacesScaleFactor(View* view, MapHandlerGen* map, int i, bool fromUI) { ParameterSet* params = h_viewParams[view]; - params->perMap[map->getName()].facesScaleFactor = i / 50.0; + params->perMap[map->getName()]->facesScaleFactor = i / 50.0; if(view->isCurrentView()) { @@ -283,7 +284,7 @@ void RenderExplodPlugin::changeFacesScaleFactor(View* view, MapHandlerGen* map, void RenderExplodPlugin::changeVolumesScaleFactor(View* view, MapHandlerGen* map, int i, bool fromUI) { ParameterSet* params = h_viewParams[view]; - params->perMap[map->getName()].volumesScaleFactor = i / 50.0; + params->perMap[map->getName()]->volumesScaleFactor = i / 50.0; if(view->isCurrentView()) { @@ -293,6 +294,49 @@ void RenderExplodPlugin::changeVolumesScaleFactor(View* view, MapHandlerGen* map } } + +void RenderExplodPlugin::attributeModified(unsigned int orbit, QString nameAttr) +{ +// if(orbit == VERTEX) +// { +// +// MapHandler* mh = static_cast*>(QObject::sender()); +// if(mh == NULL) +// return; +// +// VertexAttribute position = mh->getAttribute(nameAttr); +// if(!position.isValid()) +// return; +// +// PFP3::MAP* map = mh->getMap(); +// +// m_renderExplod->updateData(*map,position); +// +//// if(computeNormalLastParameters.contains(map->getName())) +//// { +//// ComputeNormalParameters& params = computeNormalLastParameters[map->getName()]; +//// if(params.positionName == nameAttr && params.autoUpdate) +//// computeNormal(map->getName(), params.positionName, params.normalName); +//// } +// } +} + +void RenderExplodPlugin::connectivityModified() +{ +// MapHandler* mh = static_cast*>(QObject::sender()); +// if(mh == NULL) +// return; +// +// VertexAttribute position = mh->getAttribute("position"); +// if(!position.isValid()) +// return; +// +// PFP3::MAP* map = mh->getMap(); +// +// m_renderExplod->updateData(*map,position); + +} + #ifndef DEBUG Q_EXPORT_PLUGIN2(RenderExplodPlugin, RenderExplodPlugin) #else diff --git a/SCHNApps/Plugins/renderExplod/src/renderExplodDockTab.cpp b/SCHNApps/Plugins/renderExplod/src/renderExplodDockTab.cpp index 6959f72e1..159f0802f 100644 --- a/SCHNApps/Plugins/renderExplod/src/renderExplodDockTab.cpp +++ b/SCHNApps/Plugins/renderExplod/src/renderExplodDockTab.cpp @@ -18,10 +18,13 @@ RenderExplodDockTab::RenderExplodDockTab(Window* w, RenderExplodPlugin* p) : setupUi(this); connect(mapList, SIGNAL(itemSelectionChanged()), this, SLOT(selectedMapChanged())); - connect(combo_positionVBO, SIGNAL(currentIndexChanged(int)), this, SLOT(positionVBOChanged(int))); - connect(combo_colorVBO, SIGNAL(currentIndexChanged(int)), this, SLOT(colorVBOChanged(int))); + + connect(combo_positionAttribute, SIGNAL(currentIndexChanged(int)), this, SLOT(positionAttributeChanged(int))); + connect(combo_colorAttribute, SIGNAL(currentIndexChanged(int)), this, SLOT(colorAttributeChanged(int))); + connect(check_renderEdges, SIGNAL(toggled(bool)), this, SLOT(renderEdgesChanged(bool))); connect(check_renderFaces, SIGNAL(toggled(bool)), this, SLOT(renderFacesChanged(bool))); + connect(slider_facesScaleFactor, SIGNAL(valueChanged(int)), this, SLOT(facesScaleFactorChanged(int))); connect(slider_volumesScaleFactor, SIGNAL(valueChanged(int)), this, SLOT(volumesScaleFactorChanged(int))); } @@ -33,44 +36,46 @@ void RenderExplodDockTab::refreshUI(ParameterSet* params) b_refreshingUI = true; mapList->clear(); - combo_positionVBO->clear(); - combo_colorVBO->clear(); + combo_positionAttribute->clear(); + combo_colorAttribute->clear(); - MapHandlerGen* map = params->selectedMap; + MapHandlerGen* mh = params->selectedMap; - QHash::const_iterator i = params->perMap.constBegin(); + QHash::const_iterator i = params->perMap.constBegin(); while (i != params->perMap.constEnd()) { mapList->addItem(i.key()); - if(map != NULL && i.key() == map->getName()) + if(mh != NULL && i.key() == mh->getName()) { - QList item = mapList->findItems(map->getName(), Qt::MatchExactly); + QList item = mapList->findItems(mh->getName(), Qt::MatchExactly); item[0]->setSelected(true); - PerMapParameterSet& p = params->perMap[map->getName()]; + PerMapParameterSet* p = params->perMap[mh->getName()]; + + QString vec3TypeName = QString::fromStdString(nameOfType(PFP2::VEC3())); - QList vbos = map->getVBOList(); unsigned int j = 0; - for(int i = 0; i < vbos.count(); ++i) + const AttributeHash& attribs = mh->getAttributesList(VERTEX); + for(AttributeHash::const_iterator i = attribs.constBegin(); i != attribs.constEnd(); ++i) { - if(vbos[i]->dataSize() == 3) + if(i.value() == vec3TypeName) { - combo_positionVBO->addItem(QString::fromStdString(vbos[i]->name())); - if(vbos[i] == p.positionVBO) - combo_positionVBO->setCurrentIndex(j); + combo_positionAttribute->addItem(i.key()); + if(i.key() == QString::fromStdString(p->positionAttribute.name())) + combo_positionAttribute->setCurrentIndex(j); - combo_colorVBO->addItem(QString::fromStdString(vbos[i]->name())); - if(vbos[i] == p.colorVBO) - combo_colorVBO->setCurrentIndex(j); +// combo_colorAttribute->addItem(i.key()); +// if(i.key() == QString::fromStdString(p.colorAttribute.name())) +// combo_colorAttribute->setCurrentIndex(j); ++j; } } - check_renderEdges->setChecked(p.renderEdges); - check_renderFaces->setChecked(p.renderFaces); - slider_facesScaleFactor->setSliderPosition(p.facesScaleFactor * 50.0); - slider_volumesScaleFactor->setSliderPosition(p.volumesScaleFactor * 50.0); + check_renderEdges->setChecked(p->renderEdges); + check_renderFaces->setChecked(p->renderFaces); + slider_facesScaleFactor->setSliderPosition(p->facesScaleFactor * 50.0); + slider_volumesScaleFactor->setSliderPosition(p->volumesScaleFactor * 50.0); } ++i; } @@ -88,23 +93,23 @@ void RenderExplodDockTab::selectedMapChanged() } } -void RenderExplodDockTab::positionVBOChanged(int index) +void RenderExplodDockTab::positionAttributeChanged(int index) { if(!b_refreshingUI) { View* view = m_window->getCurrentView(); MapHandlerGen* map = m_currentParams->selectedMap; - m_plugin->changePositionVBO(view, map, map->getVBO(combo_positionVBO->currentText()), true); + m_plugin->changePositionAttribute(view, map, map->getAttribute(combo_positionAttribute->currentText()), true); } } -void RenderExplodDockTab::colorVBOChanged(int index) +void RenderExplodDockTab::colorAttributeChanged(int index) { if(!b_refreshingUI) { View* view = m_window->getCurrentView(); MapHandlerGen* map = m_currentParams->selectedMap; - m_plugin->changeColorVBO(view, map, map->getVBO(combo_colorVBO->currentText()), true); + m_plugin->changeColorAttribute(view, map, map->getAttribute(combo_colorAttribute->currentText()), true); } } diff --git a/SCHNApps/bin/init.py b/SCHNApps/bin/init.py index d229607b9..704992921 100644 --- a/SCHNApps/bin/init.py +++ b/SCHNApps/bin/init.py @@ -1,19 +1,19 @@ -importPlugin = schnapps.loadPlugin("ImportSurface"); -renderPlugin = schnapps.loadPlugin("RenderD"); -renderVectorPlugin = schnapps.loadPlugin("RenderVectorD"); -differentialPropertiesPlugin = schnapps.loadPlugin("DifferentialProperties"); -subdivisionPlugin = schnapps.loadPlugin("SubdivideSurface"); -surfaceDeformationPlugin = schnapps.loadPlugin("SurfaceDeformation"); +#importPlugin = schnapps.loadPlugin("ImportSurface"); +#renderPlugin = schnapps.loadPlugin("RenderD"); +#renderVectorPlugin = schnapps.loadPlugin("RenderVectorD"); +#differentialPropertiesPlugin = schnapps.loadPlugin("DifferentialProperties"); +#subdivisionPlugin = schnapps.loadPlugin("SubdivideSurface"); +#surfaceDeformationPlugin = schnapps.loadPlugin("SurfaceDeformation"); -obj = importPlugin.importFromFile("/home/kraemer/Media/Data/surface/lowRes/iphi_good_9k.off"); +#obj = importPlugin.importFromFile("/home/kraemer/Media/Data/surface/lowRes/iphi_good_9k.off"); -v = schnapps.getView("view_0"); +#v = schnapps.getView("view_0"); -schnapps.linkViewAndPlugin(v.getName(), renderPlugin.getName()); -schnapps.linkViewAndPlugin(v.getName(), renderVectorPlugin.getName()); -schnapps.linkViewAndPlugin(v.getName(), surfaceDeformationPlugin.getName()); +#schnapps.linkViewAndPlugin(v.getName(), renderPlugin.getName()); +#schnapps.linkViewAndPlugin(v.getName(), renderVectorPlugin.getName()); +#schnapps.linkViewAndPlugin(v.getName(), surfaceDeformationPlugin.getName()); -schnapps.linkViewAndMap(v.getName(), obj.getName()); +#schnapps.linkViewAndMap(v.getName(), obj.getName()); #differentialPropertiesPlugin.computeNormal(obj.getName()); #differentialPropertiesPlugin.computeCurvature(obj.getName()); diff --git a/SCHNApps/include/mapHandler.hpp b/SCHNApps/include/mapHandler.hpp index fd5407aac..049ec6238 100644 --- a/SCHNApps/include/mapHandler.hpp +++ b/SCHNApps/include/mapHandler.hpp @@ -74,7 +74,7 @@ template void MapHandler::draw(Utils::GLSLShader* shader, int primitive) { if(!m_render->isPrimitiveUpToDate(primitive)) - m_render->initPrimitives(*(static_cast(m_map)), allDarts, primitive) ; + m_render->initPrimitives(*(static_cast(m_map)), primitive) ; m_render->draw(shader, primitive); } diff --git a/include/Algo/Modelisation/subdivision3.hpp b/include/Algo/Modelisation/subdivision3.hpp index 5578ae6c3..a8319b71a 100644 --- a/include/Algo/Modelisation/subdivision3.hpp +++ b/include/Algo/Modelisation/subdivision3.hpp @@ -728,24 +728,7 @@ void sqrt3Vol(typename PFP::MAP& map, VertexAttribute& posit } } - - // - // edge-removal on all old boundary edges - // - TraversorE tE(map); - for(Dart dit = tE.begin() ; dit != tE.end() ; dit = tE.next()) - { - if(m.isMarked(dit)) - { - m.unmarkOrbit(dit); - Dart d = map.phi2(map.phi3(map.findBoundaryFaceOfEdge(dit))); - Volume::Modelisation::Tetrahedralization::swapGen3To2(map, d); - - } - } - TraversorV tVg(map); ->>>>>>> 498aabac71c2d803003f86eb62a8466f894c2271 for(Dart dit = tVg.begin() ; dit != tVg.end() ; dit = tVg.next()) { if(map.isBoundaryVertex(dit) && !newBoundaryV.isMarked(dit)) @@ -774,7 +757,7 @@ void sqrt3Vol(typename PFP::MAP& map, VertexAttribute& posit // // edge-removal on all old boundary edges // - TraversorE tE(map,selected); + TraversorE tE(map); for(Dart dit = tE.begin() ; dit != tE.end() ; dit = tE.next()) { if(m.isMarked(dit)) -- GitLab