C3D Toolkit  Kernel - 105122, Vision - 0.181114.105122

Твердое тело. Подробнее...

Граф наследования:MbSolid:
[см. легенду]
Граф связей класса MbSolid:
[см. легенду]

Открытые типы

enum  MultiState { ms_Undefined = 0, ms_Single, ms_Multiple }
 Тип связности тела. Подробнее...
 

Открытые члены

 MbSolid (MbFaceShell *shell, MbCreator *creator)
 Конструктор по оболочке и строителю.
 
 MbSolid (MbFaceShell &shell, MbCreator &creator)
 Конструктор по оболочке и строителю.
 
 MbSolid (MbFaceShell &shell, RPArray< MbCreator > &creators, bool sameCreators, MbRegDuplicate *iReg)
 Конструктор по оболочке и набору строителей, флагу копирования строителей и регистратору дублирования объектов.
 
 MbSolid (MbFaceShell &shell, std::vector< SPtr< MbCreator > > &creators, bool sameCreators, MbRegDuplicate *iReg)
 Конструктор по оболочке и набору строителей, флагу копирования строителей и регистратору дублирования объектов.
 
 MbSolid (MbFaceShell &shell, const MbSolid &solid, MbCreator &creator)
 Конструктор по оболочке, телу, у которого берутся строители, и строителю.
 
 MbSolid (MbFaceShell &shell, const MbSolid &solid, MbCreator *creator)
 Конструктор по оболочке, телу, у которого берутся строители, и строителю.
 
virtual ~MbSolid ()
 Деструктор.
 
virtual MbeSpaceType IsA () const
 Получить тип объекта.
 
virtual MbSpaceItemDuplicate (MbRegDuplicate *iReg=NULL) const
 Создать копию объекта. Подробнее...
 
virtual void Transform (const MbMatrix3D &, MbRegTransform *iReg=NULL)
 Преобразовать объект согласно матрице. Подробнее...
 
virtual void Move (const MbVector3D &, MbRegTransform *iReg=NULL)
 Сдвинуть объект вдоль вектора. Подробнее...
 
virtual void Rotate (const MbAxis3D &, double angle, MbRegTransform *iReg=NULL)
 Повернуть объект вокруг оси на заданный угол. Подробнее...
 
virtual bool IsSame (const MbSpaceItem &other, double accuracy=LENGTH_EPSILON) const
 Определить, являются ли объекты равными. Подробнее...
 
virtual bool IsSimilar (const MbSpaceItem &init) const
 Определить, являются ли объекты подобными. Подробнее...
 
virtual bool SetEqual (const MbSpaceItem &init)
 Сделать объекты равным, если они подобны. Подробнее...
 
virtual double DistanceToPoint (const MbCartPoint3D &) const
 Определить расстояние до точки. Подробнее...
 
virtual void AddYourGabaritTo (MbCube &) const
 Расширить присланный габаритный куб так, чтобы он включал в себя данный объект. Подробнее...
 
virtual void Refresh ()
 Перевести все временные (mutable) данные объекта в неопределённое (исходное) состояние.
 
virtual void CalculateMesh (const MbStepData &stepData, const MbFormNote &note, MbMesh &mesh) const
 Построить полигональную копию mesh. Подробнее...
 
virtual MbPropertyCreateProperty (MbePrompt n) const
 Создать собственное свойство с заданием его имени.
 
virtual void GetProperties (MbProperties &properties)
 Выдать свойства объекта. Подробнее...
 
virtual void SetProperties (const MbProperties &properties)
 Изменить свойства объекта. Подробнее...
 
virtual void GetBasisItems (RPArray< MbSpaceItem > &s)
 Выдать базовые объекты в присланный контейнер.
 
virtual void GetBasisPoints (MbControlData3D &) const
 Выдать контрольные точки объекта.
 
virtual void SetBasisPoints (const MbControlData3D &)
 Изменить объект по контрольным точкам.
 
virtual bool RebuildItem (MbeCopyMode copyMode, RPArray< MbSpaceItem > *items, IProgressIndicator *progInd)
 Перестроить объект по журналу построения. Подробнее...
 
virtual MbItemCreateMesh (const MbStepData &stepData, const MbFormNote &note, MbRegDuplicate *iReg) const
 Создать полигональный объект. Подробнее...
 
Функции тела.
virtual void CalculateGabarit (MbCube &cube) const
 Рассчитать габарит. Подробнее...
 
const MbCube GetCube () const
 Получить габарит. Подробнее...
 
virtual bool GetCreators (RPArray< MbCreator > &creators) const
 Добавить свои строители в присланный массив. Подробнее...
 
void CalculateGrid (const MbStepData &stepData, MbMesh &mesh) const
 Построить полигональную копию тела и положить её данные в присланный объект. Подробнее...
 
void SetShell (MbFaceShell *shell)
 Заменить оболочку тела на присланную.
 
MbFaceShellDetachShell ()
 Отцепить оболочку.
 
MbFaceShellGetShell () const
 Выдать оболочку.
 
bool IsShellBuild () const
 Имеется ли оболочка?
 
void MakeRight ()
 Переустановить в ребрах указатели на соединяемые ими грани.
 
bool IsRight () const
 Верно ли установлены в ребра указатели на соединяемые ими грани?
 
size_t GetFacesCount () const
 Выдать количество граней.
 
void GetVertices (RPArray< MbVertex > &) const
 Заполнить контейнер вершинами тела.
 
void GetEdges (RPArray< MbCurveEdge > &) const
 Заполнить контейнер ориентированными ребрами тела.
 
void GetItems (RPArray< MbVertex > &, RPArray< MbCurveEdge > &) const
 Заполнить контейнеры вершинами и ребрами тела.
 
template<class Faces >
void GetFaces (Faces &faces) const
 Заполнить контейнер гранями тела.
 
template<class Faces >
void GetFacesSet (Faces &faces) const
 Заполнить контейнер гранями тела.
 
void GetItems (RPArray< MbTopologyItem > &) const
 Заполнить контейнер вершинами, ребрами и гранями тела.
 
MbVertexGetVertex (size_t index) const
 Выдать вершину по её номеру.
 
MbCurveEdgeGetEdge (size_t index) const
 Выдать ребро по его номеру.
 
MbFaceGetFace (size_t index) const
 Выдать грань по её номеру.
 
size_t GetVertexIndex (const MbVertex &) const
 Выдать номер вершины.
 
size_t GetEdgeIndex (const MbCurveEdge &) const
 Выдать номер ребра.
 
size_t GetFaceIndex (const MbFace &) const
 Выдать номер грани.
 
size_t GetShellCount () const
 Выдать количество связных оболочек тела.
 
MbeItemLocation PointClassification (const MbCartPoint3D &p, double epsilon=Math::metricRegion) const
 Классифицировать точку. Подробнее...
 
MbeItemLocation SolidClassification (const MbSolid &solid, double epsilon=Math::metricRegion) const
 Классифицировать тело. Подробнее...
 
bool FindFacesIndexByFaces (RPArray< MbFace > &faces, SArray< size_t > &indices) const
 Найти номера граней. Подробнее...
 
bool FindFacesIndexByEdges (RPArray< MbCurveEdge > &edges, SArray< MbEdgeFacesIndexes > &indices) const
 Найти номера ребер и соединяемых ими граней. Подробнее...
 
const MbVertexFindNearestVertex (const MbCartPoint3D &p) const
 Выдать ближайшую к точке вершину.
 
void FindEdgesForVertex (const MbVertex &vertex, RPArray< MbCurveEdge > &findEdges) const
 Найти стыкующиеся в вершине ребра тела. Подробнее...
 
void FindFacesForVertex (const MbVertex &vertex, RPArray< MbFace > &findFaces) const
 Найти стыкующиеся в вершине грани тела. Подробнее...
 
bool FindEdgeNumbers (const MbCurveEdge &edge, size_t &faceN, size_t &loopN, size_t &edgeN) const
 Найти для ребра его номер грани, номер цикла и номер ребра в цикле. Подробнее...
 
const MbVertexFindVertexByName (const MbName &) const
 Найти вершину по имени.
 
const MbCurveEdgeFindEdgeByName (const MbName &) const
 Найти ребро по имени.
 
const MbFaceFindFaceByName (const MbName &) const
 Найти грань по имени.
 
MbVertexFindVertexByName (const MbName &)
 Найти вершину по имени.
 
MbCurveEdgeFindEdgeByName (const MbName &)
 Найти ребро по имени.
 
MbFaceFindFaceByName (const MbName &)
 Найти грань по имени.
 
MbSNameMaker GetYourName () const
 Создать именователь тела.
 
void SetOwnChangedThrough (MbeChangedType)
 Установить заданный флаг измененности для всех граней, рёбер и вершин.
 
bool IsClosed () const
 Замкнуто ли тело (не имеет края)?
 
bool IsMultiSolid () const
 Является ли тело многочастным?
 
bool SetMultiSolidState (bool ms, bool setDirectly=false) const
 Установить флаг многочастности с минимальной проверкой. Подробнее...
 
void ResetMultiSolidState () const
 Сбросить флаг многочастности в неопределённое состояние.
 
MultiState GetMultiSolidState () const
 Получить фактическое состояние флага многочастности.
 
virtual void CalculateLocalGabarit (const MbMatrix3D &into, MbCube &cube) const
 Рассчитать габарит относительно локальной системы координат, заданной матрицей преобразования в неё.
 
void CalculateLocalGabarit (const MbPlacement3D &localPlace, MbCube &cube) const
 Рассчитать габарит относительно локальной системы координат.
 
