mirror of https://github.com/CGAL/cgal
Merge pull request #3251 from maxGimeno/Demo-Fix_removeAll-GF
Polyhedron Demo: Fix snapshot and erase all
This commit is contained in:
commit
597d80ccbc
|
|
@ -227,9 +227,11 @@ Scene::erase(QList<int> indices)
|
||||||
}
|
}
|
||||||
|
|
||||||
Q_FOREACH(Scene_item* item, to_be_removed) {
|
Q_FOREACH(Scene_item* item, to_be_removed) {
|
||||||
|
Item_id removed_item = item_id(item);
|
||||||
|
if(removed_item == -1) //case of the selection_item, for example.
|
||||||
|
continue;
|
||||||
if(item->parentGroup())
|
if(item->parentGroup())
|
||||||
item->parentGroup()->removeChild(item);
|
item->parentGroup()->removeChild(item);
|
||||||
Item_id removed_item = item_id(item);
|
|
||||||
children.removeAll(removed_item);
|
children.removeAll(removed_item);
|
||||||
indexErased(removed_item);
|
indexErased(removed_item);
|
||||||
m_entries.removeAll(item);
|
m_entries.removeAll(item);
|
||||||
|
|
@ -504,8 +506,7 @@ void Scene::renderScene(const QList<Scene_interface::Item_id> &items,
|
||||||
bool writing_depth,
|
bool writing_depth,
|
||||||
QOpenGLFramebufferObject *fbo)
|
QOpenGLFramebufferObject *fbo)
|
||||||
{
|
{
|
||||||
if(pass == -1)
|
|
||||||
viewer->makeCurrent();
|
|
||||||
viewer->setCurrentPass(pass);
|
viewer->setCurrentPass(pass);
|
||||||
viewer->setDepthWriting(writing_depth);
|
viewer->setDepthWriting(writing_depth);
|
||||||
viewer->setDepthPeelingFbo(fbo);
|
viewer->setDepthPeelingFbo(fbo);
|
||||||
|
|
@ -663,7 +664,6 @@ void Scene::renderPointScene(const QList<Scene_interface::Item_id> &items,
|
||||||
void
|
void
|
||||||
Scene::draw_aux(bool with_names, CGAL::Three::Viewer_interface* viewer)
|
Scene::draw_aux(bool with_names, CGAL::Three::Viewer_interface* viewer)
|
||||||
{
|
{
|
||||||
viewer->makeCurrent();
|
|
||||||
QMap<float, int> picked_item_IDs;
|
QMap<float, int> picked_item_IDs;
|
||||||
if(with_names)
|
if(with_names)
|
||||||
viewer->glEnable(GL_DEPTH_TEST);
|
viewer->glEnable(GL_DEPTH_TEST);
|
||||||
|
|
@ -703,7 +703,6 @@ Scene::draw_aux(bool with_names, CGAL::Three::Viewer_interface* viewer)
|
||||||
0.0f);
|
0.0f);
|
||||||
viewer->glClearDepthf(1);
|
viewer->glClearDepthf(1);
|
||||||
viewer->glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
|
viewer->glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
|
||||||
//renderScene(children, viewer, picked_item_IDs, false, 0,false, NULL);
|
|
||||||
renderScene(opaque_items, viewer, picked_item_IDs, false, 0,false, NULL);
|
renderScene(opaque_items, viewer, picked_item_IDs, false, 0,false, NULL);
|
||||||
renderScene(transparent_items, viewer, picked_item_IDs, false, 0,false, NULL);
|
renderScene(transparent_items, viewer, picked_item_IDs, false, 0,false, NULL);
|
||||||
fbos[0]->release();
|
fbos[0]->release();
|
||||||
|
|
@ -718,7 +717,6 @@ Scene::draw_aux(bool with_names, CGAL::Three::Viewer_interface* viewer)
|
||||||
0.0f);
|
0.0f);
|
||||||
viewer->glClearDepthf(1);
|
viewer->glClearDepthf(1);
|
||||||
viewer->glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
|
viewer->glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
|
||||||
// renderScene(children, viewer, picked_item_IDs, false, 0,true, NULL);
|
|
||||||
renderScene(opaque_items, viewer, picked_item_IDs, false, 0,true, NULL);
|
renderScene(opaque_items, viewer, picked_item_IDs, false, 0,true, NULL);
|
||||||
renderScene(transparent_items, viewer, picked_item_IDs, false, 0,true, NULL);
|
renderScene(transparent_items, viewer, picked_item_IDs, false, 0,true, NULL);
|
||||||
depth_test[0]->release();
|
depth_test[0]->release();
|
||||||
|
|
@ -739,7 +737,6 @@ Scene::draw_aux(bool with_names, CGAL::Three::Viewer_interface* viewer)
|
||||||
viewer->glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
|
viewer->glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
|
||||||
renderWireScene(children, viewer, picked_item_IDs, false);
|
renderWireScene(children, viewer, picked_item_IDs, false);
|
||||||
renderPointScene(children, viewer, picked_item_IDs, false);
|
renderPointScene(children, viewer, picked_item_IDs, false);
|
||||||
//renderScene(children, viewer, picked_item_IDs, false, i, false, depth_test[i-1]);
|
|
||||||
renderScene(opaque_items , viewer, picked_item_IDs, false, i, false, depth_test[i-1]);
|
renderScene(opaque_items , viewer, picked_item_IDs, false, i, false, depth_test[i-1]);
|
||||||
renderScene(transparent_items, viewer, picked_item_IDs, false, i, false, depth_test[i-1]);
|
renderScene(transparent_items, viewer, picked_item_IDs, false, i, false, depth_test[i-1]);
|
||||||
fbos[i]->release();
|
fbos[i]->release();
|
||||||
|
|
@ -755,7 +752,6 @@ Scene::draw_aux(bool with_names, CGAL::Three::Viewer_interface* viewer)
|
||||||
0.0f);
|
0.0f);
|
||||||
viewer->glClearDepthf(1);
|
viewer->glClearDepthf(1);
|
||||||
viewer->glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
|
viewer->glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
|
||||||
//renderScene(children, viewer, picked_item_IDs, false, i, true, depth_test[i-1]);
|
|
||||||
renderScene(opaque_items , viewer, picked_item_IDs, false, i, true, depth_test[i-1]);
|
renderScene(opaque_items , viewer, picked_item_IDs, false, i, true, depth_test[i-1]);
|
||||||
renderScene(transparent_items, viewer, picked_item_IDs, false, i, true, depth_test[i-1]);
|
renderScene(transparent_items, viewer, picked_item_IDs, false, i, true, depth_test[i-1]);
|
||||||
depth_test[i]->release();
|
depth_test[i]->release();
|
||||||
|
|
@ -786,7 +782,7 @@ Scene::draw_aux(bool with_names, CGAL::Three::Viewer_interface* viewer)
|
||||||
viewer->glClearColor(background.redF(),
|
viewer->glClearColor(background.redF(),
|
||||||
background.greenF(),
|
background.greenF(),
|
||||||
background.blueF(),
|
background.blueF(),
|
||||||
1.0f);
|
0.0f);
|
||||||
viewer->glDisable(GL_DEPTH_TEST);
|
viewer->glDisable(GL_DEPTH_TEST);
|
||||||
viewer->glClear(GL_COLOR_BUFFER_BIT);
|
viewer->glClear(GL_COLOR_BUFFER_BIT);
|
||||||
viewer->glEnable(GL_BLEND);
|
viewer->glEnable(GL_BLEND);
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue