morphism#

Morphisms involving pylatsurf backed surfaces.

This module extends flatsurf.geometry.morphism with morphisms that rely on the C++/Python library pyflatsurf.

EXAMPLES:

sage: from flatsurf import translation_surfaces
sage: S = translation_surfaces.veech_double_n_gon(5)
sage: to_pyflatsurf = S.pyflatsurf()  # optional: pyflatsurf  # random output due to cppyy deprecation warnings
sage: to_pyflatsurf  # optional: pyflatsurf
Composite morphism:
  From: Translation Surface in H_2(2) built from 2 regular pentagons
  To:   Surface backed by FlatTriangulationCombinatorial(...) with vectors ...
  Defn: Triangulation morphism:
          ...
        then pyflatsurf conversion morphism:
          ...

sage: to_pyflatsurf.codomain().flat_triangulation()  # optional: pyflatsurf
FlatTriangulationCombinatorial(...) with vectors ...
class flatsurf.geometry.pyflatsurf.morphism.Morphism_Deformation(parent, deformation)[source]#

A morphism of Surface_pyflatsurf surfaces that is backed by a libflatsurf Deformation.

These morphisms are usually hidden deep inside the machinery of some complex morphism constructions.

EXAMPLES:

sage: from flatsurf import translation_surfaces
sage: S = translation_surfaces.square_torus()
sage: T = S.relabel({0: 1})
sage: isomorphism = S.delaunay_decompose(codomain=T)  # optional: pyflatsurf

sage: deformation = isomorphism._factorization()._factorization()._morphisms[2]  # optional: pyflatsurf

sage: deformation  # optional: pyflatsurf
pyflatsurf deformation morphism:
  From: Surface backed by FlatTriangulationCombinatorial(vertices = (1, -3, 2, -1, 3, -2), faces = (1, 2, 3)(-1, -2, -3)) with vectors {1: (1, 0), 2: (0, 1), 3: (-1, -1)}
  To:   Surface backed by FlatTriangulationCombinatorial(vertices = (1, -3, 2, -1, 3, -2), faces = (1, 2, 3)(-1, -2, -3)) with vectors {1: (1, 0), 2: (0, 1), 3: (-1, -1)}
  Defn: FlatTriangulationCombinatorial(vertices = (1, -3, 2, -1, 3, -2), faces = (1, 2, 3)(-1, -2, -3)) with vectors {1: (1, 0), 2: (0, 1), 3: (-1, -1)} → ...
class flatsurf.geometry.pyflatsurf.morphism.Morphism_from_pyflatsurf(parent, pyflatsurf_conversion)[source]#

A trivial isomorphism from a pyflatsurf backed translation surface to a sage-flatsurf translation surface.

You should not create such morphisms directly but only create them as the Morphism_to_pyflatsurf.section() of another morphism.

EXAMPLES:

sage: from flatsurf import translation_surfaces
sage: S = translation_surfaces.veech_double_n_gon(5).triangulate().codomain()
sage: from_pyflatsurf = S.pyflatsurf().section()  # optional: pyflatsurf
class flatsurf.geometry.pyflatsurf.morphism.Morphism_to_pyflatsurf(parent, pyflatsurf_conversion)[source]#

A trivial isomorphism from a sage-flatsurf translation surface to a pyflatsurf backed translation surface.

You should not create such morphisms directly but rely on the caching provided by pyflatsurf().

EXAMPLES:

sage: from flatsurf import translation_surfaces
sage: S = translation_surfaces.veech_double_n_gon(5).triangulate().codomain()
sage: to_pyflatsurf = S.pyflatsurf()  # optional: pyflatsurf
section()[source]#

Return the inverse of this morphism.

EXAMPLES:

sage: from flatsurf import translation_surfaces
sage: S = translation_surfaces.veech_double_n_gon(5).triangulate().codomain()
sage: to_pyflatsurf = S.pyflatsurf()  # optional: pyflatsurf
sage: to_pyflatsurf.section()  # optional: pyflatsurf
pyflatsurf reconversion morphism:
  From: Surface backed by FlatTriangulationCombinatorial(...) with vectors ...
  To:   Triangulation of Translation Surface in H_2(2) built from 2 regular pentagons