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

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

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

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

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

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
 Изменить объект по контрольным точкам.

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

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

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

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


Методы

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

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

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

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

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

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

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

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

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

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

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

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

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 - матрица преобразования из старой поверхности в новую. Для трансформации проекционной кривой. Не учитывается, если поверхность плоская.

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

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

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

Аргументы:
[in]pnt- Неподвижная точка.
[in]angle- Угол поворота.
[in]iReg- Регистратор.
[in]surface- Новая базовая поверхность объекта при условии, что matr - матрица преобразования из старой поверхности в новую. Для трансформации проекционной кривой. Не учитывается, если поверхность плоская.
virtual bool MbPlaneItem::IsSame ( const MbPlaneItem item,
double  accuracy = LENGTH_EPSILON 
) const [pure virtual]

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

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

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

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

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

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

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

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

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

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

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

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.

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

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

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

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

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

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

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

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

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

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

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

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

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

void MbPlaneItem::PrepareWrite ( ) [inline]

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


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