+ Bug fix: ensure that tree is not empty before computation related to cut plane.

This commit is contained in:
Stéphane Tayeb 2010-05-19 07:05:22 +00:00
parent d661ca9158
commit 38ae830e13
1 changed files with 18 additions and 26 deletions

View File

@ -393,9 +393,9 @@ void Scene::build_facet_tree()
std::cerr << "Build facet tree failed: load polyhedron first." << std::endl;
return;
}
// ensure tree is empty
m_facet_tree.clear();
// Don't rebuild tree if it is already built
if ( !m_facet_tree.empty() ) { return; }
// build tree
CGAL::Timer timer;
@ -413,9 +413,9 @@ void Scene::build_edge_tree()
std::cerr << "Build edge tree failed: load polyhedron first." << std::endl;
return;
}
// ensure tree is empty
m_edge_tree.clear();
// Don't rebuild tree if it is already built
if ( !m_edge_tree.empty() ) { return; }
// build tree
CGAL::Timer timer;
@ -748,11 +748,9 @@ void Scene::sign_distance_function(const Tree& tree)
void Scene::unsigned_distance_function()
{
// Build tree if needed
if ( m_facet_tree.empty() )
{
build_facet_tree();
}
// Build tree (if build fail, exit)
build_facet_tree();
if ( m_facet_tree.empty() ) { return; }
compute_distance_function(m_facet_tree);
@ -762,11 +760,9 @@ void Scene::unsigned_distance_function()
void Scene::unsigned_distance_function_to_edges()
{
// Build tree if needed
if ( m_edge_tree.empty() )
{
build_edge_tree();
}
// Build tree (if build fail, exit)
build_edge_tree();
if ( m_edge_tree.empty() ) { return; }
compute_distance_function(m_edge_tree);
@ -776,11 +772,9 @@ void Scene::unsigned_distance_function_to_edges()
void Scene::signed_distance_function()
{
// Build tree if needed
if ( m_facet_tree.empty() )
{
build_facet_tree();
}
// Build tree (if build fail, exit)
build_facet_tree();
if ( m_facet_tree.empty() ) { return; }
compute_distance_function(m_facet_tree);
sign_distance_function(m_facet_tree);
@ -791,11 +785,9 @@ void Scene::signed_distance_function()
void Scene::cut_segment_plane()
{
// Build tree if needed
if ( m_facet_tree.empty() )
{
build_facet_tree();
}
// Build tree (if build fail, exit)
build_facet_tree();
if ( m_facet_tree.empty() ) { return; }
Plane plane = frame_plane();