C3D Kernel  102057
Классы | Функции
Вспомогательные процедуры
Геометрические ограничения трёхмерных объектов
Граф связей класса Вспомогательные процедуры:

Классы

struct  MtTransDof
 Запись о степени свободы перемещения. Подробнее...
struct  MtMateParameters
 Параметры близости к решению для геометрического ограничения. Подробнее...
struct  MtLDimensionTraits
 Характеристические данные линейного размера. Подробнее...
struct  MtADimensionTraits
 Характеристические данные углового размера. Подробнее...

Функции

bool OK (GCM_result res)
GCM_result ResCode (bool ok)
GCM_result WorseResult (GCM_result res1, GCM_result res2)
 Выбрать "худший" результат.
GCM_resultoperator<< (GCM_result &sumRes, const GCM_result r)
 Суммировать результирующий код. Оператор выбирает из потока ошибок, то которое нуждается во внимании пользователя прежде других.
SPtr< MtGeomSolverCreateSolver (ItPositionManager &pMan)
 Создать Интерфейс геометрического решателя.
MtMateType GetAutoMateType (const ItConstraintItem &cItem, bool forMove)
 Автоматически назначить тип сопряжению для его аргументов.
bool GetClosestParameters (const ItConstraintItem &cItem, MtMateParameters &cPars)
 Измерить параметры близости к решению для геометрического ограничения.
bool GetDimensionTraits (const ItConstraintItem &dCon, MtLDimensionTraits &dPars)
 Определить характеристические данные размера.
bool GetDimensionTraits (const ItConstraintItem &dCon, MtADimensionTraits &dPars)
 Определить характеристические данные углового размера.
bool EstimateTangencyChoice (const ItConstraintItem &cItem, GCM_tan_choice tChoice)
 Оценить возможно ли применить вариант касания к данному ограничению.
bool IsCompatibleMatingGeometry (const ItConstraintItem &cItem)
 Определить для данного ограничения совместимость геометрических объектов.
bool GCM_RelativePlacement (MbPlacement3D gPlaces[], size_t gPlacesSize, GCM_extra_param)
 Вычислить "Относительное размещение".
bool GetMatingGeometry (const ItConstraintItem &cItem, int geomNb, bool inWCS, MtGeomType &gType, MbCartPoint3D &pc, MbVector3D &vec, double &r1, double &r2)
 Выдать первый или второй геометрический объект сопряжения.
MtGeomVariant GCM_GeomArgument (const MbSpaceItem *, bool orient)
 Получить геометрический объект типа MtGeomVariant из геометрии MbSpaceItem.
GCM_geom GCM_GeomId (GCM_system gSys, const ItGeom *gPtr)
 Получить геометрический объект типа GCM_geom из типа ItGeom *.
GCM_constraint GCM_ConstraintId (GCM_system gSys, const ItConstraintItem *cPtr)
 Получить геометрическое ограничение типа GCM_constraint из типа ItConstraintItem *.
GCM_g_record GCM_GeomRecord (const MtGeomVariant &)
 Получить запись геометрического объекта по типу MtGeomVariant.
const ItConstraintItemGCM_ConstraintItem (GCM_system gSys, GCM_constraint conId)
 Получить интерфейсный объект геометрического ограничения ItConstraintItem по дескриптору.
const ItGeomGCM_SetDependencyGeom (GCM_system gSys, MtGeomId, const ItGeom *gPtr)
void GCM_GetProperties (const GCM_system &, MbProperties &)
ptrdiff_t VolumeOfAlignOption (const ItConstraintItem &)
 Определить для сопряжения количество вариантов для опции выравнивания

Функции

GCM_result WorseResult ( GCM_result  res1,
GCM_result  res2 
) [inline]

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

SPtr<MtGeomSolver> CreateSolver ( ItPositionManager pMan)

Функция возвращает smart-pointer интерфейса решателя.

Аргументы:
[in]pMan- Интерфейс клиентского приложения, предоставляющий функции репозиции геометрических объектов на стороне клиента.
Возвращает:
smart-pointer на экземпляр геометрического решателя.
MtMateType GetAutoMateType ( const ItConstraintItem cItem,
bool  forMove 
)
Аргументы:
cItem[in]- Геометрическое ограничение с неизвестным типом: mct_Unknown (см. #MtMateType).
forMove[in]- Способ оценки для тел с поведением перемещения, иначе вражения.
Возвращает:
Тип, который следует назначить этому сопряжению (см. #MtMateType).

Неизвестное сопряжение cItem этой функцией рассматривается, как пара объектов сопряжения, для которой подбирается наиболее подходящий вариант для стыковки. Например, для двух цилиндров это будет соосность. Флаг forMove помогает подобрать вариант стыковки с наиболее естественным поведением при динамическом изменении объектов (например, указателем мыши).

bool GetClosestParameters ( const ItConstraintItem cItem,
MtMateParameters cPars 
)
Аргументы:
[in]cItem- Рассматриваемое ограничение.
[out]cPars- Результирующие параметры оценки.
Возвращает:
Если возвращается true, то cPars содержит правильный ответ на запрос.

Сопряжение ItConstraintItem характеризуется целочисленными и вещественных параметрами (опция выравнивания и размер). Функция GetClosestParameters вычисляет такое состояние параметров, при котором ограничение было бы удовлетворено или наиболее близко к решению.

bool GetDimensionTraits ( const ItConstraintItem dCon,
MtLDimensionTraits dPars 
)
Аргументы:
[in]dCon- Размерное геометрическое ограничение.
[out]dPars- Структура характеристических параметров размера.
Возвращает:
Если возвращается true, то dPars содержит правильный ответ на запрос.
bool GetDimensionTraits ( const ItConstraintItem dCon,
MtADimensionTraits dPars 
)
Аргументы:
[in]dCon- Размерное геометрическое ограничение.
[out]dPars- Структура характеристических параметров размера.
Возвращает:
Если возвращается true, то dPars содержит правильный ответ на запрос.
bool EstimateTangencyChoice ( const ItConstraintItem cItem,
GCM_tan_choice  tChoice 
)
Аргументы:
[in]cItem- Сопряжение, которое несет пару сопрягаемых объектов или хотя бы один (первый или второй).
[in]tChoice- Вариант касания, который хотелось бы применить к сопряжению cItem.
Возвращает:
Вернет true, если опция касания применима для данного ограничения.
Заметки:
Сопряжение cItem может быть не полностью задано, т.е. выбран только один геометрический объект, тогда функция ответит о применимости tChoice к одному объекту без выбранного второго.
bool IsCompatibleMatingGeometry ( const ItConstraintItem cItem)

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

Возвращает:
Вернет true, если данная пара геометрических объектов применима к данному типу сопряжения.
bool GCM_RelativePlacement ( MbPlacement3D  gPlaces[],
size_t  gPlacesSize,
GCM_extra_param   
)

Функция реализует тип GCM_dependent_func, предполагающий зависимость g1 = f( g2, g3, g4 ), а именно вычисляет положение первого объекта (g1), размещаемого относительно второго объекта g2 также, как g3 размещено относительно g4. Таким образом, объект g1 является зависимым от остальных. Массив текущих положений геометрических объектов g1, g2 .. g4.

Аргументы:
[out]gPlaces- Вычисленное значение зависимого объекта g1 (возвращается в элемент gPlaces[0]).
[in]gPlacesSize- Известный размер принимаемого массива gPlaces.
Возвращает:
true, если функция выполнена успешно.
Реализация

gPlaces[0] = gPlaces[2];
gPlaces[0].Transform( gPlaces[3].GetMatrixInto() );
gPlaces[0].Transform( gPlaces[1].GetMatrixFrom() );

bool GetMatingGeometry ( const ItConstraintItem cItem,
int  geomNb,
bool  inWCS,
MtGeomType gType,
MbCartPoint3D pc,
MbVector3D vec,
double &  r1,
double &  r2 
)
Аргументы:
[in]cItem- Геометрическое ограничение.
[in]geomNb- 1-й или 2-й номер геометрического объекта.
[in]inWCS- Если = true, то функция вернет объект, заданный в МСК, иначе в ЛСК соответственно 1-го или 2-го тела.
[out]gType- Тип геометрического объекта.
pc,vec,r1,r2- Кортеж параметров объекта (описание ниже).
Возвращает:
Если возвращается true, то кортеж {pc, vec, r1, r2} содержит правильный ответ на запрос.
Формат записи кортежа {pc, vec, r1, r2}
Кортеж значений {pc, vec, r1, r2} унифицированно описывает все типы геометрических объектов, перечисленных в #MtGeometryType.
Точка задается единственным значением {pc};
Прямая задается парой {pc, vec};
Плоскость задается парой {pc, vec}, где vec - нормаль плоскости, pc - точка на плоскости;
Цилиндр задается четверкой {pc, vec, r1, r2}, где {pc,vec}-ось цилиндра, r1=r2 - радиус цилиндра;
Окружность задается тройкой {pc, vec, r1}, где {pc,vec}-ось окружности с центром в начале оси, r1 - радиус окружности, r2 = 0;
Конус - {pc, vec, r1, r2}, где {pc,vec}-ось конуса, r1 - радиус основания, r2 - радиус сечения. Конус имеет высоту, равную единице, т.е. расстояние между основанием и сечением равно единице, точка pc лежит в плоскости основания.
Сфера - задана точкой pc -центр сферы и r1=r2 -радиус сферы;
Тор задан точкой pc - центр тора, {pc,vec}-ось тора, r1 -большой радиус тора, r2 -радиус малый (половина толщины бублика).
const ItConstraintItem* GCM_ConstraintItem ( GCM_system  gSys,
GCM_constraint  conId 
)
Заметки:
Internal use only
 Указатель Классы Пространства имен Файлы Функции Переменные Определения типов Перечисления Элементы перечислений Друзья Макросы