void BreakToBasisItem (size_t c, RPArray< MbSpaceItem > &s)
 Выдать базовые объекты журнала построения.
 
void Math3DSelectSolid () const
 Присвоить свой указатель глобальной переменной Math::selectSolid = this (для отладки).
 
- Открытые члены унаследованные от MbItem
 MbItem ()
 Конструктор.
 
virtual ~MbItem ()
 Деструктор.
 
virtual MbeSpaceType Type () const
 Получить групповой тип объекта.
 
virtual MbeSpaceType Family () const
 Получить семейство объекта.
 
virtual MbeImplicationType ImplicationType () const
 Выдать тип контейнера атрибутов.
 
virtual void GetBasisPoints (MbControlData &) const
 
virtual void SetBasisPoints (const MbControlData &)
 
virtual bool GetPlacement (MbPlacement3D &p) const
 Получить систему координат объекта, если она есть. Функция вернет true, если объект имеет собственную подсистему координат, иначе считается, что ЛСК объекта всегда "стандартная" (MbPlacement3D::global).
 
virtual bool SetPlacement (const MbPlacement3D &)
 Установить систему координат объекта, если возможно.
 
virtual bool AddYourMesh (const MbStepData &stepData, const MbFormNote &note, MbMesh &mesh) const
 Добавить полигональный объект. Подробнее...
 
virtual MbItemCutMesh (const MbPlacement3D &cutPlace, double distance) const
 Разрезать полигональный объект одной или двумя параллельными плоскостями. Подробнее...
 
virtual bool NearestMesh (MbeSpaceType sType, MbeTopologyType tType, MbePlaneType pType, const MbAxis3D &axis, double maxDistance, bool gridPriority, double &t, double &dMin, MbItem *&find, SimpleName &findName, MbRefItem *&element, SimpleName &elementName, MbPath &path, MbMatrix3D &from) const
 Найти ближайший объект или имя ближайшего объекта. Подробнее...
 
virtual bool GetItems (MbeSpaceType type, const MbMatrix3D &from, RPArray< MbItem > &items, SArray< MbMatrix3D > &matrs)
 Дать все объекты указанного типа. Подробнее...
 
virtual bool GetUniqItems (MbeSpaceType type, CSSArray< const MbItem *> &items) const
 Дать все уникальные объекты указанного типа. Подробнее...
 
virtual const MbItemGetItemByPath (const MbPath &path, size_t ind, MbMatrix3D &from, size_t currInd=0) const
 Дать объект по его пути. Подробнее...
 
virtual const MbItemFindItem (const MbSpaceItem *s, MbPath &path, MbMatrix3D &from) const
 Найти объект по геометрическому объекту. Подробнее...
 
virtual const MbItemFindItem (const MbPlaneItem *s, MbPath &path, MbMatrix3D &from) const
 Найти объект по геометрическому объекту. Подробнее...
 
virtual const MbItemFindItem (const MbItem *s, MbPath &path, MbMatrix3D &from) const
 Найти объект по объекту геометрической модели. Подробнее...
 
virtual const MbItemGetItemByName (SimpleName n, MbPath &path, MbMatrix3D &from) const
 Найти объект по имени. Подробнее...
 
virtual void TransformSelected (const MbMatrix3D &matr, MbRegTransform *iReg=NULL)
 Преобразовать выбранный объект согласно матрице. Подробнее...
 
virtual void MoveSelected (const MbVector3D &to, MbRegTransform *iReg=NULL)
 Сдвинуть выбранный объект вдоль вектора. Подробнее...
 
virtual void RotateSelected (const MbAxis3D &axis, double angle, MbRegTransform *iReg=NULL)
 Повернуть выбранный объект вокруг оси на заданный угол. Подробнее...
 
virtual bool GetMatrixFrom (MbMatrix3D &from) const
 Дать матрицу преобразования из локальной системы объекта.
 
virtual bool GetMatrixInto (MbMatrix3D &into) const
 Дать матрицу преобразования в локальную систему объекта.
 
void Assign (const MbItem &other)
 Копировать строители и атрибуты.
 
void CopyItemName (const MbItem &other)
 Копировать имя объекта.
 
SimpleName GetItemName () const
 Выдать имя объекта.
 
void SetItemName (SimpleName n)
 Установить имя объекта.
 
bool IsAttributeEqual (int attribute)
 Соответствует ли знаковый атрибут объекту?
 
- Открытые члены унаследованные от MbSpaceItem
virtual ~MbSpaceItem ()
 Деструктор.
 
void PrepareWrite ()
 Регистрация объекта. Подробнее...
 
virtual MbeRefType RefType () const
 Получить регистрационный тип (для копирования, дублирования).
 
virtual bool IsFamilyRegistrable () const
 Принадлежит ли объект к регистрируемому семейству.
 
void CalculateWire (const MbStepData &stepData, MbMesh &mesh) const
 
void CalculateWire (double sag, MbMesh &mesh) const
 
