Назначение геометрического решателя GCE

В составе геометрического ядра C3D решатель двумерной геометрии имеет внутреннее техническое название – GCE (сокр. Geometric Constraint Engine). GCE является компонентом модуля C3D Solver, включающего в себя еще один компонент – решатель трехмерных сопряжений (GCM). Основное предназначение компонента GCE – это удовлетворение системы ограничений, заданных над геометрическими объектами плоского чертежа (эскиза). Предметом вычислений решателя GCE являются геометрические объекты на плоскости: точка, прямая, окружность, эллипс, сплайн или параметрическая кривая, на которые пользователь накладывает связи в виде ограничений из заданного набора типов, включающий логические ограничения: параллельность, перпендикулярность, касание, точка на кривой, симметрия и разного рода размерные ограничения, задающие расстояния, длины и углы. Решатель также может работать с кривыми, имеющими концы (bounded curves), как например, отрезки (line segments) и дуги окружности (arcs).

Вся функциональность геометрического решателя GCE доступна через заголовочные файлы gce_types.h и gce_api.h и состоит из набора простых структур данных и функций. Система типов решателя отражает основные понятия для формулировки задачи геометрических ограничений чертежа и манипулирования состоянием геометрических объектов. Проблемная область геометрического решателя включает такие понятия, как геометрический объект, геометрическое ограничение, размер, система ограничений, числовая переменная и т.д. Взаимодействие приложения с решателем ограничений осуществляется на основе простых структур данных C++, все они объявлены в файле gce_types.h.