Subversion Repositories gelsvn

Rev

Rev 62 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 62 Rev 136
Line 23... Line 23...
23
    for(;!vc.end();++vc)
23
    for(;!vc.end();++vc)
24
      {
24
      {
25
				vertices.push_back(vc.get_vertex());
25
				vertices.push_back(vc.get_vertex());
26
				hedges.push_back(vc.get_halfedge());
26
				hedges.push_back(vc.get_halfedge());
27
      }
27
      }
28
    int N = vc.no_steps();
28
    size_t N = vc.no_steps();
29
    vector<VertexIter> vertices_check(vertices);
29
    vector<VertexIter> vertices_check(vertices);
30
    assert(N==vertices.size());
30
    assert(N==vertices.size());
31
 
31
 
32
    for(int i=N-1;i>=0;--i)
32
    for(int i=N-1;i>=0;--i)
33
      {
33
      {
Line 128... Line 128...
128
  void safe_triangulate(Manifold& m)
128
  void safe_triangulate(Manifold& m)
129
  {
129
  {
130
    vector<FaceIter> fv;
130
    vector<FaceIter> fv;
131
    for(FaceIter  fi=m.faces_begin(); fi != m.faces_end(); ++fi)
131
    for(FaceIter  fi=m.faces_begin(); fi != m.faces_end(); ++fi)
132
      fv.push_back(fi);
132
      fv.push_back(fi);
133
    for(int i=0;i<fv.size();++i)
133
    for(size_t i=0;i<fv.size();++i)
134
      m.safe_triangulate(fv[i]);
134
      m.safe_triangulate(fv[i]);
135
  }
135
  }
136
 
136
 
137
  void triangulate(Manifold& m)
137
  void triangulate(Manifold& m)
138
  {
138
  {
139
    vector<FaceIter> fv;
139
    vector<FaceIter> fv;
140
    for(FaceIter  fi=m.faces_begin(); fi != m.faces_end(); ++fi)
140
    for(FaceIter  fi=m.faces_begin(); fi != m.faces_end(); ++fi)
141
      fv.push_back(fi);
141
      fv.push_back(fi);
142
    for(int i=0;i<fv.size();++i)
142
    for(size_t i=0;i<fv.size();++i)
143
      m.triangulate(fv[i]);
143
      m.triangulate(fv[i]);
144
  }
144
  }
145
 
145
 
146
  struct PotentialEdge
146
  struct PotentialEdge
147
  {
147
  {
Line 243... Line 243...
243
						vector<HalfEdgeIter> candidates;
243
						vector<HalfEdgeIter> candidates;
244
												
244
												
245
						m.split_face(pot_edge.f, v0, v1);
245
						m.split_face(pot_edge.f, v0, v1);
246
 
246
 
247
						// Recompute priorities.
247
						// Recompute priorities.
248
						for(int i=0;i<reeval_vec.size();++i)
248
						for(size_t i=0;i<reeval_vec.size();++i)
249
							{
249
							{
250
								VertexIter& v = reeval_vec[i];
250
								VertexIter& v = reeval_vec[i];
251
								v->touched++;
251
								v->touched++;
252
								insert_potential_edges(v, pot_edges);
252
								insert_potential_edges(v, pot_edges);
253
							}
253
							}