- Открытые члены унаследованные от TapeBase
 TapeBase (RegistrableRec regs=noRegistrable)
 Конструктор.
 
 TapeBase (const TapeBase &other)
 Конструктор копирования
 
virtual ~TapeBase ()
 Деструктор.
 
RegistrableRec GetRegistrable () const
 Является ли потоковый класс регистрируемым.
 
void SetRegistrable (RegistrableRec regs=registrable) const
 Установить состояние регистрации потокового класса.
 
virtual ClassDescriptor GetClassDescriptor (const VersionContainer &) const =0
 Получить дескриптор класса
 
virtual const char * GetPureName (const VersionContainer &) const
 Получить имя класса.
 
- Открытые члены унаследованные от MbRefItem
 MbRefItem ()
 Конструктор без параметров.
 
refcount_t GetUseCount () const
 Выдать количество ссылок (выдать количество владельцев объекта).
 
refcount_t AddRef () const
 Увеличить количество ссылок на единицу.
 
refcount_t DecRef () const
 Уменьшить количество ссылок на единицу.
 
refcount_t Release () const
 Уменьшить количество ссылок на единицу и, если количество ссылок стало равным нулю, удалить себя.
 
- Открытые члены унаследованные от MbTransactions
 MbTransactions ()
 Конструктор без параметров.
 
template<class Creators >
 MbTransactions (const Creators &creators)
 Конструктор по строителям.
 
 ~MbTransactions ()
 Деструктор.
 
void CreatorsCopy (MbTransactions &other, MbRegDuplicate *iReg=NULL) const
 Очистить присланный журнал и скопировать в него строители.
 
void CreatorsAssign (const MbTransactions &other)
 Очистить журнал и скопировать в него строители из присланного журнала.
 
bool SetCreatorsEqual (const MbTransactions &other)
 Сделать строители равными соответствующим строителям присланного журнала, если строители подобны.
 
bool IsCreatorsSimilar (const MbTransactions &other) const
 Проверить, являются ли соответствующие строители присланного журнала подобными.
 
void CreatorsTransform (const MbMatrix3D &, MbRegTransform *=NULL)
 Преобразовать согласно матрице строители.
 
void CreatorsMove (const MbVector3D &, MbRegTransform *=NULL)
 Сдвинуть вдоль вектора строители.
 
void CreatorsRotate (const MbAxis3D &, double angle, MbRegTransform *=NULL)
 Повернуть вокруг оси строители на заданный угол.
 
size_t GetCreatorsCount () const
 Выдать количество строителей.
 
void Reserve (size_t count)
 Зарезервировать место для строителей.
 
const MbCreatorGetCreator (size_t ind) const
 Выдать строитель по его индексу.
 
MbCreatorSetCreator (size_t ind)
 Выдать строитель по его индексу с возможностью редактирования.
 
bool GetCreatorsCopies (RPArray< MbCreator > &) const
 Добавить копии своих строителей в присланный массив.
 
size_t FindCreator (const MbCreator *creator)
 Найти номер строителя в журнале или вернуть SYS_MAX_T в случае отсутствия.
 
bool AddCreator (const MbCreator &, bool addSame=false)
 Добавить строитель (addSame = false) или его копию (addSame = true) в журнал.
 
bool AddCreator (const MbCreator *, bool addSame=false)
 Добавить строитель (addSame = false) или его копию (addSame = true) в журнал.
 
void AddCreators (const RPArray< MbCreator > &)
 Добавить строители в журнал.
 
MbCreatorDetachCreator (size_t ind)
 Вытереть строитель с указанным номером из журнала и отдать его.
 
bool DeleteCreator (size_t ind)
 Удалить строитель с указанным номером и вытереть его из журнала.
 
void DeleteCreators ()
 Удалить все строители и очистить журнал.
 
int GetCreatorStatus (size_t ind) const
 Дать статус строителя с указанным номером.
 
bool SetCreatorStatus (size_t ind, MbeProcessState)
 Установить строителю с указанным номером статус.
 
size_t GetActiveCreatorsCount () const
 Дать количество активных строителей.
 
bool SetActiveCreatorsCount (size_t activeCount)
 Установить количество активных строителей от начала до заданного номера.
 
void BreakCreatorsToBasisItem (size_t c, RPArray< MbSpaceItem > &)
 Выдать создаваемый заданным числом строителей объект и базовые объекты остальных строителей.
 
void GetCreatorsBasisItems (RPArray< MbSpaceItem > &)
 Выдать базовые объекты строителей.
 
void GetCreatorsBasisPoints (MbControlData3D &) const
 Выдать базовые точки строителей.
 
void SetCreatorsBasisPoints (const MbControlData3D &)
 Изменить объект по контрольным точкам.
 
void GetProperties (MbProperties &, bool sameCreators=false)
 Выдать свойства строителей (на копиях или на оригиналах строителей).
 
