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

Generically, there are 4 vertices, two at 0 and 0.5 and the other two at twist and twist + 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.

Self Type
SkewCurve
Linear Supertypes
Serializable, Product, Equals, AnyRef, Any
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. SkewCurve
  2. Serializable
  3. Product
  4. Equals
  5. AnyRef
  6. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. Protected

Instance Constructors

  1. new SkewCurve(left: PantsBoundary, right: PantsBoundary, twist: Double, length: Double)

    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.

Value Members

  1. final def !=(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  2. final def ##: Int
    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  4. final def asInstanceOf[T0]: T0
    Definition Classes
    Any
  5. def base: Curve

    the corresponding curve in the untwisted surface

  6. def clone(): AnyRef
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.CloneNotSupportedException]) @native() @HotSpotIntrinsicCandidate()
  7. def contains(pb: PantsBoundary): Boolean

    whether a pants boundary is contained in the curve

    whether a pants boundary is contained in the curve

    pb

    a pants boundary

    returns

    boolean for containment

  8. def edgesOn(left: Boolean, top: Boolean): Vector[Edge]

    the edges in the twisted pants complex on an edge in a pants boundary adjacent to the given curve; a pair of edges if twisted, otherwise a single edge

    the edges in the twisted pants complex on an edge in a pants boundary adjacent to the given curve; a pair of edges if twisted, otherwise a single edge

    left

    whether the pants we consider are on the left

    top

    whether we consider the top edge

    returns

    edges in the twisted pants complex

  9. def edgesToOppositeVertex(position: Double, positivelyOriented: Boolean): Vector[Edge]

    edges between the given vertex and the opposite one along the given orientation; a single edge if untwisted and two edges if twisted

  10. final def eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  11. final def getClass(): Class[_ <: AnyRef]
    Definition Classes
    AnyRef → Any
    Annotations
    @native() @HotSpotIntrinsicCandidate()
  12. def initPos(left: Boolean): Double

    position of the first vertex on the given pants boundary in the curve after gluing with a twist

    position of the first vertex on the given pants boundary in the curve after gluing with a twist

    left

    whether we consider the pants

    returns

    position

  13. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  14. val left: PantsBoundary
  15. val length: Double
  16. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  17. val neighbours: Set[Index]

    (indices of) adjacent pairs of pants

  18. def nextVertex(position: Double): Double

    the postion of the next vertex (in [0, 1))

    the postion of the next vertex (in [0, 1))

    position

    position of the given vertex

    returns

    position of the next vertex

  19. final def notify(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native() @HotSpotIntrinsicCandidate()
  20. final def notifyAll(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native() @HotSpotIntrinsicCandidate()
  21. def previousVertex(position: Double): Double

    the postion of the previous vertex (in [0, 1))

    the postion of the previous vertex (in [0, 1))

    position

    position of the given vertex

    returns

    position of the previous vertex

  22. def productElementNames: Iterator[String]
    Definition Classes
    Product
  23. val right: PantsBoundary
  24. val shift: Double

    the position (in [0, 1]) of the next vertex after 0; the next vertex after 0.5 is 0.5 + shift.

  25. def shiftedVertex(position: Double, positivelyOriented: Boolean): Double

    position of the next vertex along the orientation

    position of the next vertex along the orientation

    position

    position of the present vertex

    positivelyOriented

    whether orientation is poistive

    returns

    position of the next vertex along the orientation

  26. val skewLess: Boolean

    whether the vertices and edges of the two pants match, either directly or with exchange; this also determines whether the number of vertices is 2 (otherwise it is 4)

  27. val support: Set[PantsBoundary]

    the pants boundaries identified to get this curve.

  28. final def synchronized[T0](arg0: => T0): T0
    Definition Classes
    AnyRef
  29. val twist: Double
  30. def verticesOn(left: Boolean, top: Boolean): Set[Vertex]

    the vertices in the twisted pants complex on an edge in a pants boundary adjacent to the given curve; three vertices if twisted, otherwise two vertices

    the vertices in the twisted pants complex on an edge in a pants boundary adjacent to the given curve; three vertices if twisted, otherwise two vertices

    left

    whether the pants we consider are on the left

    top

    whether we consider the top edge

    returns

    vertices in the twisted pants complex

  31. def verticesToOppositeVertex(position: Double, positivelyOriented: Boolean): Set[Vertex]

    vetices on edges between the given vertex and the opposite vertex along the given orientation; we have a single edge, hence two vertices, if untwisted and two edges, hence three vertices, if twisted

  32. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])
  33. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException]) @native()
  34. final def wait(): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])

Deprecated Value Members

  1. def finalize(): Unit
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.Throwable]) @Deprecated
    Deprecated

Inherited from Serializable

Inherited from Product

Inherited from Equals

Inherited from AnyRef

Inherited from Any

Ungrouped