oknosoft / windowbuilder

Окнософт:Заказ дилера
http://www.oknosoft.ru/zd/
Other
10 stars 19 forks source link

Новые классы в рисовалке (Скелетон) #566

Open unpete opened 4 years ago

unpete commented 4 years ago

Графический движок неплохо справляется с построением сложных изделий - подтверждено практикой на больших масштабах. Вместе с тем, выявлены недостатки объектной модели:

Элементы построителя живут каждый своей жизнью, граф узлов и рёбер вычисляется динамически, при каждой перерисовке изделия. Как следствие:

Решено, дополнить класс Scheme свойством Skeleton, содержащим Nodes (семейство узлов изделия) и Ribs (семейство рёбер, как основу профилей и заполнений). Скелетон сможет с высокой скоростью обрабатывать запросы о положении, примыкании и пересечении элементов и безопасно выполнять команды деформации.

Три зайца окажутся убитыми наповал:

unpete commented 4 years ago

Ключевые изменения в жизненном цикле элементов построителя:

unpete commented 4 years ago

move_points

Сейчас, метод move_points() есть у проекта и профиля. Его вызывает либо инструмент select_node, когда человек тянет мышью узлы и элементы, либо DimensionLine при изменении размеров. Так же, метод могут вызывать внешние скрипты при невизуальном редактировании. Очевидно, что метод move_points() должен появиться и у скелетона, но его поведение и визуализация будут несколько иными: