- IO parser pointer initialized to NULL by default.

- Minor code updates.
This commit is contained in:
Miguel Granados 2003-10-22 20:34:52 +00:00
parent 6bc3fc8dda
commit e336ef43db
1 changed files with 27 additions and 23 deletions

View File

@ -66,7 +66,8 @@ struct move_shalfedge_around_facet {
template <class Object, class Hash_map, class Union_find> template <class Object, class Hash_map, class Union_find>
void merge_sets( Object o1, Object o2, Hash_map& hash, Union_find& uf) { void merge_sets( Object o1, Object o2, Hash_map& hash, Union_find& uf) {
CGAL_nef3_assertion( hash[o1] != 0 && hash[o2] != 0); //CGAL_nef3_assertion( hash[o1] != 0 && hash[o2] != 0);
CGAL_nef3_assertion( hash.is_defined(o1) && hash.is_defined(o2));
if( !uf.same_set( hash[o1], hash[o2])) if( !uf.same_set( hash[o1], hash[o2]))
uf.unify_sets( hash[o1], hash[o2]); uf.unify_sets( hash[o1], hash[o2]);
} }
@ -405,14 +406,15 @@ public:
SNC_structure() : SNC_structure() :
boundary_item_(undef_), sm_boundary_item_(undef_), boundary_item_(undef_), sm_boundary_item_(undef_),
vertices_(), halfedges_(), halffacets_(), volumes_(), vertices_(), halfedges_(), halffacets_(), volumes_(),
shalfedges_(), shalfloops_(), sfaces_() {} shalfedges_(), shalfloops_(), sfaces_(), IO(NULL) {}
~SNC_structure() { clear(); } ~SNC_structure() { TRACEN("~SNC_structure: clearing "<<this); clear(); }
SNC_structure(const Self& D) : SNC_structure(const Self& D) :
boundary_item_(undef_), sm_boundary_item_(undef_), boundary_item_(undef_), sm_boundary_item_(undef_),
vertices_(D.vertices_), halfedges_(D.halfedges_), vertices_(D.vertices_), halfedges_(D.halfedges_),
halffacets_(D.halffacets_), volumes_(D.volumes_), halffacets_(D.halffacets_), volumes_(D.volumes_),
shalfedges_(D.shalfedges_), shalfloops_(D.shalfloops_), sfaces_(D.sfaces_) shalfedges_(D.shalfedges_), shalfloops_(D.shalfloops_),
sfaces_(D.sfaces_), IO(NULL)
{ pointer_update(D); } { pointer_update(D); }
Self& operator=(const Self& D) { Self& operator=(const Self& D) {
@ -955,8 +957,6 @@ public:
return '.'; return '.';
} }
SNC_io_parser<SNC_structure> *IO;
typedef typename Union_find< Volume_handle>::handle UFH_volume; typedef typename Union_find< Volume_handle>::handle UFH_volume;
typedef typename Union_find< Halffacet_handle>::handle UFH_facet; typedef typename Union_find< Halffacet_handle>::handle UFH_facet;
typedef typename Union_find< SFace_handle>::handle UFH_sface; typedef typename Union_find< SFace_handle>::handle UFH_sface;
@ -1066,8 +1066,10 @@ public:
bool vertex_simplification(bool snc_computed = true) { bool vertex_simplification(bool snc_computed = true) {
bool simplified = false; bool simplified = false;
SNC_io_parser<SNC_structure> IO_parser(std::cerr, *this); #ifdef _DEBUG
IO = &IO_parser; delete IO;
IO = new SNC_io_parser<SNC_structure>(std::cerr, *this);
#endif
SNC_decorator D(*this); SNC_decorator D(*this);
@ -1121,8 +1123,11 @@ public:
TRACEN(">>> simplifying"); TRACEN(">>> simplifying");
SNC_decorator D(*this); SNC_decorator D(*this);
SNC_io_parser<SNC_structure> IO_parser(std::cerr, *this);
IO = &IO_parser; #ifdef _DEBUG
delete IO;
IO = new SNC_io_parser<SNC_structure>(std::cerr, *this);
#endif
Unique_hash_map< Volume_handle, UFH_volume> hash_volume; Unique_hash_map< Volume_handle, UFH_volume> hash_volume;
Unique_hash_map< Halffacet_handle, UFH_facet> hash_facet; Unique_hash_map< Halffacet_handle, UFH_facet> hash_facet;
@ -1230,14 +1235,11 @@ public:
} }
update_facets = vertex_simplification() || update_facets; update_facets = vertex_simplification() || update_facets;
SETDTHREAD(1);
purge_no_find_objects(hash_volume, hash_facet, hash_sface, uf_volume, purge_no_find_objects(hash_volume, hash_facet, hash_sface, uf_volume,
uf_facet, uf_sface); uf_facet, uf_sface);
if(update_sfaces || true) create_boundary_links_forall_sfaces( hash_sface, uf_sface); create_boundary_links_forall_sfaces( hash_sface, uf_sface);
if(update_facets || true) create_boundary_links_forall_facets( hash_facet, uf_facet); create_boundary_links_forall_facets( hash_facet, uf_facet);
if(update_volumes|| true) create_boundary_links_forall_volumes( hash_volume, uf_volume); create_boundary_links_forall_volumes( hash_volume, uf_volume);
TRACEN(">>> simplifying done "); TRACEN(">>> simplifying done ");
@ -1422,11 +1424,10 @@ public:
f->boundary_entry_objects_.front())); f->boundary_entry_objects_.front()));
assign( f_sedge, f->boundary_entry_objects_.front()); assign( f_sedge, f->boundary_entry_objects_.front());
Point_3 p(D.point(D.vertex(f_sedge))); Point_3 p(D.point(D.vertex(f_sedge)));
CGAL_nef3_assertion( if( !lexicographically_xyz_smaller(D.point(D.vertex(u_min)), p))
!lexicographically_xyz_smaller(D.point(D.vertex(u_min)), p)); D.store_as_first_boundary_object( u_min, f);
// D.store_as_first_boundary_object( u_min, f); else
// else // these lines are needed if the previous assertion is incorrect D.store_boundary_object( u_min, f);
D.store_boundary_object( u_min, f);
} }
} }
SHalfloop_iterator l; SHalfloop_iterator l;
@ -1444,8 +1445,10 @@ public:
// typedef Unique_hash_map< SFace_handle, bool> SFace_map; // typedef Unique_hash_map< SFace_handle, bool> SFace_map;
// SFace_map linked(false); // SFace_map linked(false);
SNC_io_parser<SNC_structure> IO_parser(std::cerr, *this); #ifdef _DEBUG
IO = &IO_parser; delete IO;
IO = new SNC_io_parser<SNC_structure>(std::cerr, *this);
#endif
SNC_decorator D(*this); SNC_decorator D(*this);
Volume_setter setter(D); Volume_setter setter(D);
@ -1909,6 +1912,7 @@ protected:
SHalfloop_list shalfloops_; SHalfloop_list shalfloops_;
SFace_list sfaces_; SFace_list sfaces_;
SNC_io_parser<SNC_structure> *IO;
}; // SNC_structure }; // SNC_structure