void SetProperties (const MbProperties &)
 Установить свойства строителей.
 
void CreatorsRead (reader &in)
 Прочитать строители из потока.
 
void CreatorsWrite (writer &out) const
 Записать строители в поток.
 
- Открытые члены унаследованные от MbAttributeContainer
 MbAttributeContainer ()
 Конструктор без параметров.
 
 MbAttributeContainer (MbAttribute &)
 Конструктор по атрибуту.
 
virtual ~MbAttributeContainer ()
 Деструктор.
 
void AttributesRead (reader &)
 Прочитать атрибуты из потока.
 
void AttributesWrite (writer &) const
 Записать атрибуты в поток.
 
void GetProperties (MbProperties &)
 Выдать свойства атрибутов.
 
void SetProperties (const MbProperties &)
 Установить свойства атрибутов.
 
void SetDensity (double)
 Установить плотность объекта.
 
double GetDensity () const
 Выдать плотность объекта.
 
void SetVisual (float a, float d, float sp, float sh, float t, float e)
 Установить визуальные свойства объекта.
 
bool GetVisual (float &a, float &d, float &sp, float &sh, float &t, float &e) const
 Выдать визуальные свойства объекта. Подробнее...
 
bool IsColored () const
 Есть ли у объекта свой цвет. Подробнее...
 
void SetColor (uint32)
 Изменить цвет объекта.
 
uint32 GetColor () const
 Выдать цвет объекта.
 
void SetWidth (int)
 Установить толщину линий для отображения объекта.
 
int GetWidth () const
 Выдать толщину линий для отображения объекта.
 
void SetStyle (int)
 Установить стиль линий для отображения объекта.
 
int GetStyle () const
 Выдать стиль линий для отображения объекта.
 
void SetSelected (bool s=true)
 Выделить или не выделить объект.
 
bool IsSelected () const
 Выделен ли объект?
 
bool ReverseSelected ()
 Инвертировать выделение объекта.
 
void SetChanged (bool c=true)
 Задать: объект изменен или не изменён.
 
bool IsChanged () const
 Изменен ли объект?
 
void SetVisible (bool)
 Установить видимость.
 
bool IsVisible () const
 Видимый ли объект?
 
bool IsInvisible () const
 Не видимый ли элемент?
 
void AttributesAssign (const MbAttributeContainer &)
 Cдублировать атрибуты присланного объекта, свои отпустить.
 
size_t AttributesCount () const
 Выдать количество объектов.
 
void RemoveAttributes ()
 Удалить все атрибуты из контейнера.
 
MbAttributeAddAttribute (MbAttribute *attr, bool checkSame=true)
 Добавить атрибут в контейнер.
 
MbAttributeAddAttribute (const MbAttribute &attr, bool checkSame=true)
 Добавить атрибут в контейнер (всегда копирует атрибут).
 
void GetAttributes (std::vector< MbAttribute *> &attrs, MbeAttributeType type, MbeAttributeType subType) const
 Выдать атрибуты заданного типа.
 
void GetCommonAttributes (std::vector< MbAttribute *> &attrs, const c3d::string_t &samplePrompt, MbeAttributeType subType=at_Undefined) const
 Выдать атрибуты по строке описания.
 
void GetStringAttributes (std::vector< MbAttribute *> &attrs, const c3d::string_t &sampleContent) const
 Выдать строковые атрибуты по строке содержания.
 
bool RemoveAttribute (const MbAttribute *)
 Выдать атрибут заданного типа, если их несколько - то первый попавшийся. Подробнее...
 
bool RemoveAttributes (MbeAttributeType type, MbeAttributeType subType)
 Удалить атрибуты заданного типа.
 
const MbAttributeGetSimpleAttribute (MbeAttributeType) const
 Выдать простой атрибут данного подтипа.
 
MbAttributeSetSimpleAttribute (MbeAttributeType)
 Выдать простой атрибут данного подтипа.
 
MbAttributeSetSimpleAttribute (MbAttribute *simpAttr)
 Установить простой атрибут данного подтипа.
 
MbAttributeSetSimpleAttribute (const MbAttribute &simpAttr)
 Установить простой атрибут данного подтипа (всегда копирует атрибут).
 
void RemoveSimpleAttribute (MbeAttributeType)
 Удалить простой атрибут(один и более) данного подтипа.
 
MbAttributeDetachSimpleAttribute (MbeAttributeType)
 Отдать простой атрибут данного подтипа.
 
void GetUserAttributes (std::vector< MbUserAttribute *> &attrs, const MbUserAttribType &type) const
 Выдать пользовательский атрибут данного подтипа.
 
void RemoveUserAttributes (const MbUserAttribType &type)
 Удалить пользовательский атрибут (один и более) данного подтипа.
 
void DetachUserAttributes (std::vector< MbUserAttribute *> &attrs, const MbUserAttribType &type)
 Отдать пользовательский атрибут данного подтипа.
 
