CGAL.Triangulations_2
 

 
Classes
       
Boost.Python.instance(__builtin__.object)
All_edges_iterator
All_faces_iterator
All_vertices_iterator
Constraint
Constraint_iterator
Context
Context_iterator
Edge
Edge_circulator
Edge_iterator
Face
Face_circulator
Face_iterator
Point_iterator
Subconstraint_iterator
Triangulation_2
Constrained_triangulation_2
Constrained_Delaunay_triangulation_2
Constrained_triangulation_plus_2
Delaunay_triangulation_2
Vertex
Vertex_circulator
Vertex_iterator
Vertices_in_constraint_iterator

 
class All_edges_iterator(Boost.Python.instance)
    iterator over all edges
 
 
Method resolution order:
All_edges_iterator
Boost.Python.instance
__builtin__.object

Methods defined here:
__iter__(...)
__len__(...)
next(...)

Data and other attributes defined here:
__init__ = <built-in function __init__>
Raises an exception
This class cannot be instantiated from Python

Data and other attributes inherited from Boost.Python.instance:
__dict__ = <dictproxy object>
__new__ = <built-in method __new__ of Boost.Python.class object>
T.__new__(S, ...) -> a new object with type S, a subtype of T
__weakref__ = <member '__weakref__' of 'Boost.Python.instance' objects>

 
class All_faces_iterator(Boost.Python.instance)
    iterator over all faces.
 
 
Method resolution order:
All_faces_iterator
Boost.Python.instance
__builtin__.object

Methods defined here:
__iter__(...)
__len__(...)
next(...)

Data and other attributes defined here:
__init__ = <built-in function __init__>
Raises an exception
This class cannot be instantiated from Python

Data and other attributes inherited from Boost.Python.instance:
__dict__ = <dictproxy object>
__new__ = <built-in method __new__ of Boost.Python.class object>
T.__new__(S, ...) -> a new object with type S, a subtype of T
__weakref__ = <member '__weakref__' of 'Boost.Python.instance' objects>

 
class All_vertices_iterator(Boost.Python.instance)
    iterator over all vertices
 
 
Method resolution order:
All_vertices_iterator
Boost.Python.instance
__builtin__.object

Methods defined here:
__iter__(...)
__len__(...)
next(...)

Data and other attributes defined here:
__init__ = <built-in function __init__>
Raises an exception
This class cannot be instantiated from Python

Data and other attributes inherited from Boost.Python.instance:
__dict__ = <dictproxy object>
__new__ = <built-in method __new__ of Boost.Python.class object>
T.__new__(S, ...) -> a new object with type S, a subtype of T
__weakref__ = <member '__weakref__' of 'Boost.Python.instance' objects>

 
class Constrained_Delaunay_triangulation_2(Constrained_triangulation_2)
    A constrained Delaunay triangulation is a triangulation with constrained edges which tries
to be as much Delaunay as possible. Constrained edges are not necessarily Delaunay edges, 
therefore a constrained Delaunay triangulation is not a Delaunay triangulation. 
A constrained Delaunay is a triangulation whose faces do not necessarily fulfill the empty 
circle property but fulfill a weaker property called the constrained empty circle. 
To state this property, it is convenient to think of constrained edges as blocking the view. 
Then, a triangulation is constrained Delaunay if the circumscribing circle of any of its triangular 
faces includes in its interior no vertex that is visible from the interior of the triangle.
See a complete C++ documentation:
http://www.cgal.org/Manual/3.2/doc_html/cgal_manual/Triangulation_2_ref/Class_Constrained_Delaunay_triangulation_2.html
 
 
Method resolution order:
Constrained_Delaunay_triangulation_2
Constrained_triangulation_2
Triangulation_2
Boost.Python.instance
__builtin__.object

Methods defined here:
__init__(...)
cdt = Constrained_Delaunay_triangulation_2()
Introduces an empty constrained Delaunay triangulation cdt.
flip(...)
cdt.flip(self , Face f, int i) -> void
Flip f and f->neighbor(i).
get_boundary_of_conflicts(...)
get_boundary_of_conflicts(self , Point_2 p,Face start) -> OutputItEdges
This functions outputs the boundary of the zone in conflict with p.
The boundary edges of the conflict zone are ouput in counter-clockwise 
order and each edge is described through the incident face which is not
in conflict with p.
get_conflicts(...)
cdt.get_conflicts(self , Point_2 p,Face start) ->OutputItFaces
OutItFaces is an iterator of Faces which are in conflict with point p.
insert(...)
cdt.insert(self , Point_2 p, Face f = Face())
Inserts point p in the triangulation. If present f is used as an hint 
for the location of p.
is_flipable(...)
cdt.is_flipable(self , Face f, int i) ->bool
Determines if edge (f,i) can be flipped. Returns true if edge (f,i) is not constrained 
and the circle circumscribing f contains the vertex of f->neighbor(i) opposite to edge (f,i).
is_valid(...)
cdt.is_valid(self) -> bool
Checks if the triangulation is valid and if each constrained edge is
consistently marked constrained in its two incident faces.
propagating_flip(...)
cdt.propagating_flip(self , edges) -> void
Makes the triangulation constrained Delaunay by flipping edges. 
List edges contains an initial list of edges to be flipped. 
The returned triangulation is constrained Delaunay if the initial 
list contains at least all the edges of the input triangulation that failed 
to be constrained Delaunay. (An edge is said to be constrained Delaunay if 
it is either constrained or locally Delaunay.)
push_back(...)
cdt.push_back(self , Point_2 p) -> Vertex
Equivalent to insert(p).
remove(...)
cdt.remove(self , Vertex v) -> void
Removes vertex v.
Precondition: Vertex v is not incident to a constrained edge.
remove_constrained_edge(...)
remove_constraint(...)
cdt.remove_constraint(self , Face f, int i) ->void
Edge(f,i) is no longer constrained.
remove_incident_constraints(...)
dt.remove_incident_constraints(self , Vertex v) -> void
Make the edges incident to vertex v unconstrained edges.

Data and other attributes defined here:
__instance_size__ = 96

Methods inherited from Constrained_triangulation_2:
are_there_incident_constraints(...)
ct.are_there_incident_constraints(self,Vertex v) -> bool
Returns true if at least one of the edges incident to vertex v is constrained.
incident_constraints(...)
ct.incident_constraints(self,Vertex v) -> OutputItEdges
OutputItEdges is an iterator which enumrates the constrained edges incident to v
insert_constraint(...)
ct.insert_constraint(self,Point a, Point b) -> void
Inserts points a and b, and inserts segment ab as a constraint. 
Removes the faces crossed by segment ab and creates new faces instead. 
If a vertex c lies on segment ab, constraint ab is replaced by the two
constraints ac and cb. Apart from the insertion of a and b, the algorithm runs
in time proportionnal to the number of removed triangles.
Precondition: The relative interior of segment ab does not intersect the relative interior of another constrained edge.
 
ct.insert_constraint(self,Vertex va,Vertex vb) -> void
Inserts the line segment s whose endpoints are the vertices va and vb as a constrained edge e. 
The triangles intersected by s are removed and new ones are created.
is_constrained(...)
ct.is_constrained(self,Edge e) -> bool
Returns true if edge e is a constrained edge.

Methods inherited from Triangulation_2:
circumcenter(...)
circumcenter(self,Face f,int i) -> Point_2 .
 
Compute the circumcenter of the face pointed to by f.
This function is available only if the correspoding function is provided in the geometric traits.
clear(...)
clear(self) 
Deletes all faces and finite vertices resulting in an empty triangulation.
compare_x(...)
compare_y(...)
degree(...)
dimension(...)
dimension(self) -> int
Returns the dimension of the convex hull
finite_vertex(...)
finite_vertex(self) -> Vertex
 
a vertex distinct from the infinite_vertex.
incident_edges(...)
incident_edges(self,Vertex v) -> Edge_circulator
 
Starts at an arbitrary edge incident to v.
incident_edges(self,Vertex v,Face f) -> Edge_circulator
 
Starts at the the first edge of f incident to v, in counterclockwise order around v.
Precondition: Face f is incident to vertex v.
incident_faces(...)
incident_faces(self,Vertex v) -> Face_circulator
 
Starts at an arbitrary face incident to v.
incident_faces(self,Vertex v,Face f) -> Face_circulator
 
Starts at face f.
Precondition: Face f is incident to vertex v.
incident_vertices(...)
incident_vertices(self,Vertex v) -> Vertex_circulator
 
Starts at an arbitrary vertex incident to v.
incident_vertices(self,Vertex v,Face f) -> Vertex_circulator
 
Starts at the first vertex of f adjacent to v in counterclockwise order around v.
Precondition: Face f is incident to vertex v.
includes_edge(...)
infinite_face(...)
infinite_face(self) -> Face
 
a face incident to the infinite_vertex.
infinite_tester(...)
infinite_tester(self) -> Infinite_tester
infinite_vertex(...)
infinite_vertex(self) -> Vertex
 
the infinite_vertex.
insert_first(...)
insert_first(self,Point_2 p) -> Vertex.
 
Inserts the first finite vertex .
insert_in_edge(...)
insert_in_edge(self,Point_2 p,Face f,int i) -> Vertex.
 
Inserts vertex v in edge i of f.
Precondition: The point in vertex v lies on the edge opposite to the vertex i of face f.
insert_in_face(...)
insert_in_face(self,Point_2 p,Face f) -> Vertex.
 
Inserts vertex v in face f. Face f is modified, two new faces are created.
Precondition: The point in vertex v lies inside face f. .
insert_outside_affine_hull(...)
insert_outside_convex_hull(...)
insert_outside_convex_hull(self,Point_2 p,Face f) -> Vertex.
 
Inserts a point which is outside the convex hull but in the affine hull.
Precondition: The handle f points to a face which is a proof of the location ofp, see the description of the locate method above.
 
insert_outside_convex_hull(self,Point_2 p) -> Vertex.
 
Inserts a point which is outside the affine hull.
insert_second(...)
insert_second(self,Point_2 p) -> Vertex.
 
Inserts the second finite vertex .
is_edge(...)
is_edge(slef,Vertex va, Vertex vb) -> bool
 
true if there is an edge having va and vb as vertices.
 
is_edge (self, Vertex va,Vertex vb,Edge e) -> bool
 
as above. In addition, if true is returned, the edge with vertices va and vb is the edge e 
where l[0] is a face incident to e and on the right side of e oriented from va to vb.
is_face(...)
is_face(self,Vertex v1,Vertex v2,Vertex v3) -> bool 
 
true if there is a face having v1, v2 and v3 as vertices.
 
is_face(self,Vertex v1,Vertex v2,Vertex v3,Face fr) -> bool 
 
as above. In addition, if true is returned, fr is a  face with v1, v2 and v3 as vertices.
is_infinite(...)
is_infinite(self,Vertex v) -> bool
 
true iff v is the infinite_vertex.
 
is_infinite(self,Face f) ->bool
 
true iff face f is infinite.
 
is_infinite(self,Face f, int i) -> bool
 
true iff edge(f,i) is infinite.
 
is_infinite(self,Edge e) -> bool
 
true iff edge e is infinite.
line_walk(...)
t.line_walk( self,Point_2 p,Point_2 q) -> list of faces
This function returns a list that allows to visit the faces intersected by the line pq.
If there is no such face the list is empty.
t.line_walk( self,Point_2 p,Point_2 q, Face f) -> list of faces
The starting point of the list is the face f
Precondition: Points p and q must be different points.
Precondition: If f is given, it must point to a finite face and the point p must be inside or on the boundary of f.
locate(...)
locate(self,Point_2 query, Face f = Face()) -> Face
 
If the point query lies inside the convex hull of the points, a face that contains the query in its interior or on its boundary is returned.
If the point query lies outside the convex hull of the triangulation but in the affine hull, the returned face is an infinite face which is a proof of the point's location :
- for a two dimensional triangulation, it is a face ( , p, q) such that query lies to the left of the oriented line pq (the rest of the triangulation lying to the right of this line).
- for a degenerate one dimensional triangulation it is the (degenarate one dimensional) face ( , p, NULL) such that query and the triangulation lie on either side of p.
If the point query lies outside the affine hull, the returned Face is None.The optional Face argument, if provided, is used as a hint of where the locate process has to start its search.
 
locate(self,Point_2 query,list l) -> Face
 
Same as above. Additionally, the parameters lt = l[0] and li=l[1] describe where the query point is located. The variable lt is set to the locate type of the query.
If lt==VERTEX the variable li is set to the index of the vertex, and if lt==EDGE li is set to the index of the vertex opposite to the edge. Be careful that li has no meaning when the query type is FACE,
OUTSIDE_CONVEX_HULL, or OUTSIDE_AFFINE_HULL or when the triangulation is 0-dimensional.
mirror_vertex(...)
number_of_faces(...)
number_of_faces(self) -> int
 
Returns the number of finite faces.
number_of_vertices(...)
number_of_vertices(self) -> int 
Returns the number of finite vertices.
oriented_side(...)
remove_degree_3(...)
remove_first(...)
remove_first(self,Vertex v) -> void.
 
Removes the last finite vertex.
remove_second(...)
remove_second(self,Vertex v) -> void.
 
Removes the before last finite vertex.
segment(...)
segment(self,Face f,int i) -> Segment_2 .
 
Returns the line segment formed by the vertices ccw(i) and cw(i) of face f.
Precondition: 0 <= i <= 2. The vertices ccw(i) and cw(i) of f are finite.
 
segment(self,Edge e) -> Segment_2 .
 
Returns the line segment corresponding to edge e.
Precondition: e is a finite edge
set_infinite_vertex(...)
side_of_oriented_circle(...)
side_of_oriented_circle(self, Face f, Point_2 p) -> Oriented_side
 
Returns on which side of the circumcircle of face f lies the point p.
The circle is assumed to be counterclockwisely oriented, so its positive side correspond to its bounded side.
This predicate is available only if the corresponding predicates on points is provided in the geometric traits class.
swap(...)
swap (self,Triangulation_2)
t.swap(tr) 
The triangulations tr and t are swapped. t.swap(tr) should be preferred to t = tr or to t(tr).
triangle(...)
triangle(self,Face f) -> Triangle_2 .
 
Returns the triangle formed by the three vertices of f.
Precondition: The face is finite.
xy_equal(...)

Static methods inherited from Triangulation_2:
ccw(...)
ccw(self,int i) -> Returns i+1 modulo 3. Precondition: 0 <= i <= 2.
cw(...)
cw(self,int i) -> Returns i+2 modulo 3. Precondition: 0 <= i <= 2.

Properties inherited from Triangulation_2:
all_edges
get = (...)
all_faces
get = (...)
all_vertices
get = (...)
edges
get = (...)
faces
get = (...)
points
get = (...)
vertices
get = (...)

Data and other attributes inherited from Triangulation_2:
Locate_type = <class 'CGAL.CGAL.Triangulations_2.Locate_type'>

Data and other attributes inherited from Boost.Python.instance:
__dict__ = <dictproxy object>
__new__ = <built-in method __new__ of Boost.Python.class object>
T.__new__(S, ...) -> a new object with type S, a subtype of T
__weakref__ = <member '__weakref__' of 'Boost.Python.instance' objects>

 
class Constrained_triangulation_2(Triangulation_2)
    A constrained triangulation is a triangulation of a set of points which has to include among 
its edges a given set of segments joining the points.The given segments are called constraints 
and the corresponding edges in the triangulation are called constrained edges.
See a complete C++ documentation:
http://www.cgal.org/Manual/3.2/doc_html/cgal_manual/Triangulation_2_ref/Class_Constrained_triangulation_2.html
 
 
Method resolution order:
Constrained_triangulation_2
Triangulation_2
Boost.Python.instance
__builtin__.object

Methods defined here:
__init__(...)
ct = Constrained_triangulation_2()
Introduces a constrained triangulation
are_there_incident_constraints(...)
ct.are_there_incident_constraints(self,Vertex v) -> bool
Returns true if at least one of the edges incident to vertex v is constrained.
incident_constraints(...)
ct.incident_constraints(self,Vertex v) -> OutputItEdges
OutputItEdges is an iterator which enumrates the constrained edges incident to v
insert(...)
ct.insert(self,Point_2 p, Face f = Face()) -> Vertex
Inserts point p and restores the status (constrained or not) of all the touched edges. 
If present f is used as an hint for the location of p.
See also the insert of the base class
insert_constraint(...)
ct.insert_constraint(self,Point a, Point b) -> void
Inserts points a and b, and inserts segment ab as a constraint. 
Removes the faces crossed by segment ab and creates new faces instead. 
If a vertex c lies on segment ab, constraint ab is replaced by the two
constraints ac and cb. Apart from the insertion of a and b, the algorithm runs
in time proportionnal to the number of removed triangles.
Precondition: The relative interior of segment ab does not intersect the relative interior of another constrained edge.
 
ct.insert_constraint(self,Vertex va,Vertex vb) -> void
Inserts the line segment s whose endpoints are the vertices va and vb as a constrained edge e. 
The triangles intersected by s are removed and new ones are created.
is_constrained(...)
ct.is_constrained(self,Edge e) -> bool
Returns true if edge e is a constrained edge.
is_valid(...)
ct.is_valid(self,bool verbose = false, int level = 0) -> bool
Checks the validity of the triangulation and the consistency of the constrained marks in edges.
push_back(...)
ct.push_back(self,Point_2 p) -> Vertex
Equivalent to insert(p).
remove(...)
ct.remove(self,Vertex v) -> void
Removes a vertex v.
Precondition: Vertex v is not incident to a constrained edge.
remove_constrained_edge(...)
ct.remove_constrained_edge(self,Face f, int i) -> void
Make edge (f,i) no longer constrained.
remove_incident_constraints(...)
ct.remove_incident_constraints(self,Vertex v) -> void
Make the edges incident to vertex v unconstrained edges.

Data and other attributes defined here:
__instance_size__ = 96

Methods inherited from Triangulation_2:
circumcenter(...)
circumcenter(self,Face f,int i) -> Point_2 .
 
Compute the circumcenter of the face pointed to by f.
This function is available only if the correspoding function is provided in the geometric traits.
clear(...)
clear(self) 
Deletes all faces and finite vertices resulting in an empty triangulation.
compare_x(...)
compare_y(...)
degree(...)
dimension(...)
dimension(self) -> int
Returns the dimension of the convex hull
finite_vertex(...)
finite_vertex(self) -> Vertex
 
