C3D Kernel  104065
Макросы | Функции
Файл gce_api.h

Программный интерфейс решателя геометрических ограничений. Подробнее...

Макросы

#define FB_NULL_GEOM   0

Функции

GCE_system GCE_CreateSystem ()
 Создать пустую систему ограничений.
void GCE_ClearSystem (GCE_system gSys)
 Сделать систему ограничений пустой.
void GCE_RemoveSystem (GCE_system gSys)
 Удалить систему ограничений.
geom_item GCE_AddPoint (GCE_system gSys, GCE_point pVal)
 Добавить в систему ограничений точку.
geom_item GCE_AddLine (GCE_system gSys, const GCE_line &lVal)
 Добавить в систему ограничений прямую.
geom_item GCE_AddLineSeg (GCE_system gSys, geom_item p[2])
 Добавить в систему ограничений отрезок прямой, заданный парой концевых точек.
geom_item GCE_AddCircle (GCE_system gSys, const GCE_circle &cVal)
 Добавить в систему ограничений окружность.
geom_item GCE_AddEllipse (GCE_system gSys, const GCE_ellipse &eVal)
 Добавить в систему ограничений эллипс.
geom_item GCE_AddSpline (GCE_system gSys, const GCE_spline &spl)
 Добавить в систему ограничений сплайн (NURBS)
geom_item GCE_AddParametricCurve (GCE_system gSys, const MbCurve &crv)
 Добавить в систему ограничений параметрическую кривую.
geom_item GCE_AddBoundedCurve (GCE_system gSys, geom_item curve, geom_item p[2])
 Добавить в систему граничную кривую, ограниченную парой точек.
geom_item GCE_AddRigidSet (GCE_system gSys, const std::vector< geom_item > &geoms)
 Добавить в систему жёсткое множество геометрических объектов.
var_item GCE_AddVariable (GCE_system gSys, double val)
 Добавить в систему ограничений переменную.
geom_type GCE_GeomType (GCE_system gSys, geom_item g)
 Тип геометрического объекта.
geom_type GCE_BaseCurveType (GCE_system gSys, geom_item crv)
 Тип геометрической кривой.
bool GCE_RemoveVariable (GCE_system gSys, var_item var)
 Удалить переменную из системы ограничений.
bool GCE_RemoveGeom (GCE_system gSys, geom_item g)
 Удалить геометрический объект из системы ограничений.
bool GCE_RemoveConstraint (GCE_system gSys, constraint_item con)
 Удалить ограничение из системы.
geom_item GCE_PointOf (GCE_system gSys, geom_item g, point_type pnt)
 Запросить дескриптор контрольной точки объекта.
geom_item GCE_SplinePoint (GCE_system gSys, geom_item spl, size_t pntIdx)
 Дескриптор контрольной точки сплайна по индексу.
GCE_vec2d GCE_GetVectorValue (GCE_system gSys, geom_item g, query_geom_type vType)
 Получить текущие координаты вектора.
GCE_point GCE_GetPointXY (GCE_system gSys, geom_item g, point_type pName=GCE_PROPER_POINT)
 Получить текущие координаты точки.
double GCE_GetCoordValue (GCE_system gSys, geom_item g, coord_name cName)
 Получить текущее значение координаты геометрического объекта.
double GCE_GetVarValue (GCE_system gSys, var_item var)
 Получить текущее значение переменной.
bool GCE_SetPointXY (GCE_system gSys, geom_item g, point_type pName, GCE_point xyVal)
 Задать текущие координаты точки.
bool GCE_SetCoordValue (GCE_system gSys, geom_item g, coord_name cName, double crdVal)
 Задать текущее значение координаты геометрического объекта.
bool GCE_SetVarValue (GCE_system gSys, var_item var, double val)
 Задать текущее значение переменной.
bool GCE_FreezeGeom (GCE_system gSys, geom_item g)
 Заморозить геометрический объект.
bool GCE_IsConstrainedGeom (GCE_system gSys, geom_item g)
 Функция отвечает на вопрос: Связан ли геометрический объект ограничениями?
bool GCE_IsSatisfied (GCE_system gSys, constraint_item cItem)
 Выполнить проверку удовлетворенности ограничения.
std::vector< geom_itemGCE_DiagnoseGeometry (GCE_system gcSys)
ptrdiff_t GCE_GetPointDOF (GCE_system gSys, geom_item g, point_type cp, double &dofDir)
 Вычислить степень свободы точки.
GCE_point_dof GCE_PointDOF (GCE_system gSys, geom_item pnt)
 Вычислить степень свободы точки.
int GCE_CoordDOF (GCE_system gSys, geom_item g, coord_name cName)
 Выдать степень свободы геометрической координаты. Система ограничений.
constraint_item GCE_AddUnaryConstraint (GCE_system gSys, constraint_type cType, geom_item geom)
 Задать ограничение для одного объекта (унарное ограничение).
constraint_item GCE_AddCoincidence (GCE_system gSys, geom_item g[2])
 Задать ограничение "Совпадение".
constraint_item GCE_AddPointOnPercent (GCE_system gSys, geom_item curve, geom_item pnt[3], double k)
 Ограничение "Точка на участке кривой по коэффициенту его параметрической длины".
constraint_item GCE_AddPointByMetricPercent (GCE_system gSys, geom_item curve, geom_item pnt[3], double k)
 Ограничение "Точка на участке кривой по коэффициенту его длины".
constraint_item GCE_AddFixCurvePoint (GCE_system gSys, geom_item curve, geom_item pnt)
 Задать ограничение "Фиксация положения точки, лежащей на кривой".
constraint_item GCE_AddPointOnParEllipse (GCE_system gSys, geom_item pnt, geom_item ellipse, double t)
 Задать ограничение "Точка на параметрическом эллипсе".
constraint_item GCE_AddParPointOnCurve (GCE_system gSys, geom_item pnt, geom_item curve, var_item t)
 Задать ограничение "Точка на кривой по параметру".
constraint_item GCE_AddAlignPoints (GCE_system gSys, geom_item p[2], double ang)
 Задать ограничение "Выравнивание точек вдоль заданного направления".
constraint_item GCE_AddAngle (GCE_system gSys, geom_item l1, geom_item l2, const GCE_adim_pars &dPars)
 Задать ограничение "Угловой размер между двумя прямыми".
constraint_item GCE_AddAngleBisector (GCE_system gSys, geom_item l1, geom_item l2, geom_item bl, GCE_bisec_variant variant)
 Задать ограничение "Биссектриса".
constraint_item GCE_AddAngle4P (GCE_system gSys, geom_item fPair[2], geom_item sPair[2], const GCE_adim_pars &dPars)
 Задать угловой размер для четырех точек.
constraint_item GCE_AddColinear (GCE_system gSys, geom_item g[2])
 Задать ограничение "Коллинеарность".
constraint_item GCE_AddColinear3Points (GCE_system gcSys, geom_item pnt[3])
 Задать ограничение "Коллинеарность трех точек".
constraint_item GCE_AddEqualLength (GCE_system gSys, geom_item ls1, geom_item ls2)
 Задать ограничение "Равенство длин" для отрезков.
constraint_item GCE_AddEqualRadius (GCE_system gSys, geom_item c1, geom_item c2)
 Задать ограничение "Равенство радиусов" для двух окружностей (дуг)
constraint_item GCE_AddEqualCurvature (GCE_system gSys, geom_item curves[2], var_item tPars[2])
 Задать ограничение "Равенство кривизны двух кривых в заданных точках".
constraint_item GCE_AddRadiusDimension (GCE_system gSys, geom_item cir, GCE_dim_pars dPar)
 Задать ограничение "Радиусный размер".
constraint_item GCE_AddDiameter (GCE_system gSys, geom_item cir, GCE_dim_pars dPar)
 Задать ограничение "Диаметральный размер".
constraint_item GCE_FixVariable (GCE_system gSys, var_item var)
 Задать ограничение "Управляющий параметр" или "Фиксация переменной".
constraint_item GCE_FixGeom (GCE_system gSys, geom_item g)
 Задать ограничение "Фиксация геометрического объекта".
constraint_item GCE_FixLength (GCE_system gSys, geom_item ls)
 Задать ограничение "Фиксированная длина отрезка".
constraint_item GCE_FixRadius (GCE_system gSys, geom_item circ, coord_name cName=GCE_RADIUS)
 Задать ограничение "Фиксированный радиус".
constraint_item GCE_FixSplineDerivative (GCE_system gSys, geom_item spline, double par, uint derOrder, GCE_vec2d *fixVal=NULL)
 Задать ограничение "Зафиксировать производную сплайна в заданной точке".
constraint_item GCE_AddMiddlePoint (GCE_system gcSys, geom_item pnt[3])
 Задать ограничение "Средняя точка".
constraint_item GCE_AddParallel (GCE_system gSys, geom_item g[2])
 Задать ограничение "Параллельность".
constraint_item GCE_AddPerpendicular (GCE_system gSys, geom_item g[2])
 Задать ограничение "Перпендикулярность".
constraint_item GCE_AddSymmetry (GCE_system gSys, geom_item g[2], geom_item lObj)
 Задать ограничение "Симметрия относительно линейного объекта".
constraint_item GCE_AddTangent (GCE_system gSys, geom_item g[2], var_item tPar[2])
 Задать ограничение "Касание двух кривых".
constraint_item GCE_AddDistance (GCE_system gSys, geom_item g[2], const GCE_ldim_pars &dPars)
 Задать размерное ограничение "Расстояние между объектами".
constraint_item GCE_AddDistance2P (GCE_system gSys, geom_item p[2], const GCE_dim_pars &dPars)
 Задать ограничение "Расстояние между точками".
constraint_item GCE_AddDistancePLs (GCE_system gSys, geom_item p[3], const GCE_dim_pars &dPars)
 Задать ограничение "Расстояние от точки до отрезка".
constraint_item GCE_AddDirectedDistance (GCE_system gSys, geom_item p[2], const GCE_ldim_pars &dPars)
 Задать ограничение "Ориентированное расстояние между точками".
constraint_item GCE_AddLinearEquation (GCE_system gSys, const double *a, const var_item *v, size_t n, double c)
 Задать линейное уравнение.
GCE_result GCE_ChangeDrivingDimension (GCE_system gSys, constraint_item dItem, double dVal)
 Изменить значение управляющего размера.
GCE_result GCE_DeviateDimension (GCE_system gSys, constraint_item dItem, double delta)
 Отклонить ограничение от точки решения.
GCE_result GCE_DeviationTest (GCE_system gSys, constraint_item dItem, double delta)
 Тест избыточности ограничения, основанный на отклонении его от точки решения.
double GCE_DimensionParameter (GCE_system gSys, constraint_item dItem)
 Текущее значение размерного параметра. Функция выдает текущее значение размерного параметра ограничения. Если ограничение не размерное, то функция вернет GCE_UNDEFINED_DBL. Для управляющих размеров будет выдано значение управляющего параметра, которое было задано при создании размера или последним вызовом GCE_ChangeDrivingDimension.
GCE_result GCE_Evaluate (GCE_system gSys)
 Вычислить систему ограничений.
GCE_result GCE_PrepareMovingOfPoint (GCE_system gSys, geom_item obj, point_type pntId, GCE_point curXY)
 Инициализировать режим драггинга контрольной точки объекта.
GCE_result GCE_PrepareDraggingPoint (GCE_system gSys, GCE_dragging_point drgPnt, GCE_point curXY)
 Инициализировать режим драггинга контрольной точки объекта.
GCE_result GCE_PrepareDraggingPoint (GCE_system gSys, const std::vector< GCE_dragging_point > &cPntArr, GCE_point curXY)
 Инициализировать режим драггинга контрольной точки множества объектов.
GCE_result GCE_PrepareMovingGeoms (GCE_system gSys, std::vector< geom_item > &geoms, GCE_point curXY)
 Инициализировать режим перетаскивания множества объектов. Система ограничений.
GCE_result GCE_MovePoint (GCE_system gcSys, GCE_point curXY)
 Переместить точку драггинга.
GCE_result GCE_Transform (GCE_system gSys, const MbMatrix &mat)
bool GCE_SetJournal (GCE_system gSys, const char *fName)
 Включить журналирование и назначить файл для записи журнала вызовов API.
bool GCE_DeviateDimension (GCE_system gSys, constraint_item dItem, double delta, GCE_result &errCode)
 Устаревшая функция. Вызов будет удален в одной из следующих версий. Рекомендуется использовать новую функцию: GCE_DeviateDimension( GCE_system gSys, constraint_item dItem, double delta )
bool GCE_DeviationTest (GCE_system gSys, constraint_item dItem, double delta, GCE_result &errCode)
 Устаревшая функция. Вызов будет удален в одной из следующих версий. Рекомендуется использовать новую функцию: GCE_DeviationTest( GCE_system gSys, constraint_item dItem, double delta )
geom_item GCE_AddSpline (GCE_system gSys, const MbPolyCurve &crv)
geom_item GCE_AddPoint (GCE_system gSys, GCE_point pVal, int)
GCE_system GCE_CreateSystem (void *)
constraint_item GCE_AddDirectedDistance2P (GCE_system gSys, geom_item p[2], const GCE_ldim_pars &dPars)
constraint_item GCE_AddAlignPoints (GCE_system gSys, geom_item p[2], bool hor)
constraint_item GCE_AddFixedLength (GCE_system, geom_item)
constraint_item GCE_AddFixVariable (GCE_system, var_item)
constraint_item GCE_AddIncidence (GCE_system, geom_item, geom_item)
 Задать ограничение "Точка на кривой".
GCE_result GCE_PrepareMovingOfPoint (GCE_system gSys, const std::vector< geom_point > &cPntArr, GCE_point curXY)

Подробное описание

Программный интерфейс геометрического решателя представляет собой набор типов данных и функций, необходимых для решения задачи геометрических ограничений. Предметная область решателя предусматривает такие типы, как "геометрический объект", "геометрическое ограничение", "система ограничений". Базовые типы решателя объявлены в заголовочном файле <gce_types.h>. Вызовы функций и их аргументы подобраны таким образом, что бы наиболее удобно осуществлять формулировку задачи для решателя в терминах объектов и ограничений. Названия многих типов данных и вызовов API начинаются префиксом GCE, сокращенно Geometric Constraint Engine.

Функции API решателя можно подразделить на такие группы: 1) Функции GCE_CreateSystem, GCE_ClearSystem, GCE_RemoveSystem позволяют создавать и удалять систему ограничений в целом;
2) С помощью функций вида GCE_Add_XXXXXXX осуществляется формулировка задачи ограничений, с их помощью в систему добавляются объекты и ограничения;
3) Функции вида GCE_Change_XXXXXXX, GCE_Set_XXXXXXX позволяют менять размеры и состояние объектов;
4) Функции для запросов такие, как GCE_Get_XXXXXXX, GCE_SplinePoint, GCE_IsXXXXX, GCE_PointDOF и т.д. позволяют осуществлять запросы о состоянии объектов или их свойств, узнать степень свободы объектов и прочие характеристики;
5) Метод GCE_Evaluate вычисляет состояния системы ограничений, в котором все ограничения удовлетворены, или возвращает код ошибки при невозможности найти решение.
6) Другая группа вызовов отвечает за способы управления недоопределенной системой ограничений. Вызовы GCE_PrepareDraggingPoint, GCE_MovePoint обеспечивают интерактивную манипуляцию объектами чертежа/эскиза.

 Указатель Классы Пространства имен Файлы Функции Переменные Определения типов Перечисления Элементы перечислений Друзья Макросы