void AttributesChange ()
 Выполнить действия при изменении атрибутов.
 
void AttributesConvert (MbAttributeContainer &other) const
 Выполнить действия при конвертации атрибутов.
 
void AttributesTransform (const MbMatrix3D &, MbRegTransform *=NULL)
 Выполнить действия при трансформировании атрибутов.
 
void AttributesMove (const MbVector3D &, MbRegTransform *=NULL)
 Выполнить действия при перемещении атрибутов.
 
void AttributesRotate (const MbAxis3D &, double angle, MbRegTransform *=NULL)
 Выполнить действия при вращении атрибутов.
 
void AttributesCopy (MbAttributeContainer &other, MbRegDuplicate *=NULL) const
 Выполнить действия при копировании атрибутов.
 
void AttributesMerge (MbAttributeContainer &other)
 Выполнить действия при объединении атрибутов.
 
void AttributesReplace (MbAttributeContainer &other)
 Выполнить действия при замене атрибутов.
 
void AttributesSplit (const std::vector< MbAttributeContainer *> &others)
 Выполнить действия при разделении атрибутов.
 
void AttributesDelete ()
 Выполнить действия при удалении атрибутов.
 

Защищенные данные

MbFaceShellouter
 Оболочка тела.
 
MultiState multiState
 Тип связности тела.
 

Дополнительные унаследованные члены

- Открытые статические члены унаследованные от MbAttributeContainer
static MbUserAttributeReduceUserAttrib (const MbExternalAttribute &source)
 Преобразовать из пользовательского в "системный".
 
static MbExternalAttributeAdvanceUserAttrib (const MbUserAttribute &source)
 Преобразовать из "системного" в пользовательский
 
- Защищенные члены унаследованные от MbItem
 MbItem (const MbItem &, MbRegDuplicate *)
 Конструктор копирования с регистратором дублирования.
 
void LockItem () const
 Захватить объект, если ядро работает в многопоточном режиме.
 
void UnlockItem () const
 Освободить объект, если ядро работает в многопоточном режиме.
 
- Защищенные члены унаследованные от MbSpaceItem
 MbSpaceItem ()
 Конструктор без параметров.
 
- Защищенные члены унаследованные от MbTransactions
 MbTransactions (const MbTransactions &, MbRegDuplicate *iReg)
 Конструктор копирования с регистратором.
 
- Защищенные члены унаследованные от MbAttributeContainer
 MbAttributeContainer (const MbAttributeContainer &, MbRegDuplicate *)
 Конструктор копирования с регистратором.
 

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

Твердое тело.

Твердое тело, или тело, является объектом геометрической модели. Тело состоит из множества граней MbFaceShell.
Структура данных тела содержит указатель на набор граней outer и тип связности тела multiState. Тело может описывать одно или несколько связных множеств точек. Тип связности multiState сообщает о том, что тело описывает одно связное множество точек, или, что тело описывает несколько связных множеств точек и может быть разбито на несколько тел.
Набор граней тела outer->faceSet описывает одну или несколько однородных оболочек. В зависимости от признака outer->closed замкнутости оболочек тело может описывать два принципиально разных множества точек.
Если все оболочки тела замкнутые, то тело описывает множество точек, располагающихся с внутренней стороны одной внешней и нескольких внутренних оболочек, расположенных внутри внешней оболочки, в совокупности с точками этих оболочек.
Если оболочки тела незамкнутые, то тело описывает множество точек, принадлежащих граням этих оболочек.
В зависимости от замкнутости оболочек тело будем называть замкнутым или незамкнутым. В частном случае, когда все оболочки являются замкнутыми, получим замкнутое тело. В общем случае оболочки тела могут быть незамкнутыми, тогда получим незамкнутое тело.
Замкнутое тело и незамкнутое тело оперируют разными множествами точек и это различие влияет на булевы и другие операции с телами.
Над телами можно выполнять определённый набор действий. Эти действия записываются в журнал построения тела, элементами которого являются строители оболочек MbCreator.
Тело может иметь атрибуты MbAttribute.

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

◆ MultiState

Тип связности тела.

Тело может состоять из одного или нескольких связных множеств точек.

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

Связность тела не определена.

ms_Single 

Тело описывает одно связное множество точек.

ms_Multiple 

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

Методы

◆ Duplicate()

virtual MbSpaceItem& MbSolid::Duplicate ( MbRegDuplicate iReg = NULL) const
virtual

Создать копию объекта.

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

Аргументы
[in]iReg- Регистратор.
Возвращает
Копия объекта.

Замещает MbItem.

◆ Transform()

virtual void MbSolid::Transform ( const MbMatrix3D matr,
MbRegTransform iReg = NULL 
)
virtual

Преобразовать объект согласно матрице.

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

Аргументы
[in]matr- Матрица преобразования.
[in]iReg- Регистратор.

