DiGraph

Направленный ациклический граф (DAG). В «Вердж3Д» данная структура данных используется для определения иерархии в нодовых материалах.

Конструктор

DiGraph(V : Integer)

Создаёт новый граф с размером (количеством узлов) V.

Свойства

.V : Integer

Размер графа.

.adjList : Array

Список связанных узлов графа.

.nodeInfo : Array

Данные привязанные к узлам графа.

.edges : Object

Рёбра графа.

Методы

.addNode(nodeInfo : Object)

Добавляет новый узел к графу и привязывает к нему данные .nodeInfo.

.removeAll()

Удаляет все узлы и рёбра из графа.

.addEdge(edge : Edge)

Добавляет ребро к графу.

.addNewEdge(v : Integer, w : Integer) → Edge

Добавляет ребро к графу, соединяющее узлы v и w.

.removeEdge(v : Integer, w : Integer)

Удаляет ребро, соединяющее узлы v и w.

.edge(v : Integer, w : Integer) → Edge

Возвращает ребро, соединяющее узлы v и w. Возвращает null в случае, если ребро не найдено.

.adj(v : Integer) → Integer

Возвращает узел, смежный к узлу v.

.node(v : Integer) → Object

Возвращает данные, привязанные к узлу v.

.nodeINdex(nodeInfo : Object) → Integer

Возвращает индекс узла, соответствующего данным .nodeInfo.

.reverse() → DiGraph

Возвращает новый граф с инвертированными рёбрами. Исходный граф не изменяется.

.len() → DiGraph

Возвращает размер графа.

.findInEdges(v : Integer) → Array

Возвращает входящие рёбра узла v.

.findOutEdges(v : Integer) → Array

Возвращает исходящие рёбра узла v.

.disconnect(v : Integer, removeNode : Boolean)

Отделяет узел v от графа. Если removeNode=false (по умолчанию) оставляет данный узел внутри графа. Если removeNode=true также удаляет узел (и связанные с ним данные).

.insert(G : DiGraph, edgesInG : Array, edgesOutG : Array, copyNodeCb : Function, copyEdgeCb : Function)

Вставляет подграф G в граф. Массивы edgesInG и edgesOutG содержат входящие и исходящие рёбра, которые будут использоваться для присоединения подграфа. Опциональные коллбеки copyNodeCb и copyEdgeCb вызываются для каждого узла/ребра, вставляемого в граф.

.vis(labelCallback : Function)

Преобразует граф в формат DOT (Graphviz) и выводит соответствующие данные в браузерную консоль. Необязательный параметр labelCallback используется для присоединения меток к печатаемым узлам графа. В данный коллбек передаются индекс узла и присоединённые данные в качестве параметров.

Исходный файл

О том как получить исходный код этого модуля читайте тут.