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

Трехмерный проволочный каркас. Подробнее...

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

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

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

 MbWireFrame ()
 Конструктор без параметров.
 MbWireFrame (const MbCurve3D &, MbCreator *=NULL)
 Конструктор по кривой и строителю.
 MbWireFrame (const RPArray< MbCurve3D > &, MbCreator *=NULL)
 Конструктор по множеству кривых и строителю.
 MbWireFrame (MbEdge &, MbCreator *=NULL, bool same=true)
 Конструктор по ребру и строителю.
 MbWireFrame (const RPArray< MbEdge > &, MbCreator *=NULL, bool same=true)
 Конструктор по множеству рёбер и строителю.
virtual ~MbWireFrame ()
 Деструктор.
 VISITING_CLASS (MbWireFrame)
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 &r) const
 Расширить присланный габаритный куб так, чтобы он включал в себя данный объект.
virtual void CalculateLocalGabarit (const MbMatrix3D &into, MbCube &cube) const
 Рассчитать габарит в локальной системы координат.
virtual void CalculateWire (const MbStepData &stepData, MbMesh &) const
 Создать полигональную копию.
virtual void GetProperties (MbProperties &properties)
 Выдать свойства атрибутов.
virtual void SetProperties (const MbProperties &properties)
 Установить свойства атрибутов.
virtual void GetBasisItems (RPArray< MbSpaceItem > &)
 Выдать базовые объекты в присланный контейнер.
virtual void GetBasisPoints (MbControlData3D &) const
 Выдать контрольные точки объекта.
virtual void SetBasisPoints (const MbControlData3D &)
 Изменить объект по контрольным точкам.
virtual bool GetPlacement (MbPlacement3D &place) const
 Получить систему координат объекта, если она есть. Функция вернет true, если объект имеет собственную подсистему координат, иначе считается, что ЛСК объекта всегда "стандартная" (MbPlacement3D::global).
virtual bool RebuildItem (MbeCopyMode sameShell, RPArray< MbSpaceItem > *items, IProgressIndicator *progInd)
 Перестроить объект по журналу построения.
virtual MbItemCreateMesh (const MbStepData &stepData, const MbFormNote &note, MbRegDuplicate *iReg) const
 Создать полигональный объект.
void SetOwnChangedThrough (MbeChangedType)
 Установить заданный флаг измененности для всех рёбер и вершин.
Общие функции каркаса.
size_t GetEdgesCount () const
 Выдать количество ребер каркаса.
const MbEdgeGetEdge (size_t index) const
 Выдать объект по индексу.
MbEdgeSetEdge (size_t index)
 Выдать объект по индексу для возможного редактирования.
void AddEdge (MbCurve3D &curve, bool sense=true)
 Добавить ребро по кривой и ее ориентации в ребре.
void AddEdge (MbEdge &item, bool same=true)
 Добавить ребро (оригинал, не копию).
void AddEdges (const RPArray< MbEdge > &items, bool same=true)
 Добавить массив ребер (оригиналы, не копии).
void InsertEdge (size_t index, MbEdge &item, bool same=true)
 Вставить ребро по индексу (оригинал, не копию).
MbEdgeDetachEdge (size_t index)
 Отцепить ребро по индексу.
void DeleteEdges ()
 Удалить все рёбра.
bool DeleteEdge (size_t index)
 Удалить ребро по индексу.
bool DeleteEdge (MbEdge *obj)
 Удалить ребро, если таковое имеется.
void GetVerticesArray (RPArray< MbVertex > &) const
 Выдать массив вершин ребер каркаса.
MbVertexGetBegVertex () const
 Выдать вершину-начало каркаса.
MbVertexGetEndVertex () const
 Выдать вершину-конец каркаса.
MbVertexFindVertexByName (const MbName &) const
 Найти вершину по имени.
MbEdgeFindEdgeByName (const MbName &) const
 Найти ребро по имени.
bool CuttingEdge (MbEdge *&targetEdge, SArray< double > &params, bool beginSafe, double eps, RPArray< MbEdge > &edges)
 Разбить ребро по параметрам его кривой на несколько его частей.
bool IsClosed ()
 Замкнут ли каркас?
bool IsMultiWireFrame ()
 Является ли каркас многосвязным?
size_t GetPartsCount ()
 Количество связных частей каркаса.
bool IsPlanar () const
 Является ли объект плоским?
bool MakePlaneCurves (RPArray< MbCurve > &curves, MbPlacement3D &place) const
 Дать плоскую кривую и ее систему координат, если пространственная кривая плоская (после использования вызывать DeleteItem на двумерные кривые).
bool MakeSurfaceCurves (RPArray< MbCurve > &curves, MbSurface *&surface) const
 Дать кривую на поверхности, если пространственная кривая на поверхности (после использования вызывать DeleteItem на двумерные кривые).
bool MakeCurves (RPArray< MbCurve3D > &) const
 Построить контуры из копий кривых.
void GetCurves (std::vector< SPtr< MbCurve3D > > &)
 Положить в массив оригиналы кривых.
bool IsNormalizeWire () const
 Разложен ли каркас на связные части?
void NormalizeWire ()
 Переставить кривые и переориентировать ребра, создав связные цепочки с общими вершинами.
size_t CreateParts (RPArray< MbWireFrame > &parts)
 Отделение частей каркаса.

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

std::vector< MbEdge * > edges
 Множество рёбер каркаса.
size_t partsCount
 Количество связных частей объекта.
bool closed
 Замкнутость указывает на возможность получит множество замкнутых кривых.
bool normal
 Разложен ли каркас на связные части?

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

Трехмерный проволочный каркас состоит из множества рёбер MbEdge.
Каркас может состоять из нескольких связных частей. Связная часть может иметь топологию звезды, при которой в одной вершине стыкуется более двух рёбер. Каркас может быть разбит на отдельные связные части. Каждая связная часть обладает функциями составной кривой.


Методы

virtual MbSpaceItem& MbWireFrame::Duplicate ( MbRegDuplicate iReg = NULL) const [virtual]

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

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

Замещает MbItem.

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

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

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

Замещает MbItem.

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

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

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

Замещает MbItem.

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

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

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

Замещает MbItem.

virtual bool MbWireFrame::IsSame ( const MbSpaceItem other,
double  accuracy = LENGTH_EPSILON 
) const [virtual]

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

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

Замещает MbItem.

virtual bool MbWireFrame::IsSimilar ( const MbSpaceItem item) const [virtual]

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

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

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

virtual bool MbWireFrame::SetEqual ( const MbSpaceItem item) [virtual]

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

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

Замещает MbItem.

virtual double MbWireFrame::DistanceToPoint ( const MbCartPoint3D point) const [virtual]

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

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

Замещает MbItem.

virtual void MbWireFrame::AddYourGabaritTo ( MbCube cube) const [virtual]

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

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

Замещает MbItem.

virtual void MbWireFrame::CalculateLocalGabarit ( const MbMatrix3D into,
MbCube cube 
) const [virtual]

Для получения габарита объекта относительно локальной системы координат, присланный куб делается пустым. Затем вычисляются габариты объекта в локальной системе координат и сохраняются в кубе cube.

Аргументы:
[in]into- Матрица перехода от текущей для объекта системы координат к локальной системе координат.
[in,out]cube- Куб с информацией по габаритам.

Замещает MbItem.

virtual void MbWireFrame::CalculateWire ( const MbStepData stepData,
MbMesh mesh 
) const [virtual]

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

Аргументы:
[in]sag- Максимальное отклонение полигонального объекта от оригинала по прогибу.
[in,out]mesh- Принимающий полигональный объект.

Замещает MbItem.

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

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

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

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

virtual MbItem* MbWireFrame::CreateMesh ( const MbStepData stepData,
const MbFormNote note,
MbRegDuplicate iReg 
) const [virtual]

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

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

Замещает MbItem.

bool MbWireFrame::CuttingEdge ( MbEdge *&  targetEdge,
SArray< double > &  params,
bool  beginSafe,
double  eps,
RPArray< MbEdge > &  edges 
)

. Если beginSafe == true - ребро сохранит начальный участок, Если beginSafe == false - ребро сохранит конечный участок. По параметру 'eps' отсеиваются значения в контейнере 'params', совпадающие друг с другом и с начальным и конечным параметрами кривой. Контейнер 'edges' содержит отрезанные части.

[in, out] targetEdge - Ребро для разрезания. Возвращается урезанный кусок с учетом флага beginSafe или NULL, если параметр разрезания находится на расстоянии меньшим еps от соответствующего конца кривой, Параметры кривой для разбиения ребра,

Аргументы:
[in]beginSafe- Ребро сохранит начальную часть (true) или ребро сохранит конечную часть (false),
[in]eps- Точность совпадения параметров разбиения,
[out]edges- Отрезанные части ребра.
Возвращает:
Возвращает true, если ребро было разрезано.
size_t MbWireFrame::CreateParts ( RPArray< MbWireFrame > &  parts)

Отделение частей каркаса с сохранением исходного объекта. Если исходный каркас распадается на части, то все части складываются в parts.

Аргументы:
[out]parts- Каркасы, полученные из frame.
Возвращает:
Возвращает количество каркасов в parts.

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