diff --git a/graph.js b/graph.js index 6435466..36c4b21 100644 --- a/graph.js +++ b/graph.js @@ -36,7 +36,8 @@ class graph { both: ['wrapper'], left: ['left'], right: ['right'] - } + }, + animation: ['animation'] }, connection: { shell: ['connections'], @@ -75,130 +76,93 @@ class graph { #inputs = new Set(); // Прочитать реестр входящих соединений - get inputs() { - return this.#inputs; - } + get inputs() { return this.#inputs } // Реестр исходящих соединений #outputs = new Set(); // Прочитать реестр исходящих соединений - get outputs() { - return this.#outputs; - } + get outputs() { return this.#outputs } // Оператор #operator; // Прочитать оператора - get operator() { - return this.#operator; - } + get operator() { return this.#operator } // HTML-элемент-оболочка #shell; // Прочитать HTML-элемент-оболочка - get shell() { - return this.#shell; - } + get shell() { return this.#shell } // HTML-элемент #element; // Прочитать HTML-элемент - get element() { - return this.#element; - } + get element() { return this.#element } // Наблюдатель #observer = null; // Прочитать наблюдатель - get observer() { - return this.#observer; - } + get observer() { return this.#observer } // Реестр запрещённых к изменению параметров #block = new Set(['events']); // Прочитать реестр запрещённых к изменению параметров - get block() { - return this.#block; - } + get block() { return this.#block } // Диаметр узла #diameter = 100; // Прочитать диаметр узла - get diameter() { - return this.#diameter; - } + get diameter() { return this.#diameter } // Степень увеличения диаметра #increase = 0; // Прочитать степень увеличения диаметра - get increase() { - return this.#increase; - } + get increase() { return this.#increase } // Величина степени увеличения диаметра #addition = 12; // Прочитать величину степени увеличения диаметра - get addition() { - return this.#addition; - } + get addition() { return this.#addition } // Величина степени увеличения притягивания и отталкивания #shift = 0; // Прочитать величину степени увеличения притягивания и отталкивания - get shift() { - return this.#shift; - } - - // Глобальный счётчик итераций - iteration = 0; - - // Ограничение максимального количества всех итераций - limit = 3000; + get shift() { return this.#shift } /** * Обработка событий * * max - максимум итераций в процессе * current - текущая итерация в процессе - * flow - максимум итераций в потоке */ actions = { collision: { active: false, max: 100, - current: 0, - flow: { - medium: 30, - hard: 300 - } + current: 0 }, pushing: { active: true, max: 100, - current: 0, - flow: { - medium: 30, - hard: 300 - } + current: 0 }, pulling: { active: false, max: 100, - current: 0, - flow: { - medium: 30, - hard: 300 - } + current: 0 + }, + move: { + active: true, + status: false } }; @@ -223,6 +187,61 @@ class graph { */ pullings = new Set; + /** + * Расчёт времени анимации + */ + #timing = 'cubic-bezier(0, 1, 1, 1)'; + + /** + * Прочитать расчёт времени анимации + */ + get timing() { return this.#timing } + + /** + * Длительность анимации (в секундах) + */ + #duration = '3'; + + /** + * Прочитать длительность анимации (в секундах) + */ + get duration() { return this.#duration } + + /** + * Анимация (HTMLElement