Замещает MbItem.

◆ Move()

virtual void MbSolid::Move ( const MbVector3D to,
MbRegTransform iReg = NULL 
)
virtual

Сдвинуть объект вдоль вектора.

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

Аргументы
[in]to- Вектор сдвига.
[in]iReg- Регистратор.

Замещает MbItem.

◆ Rotate()

virtual void MbSolid::Rotate ( const MbAxis3D axis,
double  angle,
MbRegTransform iReg = NULL 
)
virtual

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

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

Аргументы
[in]axis- Ось поворота.
[in]angle- Угол поворота.
[in]iReg- Регистратор.

Замещает MbItem.

◆ IsSame()

virtual bool MbSolid::IsSame ( const MbSpaceItem other,
double  accuracy = LENGTH_EPSILON 
) const
virtual

Определить, являются ли объекты равными.

Равными считаются однотипные объекты, все данные которых одинаковы (равны).

Аргументы
[in]item- Объект для сравнения.
[in]accuracy- Точность сравнения.
Возвращает
Равны ли объекты.

Замещает MbItem.

◆ IsSimilar()

virtual bool MbSolid::IsSimilar ( const MbSpaceItem item) const
virtual

Определить, являются ли объекты подобными.

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

Аргументы
[in]item- Объект для сравнения.
Возвращает
Подобны ли объекты.

Переопределяет метод предка MbSpaceItem.

◆ SetEqual()

virtual bool MbSolid::SetEqual ( const MbSpaceItem item)
virtual

Сделать объекты равным, если они подобны.

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

Аргументы
[in]item- Объект для инициализации.
Возвращает
Сделан ли объект равным присланному.

Замещает MbItem.

◆ DistanceToPoint()

virtual double MbSolid::DistanceToPoint ( const MbCartPoint3D point) const
virtual

Определить расстояние до точки.

Определить расстояние до точки.

Аргументы
[in]point- Точка.
Возвращает
Расстояние от объекта до точки.

Замещает MbItem.

◆ AddYourGabaritTo()

virtual void MbSolid::AddYourGabaritTo ( MbCube cube) const
virtual

Расширить присланный габаритный куб так, чтобы он включал в себя данный объект.

Расширить присланный габаритный куб так, чтобы он включал в себя данный объект.

Аргументы
[in,out]cube- Принимающий габаритный куб с информацией по габаритам.

Замещает MbItem.

◆ CalculateMesh()

virtual void MbSolid::CalculateMesh ( const MbStepData stepData,
const MbFormNote note,
MbMesh mesh 
) const
virtual

Построить полигональную копию mesh.

Построить полигональную копию данного объекта, представленную полигонами, или/и плоскими пластинами.

Аргументы
[in]stepData- Данные для вычисления шага при построении полигонального.
[in]note- Способ построения полигонального объекта.
[in,out]mesh- Построенный полигональный объект.

Замещает MbItem.

◆ GetProperties()

virtual void MbSolid::GetProperties ( MbProperties properties)
virtual

Выдать свойства объекта.

Выдать внутренние данные (свойства) объекта для их просмотра и модификации.

Аргументы
[in]properties- Контейнер для внутренних данных объекта.

Переопределяет метод предка MbItem.

◆ SetProperties()

virtual void MbSolid::SetProperties ( const MbProperties properties)
virtual

Изменить свойства объекта.

Изменение внутренних данных (свойств) объекта выполняется копированием соответствующих значений из присланного объекта.

Аргументы
[in]properties- Контейнер для внутренних данных объекта.

Переопределяет метод предка MbItem.

◆ RebuildItem()

virtual bool MbSolid::RebuildItem ( MbeCopyMode  sameShell,
RPArray< MbSpaceItem > *  items,
IProgressIndicator progInd 
)
virtual

Перестроить объект по журналу построения.

Создать заново объект по журналу построения.

Аргументы
[in]sameShell- Полнота копирования элементов.
[out]items- Контейнер для складывания элементов невыполненных построений (может быть NULL).
Возвращает
Перестроен ли объект.

Переопределяет метод предка MbItem.

◆ CreateMesh()

virtual MbItem* MbSolid::CreateMesh ( const MbStepData stepData,
const MbFormNote note,
MbRegDuplicate iReg 
) const
virtual

Создать полигональный объект.

Создать полигональный объект - упрощенную копию данного объекта.

Аргументы
[in]stepData- Данные для вычисления шага при триангуляции.
[in]note- Способ построения полигонального объекта.
Возвращает
Построенный полигональный объект.

Замещает MbItem.

◆ CalculateGabarit()

virtual void MbSolid::CalculateGabarit ( MbCube cube) const
virtual

Рассчитать габарит.

Рассчитать габарит тела.

Аргументы
[out]cube- Рассчитанный габарит.

◆ GetCube()

const MbCube MbSolid::GetCube ( ) const