a vertex distinct from the infinite_vertex.
flip(...)
flip(slef,Face f, int i) -> void 
 
Exchanges the edge incident to f and f->neighbor(i) with the other diagonal of the quadrilateral formed by f and f->neighbor(i).
Precondition: The faces f and f->neighbor(i) are finite faces and their union form a convex quadrilateral.
incident_edges(...)
incident_edges(self,Vertex v) -> Edge_circulator
 
Starts at an arbitrary edge incident to v.
incident_edges(self,Vertex v,Face f) -> Edge_circulator
 
Starts at the the first edge of f incident to v, in counterclockwise order around v.
Precondition: Face f is incident to vertex v.
incident_faces(...)
incident_faces(self,Vertex v) -> Face_circulator
 
Starts at an arbitrary face incident to v.
incident_faces(self,Vertex v,Face f) -> Face_circulator
 
Starts at face f.
Precondition: Face f is incident to vertex v.
incident_vertices(...)
incident_vertices(self,Vertex v) -> Vertex_circulator
 
Starts at an arbitrary vertex incident to v.
incident_vertices(self,Vertex v,Face f) -> Vertex_circulator
 
Starts at the first vertex of f adjacent to v in counterclockwise order around v.
Precondition: Face f is incident to vertex v.
includes_edge(...)
infinite_face(...)
infinite_face(self) -> Face
 
a face incident to the infinite_vertex.
infinite_tester(...)
infinite_tester(self) -> Infinite_tester
infinite_vertex(...)
infinite_vertex(self) -> Vertex
 
the infinite_vertex.
insert_first(...)
insert_first(self,Point_2 p) -> Vertex.
 
Inserts the first finite vertex .
insert_in_edge(...)
insert_in_edge(self,Point_2 p,Face f,int i) -> Vertex.
 
Inserts vertex v in edge i of f.
Precondition: The point in vertex v lies on the edge opposite to the vertex i of face f.
insert_in_face(...)
insert_in_face(self,Point_2 p,Face f) -> Vertex.
 
Inserts vertex v in face f. Face f is modified, two new faces are created.
Precondition: The point in vertex v lies inside face f. .
insert_outside_affine_hull(...)
insert_outside_convex_hull(...)
insert_outside_convex_hull(self,Point_2 p,Face f) -> Vertex.
 
Inserts a point which is outside the convex hull but in the affine hull.
Precondition: The handle f points to a face which is a proof of the location ofp, see the description of the locate method above.
 
insert_outside_convex_hull(self,Point_2 p) -> Vertex.
 
Inserts a point which is outside the affine hull.
insert_second(...)
insert_second(self,Point_2 p) -> Vertex.
 
Inserts the second finite vertex .
is_edge(...)
is_edge(slef,Vertex va, Vertex vb) -> bool
 
true if there is an edge having va and vb as vertices.
 
is_edge (self, Vertex va,Vertex vb,Edge e) -> bool
 
as above. In addition, if true is returned, the edge with vertices va and vb is the edge e 
where l[0] is a face incident to e and on the right side of e oriented from va to vb.
is_face(...)
is_face(self,Vertex v1,Vertex v2,Vertex v3) -> bool 
 
true if there is a face having v1, v2 and v3 as vertices.
 
is_face(self,Vertex v1,Vertex v2,Vertex v3,Face fr) -> bool 
 
as above. In addition, if true is returned, fr is a  face with v1, v2 and v3 as vertices.
is_infinite(...)
is_infinite(self,Vertex v) -> bool
 
true iff v is the infinite_vertex.
 
is_infinite(self,Face f) ->bool
 
true iff face f is infinite.
 
is_infinite(self,Face f, int i) -> bool
 
true iff edge(f,i) is infinite.
 
is_infinite(self,Edge e) -> bool
 
true iff edge e is infinite.
line_walk(...)
t.line_walk( self,Point_2 p,Point_2 q) -> list of faces
This function returns a list that allows to visit the faces intersected by the line pq.
If there is no such face the list is empty.
t.line_walk( self,Point_2 p,Point_2 q, Face f) -> list of faces
The starting point of the list is the face f
Precondition: Points p and q must be different points.
Precondition: If f is given, it must point to a finite face and the point p must be inside or on the boundary of f.
locate(...)
locate(self,Point_2 query, Face f = Face()) -> Face
 
If the point query lies inside the convex hull of the points, a face that contains the query in its interior or on its boundary is returned.
If the point query lies outside the convex hull of the triangulation but in the affine hull, the returned face is an infinite face which is a proof of the point's location :
- for a two dimensional triangulation, it is a face ( , p, q) such that query lies to the left of the oriented line pq (the rest of the triangulation lying to the right of this line).
- for a degenerate one dimensional triangulation it is the (degenarate one dimensional) face ( , p, NULL) such that query and the triangulation lie on either side of p.
If the point query lies outside the affine hull, the returned Face is None.The optional Face argument, if provided, is used as a hint of where the locate process has to start its search.
 
locate(self,Point_2 query,list l) -> Face
 
Same as above. Additionally, the parameters lt = l[0] and li=l[1] describe where the query point is located. The variable lt is set to the locate type of the query.
If lt==VERTEX the variable li is set to the index of the vertex, and if lt==EDGE li is set to the index of the vertex opposite to the edge. Be careful that li has no meaning when the query type is FACE,
OUTSIDE_CONVEX_HULL, or OUTSIDE_AFFINE_HULL or when the triangulation is 0-dimensional.
mirror_vertex(...)
number_of_faces(...)
number_of_faces(self) -> int
 
Returns the number of finite faces.
number_of_vertices(...)
number_of_vertices(self) -> int 
Returns the number of finite vertices.
oriented_side(...)
remove_degree_3(...)
remove_first(...)
remove_first(self,Vertex v) -> void.
 
Removes the last finite vertex.
remove_second(...)
remove_second(self,Vertex v) -> void.
 
Removes the before last finite vertex.
segment(...)
segment(self,Face f,int i) -> Segment_2 .
 
Returns the line segment formed by the vertices ccw(i) and cw(i) of face f.
Precondition: 0 <= i <= 2. The vertices ccw(i) and cw(i) of f are finite.
 
segment(self,Edge e) -> Segment_2 .
 
Returns the line segment corresponding to edge e.
Precondition: e is a finite edge
set_infinite_vertex(...)
side_of_oriented_circle(...)
side_of_oriented_circle(self, Face f, Point_2 p) -> Oriented_side
 
Returns on which side of the circumcircle of face f lies the point p.
The circle is assumed to be counterclockwisely oriented, so its positive side correspond to its bounded side.
This predicate is available only if the corresponding predicates on points is provided in the geometric traits class.
swap(...)
swap (self,Triangulation_2)
t.swap(tr) 
The triangulations tr and t are swapped. t.swap(tr) should be preferred to t = tr or to t(tr).
triangle(...)
triangle(self,Face f) -> Triangle_2 .
 
Returns the triangle formed by the three vertices of f.
Precondition: The face is finite.
xy_equal(...)

Static methods inherited from Triangulation_2:
ccw(...)
ccw(self,int i) -> Returns i+1 modulo 3. Precondition: 0 <= i <= 2.
cw(...)
cw(self,int i) -> Returns i+2 modulo 3. Precondition: 0 <= i <= 2.

Properties inherited from Triangulation_2:
all_edges
get = (...)
all_faces
get = (...)
all_vertices
get = (...)
edges
get = (...)
faces
get = (...)
points
get = (...)
vertices
get = (...)

Data and other attributes inherited from Triangulation_2:
Locate_type = <class 'CGAL.CGAL.Triangulations_2.Locate_type'>

Data and other attributes inherited from Boost.Python.instance:
__dict__ = <dictproxy object>
__new__ = <built-in method __new__ of Boost.Python.class object>
T.__new__(S, ...) -> a new object with type S, a subtype of T
__weakref__ = <member '__weakref__' of 'Boost.Python.instance' objects>

 
class Constrained_triangulation_plus_2(Constrained_triangulation_2)
    The class Constrained_triangulation_plus_2 implements a constrained triangulation
with an additional data structure called the constraint hierarchy that keeps 
track of the input constraints and of their refinement in the triangulation.
See a complete C++ documentation at:
http://www.cgal.org/Manual/3.2/doc_html/cgal_manual/Triangulation_2_ref/Class_Constrained_triangulation_plus_2.html
 
 
Method resolution order:
Constrained_triangulation_plus_2
Constrained_triangulation_2
Triangulation_2
Boost.Python.instance
__builtin__.object

Methods defined here:
__init__(...)
ctp = Constrained_triangulation_plus_2()
Introduces an empty triangulation.
context(...)
ctp.context ( Vertex va, Vertex vb) -> Context
Returns the Context relative to one of the constraint enclosing the subconstraint (va,vb).
Precondition: va and vb refer to the vertices of a constrained edge of the triangulation.
contexts(...)
ctp.contexts ( Vertex va, Vertex vb) -> Context_iterator
Returns an iterator of Contexts corresponding to the constraints enclosing the (va,vb).
Precondition: va and vb refer to the vertices of a constrained edge of the triangulation.
insert(...)
ctp.insert ( Point_2 p,Face start = Face()) -> Vertex
Inserts point p as a vertex of the triangulation.
 
