cone_surfaces
¶
The category of cone surfaces.
A cone surface is a surface that can be built by gluing Euclidean polygons
along their edges such that the matrix describing monodromy along a closed path
is an isometry; that matrix is given by multiplying the individual matrices
that describe how to transition between pairs of glued edges, see
edge_matrix()
.
In sage-flatsurf, we restrict cone surfaces slightly by requiring that a cone surface is given by polygons such that each edge matrix is an isometry.
See flatsurf.geometry.categories
for a general description of the
category framework in sage-flatsurf.
Normally, you won’t create this (or any other) category directly. The correct category is automatically determined for immutable surfaces.
EXAMPLES:
We glue the sides of a square with a rotation of π/2. Since each gluing is just a rotation, this is a cone surface:
sage: from flatsurf import Polygon, MutableOrientedSimilaritySurface
sage: P = Polygon(vertices=[(0,0), (1,0), (1,1), (0,1)])
sage: S = MutableOrientedSimilaritySurface(QQ)
sage: S.add_polygon(P, label=0)
0
sage: S.glue((0, 0), (0, 1))
sage: S.glue((0, 2), (0, 3))
sage: S.set_immutable()
sage: C = S.category()
sage: from flatsurf.geometry.categories import ConeSurfaces
sage: C.is_subcategory(ConeSurfaces())
True
- class flatsurf.geometry.categories.cone_surfaces.ConeSurfaces[source]¶
The category of surfaces built by gluing (Euclidean) polygons with isometries on the edges.
See
cone_surfaces
andis_cone_surface()
on how this differs slightly from the customary definition of a cone surface.EXAMPLES:
sage: from flatsurf.geometry.categories import ConeSurfaces sage: ConeSurfaces() Category of cone surfaces
- class FiniteType(base_category)[source]¶
The category of cone surfaces built from finitely many polygons.
EXAMPLES:
sage: from flatsurf import Polygon, similarity_surfaces sage: P = Polygon(edges=[(2, 0),(-1, 3),(-1, -3)]) sage: S = similarity_surfaces.self_glued_polygon(P) sage: from flatsurf.geometry.categories import ConeSurfaces sage: S in ConeSurfaces().FiniteType() True
- class Oriented(base_category)[source]¶
The category of oriented cone surfaces, i.e., orientable cone surfaces whose orientation can be chosen to be compatible with the embedding of its polygons in the real plane.
EXAMPLES:
sage: from flatsurf import Polygon, similarity_surfaces sage: P = Polygon(edges=[(2, 0),(-1, 3),(-1, -3)]) sage: S = similarity_surfaces.self_glued_polygon(P) sage: from flatsurf.geometry.categories import ConeSurfaces sage: S in ConeSurfaces().Oriented() True
- class ParentMethods[source]¶
Provides methods available to all oriented cone surfaces.
If you want to add functionality for such surfaces you most likely want to put it here.
- class WithoutBoundary(base_category)[source]¶
The category of oriented cone surfaces without boundary.
EXAMPLES:
sage: from flatsurf import Polygon, similarity_surfaces sage: P = Polygon(edges=[(2, 0),(-1, 3),(-1, -3)]) sage: S = similarity_surfaces.self_glued_polygon(P) sage: from flatsurf.geometry.categories import ConeSurfaces sage: S in ConeSurfaces().Oriented().WithoutBoundary() True
- class Connected(base_category)[source]¶
The category of oriented connected cone surfaces without boundary.
EXAMPLES:
sage: from flatsurf import Polygon, similarity_surfaces sage: P = Polygon(edges=[(2, 0),(-1, 3),(-1, -3)]) sage: S = similarity_surfaces.self_glued_polygon(P) sage: from flatsurf.geometry.categories import ConeSurfaces sage: S in ConeSurfaces().Oriented().Connected() True
- class ParentMethods[source]¶
Provides methods available to all cone surfaces.
If you want to add functionality for such surfaces you most likely want to put it here.
- is_cone_surface()[source]¶
Return whether this surface is a cone surface, i.e., whether its edges are glued by isometries.
Note
This is a stronger requirement than the usual definition of a cone surface, see
cone_surfaces
for details.EXAMPLES:
sage: from flatsurf import translation_surfaces sage: S = translation_surfaces.infinite_staircase() sage: S.is_cone_surface() True