superficial
package superficial
- Alphabetic
- Public
- Protected
Type Members
- case class BoundaryEdge(pb: PantsBoundary, top: Boolean, positivelyOriented: Boolean) extends OrientedEdge with Product with Serializable
An edge in the boundary of a pair of pants which is not identified with a boundary component of another pair of pants, i.e., this is part of the boundary of the surface.
An edge in the boundary of a pair of pants which is not identified with a boundary component of another pair of pants, i.e., this is part of the boundary of the surface.
- pb
the pants boundary of which this is a part
- top
whether this is in the top face
- positivelyOriented
whether the edge is positively oriented
- case class BoundaryVertex(pb: PantsBoundary, isFirst: Boolean) extends Vertex with Product with Serializable
Vertex on the boundary of a pair of pants decomposed into a pair of hexagons
Vertex on the boundary of a pair of pants decomposed into a pair of hexagons
- pb
the component of the boundary on which the vertex lies
- isFirst
whether the vertex is the first vertex.
- case class ClosedSurface(n: Int) extends StandardSurface with Product with Serializable
- trait CollectionOfHomotopyClasses extends AnyRef
- case class Curve(left: PantsBoundary, right: PantsBoundary) extends Product with Serializable
A curve in the curve system (i.e., the collection of terms) along which we split to get the pants decomposition.
A curve in the curve system (i.e., the collection of terms) along which we split to get the pants decomposition. This is a quotient of two pants boundaries that have been identified, with orientation determining one as on the left.
- left
the pants boundary on the left.
- right
the pants boundary on the right.
- case class CurveEdge(curve: Curve, top: Boolean, positivelyOriented: Boolean) extends OrientedEdge with Product with Serializable
An edge on a curve
An edge on a curve
- curve
the curve on which the edge lies
- top
whether this is the top edge
- positivelyOriented
whether the edge is positively oriented
- case class CurveVertex(curve: Curve, first: Boolean) extends Vertex with Product with Serializable
vertex on a curve
vertex on a curve
- curve
the curve
- first
whether this is the first vertex
- trait Edge extends AnyRef
An oriented edge in a two-complex
- class EdgePair extends AnyRef
- sealed trait EdgePath extends AnyRef
- trait EquivalenceClass extends AnyRef
- case class FormalSum[A](coeffs: Map[A, Int]) extends Product with Serializable
A formal sum of elements of
A
with coefficients integers. - sealed trait Generator extends AnyRef
Contribution of Ankit-Jaiswal and Soumyo Biswas, independent of the rest of the code.
Contribution of Ankit-Jaiswal and Soumyo Biswas, independent of the rest of the code.
This program basically abstracts : (i) OrientableSurface (i.e. a connected compact 2-manifold) parametrized by g and r. where, g is its genus and r is the number of components in its boundary. (ii) Surfaces' fundamental group Generators along with the 'relation' over them, (iii) Closed curves/Words (on the surfaces) in terms of Generators, And, verifies whether a given word is homotopic to a simple closed curve.
NOTE: This program works for surfaces which are not sphere(where g = 0 as well as r = 0).
Reference:: "Simple Closed Curves on Surfaces" by D.R.J. Chillingworth
- trait Hexagon extends Polygon
A hexagon
- trait HomotopyClassesOfPaths extends AnyRef
- trait Intersection extends AnyRef
- trait NonPosQuad extends TwoComplex
- case class NormalArc(initial: Index, terminal: Index, face: Polygon) extends Product with Serializable
A normal arc in a face
A normal arc in a face
- initial
the edge containing the initial point
- terminal
the edge containing the final point
- face
the face containing the arc
- case class NormalPath(edges: Vector[NormalArc]) extends Product with Serializable
- case class OrientableSurface(g: Int, r: Int) extends Product with Serializable
Contribution of Ankit-Jaiswal and Soumyo Biswas, independent of the rest of the code.
Contribution of Ankit-Jaiswal and Soumyo Biswas, independent of the rest of the code.
'a' and 'b' are the two Generators of a OrientableSurface, parametrized by the genus number. And 's' is the generator corressponding to surface's boundary, parametrized by r, the number of components. Because their inverse can also generate the fundamental group; therefore they are also being considered as Generators.
- trait OrientedEdge extends Edge
- case class PantsBoundary(pants: Index, direction: Z3) extends Product with Serializable
label for boundary of pants, may be a curve in the curve system or a component of the boundary of the surface; if part of the curve system it will be identified with another PantsBoundary
label for boundary of pants, may be a curve in the curve system or a component of the boundary of the surface; if part of the curve system it will be identified with another PantsBoundary
- pants
the index of the pair of pants
- direction
the prong of the pair of pants
- case class PantsHexagon(pants: Index, top: Boolean, cs: Set[Curve]) extends Hexagon with Product with Serializable
Hexagon in a pair of pants
Hexagon in a pair of pants
- pants
the index of the pair of pants
- top
whether this is the top face
- cs
system of curves giving the pants decomposition
- case class PantsSeam(pants: Index, initial: Vertex, terminal: Vertex, positivelyOriented: Boolean = true) extends OrientedEdge with Product with Serializable
An edge that is the seam of a pair of pants
An edge that is the seam of a pair of pants
- pants
the index of the pair of pants of which this is a seam
- initial
the initial vertex
- terminal
the terminal vertex
- positivelyOriented
whether the edge is positively oriented
- case class PantsSurface(numPants: Index, cs: Set[Curve]) extends PureTwoComplex with Product with Serializable
Surface with a pants decomposition (compact, possibly with boundary and possibly disconnected)
Surface with a pants decomposition (compact, possibly with boundary and possibly disconnected)
- numPants
the number of pairs of pants
- cs
the curve system giving the pants decomposition
- trait Polygon extends TwoComplex
Abstract polygon, with given edges and vertices, i.e.
Abstract polygon, with given edges and vertices, i.e. a two-complex with a single face.
- case class PureComplex(polys: Set[Polygon]) extends PureTwoComplex with Product with Serializable
- trait PureTwoComplex extends TwoComplex
A two-complex with all vertices and edges contained in faces, hence determined by its faces.
- class QuadPlot extends AnyRef
- trait Quadrangulation extends TwoComplex
- trait Quadrilateral extends Polygon
a quadrilateral is a polygon with four edges.
- case class QuotientEdge(edges: Set[Edge]) extends Edge with Product with Serializable
An edge obtained by identifications
- case class QuotientVertex(vertices: Set[Vertex]) extends Vertex with Product with Serializable
A vertex obtained by identifications
- case class SkewCurve(left: PantsBoundary, right: PantsBoundary, twist: Double, length: Double) extends Product with Serializable
A curve in the curve system for a pants decomposition for a hyperbolic surface obtained by twisting and regluing along the pants system Twists and vertex positions are parametrized as fractions of the length, so are in [0, 1].
A curve in the curve system for a pants decomposition for a hyperbolic surface obtained by twisting and regluing along the pants system Twists and vertex positions are parametrized as fractions of the length, so are in [0, 1].
Generically, there are 4 vertices, two at 0 and 0.5 and the other two at
twist
andtwist + 0.5 (mod 1)
.- left
the pants boundary to the left
- right
the pants boundary to the right
- twist
the twist, parametrized as a fraction of the length, so is in [0, 1]
- length
the length of the curve in the hyperbolic structure.
- case class SkewCurveEdge(curve: SkewCurve, initialPosition: Double, positivelyOriented: Boolean) extends OrientedEdge with Product with Serializable
An edge on a skew-curve, i.e., curve in a pants decomposition glued with a twist
An edge on a skew-curve, i.e., curve in a pants decomposition glued with a twist
- curve
the skew-curve in the pants decomposition
- initialPosition
the position of the initial vertex
- positivelyOriented
whether the edge is positively oriented
- case class SkewCurveVertex(curve: SkewCurve, position: Double) extends Vertex with Product with Serializable
vertex on a skew curve
vertex on a skew curve
- curve
the curve
- position
position on the curve in [0, 1)
- case class SkewPantsHexagon(pants: Index, top: Boolean, cs: Set[SkewCurve]) extends Polygon with Product with Serializable
"hexagon" in a skew pair of pants; note that this is not in general a hexagon as some of the edges are subdivided
"hexagon" in a skew pair of pants; note that this is not in general a hexagon as some of the edges are subdivided
- pants
the index of the pair of (skew) pants
- top
whether this is the top face
- cs
system of curves giving the pants decomposition
- case class SkewPantsSurface(numPants: Index, cs: Set[SkewCurve]) extends PureTwoComplex with Product with Serializable
- class StandardSurface extends TwoComplex
- trait TwoComplex extends AnyRef
A polyheadral two complex, with faces polygons, a collection of edges and
- class Vertex extends AnyRef
A vertex in a two-complex
- final case class Z3(n: Int) extends AnyVal with Product with Serializable
One of 0, 1 and 2, indexing the boundaries of a pair of pants.
One of 0, 1 and 2, indexing the boundaries of a pair of pants. Class created to avoid accidentally mixing with integers
- trait sphereWithHoles extends AnyRef
- trait surfaceWithBoundary extends AnyRef
Value Members
- object CheckQuadrangulation
- object Clockwise
- object ClosedSurface extends Serializable
- object CollectionOfHomotopyClasses
- object DoublePaths
- object Edge
- object EdgePair
- object EdgePath
- object EquivalenceClass
- object Examples
- object FormalSum extends Serializable
- object Generator
- object Hexagon
Formulas for hyperbolic hexagons
- object HomotopyClassesOfPaths
- object Intersection
- object NonPosQuad
- object NormalArc extends Serializable
- object NormalPath extends Serializable
- object PantsSurface extends Serializable
- object Polygon
- object PrimitiveExamples
- object Quadrangulation
- object SkewCurve extends Serializable
- object SkewPantsSurface extends Serializable
- object SphereComplex
- object Staircase
- object StandardSurface
- object SvgPlot
- object Triangles
- object TwoComplex
- object Vertex
- object Z3 extends Serializable
- object sphereWithHoles
- object surfaceWithBoundary