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

Классы

class  MbProjectionsObjects
 Дополнительные проецируемые объекты. Подробнее...
class  GetVestigesTransData
 Структура для обмена данными между потоками. Подробнее...
struct  MbMapSettings
 Параметры для построения одной проекции вида. Подробнее...
class  MbMapBodiesPArray
 Множество проекций тел. Подробнее...
struct  MbMapVisibilityMode
 Настройки видимости следов проецируемых объектов. Подробнее...
class  CurveWType
 Кривая с типом и погрешностью. Подробнее...
class  MbAnnCurves
 Множество аннотационных кривых. Подробнее...
class  MbSimbolthThreadView
 Реализация интерфейса аннотационного вида. Подробнее...
struct  ItAnnObjectStore
 Интерфейс хранилища аннотированных объектов. Подробнее...
struct  ItSymbolObjectStore
 Интерфейс хранилища условных обозначений. Подробнее...
class  MbSpacePoints
 Множество пространственных точек для проецирования. Подробнее...
class  MbSpaceCurves
 Множество пространственных кривых для проецирования. Подробнее...
struct  MbCutLump
 Тело с признаком разрезки в производном виде. Подробнее...
struct  MbMappingLumps
 Тело или набор тел, определенных в системе координат, с признаком разрезания в сечениях и разрезах. Подробнее...
class  MbPolygon3DSolid
 Полигон с телом. Подробнее...
class  MbMapViewInfo
 Информация о виде. Подробнее...
class  MbCompContourArray
 Множество контуров, принадлежащих некоторому компоненту. Подробнее...
class  MbSectionMap
 Данные для построения сечений и разрезов набора оболочек. Подробнее...
struct  MbSectionMapIteratorAbs
 Интерфейс итератора видов сечений. Подробнее...
class  MbSectionMapIterator
 Итератор видов сечений тела. Подробнее...
class  MbLocalSectionMapIterator
 Итератор местных видов сечений тела. Подробнее...
struct  ThreadMapperStruct
class  MbBaseVestige
 След трехмерного объекта. Подробнее...
class  MbVertexVestige
 След вершины. Подробнее...
struct  MbCurveVestige
 Информация о следе кривой. Подробнее...
class  MbEdgeVestige
 След ребра или кривой. Подробнее...
class  MbFaceVestige
 След грани. Подробнее...
class  MbAnnotationEdgeVestige
 След аннотационного объекта. Подробнее...
class  MbSymbolVestige
 След условного обозначения. Подробнее...
struct  MbVEFVestiges
 Набор массивов, выдаваемых наружу при получении всех линий. Подробнее...

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

enum  AnnotatedObjectType { aot_SymbolicThread = 0, aot_SymbolicThread_CuttedView, aot_SymbolicThread_SectionView }
 Тип аннотированного объекта. Подробнее...
enum  MbeMapViewType { mvt_View, mvt_Cut, mvt_Section }
 Тип ассоциативного вида. Подробнее...
enum  MbeThrMapType { tmt_CompleteView = 0, tmt_CuttedView, tmt_SectionView }
 Тип отображения. Подробнее...
enum  MbeThrState { ts_NotChanged = 0, ts_Changed, ts_Degenerated }
enum  MbeThrAdapt {
  ta_UsingNothing = 0, ta_UsingGabarit, ta_UsingSurfaces, ta_UsingSolid,
  ta_TypesCount
}
 Метод подгонки резьбы. Подробнее...

Функции

MbResultType SilhouetteCurve (const MbSurface &surface, const MbVector3D &eye, bool perspective, bool removeOnSurfaceBounds, RPArray< MbCurve3D > &result)
 Создать массив линий очерка поверхности.
MbResultType SilhouetteCurve (const MbFace &face, const MbVector3D &eye, bool perspective, RPArray< MbCurve3D > &result)
 Создать массив линий очерка грани.
MbResultType SilhouetteCurve (const MbSurface &surface, const MbAxis3D &axis, bool removeOnSurfaceBounds, RPArray< MbCurve3D > &curves)
 Создать массив линий очерка поверхности при вращательном движении вокруг оси.
MbResultType SilhouetteCurve (const MbFace &face, const MbAxis3D &axis, RPArray< MbCurve3D > &curves)
 Создать массив линий очерка грани при вращательном движении вокруг оси.
void GetVestiges (const MbPlacement3D &place, double znear, const RPArray< MbLump > &lumps, const MbProjectionsObjects &objects, MbVEFVestiges &result, const MbMapVisibilityMode &visMode, VERSION version=Math::DefaultMathVersion(), bool merge=true, const std::vector< MbLumpCube > *prevCubes=NULL)
 Построение проекций вида.
void JustCutLimitCurve (const RPArray< MbLump > &lumps, const MbCurve &contour, const SArray< MbCrossPoint > &cross, const MbMapViewInfo &baseViewInfo, const MbMapViewInfo &viewInfo, PArray< MbCurve > &curves)
 Определение участков граничной кривой.
void HiddenLinesMapping (const RPArray< MbLump > &lumps, const MbPlacement3D &place, double znear, double sag, PArray< MbPolygon3DSolid > &visibleEdges, PArray< MbPolygon3DSolid > &hiddenEdges, PArray< MbPolygon3DSolid > &visibleTangs, PArray< MbPolygon3DSolid > &hiddenTangs)
 Рассчитать полигоны линий.
void VisualLinesMapping (const RPArray< MbLump > &lumps, const MbPlacement3D &place, double znear, double sag, PArray< MbPolygon3DSolid > &visibleEdges, PArray< MbPolygon3DSolid > &visibleTangs)
 Рассчитать полигоны видимых линий.
int AnnotationSort (const MbSimbolthThreadView **pf, const MbSimbolthThreadView **ps)
 Сортировать объекты.
void SetCuttingFlags (RPArray< MbLump > &lumps, const SArray< uint > *baseNotSected, const SArray< uint > *deriveNotSected)
 Установить значение флагов рассеченности.
bool PerformThreadMapping (const ThreadMapperStruct &_thrStruct, MbSimbolthThreadView &_symbView)
 Вычислить линии отображения резьбы.
bool PerformThreadMapping (const ThreadMapperStruct &_thrStruct, MbAnnCurves &annCurves)
 Вычислить линии отображения резьбы.
MbEdgeVestigeAddVestigeEdge (uint otherComp, size_t otherIdent, const MbName &otherName, RPArray< MbEdgeVestige > &arr)
 Добавить MbEdgeVestige в массив.
MbAnnotationEdgeVestigeAddVestigeAnnotationEdge (uint otherComp, size_t otherIdent, const MbTopologyItem *otherItem, const MbName &otherName, MbBaseVestige::SubType subType, RPArray< MbAnnotationEdgeVestige > &array)
 Добавить MbAnnotationEdgeVestige в массив.
MbVertexVestigeGetVertexI (size_t i, RPArray< MbVertexVestige > &array)
 Доступ к элементу массива.
bool CheckThreads (PArray< MbThread > &threads, const MbPlacement3D *placeSec)
 Удалить некорректные резьбы.
bool GetThreadEdgeCentre (const MbCurveEdge &edge, MbCartPoint3D &pnt)
 Получить центральную точку.
bool CalculateThreadLimits (const MbFace &threadFace, const MbAxis3D &threadAxis, const MbFace &face, MbVector3D &threadDir, MbCartPoint3D &facePnt1, MbCartPoint3D &facePnt2, MbCartPoint3D &axisPnt1, MbCartPoint3D &axisPnt2, double dr=0.0, bool findCommonEdges=true)
 Найти граничные точки резьбы.

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

Тип аннотированного объекта.

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

Проекционный (полный) вид.

aot_SymbolicThread_CuttedView 

Вид-разрез.

aot_SymbolicThread_SectionView 

Вид-сечение.

