mirror of https://github.com/CGAL/cgal
Fixed TDS's incident_faces() using the wrong index for the first vertex
(and added consts) (cherry picked from commit e312d7ddae0188ed0d99b4247f73871a57124f41)
This commit is contained in:
parent
2f4bb69e0a
commit
7a11937b97
|
|
@ -567,7 +567,7 @@ public:
|
||||||
}
|
}
|
||||||
|
|
||||||
template< typename OutputIterator >
|
template< typename OutputIterator >
|
||||||
OutputIterator incident_faces(Vertex_const_handle v, int d, OutputIterator out)
|
OutputIterator incident_faces(Vertex_const_handle v, int d, OutputIterator out) const
|
||||||
{
|
{
|
||||||
return tds().incident_faces(v, d, out);
|
return tds().incident_faces(v, d, out);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -624,10 +624,10 @@ public:
|
||||||
return incident_faces(v, dim, out, std::less<Vertex_const_handle>(), true);
|
return incident_faces(v, dim, out, std::less<Vertex_const_handle>(), true);
|
||||||
}
|
}
|
||||||
template< typename OutputIterator, typename Comparator >
|
template< typename OutputIterator, typename Comparator >
|
||||||
OutputIterator incident_faces(Vertex_const_handle, const int, OutputIterator, Comparator = Comparator(), bool = false);
|
OutputIterator incident_faces(Vertex_const_handle, const int, OutputIterator, Comparator = Comparator(), bool = false) const;
|
||||||
template< typename OutputIterator >
|
template< typename OutputIterator >
|
||||||
OutputIterator incident_faces(Vertex_const_handle, const int, OutputIterator,
|
OutputIterator incident_faces(Vertex_const_handle, const int, OutputIterator,
|
||||||
std::less<Vertex_const_handle> = std::less<Vertex_const_handle>(), bool = false);
|
std::less<Vertex_const_handle> = std::less<Vertex_const_handle>(), bool = false) const;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - INPUT / OUTPUT
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - INPUT / OUTPUT
|
||||||
|
|
@ -723,7 +723,7 @@ template< typename OutputIterator >
|
||||||
OutputIterator
|
OutputIterator
|
||||||
Triangulation_data_structure<Dim, Vb, Fcb>
|
Triangulation_data_structure<Dim, Vb, Fcb>
|
||||||
::incident_faces(Vertex_const_handle v, const int dim, OutputIterator out,
|
::incident_faces(Vertex_const_handle v, const int dim, OutputIterator out,
|
||||||
std::less<Vertex_const_handle> cmp, bool upper_faces)
|
std::less<Vertex_const_handle> cmp, bool upper_faces) const
|
||||||
{
|
{
|
||||||
return incident_faces<OutputIterator, std::less<Vertex_const_handle> >(v, dim, out, cmp, upper_faces);
|
return incident_faces<OutputIterator, std::less<Vertex_const_handle> >(v, dim, out, cmp, upper_faces);
|
||||||
}
|
}
|
||||||
|
|
@ -733,7 +733,7 @@ template< class Dim, class Vb, class Fcb >
|
||||||
template< typename OutputIterator, typename Comparator >
|
template< typename OutputIterator, typename Comparator >
|
||||||
OutputIterator
|
OutputIterator
|
||||||
Triangulation_data_structure<Dim, Vb, Fcb>
|
Triangulation_data_structure<Dim, Vb, Fcb>
|
||||||
::incident_faces(Vertex_const_handle v, const int dim, OutputIterator out, Comparator cmp, bool upper_faces)
|
::incident_faces(Vertex_const_handle v, const int dim, OutputIterator out, Comparator cmp, bool upper_faces) const
|
||||||
{
|
{
|
||||||
CGAL_precondition( 0 < dim );
|
CGAL_precondition( 0 < dim );
|
||||||
if( dim >= current_dimension() )
|
if( dim >= current_dimension() )
|
||||||
|
|
@ -787,13 +787,13 @@ Triangulation_data_structure<Dim, Vb, Fcb>
|
||||||
// init state for enumerating all candidate faces:
|
// init state for enumerating all candidate faces:
|
||||||
internal::Combination_enumerator f_idx(dim, v_idx + 1, current_dimension());
|
internal::Combination_enumerator f_idx(dim, v_idx + 1, current_dimension());
|
||||||
Face f(*s);
|
Face f(*s);
|
||||||
f.set_index(0, v_idx);
|
f.set_index(0, sorted_idx[v_idx]);
|
||||||
while( ! f_idx.end() )
|
while( ! f_idx.end() )
|
||||||
{
|
{
|
||||||
// check if face has already been found
|
|
||||||
for( int i = 0; i < dim; ++i )
|
for( int i = 0; i < dim; ++i )
|
||||||
f.set_index(1 + i, sorted_idx[f_idx[i]]);
|
f.set_index(1 + i, sorted_idx[f_idx[i]]);
|
||||||
face_set.insert(f);
|
face_set.insert(f); // checks if face has already been found
|
||||||
|
|
||||||
// compute next sorted face (lexicographic enumeration)
|
// compute next sorted face (lexicographic enumeration)
|
||||||
++f_idx;
|
++f_idx;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue