C3D Kernel  104065
Открытые члены | Защищенные члены | Защищенные данные
Класс MbCreator

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

Базовые классы:MbRefItem и TapeBase.

Производные классы:MbAttributeProvider, MbBeadSolid, MbBendAnySolid, MbBendOverSegSolid, MbBendsByEdgesSolid, MbBendUnbendSolid, MbBooleanSolid, MbClosedCornerSolid, MbConnectingCurveCreator, MbCurveSweptSolid, MbCuttingSolid, MbDetachSolid, MbDraftSolid, MbDuplicationSolid, MbElementarySolid, MbExtensionShell, MbFaceModifiedSolid, MbIntCurveCreator, MbJalousieSolid, MbJogSolid, MbJoinShell, MbJointBendSolid, MbMedianShell, MbMeshShell, MbModifiedNurbsItem, MbNurbs3DCreator, MbNurbsBlockSolid, MbNurbsModification, MbNurbsSurfacesSolid, MbOffsetCurveCreator, MbPatchCreator, MbProjCurveCreator, MbRestoredEdgesSolid, MbReverseCreator, MbRibSolid, MbRuledShell, MbRuledSolid, MbSheetMetalSolid, MbSheetUnionSolid, MbShellSolid, MbSimpleCreator, MbSimplifyFlatSolid, MbSmoothSolid, MbSphericalStampSolid, MbSplitShell, MbStampRibSolid, MbStampSolid, MbStitchedSolid, MbSurfaceSplineCreator, MbSymmetrySolid, MbThinShellCreator, MbTransformedSolid, MbTruncatedShell и MbUnionSolid.

Граф связей класса MbCreator:
Collaboration graph
[см. легенду]

Полный список членов класса

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

virtual ~MbCreator ()
 Деструктор.
Общие функции строителя оболочки.
virtual MbeRefType RefType () const
 Получить регистрационный тип (для копирования, дублирования).
virtual MbeCreatorType IsA () const =0
 Получить тип объекта.
virtual MbeCreatorType Type () const
 Получить групповой тип объекта.
virtual MbCreatorDuplicate (MbRegDuplicate *iReg=NULL) const =0
 Создать копию объекта.
virtual void Transform (const MbMatrix3D &matr, MbRegTransform *iReg=NULL)=0
 Преобразовать согласно матрице.
virtual void Move (const MbVector3D &to, MbRegTransform *iReg=NULL)=0
 Сдвинуть вдоль вектора.
virtual void Rotate (const MbAxis3D &axis, double angle, MbRegTransform *iReg=NULL)=0
 Повернуть объект вокруг оси.
virtual bool IsSame (const MbCreator &other, double accuracy) const =0
 Являются ли объекты равными?
virtual bool IsSimilar (const MbCreator &item) const
 Являются ли объекты подобными?
virtual bool SetEqual (const MbCreator &)=0
 Сделать объекты равными, если они подобны.
virtual bool CreateShell (MbFaceShell *&shell, MbeCopyMode sameShell, RPArray< MbSpaceItem > *items=NULL)
 Построить оболочку по исходным данным.
bool CreateShell (SPtr< MbFaceShell > &shell, MbeCopyMode sameShell)
 Построить оболочку по исходным данным.
virtual bool CreateWireFrame (MbWireFrame *&frame, MbeCopyMode sameShell, RPArray< MbSpaceItem > *items=NULL)
 Построить проволочный каркас по исходным данным.
bool CreateWireFrame (SPtr< MbWireFrame > &frame, MbeCopyMode sameShell)
 Построить проволочный каркас по исходным данным.
virtual bool CreatePointFrame (MbPointFrame *&frame, MbeCopyMode sameShell, RPArray< MbSpaceItem > *items=NULL)
 Построить точечный каркас по исходным данным.
bool CreatePointFrame (SPtr< MbPointFrame > &frame, MbeCopyMode sameShell)
 Построить точечный каркас по исходным данным.
virtual void GetProperties (MbProperties &)
 Выдать свойства объекта.
virtual void SetProperties (const MbProperties &)
 Записать свойства объекта.
virtual MbePrompt GetPropertyName ()=0
 Выдать заголовок свойства объекта.
virtual void Refresh (MbFaceShell &)
 Обновить форму оболочки.
virtual void Refresh (MbWireFrame &)
 Обновить форму каркаса.
virtual void GetBasisItems (RPArray< MbSpaceItem > &)
 Дать базовые объекты.
virtual void GetBasisPoints (MbControlData3D &) const
 Выдать контрольные точки объекта.
virtual void SetBasisPoints (const MbControlData3D &)
 Изменить объект по контрольным точкам.
virtual void SetYourVersion (VERSION version, bool forAll)
 Установить версию объектов.
VERSION GetYourVersion () const
 Выдать версию объекта.
const MbSNameMakerGetYourName () const
 Выдать именователь объекта.
MbSNameMakerSetYourName ()
 Выдать именователь объекта для редактирования.
void SetName (const MbSNameMaker &n)
 Установить именователь объекта.
SimpleName GetMainName () const
 Выдать главное имя объекта.
void SetMainName (SimpleName n)
 Установить главное имя объекта.
MbeProcessState GetStatus () const
 Выдать флаг состояния.
void SetStatus (MbeProcessState l)
 Установить флаг состояния.
void PrepareWrite ()
 Регистрировать объект.

Защищенные члены

 MbCreator (MbSNameMaker *n)
 Конструктор по именователю.
 MbCreator (const MbSNameMaker &n)
 Конструктор по именователю.
 MbCreator (const MbCreator &)
 Конструктор копирования.

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

MbSNameMaker names
 Именователь создаваемых строителем элементов и объектов.
MbeProcessState status
 Состояние строителя и результата выполнения операции.

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

Строитель выполняет одно действие при построении объекта геометрической модели и содержит необходимую для этого информацию.
Множество строителей образует журнал построения геометрической модели.
Строители наиболее востребованы при создании оболочки тела MbSolid. Изначально оболочки тела строятся на основе кривых или поверхностей. Многие оболочки можно построить путем движения составной кривой, называемой образующей по траектории, заданной направляющей кривой. Можно построить оболочку, проходящую по заданному набору кривых. На основе поверхности можно построить оболочку в форме листа конечной толщины. Подобные оболочки назовём простыми.
Более сложные оболочки можно получить с помощью операций. Операцией называется совокупность действий над оболочками, которая приводит к рождению новой оболочки.
Примерами операций служат булевы операции, построение тонкостенной оболочки, построение скруглений или фасок рёбер.


Методы

virtual MbCreator& MbCreator::Duplicate ( MbRegDuplicate iReg = NULL) const [pure virtual]

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

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

Замещается в MbAttributeProvider, MbBooleanSolid, MbChamferSolid, MbConnectingCurveCreator, MbCuttingSolid, MbDetachSolid, MbDraftSolid, MbDuplicationSolid, MbElementarySolid, MbCurveEvolutionSolid, MbExtensionShell, MbCurveExtrusionSolid, MbFilletSolid, MbHoleSolid, MbIntCurveCreator, MbJoinShell, MbCurveLoftedSolid, MbMedianShell, MbMeshShell, MbModifiedNurbsItem, MbNurbsModification, MbFaceModifiedSolid, MbNurbs3DCreator, MbNurbsBlockSolid, MbNurbsSurfacesSolid, MbOffsetCurveCreator, MbPatchCreator, MbProjCurveCreator, MbCurveRevolutionSolid, MbRibSolid, MbRuledShell, MbBendAnySolid, MbBendsByEdgesSolid, MbBendOverSegSolid, MbBendUnbendSolid, MbClosedCornerSolid, MbJointBendSolid, MbSheetMetalSolid, MbRestoredEdgesSolid, MbSimplifyFlatSolid, MbSheetUnionSolid, MbSimpleCreator, MbReverseCreator, MbSmoothSolid, MbSplitShell, MbBeadSolid, MbJalousieSolid, MbJogSolid, MbStampRibSolid, MbRuledSolid, MbStampSolid, MbSphericalStampSolid, MbStitchedSolid, MbSurfaceSplineCreator, MbCurveSweptSolid, MbSymmetrySolid, MbThinShellCreator, MbShellSolid, MbTransformedSolid, MbTruncatedShell и MbUnionSolid.

virtual void MbCreator::Transform ( const MbMatrix3D matr,
MbRegTransform iReg = NULL 
) [pure virtual]

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

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

Замещается в MbAttributeProvider, MbBooleanSolid, MbConnectingCurveCreator, MbCuttingSolid, MbDetachSolid, MbDraftSolid, MbDuplicationSolid, MbElementarySolid, MbCurveEvolutionSolid, MbExtensionShell, MbCurveExtrusionSolid, MbFilletSolid, MbHoleSolid, MbIntCurveCreator, MbJoinShell, MbCurveLoftedSolid, MbMedianShell, MbMeshShell, MbModifiedNurbsItem, MbNurbsModification, MbFaceModifiedSolid, MbNurbs3DCreator, MbNurbsBlockSolid, MbNurbsSurfacesSolid, MbOffsetCurveCreator, MbPatchCreator, MbProjCurveCreator, MbCurveRevolutionSolid, MbRibSolid, MbRuledShell, MbBendAnySolid, MbBendsByEdgesSolid, MbBendOverSegSolid, MbBendUnbendSolid, MbClosedCornerSolid, MbJointBendSolid, MbSheetMetalSolid, MbRestoredEdgesSolid, MbSimplifyFlatSolid, MbSheetUnionSolid, MbSimpleCreator, MbReverseCreator, MbSmoothSolid, MbSplitShell, MbBeadSolid, MbJalousieSolid, MbJogSolid, MbStampRibSolid, MbRuledSolid, MbStampSolid, MbSphericalStampSolid, MbStitchedSolid, MbSurfaceSplineCreator, MbCurveSweptSolid, MbSymmetrySolid, MbThinShellCreator, MbShellSolid, MbTransformedSolid, MbTruncatedShell и MbUnionSolid.

virtual void MbCreator::Move ( const MbVector3D to,
MbRegTransform iReg = NULL 
) [pure virtual]

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

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

Замещается в MbAttributeProvider, MbBooleanSolid, MbConnectingCurveCreator, MbCuttingSolid, MbDetachSolid, MbDraftSolid, MbDuplicationSolid, MbElementarySolid, MbCurveEvolutionSolid, MbExtensionShell, MbCurveExtrusionSolid, MbFilletSolid, MbHoleSolid, MbIntCurveCreator, MbJoinShell, MbCurveLoftedSolid, MbMedianShell, MbMeshShell, MbModifiedNurbsItem, MbNurbsModification, MbFaceModifiedSolid, MbNurbs3DCreator, MbNurbsBlockSolid, MbNurbsSurfacesSolid, MbOffsetCurveCreator, MbPatchCreator, MbProjCurveCreator, MbCurveRevolutionSolid, MbRibSolid, MbRuledShell, MbBendAnySolid, MbBendsByEdgesSolid, MbBendOverSegSolid, MbBendUnbendSolid, MbClosedCornerSolid, MbJointBendSolid, MbSheetMetalSolid, MbRestoredEdgesSolid, MbSimplifyFlatSolid, MbSheetUnionSolid, MbSimpleCreator, MbReverseCreator, MbSmoothSolid, MbSplitShell, MbBeadSolid, MbJalousieSolid, MbJogSolid, MbStampRibSolid, MbRuledSolid, MbStampSolid, MbSphericalStampSolid, MbStitchedSolid, MbSurfaceSplineCreator, MbCurveSweptSolid, MbSymmetrySolid, MbThinShellCreator, MbShellSolid, MbTransformedSolid, MbTruncatedShell и MbUnionSolid.

virtual void MbCreator::Rotate ( const MbAxis3D axis,
double  angle,
MbRegTransform iReg = NULL 
) [pure virtual]

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

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

Замещается в MbAttributeProvider, MbBooleanSolid, MbConnectingCurveCreator, MbCuttingSolid, MbDetachSolid, MbDraftSolid, MbDuplicationSolid, MbElementarySolid, MbCurveEvolutionSolid, MbExtensionShell, MbCurveExtrusionSolid, MbFilletSolid, MbHoleSolid, MbIntCurveCreator, MbJoinShell, MbCurveLoftedSolid, MbMedianShell, MbMeshShell, MbModifiedNurbsItem, MbNurbsModification, MbFaceModifiedSolid, MbNurbs3DCreator, MbNurbsBlockSolid, MbNurbsSurfacesSolid, MbOffsetCurveCreator, MbPatchCreator, MbProjCurveCreator, MbCurveRevolutionSolid, MbRibSolid, MbRuledShell, MbBendAnySolid, MbBendsByEdgesSolid, MbBendOverSegSolid, MbBendUnbendSolid, MbClosedCornerSolid, MbJointBendSolid, MbSheetMetalSolid, MbRestoredEdgesSolid, MbSimplifyFlatSolid, MbSheetUnionSolid, MbSimpleCreator, MbReverseCreator, MbSmoothSolid, MbSplitShell, MbBeadSolid, MbJalousieSolid, MbJogSolid, MbStampRibSolid, MbRuledSolid, MbStampSolid, MbSphericalStampSolid, MbStitchedSolid, MbSurfaceSplineCreator, MbCurveSweptSolid, MbSymmetrySolid, MbThinShellCreator, MbShellSolid, MbTransformedSolid, MbTruncatedShell и MbUnionSolid.

virtual bool MbCreator::IsSame ( const MbCreator other,
double  accuracy 
) const [pure virtual]
virtual bool MbCreator::IsSimilar ( const MbCreator item) const [virtual]

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

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

Переопределяется в MbAttributeProvider, MbBooleanSolid, MbConnectingCurveCreator, MbCuttingSolid, MbDetachSolid, MbDraftSolid, MbDuplicationSolid, MbElementarySolid, MbCurveEvolutionSolid, MbExtensionShell, MbCurveExtrusionSolid, MbHoleSolid, MbIntCurveCreator, MbJoinShell, MbCurveLoftedSolid, MbMedianShell, MbNurbs3DCreator, MbOffsetCurveCreator, MbPatchCreator, MbProjCurveCreator, MbCurveRevolutionSolid, MbRibSolid, MbBendAnySolid, MbBendsByEdgesSolid, MbBendOverSegSolid, MbBendUnbendSolid, MbClosedCornerSolid, MbJointBendSolid, MbSheetMetalSolid, MbRestoredEdgesSolid, MbSimplifyFlatSolid, MbSheetUnionSolid, MbSimpleCreator, MbReverseCreator, MbSmoothSolid, MbSplitShell, MbBeadSolid, MbJalousieSolid, MbJogSolid, MbStampRibSolid, MbRuledSolid, MbStampSolid, MbSphericalStampSolid, MbSurfaceSplineCreator, MbCurveSweptSolid, MbSymmetrySolid, MbThinShellCreator, MbShellSolid, MbTruncatedShell и MbUnionSolid.

virtual bool MbCreator::CreateShell ( MbFaceShell *&  shell,
MbeCopyMode  sameShell,
RPArray< MbSpaceItem > *  items = NULL 
) [virtual]

Построение новой или модификация присланной оболочки по исходным данным согласно строителю.

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

Переопределяется в MbAttributeProvider, MbBooleanSolid, MbChamferSolid, MbCuttingSolid, MbDetachSolid, MbDraftSolid, MbDuplicationSolid, MbElementarySolid, MbExtensionShell, MbCurveExtrusionSolid, MbFilletSolid, MbHoleSolid, MbJoinShell, MbMedianShell, MbMeshShell, MbModifiedNurbsItem, MbNurbsModification, MbFaceModifiedSolid, MbNurbsBlockSolid, MbNurbsSurfacesSolid, MbPatchCreator, MbRibSolid, MbRuledShell, MbBendAnySolid, MbBendsByEdgesSolid, MbBendOverSegSolid, MbBendUnbendSolid, MbClosedCornerSolid, MbJointBendSolid, MbSheetMetalSolid, MbRestoredEdgesSolid, MbSimplifyFlatSolid, MbSheetUnionSolid, MbSimpleCreator, MbReverseCreator, MbSmoothSolid, MbSplitShell, MbBeadSolid, MbJalousieSolid, MbJogSolid, MbStampRibSolid, MbRuledSolid, MbStampSolid, MbSphericalStampSolid, MbStitchedSolid, MbCurveSweptSolid, MbSymmetrySolid, MbThinShellCreator, MbShellSolid, MbTransformedSolid, MbTruncatedShell и MbUnionSolid.

bool MbCreator::CreateShell ( SPtr< MbFaceShell > &  shell,
MbeCopyMode  sameShell 
)

Построение новой или модификация присланной оболочки по исходным данным согласно строителю.

Аргументы:
[in]shell- Подлежащая модификации или новая оболочка.
[in]sameShell- Полнота копирования элементов при построении.
Возвращает:
Выполнено ли построение.
virtual bool MbCreator::CreateWireFrame ( MbWireFrame *&  frame,
MbeCopyMode  sameShell,
RPArray< MbSpaceItem > *  items = NULL 
) [virtual]

Построение нового каркаса (кривых) или модификация присланного каркаса по исходным данным согласно строителю.

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

Переопределяется в MbIntCurveCreator, MbNurbs3DCreator, MbOffsetCurveCreator, MbProjCurveCreator и MbSurfaceSplineCreator.

bool MbCreator::CreateWireFrame ( SPtr< MbWireFrame > &  frame,
MbeCopyMode  sameShell 
)

Построение нового каркаса (кривых) или модификация присланного каркаса по исходным данным согласно строителю.

Аргументы:
[in]frame- Подлежащий модификации или новый каркас.
[in]sameShell- Полнота копирования элементов при построении.
Возвращает:
Выполнено ли построение.
virtual bool MbCreator::CreatePointFrame ( MbPointFrame *&  frame,
MbeCopyMode  sameShell,
RPArray< MbSpaceItem > *  items = NULL 
) [virtual]

Построение нового каркаса (точек) или модификация присланного каркаса по исходным данным согласно строителю.

Аргументы:
[in]frame- Подлежащий модификации или новый каркас.
[in]sameShell- Полнота копирования элементов при построении.
[in]items- Контейнер для складывания элементов невыполненных построений (может быть NULL).
Возвращает:
Выполнено ли построение.
bool MbCreator::CreatePointFrame ( SPtr< MbPointFrame > &  frame,
MbeCopyMode  sameShell 
)

Построение нового каркаса (точек) или модификация присланного каркаса по исходным данным согласно строителю.

Аргументы:
[in]frame- Подлежащий модификации или новый каркас.
[in]sameShell- Полнота копирования элементов при построении.
Возвращает:
Выполнено ли построение.
void MbCreator::PrepareWrite ( ) [inline]

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


Объявления и описания членов класса находятся в файле:
 Указатель Классы Пространства имен Файлы Функции Переменные Определения типов Перечисления Элементы перечислений Друзья Макросы