Тип ассоциативного вида.

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

Вид.

mvt_Cut 

Разрез.

mvt_Section 

Сечение.

Тип отображения резьбы.

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

Полный вид. Система координат в строителе отображения резьбы ThreadMapperStruct определяет плоскость вида. Отображаем все.

tmt_CuttedView 

Вид-разрез. Система координат в строителе отображения резьбы ThreadMapperStruct определяет плоскость разреза. Отображаем только то, что за плоскостью.

tmt_SectionView 

Cечение. Система координат в строителе отображения резьбы ThreadMapperStruct определяет плоскость сечения. Отображаем только то что на плоскости.

Состояние резьбы.

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

Не изменилась.

ts_Changed 

Изменилась.

ts_Degenerated 

Выродилась.

Метод подгонки начала и конца резьбы.

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

Не подгонять, только проверить.

ta_UsingGabarit 

По габариту тела.

ta_UsingSurfaces 

По поверхностям тела под резьбой.

ta_UsingSolid 

По телу.

ta_TypesCount 

Количество типов адаптации.


Функции

MbResultType SilhouetteCurve ( const MbSurface surface,
const MbVector3D eye,
bool  perspective,
bool  removeOnSurfaceBounds,
RPArray< MbCurve3D > &  result 
)

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

Аргументы:
[in]surface- Поверхность.
[in]eye- Вектор взгляда.
[in]perspective- Является ли проекция перспективной.
[in]removeOnSurfaceBounds- Удалить линии очерка, совпадающие с границами поверхности.
[out]result- Выходной массив линий очерка.
Возвращает:
Возвращает код результата операции.
MbResultType SilhouetteCurve ( const MbFace face,
const MbVector3D eye,
bool  perspective,
RPArray< MbCurve3D > &  result 
)

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

Аргументы:
[in]face- Грани.
[in]eye- Вектор взгляда.
[in]perspective- Является ли проекция перспективной.
[out]result- Выходной массив линий очерка.
Возвращает:
Возвращает код результата операции.
MbResultType SilhouetteCurve ( const MbSurface surface,
const MbAxis3D axis,
bool  removeOnSurfaceBounds,
RPArray< MbCurve3D > &  curves 
)

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

Аргументы:
[in]surface- Поверхность.
[in]axis- Ось кругового взгляда (ось токарного сечения).
[in]removeOnSurfaceBounds- Удалить линии очерка, совпадающие с границами поверхности.
[out]result- Выходной массив линий очерка.
Возвращает:
Возвращает код результата операции.
MbResultType SilhouetteCurve ( const MbFace face,
const MbAxis3D axis,
RPArray< MbCurve3D > &  curves 
)

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

Аргументы:
[in]face- Грани.
[in]axis- Ось кругового взгляда (ось токарного сечения).
[out]result- Выходной массив линий очерка.
Возвращает:
Возвращает код результата операции.
void GetVestiges ( const MbPlacement3D place,
double  znear,
const RPArray< MbLump > &  lumps,
const MbProjectionsObjects objects,
MbVEFVestiges result,
const MbMapVisibilityMode visMode,
VERSION  version = Math::DefaultMathVersion(),
bool  merge = true,
const std::vector< MbLumpCube > *  prevCubes = NULL 
)

Построения проекций вида на указанную плоскость.
Создает набор следов объектов - тел с матрицами и дополнительных проецируемых объектов.

Аргументы:
[in]place- Проекционная плоскость.
[in]znear- Параметр перспективного изображения. Задавать равным 0.0.
[in]lumps- Проецируемые объекты.
[in]prObjects- Дополнительные проецируемые объекты.
[out]outdata- Результат.
[in]visMode- Настройки видимости следов проецируемых объектов. Относится к проекциям тел, пространственным точкам, пространственным кривым, не относится к условным обозначениям.
[in]version- Версия построения. Последняя версия Math::DefaultMathVersion(). Флаг слияния подобных кривых (по умолчанию true).
[in]prevCubes- Габариты тел до изменений.
void JustCutLimitCurve ( const RPArray< MbLump > &  lumps,
const MbCurve contour,
const SArray< MbCrossPoint > &  cross,
const MbMapViewInfo baseViewInfo,
const MbMapViewInfo viewInfo,
PArray< MbCurve > &  curves 
)

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

Заметки:
В многопоточном режиме выполняется параллельно.
Аргументы:
[in]lumps- Проецируемые объекты.
[in]contour- Граничная кривая. В системе координат вида viewInfo.
[in]cross- Точки пересечения граничной кривой с линиями чертежа - точки разбивки кривой на области разной видимости.
[in]baseViewInfo- Информация о базовом виде, на котором построен местный вид или разрез:
тип вида:
mvt_View - Вид,
mvt_Cut - Разрез,
mvt_Section - Сечечние;
плоскость вида, разреза или сечения.
[in]viewInfo- Информация о виде:
тип вида:
mvt_View - Местный вид, Выносной элемент,
mvt_Cut - Местный разрез,
mvt_Section - Местное сечение;
плоскость вида, разреза или сечения.
Если тип производного и базового вида != mvt_View, то тип производного вида должен совпадать с видом базового.
[out]curves- Результат - набор видимых участков граничной кривой.
void HiddenLinesMapping ( const RPArray< MbLump > &  lumps,
const MbPlacement3D place,
double  znear,
double  sag,
PArray< MbPolygon3DSolid > &  visibleEdges,
PArray< MbPolygon3DSolid > &  hiddenEdges,
PArray< MbPolygon3DSolid > &  visibleTangs,
PArray< MbPolygon3DSolid > &  hiddenTangs 
)

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

Аргументы:
[in]lumps- Набор тел с матрицами.
[in]place- Проекционная плоскость.
[in]znear- Параметр перспективного отображения. Задавать равным 0.0.
[in]sag- Угловая толерантность.
[out]visibleEdges- Полигоны видимых линий ребер.
[out]hiddenEdges- Полигоны невидимых линий ребер.
[out]visibleTangs- Полигоны видимых линий гладких ребер.
[out]hiddenTangs- Полигоны невидимых линий гладких ребер.
void VisualLinesMapping ( const RPArray< MbLump > &  lumps,
const MbPlacement3D place,
double  znear,
double  sag,
PArray< MbPolygon3DSolid > &  visibleEdges,
PArray< MbPolygon3DSolid > &  visibleTangs 
)

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

Аргументы:
[in]lumps- Набор тел с матрицами.
[in]place- Проекционная плоскость.
[in]znear- Параметр перспективного отображения. Задавать равным 0.0.
[in]sag- Угловая толерантность.
[out]visibleEdges- Полигоны видимых линий.
[out]visibleTangs- Полигоны видимых линий гладких ребер.
int AnnotationSort ( const MbSimbolthThreadView **  pf,
const MbSimbolthThreadView **  ps 
) [inline]

Сортировать аннотационные объекты. по имени компонента.

Аргументы:
[in]pf- Первый объект.
[in]ps- Второй объект.
Возвращает:
0, если имена компонентов равны,
-1, если имя первого объекта меньше,
1, если имя первого объекта больше.
void SetCuttingFlags ( RPArray< MbLump > &  lumps,
const SArray< uint > *  baseNotSected,
const SArray< uint > *  deriveNotSected 
)

Установить значение флагов рассеченности.

bool PerformThreadMapping ( const ThreadMapperStruct _thrStruct,
MbSimbolthThreadView _symbView 
)

Вычислить линии отображения резьбы тела (с интерфейсом).

Условия получения набора кривых для отображения:
1. Ось резьбы должна быть перпендикулярна или колинеарна оси Z вида.
2. Массивы кривых в _symbView должны быть пустыми.

