de.sciss.lucre.synth

Topology

final case class Topology[V, E <: Edge[V]](vertices: IndexedSeq[V], edges: Set[E])(unpositioned: Int, edgeMap: Map[V, Set[E]]) extends Ordering[V] with Product with Serializable

An online toplogical order maintenance structure. This is an immutable data structure with amortized costs. The edge adding operation returns a new copy of the modified structure along with a list of vertices which have been moved due to the insertion. The caller can then use that list to adjust any views (e.g. DSP processes).

vertices

the vertices in the structure

edges

a set of edges between the vertices

unpositioned

the number of unpositioned vertices (the leading elements in vertices)

edgeMap

allows lookup of edges via vertex keys

Linear Supertypes
Product, Equals, Ordering[V], PartialOrdering[V], Equiv[V], Serializable, Serializable, Comparator[V], AnyRef, Any
Ordering
  1. Alphabetic
  2. By inheritance
Inherited
  1. Topology
  2. Product
  3. Equals
  4. Ordering
  5. PartialOrdering
  6. Equiv
  7. Serializable
  8. Serializable
  9. Comparator
  10. AnyRef
  11. Any
  1. Hide All
  2. Show all
Learn more about member selection
Visibility
  1. Public
  2. All

Instance Constructors

  1. new Topology(vertices: IndexedSeq[V], edges: Set[E])(unpositioned: Int, edgeMap: Map[V, Set[E]])

    vertices

    the vertices in the structure

    edges

    a set of edges between the vertices

    unpositioned

    the number of unpositioned vertices (the leading elements in vertices)

    edgeMap

    allows lookup of edges via vertex keys

Type Members

  1. class Ops extends AnyRef

    Definition Classes
    Ordering
  2. type T = Topology[V, E]

Value Members

  1. final def !=(arg0: AnyRef): Boolean

    Definition Classes
    AnyRef
  2. final def !=(arg0: Any): Boolean

    Definition Classes
    Any
  3. final def ##(): Int

    Definition Classes
    AnyRef → Any
  4. final def ==(arg0: AnyRef): Boolean

    Definition Classes
    AnyRef
  5. final def ==(arg0: Any): Boolean

    Definition Classes
    Any
  6. def addEdge(e: E): Option[(T, V, IndexedSeq[V])]

    Tries to insert an edge into the topological order.

    Tries to insert an edge into the topological order. Throws an exception of the source or target vertex of the edge is not contained in the vertex list of this structure.

    e

    the edge to insert

    returns

    None if the edge would violate acyclicity, otherwise Some tuple contains the new topology, the reference vertex and the affected vertices which need to be moved with respect to the reference to reflect the new ordering. In case that the reference is the source vertex of the added edge, the affected vertices should be moved _after_ the reference and keep their internal grouping order. In case the reference is the target vertex, the affected vertices sequence is guaranteed to consist only exactly one element -- the source vertex -- which should be moved _before_ the reference

  7. def addVertex(v: V): T

  8. final def asInstanceOf[T0]: T0

    Definition Classes
    Any
  9. def clone(): AnyRef

    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  10. def compare(a: V, b: V): Int

    For two positioned vertices a and b, returns -1 if a is before b, or 1 if a follows b, or 0 if both are equal.

    For two positioned vertices a and b, returns -1 if a is before b, or 1 if a follows b, or 0 if both are equal. Throws an exception if a or b is unpositioned.

    Definition Classes
    Topology → Ordering → Comparator
  11. val edges: Set[E]

    a set of edges between the vertices

  12. final def eq(arg0: AnyRef): Boolean

    Definition Classes
    AnyRef
  13. def equiv(x: V, y: V): Boolean

    Definition Classes
    Ordering → PartialOrdering → Equiv
  14. def finalize(): Unit

    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  15. final def getClass(): Class[_]

    Definition Classes
    AnyRef → Any
  16. def gt(x: V, y: V): Boolean

    Definition Classes
    Ordering → PartialOrdering
  17. def gteq(x: V, y: V): Boolean

    Definition Classes
    Ordering → PartialOrdering
  18. final def isInstanceOf[T0]: Boolean

    Definition Classes
    Any
  19. def lt(x: V, y: V): Boolean

    Definition Classes
    Ordering → PartialOrdering
  20. def lteq(x: V, y: V): Boolean

    Definition Classes
    Ordering → PartialOrdering
  21. def max(x: V, y: V): V

    Definition Classes
    Ordering
  22. def min(x: V, y: V): V

    Definition Classes
    Ordering
  23. implicit def mkOrderingOps(lhs: V): Ops

    Definition Classes
    Ordering
  24. final def ne(arg0: AnyRef): Boolean

    Definition Classes
    AnyRef
  25. final def notify(): Unit

    Definition Classes
    AnyRef
  26. final def notifyAll(): Unit

    Definition Classes
    AnyRef
  27. def on[U](f: (U) ⇒ V): Ordering[U]

    Definition Classes
    Ordering
  28. def removeEdge(e: E): T

  29. def removeVertex(v: V): T

    Removes a vertex and all associated edges.

  30. def reverse: Ordering[V]

    Definition Classes
    Ordering → PartialOrdering
  31. final def synchronized[T0](arg0: ⇒ T0): T0

    Definition Classes
    AnyRef
  32. def toString(): String

    Definition Classes
    Topology → AnyRef → Any
  33. def tryCompare(x: V, y: V): Some[Int]

    Definition Classes
    Ordering → PartialOrdering
  34. val vertices: IndexedSeq[V]

    the vertices in the structure

  35. final def wait(): Unit

    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  36. final def wait(arg0: Long, arg1: Int): Unit

    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  37. final def wait(arg0: Long): Unit

    Definition Classes
    AnyRef
    Annotations
    @throws( ... )

Inherited from Product

Inherited from Equals

Inherited from Ordering[V]

Inherited from PartialOrdering[V]

Inherited from Equiv[V]

Inherited from Serializable

Inherited from Serializable

Inherited from Comparator[V]

Inherited from AnyRef

Inherited from Any

Ungrouped