curver.kernel.lamination module

A module for representing laminations on Triangulations.

class curver.kernel.lamination.Lamination(triangulation, geometric)[source]

Bases: object

This represents an (integral) lamination on a triangulation.

Users should create these via Triangulation(…) or Triangulation.lamination(…).

boundary()[source]

Return the boundary of a regular neighbourhood of this lamination.

components()[source]

Return a dictionary mapping components to their multiplicities.

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.

fills_with(other)[source]

Return whether self cup other fills.

intersection(lamination)[source]

Return the geometric intersection number between this lamination and the given one.

is_arc()[source]

Return if this lamination is actually a multiarc.

is_curve()[source]

Return if this lamination is actually a curve.

is_empty()[source]

Return if this lamination has no components.

is_filling()[source]

Return if this Lamination fills the surface, that is, if it intersects all curves on the surface.

Note that this is equivalent to:
  • it meets every non S_{0,3} component of the surface, and
  • its boundary is peripheral.

Furthermore, if any component of this lamination is a non-peripheral curve then it cannot fill.

is_multiarc()[source]

Return if this lamination is actually a multiarc.

is_multicurve()[source]

Return if this lamination is actually a multicurve.

is_peripheral()[source]

Return whether this lamination consists entirely of parallel components.

is_short()[source]

Return whether this lamination is short.

A lamination is short if all of its non-peripheral components are parallel to edges of the triangulation that it is defined on. This makes computing its components very easy.

multiarc()[source]

Return the maximal MultiArc contained within this lamination.

multicurve()[source]

Return the maximal MultiCurve contained within this lamination.

no_common_component(lamination)[source]

Return that self does not share any components with the given Lamination.

non_peripheral(promote=True)[source]

Return the lamination consisting of the non-peripheral components of this Lamination.

num_components()[source]

Return the total number of components.

parallel_components()[source]

Return a dictionary mapping component |–> (multiplicity, edge) for each component of self that is parallel to an edge.

peek_component()[source]

Return one component of this Lamination.

peripheral(promote=True)[source]

Return the lamination consisting of the peripheral components of this Lamination.

peripheral_components()[source]

Return a dictionary mapping component |–> (multiplicity, vertex) for each component of self that is peripheral around a vertex.

promote()[source]

Return this lamination in its finest form.

shorten()[source]

Return an encoding which maps this lamination to a short one.

side_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.

skeleton()[source]

Return the lamination obtained by collapsing parallel components.

sublaminations()[source]

Return all sublaminations that appear within self.

topological_type()[source]

Return the topological type of this lamination..

Two laminations are in the same mapping class group orbit if and only their topological types are equal. These are labelled graphs and so equal means ‘label isomorphic’, so we return a custom class that uses networkx.is_isomorphic to determine equality.

trace(edge, intersection_point, length)[source]

Return the sequence of edges encountered by following along this lamination.

We start at the given edge and intersection point for the specified number of steps. However we terminate early if the lamination closes up before this number of steps is completed.

weight()[source]

Return the geometric intersection of this lamination with its underlying triangulation.