ctp.insert ( list l) -> Inserts a list of points
insert_constraint(...)
ctp.insert_constraint ( Point_2 a, Point_2 b) -> void
Inserts the constraint segment ab in the triangulation.
 
ctp.insert_constraint ( Vertex va, Vertex vb) -> void
Inserts a constraint whose endpoints are the vertices pointed by va and vb in the triangulation.
number_of_constraints(...)
ctp.number_of_constraints ( ) -> int
number_of_enclosing_constraints(...)
ctp.remove_constraint ( Vertex va,Vertex vb) -> int
Removes the constraint joining the vertices pointed by va and vb.
Precondition: va and vb have to refer to the endpoint vertices of an input constraint.
number_of_subconstraints(...)
ctp.number_of_subconstraints ( ) -> int
push_back(...)
ctp.push_back ( Point_2 p) -> Vertex
Equivalent to insert(p).
 
ctp.push_back ( Constraint c) -> void
Inserts the constraint c.
remove_constraint(...)
ctp.remove_constraint ( Vertex va,Vertex vb) -> void
Removes the constraint joining the vertices pointed by va and vb.
Precondition: va and vb have to refer to the endpoint vertices of an input constraint.
vertices_in_constraint(...)

Properties defined here:
constraints
get = (...)
subconstraints
get = (...)

Data and other attributes defined here:
__instance_size__ = 168

Methods inherited from Constrained_triangulation_2:
are_there_incident_constraints(...)
ct.are_there_incident_constraints(self,Vertex v) -> bool
Returns true if at least one of the edges incident to vertex v is constrained.
incident_constraints(...)
ct.incident_constraints(self,Vertex v) -> OutputItEdges
OutputItEdges is an iterator which enumrates the constrained edges incident to v
is_constrained(...)
ct.is_constrained(self,Edge e) -> bool
Returns true if edge e is a constrained edge.
is_valid(...)
ct.is_valid(self,bool verbose = false, int level = 0) -> bool
Checks the validity of the triangulation and the consistency of the constrained marks in edges.
remove(...)
ct.remove(self,Vertex v) -> void
Removes a vertex v.
Precondition: Vertex v is not incident to a constrained edge.
remove_constrained_edge(...)
ct.remove_constrained_edge(self,Face f, int i) -> void
Make edge (f,i) no longer constrained.
remove_incident_constraints(...)
ct.remove_incident_constraints(self,Vertex v) -> void
Make the edges incident to vertex v unconstrained edges.

Methods inherited from Triangulation_2:
circumcenter(...)
circumcenter(self,Face f,int i) -> Point_2 .
 
Compute the circumcenter of the face pointed to by f.
This function is available only if the correspoding function is provided in the geometric traits.
clear(...)
clear(self) 
Deletes all faces and finite vertices resulting in an empty triangulation.
compare_x(...)
compare_y(...)
degree(...)
dimension(...)
dimension(self) -> int
Returns the dimension of the convex hull
finite_vertex(...)
finite_vertex(self) -> Vertex
 
a vertex distinct from the infinite_vertex.
flip(...)
flip(slef,Face f, int i) -> void 
 
Exchanges the edge incident to f and f->neighbor(i) with the other diagonal of the quadrilateral formed by f and f->neighbor(i).
Precondition: The faces f and f->neighbor(i) are finite faces and their union form a convex quadrilateral.
incident_edges(...)
incident_edges(self,Vertex v) -> Edge_circulator
 
Starts at an arbitrary edge incident to v.
incident_edges(self,Vertex v,Face f) -> Edge_circulator
 
Starts at the the first edge of f incident to v, in counterclockwise order around v.
Precondition: Face f is incident to vertex v.
incident_faces(...)
incident_faces(self,Vertex v) -> Face_circulator
 
Starts at an arbitrary face incident to v.
incident_faces(self,Vertex v,Face f) -> Face_circulator
 
Starts at face f.
Precondition: Face f is incident to vertex v.
incident_vertices(...)
incident_vertices(self,Vertex v) -> Vertex_circulator
 
Starts at an arbitrary vertex incident to v.
incident_vertices(self,Vertex v,Face f) -> Vertex_circulator
 
Starts at the first vertex of f adjacent to v in counterclockwise order around v.
Precondition: Face f is incident to vertex v.
includes_edge(...)
infinite_face(...)
infinite_face(self) -> Face
 
a face incident to the infinite_vertex.
infinite_tester(...)
infinite_tester(self) -> Infinite_tester
infinite_vertex(...)
infinite_vertex(self) -> Vertex
 
the infinite_vertex.
insert_first(...)
insert_first(self,Point_2 p) -> Vertex.
 
Inserts the first finite vertex .
insert_in_edge(...)
insert_in_edge(self,Point_2 p,Face f,int i) -> Vertex.
 
Inserts vertex v in edge i of f.
Precondition: The point in vertex v lies on the edge opposite to the vertex i of face f.
insert_in_face(...)
insert_in_face(self,Point_2 p,Face f) -> Vertex.
 
Inserts vertex v in face f. Face f is modified, two new faces are created.
Precondition: The point in vertex v lies inside face f. .
insert_outside_affine_hull(...)
insert_outside_convex_hull(...)
insert_outside_convex_hull(self,Point_2 p,Face f) -> Vertex.
 
Inserts a point which is outside the convex hull but in the affine hull.
Precondition: The handle f points to a face which is a proof of the location ofp, see the description of the locate method above.
 
insert_outside_convex_hull(self,Point_2 p) -> Vertex.
 
Inserts a point which is outside the affine hull.
insert_second(...)
insert_second(self,Point_2 p) -> Vertex.
 
Inserts the second finite vertex .
is_edge(...)
is_edge(slef,Vertex va, Vertex vb) -> bool
 
true if there is an edge having va and vb as vertices.
 
is_edge (self, Vertex va,Vertex vb,Edge e) -> bool
 
as above. In addition, if true is returned, the edge with vertices va and vb is the edge e 
where l[0] is a face incident to e and on the right side of e oriented from va to vb.
is_face(...)
is_face(self,Vertex v1,Vertex v2,Vertex v3) -> bool 
 
true if there is a face having v1, v2 and v3 as vertices.
 
is_face(self,Vertex v1,Vertex v2,Vertex v3,Face fr) -> bool 
 
as above. In addition, if true is returned, fr is a  face with v1, v2 and v3 as vertices.
is_infinite(...)
is_infinite(self,Vertex v) -> bool
 
true iff v is the infinite_vertex.
 
is_infinite(self,Face f) ->bool
 
true iff face f is infinite.
 
is_infinite(self,Face f, int i) -> bool
 
true iff edge(f,i) is infinite.
 
is_infinite(self,Edge e) -> bool
 
true iff edge e is infinite.
line_walk(...)
t.line_walk( self,Point_2 p,Point_2 q) -> list of faces
This function returns a list that allows to visit the faces intersected by the line pq.
If there is no such face the list is empty.
t.line_walk( self,Point_2 p,Point_2 q, Face f) -> list of faces
The starting point of the list is the face f
Precondition: Points p and q must be different points.
Precondition: If f is given, it must point to a finite face and the point p must be inside or on the boundary of f.
locate(...)
locate(self,Point_2 query, Face f = Face()) -> Face
 
If the point query lies inside the convex hull of the points, a face that contains the query in its interior or on its boundary is returned.
If the point query lies outside the convex hull of the triangulation but in the affine hull, the returned face is an infinite face which is a proof of the point's location :
- for a two dimensional triangulation, it is a face ( , p, q) such that query lies to the left of the oriented line pq (the rest of the triangulation lying to the right of this line).
- for a degenerate one dimensional triangulation it is the (degenarate one dimensional) face ( , p, NULL) such that query and the triangulation lie on either side of p.
If the point query lies outside the affine hull, the returned Face is None.The optional Face argument, if provided, is used as a hint of where the locate process has to start its search.
 
locate(self,Point_2 query,list l) -> Face
 
Same as above. Additionally, the parameters lt = l[0] and li=l[1] describe where the query point is located. The variable lt is set to the locate type of the query.
If lt==VERTEX the variable li is set to the index of the vertex, and if lt==EDGE li is set to the index of the vertex opposite to the edge. Be careful that li has no meaning when the query type is FACE,
OUTSIDE_CONVEX_HULL, or OUTSIDE_AFFINE_HULL or when the triangulation is 0-dimensional.
mirror_vertex(...)
number_of_faces(...)
number_of_faces(self) -> int
 
Returns the number of finite faces.
number_of_vertices(...)
number_of_vertices(self) -> int 
Returns the number of finite vertices.
oriented_side(...)
remove_degree_3(...)
remove_first(...)
remove_first(self,Vertex v) -> void.
 
Removes the last finite vertex.
remove_second(...)
remove_second(self,Vertex v) -> void.
 
Removes the before last finite vertex.
segment(...)
segment(self,Face f,int i) -> Segment_2 .
 
Returns the line segment formed by the vertices ccw(i) and cw(i) of face f.
Precondition: 0 <= i <= 2. The vertices ccw(i) and cw(i) of f are finite.
 
segment(self,Edge e) -> Segment_2 .
 
Returns the line segment corresponding to edge e.
Precondition: e is a finite edge
set_infinite_vertex(...)
side_of_oriented_circle(...)
side_of_oriented_circle(self, Face f, Point_2 p) -> Oriented_side
 
Returns on which side of the circumcircle of face f lies the point p.
The circle is assumed to be counterclockwisely oriented, so its positive side correspond to its bounded side.
This predicate is available only if the corresponding predicates on points is provided in the geometric traits class.
swap(...)
swap (self,Triangulation_2)
t.swap(tr) 
The triangulations tr and t are swapped. t.swap(tr) should be preferred to t = tr or to t(tr).
triangle(...)
triangle(self,Face f) -> Triangle_2 .
 
Returns the triangle formed by the three vertices of f.
Precondition: The face is finite.
xy_equal(...)

Static methods inherited from Triangulation_2:
ccw(...)
ccw(self,int i) -> Returns i+1 modulo 3. Precondition: 0 <= i <= 2.
cw(...)
cw(self,int i) -> Returns i+2 modulo 3. Precondition: 0 <= i <= 2.

Properties inherited from Triangulation_2:
all_edges
get = (...)
all_faces
get = (...)
all_vertices
get = (...)
edges
get = (...)
faces
get = (...)
points
get = (...)
vertices
get = (...)

Data and other attributes inherited from Triangulation_2:
Locate_type = <class 'CGAL.CGAL.Triangulations_2.Locate_type'>

Data and other attributes inherited from Boost.Python.instance:
__dict__ = <dictproxy object>
__new__ = <built-in method __new__ of Boost.Python.class object>
T.__new__(S, ...) -> a new object with type S, a subtype of T
__weakref__ = <member '__weakref__' of 'Boost.Python.instance' objects>

 
class Constraint(Boost.Python.instance)
    Is a pair of two Point_2
 
 
Method resolution order:
Constraint
Boost.Python.instance
__builtin__.object

Methods defined here:
__eq__(...)
__init__(...)
c = Constraint(Point_2 p,Point_2 q)
Introduces a Constraint pq.
__lt__(...)
__ne__(...)
first(...)
c.first(self) -> Point_2
second(...)
c.second(self) -> Point_2

Data and other attributes defined here:
__instance_size__ = 40

Data and other attributes inherited from Boost.Python.instance:
__dict__ = <dictproxy object>
__new__ = <built-in method __new__ of Boost.Python.class object>
T.__new__(S, ...) -> a new object with type S, a subtype of T
__weakref__ = <member '__weakref__' of 'Boost.Python.instance' objects>

 
class Constraint_iterator(Boost.Python.instance)
    iterator over Constraints
 
 
Method resolution order:
Constraint_iterator
Boost.Python.instance
__builtin__.object

Methods defined here:
__iter__(...)
__len__(...)
next(...)

Data and other attributes defined here:
__init__ = <built-in function __init__>
Raises an exception
This class cannot be instantiated from Python

Data and other attributes inherited from Boost.Python.instance:
__dict__ = <dictproxy object>
__new__ = <built-in method __new__ of Boost.Python.class object>
T.__new__(S, ...) -> a new object with type S, a subtype of T
__weakref__ = <member '__weakref__' of 'Boost.Python.instance' objects>

 
class Context(Boost.Python.instance)
    This type is intended to describe a constraint enclosing a subconstraint and the position 
of the subconstraint in this constraint.
 
 
Method resolution order:
Context
Boost.Python.instance
__builtin__.object

Methods defined here:
__init__(...)
number_of_vertices(...)

Properties defined here:
vertices
get = (...)

Data and other attributes defined here:
__instance_size__ = 16

Data and other attributes inherited from Boost.Python.instance:
__dict__ = <dictproxy object>
__new__ = <built-in method __new__ of Boost.Python.class object>
T.__new__(S, ...) -> a new object with type S, a subtype of T
__weakref__ = <member '__weakref__' of 'Boost.Python.instance' objects>

 
class Context_iterator(Boost.Python.instance)
    iterator over Contexts
 
 
Method resolution order:
Context_iterator
Boost.Python.instance
__builtin__.object

Methods defined here:
__iter__(...)
__len__(...)
next(...)

Data and other attributes defined here:
__init__ = <built-in function __init__>
Raises an exception
This class cannot be instantiated from Python

Data and other attributes inherited from Boost.Python.instance:
__dict__ = <dictproxy object>
__new__ = <built-in method __new__ of Boost.Python.class object>
T.__new__(S, ...) -> a new object with type S, a subtype of T
__weakref__ = <member '__weakref__' of 'Boost.Python.instance' objects>

 
class Delaunay_triangulation_2(Triangulation_2)
    The class Delaunay_triangulation_2 is designed to represent the Delaunay triangulation of a set of points in a plane.
A Delaunay triangulation of a set of points is a triangulation of the sets of points that fulfills
the following empty circle property (also called Delaunay property): the circumscribing circle of any facet of the
triangulation contains no point of the set in its interior. 
For a point set with no case of cocircularity of more than three points, the Delaunay triangulation is unique, 
it is the dual of the Voronoi diagram of the points.
 
http://www.cgal.org/Manual/3.2/doc_html/cgal_manual/Triangulation_2_ref/Class_Delaunay_triangulation_2.html
 
 
Method resolution order:
Delaunay_triangulation_2
Triangulation_2
Boost.Python.instance
__builtin__.object

Methods defined here:
__init__(...)
dual(...)
dual(self, Face f) ->Point_2.
 
 Returns the center of the circle circumscribed to face f.
Precondition: f is not infinite.
 
dual(self,Edge e) ->returns a segment, a ray or a line supported by the bisector of the endpoints of e.
If faces incident to e are both finite, a segment whose endpoints are the duals of each incident face is returned. 
If only one incident face is finite, a ray whose endpoint is the dual of the finite incident face is returned.
Otherwise both incident faces are infinite and the bisector line is returned.
get_boundary_of_conflicts(...)
get_conflicts(...)
insert(...)
insert(self,Point_2 p,  Face f =  Face()) -> Vertex
 
Inserts point p in the triangulation and returns the corresponding vertex.
If point p coincides with an already existing vertex, this vertex is returned and the triangulation remains unchanged.
If point p is on an edge, the two incident faces are split in two.
If point p is strictly inside a face of the triangulation, the face is split in three.
If point p is strictly outside the convex hull, p is linked to all visible points on the convex hull to form the new triangulation.
At last, if p is outside the affine hull(in case of degenerate 1-dimensional or 0-dimensional triangulations),
p is linked all the other vertices to form a triangulation whose dimension is increased by one.
The last argument f is an indication to the underlying locate algorithm of where to start.
 
insert(self,Point_2 p,Locate_type lt, Face loc,int li) ->  Vertex.
 
Same as above except that the location of the point p to be inserted is assumed to be given by (lt,loc,i) 
 
insert(self,[p_1,...,p_n]) insert a list of Point_2.
is_valid(...)
nearest_vertex(...)
push_back(...)
push_back(self, Point_2 p) Equivalent to insert(p).
remove(...)
remove(self, Vertex v) -> void
 
Removes the vertex from the triangulation. The created hole is retriangulated.
Precondition: Vertex v must be finite.
side_of_oriented_circle(...)
t.side_of_oriented_circle(self, Face, Point_2) -> Oriented_side
Returns on which side of the circumcircle of face f lies the point p.
The circle is assumed to be counterclockwisely oriented, so its positive
side correspond to its bounded side. This predicate is available only if the
corresponding predicates on points is provided in the geometric traits class.

Data and other attributes defined here:
__instance_size__ = 92

Methods inherited from Triangulation_2:
circumcenter(...)
circumcenter(self,Face f,int i) -> Point_2 .
 
Compute the circumcenter of the face pointed to by f.
This function is available only if the correspoding function is provided in the geometric traits.
clear(...)
clear(self) 
Deletes all faces and finite vertices resulting in an empty triangulation.
compare_x(...)
compare_y(...)
degree(...)
dimension(...)
dimension(self) -> int
Returns the dimension of the convex hull
finite_vertex(...)
finite_vertex(self) -> Vertex
 
a vertex distinct from the infinite_vertex.
flip(...)
flip(slef,Face f, int i) -> void 
 
Exchanges the edge incident to f and f->neighbor(i) with the other diagonal of the quadrilateral formed by f and f->neighbor(i).
Precondition: The faces f and f->neighbor(i) are finite faces and their union form a convex quadrilateral.
incident_edges(...)
incident_edges(self,Vertex v) -> Edge_circulator
 
Starts at an arbitrary edge incident to v.
incident_edges(self,Vertex v,Face f) -> Edge_circulator
 
Starts at the the first edge of f incident to v, in counterclockwise order around v.
Precondition: Face f is incident to vertex v.
incident_faces(...)
incident_faces(self,Vertex v) -> Face_circulator
 
Starts at an arbitrary face incident to v.
incident_faces(self,Vertex v,Face f) -> Face_circulator
 
Starts at face f.
Precondition: Face f is incident to vertex v.
incident_vertices(...)
incident_vertices(self,Vertex v) -> Vertex_circulator
 
Starts at an arbitrary vertex incident to v.
incident_vertices(self,Vertex v,Face f) -> Vertex_circulator
 