Получить габарит.

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

Возвращает
Габарит.

◆ GetCreators()

virtual bool MbSolid::GetCreators ( RPArray< MbCreator > &  creators) const
virtual

Добавить свои строители в присланный массив.

При отсутствии строителей создает строитель без истории и добавляет его в присланный контейнер и в пустой журнал построения.

Аргументы
[out]creators- Контейнер для добавления своих строителей.
Возвращает
Добавлены ли строители.

Переопределяет метод предка MbTransactions.

◆ CalculateGrid()

void MbSolid::CalculateGrid ( const MbStepData stepData,
MbMesh mesh 
) const

Построить полигональную копию тела и положить её данные в присланный объект.

Полигональная копия тела строится только путём триангуляции граней.

Аргументы
[in]stepData- Данные для вычисления шага при триангуляции.
[out]mesh- Полигональная копия объекта.

◆ PointClassification()

MbeItemLocation MbSolid::PointClassification ( const MbCartPoint3D p,
double  epsilon = Math::metricRegion 
) const

Классифицировать точку.

Классификация заключается в определении положения точки относительно тела.

Аргументы
[in]p- Классифицируемая точка.
[in]epsilon- Точность классификации.
Возвращает
iloc_InItem (+1) - Точка лежит внутри тела.
iloc_OutOfItem (-1) - Точка лежит вне тела.
iloc_OnItem ( 0) - Точка лежит на поверхности тела.

◆ SolidClassification()

MbeItemLocation MbSolid::SolidClassification ( const MbSolid solid,
double  epsilon = Math::metricRegion 
) const

Классифицировать тело.

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

Аргументы
[in]solid- Классифицируемое тело.
[in]epsilon- Точность классификации.
Возвращает
iloc_OutOfItem (-1) - Классифицируемое тело лежит вне данного тела.
iloc_OnItem ( 0) - Классифицируемое тело пересекает данного тело.
iloc_InItem (+1) - Классифицируемое тело лежит внутри данного тела.
iloc_ByItem (+2) - Данное тело лежит внутри классифицируемого тела.
iloc_Undefined (-3) - Классификация не выполнялась.

◆ FindFacesIndexByFaces()

bool MbSolid::FindFacesIndexByFaces ( RPArray< MbFace > &  faces,
SArray< size_t > &  indices 
) const

Найти номера граней.

Найти номера граней и заполнить второй контейнер в соответствии с первым.

Аргументы
[in]faces- Множество граней.
[out]indices- Найденное множество номеров этих граней в теле.
Возвращает
Найдены ли все номера?

◆ FindFacesIndexByEdges()

bool MbSolid::FindFacesIndexByEdges ( RPArray< MbCurveEdge > &  edges,
SArray< MbEdgeFacesIndexes > &  indices 
) const

Найти номера ребер и соединяемых ими граней.

Найти номера ребер и заполнить второй контейнер в соответствии с первым.

Аргументы
[in]edges- Множество ребер.
[out]indices- Найденное множество комбинированных номеров ребер и соединяемых ими граней.
Возвращает
Найдены ли номера?

◆ FindEdgesForVertex()

void MbSolid::FindEdgesForVertex ( const MbVertex vertex,
RPArray< MbCurveEdge > &  findEdges 
) const

Найти стыкующиеся в вершине ребра тела.

Найти ребра тела, для которых данная вершина является начальной или конечной.

Аргументы
[in]vertex- Вершина.
[out]findEdges- Стыкующиеся в вершине рёбра.

◆ FindFacesForVertex()

void MbSolid::FindFacesForVertex ( const MbVertex vertex,
RPArray< MbFace > &  findFaces 
) const

Найти стыкующиеся в вершине грани тела.

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

Аргументы
[in]vertex- Вершина.
[out]findFaces- Стыкующиеся в вершине грани.

◆ FindEdgeNumbers()

bool MbSolid::FindEdgeNumbers ( const MbCurveEdge edge,
size_t &  faceN,
size_t &  loopN,
size_t &  edgeN 
) const

Найти для ребра его номер грани, номер цикла и номер ребра в цикле.

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

Аргументы
[in]edge- Ребро.
[out]faceN- Найденный номер грани.
[out]loopN- Найденный номер цикла грани.
[out]edgeN- Найденный номер ребра в цикле.
Возвращает
Найдены ли номера?

◆ SetMultiSolidState()

bool MbSolid::SetMultiSolidState ( bool  ms,
bool  setDirectly = false 
) const

Установить флаг многочастности с минимальной проверкой.

Установить флаг многочастности с минимальной проверкой. Неправильная установка флага может привести к непредсказуемым последствиям в операциях с телом.

Аргументы
[in]ms- При ms == true полагается, что тело является многочастностным.
[in]setDirectly- Установить без каких-либо проверок.
Возвращает
Установлен ли флаг?

Объявления и описания членов класса находятся в файле: