de.sciss.topology

Topology

final case class Topology[V, E <: Edge[V]] extends Ordering[V] with Product with Serializable

An online topological 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).

V

vertex type

E

edge type

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

Type Members

  1. class Ops extends AnyRef

    Definition Classes
    Ordering

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. def addEdge(e: E): Try[(T, Option[Move[V]])]

    Tries to insert an edge into the topological order.

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

    e

    the edge to insert

    returns

    Failure if the edge would violate acyclicity, otherwise Success of a tuple that contains the new topology and possibly 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 should be moved _before_ the reference

  5. def addVertex(v: V): Topology[V, E]

    Adds a new vertex to the set of unconnected vertices.

    Adds a new vertex to the set of unconnected vertices. Throws an exception if the vertex had been added before.

  6. final def asInstanceOf[T0]: T0

    Definition Classes
    Any
  7. def canAddEdge(e: E): Boolean

    Tests if an edge can be added without producing a cycle.

    Tests if an edge can be added without producing a cycle.

    e

    the edge to test

    returns

    true if the insertion is possible. Then calling addEdge is guaranteed to be a Success. false if the insertion would introduce a cycle. Then calling addEdge is guaranteed to be a Failure

  8. def clone(): AnyRef

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

    For two connected 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 connected 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 unconnected.

    Definition Classes
    Topology → Ordering → Comparator
  10. val edgeMap: Map[V, Set[E]]

    allows lookup of edges via vertex keys

  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): Topology[V, E]

    Removes the edge from the topology.

    Removes the edge from the topology. If the edge is not contained in the structure, returns the topology unmodified.

  29. def removeVertex(v: V): Topology[V, E]

    Removes a vertex and all associated edges.

    Removes a vertex and all associated edges. If the vertex is not contained in the structure, returns the unmodified topology.

  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 unconnected: Int

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

  35. val vertices: IndexedSeq[V]

    the vertices in the structure

  36. final def wait(): Unit

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

    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  38. 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