Starts at the first vertex of f adjacent to v in counterclockwise order around v.
Precondition: Face f is incident to vertex v.
includes_edge(...)
infinite_face(...)
infinite_face(self) -> Face
 
a face incident to the infinite_vertex.
infinite_tester(...)
infinite_tester(self) -> Infinite_tester
infinite_vertex(...)
infinite_vertex(self) -> Vertex
 
the infinite_vertex.
insert_first(...)
insert_first(self,Point_2 p) -> Vertex.
 
Inserts the first finite vertex .
insert_in_edge(...)
insert_in_edge(self,Point_2 p,Face f,int i) -> Vertex.
 
Inserts vertex v in edge i of f.
Precondition: The point in vertex v lies on the edge opposite to the vertex i of face f.
insert_in_face(...)
insert_in_face(self,Point_2 p,Face f) -> Vertex.
 
Inserts vertex v in face f. Face f is modified, two new faces are created.
Precondition: The point in vertex v lies inside face f. .
insert_outside_affine_hull(...)
insert_outside_convex_hull(...)
insert_outside_convex_hull(self,Point_2 p,Face f) -> Vertex.
 
Inserts a point which is outside the convex hull but in the affine hull.
Precondition: The handle f points to a face which is a proof of the location ofp, see the description of the locate method above.
 
insert_outside_convex_hull(self,Point_2 p) -> Vertex.
 
Inserts a point which is outside the affine hull.
insert_second(...)
insert_second(self,Point_2 p) -> Vertex.
 
Inserts the second finite vertex .
is_edge(...)
is_edge(slef,Vertex va, Vertex vb) -> bool
 
true if there is an edge having va and vb as vertices.
 
is_edge (self, Vertex va,Vertex vb,Edge e) -> bool
 
as above. In addition, if true is returned, the edge with vertices va and vb is the edge e 
where l[0] is a face incident to e and on the right side of e oriented from va to vb.
is_face(...)
is_face(self,Vertex v1,Vertex v2,Vertex v3) -> bool 
 
true if there is a face having v1, v2 and v3 as vertices.
 
is_face(self,Vertex v1,Vertex v2,Vertex v3,Face fr) -> bool 
 
as above. In addition, if true is returned, fr is a  face with v1, v2 and v3 as vertices.
is_infinite(...)
is_infinite(self,Vertex v) -> bool
 
true iff v is the infinite_vertex.
 
is_infinite(self,Face f) ->bool
 
true iff face f is infinite.
 
is_infinite(self,Face f, int i) -> bool
 
true iff edge(f,i) is infinite.
 
is_infinite(self,Edge e) -> bool
 
true iff edge e is infinite.
line_walk(...)
t.line_walk( self,Point_2 p,Point_2 q) -> list of faces
This function returns a list that allows to visit the faces intersected by the line pq.
If there is no such face the list is empty.
t.line_walk( self,Point_2 p,Point_2 q, Face f) -> list of faces
The starting point of the list is the face f
Precondition: Points p and q must be different points.
Precondition: If f is given, it must point to a finite face and the point p must be inside or on the boundary of f.
locate(...)
locate(self,Point_2 query, Face f = Face()) -> Face
 
If the point query lies inside the convex hull of the points, a face that contains the query in its interior or on its boundary is returned.
If the point query lies outside the convex hull of the triangulation but in the affine hull, the returned face is an infinite face which is a proof of the point's location :
- for a two dimensional triangulation, it is a face ( , p, q) such that query lies to the left of the oriented line pq (the rest of the triangulation lying to the right of this line).
- for a degenerate one dimensional triangulation it is the (degenarate one dimensional) face ( , p, NULL) such that query and the triangulation lie on either side of p.
If the point query lies outside the affine hull, the returned Face is None.The optional Face argument, if provided, is used as a hint of where the locate process has to start its search.
 
locate(self,Point_2 query,list l) -> Face
 
Same as above. Additionally, the parameters lt = l[0] and li=l[1] describe where the query point is located. The variable lt is set to the locate type of the query.
If lt==VERTEX the variable li is set to the index of the vertex, and if lt==EDGE li is set to the index of the vertex opposite to the edge. Be careful that li has no meaning when the query type is FACE,
OUTSIDE_CONVEX_HULL, or OUTSIDE_AFFINE_HULL or when the triangulation is 0-dimensional.
mirror_vertex(...)
number_of_faces(...)
number_of_faces(self) -> int
 
Returns the number of finite faces.
number_of_vertices(...)
number_of_vertices(self) -> int 
Returns the number of finite vertices.
oriented_side(...)
remove_degree_3(...)
remove_first(...)
remove_first(self,Vertex v) -> void.
 
Removes the last finite vertex.
remove_second(...)
remove_second(self,Vertex v) -> void.
 
Removes the before last finite vertex.
segment(...)
segment(self,Face f,int i) -> Segment_2 .
 
Returns the line segment formed by the vertices ccw(i) and cw(i) of face f.
Precondition: 0 <= i <= 2. The vertices ccw(i) and cw(i) of f are finite.
 
segment(self,Edge e) -> Segment_2 .
 
Returns the line segment corresponding to edge e.
Precondition: e is a finite edge
set_infinite_vertex(...)
swap(...)
swap (self,Triangulation_2)
t.swap(tr) 
The triangulations tr and t are swapped. t.swap(tr) should be preferred to t = tr or to t(tr).
triangle(...)
triangle(self,Face f) -> Triangle_2 .
 
Returns the triangle formed by the three vertices of f.
Precondition: The face is finite.
xy_equal(...)

Static methods inherited from Triangulation_2:
ccw(...)
ccw(self,int i) -> Returns i+1 modulo 3. Precondition: 0 <= i <= 2.
cw(...)
cw(self,int i) -> Returns i+2 modulo 3. Precondition: 0 <= i <= 2.

Properties inherited from Triangulation_2:
all_edges
get = (...)
all_faces
get = (...)
all_vertices
get = (...)
edges
get = (...)
faces
get = (...)
points
get = (...)
vertices
get = (...)

Data and other attributes inherited from Triangulation_2:
Locate_type = <class 'CGAL.CGAL.Triangulations_2.Locate_type'>

Data and other attributes inherited from Boost.Python.instance:
__dict__ = <dictproxy object>
__new__ = <built-in method __new__ of Boost.Python.class object>
T.__new__(S, ...) -> a new object with type S, a subtype of T
__weakref__ = <member '__weakref__' of 'Boost.Python.instance' objects>

 
class Edge(Boost.Python.instance)
    Is a pair of Face and the index of its incident vertex
 
 
Method resolution order:
Edge
Boost.Python.instance
__builtin__.object

Methods defined here:
__eq__(...)
__init__(...)
e = Edge(Face f,int i)
Introduces an edge(f,i)
__lt__(...)
__ne__(...)
face(...)
e.face(self) -> Face
vertex(...)
e.vertex(self) -> int

Data and other attributes defined here:
__instance_size__ = 16

Data and other attributes inherited from Boost.Python.instance:
__dict__ = <dictproxy object>
__new__ = <built-in method __new__ of Boost.Python.class object>
T.__new__(S, ...) -> a new object with type S, a subtype of T
__weakref__ = <member '__weakref__' of 'Boost.Python.instance' objects>

 
class Edge_circulator(Boost.Python.instance)
    is an iterator over edges but without a stop iteration
 
 
Method resolution order:
Edge_circulator
Boost.Python.instance
__builtin__.object

Methods defined here:
__iter__(...)
next(...)

Data and other attributes defined here:
__init__ = <built-in function __init__>
Raises an exception
This class cannot be instantiated from Python

Data and other attributes inherited from Boost.Python.instance:
__dict__ = <dictproxy object>
__new__ = <built-in method __new__ of Boost.Python.class object>
T.__new__(S, ...) -> a new object with type S, a subtype of T
__weakref__ = <member '__weakref__' of 'Boost.Python.instance' objects>

 
class Edge_iterator(Boost.Python.instance)
    iterator over edges
 
 
Method resolution order:
Edge_iterator
Boost.Python.instance
__builtin__.object

Methods defined here:
__iter__(...)
__len__(...)
next(...)

Data and other attributes defined here:
__init__ = <built-in function __init__>
Raises an exception
This class cannot be instantiated from Python

Data and other attributes inherited from Boost.Python.instance:
__dict__ = <dictproxy object>
__new__ = <built-in method __new__ of Boost.Python.class object>
T.__new__(S, ...) -> a new object with type S, a subtype of T
__weakref__ = <member '__weakref__' of 'Boost.Python.instance' objects>

 
class Face(Boost.Python.instance)
    Handles are widely used in cgal to allow access to vertices, faces and cells
Face class correponds to cgal's C++ Face_handle concept.
So it's not used directly, but related to the Trinagulations
 
 
Method resolution order:
Face
Boost.Python.instance
__builtin__.object

Methods defined here:
__eq__(...)
__init__(...)
__lt__(...)
__ne__(...)
ccw(...)
ccw_permute(...)
f.ccw_permute(self) -> preforms a counterclockwise permutation of the vertices and neighbors of f.
cw(...)
cw_permute(...)
f.cw_permute(self) -> preforms a clockwise permutation of the vertices and neighbors of f.
dimension(...)
f.dimension(self) -> int
returns the dimension.
has_neighbor(...)
f.has_neighbor (self,Face n) -> bool
returns true if n is a neighbor of f.
has_vertex(...)
f.has_vertex(self,Vertex v) -> bool
 
returns true if v is a vertex of f .
index(...)
f.index(self,Vertex v) -> int
returns the index of v in f .
 
f.index(self,Face v) -> int
returns the index of neighbor n in f.
is_constrained(...)
f.is_constrained(self,i) -> bool
tests if the Edge(f,i) is constrained
mirror_index(...)
mirror_vertex(...)
neighbor(...)
f.neighbor(self,int i) -> Face
returns the neighbor i of f .
Precondition: 0 <= i <= 2
reorient(...)
f.reorient(self) -> Changes the orientation of f by exchanging vertex(0) with vertex(1) and neighbor(0) with neighbor(1).
set_neighbor(...)
f.set_neighbor(self ,int i, Face n) -> sets neighbors i to n.
Precondition: 0 <= i <= 2.
set_neighbors(...)
f.set_neighbors(self) -> sets the neighbors to Face()
f.set_neighbors(self ,Face n0,Face n1,Face n2) -> sets the neighbors
set_vertex(...)
f.set_vertex(self ,int i, Vertex v) -> sets vertex i to v.
Precondition: 0 <= i <= 2.
set_vertices(...)
f.set_vertices(self) -> void
sets the vertices to Vertex_handle().
f.set_vertices (self, Vertex v0,Vertex v1,Vertex v2) -> void
sets the vertices.
vertex(...)
f.vertex(self ,int i) -> Vertex
 
returns the vertex i of f .
Precondition: 0 <= i <= 2.

Data and other attributes defined here:
__instance_size__ = 12

Data and other attributes inherited from Boost.Python.instance:
__dict__ = <dictproxy object>
__new__ = <built-in method __new__ of Boost.Python.class object>
T.__new__(S, ...) -> a new object with type S, a subtype of T
__weakref__ = <member '__weakref__' of 'Boost.Python.instance' objects>

 
class Face_circulator(Boost.Python.instance)
    is an iterator over faces but without a stop iteration
 
 
Method resolution order:
Face_circulator
Boost.Python.instance
__builtin__.object

Methods defined here:
__iter__(...)
next(...)

Data and other attributes defined here:
__init__ = <built-in function __init__>
Raises an exception
This class cannot be instantiated from Python

Data and other attributes inherited from Boost.Python.instance:
__dict__ = <dictproxy object>
__new__ = <built-in method __new__ of Boost.Python.class object>
T.__new__(S, ...) -> a new object with type S, a subtype of T
__weakref__ = <member '__weakref__' of 'Boost.Python.instance' objects>

 
class Face_iterator(Boost.Python.instance)
    iterator over finite faces of the triangulation.
 
 
Method resolution order:
Face_iterator
Boost.Python.instance
__builtin__.object

Methods defined here:
__iter__(...)
__len__(...)
next(...)

Data and other attributes defined here:
__init__ = <built-in function __init__>
Raises an exception
This class cannot be instantiated from Python

Data and other attributes inherited from Boost.Python.instance:
__dict__ = <dictproxy object>
__new__ = <built-in method __new__ of Boost.Python.class object>
T.__new__(S, ...) -> a new object with type S, a subtype of T
__weakref__ = <member '__weakref__' of 'Boost.Python.instance' objects>

 
class Point_iterator(Boost.Python.instance)
    iterator over the points corresponding the finite vertices of the triangulation.
 
 
Method resolution order:
Point_iterator
Boost.Python.instance
__builtin__.object

Methods defined here:
__iter__(...)
__len__(...)
next(...)

Data and other attributes defined here:
__init__ = <built-in function __init__>
Raises an exception
This class cannot be instantiated from Python

Data and other attributes inherited from Boost.Python.instance:
__dict__ = <dictproxy object>
__new__ = <built-in method __new__ of Boost.Python.class object>
T.__new__(S, ...) -> a new object with type S, a subtype of T
__weakref__ = <member '__weakref__' of 'Boost.Python.instance' objects>

 
class Subconstraint_iterator(Boost.Python.instance)
    iterator over Subconstraints
 
 
Method resolution order:
Subconstraint_iterator
Boost.Python.instance
__builtin__.object

Methods defined here:
__iter__(...)
__len__(...)
next(...)

Data and other attributes defined here:
__init__ = <built-in function __init__>
Raises an exception
This class cannot be instantiated from Python

Data and other attributes inherited from Boost.Python.instance:
__dict__ = <dictproxy object>
__new__ = <built-in method __new__ of Boost.Python.class object>
T.__new__(S, ...) -> a new object with type S, a subtype of T
__weakref__ = <member '__weakref__' of 'Boost.Python.instance' objects>

 
class Triangulation_2(Boost.Python.instance)
    The class Triangulation_2 is the basic class designed to handle triangulations of set of points  A in the plane.
Such a triangulation has vertices at the points of A and its domain covers the convex hull of A.
It can be viewed as a planar partition of the plane whoses bounded faces are triangular and cover the convex hull of A.
The single unbounded face of this partition is the complementary of the convex hull of A.
Complete C++ documentation is available at:
http://www.cgal.org/Manual/3.2/doc_html/cgal_manual/Triangulation_2_ref/Class_Triangulation_2.html
 
 
Method resolution order:
Triangulation_2
Boost.Python.instance
__builtin__.object

Methods defined here:
__init__(...)
t = Triangulation_2() Introduces an empty triangulation t.
t = Triangulation_2(Triangulation_2 tr)
circumcenter(...)
circumcenter(self,Face f,int i) -> Point_2 .
 
Compute the circumcenter of the face pointed to by f.
This function is available only if the correspoding function is provided in the geometric traits.
clear(...)
clear(self) 
Deletes all faces and finite vertices resulting in an empty triangulation.
compare_x(...)
compare_y(...)
degree(...)
dimension(...)
dimension(self) -> int
Returns the dimension of the convex hull
finite_vertex(...)
finite_vertex(self) -> Vertex
 
a vertex distinct from the infinite_vertex.
flip(...)
flip(slef,Face f, int i) -> void 
 
Exchanges the edge incident to f and f->neighbor(i) with the other diagonal of the quadrilateral formed by f and f->neighbor(i).
Precondition: The faces f and f->neighbor(i) are finite faces and their union form a convex quadrilateral.
incident_edges(...)
incident_edges(self,Vertex v) -> Edge_circulator
 
Starts at an arbitrary edge incident to v.
incident_edges(self,Vertex v,Face f) -> Edge_circulator
 
Starts at the the first edge of f incident to v, in counterclockwise order around v.
Precondition: Face f is incident to vertex v.
incident_faces(...)
incident_faces(self,Vertex v) -> Face_circulator
 
Starts at an arbitrary face incident to v.
incident_faces(self,Vertex v,Face f) -> Face_circulator
 
Starts at face f.
Precondition: Face f is incident to vertex v.
incident_vertices(...)
incident_vertices(self,Vertex v) -> Vertex_circulator
 
Starts at an arbitrary vertex incident to v.
incident_vertices(self,Vertex v,Face f) -> Vertex_circulator
 
Starts at the first vertex of f adjacent to v in counterclockwise order around v.
Precondition: Face f is incident to vertex v.
includes_edge(...)
infinite_face(...)
infinite_face(self) -> Face
 
a face incident to the infinite_vertex.
infinite_tester(...)
infinite_tester(self) -> Infinite_tester
infinite_vertex(...)
infinite_vertex(self) -> Vertex
 
the infinite_vertex.
insert(...)
insert(self,Point_2 p, Face f = Face()) ->Vertex
 
Inserts point p in the triangulation and returns the corresponding vertex.
If point p coincides with an already existing vertex, this vertex is returned and the triangulation remains unchanged.
If point p is on an edge, the two incident faces are split in two.
If point p is strictly inside a face of the triangulation, the face is split in three.
If point p is strictly outside the convex hull, p is linked to all visible points on the convex hull to form the new triangulation.
At last, if p is outside the affine hull(in case of degenerate 1-dimensional or 0-dimensional triangulations),
p is linked all the other vertices to form a triangulation whose dimension is increased by one.
The last argument f is an indication to the underlying locate algorithm of where to start.
 
insert(self,Point_2 p,Locate_type lt,Face loc,int li) -> Vertex.
 
Same as above except that the location of the point p to be inserted is assumed to be given by (lt,loc,i) 
 
insert(self,[p_1,...,p_n]) insert a list of Point_2.
insert_first(...)
insert_first(self,Point_2 p) -> Vertex.
 
Inserts the first finite vertex .
insert_in_edge(...)
insert_in_edge(self,Point_2 p,Face f,int i) -> Vertex.
 
Inserts vertex v in edge i of f.
Precondition: The point in vertex v lies on the edge opposite to the vertex i of face f.
insert_in_face(...)
insert_in_face(self,Point_2 p,Face f) -> Vertex.
 
Inserts vertex v in face f. Face f is modified, two new faces are created.
Precondition: The point in vertex v lies inside face f. .
insert_outside_affine_hull(...)
insert_outside_convex_hull(...)
insert_outside_convex_hull(self,Point_2 p,Face f) -> Vertex.
 
Inserts a point which is outside the convex hull but in the affine hull.
Precondition: The handle f points to a face which is a proof of the location ofp, see the description of the locate method above.
 
insert_outside_convex_hull(self,Point_2 p) -> Vertex.
 
Inserts a point which is outside the affine hull.
insert_second(...)
insert_second(self,Point_2 p) -> Vertex.
 
Inserts the second finite vertex .
is_edge(...)
is_edge(slef,Vertex va, Vertex vb) -> bool
 
true if there is an edge having va and vb as vertices.
 
is_edge (self, Vertex va,Vertex vb,Edge e) -> bool
 
as above. In addition, if true is returned, the edge with vertices va and vb is the edge e 
where l[0] is a face incident to e and on the right side of e oriented from va to vb.
is_face(...)
is_face(self,Vertex v1,Vertex v2,Vertex v3) -> bool 
 
true if there is a face having v1, v2 and v3 as vertices.
 
is_face(self,Vertex v1,Vertex v2,Vertex v3,Face fr) -> bool 
 
as above. In addition, if true is returned, fr is a  face with v1, v2 and v3 as vertices.
is_infinite(...)
is_infinite(self,Vertex v) -> bool
 
true iff v is the infinite_vertex.
 
is_infinite(self,Face f) ->bool
 
true iff face f is infinite.
 
is_infinite(self,Face f, int i) -> bool
 
true iff edge(f,i) is infinite.
 
is_infinite(self,Edge e) -> bool
 
true iff edge e is infinite.
is_valid(...)
t.is_valid(self, bool verbose = false, int level = 0) -> bool
Checks the combinatorial validity of the triangulation and also the validity of its 
geometric embedding. This method is mainly a debugging help for the users of advanced features.
line_walk(...)
t.line_walk( self,Point_2 p,Point_2 q) -> list of faces
This function returns a list that allows to visit the faces intersected by the line pq.
If there is no such face the list is empty.
t.line_walk( self,Point_2 p,Point_2 q, Face f) -> list of faces
The starting point of the list is the face f
Precondition: Points p and q must be different points.
Precondition: If f is given, it must point to a finite face and the point p must be inside or on the boundary of f.
locate(...)
locate(self,Point_2 query, Face f = Face()) -> Face
 
If the point query lies inside the convex hull of the points, a face that contains the query in its interior or on its boundary is returned.
If the point query lies outside the convex hull of the triangulation but in the affine hull, the returned face is an infinite face which is a proof of the point's location :
- for a two dimensional triangulation, it is a face ( , p, q) such that query lies to the left of the oriented line pq (the rest of the triangulation lying to the right of this line).
- for a degenerate one dimensional triangulation it is the (degenarate one dimensional) face ( , p, NULL) such that query and the triangulation lie on either side of p.
If the point query lies outside the affine hull, the returned Face is None.The optional Face argument, if provided, is used as a hint of where the locate process has to start its search.
 
locate(self,Point_2 query,list l) -> Face
 
Same as above. Additionally, the parameters lt = l[0] and li=l[1] describe where the query point is located. The variable lt is set to the locate type of the query.
If lt==VERTEX the variable li is set to the index of the vertex, and if lt==EDGE li is set to the index of the vertex opposite to the edge. Be careful that li has no meaning when the query type is FACE,
OUTSIDE_CONVEX_HULL, or OUTSIDE_AFFINE_HULL or when the triangulation is 0-dimensional.
mirror_vertex(...)
number_of_faces(...)
number_of_faces(self) -> int
 
Returns the number of finite faces.
number_of_vertices(...)
number_of_vertices(self) -> int 
Returns the number of finite vertices.
oriented_side(...)
push_back(...)
push_back(self, Point_2 p) Equivalent to insert(p).
remove(...)
remove(self,Vertex v) -> void
 
Removes the vertex from the triangulation. The created hole is retriangulated.
Precondition: Vertex v must be finite.
remove_degree_3(...)
remove_first(...)
remove_first(self,Vertex v) -> void.
 
Removes the last finite vertex.
remove_second(...)
remove_second(self,Vertex v) -> void.
 
Removes the before last finite vertex.
segment(...)
segment(self,Face f,int i) -> Segment_2 .
 
Returns the line segment formed by the vertices ccw(i) and cw(i) of face f.
Precondition: 0 <= i <= 2. The vertices ccw(i) and cw(i) of f are finite.
 
segment(self,Edge e) -> Segment_2 .
 
Returns the line segment corresponding to edge e.
Precondition: e is a finite edge
set_infinite_vertex(...)
side_of_oriented_circle(...)
side_of_oriented_circle(self, Face f, Point_2 p) -> Oriented_side
 
Returns on which side of the circumcircle of face f lies the point p.
The circle is assumed to be counterclockwisely oriented, so its positive side correspond to its bounded side.
This predicate is available only if the corresponding predicates on points is provided in the geometric traits class.
swap(...)
swap (self,Triangulation_2)
t.swap(tr) 
The triangulations tr and t are swapped. t.swap(tr) should be preferred to t = tr or to t(tr).
triangle(...)
triangle(self,Face f) -> Triangle_2 .
 
Returns the triangle formed by the three vertices of f.
Precondition: The face is finite.
xy_equal(...)

Static methods defined here:
ccw(...)
ccw(self,int i) -> Returns i+1 modulo 3. Precondition: 0 <= i <= 2.
cw(...)
cw(self,int i) -> Returns i+2 modulo 3. Precondition: 0 <= i <= 2.

Properties defined here:
all_edges
get = (...)
all_faces
get = (...)
all_vertices
get = (...)
edges
get = (...)
faces
get = (...)
points
get = (...)
vertices
get = (...)

Data and other attributes defined here:
Locate_type = <class 'CGAL.CGAL.Triangulations_2.Locate_type'>
__instance_size__ = 92

Data and other attributes inherited from Boost.Python.instance:
__dict__ = <dictproxy object>
__new__ = <built-in method __new__ of Boost.Python.class object>
T.__new__(S, ...) -> a new object with type S, a subtype of T
__weakref__ = <member '__weakref__' of 'Boost.Python.instance' objects>

 
class Vertex(Boost.Python.instance)
    Handles are widely used in cgal to allow access to vertices, faces and cells
Vertex class correponds to cgal's C++ Vertex_handle concept.
So it's not used directly, but related to the Trinagulations
 
 
Method resolution order:
Vertex
Boost.Python.instance
__builtin__.object

Methods defined here:
__eq__(...)
__init__(...)
__lt__(...)
__ne__(...)
degree(...)
v.degree(self) -> int
Returns the degree of the vertex v.
face(...)
v.face(self) -> Face
Returns the incident face of v.
info(...)
v.info(self) -> Returns the info stored in the vertex v
this info may be any python object
is_valid(...)
v.is_valid(self) -> bool
point(...)
v.point(self) -> Point_2
Returns the point stored in the vertex v
set_info(...)
v.set_info(self,object) -> Sets object as information for the vertex v
this info may be any python object
set_point(...)
v.set_point(self, Point_2 p) -> Stores the point p in the vertex v

Data and other attributes defined here:
__instance_size__ = 12

Data and other attributes inherited from Boost.Python.instance:
__dict__ = <dictproxy object>
__new__ = <built-in method __new__ of Boost.Python.class object>
T.__new__(S, ...) -> a new object with type S, a subtype of T
__weakref__ = <member '__weakref__' of 'Boost.Python.instance' objects>

 
class Vertex_circulator(Boost.Python.instance)
    is an iterator over vertices but without a stop iteration
 
 
Method resolution order:
Vertex_circulator
Boost.Python.instance
__builtin__.object

Methods defined here:
__iter__(...)
next(...)

Data and other attributes defined here:
__init__ = <built-in function __init__>
Raises an exception
This class cannot be instantiated from Python

Data and other attributes inherited from Boost.Python.instance:
__dict__ = <dictproxy object>
__new__ = <built-in method __new__ of Boost.Python.class object>
T.__new__(S, ...) -> a new object with type S, a subtype of T
__weakref__ = <member '__weakref__' of 'Boost.Python.instance' objects>

 
class Vertex_iterator(Boost.Python.instance)
    iterator over finite vertices.
 
 
Method resolution order:
Vertex_iterator
Boost.Python.instance
__builtin__.object

Methods defined here:
__iter__(...)
__len__(...)
next(...)

Data and other attributes defined here:
__init__ = <built-in function __init__>
Raises an exception
This class cannot be instantiated from Python

Data and other attributes inherited from Boost.Python.instance:
__dict__ = <dictproxy object>
__new__ = <built-in method __new__ of Boost.Python.class object>
T.__new__(S, ...) -> a new object with type S, a subtype of T
__weakref__ = <member '__weakref__' of 'Boost.Python.instance' objects>

 
class Vertices_in_constraint_iterator(Boost.Python.instance)
    
Method resolution order:
Vertices_in_constraint_iterator
Boost.Python.instance
__builtin__.object

Methods defined here:
__iter__(...)
__len__(...)
next(...)

Data and other attributes defined here:
__init__ = <built-in function __init__>
Raises an exception
This class cannot be instantiated from Python

Data and other attributes inherited from Boost.Python.instance:
__dict__ = <dictproxy object>
__new__ = <built-in method __new__ of Boost.Python.class object>
T.__new__(S, ...) -> a new object with type S, a subtype of T
__weakref__ = <member '__weakref__' of 'Boost.Python.instance' objects>