C3D Toolkit  Kernel - 106477, Vision - 190409.106477
+ Граф связей класса Вспомогательные процедуры:

Классы

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

Функции

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 по дескриптору. Подробнее...
 
void GCM_ImportToC3D (GCM_system gSys, const TCHAR *c3dFile)
 Импортировать систему геометрических ограничений в модель C3D. Подробнее...
 
ptrdiff_t VolumeOfAlignOption (const ItConstraintItem &)
 Определить для сопряжения количество вариантов для опции выравнивания
 

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

Функции

◆ WorseResult()

GCM_result WorseResult ( GCM_result  res1,
GCM_result  res2 
)
inline

Выбрать "худший" результат.

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

◆ CreateSolver()

SPtr<MtGeomSolver> CreateSolver ( ItPositionManager pMan)

Создать Интерфейс геометрического решателя.

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

Аргументы
[in]pMan- Интерфейс клиентского приложения, предоставляющий функции репозиции геометрических объектов на стороне клиента.
Возвращает
smart-pointer на экземпляр геометрического решателя.

◆ GetAutoMateType()

MtMateType GetAutoMateType ( const ItConstraintItem cItem,
bool  forMove 
)

Автоматически назначить тип сопряжению для его аргументов.

Аргументы
cItem[in]- Геометрическое ограничение с неизвестным типом: mct_Unknown (см. #MtMateType).
forMove[in]- Способ оценки для тел с поведением перемещения, иначе вражения.
Возвращает
Тип, который следует назначить этому сопряжению (см. #MtMateType).

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

◆ GetClosestParameters()

bool GetClosestParameters ( const ItConstraintItem cItem,
MtMateParameters cPars 
)

Измерить параметры близости к решению для геометрического ограничения.

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

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

◆ GetDimensionTraits() [1/2]

bool GetDimensionTraits ( const ItConstraintItem dCon,
MtLDimensionTraits dPars 
)

Определить характеристические данные размера.

Аргументы
[in]dCon- Размерное геометрическое ограничение.
[out]dPars- Структура характеристических параметров размера.
Возвращает
Если возвращается true, то dPars содержит правильный ответ на запрос.

◆ GetDimensionTraits() [2/2]

bool GetDimensionTraits ( const ItConstraintItem dCon,
MtADimensionTraits dPars 
)

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

Аргументы
[in]dCon- Размерное геометрическое ограничение.
[out]dPars- Структура характеристических параметров размера.
Возвращает
Если возвращается true, то dPars содержит правильный ответ на запрос.

◆ EstimateTangencyChoice()

bool EstimateTangencyChoice ( const ItConstraintItem cItem,
GCM_tan_choice  tChoice 
)

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

Аргументы
[in]cItem- Сопряжение, которое несет пару сопрягаемых объектов или хотя бы один (первый или второй).
[in]tChoice- Вариант касания, который хотелось бы применить к сопряжению cItem.
Возвращает
Вернет true, если опция касания применима для данного ограничения.
Заметки
Сопряжение cItem может быть не полностью задано, т.е. выбран только один геометрический объект, тогда функция ответит о применимости tChoice к одному объекту без выбранного второго.

◆ IsCompatibleMatingGeometry()

bool IsCompatibleMatingGeometry ( const ItConstraintItem cItem)

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

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

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

◆ GCM_RelativePlacement()

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() );

◆ GetMatingGeometry()

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 -радиус малый (половина толщины бублика).

◆ GCM_ConstraintItem()

const ItConstraintItem* GCM_ConstraintItem ( GCM_system  gSys,
GCM_constraint  conId 
)

Получить интерфейсный объект геометрического ограничения ItConstraintItem по дескриптору.

Заметки
Internal use only

◆ GCM_ImportToC3D()

void GCM_ImportToC3D ( GCM_system  gSys,
const TCHAR *  c3dFile 
)

Импортировать систему геометрических ограничений в модель C3D.

Алгоритм импорта распознает каркасные структуры в системе ограничений и записывает их в файл формата C3D. Обнаруженные структуры конвертируются в проволочное представление MbWireFrame.