mirror of https://github.com/CGAL/cgal
Merge pull request #5498 from GilesBathgate/cleanup-index-adder
Cleanup index adder in polygon_mesh_to_nef_3
This commit is contained in:
commit
45800d2ab6
|
|
@ -107,8 +107,7 @@ class Ray_hit_generator : public Modifier_base<typename Nef_::SNC_and_PL> {
|
||||||
e->twin() = svb;
|
e->twin() = svb;
|
||||||
#ifndef CGAL_NEF_NO_INDEXED_ITEMS
|
#ifndef CGAL_NEF_NO_INDEXED_ITEMS
|
||||||
svb->set_index(e->get_index());
|
svb->set_index(e->get_index());
|
||||||
svf->set_index();
|
svf->twin()->set_index(svf->new_index());
|
||||||
svf->twin()->set_index(svf->get_index());
|
|
||||||
#endif
|
#endif
|
||||||
} else {
|
} else {
|
||||||
svf->twin() = e;
|
svf->twin() = e;
|
||||||
|
|
@ -117,8 +116,7 @@ class Ray_hit_generator : public Modifier_base<typename Nef_::SNC_and_PL> {
|
||||||
e->twin() = svf;
|
e->twin() = svf;
|
||||||
#ifndef CGAL_NEF_NO_INDEXED_ITEMS
|
#ifndef CGAL_NEF_NO_INDEXED_ITEMS
|
||||||
svf->set_index(e->get_index());
|
svf->set_index(e->get_index());
|
||||||
svb->set_index();
|
svb->twin()->set_index(svb->new_index());
|
||||||
svb->twin()->set_index(svb->get_index());
|
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -165,8 +163,7 @@ class Ray_hit_generator : public Modifier_base<typename Nef_::SNC_and_PL> {
|
||||||
SM_walls smw(&*v_new);
|
SM_walls smw(&*v_new);
|
||||||
sv2 = smw.add_ray_svertex(Sphere_point(-dir));
|
sv2 = smw.add_ray_svertex(Sphere_point(-dir));
|
||||||
#ifndef CGAL_NEF_NO_INDEXED_ITEMS
|
#ifndef CGAL_NEF_NO_INDEXED_ITEMS
|
||||||
sv1->set_index();
|
sv2->set_index(sv1->new_index());
|
||||||
sv2->set_index(sv1->get_index());
|
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -112,8 +112,7 @@ class Ray_hit_generator2 : public Modifier_base<typename Nef_::SNC_and_PL> {
|
||||||
e->twin() = svb;
|
e->twin() = svb;
|
||||||
#ifndef CGAL_NEF_NO_INDEXED_ITEMS
|
#ifndef CGAL_NEF_NO_INDEXED_ITEMS
|
||||||
svb->set_index(e->get_index());
|
svb->set_index(e->get_index());
|
||||||
svf->set_index();
|
svf->twin()->set_index(svf->new_index());
|
||||||
svf->twin()->set_index(svf->get_index());
|
|
||||||
#endif
|
#endif
|
||||||
} else {
|
} else {
|
||||||
svf->twin() = e;
|
svf->twin() = e;
|
||||||
|
|
@ -122,8 +121,7 @@ class Ray_hit_generator2 : public Modifier_base<typename Nef_::SNC_and_PL> {
|
||||||
e->twin() = svf;
|
e->twin() = svf;
|
||||||
#ifndef CGAL_NEF_NO_INDEXED_ITEMS
|
#ifndef CGAL_NEF_NO_INDEXED_ITEMS
|
||||||
svf->set_index(e->get_index());
|
svf->set_index(e->get_index());
|
||||||
svb->set_index();
|
svb->twin()->set_index(svb->new_index());
|
||||||
svb->twin()->set_index(svb->get_index());
|
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -182,8 +180,7 @@ class Ray_hit_generator2 : public Modifier_base<typename Nef_::SNC_and_PL> {
|
||||||
sv1->twin() = sv2; // TODO: why is this necessary?
|
sv1->twin() = sv2; // TODO: why is this necessary?
|
||||||
sv2->twin() = sv1; // these edges should not go into the Edge_sorter
|
sv2->twin() = sv1; // these edges should not go into the Edge_sorter
|
||||||
#ifndef CGAL_NEF_NO_INDEXED_ITEMS
|
#ifndef CGAL_NEF_NO_INDEXED_ITEMS
|
||||||
sv1->set_index();
|
sv2->set_index(sv1->new_index());
|
||||||
sv2->set_index(sv1->get_index());
|
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -529,10 +529,8 @@ class SM_walls : SM_decorator<SMap> {
|
||||||
#ifndef CGAL_NEF_NO_INDEXED_ITEMS
|
#ifndef CGAL_NEF_NO_INDEXED_ITEMS
|
||||||
CGAL_assertion(index1==0 || index1!=index2);
|
CGAL_assertion(index1==0 || index1!=index2);
|
||||||
if(index1==0) {
|
if(index1==0) {
|
||||||
se_new->set_index();
|
index1 = se_new->new_index();
|
||||||
se_new->twin()->set_index();
|
index2 = se_new->twin()->new_index();
|
||||||
index1 = se_new->get_index();
|
|
||||||
index2 = se_new->twin()->get_index();
|
|
||||||
} else {
|
} else {
|
||||||
se_new->set_index(index1);
|
se_new->set_index(index1);
|
||||||
se_new->twin()->set_index(index2);
|
se_new->twin()->set_index(index2);
|
||||||
|
|
|
||||||
|
|
@ -204,8 +204,7 @@ class Single_wall_creator : public Modifier_base<typename Nef_::SNC_and_PL> {
|
||||||
opp->twin() = lateral_svertex;
|
opp->twin() = lateral_svertex;
|
||||||
lateral_svertex->twin() = opp;
|
lateral_svertex->twin() = opp;
|
||||||
#ifndef CGAL_NEF_NO_INDEXED_ITEMS
|
#ifndef CGAL_NEF_NO_INDEXED_ITEMS
|
||||||
opp->set_index();
|
lateral_svertex->set_index(opp->new_index());
|
||||||
lateral_svertex->set_index(opp->get_index());
|
|
||||||
#endif
|
#endif
|
||||||
pl->add_edge(lateral_svertex);
|
pl->add_edge(lateral_svertex);
|
||||||
|
|
||||||
|
|
@ -237,8 +236,7 @@ class Single_wall_creator : public Modifier_base<typename Nef_::SNC_and_PL> {
|
||||||
lateral_svertex->twin() = opp;
|
lateral_svertex->twin() = opp;
|
||||||
|
|
||||||
#ifndef CGAL_NEF_NO_INDEXED_ITEMS
|
#ifndef CGAL_NEF_NO_INDEXED_ITEMS
|
||||||
opp->set_index();
|
lateral_svertex->set_index(opp->new_index());
|
||||||
lateral_svertex->set_index(opp->get_index());
|
|
||||||
#endif
|
#endif
|
||||||
pl->add_edge(lateral_svertex);
|
pl->add_edge(lateral_svertex);
|
||||||
|
|
||||||
|
|
@ -275,8 +273,7 @@ class Single_wall_creator : public Modifier_base<typename Nef_::SNC_and_PL> {
|
||||||
opp->twin() = lateral_svertex;
|
opp->twin() = lateral_svertex;
|
||||||
lateral_svertex->twin() = opp;
|
lateral_svertex->twin() = opp;
|
||||||
#ifndef CGAL_NEF_NO_INDEXED_ITEMS
|
#ifndef CGAL_NEF_NO_INDEXED_ITEMS
|
||||||
opp->set_index();
|
lateral_svertex->set_index(opp->new_index());
|
||||||
lateral_svertex->set_index(opp->get_index());
|
|
||||||
#endif
|
#endif
|
||||||
pl->add_edge(lateral_svertex);
|
pl->add_edge(lateral_svertex);
|
||||||
|
|
||||||
|
|
@ -308,8 +305,7 @@ class Single_wall_creator : public Modifier_base<typename Nef_::SNC_and_PL> {
|
||||||
opp->twin() = lateral_svertex;
|
opp->twin() = lateral_svertex;
|
||||||
lateral_svertex->twin() = opp;
|
lateral_svertex->twin() = opp;
|
||||||
#ifndef CGAL_NEF_NO_INDEXED_ITEMS
|
#ifndef CGAL_NEF_NO_INDEXED_ITEMS
|
||||||
opp->set_index();
|
lateral_svertex->set_index(opp->new_index());
|
||||||
lateral_svertex->set_index(opp->get_index());
|
|
||||||
#endif
|
#endif
|
||||||
pl->add_edge(lateral_svertex);
|
pl->add_edge(lateral_svertex);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -163,8 +163,7 @@ class Single_wall_creator2 : public Modifier_base<typename Nef_::SNC_and_PL> {
|
||||||
lateral_sv_tgt[0]->twin() = lateral_sv_tgt[1];
|
lateral_sv_tgt[0]->twin() = lateral_sv_tgt[1];
|
||||||
lateral_sv_tgt[1]->twin() = lateral_sv_tgt[0];
|
lateral_sv_tgt[1]->twin() = lateral_sv_tgt[0];
|
||||||
#ifndef CGAL_NEF_NO_INDEXED_ITEMS
|
#ifndef CGAL_NEF_NO_INDEXED_ITEMS
|
||||||
lateral_sv_tgt[0]->set_index();
|
lateral_sv_tgt[1]->set_index(lateral_sv_tgt[0]->new_index());
|
||||||
lateral_sv_tgt[1]->set_index(lateral_sv_tgt[0]->get_index());
|
|
||||||
#endif
|
#endif
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
@ -174,8 +173,7 @@ class Single_wall_creator2 : public Modifier_base<typename Nef_::SNC_and_PL> {
|
||||||
opp->twin() = lateral_sv_tgt[0];
|
opp->twin() = lateral_sv_tgt[0];
|
||||||
lateral_sv_tgt[0]->twin() = opp;
|
lateral_sv_tgt[0]->twin() = opp;
|
||||||
#ifndef CGAL_NEF_NO_INDEXED_ITEMS
|
#ifndef CGAL_NEF_NO_INDEXED_ITEMS
|
||||||
opp->set_index();
|
lateral_sv_tgt[0]->set_index(opp->new_index());
|
||||||
lateral_sv_tgt[0]->set_index(opp->get_index());
|
|
||||||
#endif
|
#endif
|
||||||
lateral_sv_tgt[0] =
|
lateral_sv_tgt[0] =
|
||||||
SMW_tgt.add_lateral_svertex(Sphere_segment(lateral_sv_tgt[0]->point().antipode(),
|
SMW_tgt.add_lateral_svertex(Sphere_segment(lateral_sv_tgt[0]->point().antipode(),
|
||||||
|
|
|
||||||
|
|
@ -169,8 +169,7 @@ class Single_wall_creator3 : public Modifier_base<typename Nef_::SNC_and_PL> {
|
||||||
lateral_sv_tgt[0]->twin() = lateral_sv_tgt[1];
|
lateral_sv_tgt[0]->twin() = lateral_sv_tgt[1];
|
||||||
lateral_sv_tgt[1]->twin() = lateral_sv_tgt[0];
|
lateral_sv_tgt[1]->twin() = lateral_sv_tgt[0];
|
||||||
#ifndef CGAL_NEF_NO_INDEXED_ITEMS
|
#ifndef CGAL_NEF_NO_INDEXED_ITEMS
|
||||||
lateral_sv_tgt[0]->set_index();
|
lateral_sv_tgt[1]->set_index(lateral_sv_tgt[0]->new_index());
|
||||||
lateral_sv_tgt[1]->set_index(lateral_sv_tgt[0]->get_index());
|
|
||||||
#endif
|
#endif
|
||||||
pl->add_edge(lateral_sv_tgt[0]);
|
pl->add_edge(lateral_sv_tgt[0]);
|
||||||
return;
|
return;
|
||||||
|
|
@ -182,8 +181,7 @@ class Single_wall_creator3 : public Modifier_base<typename Nef_::SNC_and_PL> {
|
||||||
lateral_sv_tgt[0]->twin() = opp;
|
lateral_sv_tgt[0]->twin() = opp;
|
||||||
pl->add_edge(opp);
|
pl->add_edge(opp);
|
||||||
#ifndef CGAL_NEF_NO_INDEXED_ITEMS
|
#ifndef CGAL_NEF_NO_INDEXED_ITEMS
|
||||||
opp->set_index();
|
lateral_sv_tgt[0]->set_index(opp->new_index());
|
||||||
lateral_sv_tgt[0]->set_index(opp->get_index());
|
|
||||||
#endif
|
#endif
|
||||||
lateral_sv_tgt[0] =
|
lateral_sv_tgt[0] =
|
||||||
SMW_tgt.add_lateral_svertex(Sphere_segment(lateral_sv_tgt[0]->point().antipode(),
|
SMW_tgt.add_lateral_svertex(Sphere_segment(lateral_sv_tgt[0]->point().antipode(),
|
||||||
|
|
|
||||||
|
|
@ -78,8 +78,7 @@ class ID_support_handler<SNC_indexed_items, Decorator> {
|
||||||
<< " " << f2->plane() << &f2);
|
<< " " << f2->plane() << &f2);
|
||||||
|
|
||||||
if(f2m[f1][f2]==0) {
|
if(f2m[f1][f2]==0) {
|
||||||
sv->set_index();
|
f2m[f1][f2] = sv->new_index();
|
||||||
f2m[f1][f2] = sv->get_index();
|
|
||||||
CGAL_NEF_TRACEN("insert " << sv->point() << &*sv
|
CGAL_NEF_TRACEN("insert " << sv->point() << &*sv
|
||||||
<< ": " << f2m[f1][f2]);
|
<< ": " << f2m[f1][f2]);
|
||||||
CGAL_NEF_TRACEN("not defined, yet");
|
CGAL_NEF_TRACEN("not defined, yet");
|
||||||
|
|
|
||||||
|
|
@ -2129,16 +2129,14 @@ class SNC_constructor<SNC_indexed_items, SNC_structure_>
|
||||||
|
|
||||||
Halfedge_iterator e;
|
Halfedge_iterator e;
|
||||||
CGAL_forall_edges(e, *this->sncp()) {
|
CGAL_forall_edges(e, *this->sncp()) {
|
||||||
e->set_index();
|
e->twin()->set_index(e->new_index());
|
||||||
e->twin()->set_index(e->get_index());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Halffacet_iterator f;
|
Halffacet_iterator f;
|
||||||
CGAL_forall_halffacets(f, *this->sncp()) {
|
CGAL_forall_halffacets(f, *this->sncp()) {
|
||||||
Halffacet_cycle_iterator fci(f->facet_cycles_begin());
|
Halffacet_cycle_iterator fci(f->facet_cycles_begin());
|
||||||
SHalfedge_handle se(fci);
|
SHalfedge_handle se(fci);
|
||||||
se->set_index();
|
int index(se->new_index());
|
||||||
int index(se->get_index());
|
|
||||||
for(; fci != f->facet_cycles_end(); ++fci) {
|
for(; fci != f->facet_cycles_end(); ++fci) {
|
||||||
if(fci.is_shalfedge()) {
|
if(fci.is_shalfedge()) {
|
||||||
SHalfedge_around_facet_circulator c1(fci), c2(c1);
|
SHalfedge_around_facet_circulator c1(fci), c2(c1);
|
||||||
|
|
|
||||||
|
|
@ -116,8 +116,9 @@ class SNC_indexed_items {
|
||||||
init_ifacet = sl.init_ifacet;
|
init_ifacet = sl.init_ifacet;
|
||||||
return *this;
|
return *this;
|
||||||
}
|
}
|
||||||
|
int new_index()
|
||||||
void set_index(int idx = Index_generator::get_unique_index())
|
{ index = Index_generator::get_unique_index(); return index; }
|
||||||
|
void set_index(int idx)
|
||||||
{ index = idx; }
|
{ index = idx; }
|
||||||
int get_index() const { return index; }
|
int get_index() const { return index; }
|
||||||
Halffacet_const_handle get_index_facet() const {
|
Halffacet_const_handle get_index_facet() const {
|
||||||
|
|
@ -151,8 +152,9 @@ class SNC_indexed_items {
|
||||||
init_ifacet = se.init_ifacet;
|
init_ifacet = se.init_ifacet;
|
||||||
return *this;
|
return *this;
|
||||||
}
|
}
|
||||||
|
int new_index()
|
||||||
void set_index(int idx = Index_generator::get_unique_index())
|
{ index = index2 = Index_generator::get_unique_index(); return index; }
|
||||||
|
void set_index(int idx)
|
||||||
{ index = index2 = idx; }
|
{ index = index2 = idx; }
|
||||||
int get_index() const {
|
int get_index() const {
|
||||||
return index;
|
return index;
|
||||||
|
|
@ -186,8 +188,9 @@ class SNC_indexed_items {
|
||||||
index = sv.index;
|
index = sv.index;
|
||||||
return *this;
|
return *this;
|
||||||
}
|
}
|
||||||
|
int new_index()
|
||||||
void set_index(int idx = Index_generator::get_unique_index())
|
{ index = Index_generator::get_unique_index(); return index; }
|
||||||
|
void set_index(int idx)
|
||||||
{ index = idx; }
|
{ index = idx; }
|
||||||
int get_index() const { return index; }
|
int get_index() const { return index; }
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -112,7 +112,7 @@ class Face_graph_index_adder {
|
||||||
typedef typename boost::graph_traits<Polyhedron>::halfedge_descriptor halfedge_descriptor;
|
typedef typename boost::graph_traits<Polyhedron>::halfedge_descriptor halfedge_descriptor;
|
||||||
public:
|
public:
|
||||||
Face_graph_index_adder(Polyhedron&, HalfedgeIndexMap ) {}
|
Face_graph_index_adder(Polyhedron&, HalfedgeIndexMap ) {}
|
||||||
void set_hash(halfedge_descriptor,
|
void set_edge(halfedge_descriptor,
|
||||||
SHalfedge_handle) {}
|
SHalfedge_handle) {}
|
||||||
void resolve_indexes() {}
|
void resolve_indexes() {}
|
||||||
};
|
};
|
||||||
|
|
@ -126,21 +126,21 @@ class Face_graph_index_adder<CGAL::SNC_indexed_items, PolygonMesh, SNC_structure
|
||||||
|
|
||||||
typedef Halfedge_around_face_circulator<PolygonMesh>
|
typedef Halfedge_around_face_circulator<PolygonMesh>
|
||||||
Halfedge_around_facet_const_circulator;
|
Halfedge_around_facet_const_circulator;
|
||||||
typedef std::vector<SHalfedge_handle> Hash;
|
typedef std::vector<SHalfedge_handle> SHalfedges;
|
||||||
|
|
||||||
PolygonMesh& P;
|
PolygonMesh& P;
|
||||||
HalfedgeIndexMap him;
|
HalfedgeIndexMap him;
|
||||||
Hash hash;
|
SHalfedges shalfedges;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
Face_graph_index_adder(PolygonMesh& P_, HalfedgeIndexMap him) : P(P_), him(him)
|
Face_graph_index_adder(PolygonMesh& P_, HalfedgeIndexMap him) : P(P_), him(him)
|
||||||
{
|
{
|
||||||
hash.resize(num_halfedges(P));
|
shalfedges.resize(num_halfedges(P));
|
||||||
}
|
}
|
||||||
|
|
||||||
void set_hash(halfedge_descriptor evc,
|
void set_edge(halfedge_descriptor evc,
|
||||||
SHalfedge_handle se) {
|
SHalfedge_handle se) {
|
||||||
hash[get(him,evc)] = se;
|
shalfedges[get(him,evc)] = se;
|
||||||
}
|
}
|
||||||
|
|
||||||
void resolve_indexes()
|
void resolve_indexes()
|
||||||
|
|
@ -148,26 +148,22 @@ public:
|
||||||
for(face_descriptor fi : faces(P)) {
|
for(face_descriptor fi : faces(P)) {
|
||||||
Halfedge_around_facet_const_circulator
|
Halfedge_around_facet_const_circulator
|
||||||
fc(halfedge(fi,P),P), end(fc);
|
fc(halfedge(fi,P),P), end(fc);
|
||||||
typename boost::property_traits<HalfedgeIndexMap>::value_type
|
SHalfedge_handle s = shalfedges[get(him,*fc)];
|
||||||
index = get(him,*fc);
|
int se = s->new_index();
|
||||||
hash[index]->set_index();
|
int set = s->twin()->new_index();
|
||||||
hash[index]->twin()->set_index();
|
int sv = s->twin()->source()->new_index();
|
||||||
hash[index]->twin()->source()->set_index();
|
|
||||||
int se = hash[index]->get_index();
|
|
||||||
int set = hash[index]->twin()->get_index();
|
|
||||||
int sv = hash[index]->twin()->source()->get_index();
|
|
||||||
|
|
||||||
++fc;
|
++fc;
|
||||||
CGAL_For_all(fc, end) {
|
CGAL_For_all(fc, end) {
|
||||||
index = get(him,*fc);
|
SHalfedge_handle n = shalfedges[get(him,*fc)];
|
||||||
hash[index]->set_index(se);
|
n->set_index(se);
|
||||||
hash[index]->twin()->set_index(set);
|
n->twin()->set_index(set);
|
||||||
hash[index]->source()->set_index(sv);
|
n->source()->set_index(sv);
|
||||||
hash[index]->twin()->source()->set_index();
|
sv = n->twin()->source()->new_index();
|
||||||
sv = hash[index]->twin()->source()->get_index();
|
|
||||||
}
|
}
|
||||||
hash[get(him,*fc)]->source()->set_index(sv);
|
s->source()->set_index(sv);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
@ -266,7 +262,7 @@ void polygon_mesh_to_nef_3(PolygonMesh& P, SNC_structure& S, FaceIndexMap fimap,
|
||||||
e->twin()->circle() = ss_circle.opposite();
|
e->twin()->circle() = ss_circle.opposite();
|
||||||
e->mark() = e->twin()->mark() = true;
|
e->mark() = e->twin()->mark() = true;
|
||||||
|
|
||||||
index_adder.set_hash(pe_prev, e);
|
index_adder.set_edge(pe_prev, e);
|
||||||
}
|
}
|
||||||
|
|
||||||
sv_prev = sv;
|
sv_prev = sv;
|
||||||
|
|
@ -300,7 +296,7 @@ void polygon_mesh_to_nef_3(PolygonMesh& P, SNC_structure& S, FaceIndexMap fimap,
|
||||||
e->twin()->circle() = ss_circle.opposite();
|
e->twin()->circle() = ss_circle.opposite();
|
||||||
e->mark() = e->twin()->mark() = true;
|
e->mark() = e->twin()->mark() = true;
|
||||||
|
|
||||||
index_adder.set_hash(pe_prev, e);
|
index_adder.set_edge(pe_prev, e);
|
||||||
}
|
}
|
||||||
|
|
||||||
// create faces
|
// create faces
|
||||||
|
|
|
||||||
|
|
@ -35,37 +35,6 @@
|
||||||
|
|
||||||
namespace CGAL {
|
namespace CGAL {
|
||||||
|
|
||||||
/*
|
|
||||||
template<typename Items>
|
|
||||||
class Index_assigner {
|
|
||||||
Index_assigner() {}
|
|
||||||
template<typename Handle>
|
|
||||||
void assign_index(Handle& ) const {}
|
|
||||||
template<typename Handle>
|
|
||||||
void assign_first_index() const {}
|
|
||||||
template<typename Handle>
|
|
||||||
void assign_new_index() {}
|
|
||||||
};
|
|
||||||
|
|
||||||
template<> class Index_assigner<CGAL::SNC_indexed_items> {
|
|
||||||
int first;
|
|
||||||
int index;
|
|
||||||
public:
|
|
||||||
Index_assigner() :
|
|
||||||
first(Index_generator::get_unique_index()), index(first) {}
|
|
||||||
|
|
||||||
template<typename Handle>
|
|
||||||
void assign_index(Handle& h) const
|
|
||||||
{ h->set_index(index); }
|
|
||||||
template<typename Handle>
|
|
||||||
void assign_first_index(Handle& h) const
|
|
||||||
{ h->set_index(first); }
|
|
||||||
template<typename Handle>
|
|
||||||
void assign_new_index(Handle& h)
|
|
||||||
{ h->set_index(); index = h->get_index(); }
|
|
||||||
};
|
|
||||||
*/
|
|
||||||
|
|
||||||
//template<typename Items> class Index_matcher;
|
//template<typename Items> class Index_matcher;
|
||||||
|
|
||||||
template<typename Vertex>
|
template<typename Vertex>
|
||||||
|
|
@ -121,11 +90,10 @@ template<typename Edge, typename CompareEdges>
|
||||||
h->set_index(ei->second);
|
h->set_index(ei->second);
|
||||||
if(plusTwin) h->twin()->set_index(h->get_index()+1);
|
if(plusTwin) h->twin()->set_index(h->get_index()+1);
|
||||||
} else {
|
} else {
|
||||||
int new_index = Index_generator::get_unique_index();
|
int new_index = h->new_index();
|
||||||
edge2int.insert(std::make_pair(e,new_index));
|
edge2int.insert(std::make_pair(e,new_index));
|
||||||
h->set_index(new_index);
|
|
||||||
if(plusTwin)
|
if(plusTwin)
|
||||||
h->twin()->set_index();
|
h->twin()->new_index();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -496,8 +496,7 @@ protected:
|
||||||
SFace_handle sf(v->new_sface());
|
SFace_handle sf(v->new_sface());
|
||||||
SM.link_as_isolated_vertex(sv,sf);
|
SM.link_as_isolated_vertex(sv,sf);
|
||||||
if(first) {
|
if(first) {
|
||||||
sv->set_index();
|
index = sv->new_index();
|
||||||
index = sv->get_index();
|
|
||||||
first = false;
|
first = false;
|
||||||
} else
|
} else
|
||||||
sv->set_index(index);
|
sv->set_index(index);
|
||||||
|
|
@ -518,8 +517,7 @@ protected:
|
||||||
SM.link_as_isolated_vertex(sv1,sf);
|
SM.link_as_isolated_vertex(sv1,sf);
|
||||||
SM.link_as_isolated_vertex(sv2,sf);
|
SM.link_as_isolated_vertex(sv2,sf);
|
||||||
sv1->set_index(index);
|
sv1->set_index(index);
|
||||||
sv2->set_index();
|
index = sv2->new_index();
|
||||||
index = sv2->get_index();
|
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue