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: 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): 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

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

  8. final def asInstanceOf[T0]: T0

    Definition Classes
    Any
  9. 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

  10. def clone(): AnyRef

    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  11. 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
  12. val edgeMap: Map[V, Set[E]]

    allows lookup of edges via source vertex keys

  13. val edges: Set[E]

    a set of edges between the vertices

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    Definition Classes
    Ordering
  30. 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.

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

    Removes a vertex and all associated outgoing edges.

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

    Note: incoming edges pointing to the removed vertex are not detected and removed. this is the responsibility of the caller.

  32. def reverse: Ordering[V]

    Definition Classes
    Ordering → PartialOrdering
  33. def reversed(): Comparator[V]

    Definition Classes
    Comparator
  34. final def synchronized[T0](arg0: ⇒ T0): T0

    Definition Classes
    AnyRef
  35. def thenComparing[U <: Comparable[_ >: U]](arg0: Function[_ >: V, _ <: U]): Comparator[V]

    Definition Classes
    Comparator
  36. def thenComparing[U](arg0: Function[_ >: V, _ <: U], arg1: Comparator[_ >: U]): Comparator[V]

    Definition Classes
    Comparator
  37. def thenComparing(arg0: Comparator[_ >: V]): Comparator[V]

    Definition Classes
    Comparator
  38. def thenComparingDouble(arg0: ToDoubleFunction[_ >: V]): Comparator[V]

    Definition Classes
    Comparator
  39. def thenComparingInt(arg0: ToIntFunction[_ >: V]): Comparator[V]

    Definition Classes
    Comparator
  40. def thenComparingLong(arg0: ToLongFunction[_ >: V]): Comparator[V]

    Definition Classes
    Comparator
  41. def toString(): String

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

    Definition Classes
    Ordering → PartialOrdering
  43. val unconnected: Int

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

  44. val vertices: IndexedSeq[V]

    the vertices in the structure

  45. final def wait(): Unit

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

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