Аргументы:
[in]_thrStruct- Данные для построения.
[out]_symbView- Указатель на интерфейс вида.
Содержит набор кривых отображения резьбы в системе координат тела, видимость которых определяется при проецированнии.
Возвращает:
true в случае успеха операции.
bool PerformThreadMapping ( const ThreadMapperStruct _thrStruct,
MbAnnCurves annCurves 
)

Вычислить линии отображения резьбы тела (без интерфейса).

Аргументы:
[in]_thrStruct- Данные для построения.
[out]annCurves- Множество аннотационных кривых.
Возвращает:
true в случае успеха операции.
MbEdgeVestige* AddVestigeEdge ( uint  otherComp,
size_t  otherIdent,
const MbName otherName,
RPArray< MbEdgeVestige > &  arr 
) [inline]

Добавить MbEdgeVestige в массив через закрытые конструкторы.

Аргументы:
[in]otherComp- Компонент.
[in]otherIdent- Идентификатор нити.
[in]otherName- Имя топологического объекта.
[out]array- Массив ребер.
MbAnnotationEdgeVestige* AddVestigeAnnotationEdge ( uint  otherComp,
size_t  otherIdent,
const MbTopologyItem otherItem,
const MbName otherName,
MbBaseVestige::SubType  subType,
RPArray< MbAnnotationEdgeVestige > &  array 
) [inline]

Добавить MbAnnotationEdgeVestige в массив через закрытые конструкторы.

Аргументы:
[in]otherComp- Компонент.
[in]otherIdent- Идентификатор нити.
[in]otherItem- Топологический объект.
[in]otherName- Имя топологического объекта.
[in]subType- Подтип аннотационных ребер.
[out]array- Массив аннотационных ребер.
MbVertexVestige& GetVertexI ( size_t  i,
RPArray< MbVertexVestige > &  array 
) [inline]

Доступ к элементу массива по индексу.

Аргументы:
[in]i- Индекс.
[in]array- Множество следов вершин.
Возвращает:
След вершины по индексу
bool CheckThreads ( PArray< MbThread > &  threads,
const MbPlacement3D placeSec 
)

Удалить вырожденные и некорректно расположенные относительно плоскости вида резьбы.
Из набора резьб удаляются:
1) нулевые указатели,
2) резьбы с некорректными параметрами,
3) резьбы без имен,
4) повторяющиеся резьбы (в случае повторов появляется предупреждение - таких ситуаций быть не должно),
5) некорректно расположенные относительно плоскости вида: ось резьбы должна быть параллельна или перпендикулярна оси Z плоскости.

Аргументы:
[in,out]threads- Набор резьб.
[in]placeSec- Плоскость вида.
bool GetThreadEdgeCentre ( const MbCurveEdge edge,
MbCartPoint3D pnt 
)

Получить центральную точку замкнутого ребра или замкнутой цепочки ребер.

Аргументы:
[in]edge- Ребро.
[out]pnt- Результат - центральная точка.
bool CalculateThreadLimits ( const MbFace threadFace,
const MbAxis3D threadAxis,
const MbFace face,
MbVector3D threadDir,
MbCartPoint3D facePnt1,
MbCartPoint3D facePnt2,
MbCartPoint3D axisPnt1,
MbCartPoint3D axisPnt2,
double  dr = 0.0,
bool  findCommonEdges = true 
)

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

Аргументы:
[in]threadFace- Грань резьбы.
[in]threadAxis- Ось резьбы.
[in]face- Грань, смежная с гранью резьбы.
[out]threadDir- Направление резьбы.
[out]facePnt1- Начальная точка на смежной грани.
[out]facePnt2- Конечная точка на смежной грани.
[out]axisPnt1- Начальная точка на оси резьбы.
[out]axisPnt2- Конечная точка на оси резьбы.
[in]dr- Глубина резьбы.
[in]findCommonEdges- Искать общие ребра.
Возвращает:
Возвращает true, если получилось определить.
 Указатель Классы Пространства имен Файлы Функции Переменные Определения типов Перечисления Элементы перечислений Друзья Макросы