C3D Toolkit  Kernel - 105122, Vision - 0.181114.105122

Геометрический объект в двумерном пространстве. Подробнее...

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

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

virtual ~MbPlaneItem ()
 Деструктор.
 
void PrepareWrite ()
 Регистрация объекта. Подробнее...
 
Общие функции геометрического объекта
virtual MbeRefType RefType () const
 Получить регистрационный тип (для копирования, дублирования).
 
virtual MbePlaneType IsA () const =0
 Получить тип объекта.
 
virtual MbePlaneType Type () const =0
 Получить групповой тип объекта.
 
virtual MbePlaneType Family () const =0
 Получить семейство объекта.
 
virtual MbPlaneItemDuplicate (MbRegDuplicate *iReg=NULL) const =0
 Создать копию. Подробнее...
 
virtual void Transform (const MbMatrix &matr, MbRegTransform *iReg=NULL, const MbSurface *newSurface=NULL)=0
 Преобразовать согласно матрице. Подробнее...
 
virtual void Move (const MbVector &to, MbRegTransform *iReg=NULL, const MbSurface *newSurface=NULL)=0
 Сдвинуть вдоль вектора. Подробнее...
 
virtual void Rotate (const MbCartPoint &pnt, const MbDirection &angle, MbRegTransform *iReg=NULL, const MbSurface *newSurface=NULL)=0
 Повернуть вокруг точки. Подробнее...
 
void Rotate (const MbCartPoint &pnt, double angle, MbRegTransform *iReg=NULL, const MbSurface *newSurface=NULL)
 Повернуть вокруг точки. Подробнее...
 
virtual bool IsSame (const MbPlaneItem &item, double accuracy=LENGTH_EPSILON) const =0
 Определить, являются ли объекты равными. Подробнее...
 
virtual bool IsSimilar (const MbPlaneItem &item) const
 Определить, являются ли объекты подобными. Подробнее...
 
virtual bool SetEqual (const MbPlaneItem &item)=0
 Сделать объекты равным. Подробнее...
 
virtual void AddYourGabaritTo (MbRect &r) const =0
 Расширить присланный габаритный прямоугольник так, чтобы он включал в себя данный объект.
 
virtual bool IsVisibleInRect (const MbRect &rect, bool exact=false) const =0
 Определить видимость объекта в прямоугольнике. Подробнее...
 
virtual double DistanceToPoint (const MbCartPoint &to) const =0
 Вычислить расстояние до точки.
 
virtual bool DistanceToPointIfLess (const MbCartPoint &to, double &d) const =0
 Вычислить расстояние до точки. Подробнее...
 
virtual void Refresh ()
 Перевести все временные (mutable) данные объекта в неопределённое (исходное) состояние.
 
virtual MbPropertyCreateProperty (MbePrompt name) const =0
 Создать собственное свойство с заданием его имени.
 
virtual void GetProperties (MbProperties &properties)=0
 Выдать свойства объекта. Подробнее...
 
virtual void SetProperties (const MbProperties &properties)=0
 Изменить свойства объекта. Подробнее...
 
virtual void GetBasisPoints (MbControlData &) const =0
 Выдать контрольные точки объекта.
 
virtual void SetBasisPoints (const MbControlData &)=0
 Изменить объект по контрольным точкам.
 
- Открытые члены унаследованные от 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
 Получить имя класса.
 
virtual bool IsFamilyRegistrable () const
 Принадлежит ли объект к регистрируемому семейству.
 
- Открытые члены унаследованные от MbRefItem
 MbRefItem ()
 Конструктор без параметров.
 
refcount_t GetUseCount () const
 Выдать количество ссылок (выдать количество владельцев объекта).
 
refcount_t AddRef () const
 Увеличить количество ссылок на единицу.
 
refcount_t DecRef () const
 Уменьшить количество ссылок на единицу.
 
refcount_t Release () const
 Уменьшить количество ссылок на единицу и, если количество ссылок стало равным нулю, удалить себя.
 

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

 MbPlaneItem ()
 Конструктор.
 

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

Геометрический объект в двумерном пространстве.

Родительский класс геометрических объектов в двумерном пространстве. Имеет счетчик ссылок. Наследниками являются: кривая MbCurve, мультилиния MbMultiline, регион MbRegion.

Методы

◆ Duplicate()

virtual MbPlaneItem& MbPlaneItem::Duplicate ( MbRegDuplicate iReg = NULL) const
pure virtual

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

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

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

Замещается в MbNurbs, MbMultiline, MbArc, MbBezier, MbHermit, MbCubicSpline, MbProjCurve, MbCosinusoid, MbPolyline, MbContourWithBreaks, MbLineSegment, MbContour, MbCurve, MbReparamCurve, MbTrimmedCurve, MbLine, MbCharacterCurve, MbOffsetCurve, MbPointCurve, MbRegion и MbPolyCurve.

◆ Transform()

virtual void MbPlaneItem::Transform ( const MbMatrix matr,
MbRegTransform iReg = NULL,
const MbSurface newSurface = NULL 
)
pure virtual

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

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

Аргументы
[in]matr- Матрица преобразования.
[in]iReg- Регистратор.
[in]surface- Новая базовая поверхность объекта при условии, что matr - матрица преобразования из старой поверхности в новую. Для трансформации проекционной кривой. Не учитывается, если поверхность плоская.

Замещается в MbNurbs, MbMultiline, MbArc, MbBezier, MbHermit, MbCubicSpline, MbProjCurve, MbCosinusoid, MbPolyline, MbContour, MbLineSegment, MbContourWithBreaks, MbCurve, MbCharacterCurve, MbTrimmedCurve, MbReparamCurve, MbOffsetCurve, MbLine, MbPointCurve, MbRegion и MbPolyCurve.

◆ Move()

virtual void MbPlaneItem::Move ( const MbVector to,
MbRegTransform iReg = NULL,
const MbSurface newSurface = NULL 
)
pure virtual

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

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

Аргументы
[in]to- Вектор сдвига.
[in]iReg- Регистратор.
[in]surface- Новая базовая поверхность объекта при условии, что matr - матрица преобразования из старой поверхности в новую. Для трансформации проекционной кривой. Не учитывается, если поверхность плоская.

Замещается в MbNurbs, MbMultiline, MbArc, MbBezier, MbHermit, MbCubicSpline, MbProjCurve, MbCosinusoid, MbPolyline, MbContour, MbLineSegment, MbContourWithBreaks, MbCurve, MbCharacterCurve, MbTrimmedCurve, MbReparamCurve, MbOffsetCurve, MbLine, MbPointCurve, MbRegion и MbPolyCurve.

◆ Rotate() [1/2]

virtual void MbPlaneItem::Rotate ( const MbCartPoint pnt,
const MbDirection angle,
MbRegTransform iReg = NULL,
const MbSurface newSurface = NULL 
)
pure virtual

Повернуть вокруг точки.

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

Аргументы
[in]pnt- Неподвижная точка.
[in]angle- Угол поворота.
[in]iReg- Регистратор.
[in]surface- Новая базовая поверхность объекта при условии, что matr - матрица преобразования из старой поверхности в новую. Для трансформации проекционной кривой. Не учитывается, если поверхность плоская.

Замещается в MbNurbs, MbMultiline, MbArc, MbBezier, MbHermit, MbCubicSpline, MbProjCurve, MbCosinusoid, MbPolyline, MbContour, MbLineSegment, MbContourWithBreaks, MbCurve, MbCharacterCurve, MbTrimmedCurve, MbReparamCurve, MbOffsetCurve, MbLine, MbPointCurve, MbRegion и MbPolyCurve.

◆ Rotate() [2/2]

void MbPlaneItem::Rotate ( const MbCartPoint pnt,
double  angle,
MbRegTransform iReg = NULL,
const MbSurface newSurface = NULL 
)

Повернуть вокруг точки.

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

Аргументы
[in]pnt- Неподвижная точка.
[in]angle- Угол поворота.
[in]iReg- Регистратор.
[in]surface- Новая базовая поверхность объекта при условии, что matr - матрица преобразования из старой поверхности в новую. Для трансформации проекционной кривой. Не учитывается, если поверхность плоская.

◆ IsSame()

virtual bool MbPlaneItem::IsSame ( const MbPlaneItem item,
double  accuracy = LENGTH_EPSILON 
) const
pure virtual

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

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

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

Замещается в MbNurbs, MbMultiline, MbArc, MbBezier, MbHermit, MbCubicSpline, MbProjCurve, MbCosinusoid, MbPolyline, MbContour, MbCurve, MbLineSegment, MbReparamCurve, MbOffsetCurve, MbTrimmedCurve, MbCharacterCurve, MbPointCurve, MbLine, MbRegion и MbPolyCurve.

◆ IsSimilar()

virtual bool MbPlaneItem::IsSimilar ( const MbPlaneItem item) const
virtual

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

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

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

Переопределяется в MbMultiline, MbProjCurve, MbContour, MbReparamCurve, MbTrimmedCurve, MbOffsetCurve и MbLine.

◆ SetEqual()

virtual bool MbPlaneItem::SetEqual ( const MbPlaneItem item)
pure virtual

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

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

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

Замещается в MbNurbs, MbMultiline, MbArc, MbBezier, MbHermit, MbCubicSpline, MbProjCurve, MbCosinusoid, MbPolyline, MbContour, MbLineSegment, MbCurve, MbCharacterCurve, MbReparamCurve, MbTrimmedCurve, MbOffsetCurve, MbLine, MbRegion, MbPointCurve и MbPolyCurve.

◆ IsVisibleInRect()

virtual bool MbPlaneItem::IsVisibleInRect ( const MbRect rect,
bool  exact = false 
) const
pure virtual

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

Считается, что объект виден в прямоугольнике, если габариты объекта пересекаются с заданным прямоугольником или (при повышенных требованиях к точности exact = true) в прямоугольник попадает хотя бы одна точка объекта.

Аргументы
[in]rect- Прямоугольник, попадание в который проверяется.
[in]exact- Точность проверки. При exact = true в прямоугольник должна попасть хотя бы одна точка объекта. При exact = false - достаточно пересечения габарита объекта с прямоугольником.
Возвращает
true - объект виден в прямоугольнике, иначе - false.

Замещается в MbMultiline, MbArc, MbCurve, MbCosinusoid, MbLineSegment, MbReparamCurve, MbLine, MbPointCurve и MbRegion.

◆ DistanceToPointIfLess()

virtual bool MbPlaneItem::DistanceToPointIfLess ( const MbCartPoint to,
double &  d 
) const
pure virtual

Вычислить расстояние до точки.

Вычислить расстояние от объекта до заданной точки вблизи объекта. Расстояние вычисляется и записывается в переменную d, если оно меньше исходного значения d. Может быть получен выигрыш по времени выполнения по сравнению с функцией DistanceToPoint, за счет того, что сначала проверяется расстояние от точки до габаритного куба, и только если это расстояние не больше заданного, выполняются дальнейшие вычисления.

Аргументы
[in]to- Tочка.
[in,out]d- На входе - заданная величина отступа от объекта. На выходе - расстояние от точки до объекта, если операция выполнена успешно.
Возвращает
true, если расстояние от точки до объекта меньше заданного, иначе - false. Рассчитать расстояние до точки и изменить его присланное значение, если расстояние окажется меньше присланного значения.

Замещается в MbNurbs, MbMultiline, MbBezier, MbArc, MbContour, MbPolyline, MbCurve, MbReparamCurve и MbRegion.

◆ GetProperties()

virtual void MbPlaneItem::GetProperties ( MbProperties properties)
pure virtual

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

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

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

Замещается в MbArc, MbCurve, MbNurbs, MbMultiline, MbContour, MbHermit, MbBezier, MbCubicSpline, MbPolyline, MbProjCurve, MbReparamCurve, MbLine, MbLineSegment, MbTrimmedCurve, MbOffsetCurve, MbPointCurve, MbCosinusoid, MbCharacterCurve, MbPolyCurve и MbRegion.

◆ SetProperties()

virtual void MbPlaneItem::SetProperties ( const MbProperties properties)
pure virtual

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

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

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

Замещается в MbArc, MbCurve, MbNurbs, MbMultiline, MbContour, MbHermit, MbBezier, MbCubicSpline, MbPolyline, MbProjCurve, MbReparamCurve, MbLine, MbLineSegment, MbTrimmedCurve, MbOffsetCurve, MbPointCurve, MbCosinusoid, MbCharacterCurve, MbPolyCurve и MbRegion.

◆ PrepareWrite()

void MbPlaneItem::PrepareWrite ( )
inline

Регистрация объекта.

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


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