curver.kernel.lamination.Lamination¶

class
curver.kernel.lamination.
Lamination
(triangulation, geometric)[source]¶ Bases:
object
This represents a lamination on a triangulation.
Users should create these via Triangulation(…) or Triangulation.lamination(…).

dual_weight
(edge)[source]¶ Return the number of component of this lamination dual to the given edge.
Note that when there is a terminal normal arc then we record this weight with a negative sign.

is_non_peripheral
()[source]¶ Return whether this lamination does not have any peripheral components.

left_weight
(edge)[source]¶ Return the number of component of this lamination dual to the left of the given edge.
Note that when there is a terminal normal arc then we record this weight with a negative sign.

non_peripheral
(promote=True)[source]¶ Return the lamination consisting of the nonperipheral components of this Lamination.

parallel_components
()[source]¶ Return a dictionary mapping component to (multiplicity, edge) for each component of self that is parallel to an edge.

peripheral
(promote=True)[source]¶ Return the lamination consisting of the peripheral components of this Lamination.

peripheral_components
()[source]¶ Return a dictionary mapping component to (multiplicity, vertex) for each component of self that is peripheral around a vertex.

right_weight
(edge)[source]¶ Return the number of component of this lamination dual to the right the given edge.
Note that when there is a terminal normal arc then we record this weight with a negative sign.

trace_curve
(edge, intersection, max_length)[source]¶ Return the curve obtained by following along this lamination and closing up when you get back to this edge.
We start at the given edge and intersection point and only go for at most max_length. A ValueError is raised if:
 we do not get back to the starting edge within this number of steps,
 the lamination terminates into a vertex, or
 upon returning to start_edge we cannot close up without creating intersections.
