You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Графический движок неплохо справляется с построением сложных изделий - подтверждено практикой на больших масштабах. Вместе с тем, выявлены недостатки объектной модели:
Элементы построителя живут каждый своей жизнью, граф узлов и рёбер вычисляется динамически, при каждой перерисовке изделия. Как следствие:
Плохая устойчивость изделия к деформациям, неочевидное для пользователей поведение при сдвигах узлов и элементов
Высокие затраты процессорного времени для расчета координат и путей
Плохая структура кода и невнятный жизненный цикл BuilderElement, при котором смешаны пересчет и отрисовка
Решено, дополнить класс Scheme свойством Skeleton, содержащим Nodes (семейство узлов изделия) и Ribs (семейство рёбер, как основу профилей и заполнений).
Скелетон сможет с высокой скоростью обрабатывать запросы о положении, примыкании и пересечении элементов и безопасно выполнять команды деформации.
Три зайца окажутся убитыми наповал:
На больших витражах, ожидается рост скорости рендеринга на два порядка (10ms вместо сегодняшней секунды)
Исключены отрывы узлов, перескоки створок и прочие чудеса при деформациях изделия
Заработает undo-redo, т.к. команды на деформацию примут явный вид, их можно будет запомнить в history и путешествовать во времени
The text was updated successfully, but these errors were encountered:
Сейчас, метод move_points() есть у проекта и профиля. Его вызывает либо инструмент select_node, когда человек тянет мышью узлы и элементы, либо DimensionLine при изменении размеров. Так же, метод могут вызывать внешние скрипты при невизуальном редактировании.
Очевидно, что метод move_points() должен появиться и у скелетона, но его поведение и визуализация будут несколько иными:
move_points() скелетона не изменяет проект и фактически, узлы не двигает. Метод лишь оценивает, можно ли сдвинуть узлы в заданную точку и возвращает дельту сдвига с учетом ограничений графа
При интерактивных сдвигах, скелетон рисует упрощенную визуализацию, а фактический сдвиг происходит по событию mouseup, если изменение инициировано инструментом или при ненулевой дельте, если инициатор - размерная линия
Графический движок неплохо справляется с построением сложных изделий - подтверждено практикой на больших масштабах. Вместе с тем, выявлены недостатки объектной модели:
BuilderElement
, при котором смешаны пересчет и отрисовкаРешено, дополнить класс
Scheme
свойствомSkeleton
, содержащимNodes
(семейство узлов изделия) иRibs
(семейство рёбер, как основу профилей и заполнений).Скелетон сможет с высокой скоростью обрабатывать запросы о положении, примыкании и пересечении элементов и безопасно выполнять команды деформации.
Три зайца окажутся убитыми наповал:
The text was updated successfully, but these errors were encountered: