C3D Toolkit  Kernel - 107186, Vision - 190715.107186
+ Граф связей класса Интерфейс:

Классы

struct  GCE_callback_table
 Структура, объединяющая обратные вызовы двухмерного решателя. Таблица функций, определяемых на стороне пользовательского приложения для "тонкой настройки" решателя. Подробнее...
 
struct  MbGeomTol
 Допуски для оценки точности геометрии. Подробнее...
 
struct  GcPrecision
 Фиксированные точности решения задач двумерной параметризации и иные константы. Подробнее...
 
struct  GCE_vec2d
 Координаты вектора. Подробнее...
 
struct  GCE_vecNd
 Координаты вектора n-й размерности. Подробнее...
 
struct  GCE_point
 Координаты точки на плоскости. Подробнее...
 
struct  GCE_point_dof
 Степень свободы точки. Подробнее...
 
struct  GCE_line
 Координаты прямой на плоскости. Подробнее...
 
struct  GCE_circle
 Координаты окружности. Подробнее...
 
struct  GCE_ellipse
 Координаты эллипса. Подробнее...
 
struct  GCE_spline
 Координаты и характеристики сплайна. Подробнее...
 
struct  GCE_dim_pars
 Параметры размерного ограничения. Подробнее...
 
struct  GCE_adim_pars
 Параметры углового размерного ограничения. Структура данных передает настройки для создания угловых размеров. Помимо общих настроек, передаваемых через структуру GCE_dim_pars, здесь добавлен флаг типа угла и множитель пересчета угла в переменную.
. Подробнее...
 
struct  GCE_ldim_pars
 Параметры линейного размерного ограничения. dirAngle - значение угла в радианах, задающее направление ориентируемых размеров. Пока используется только для GCE_AddDirectedDistance2P.
. Подробнее...
 
struct  GCE_dragging_point
 Контрольная точка драггинга. GCE_dragging_point::geom - Дескриптор геометрического объекта, выбранного для воздействия с помощью функции драггинга ( GCE_PrepareDraggingPoint).
GCE_dragging_point::point - Дескриптор контрольной точки геометрического объекта драггинга. Подробнее...
 
struct  GCE_diagnostic_pars
 Диагностические характеристики системы ограничений. Подробнее...
 

Определения типов

typedef void * GCE_app_geom
 Geometric object of the application using the solver.
 
typedef void(* GCE_geom_registered) (GCE_app_geom ag)
 Application geom was registered in the solver.
 
typedef bool(* GCE_abort) ()
 Query to interrupt calculations.
 
typedef int8 sign_t
 Число из дисткретного множества {-1,0,1}.
 
typedef void * GCE_system
 Система геометрических ограничений. Подробнее...
 
typedef size_t geom_item
 Дескриптор геометрического объекта, зарегистрированного в контексте решателя.
 
typedef size_t constraint_item
 Дескриптор ограничения, зарегистрированного в решателе.
 
typedef size_t var_item
 Дескриптор переменной, зарегистрированной в решателе.
 
typedef query_geom_type point_type
 Тип запрашиваемой точки (используется, как подмножество значений query_geom_type).
 

Перечисления

enum  GCE_s_state { GCE_STATE_Unknown = 0, GCE_STATE_WellConstrained, GCE_STATE_UnderConstrained, GCE_STATE_OverConstrained }
 Состояние определенности системы геометрических ограничений. Подробнее...
 
enum  geom_type {
  GCE_ANY_GEOM, GCE_POINT, GCE_LINE, GCE_CIRCLE,
  GCE_ELLIPSE, GCE_SPLINE, GCE_PARAMETRIC_CURVE, GCE_BOUNDED_CURVE,
  GCE_LINE_SEGMENT, GCE_SET
}
 Словарь типов геометрических примитивов. Подробнее...
 
enum  query_geom_type {
  GCE_FIRST_PTYPE = 0, GCE_IMPROPER_POINT = 0, GCE_FIRST_END, GCE_SECOND_END,
  GCE_CENTRE, GCE_PROPER_POINT, GCE_Q1, GCE_Q2,
  GCE_Q3, GCE_Q4, GCE_LOCATION_POINT, GCE_LAST_PTYPE,
  GCE_DIRECTION
}
 Варианты контрольных точек, запрашиваемых у геометрического объекта. Это перечисление применяется для запроса дескриптора характерных точке объекта, таких как центр окружности, концевая точка кривой и т.д... Подробнее...
 
enum  coord_name { ,
  GCE_Y, GCE_ACRD, GCE_DCRD, GCE_RADIUS,
  GCE_MAJOR_RADIUS, GCE_MINOR_RADIUS, GCE_NULL_CRD
}
 Перечисление координат геометрических объектов. Подробнее...
 
enum  constraint_type { ,
  GCE_HORIZONTAL, GCE_VERTICAL, GCE_LENGTH, GCE_COINCIDENT,
  GCE_EQUAL_LENGTH, GCE_EQUAL_RADIUS, GCE_PARALLEL, GCE_PERPENDICULAR,
  GCE_TANGENT, GCE_COLINEAR, GCE_ALIGN_2P, GCE_CURVATURE_EQUALITY,
  GCE_ANGLE_BISECTOR, GCE_MIDDLE_POINT, GCE_COLINEAR_3P, GCE_SYMMETRIC ,
  GCE_CONSTRAINTS_COUNT, GCE_UNKNOWN = GCE_CONSTRAINTS_COUNT
}
 Идентификатор типа 2D ограничения. Подробнее...
 
enum  GCE_result {
  GCE_RESULT_None = 0, GCE_RESULT_Ok = 1, GCE_RESULT_Satisfied = 1, GCE_RESULT_Not_Satisfied = 2,
  GCE_RESULT_Overconstrained = 3, GCE_RESULT_InvalidGeometry = 4, GCE_RESULT_MovingOfFixedGeom = 5, GCE_RESULT_Unregistered = 6,
  GCE_RESULT_SystemError = 7, GCE_RESULT_NullSystem = 8, GCE_RESULT_CircleCantStretched = 9, GCE_RESULT_SingularMatrix = 10,
  GCE_RESULT_DegenerateScalingFactor = 11, GCE_RESULT_InvalidDimensionTransform = 12, GCE_RESULT_Aborted
}
 Диагностические коды выполнения функций геометрического решателя. Подробнее...
 
enum  GCE_c_status { , GCE_STATUS_IllConditioned = 3, GCE_STATUS_Redundant = 4 }
 Статус геометрического ограничения. Статус ограничения подразумевает деление системы ограничения на подмножества, которые маркируются следующим образом:
Ограничения, помеченые GCE_STATUS_WellTreated и GCE_STATUS_WellConditioned образуют хорошо-обрабатываемую решателем часть системы ограничений, не содержащую переопределений и обычно вычисляемую без противоречий.
Ограничения, помеченные статусами GCE_STATUS_WellConditioned и GCE_STATUS_IllConditioned вместе образуют группу взаимосвязанных ограничений, которые обычно решаются без противоречий, но потенциально могут противоречить друг другу при участии размеров. Те из них, что помечены GCE_STATUS_IllConditioned создают условия для решаемости хуже, чем GCE_STATUS_WellConditioned.
Статусом GCE_STATUS_Redundant решатель помечает лишние ограничения, которые можно удалить из системы ограничений. Обычно такие ограничения исполняются за счет других ограничений или создают ситуацию переопределенности (несовместная система ограничений).
Статусом GCE_STATUS_OverConstrained помечаются те из ограничений, которые остались не решенными по причине несовместной переопределенности. Ограничения со статусами GCE_STATUS_Redundant и GCE_STATUS_OverConstrained могут находится в противоречии с другими ограничениями кроме тех, что помечены GCE_STATUS_WellTreated. Подробнее...
 
enum  GCE_bisec_variant { GCE_BISEC_CLOSEST = 0, GCE_BISEC_MINUS = 1, GCE_BISEC_PLUS = 2 }
 Вариант решения биссектрисы для двух прямых. Подробнее...
 

Функции

bool GCE_CheckPointSatisfaction (GCE_system gSys, geom_item pnt, point_type cp, double px, double py)
 Проверка: Останется ли система удовлетворенной, если изменить координаты точки. Функция работает корректно, если на момент её вызова система ограничений решена. При проверке не происходит пробного перерешивания системы, а оценивается лишь удовлетворенность смежных ограничений при новом параметре (px,py). Функция может быть применена для оценки области значений(окрестность некоторой погрешности) точки, в которой система остается удовлетворенной.
 
GCE_s_state GCE_StateOfSystem (GCE_system gSys)
 Выдать состояние системы ограничений. Система ограничений. Подробнее...
 
GCE_result GCE_CheckSatisfaction (GCE_system gSys, VERSION c3dVer=GetCurrentMathFileVersion())
 Проверить, удовлетворена ли система ограничений. Подробнее...
 
bool GCE_GetOutVarCoordinates (GCE_system gcContext, const SArray< var_item > &in_coords, const SArray< constraint_item > &drvCons, SArray< var_item > &outCoords)
 Выдать координаты переменных геометрической модели, значения которых не зависят от изменения входных переменных in_coords;.
 
constraint_item GCE_FixCoordinate (GCE_system gSys, geom_item g, coord_name crd)
 Задать фиксацию координаты параметрического объекта
 
constraint_item GCE_FormCirDimension (GCE_system gcContext, geom_item cir, GCE_dim_pars dPars, bool diam)
 Задать ограничение "Радиальный размер". Подробнее...
 
void GCE_ResetMovingMode (GCE_system)
 Отменить режим драггинга
 
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)
 Выполнить проверку удовлетворенности ограничения. Подробнее...
 
GCE_c_status GCE_ConstraintStatus (GCE_system gSys, constraint_item cItem)
 Статус ограничения в системе. Вызов показывает результат диагностики, которая выделяет в системе ограничений хорошо-обусловленные части и части, содержащие переопределения и противоречия. В результате диагностики или попытки решения каждое ограничение помечается одним из статусов, перечисленных в наборе GCE_c_status. Подробнее...
 
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_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_callback_tableGCE_InitCallbacks (GCE_callback_table &)
 Установить и вернуть структуру с функциями обратного вызова по умолчанию. Подробнее...
 
GCE_result GCE_Register (GCE_system gSys, const GCE_callback_table &cbTable)
 Зарегистрировать таблицу обратных вызовов для новой системы ограничений. Подробнее...
 
void GCE_Bind (GCE_system, geom_item, GCE_app_geom)
 Associate an application geometry an a solver's descriptor.
 
constraint_item GCE_AddEquation (GCE_system gSys, ItAlgebraicConstraint &iEqu, size_t varsCount, const var_item *varsVector)
 Задать ограничение, реализуемое на стороне клиента Подробнее...
 
bool GCE_IsAdjacentConstraint (GCE_system gSys, geom_item g, constraint_item c)
 Определить смежные ли это ограничение и геометрический объект
 
MbCartPoint GCE_GetPoint (GCE_system gSys, geom_item g, point_type pName=GCE_PROPER_POINT)
 Получить текущие координаты точки Подробнее...
 
bool OK (GCE_result resCode)
 Вернет 'true' в случае успешного результата.
 

Переменные

const GCE_app_geom GCE_NOGEOM = 0
 Означает неопределенный объект пользовательского приложения.
 
const size_t GCE_NULL = SYS_MAX_T
 Неопределенное значение дескриптора или пустого объекта.
 
const geom_item GCE_NULL_G = GCE_NULL
 Неопределенное значение дескриптора типа geom_item.
 
const var_item GCE_NULL_V = GCE_NULL
 Неопределенное значение дескриптора типа var_item.
 
const constraint_item GCE_NULL_C = GCE_NULL
 Неопределенное значение дескриптора типа constraint_item.
 
const double GCE_UNDEFINED_DBL = UNDEFINED_DBL
 Не определенное значение числа double.
 

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

Типы

◆ GCE_system

typedef void* GCE_system

Система геометрических ограничений.

GCE_system является типом данных, который обозначает систему ограничений, которая создается с помощью вызова GCE_CreateSystem. Реально, этот тип является указателем на внутреннюю структуру данных, где содержится система ограничений и различные рабочие данные, определяющие её внутреннее состояние. Время жизни системы ограничений заканчивается только, когда к ней будет применен вызов API GCE_RemoveSystem, после чего значение GCE_system становится недействительным.

Перечисления

◆ GCE_s_state

Состояние определенности системы геометрических ограничений.

Элементы перечислений
GCE_STATE_Unknown 

О состоянии ничего не известно.

GCE_STATE_WellConstrained 

Полностью определенная система - не имеет степеней свобод.

GCE_STATE_UnderConstrained 

Недоопределенная система - имеются степени свободы.

GCE_STATE_OverConstrained 

Переопределенная система - система ограничений несовместна.

◆ geom_type

enum geom_type

Словарь типов геометрических примитивов.

Элементы перечислений
GCE_ANY_GEOM 

Неизвестный тип.

GCE_POINT 

Точка на плоскости.

GCE_LINE 

Прямая на плоскости.

GCE_CIRCLE 

Окружность на плоскости.

GCE_ELLIPSE 

Эллипс на плоскости.

GCE_SPLINE 

Сплайн на плоскости.

GCE_PARAMETRIC_CURVE 

Параметрическая кривая на плоскости.

GCE_BOUNDED_CURVE 

Ограниченная двумя точками, кривая.

GCE_LINE_SEGMENT 

Отрезок прямой.

GCE_SET 

Подмножество геометрических объектов.

◆ query_geom_type

Варианты контрольных точек, запрашиваемых у геометрического объекта. Это перечисление применяется для запроса дескриптора характерных точке объекта, таких как центр окружности, концевая точка кривой и т.д...

Элементы перечислений
GCE_FIRST_PTYPE 

Значение начинающее последовательность вариантов.

GCE_IMPROPER_POINT 

Точка, не принадлежащая объекту.

GCE_FIRST_END 

Первый конец ограниченной кривой.

GCE_SECOND_END 

Второй конец ограниченной кривой.

GCE_CENTRE 

Центр окружности (дуги) или эллипса.

GCE_PROPER_POINT 

Собственно точка.

GCE_Q1 

Квадрантная точка эллипса (3 часа).

GCE_Q2 

Квадрантная точка эллипса (12 часов).

GCE_Q3 

Квадрантная точка эллипса (6 часов).

GCE_Q4 

Квадрантная точка эллипса (9 часов).

GCE_LOCATION_POINT 

Точка размещения геометрического объекта.

GCE_LAST_PTYPE 

Значение завершающее последовательность вариантов.

GCE_DIRECTION 

Направляющий вектор эллипса (направление "большой" полуоси ).

Единичный вектор ориентации: Нормаль прямой, направление "большой" полуоси эллипса.

◆ coord_name

enum coord_name

Перечисление координат геометрических объектов.

Элементы перечислений
GCE_Y 

Координаты точки или вектора.

GCE_ACRD 

Угол нормали прямой, угол наклона эллипса.

GCE_DCRD 

Координата смещения прямой, расстояние от начала координат до прямой.

GCE_RADIUS 

Радиус окружности.

GCE_MAJOR_RADIUS 

"Главная" полуось эллипса.

GCE_MINOR_RADIUS 

"Малая" полуось эллипса.

GCE_NULL_CRD 

Пустая (несуществующая) координата.

◆ constraint_type

Идентификатор типа 2D ограничения.

Внимание
На самом деле решатель поддерживает другие ограничения, кроме перечисленных. См. вызовы API в 'gce_api.h'
Элементы перечислений
GCE_HORIZONTAL 

Горизонтальность прямой или отрезка.

GCE_VERTICAL 

Вертикальность прямой или отрезка.

GCE_LENGTH 

Фиксация длины отрезка.

GCE_COINCIDENT 

Совпадение пары геометрических объектов.

GCE_EQUAL_LENGTH 

Равенство длин пары отрезков.

GCE_EQUAL_RADIUS 

Равенство радиусов пары окружностей.

GCE_PARALLEL 

Параллельность пары прямых или отрезков.

GCE_PERPENDICULAR 

Перпендикулярность пары прямых или отрезков.

GCE_TANGENT 

Касание пары кривых.

GCE_COLINEAR 

Коллинеарность пары прямых или отрезков.

GCE_ALIGN_2P 

Выравнивание пары точек вдоль направления.

GCE_CURVATURE_EQUALITY 

Равенство кривизны кривых в точках.

GCE_ANGLE_BISECTOR 

Биссектриса угла.

GCE_MIDDLE_POINT 

Средняя точка.

GCE_COLINEAR_3P 

Коллинеарность тройки точек.

GCE_SYMMETRIC 

Симметричность.

GCE_CONSTRAINTS_COUNT 

Количество типов.

GCE_UNKNOWN 

Неизвестный тип ограничения.

◆ GCE_result

enum GCE_result

Диагностические коды выполнения функций геометрического решателя.

Элементы перечислений
GCE_RESULT_None 

Нет результата (пустое сообщение).

GCE_RESULT_Ok 

Успешный результат.

GCE_RESULT_Satisfied 

Ограничение удовлетворено.

GCE_RESULT_Not_Satisfied 

Система ограничений не решена.

GCE_RESULT_Overconstrained 

Переопределенная (несовместная) система ограничений.

GCE_RESULT_InvalidGeometry 

Решение привело в нарушению геометрии.

GCE_RESULT_MovingOfFixedGeom 

Попытка перемещения фиксированного объекта.

GCE_RESULT_Unregistered 

Обращение к недействительному объекту.

GCE_RESULT_SystemError 

Внутренняя системная ошибка.

GCE_RESULT_NullSystem 

Обращение к недействительной системе ограничений.

GCE_RESULT_CircleCantStretched 

Окружность не может быть масштабирована с разными коэффициентами по осям (растяжение).

GCE_RESULT_SingularMatrix 

Прислали вырожденную матрицу трансформации.

GCE_RESULT_DegenerateScalingFactor 

Вырожденный коэффициент масштабирования.

GCE_RESULT_InvalidDimensionTransform 

Неудачное преобразование размера.

GCE_RESULT_Aborted 

Процесс вычислений был прерван по запросу приложения.

◆ GCE_c_status

Статус геометрического ограничения. Статус ограничения подразумевает деление системы ограничения на подмножества, которые маркируются следующим образом:
Ограничения, помеченые GCE_STATUS_WellTreated и GCE_STATUS_WellConditioned образуют хорошо-обрабатываемую решателем часть системы ограничений, не содержащую переопределений и обычно вычисляемую без противоречий.
Ограничения, помеченные статусами GCE_STATUS_WellConditioned и GCE_STATUS_IllConditioned вместе образуют группу взаимосвязанных ограничений, которые обычно решаются без противоречий, но потенциально могут противоречить друг другу при участии размеров. Те из них, что помечены GCE_STATUS_IllConditioned создают условия для решаемости хуже, чем GCE_STATUS_WellConditioned.
Статусом GCE_STATUS_Redundant решатель помечает лишние ограничения, которые можно удалить из системы ограничений. Обычно такие ограничения исполняются за счет других ограничений или создают ситуацию переопределенности (несовместная система ограничений).
Статусом GCE_STATUS_OverConstrained помечаются те из ограничений, которые остались не решенными по причине несовместной переопределенности. Ограничения со статусами GCE_STATUS_Redundant и GCE_STATUS_OverConstrained могут находится в противоречии с другими ограничениями кроме тех, что помечены GCE_STATUS_WellTreated.

The status of a constraint implies the division of the system into subsets, which are labeled as follows:
Constraints marked with the GCE_STATUS_WellConditioned and GCE_STATUS_IllConditioned statuses together form a group of interrelated constraints, which are usually resolved without contradiction, but can potentially contradict each other with the presence of dimensions.
Constraints marked with GCE_STATUS_WellConditioned and GCE_STATUS_IllConditioned statuses together form a group of interrelated constraints that are usually resolved without contradiction, but potentially contradictory with dimensions. Those that are labeled GCE_STATUS_IllConditioned make conditions for evaluating worse, than GCE_STATUS_WellConditioned.
The status of GCE_STATUS_Redundant solver marks the extra constraints that can be removed. from the constraint system. Usually such constraints are enforced by other constraints. or create an overdefined situation (incompatible constraint system).
The status GCE_STATUS_OverConstrained marks those of constraints that was not solved due to inconsistent overdefining. Constraints with GCE_STATUS_Redundant and GCE_STATUS_OverConstrained statuses may conflict with other constraints except those marked with GCE_STATUS_WellTreated.

Элементы перечислений
GCE_STATUS_IllConditioned 

/ru Ограничения из плохо-обусловленной части. /en A constraint of ill-condition

GCE_STATUS_Redundant 

/ru Ограничение игнорируется решателем по причине избыточности. // en A constraint is ignored by the solving process beacause of the redundancy.

◆ GCE_bisec_variant

Вариант решения биссектрисы для двух прямых.

Элементы перечислений
GCE_BISEC_CLOSEST 

Неопределенное направление (ближайшее решение).

GCE_BISEC_MINUS 

Биссектриса вдоль суммы направлений прямых/отрезков.

GCE_BISEC_PLUS 

Биссектриса вдоль разности нормалей прямых/отрезков.

Функции

◆ GCE_StateOfSystem()

GCE_s_state GCE_StateOfSystem ( GCE_system  gSys)

Выдать состояние системы ограничений. Система ограничений.

Возвращает
Одно из состояний, перечисленного набором: "Система недоопределена", "Полностью определена" или "Переопределена".
Заметки
Сложность выполнения функции эквивалентна запросу GCE_PointDOF.

◆ GCE_CheckSatisfaction()

GCE_result GCE_CheckSatisfaction ( GCE_system  gSys,
VERSION  c3dVer = GetCurrentMathFileVersion() 
)

Проверить, удовлетворена ли система ограничений.

For internal use only!

Аргументы
gSys- Контекст решателя.
c3dVer- Версия ядра c3d.
Возвращает
Код результата вычислений.

◆ GCE_FormCirDimension()

constraint_item GCE_FormCirDimension ( GCE_system  gcContext,
geom_item  cir,
GCE_dim_pars  dPars,
bool  diam 
)

Задать ограничение "Радиальный размер".

Аргументы
cir- окружность или дуга


Аргументы
diam- признак диаметрального размера

◆ GCE_CreateSystem() [1/2]

GCE_system GCE_CreateSystem ( )

Создать пустую систему ограничений.

Вызов создает пустую систему ограничений. Кроме того, в памяти создаются внутренние структуры данных геометрического решателя, обслуживающего систему ограничений. Функция возвращает специальный дескриптор, по которому система ограничений доступна для различных манипуляций: добавление или удаление геометрических объектов, ограничений, варьирование размеров, драггинг недоопределенных объектов и т.д.

Возвращает
Дескриптор системы ограничений.

◆ GCE_ClearSystem()

void GCE_ClearSystem ( GCE_system  gSys)

Сделать систему ограничений пустой.

Данный метод делает систему ограничений пустой при этом дескриптор gSys остается действительным, т.е. можно осуществлять дальнейшую работу с системой ограничений.

Аргументы
[in]gSys- Система ограничений.
См. также
GCE_RemoveSystem

◆ GCE_RemoveSystem()

void GCE_RemoveSystem ( GCE_system  gSys)

Удалить систему ограничений.

Данный метод делает систему ограничений недействительной. Осуществляется освобождение ОЗУ от внутренних структур данных, обслуживающих систему ограничений.

Аргументы
[in]gSys- Система ограничений.
См. также
GCE_ClearSystem

◆ GCE_AddPoint() [1/2]

geom_item GCE_AddPoint ( GCE_system  gSys,
GCE_point  pVal 
)

Добавить в систему ограничений точку.

Аргументы
[in]gSys- Система ограничений.
[in]pVal- Координаты точки.
Возвращает
Дескриптор зарегистрированной точки.

◆ GCE_AddLine()

geom_item GCE_AddLine ( GCE_system  gSys,
const GCE_line lVal 
)

Добавить в систему ограничений прямую.

Аргументы
[in]gSys- Система ограничений.
[in]lVal- Координаты прямой.
Возвращает
Дескриптор зарегистрированной прямой.

◆ GCE_AddLineSeg()

geom_item GCE_AddLineSeg ( GCE_system  gSys,
geom_item  p[2] 
)

Добавить в систему ограничений отрезок прямой, заданный парой концевых точек.

Аргументы
[in]gSys- Система ограничений.
[in]p- Дескрипторы конечных точек отрезка.
Возвращает
Дескриптор зарегистрированного отрезка.

Для отрезка, созданного через данный вызов, действительны все типы ограничений, которые применимы для прямой, создаваемой вызовом GCE_AddLine.

◆ GCE_AddCircle()

geom_item GCE_AddCircle ( GCE_system  gSys,
const GCE_circle cVal 
)

Добавить в систему ограничений окружность.

Аргументы
[in]gSys- Система ограничений.
[in]cVal- Координаты окружности.
Возвращает
Дескриптор зарегистрированной окружности.

◆ GCE_AddEllipse()

geom_item GCE_AddEllipse ( GCE_system  gSys,
const GCE_ellipse eVal 
)

Добавить в систему ограничений эллипс.

Аргументы
[in]gSysСистема ограничений.
[in]eValКоординаты эллипса.
Возвращает
Дескриптор зарегистрированного эллипса.

◆ GCE_AddSpline()

geom_item GCE_AddSpline ( GCE_system  gSys,
const GCE_spline spl 
)

Добавить в систему ограничений сплайн (NURBS)

Аргументы
[in]gSys- Система ограничений.
[in]spl- Координаты сплайна.
Возвращает
Дескриптор зарегистрированного сплайна.

◆ GCE_AddParametricCurve()

geom_item GCE_AddParametricCurve ( GCE_system  gSys,
const MbCurve crv 
)

Добавить в систему ограничений параметрическую кривую.

Аргументы
[in]gSys- Система ограничений.
[in]crv- Математическое описание параметрической кривой.
Возвращает
Дескриптор зарегистрированной параметрической кривой.
Внимание
Время жизни экземпляра класса crv опирается на счетчик ссылок, т.е. решатель его увеличивает при добавлении параметрической кривой и декрементирует при удалении кривой из решателя.

◆ GCE_AddBoundedCurve()

geom_item GCE_AddBoundedCurve ( GCE_system  gSys,
geom_item  curve,
geom_item  p[2] 
)

Добавить в систему граничную кривую, ограниченную парой точек.

Аргументы
[in]gSys- Система ограничений.
[in]crv- Дескриптор базовой геометрической кривой. Базовой кривой может быть только кривая одного из следующих типов: прямая, окружность, эллипс, сплайн или параметрическая кривая.
[in]p- Пара дескрипторов начальной и конечной точек участка кривой.
Возвращает
Дескриптор зарегистрированной ограниченной кривой.

◆ GCE_AddRigidSet()

geom_item GCE_AddRigidSet ( GCE_system  gSys,
const std::vector< geom_item > &  geoms 
)

Добавить в систему жёсткое множество геометрических объектов.

Жёсткое множество - это массив геометрических объектов, зафиксированных друг относительно друга. Жёсткое множество представляет собой геометрический объект, для которого доступен весь функционал работы с геометрическими объектами. Например, у него можно спросить тип (GCE_GeomType -> GCE_SET) или запросить положение. С помощью вызовов GCE_GetPoint и GCE_GetCoordValue можно получить начало координат и направление оси OX ЛСК жёсткого множества. Чтобы удалить жёсткое множество, надо, как и для любого другого геометрического объекта, вызвать функцию GCE_RemoveGeom. При этом составляющие жёсткое множество объекты (geoms) при удалении жёсткого множества не удаляются и могут далее быть использованы в решателе. С геометрическими объектами, образующими жёсткое множество, нужно работать точно так же, как и до их добавления в жёсткое множество. Например, для наложения ограничения между элементом жёсткого множества и любым другим геометрическим объектом необходимо в качестве аргумента ограничения указывать не дескриптор жёсткого множества, которому данный объект принадлежит, а дескриптор самого геометрического объекта из массива geoms, на который накладывается ограничение.

Аргументы
[in]gSys- Система ограничений.
[in]geoms- Массив дескрипторов геометрических объектов, образующих жёсткое множество.
Возвращает
Дескриптор зарегистрированного жёсткого множества объектов.

◆ GCE_AddVariable()

var_item GCE_AddVariable ( GCE_system  gSys,
double  val 
)

Добавить в систему ограничений переменную.

Аргументы
[in]gSys- Система ограничений.
[in]val- Начальное значение переменной.
Возвращает
Дескриптор зарегистрированной переменной.

◆ GCE_GeomType()

geom_type GCE_GeomType ( GCE_system  gSys,
geom_item  g 
)

Тип геометрического объекта.

Аргументы
[in]gSys- Система ограничений.


Аргументы
[in]g- Дескриптор геометрического объекта.
Возвращает
Тип геометрического объекта.

◆ GCE_BaseCurveType()

geom_type GCE_BaseCurveType ( GCE_system  gSys,
geom_item  crv 
)

Тип геометрической кривой.

Аргументы
[in]gSys- Система ограничений.


Аргументы
[in]g- Дескриптор кривой.
Возвращает
Тип геометрического объекта.

The function returns geometric type of a curve 'crv' or type of a base curve if 'crv' has type GCE_BOUNDED_CURVE.

◆ GCE_RemoveVariable()

bool GCE_RemoveVariable ( GCE_system  gSys,
var_item  var 
)

Удалить переменную из системы ограничений.

Аргументы
[in]gSys- Система ограничений.
[in]var- Дескриптор переменной.
Возвращает
true, если переменная var действительно удалена.

◆ GCE_RemoveGeom()

bool GCE_RemoveGeom ( GCE_system  gSys,
geom_item  g 
)

Удалить геометрический объект из системы ограничений.

Аргументы
[in]gSys- Система ограничений.
[in]g- Дескриптор геометрического объекта.
Возвращает
true, если геометрический объект g действительно удален.

◆ GCE_RemoveConstraint()

bool GCE_RemoveConstraint ( GCE_system  gSys,
constraint_item  con 
)

Удалить ограничение из системы.

Аргументы
[in]gSys- Система ограничений.
[in]con- Дескриптор ограничения.
Возвращает
true, если ограничение con действительно удалено.

◆ GCE_PointOf()

geom_item GCE_PointOf ( GCE_system  gSys,
geom_item  g,
point_type  pnt 
)

Запросить дескриптор контрольной точки объекта.

Аргументы
[in]gSys- Система ограничений.
[in]g- Дескриптор объекта.
[in]pnt- Имя контрольной точки объекта.
Возвращает
Дескриптор контрольной точки объекта.

Дескриптор, полученный по значению этой функции, имеет автоматическое время жизни, т.е. нет необходимости вызывать для него метод GCE_RemoveGeom.

◆ GCE_SplinePoint()

geom_item GCE_SplinePoint ( GCE_system  gSys,
geom_item  spl,
size_t  pntIdx 
)

Дескриптор контрольной точки сплайна по индексу.

Аргументы
[in]gSys- Система ограничений.
[in]spl- Дескриптор сплайна.
[in]pntIdx- Индекс контрольной точки.
Возвращает
Дескриптор контрольной точки сплайна.

Дескриптор, полученный по значению этой функции, имеет автоматическое время жизни, т.е. нет необходимости вызывать для него метод GCE_RemoveGeom.

◆ GCE_GetVectorValue()

GCE_vec2d GCE_GetVectorValue ( GCE_system  gSys,
geom_item  g,
query_geom_type  vType 
)

Получить текущие координаты вектора.

Аргументы
[in]gSys- Система ограничений.
[in]g- Дескриптор вектора или иного геометрического объекта.
[in]vType- Идентификатор вектора, принадлежащего объекту (в настоящий момент равен или GCE_DIRECTION, или GCE_ORIENTATION). GCE_DIRECTION возвращает направляющую прямой, отрезка или главной полуоси эллипса.
Возвращает
Координаты вектора.

◆ GCE_GetPointXY()

GCE_point GCE_GetPointXY ( GCE_system  gSys,
geom_item  g,
point_type  pName = GCE_PROPER_POINT 
)

Получить текущие координаты точки.

Аргументы
[in]gSys- Система ограничений.
[in]g- Дескриптор точки или иного геометрического объекта.
[in]pName- Идентификатор точки, принадлежащей объекту.
Возвращает
Координаты точки.

◆ GCE_GetCoordValue()

double GCE_GetCoordValue ( GCE_system  gSys,
geom_item  g,
coord_name  cName 
)

Получить текущее значение координаты геометрического объекта.

Аргументы
[in]gSys- Система ограничений.
[in]g- Дескриптор объекта.
[in]cName- Обозначение параметра объекта.
Возвращает
Координаты точки.

Получить текущее значение координаты геометрического объекта. Например, с помощью данной функции можно узнать текущее значение большой или малой полуоси эллипса, радиус окружности и т.д.

◆ GCE_GetVarValue()

double GCE_GetVarValue ( GCE_system  gSys,
var_item  var 
)

Получить текущее значение переменной.

Аргументы
[in]gSys- Система ограничений.
[in]var- Дескриптор переменной.
Возвращает
Значение переменной.

◆ GCE_SetPointXY()

bool GCE_SetPointXY ( GCE_system  gSys,
geom_item  g,
point_type  pName,
GCE_point  xyVal 
)

Задать текущие координаты точки.

Аргументы
[in]gSys- Система ограничений.
[in]g- Дескриптор точки или иного геометрического объекта.
[in]pName- Идентификатор точки, принадлежащей объекту.
[in]xyVal- Новое значение координат точки.
Возвращает
true, если операция выполнена успешно.

Метод присваивает точке или контрольной точке объекта g c атрибутом pName новое состояние координат (параметр xyVal). Следует учитывать, что вызов GCE_SetPointXY не решает системы ограничений, а только меняет состояние геометрического объекта. При этом система ограничений может стать неудовлетворенной. Состояние точки, присвоенное вызовом GCE_SetPointXY не обязано сохранятся после вызова GCE_Evaluate, если точка не фиксированная или не замороженная.

◆ GCE_SetCoordValue()

bool GCE_SetCoordValue ( GCE_system  gSys,
geom_item  g,
coord_name  cName,
double  crdVal 
)

Задать текущее значение координаты геометрического объекта.

Аргументы
[in]gSys- Система ограничений.
[in]g- Дескриптор объекта.
[in]cName- Обозначение параметра объекта.
[in]crdVal- Новое значение координаты.
Возвращает
true, если операция выполнена успешно.

Метод присваивает координате объекта g c атрибутом cName новое значение. Следует учитывать, что вызов GCE_SetCoordValue не решает системы ограничений, а только меняет состояние геометрического объекта. При этом система ограничений может стать неудовлетворенной. Состояние координаты, присвоенное этим методом не обязано сохранятся после вызова GCE_Evaluate, если точка не фиксированная или не замороженная.

◆ GCE_SetVarValue()

bool GCE_SetVarValue ( GCE_system  gSys,
var_item  var,
double  val 
)

Задать текущее значение переменной.

Аргументы
[in]gSys- Система ограничений.
[in]var- Дескриптор переменной.
[in]val- Новое значение переменной.
Возвращает
true, если операция выполнена успешно.

◆ GCE_FreezeGeom()

bool GCE_FreezeGeom ( GCE_system  gSys,
geom_item  g 
)

Заморозить геометрический объект.

Аргументы
[in]gSys- Система ограничений.
[in]g- Геометрический объект.
Возвращает
true, если операция выполнена успешно.

Функция лишает объект всей степени свободы. Отдельно можно заметить, что функция GCE_IsConstrainedGeom для замороженного объекта вернет false, если объект не был связан другими ограничениями. Т.е. заморозка не считается ограничением.

Решатель не может менять замороженную геометрию, но её может поменять клиентское приложение методами GCE_SetCoordValue или GCE_SetPointXY. Замороженные объекты следует рассматривать в качестве независимых входных параметров системы ограничений.

Заметки
Обычно на стороне САПР эта команда применяется для фиксации проекционной геометрии в ассоциативных чертежах или в эскизах с проекциями трехмерных объектов.

◆ GCE_IsConstrainedGeom()

bool GCE_IsConstrainedGeom ( GCE_system  gSys,
geom_item  g 
)

Функция отвечает на вопрос: Связан ли геометрический объект ограничениями?

Аргументы
[in]gSys- Система ограничений.
[in]g- Дескриптор геометрического объекта.
Возвращает
true, если для объекта g задано хотя бы одно ограничение.
См. также
GCE_RemoveGeom, GCE_RemoveConstraint

◆ GCE_IsSatisfied()

bool GCE_IsSatisfied ( GCE_system  gSys,
constraint_item  cItem 
)

Выполнить проверку удовлетворенности ограничения.

Аргументы
[in]gSys- Система ограничений.
[in]cItem- Дескриптор ограничения.
Возвращает
true, если ограничение удовлетворено.

◆ GCE_ConstraintStatus()

GCE_c_status GCE_ConstraintStatus ( GCE_system  gSys,
constraint_item  cItem 
)

Статус ограничения в системе. Вызов показывает результат диагностики, которая выделяет в системе ограничений хорошо-обусловленные части и части, содержащие переопределения и противоречия. В результате диагностики или попытки решения каждое ограничение помечается одним из статусов, перечисленных в наборе GCE_c_status.

Система ограничений.

Аргументы
[in]cItem- Дескриптор ограничения.
Возвращает
Статус ограничения в результате диагностики на противоречия или переопределения.

◆ GCE_DiagnoseGeometry()

std::vector<geom_item> GCE_DiagnoseGeometry ( GCE_system  gcSys)

brief Выполнить диагностику геометрических объектов.

Если в ходе решения системы ограничений вырождаются какие-то геометрические объекты (функция GCE_Evaluate возвращает GCE_RESULT_InvalidGeometry ), то данная функция возвращает массив индексов, под которыми эти объекты зарегистрированы в решателе. Если вырождающихся объектов нет, то функция вернет пустой массив.

Аргументы
[in]gcSys- Система ограничений.
Возвращает
Вектор индексов объектов с вырожденной геометрией.

◆ GCE_GetPointDOF()

ptrdiff_t GCE_GetPointDOF ( GCE_system  gSys,
geom_item  g,
point_type  cp,
double &  dofDir 
)

Вычислить степень свободы точки.

Аргументы
[in]gSys- Система ограничений.
[in]g- Дескриптор геометрического объекта.
[in]cp- Код контрольной точки объекта g.
[out]dofDir-Угловое направление свободы перемещения точки в радианах.
Возвращает
Функция возвращает степень свободы точки; Если возвращается значение < 0, то вычислить степень свободы не удалось.

Данная функция возвращает степень свободы точки и может принимать одно из следующих значений:
(-1) - Означает, что функция не определила степень свободы;
0 - Означает, что точка неподвижна в системе ограничений;
1 - Означает, что точка имеет свободу перемещения вдоль некоторой траектории, причем через параметр dofDir возвращается направление тангенциального вектора перемещения точки;
2 - Означает, что точка имеет свободу перемещения в некоторой 2D-области.
Если направление перемещения определить не удалось, то dofDir принимает значение < 0.

◆ GCE_PointDOF()

GCE_point_dof GCE_PointDOF ( GCE_system  gSys,
geom_item  pnt 
)

Вычислить степень свободы точки.

Аргументы
[in]gSys- Система ограничений.
[in]pnt- Дескриптор точки.
[out]dofDir-Угловое направление свободы перемещения точки в радианах.
Возвращает
Функция возвращает структуру GCE_point_dof, которая описывает степень свободы точки, её целочисленное значение и вектор перемещения. Если возвращается значение dof < 0, то вычислить степень свободы не удалось.

Данная функция возвращает степень свободы точки и может принимать одно из следующих значений:
dof = (-1) - Означает, что функция не определила степень свободы;
dof = 0 - Означает, что точка неподвижна в системе ограничений;
dof = 1 - Означает, что точка имеет свободу перемещения вдоль некоторой траектории, причем через параметр "dir" (в структуре GCE_point_dof ) возвращается направление тангенциального вектора перемещения точки;
dof = 2 - Означает, что точка имеет свободу перемещения в некоторой 2D-области.
Если направление перемещения определить не удалось, то "dof" принимает значение < 0.

◆ GCE_CoordDOF()

int GCE_CoordDOF ( GCE_system  gSys,
geom_item  g,
coord_name  cName 
)

Выдать степень свободы геометрической координаты. Система ограничений.

Аргументы
[in]g- Дескриптор геометрического объекта.
[in]cName- Обозначение геометрической координаты.
Возвращает
Степень свободы координаты: 1-для недоопределенной координаты, 0-для полно-заданной координаты.

Функция возвращает степень свободы координаты, а именно одно из возможных значений: 1, 0 и -1. Если возвращается значение < 0, то вычислить степень свободы не удалось.

◆ GCE_AddUnaryConstraint()

constraint_item GCE_AddUnaryConstraint ( GCE_system  gSys,
constraint_type  cType,
geom_item  geom 
)

Задать ограничение для одного объекта (унарное ограничение).

Аргументы
[in]gSys- Система ограничений.
[in]cType- Значение одного из следующих типов ограничений: GCE_FIX_GEOM; GCE_VERTICAL; GCE_HORIZONTAL; GCE_ANGLE_OX; GCE_LENGTH.
[in]g- Дескриптор геометрического объекта.


Возвращает
Дескриптор нового ограничения.

Функция задает унарное ограничение, а именно ограничение, относящееся к одному из типов, действительных для одного геометрического объекта.

◆ GCE_AddCoincidence()

constraint_item GCE_AddCoincidence ( GCE_system  gSys,
geom_item  g[2] 
)

Задать ограничение "Совпадение".

Аргументы
[in]gSys- Система ограничений.
[in]g- Дескрипторы пары геометрических объектов.

Если ограничение совпадение задано для точки и кривой, то предполагается, что точка лежит на кривой. Если совпадение задано для геометрических объектов одного и того же типа, то совпадение подразумевает, что они равны.
Дескриптор нового ограничения.

Внимание
В текущей версии решателя применение этого ограничения возможно только для двух точек либо для точки и кривой. На будущее планируется расширить его применения для других типов.

◆ GCE_AddPointOnPercent()

constraint_item GCE_AddPointOnPercent ( GCE_system  gSys,
geom_item  curve,
geom_item  pnt[3],
double  k 
)

Ограничение "Точка на участке кривой по коэффициенту его параметрической длины".

Аргументы
[in]gSys- Система ограничений.
[in]curve- Дескриптор кривой.
[in]pnt- Дескрипторы точек: две крайние точки участка и точка между.
[in]k- Долевой коэффициент от параметрической длины участка.
Возвращает
Дескриптор нового ограничения.

Предполагается, что для кривой curve и точек pnt[0], pnt[1], обеспечивается инцидентность другими ограничениями, зарегистрированными в решателе, или эти точки априори принадлежат кривой. Для точки pnt[2] инцидентность с кривой задавать не требуется, т.к. данное ограничение уже обеспечивает это. Если pnt[0] = pnt[1] = GCE_NULL_G, то участок кривой, для которого исчисляется процент k, совпадает со всей параметрической областью кривой. Например, для окружности параметрическая область равна интервалу [-PI ... PI]. Область значений k из интервала от 0 до 1 отображается на параметрическую область участка кривой, соответственно k = 0 прикрепит точку pnt[2] к началу участка, а k = 1.0 к концу участка.

◆ GCE_AddPointByMetricPercent()

constraint_item GCE_AddPointByMetricPercent ( GCE_system  gSys,
geom_item  curve,
geom_item  pnt[3],
double  k 
)

Ограничение "Точка на участке кривой по коэффициенту его длины".

Аргументы
[in]gSys- Система ограничений.
[in]curve- Дескриптор кривой.
[in]pnt- Дескрипторы точек: две крайние и точка между ними.
[in]k- Значение доли от метрической длины между заданными точками.
Возвращает
Дескриптор нового ограничения.

Метод создает в системе ограничение, задающее положение точки на участке кривой, заданное коэффициентом от его длины. Предполагается, что для кривой curve и точек pnt[0], pnt[1], обеспечивается инцидентность другими, зарегистрированными в решателе, ограничениями или эти точки априори принадлежат кривой. Если pnt[0] = pnt[1] = GCE_NULL_G, то участок кривой, для которого исчисляется процент k, совпадает со всей параметрической областью кривой. Например, для окружности параметрическая область равна интервалу [-PI ... PI]. Если k = 0, то ограничение прикрепит точку pnt[2] к началу участка, если k = 1.0, то ограничение прикрепит точку pnt[2] к концу участка.

◆ GCE_AddFixCurvePoint()

constraint_item GCE_AddFixCurvePoint ( GCE_system  gSys,
geom_item  curve,
geom_item  pnt 
)

Задать ограничение "Фиксация положения точки, лежащей на кривой".

Аргументы
[in]gSys- Система ограничений.
[in]curve- Дескриптор кривой.
[in]pnt- Дескрипторы точки.
Возвращает
Дескриптор нового ограничения.

Данная функция создает ограничение, прикрепляющее точку к кривой в текущем месте. Точка локализуется, опираясь на параметрическое представление кривой, с помощью параметра вдоль кривой, где она расположена. Требуется, что бы к моменту вызова функции, точка лежала на кривой, а для точки и кривой curve должна обеспечиваться инцидентность с помощью других ограничений или эта точка априори должна принадлежать кривой.

Внимание
В Cad-системе КОМПАС данная функция применяется только для фиксации концов участка (bounded curve) параметрической кривой, полученной проецированием из 3D-модели. Для таких ограничений, как "средняя точка" рекомендуется применять более нативную функцию GCE_AddMiddlePoint.

◆ GCE_AddPointOnParEllipse()

constraint_item GCE_AddPointOnParEllipse ( GCE_system  gSys,
geom_item  pnt,
geom_item  ellipse,
double  t 
)

Задать ограничение "Точка на параметрическом эллипсе".

Аргументы
[in]gSys- Система ограничений.
[in]pnt- Дескриптор точки.
[in]ellipse- Дескриптор эллипса.
[in]tЗначение параметра на эллипсе из области [-PI,PI].
Возвращает
Дескриптор нового ограничения.

Данная функция действительна только для кривых, относящихся типу "эллипс", функция создает ограничение, обеспечивающее совпадение точки pnt с точкой эллипса, заданной параметром t из параметрической области эллипса, равной интервалу [-PI,PI].

◆ GCE_AddParPointOnCurve()

constraint_item GCE_AddParPointOnCurve ( GCE_system  gSys,
geom_item  pnt,
geom_item  curve,
var_item  t 
)

Задать ограничение "Точка на кривой по параметру".

Аргументы
[in]gSys- Система ограничений.
[in]pnt- Дескриптор точки.
[in]curve- Дескриптор кривой.
[in]t- Дескриптор параметра кривой.
Возвращает
Дескриптор нового ограничения.

Функция отличается от GCE_AddCoincidence тем, что позволяет связать точку с параметрической кривой через значение параметра и управлять её положением на кривой через этот параметр. Ограничение доступно для следующих типов кривой: GCE_ELLIPSE, GCE_SPLINE, GCE_PARAMETRIC_CURVE и GCE_BOUNDED_CURVE, основанной на кривой одного из перечисленных типов.

◆ GCE_AddAlignPoints() [1/2]

constraint_item GCE_AddAlignPoints ( GCE_system  gSys,
geom_item  p[2],
double  ang 
)

Задать ограничение "Выравнивание точек вдоль заданного направления".

Аргументы
[in]gSys- Система ограничений.
[in]p- Дескрипторы пары точек.
[in]ang- Угол, задающий направление выравнивания, радианы.
Возвращает
Дескриптор нового ограничения.

◆ GCE_AddAngle()

constraint_item GCE_AddAngle ( GCE_system  gSys,
geom_item  l1,
geom_item  l2,
const GCE_adim_pars dPars 
)

Задать ограничение "Угловой размер между двумя прямыми".

Аргументы
[in]gSys- Система ограничений.
[in]l1- Дескриптор первого линейного геометрического объекта.
[in]l2- Дескриптор второго линейного геометрического объекта.
[in]dPars- Параметры углового размера (подробности см.GCE_adim_pars).
Возвращает
Дескриптор нового ограничения.

Угловой размер для пары линейных геометрических объектов. Аргументами ограничения могут быть объекты, принадлежащие типам: "прямая", "отрезок" или "Bounded curve", основанной на прямой.

◆ GCE_AddAngleBisector()

constraint_item GCE_AddAngleBisector ( GCE_system  gSys,
geom_item  l1,
geom_item  l2,
geom_item  bl,
GCE_bisec_variant  variant 
)

Задать ограничение "Биссектриса".

Аргументы
[in]gSysСистема ограничений.
[in]blотрезок, биссектриса между двумя прямыми.
[in]l1,l2прямые или отрезки, между которыми устанавливается биссектриса.
[in]variantвариант решения для биссектрисы.
Возвращает
дескриптор нового ограничения.

◆ GCE_AddAngle4P()

constraint_item GCE_AddAngle4P ( GCE_system  gSys,
geom_item  fPair[2],
geom_item  sPair[2],
const GCE_adim_pars dPars 
)

Задать угловой размер для четырех точек.

Конструируется угловой размер для двух отрезков с точками p1-p2, p3-p4.

Аргументы
[in]gSys- Система ограничений.
[in]fPair- Первая пара точек (первый отрезок).

\param[in] fPair - Вторая пара точек (второй отрезок).

Аргументы
[in]dPars- Параметры углового размера (подробности см.GCE_adim_pars).
Возвращает
Дескриптор нового ограничения.

◆ GCE_AddColinear()

constraint_item GCE_AddColinear ( GCE_system  gSys,
geom_item  g[2] 
)

Задать ограничение "Коллинеарность".

Аргументы
[in]gSys- Система ограничений.
[in]g- Дескрипторы пары линейных объектов.
Возвращает
Дескриптор нового ограничения.

Ограничение делает пару объектов, принадлежащими общей прямой, применяется для прямых или отрезков.

◆ GCE_AddColinear3Points()

constraint_item GCE_AddColinear3Points ( GCE_system  gcSys,
geom_item  pnt[3] 
)

Задать ограничение "Коллинеарность трех точек".

Задать для трех точек отношение, такое что точки лежат на одной прямой.

Аргументы
[in]gSys- Система ограничений.
[in]pnt- Тройка точек, лежащих на одной прямой.
Возвращает
Дескриптор нового ограничения.

◆ GCE_AddEqualLength()

constraint_item GCE_AddEqualLength ( GCE_system  gSys,
geom_item  ls1,
geom_item  ls2 
)

Задать ограничение "Равенство длин" для отрезков.

Аргументы
[in]gSys- Система ограничений.
[in]ls1- Дескриптор первого отрезка.
[in]ls2- Дескриптор второго отрезка.
Возвращает
Дескриптор нового ограничения.

Ограничение применимо для отрезков или участков прямых, созданных с помощью функции GCE_AddBoundedCurve или GCE_AddLineSeg.

◆ GCE_AddEqualRadius()

constraint_item GCE_AddEqualRadius ( GCE_system  gSys,
geom_item  c1,
geom_item  c2 
)

Задать ограничение "Равенство радиусов" для двух окружностей (дуг)

Аргументы
[in]gSys- Система ограничений.
[in]c1- Дескриптор первой окружности.
[in]c2- Дескриптор второй окружности.
Возвращает
Дескриптор нового ограничения.

◆ GCE_AddEqualCurvature()

constraint_item GCE_AddEqualCurvature ( GCE_system  gSys,
geom_item  curves[2],
var_item  tPars[2] 
)

Задать ограничение "Равенство кривизны двух кривых в заданных точках".

Аргументы
[in]gSys- Система ограничений.
[in]curves- Дескрипторы пары кривых.
[in]tPars- Дескрипторы параметров параметрических кривых, в которых должно выполняется равенство кривизны.
Возвращает
Дескриптор нового ограничения.
Заметки
Если тип кривой GCE_CIRCLE или GCE_BOUNDED_CURVE, базовой кривой которой является окружность, то соответствующее этой кривой значение tPars[i] может равняться GCE_NULL_V, т.к. кривизна окружности одинакова во всех её точках.

◆ GCE_AddRadiusDimension()

constraint_item GCE_AddRadiusDimension ( GCE_system  gSys,
geom_item  cir,
GCE_dim_pars  dPar 
)

Задать ограничение "Радиусный размер".

Аргументы
[in]gSys- Система ограничений.
[in]cir- Дескриптор окружности.
[in]dPar- Параметры линейного размера (подробности см.GCE_dim_pars).
Возвращает
Дескриптор радиусного ограничения.

◆ GCE_AddDiameter()

constraint_item GCE_AddDiameter ( GCE_system  gSys,
geom_item  cir,
GCE_dim_pars  dPar 
)

Задать ограничение "Диаметральный размер".

Аргументы
[in]gSys- Система ограничений.
[in]cir- Дескриптор окружности.
[in]dPar- Параметры линейного размера (подробности см.GCE_dim_pars).
Возвращает
Дескриптор диаметрального ограничения.

◆ GCE_FixVariable()

constraint_item GCE_FixVariable ( GCE_system  gSys,
var_item  var 
)

Задать ограничение "Управляющий параметр" или "Фиксация переменной".

Аргументы
[in]gSys- Система ограничений.
[in]var- Дескриптор переменной.
Возвращает
Дескриптор нового ограничения.
Заметки
Созданное с помощью этой функции, ограничение может управляться через вызов GCE_ChangeDrivingDimension.

◆ GCE_FixGeom()

constraint_item GCE_FixGeom ( GCE_system  gSys,
geom_item  g 
)

Задать ограничение "Фиксация геометрического объекта".

Аргументы
[in]gSys- Система ограничений.
[in]g- Дескриптор геометрического объекта.
Возвращает
Дескриптор нового ограничения.

◆ GCE_FixLength()

constraint_item GCE_FixLength ( GCE_system  gSys,
geom_item  ls 
)

Задать ограничение "Фиксированная длина отрезка".

Аргументы
[in]gSys- Система ограничений.
[in]ls- Дескриптор отрезка.
Возвращает
Дескриптор нового ограничения.

Ограничение применимо пока только для отрезков.

◆ GCE_FixRadius()

constraint_item GCE_FixRadius ( GCE_system  gSys,
geom_item  circ,
coord_name  cName = GCE_RADIUS 
)

Задать ограничение "Фиксированный радиус".

Ограничение применимо для фиксации радиуса окружности или полуоси эллипса.

Аргументы
[in]gSys- Система ограничений.
[in]circ- Дескриптор окружности или эллипса.
[in]cName-Тип фиксируемой координаты. Может быть радиус, большая или малая полуось эллипса.
Возвращает
Дескриптор нового ограничения.

◆ GCE_FixSplineDerivative()

constraint_item GCE_FixSplineDerivative ( GCE_system  gSys,
geom_item  spline,
double  par,
uint  derOrder,
GCE_vec2d fixVal = NULL 
)

Задать ограничение "Зафиксировать производную сплайна в заданной точке".

Аргументы
[in]gSys- Система ограничений.
[in]spline- Дескриптор сплайна.
[in]par- Значение параметра, в котором надо зафиксировать производную. \
[in]derOrder- Порядок производной, которую надо зафиксировать.
[in]fixVal- Значение, к которому надо приравнять производную.
Возвращает
Дескриптор нового ограничения.

Точка фиксации задается через значение параметра, соответствующего ей.
Порядок фиксируемой производной может равняться 0 (фиксация точки), 1, 2 или 3.
Если fixVal равен NULL, будет зафиксировано текущее значение производной, иначе фиксируемой производной будет присвоено значение fixVal.

◆ GCE_AddMiddlePoint()

constraint_item GCE_AddMiddlePoint ( GCE_system  gcSys,
geom_item  pnt[3] 
)

Задать ограничение "Средняя точка".

Аргументы
[in]gSys- Система ограничений.
[in]pnt- Дескрипторы трех точек.
Возвращает
Дескриптор нового ограничения.

Для данных трех точек, задать отношение, связывающее тройку точек, так, что третья точка лежит на середине отрезка между pnt[0] и pnt[1].

◆ GCE_AddParallel()

constraint_item GCE_AddParallel ( GCE_system  gSys,
geom_item  g[2] 
)

Задать ограничение "Параллельность".

Аргументы
[in]gSys- Система ограничений.
[in]g- Дескрипторы пары линейных объектов.
Возвращает
Дескриптор нового ограничения.

Ограничение применяется для прямых или отрезков.

◆ GCE_AddPerpendicular()

constraint_item GCE_AddPerpendicular ( GCE_system  gSys,
geom_item  g[2] 
)

Задать ограничение "Перпендикулярность".

Аргументы
[in]gSys- Система ограничений.
[in]g- Дескрипторы пары линейных объектов.
Возвращает
Дескриптор нового ограничения.

Ограничение применяется для прямых или отрезков.

◆ GCE_AddSymmetry()

constraint_item GCE_AddSymmetry ( GCE_system  gSys,
geom_item  g[2],
geom_item  lObj 
)

Задать ограничение "Симметрия относительно линейного объекта".

Аргументы
[in]gSys- Система ограничений. gSys -
[in]g- Дескрипторы пары симметричных объектов. g -
[in]lObj- Дескриптор оси симметрии. lObj -
Возвращает
Дескриптор нового ограничения.
Внимание
В настоящий момент данное ограничение применимо только для симметрии точек.

◆ GCE_AddTangent()

constraint_item GCE_AddTangent ( GCE_system  gSys,
geom_item  g[2],
var_item  tPar[2] 
)

Задать ограничение "Касание двух кривых".

Аргументы
[in]gSysСистема ограничений.
[in]gДескрипторы пары кривых или прямых.
[in]tParДескрипторы параметров касания для параметрических кривых.
Возвращает
Дескриптор нового ограничения.
Вспомогательные параметры касания
Дескрипторы переменных tPar[0] и tPar[1] задают вспомогательные значения, параметризующие точку касания на первой и второй кривой. Одна или обе tPar могут быть равными GCE_NULL_V, если соответствующая кривая не является сплайном или параметрической кривой, либо пользователь согласен, что точка касания будет локализована автоматически по ближайшему решению.

tPar[0] или tPar[1] могут быть равными GCE_NULL_V, если параметры касания не предусмотрены или кривые не имеют параметрического представления. Параметрическое представление имеют пока только два типа: GCE_SPLINE и GCE_PARAMETRIC_CURVE.

◆ GCE_AddDistance()

constraint_item GCE_AddDistance ( GCE_system  gSys,
geom_item  g[2],
const GCE_ldim_pars dPars 
)

Задать размерное ограничение "Расстояние между объектами".

Аргументы
[in]gSys- Система ограничений.
[in]g- Дескрипторы пары геометрических объектов.
[in]dPars- Параметры линейного размера (подробности см.GCE_ldim_pars).
Возвращает
Дескриптор нового ограничения.

Задать линейный размер для пары геометрических объектов.

◆ GCE_AddDistance2P()

constraint_item GCE_AddDistance2P ( GCE_system  gSys,
geom_item  p[2],
const GCE_dim_pars dPars 
)

Задать ограничение "Расстояние между точками".

Аргументы
[in]gSys- Система ограничений.
[in]p- Дескрипторы пары точек.
[in]dPars- Параметры размерного ограничения.
Возвращает
Дескриптор нового ограничения.

◆ GCE_AddDistancePLs()

constraint_item GCE_AddDistancePLs ( GCE_system  gSys,
geom_item  p[3],
const GCE_dim_pars dPars 
)

Задать ограничение "Расстояние от точки до отрезка".

Аргументы
[in]gSys- Система ограничений.
[in]p- Дескрипторы тройки точек.
[in]dPars- Параметры размерного ограничения.
Возвращает
Дескриптор нового ограничения.

Линейный размер от точки p1 до отрезка <p0,p2>. Размер чувствителен к знаку величины размера.

◆ GCE_AddDirectedDistance()

constraint_item GCE_AddDirectedDistance ( GCE_system  gSys,
geom_item  p[2],
const GCE_ldim_pars dPars 
)

Задать ограничение "Ориентированное расстояние между точками".

Аргументы
[in]gSys- Система ограничений.
[in]p- Дескрипторы пары точек.
[in]dPars- Параметры размерного ограничения.
Возвращает
Дескриптор нового ограничения.

Параметр dPars.dirAngle задает направление размера в радианах. Управляя dPars.dirAngle, можно задать вертикальный или горизонтальный размеры. Так размер параметром dPars.dirAngle = 0 создаст "горизонтальный размер", а dPars.dirAngle, равный PI/2 радиан будет соответствовать "вертикальному" размеру.

◆ GCE_AddLinearEquation()

constraint_item GCE_AddLinearEquation ( GCE_system  gSys,
const double *  a,
const var_item v,
size_t  n,
double  c 
)

Задать линейное уравнение.

Аргументы
[in]gSys- Система ограничений.
[in]a- Вектор коэффициентов линейного уравнения.
[in]v- Дескрипторы переменных уравнения.
[in]n- Количество переменных.
[in]c- Коэффициент без переменной.
Возвращает
Дескриптор нового ограничения.

Задать линейное уравнение в виде a1*v1 + a2*v2 + .. + an*vn + c = 0.

◆ GCE_ChangeDrivingDimension()

GCE_result GCE_ChangeDrivingDimension ( GCE_system  gSys,
constraint_item  dItem,
double  dVal 
)

Изменить значение управляющего размера.

Аргументы
[in]gSys- Система ограничений.
[in]dItem- Дескриптор размерного ограничения.
[in]dVal- Требуемое значение размера.
Возвращает
Код результата операции.

Функция применяется только для управляющих размеров или управляющих параметров. Если управляющий размер или параметр является угловым, то параметр dVal задается в радианах.
Следует учитывать, что настоящая функция не осуществляет вычислений, а только подготавливает изменение размера. Что бы изменения вступили в силу, необходимо вызвать функцию GCE_Evaluate.

◆ GCE_DeviateDimension()

GCE_result GCE_DeviateDimension ( GCE_system  gSys,
constraint_item  dItem,
double  delta 
)

Отклонить ограничение от точки решения.

Аргументы
[in]dItem- Дескриптор геометрического ограничения.
[in]delta- Величина отклонения.
Возвращает
errCode - Результат решения системы ограничений.

Функция применяется для диагностики избыточности ограничения, основанной на отклонении области решений ограничения. Работает только для размерных ограничений и некоторых типов геометрических ограничений, таких как "Выравнивание точек", "Горизонтальность" и т.д. Применимость к тому или иному типу не задокументирована и определяется опытным путем. Если было возвращено значение GCE_RESULT_None, то ограничение не отклонялось.

◆ GCE_DeviationTest()

GCE_result GCE_DeviationTest ( GCE_system  gSys,
constraint_item  dItem,
double  delta 
)

Тест избыточности ограничения, основанный на отклонении его от точки решения.

Аргументы
[in]dItem- Дескриптор геометрического ограничения.
[in]delta- Величина отклонения.
Возвращает
- Результат решения системы ограничений.

Функция применяется для диагностики избыточности ограничения, основанной на отклонении области решений ограничения. Работает только для размерных ограничений и некоторых типов геометрических ограничений, таких как "Выравнивание точек", "Горизонтальность" и т.д. Применимость к тому или иному типу (кроме размерных) не задокументирована и определяется опытным путем. Если было возвращено значение GCE_RESULT_None, то ограничение не отклонялось.

Заметки
В отличии от GCE_DeviateDimension не меняется состояние системы ограничений.

◆ GCE_Evaluate()

GCE_result GCE_Evaluate ( GCE_system  gSys)

Вычислить систему ограничений.

Аргументы
[in]gSys- Система ограничений.
Возвращает
Код результата вычислений.

Функция решает задачу ограничений. Задача ограничений формулируется функциями API геометрического решателя; функции вида GCE_Add_XXXXXXX добавляют новые объекты, функции вида GCE_Change_XXXXXXX, GCE_Set_XXXXXXX изменяют состояние объектов. Таким образом, что бы все такие изменения вступили в силу, нужно вызвать метод GCE_Evaluate.
Алгоритмы GCE_Evaluate учитывают удовлетворенность систем ограничений; если все ограничения уже решены, то функция не тратит время на вычисления, а состояние геометрических объектов остается неизменным.

◆ GCE_PrepareMovingOfPoint() [1/2]

GCE_result GCE_PrepareMovingOfPoint ( GCE_system  gSys,
geom_item  obj,
point_type  pntId,
GCE_point  curXY 
)

Инициализировать режим драггинга контрольной точки объекта.

Аргументы
[in]gSysСистема ограничений.
[in]objГеометрический объект.
[in]pntIdОбозначение передвигаемой контрольной точки объекта.
[in]curXYКоординаты курсора, куда следует перемещаемая точка.
Возвращает
Код ошибки. Вернет код GCE_RESULT_Ok, если подготовка режима драггина прошла успешна.

◆ GCE_PrepareDraggingPoint() [1/2]

GCE_result GCE_PrepareDraggingPoint ( GCE_system  gSys,
GCE_dragging_point  drgPnt,
GCE_point  curXY 
)

Инициализировать режим драггинга контрольной точки объекта.

Аргументы
[in]gSys- Система ограничений.
[in]drgPnt- Контрольная точка объекта.
[in]curXY- Координаты точки драггинга.
Возвращает
Код ошибки. Вернет код GCE_RESULT_Ok, если подготовка режима драггина прошла успешна.

◆ GCE_PrepareDraggingPoint() [2/2]

GCE_result GCE_PrepareDraggingPoint ( GCE_system  gSys,
const std::vector< GCE_dragging_point > &  cPntArr,
GCE_point  curXY 
)

Инициализировать режим драггинга контрольной точки множества объектов.

Этот метод предназначен для группового редактирования (драггинг) нескольких объектов с "общей" hot-точкой. Под "общей" hot-точкой подразумевается не обязательно одна точка (с одним дескриптором), а множество точек с разными дескрипторами, но имеющих одинаковые координаты.

Аргументы
[in]gSys- Система ограничений.
[in]cPntArr- Множество геометрически одинаковых контрольных точек.
[in]curXY- Координаты точки драггинга.
Возвращает
Код ошибки. Вернет код GCE_RESULT_Ok, если подготовка режима драггина прошла успешна.

◆ GCE_PrepareMovingGeoms()

GCE_result GCE_PrepareMovingGeoms ( GCE_system  gSys,
std::vector< geom_item > &  geoms,
GCE_point  curXY 
)

Инициализировать режим перетаскивания множества объектов. Система ограничений.

Аргументы
geoms- Множество геометрических объектов.
curXY- Координаты точки драггинга.
Возвращает
Код ошибки. Вернет код GCE_RESULT_Ok, если подготовка режима драггина прошла успешна.

◆ GCE_MovePoint()

GCE_result GCE_MovePoint ( GCE_system  gcSys,
GCE_point  curXY 
)

Переместить точку драггинга.

Аргументы
[in]gcSys- Система ограничений.
[in]curXY- Текущие координаты курсора.
Возвращает
Код ошибки. Вернет код GCE_RESULT_Ok, если подготовка режима драггина прошла успешна.

Процедура обслуживает режим драггинга, с ее помощью геометрический решатель отслеживает положение курсора. Этот вызов позволяет осуществлять двух-координатное управление не доопределенной моделью. Если функция возвращает код ошибки, не равный GCE_RESULT_Ok, то гарантируется, что состояние геометрических объектов останется неизменным. Если функция вернула GCE_RESULT_Ok, то решатель содержит новое состояние геометрических объектов, удовлетворяющее всем ранее наложенным ограничениям (новое решение). В этом случае вызывать GCE_Evaluate для приведения объектов в решенное состояние не требуется.

◆ GCE_Transform()

GCE_result GCE_Transform ( GCE_system  gSys,
const MbMatrix mat 
)

brief Трансформировать геометрию системы ограничений согласно заданной матрице.

Аргументы
[in]gSys- Система ограничений.
[in]mat- Матрица преобразования.
Возвращает
Код ошибки.

◆ GCE_SetJournal()

bool GCE_SetJournal ( GCE_system  gSys,
const char *  fName 
)

Включить журналирование и назначить файл для записи журнала вызовов API.

Аргументы
[in]gSys- Система ограничений.
[in]fName- Имя файла назначения с полным путем.
Возвращает
true, if journalling has been successfully switched on.
Внимание

Файл журнала будет записан только после завершения сеанса работы с системой ограничений, а именно сразу после вызова GCE_RemoveSystem.

◆ GCE_AddPoint() [2/2]

geom_item GCE_AddPoint ( GCE_system  gSys,
GCE_point  pVal,
int   
)
inline
Внимание
Устаревшая функция. Вызов будет удален в одной из следующих версий.

◆ GCE_CreateSystem() [2/2]

GCE_system GCE_CreateSystem ( void *  )
Внимание
Устаревшая функция. Вызов будет удален в одной из следующих версий.

◆ GCE_AddDirectedDistance2P()

constraint_item GCE_AddDirectedDistance2P ( GCE_system  gSys,
geom_item  p[2],
const GCE_ldim_pars dPars 
)
Внимание
Устаревшая функция. Вызов будет удален в одной из следующих версий (2016).

◆ GCE_AddAlignPoints() [2/2]

constraint_item GCE_AddAlignPoints ( GCE_system  gSys,
geom_item  p[2],
bool  hor 
)
Внимание
Устаревшая функция. Вызов будет удален в одной из следующих версий.

◆ GCE_AddFixedLength()

constraint_item GCE_AddFixedLength ( GCE_system  ,
geom_item   
)
Внимание
Функция устарела. Вместо неё применять GCE_FixLength.

◆ GCE_AddFixVariable()

constraint_item GCE_AddFixVariable ( GCE_system  ,
var_item   
)
Внимание
Функция устарела. Вместо неё применять GCE_FixVariable.

◆ GCE_AddIncidence()

constraint_item GCE_AddIncidence ( GCE_system  ,
geom_item  ,
geom_item   
)

Задать ограничение "Точка на кривой".

Внимание
This call is deprecated. Call GCE_AddCoincidence instead.

◆ GCE_PrepareMovingOfPoint() [2/2]

GCE_result GCE_PrepareMovingOfPoint ( GCE_system  gSys,
const std::vector< geom_point > &  cPntArr,
GCE_point  curXY 
)
Внимание
Устаревшая функция. Вызов будет удален в одной из следующих версий. Используйте #GCE_PrepareMovingOfPoint( GCE_system gSys, const std::vector<GCE_dragging_point> & cPntArr, GCE_point curXY ) взамен.

◆ GCE_InitCallbacks()

GCE_callback_table& GCE_InitCallbacks ( GCE_callback_table )

Установить и вернуть структуру с функциями обратного вызова по умолчанию.

GCE_callback_table - простая структура в стиле C, не имеющая конструктора. Функция GCE_InitCallbacks позволяет придать структуре начальное значение что бы избежать некорректных значений в памяти.

◆ GCE_Register()

GCE_result GCE_Register ( GCE_system  gSys,
const GCE_callback_table cbTable 
)

Зарегистрировать таблицу обратных вызовов для новой системы ограничений.

Аргументы
[in]gSys- Система ограничений.
[in]cbTable- Таблица обратных вызовов.
Возвращает
Вернет GCE_RESULT_Ok, если регистрация выполнена.

◆ GCE_AddEquation()

constraint_item GCE_AddEquation ( GCE_system  gSys,
ItAlgebraicConstraint iEqu,
size_t  varsCount,
const var_item varsVector 
)

Задать ограничение, реализуемое на стороне клиента

Аргументы
gSysконтекст решателя
iEquинтерфейс уравнения, заданного пользователем
varsCountколичество переменных
varsVectorвектор переменных
Возвращает
дескриптор нового ограничения

◆ GCE_GetPoint()

MbCartPoint GCE_GetPoint ( GCE_system  gSys,
geom_item  g,
point_type  pName = GCE_PROPER_POINT 
)

Получить текущие координаты точки

Аргументы
gSysконтекст решателя
gдескриптор точки или иного геометрического объекта
pNameидентификатор точки, принадлежащей объекту
Возвращает
координаты точки