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

Мультилиния. Подробнее...

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

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

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

 MbMultiline ()
 Конструктор пустой мультилинии.
 MbMultiline (const MbContour &_basisCurve, const StVertexOfMultilineInfo &vertInfo, const SArray< double > &_equidRadii, const StMLTipParams &_begTipParams, const StMLTipParams &_endTipParams, bool _processClosed, bool _isTransparent)
 Конструктор.
Общие функции геометрического объекта
virtual MbePlaneType IsA () const
 Получить тип объекта.
virtual MbePlaneType Type () const
 Получить групповой тип объекта.
virtual MbePlaneType Family () const
 Получить семейство объекта.
virtual bool IsSame (const MbPlaneItem &other, double accuracy=LENGTH_EPSILON) const
 Определить, являются ли объекты равными.
virtual bool IsSimilar (const MbPlaneItem &item) const
 Определить, являются ли объекты подобными.
virtual bool SetEqual (const MbPlaneItem &item)
 Сделать объекты равным.
virtual void Transform (const MbMatrix &matr, MbRegTransform *=NULL, const MbSurface *newSurface=NULL)
 Преобразовать согласно матрице.
virtual void Move (const MbVector &to, MbRegTransform *=NULL, const MbSurface *newSurface=NULL)
 Сдвинуть вдоль вектора.
virtual void Rotate (const MbCartPoint &pnt, const MbDirection &angle, MbRegTransform *=NULL, const MbSurface *newSurface=NULL)
 Повернуть вокруг точки.
virtual MbPlaneItemDuplicate (MbRegDuplicate *=NULL) const
 Создать копию.
virtual void AddYourGabaritTo (MbRect &r) const
 Расширить присланный габаритный прямоугольник так, чтобы он включал в себя данный объект.
virtual bool IsVisibleInRect (const MbRect &r, bool exact=false) const
 Определить видимость объекта в прямоугольнике.
virtual double DistanceToPoint (const MbCartPoint &toP) const
 Вычислить расстояние до точки.
virtual bool DistanceToPointIfLess (const MbCartPoint &to, double &distance) const
 Вычислить расстояние до точки.
virtual MbPropertyCreateProperty (MbePrompt name) const
 Создать собственное свойство с заданием его имени.
virtual void GetProperties (MbProperties &properties)
 Выдать свойства объекта.
virtual void SetProperties (const MbProperties &properties)
 Изменить свойства объекта.
virtual void GetBasisPoints (MbControlData &) const
 Выдать контрольные точки объекта.
virtual void SetBasisPoints (const MbControlData &)
 Изменить объект по контрольным точкам.
Функции доступа к данным
const MbContourGetBasisCurve () const
 Базовая кривая.
MbContourSetBasisCurve ()
 Дать базовую кривую для изменения.
size_t GetVerticesCount () const
 Количество вершин.
const StVertexOfMultilineInfoGetVertex (size_t i) const
 Вершина по номеру. Номер должен быть меньше количества вершин.
size_t GetEquidRadiiCount () const
 Количество радиусов эквидистант.
double GetEquidRadius (size_t i) const
 Радиус эквидистанты по номеру. Номер должен быть меньше количества радиусов.
const StMLTipParamsGetBegTipParams () const
 Параметры законцовки в начале мультилинии.
const StMLTipParamsGetEndTipParams () const
 Параметры законцовки в конце мультилинии.
bool IsProcessClosed () const
 Признак обрабатывания замкнутости базовой кривой.
bool IsTransparent () const
 Прозрачность мультилинии.
size_t GetCurvesCount () const
 Количество кривых мультилинии.
const MbContourWithBreaksGetCurve (size_t i) const
 Кривая мультилинии по номеру. Номер должен быть меньше количества кривых.
size_t GetTipCurvesCount () const
 Количество кривых - законцовок в вершинах мультилинии.
const MbContourGetTipCurve (size_t i) const
 Кривая - законцовка по номеру. Номер должен быть меньше количества законцовок.
const MbContourGetBegTipCurve () const
 Законцовка в начале мультилинии.
const MbContourGetEndTipCurve () const
 Законцовка в конце мультилинии.
double GetMaxPosRadius () const
 Максимально возможный для невывернутого построения положительный радиус.
double GetMinNegRadius () const
 Минимально возможный для невывернутого построения отрицательный радиус.
size_t GetMinNotDegInd () const
 Индекс невырожденной кривой мультилинии с минимальным радиусом
size_t GetMaxNotDegInd () const
 Индекс невырожденной кривой мультилинии с максимальным радиусом
Функции изменения данных: изменение базовой кривой мультилинии
void ClearBasisCurve ()
 Очистить базовую кривую.
void ReplaceBasisCurve (const MbContour &_basisCurve, const StVertexOfMultilineInfo &vertInfo)
 Заменить базовую кривую.
bool AddBasisSegment (MbCurve *segment, const StVertexOfMultilineInfo &vertInfo)
 Добавить сегмент в базовую кривую.
void DeleteLastBasisSegment ()
 Удалить последний сегмент базовой кривой.
size_t InsertVertex (double t, const StVertexOfMultilineInfo &vertInfo)
 Вставить вершину.
bool RemoveVertex (size_t i)
 Удалить вершину мультилинии.
bool SetBasisCurvesGeoHotPoint (size_t segInd, size_t subInd, const MbCartPoint &newPoint)
 Сместить геометрическую hot-точку.
bool DelBasisCurvesGeoHotPoint (size_t segInd, size_t subInd)
 Удалить геометрическую hot-точку.
Функции изменения данных: скругления и фаски базовой кривой
bool FilletTwoBasisSegments (ptrdiff_t &index, double rad, const StVertexOfMultilineInfo &vertInfo)
 Скруглить два соседних сегмента.
bool FilletBasisCurve (double rad, const StVertexOfMultilineInfo &vertInfo)
 Скруглить базовую кривую.
bool ChamferTwoBasisSegments (ptrdiff_t &index, double len, double par, bool type, bool firstSeg, const StVertexOfMultilineInfo &vertInfo)
 Вставить фаску между двумя соседними сегментами базовой кривой мультилинии.
bool ChamferBasisCurve (double len, double par, bool type, const StVertexOfMultilineInfo &vertInfo)
 Вставить фаску между каждыми двумя соседними сегментами базовой кривой мультилинии.
Функции изменения данных: изменение параметров вершины мультилинии
void SetSmoothJoint (size_t i, bool othSmoothJoint)
 Установить флаг гладкого стыка.
void SetTracingType (size_t i, EnMLVertexTracingType othTracingType)
 Установить тип обхода.
void SetSpecFilletRad (size_t i, double othSpecFilletRad)
 Установить радиус специального скругления.
void SetTipType (size_t i, EnMLInnerTipType othTipType)
 Установить тип законцовки.
void SetTipDirection (size_t i, bool othFirstSegTip)
 Установить направление законцовки.
void SetVertexOfMultilineInfo (size_t i, const StVertexOfMultilineInfo &vertInfo)
 Установить информацию о вершине.
Функции изменения данных: изменение радиусов эквидистант
bool SetRadius (size_t i, double radius, size_t &newIndex)
 Установить значение радиуса кривой.
bool SetRadii (const CSSArray< double > &newRadii)
 Изменение всех радиусов кривых.
void ChangeRadius (double oldRadius, double radius)
 Изменение радиуса.
size_t AddRadius (double radius)
 Добавление радиуса кривой мультилинии.
bool RemoveRadius (size_t i)
 Удаление кривой.
bool RemoveRadius (double oldRadius)
 Удаление кривой.
Функции изменения данных: изменение параметров законцовок
void SetBegTipType (EnMLTipType othTipType)
 Изменение типа законцовки в начале.
void SetBegTipParam (double othTipParam)
 Изменение параметра законцовки в начале.
void SetEndTipType (EnMLTipType othTipType)
 Изменение типа законцовки в конце.
void SetEndTipParam (double othTipParam)
 Изменение параметра законцовки в конце.
Функции изменения данных
void SetProcessClosed (bool othProcessClosed)
 Изменение обработки замкнутости.
void SetTransparent (bool othTransparent)
 Изменение прозрачности мультилинии.
Работа с разрывами: добавление разрывов
bool DeletePartP1P2 (MbContourWithBreaks *contour, const MbCartPoint &point1, const MbCartPoint &point2, const MbCartPoint &point3, bool invertBreak=false)
 Усечение части кривой мультилинии между точками.
bool DeletePartP1P2 (size_t cNumber, const MbCartPoint &point1, const MbCartPoint &point2, const MbCartPoint &point3, bool invertBreak=false)
 Усечение части кривой мультилинии между точками.
bool DeletePartP1P2 (size_t cNumber, double t1, double t2, double t3, bool invertBreak=false)
 Усечение части кривой мультилинии между параметрами контура.
Работа с разрывами: удаление разрывов
bool DeleteBreaks ()
 Удалить разрывы.
bool DeleteBreaks (size_t cNumber)
 Удалить разрывы кривой.
bool DeleteBreak (size_t cNumber, double t)
 Удалить разрыв кривой.
bool DeleteBreakAtNumber (size_t cNumber, size_t brNumber)
 Удалить разрыв.
bool DeleteSmallBreaks (size_t cNumber, double length)
 Удалить разрывы малой длины.
bool DeleteSmallVisContours (size_t cNumber, double length)
 Удалить малые видимые части.
Работа с разрывами
bool IsRectInBreak (size_t cNumber, const MbRect1D &rect)
 Находится ли интервал на разрыве.
void GetBreaksInInvisContours (RPArray< MbContour > &invisContours)
 Запомнить разрывы.
void AddBreaksByInvisContours (RPArray< MbContour > &invisContours)
 Добавить разрывы.
void CurvesIntersectNumbers (const MbCartPoint &p1, const MbCartPoint &p2, SArray< size_t > &cNumbers) const
 Номера контуров, пересекаемых отрезком.
Информация о мультилинии
bool IsDegenerate () const
 Вырождена ли мультилиния.
bool IsClosed () const
 Замкнутая ли мультилиния.
double GetWidth () const
 Получить ширину мультилинии.
bool IsPointOn (const MbCartPoint &point) const
 Лежит ли данная точка на мультилинии.
size_t FindRadius (double radius)
 Найти индекс кривой мультилинии.
Операции с мультилинией
MbMultilineTrimmed (double t1, double t2, int sense) const
 Усечь мультилинию.

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

 MbMultiline (const MbMultiline &)
 Копирующий конструктор.

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

Мультилиния - составной геометрический объект, состоящий из
1) кривых curves, построенных эквидистантно к базовой кривой мультилинии basisCurve с радиусами equidRadii. При этом способ обхода углов для каждой вершины basisCurve определяется отдельно (с помощью vertices.tracingType и vertices.specFilletRad).
2) массива законцовок tipCurves в вершинах мультилинии, тип которых определяется соответствующим vertices[i].tipParams.tipType.
3) законцовок begTipCurve и endTipCurve на концах мультилинии, тип которых определяется с помощью begTipParams и endTipParams.
При создании линии мультилинии (добавлении радиуса эквидистанты) создается контур, который будет жить (меняться только внутри) до того момента, пока в массиве equidRadii есть соответствующий ему в начале элемент.
Контур законцовки живет до тех пор, пока соответствующий тип законцовки не равен m_t_UndefTip.
За существованием и удалением законцовок должны следить функции SetTipType.
При построении кривых мультилинии вырожденные участки исключаются только в вершинах (перехлесты).


Конструктор(ы)

MbMultiline::MbMultiline ( const MbContour _basisCurve,
const StVertexOfMultilineInfo vertInfo,
const SArray< double > &  _equidRadii,
const StMLTipParams _begTipParams,
const StMLTipParams _endTipParams,
bool  _processClosed,
bool  _isTransparent 
)

Конструктор.

Аргументы:
[in]_basisCurve- Базовая кривая.
[in]vertInfo- Информация о вершине мультилинии (применяется ко всем вершинам).
[in]_equidRadii- Сортированный массив радиусов эквидистантных кривых.
[in]_begTipParams- Параметры законцовки в начале мультилинии.
[in]_endTipParams- Параметры законцовки в конце мультилинии.
[in]_processClosed- Обрабатывать ли замкнутость базовой кривой.
[in]_isTransparent- "Прозрачная" ли мультилиния
параметр не используется, мультилиния считается прозрачной.

Методы

virtual bool MbMultiline::IsSame ( const MbPlaneItem item,
double  accuracy = LENGTH_EPSILON 
) const [virtual]

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

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

Замещает MbPlaneItem.

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

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

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

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

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

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

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

Замещает MbPlaneItem.

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

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

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

Замещает MbPlaneItem.

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

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

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

Замещает MbPlaneItem.

virtual void MbMultiline::Rotate ( const MbCartPoint pnt,
const MbDirection angle,
MbRegTransform iReg = NULL,
const MbSurface newSurface = NULL 
) [virtual]

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

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

Замещает MbPlaneItem.

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

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

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

Замещает MbPlaneItem.

virtual bool MbMultiline::IsVisibleInRect ( const MbRect rect,
bool  exact = false 
) const [virtual]

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

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

Замещает MbPlaneItem.

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

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

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

Замещает MbPlaneItem.

virtual void MbMultiline::GetProperties ( MbProperties properties) [virtual]

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

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

Замещает MbPlaneItem.

virtual void MbMultiline::SetProperties ( const MbProperties properties) [virtual]

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

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

Замещает MbPlaneItem.

void MbMultiline::ReplaceBasisCurve ( const MbContour _basisCurve,
const StVertexOfMultilineInfo vertInfo 
)

Заменить базовую кривую.
При замене базовой кривой мультилинии в ней удаляются все разрывы.

Аргументы:
[in]_basisCurve- Новая базовая кривая.
[in]vertInfo- Новая информация о вершинах мультилинии.
bool MbMultiline::AddBasisSegment ( MbCurve segment,
const StVertexOfMultilineInfo vertInfo 
)

Добавить сегмент в базовую кривую.

Аргументы:
[in]segment- Добавляемый сегмент,
если является ломаной или контуром, то в мультилинию добавляются только составляющие сегменты.
[in]vertInfo- Информация присваивается всем добавленным или измененным вершинам.
Возвращает:
true, если сегмент был добавлен.
size_t MbMultiline::InsertVertex ( double  t,
const StVertexOfMultilineInfo vertInfo 
)

Вставить вершину. Сегмент разбивается на два.

Аргументы:
[in]t- Параметр на базовой кривой.
[in]vertInfo- Информация о новой вершине мультилинии.
Возвращает:
Индекс разбитого сегмента.
bool MbMultiline::RemoveVertex ( size_t  i)

Удалить вершину мультилинии.
Пара сегментов, примыкающих к вершине, заменяется отрезком.
Разрывы на прилегающих сегментах исчезают. Разрывы, лежащие на прямолинейных прилегающих сегментах, остаются, привязываясь к вершинам нового отрезка.

Аргументы:
[in]i- Индекс вершины.
Возвращает:
true, если вершина была удалена.
bool MbMultiline::SetBasisCurvesGeoHotPoint ( size_t  segInd,
size_t  subInd,
const MbCartPoint newPoint 
)

Сместить геометрическую hot-точку базовой кривой.
При перемещении точки разрывы контуров, соответствующих прилегающим прямолинейным сегментам привязываются к соседним неподвижным вершинам базовой кривой.

Аргументы:
[in]segInd- Номер сегмента.
[in]subInd- Номер точки на сегменте:
если subInd = 0 - общая точка между двумя сегментами (может быть задана для любого сегмента),
если subInd = 1 - средняя точкой отрезка, средняя точкой дуги, базовая точка сплайнов pt_Nurbs и pt_Bezier,
если subInd > 1 - базовая точка сплайнов pt_Nurbs и pt_Bezier.
[in]newPoint- Новое положение точки.
Возвращает:
Точка была смещена.
bool MbMultiline::DelBasisCurvesGeoHotPoint ( size_t  segInd,
size_t  subInd 
)

Удалить геометрическую hot-точку базовой кривой.

Аргументы:
[in]segInd- Номер сегмента.
[in]subInd- Номер точки на сегменте:
если subInd = 0 - результат аналогичен удалению вершины мультилинии RemoveVertex,
если subInd = 1 - удаление средней точки дуги (дуга заменяется отрезком), удаление базовой точки сплайнов pt_Nurbs и pt_Bezier (изменение формы),
если subInd > 1 - удаление базовой точки сплайнов pt_Nurbs и pt_Bezier (изменение формы).
Возвращает:
true, если hot-точка была удалена.
bool MbMultiline::FilletTwoBasisSegments ( ptrdiff_t &  index,
double  rad,
const StVertexOfMultilineInfo vertInfo 
)

Скруглить два соседних сегмента базовой кривой.

Аргументы:
[in]index- Индекс первого скругляемого сегмента.
[in]rad- Радиус скругления.
[in]vertInfo- Информация для новых вершин мультилинии.
Возвращает:
true в случае успеха операции.
bool MbMultiline::FilletBasisCurve ( double  rad,
const StVertexOfMultilineInfo vertInfo 
)

Скруглить все углы базовой кривой.

Аргументы:
[in]rad- Радиус скругления.
[in]vertInfo- Информация для новых вершин мультилинии.
Возвращает:
true, если добавилось хотя бы одно скругление.
bool MbMultiline::ChamferTwoBasisSegments ( ptrdiff_t &  index,
double  len,
double  par,
bool  type,
bool  firstSeg,
const StVertexOfMultilineInfo vertInfo 
)

Вставить фаску между двумя соседними сегментами базовой кривой мультилинии.

Аргументы:
[in]index- Индекс первого скругляемого сегмента.
[in]len- Длина фаски.
[in]par- Параметр в зависимости от типа type:
если type = true, par - угол
если type = false, par - размер.
[in]type- Тип задания фаски:
true - фаска задана как размер + угол,
false - фаска задана как размер + размер.
[in]firstSeg- true, если параметр par относится к первому сегменту.
[in]vertInfo- Информация для новых вершин мультилинии.
Возвращает:
true в случае успеха операции.
bool MbMultiline::ChamferBasisCurve ( double  len,
double  par,
bool  type,
const StVertexOfMultilineInfo vertInfo 
)

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

Аргументы:
[in]len- Длина фаски.
[in]par- Параметр в зависимости от типа type:
если type = true, par - угол,
если type = false, par - размер.
[in]type- Тип задания фаски:
true - фаска задана как размер + угол,
false - фаска задана как размер + размер.
[in]vertInfo- Информация для новых вершин мультилинии.
Возвращает:
true, если добавилась хотя бы одна фаска. Вставить фаску БК
void MbMultiline::SetSmoothJoint ( size_t  i,
bool  othSmoothJoint 
)

Установить флаг гладкого стыка в вершине.

Аргументы:
[in]i- Индекс вершины мультилинии.
[in]othSmoothJoint- Флаг гладкого стыка.
void MbMultiline::SetTracingType ( size_t  i,
EnMLVertexTracingType  othTracingType 
)

Установить тип обхода вершины.

Аргументы:
[in]i- Индекс вершины мультилинии.
[in]othTracingType- Тип обхода.
void MbMultiline::SetSpecFilletRad ( size_t  i,
double  othSpecFilletRad 
)

Установить радиус специального скругления вершины мультилинии.

Аргументы:
[in]i- Индекс вершины мультилинии.
[in]othSpecFilletRad- Радиус.
void MbMultiline::SetTipType ( size_t  i,
EnMLInnerTipType  othTipType 
)

Установить тип законцовки (разделителя) в вершине.

Аргументы:
[in]i- Индекс вершины мультилинии.
[in]othTipType- Тип законцовки.
void MbMultiline::SetTipDirection ( size_t  i,
bool  othFirstSegTip 
)

Установить направление законцовки в вершине мультилинии.

Аргументы:
[in]i- Индекс вершины мультилинии.
[in]othFirstSegTip- Направление законцовки, если true - от первого сегмента.
void MbMultiline::SetVertexOfMultilineInfo ( size_t  i,
const StVertexOfMultilineInfo vertInfo 
)

Установить информацию о вершине мультилинии.

Аргументы:
[in]i- Индекс вершины мультилинии.
[in]vertInfo- Информация о вершине.
bool MbMultiline::SetRadius ( size_t  i,
double  radius,
size_t &  newIndex 
)

Установить значение радиуса кривой.

Аргументы:
[in]i- Индекс кривой мультилинии.
[in]radius- Новое значение радиуса.
[out]newIndex- Новый индекс кривой.
Возвращает:
true, если радиус был изменен.
bool MbMultiline::SetRadii ( const CSSArray< double > &  newRadii)

Изменение одновременно всех радиусов кривых.
Значения радиусов будут изменены, если их количество в newRadii совпадает с количеством кривых.

Аргументы:
[in]newRadii- Новые значения радиусов кривых.
Возвращает:
true, если радиусы были изменены.
void MbMultiline::ChangeRadius ( double  oldRadius,
double  radius 
)

Изменение радиуса кривой мультилинии.

Аргументы:
[in]oldRadius- Старое значение радиуса.
[in]radius- Новое значение радиуса.
size_t MbMultiline::AddRadius ( double  radius)

Добавление радиуса кривой мультилинии.
Фактически, добавление кривой мультилинии.

Аргументы:
[in]radius- Значение радиуса.
Возвращает:
Значение индекса новой кривой
если кривая не была добавлена, индекс равен SYS_MAX_T.
bool MbMultiline::RemoveRadius ( size_t  i)

Удаление кривой мультилинии.

Аргументы:
[in]i- Индекс кривой.
Возвращает:
true, если кривая была удалена.
bool MbMultiline::RemoveRadius ( double  oldRadius)

Удаление кривой мультилинии.

Аргументы:
[in]oldRadius- Радиус кривой.
Возвращает:
true, если кривая была удалена.
void MbMultiline::SetBegTipType ( EnMLTipType  othTipType)

Изменение типа законцовки мультилинии в начале.

Аргументы:
[in]othTipType- Новый тип законцовки.
void MbMultiline::SetBegTipParam ( double  othTipParam)

Изменение параметра законцовки мультилинии в начале.

Аргументы:
[in]othTipParam- Новый параметр законцовки.
void MbMultiline::SetEndTipType ( EnMLTipType  othTipType)

Изменение типа законцовки мультилинии в конце.

Аргументы:
[in]othTipType- Новый тип законцовки.
void MbMultiline::SetEndTipParam ( double  othTipParam)

Изменение параметра законцовки мультилинии в конце.

Аргументы:
[in]othTipParam- Новый параметр законцовки.
void MbMultiline::SetProcessClosed ( bool  othProcessClosed)

Изменение флага обработки замкнутости.

Аргументы:
[in]othProcessClosed- Флаг обработки замкнутости.
void MbMultiline::SetTransparent ( bool  othTransparent)

Изменение флага прозрачности мультилинии.

Аргументы:
[in]othTransparent- Флаг прозрачности.
bool MbMultiline::DeletePartP1P2 ( MbContourWithBreaks contour,
const MbCartPoint point1,
const MbCartPoint point2,
const MbCartPoint point3,
bool  invertBreak = false 
)

Усечение части кривой мультилинии между точками.
Добавление разрыва.

Аргументы:
[in]contour- Кривая мультилинии для добавления разрыва.
[in]point1- Первая граница разрыва.
[in]point2- Вторая граница разрыва.
[in]point3- Точка, которая показывает удаляемую часть замкнутого контура,
в случае разомкнутого контура она игнорируется.
[in]invertBreak- Если true, то разрыв накладывается на противоположную часть контура.
Возвращает:
true, если разрыв был добавлен.
bool MbMultiline::DeletePartP1P2 ( size_t  cNumber,
const MbCartPoint point1,
const MbCartPoint point2,
const MbCartPoint point3,
bool  invertBreak = false 
)

Усечение части кривой мультилинии между точками.
Добавление разрыва.

Аргументы:
[in]cNumber- Номер кривой мультилинии для добавления разрыва.
[in]point1- Первая граница разрыва.
[in]point2- Вторая граница разрыва.
[in]point3- Точка, которая показывает удаляемую часть замкнутого контура,
в случае разомкнутого контура она игнорируется.
[in]invertBreak- Если true, то разрыв накладывается на противоположную часть контура.
Возвращает:
true, если разрыв был добавлен.
bool MbMultiline::DeletePartP1P2 ( size_t  cNumber,
double  t1,
double  t2,
double  t3,
bool  invertBreak = false 
)

Усечение части кривой мультилинии между параметрами контура.
Добавление разрыва.

Аргументы:
[in]cNumber- Номер кривой мультилинии для добавления разрыва.
[in]t1- Первая граница разрыва.
[in]t2- Вторая граница разрыва.
[in]t3- Параметр, который показывает удаляемую часть замкнутого контура,
в случае разомкнутого контура он игнорируется.
[in]invertBreak- Если true, то разрыв накладывается на противоположную часть контура.
Возвращает:
true, если разрыв был добавлен.
bool MbMultiline::DeleteBreaks ( )

Удалить все разрывы мультилинии.

Возвращает:
true, если хотя бы один разрыв был удален.
bool MbMultiline::DeleteBreaks ( size_t  cNumber)

Удалить все разрывы кривой мультилинии.

Аргументы:
[in]cNumber- Номер кривой.
Возвращает:
true, если хотя бы один разрыв был удален.
bool MbMultiline::DeleteBreak ( size_t  cNumber,
double  t 
)

Удалить разрыв по параметру на кривой.

Аргументы:
[in]cNumber- Номер кривой.
[in]t- Параметр на кривой.
Возвращает:
true, если разрыв был удален.
bool MbMultiline::DeleteBreakAtNumber ( size_t  cNumber,
size_t  brNumber 
)

Удалить разрыв по номеру.

Аргументы:
[in]cNumber- Номер кривой.
[in]brNumber- Номер разрыва на кривой.
Возвращает:
true, если разрыв был удален.
bool MbMultiline::DeleteSmallBreaks ( size_t  cNumber,
double  length 
)

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

Аргументы:
[in]cNumber- Номер кривой мультилинии.
[in]length- Минимальная длина невидимой части.
Возвращает:
true, если хотя бы один разрыв кривой был удален.
bool MbMultiline::DeleteSmallVisContours ( size_t  cNumber,
double  length 
)

Удалить видимые части малой метрической длины у кривой мультилинии.
Соответствует объединению близких разрывов в один. В случае успеха видимые контуры кривой перестраиваются соответственно разрывам.

Аргументы:
[in]cNumber- Номер кривой мультилинии.
[in]length- Минимальная длина видимой части.
Возвращает:
true, если разрывы кривой были изменены.
bool MbMultiline::IsRectInBreak ( size_t  cNumber,
const MbRect1D rect 
)

Находится ли интервал параметров на разрыве кривой.

Аргументы:
[in]cNumber- Номер кривой мультилинии.
[in]rect- Интервал для проверки.
Возвращает:
true, если интервал полностью находится на разрыве или совпадает с ним.
void MbMultiline::GetBreaksInInvisContours ( RPArray< MbContour > &  invisContours)

Запомнить разрывы невидимыми контурами.
Для использования в паре с AddBreaksByInvisContours.
Удаляет все разрывы мультилинии.
Все контуры invisContours имеют счетчик ссылок = 1 (вызван AddRef()).

Аргументы:
[out]invisContours- Набор невидимых контуров всех кривых мультилинии.
void MbMultiline::AddBreaksByInvisContours ( RPArray< MbContour > &  invisContours)

Добавить разрывы невидимыми контурами.
Для использования в паре с GetBreaksInInvisContours.
Контуры invisContours удаляются (вызывается Release()).
Данной функцией можно наложить разрывы на мультилинию, если они были получены методом GetBreaksInInvisContours у этой мультилинии и форма мультилинии не была изменена.

Аргументы:
[in]invisContours- Набор невидимых контуров всех кривых мультилинии.
void MbMultiline::CurvesIntersectNumbers ( const MbCartPoint p1,
const MbCartPoint p2,
SArray< size_t > &  cNumbers 
) const

Номера контуров, которые пересекаются с отрезком по двум точкам.

Аргументы:
[in]p1- Первая точка отрезка.
[in]p2- Вторая точка отрезка.
[out]cNumbers- Номера контуров.
bool MbMultiline::IsDegenerate ( ) const [inline]

Вырождена ли мультилиния

bool MbMultiline::IsClosed ( ) const [inline]

Замкнутая ли мультилиния

double MbMultiline::GetWidth ( ) const [inline]

Получить ширину мультилинии

size_t MbMultiline::FindRadius ( double  radius)

Найти индекс кривой мультилинии.

Аргументы:
[in]radius- Радиус нужной кривой.
Возвращает:
Индекс кривой.
MbMultiline* MbMultiline::Trimmed ( double  t1,
double  t2,
int  sense 
) const

Усечь мультилинию.
Вернуть мультилинию, базовая кривая которой - копия участка между параметрами t1 и t2 базовой данной мультилинии.

Аргументы:
[in]t1- Начальный параметр усечения.
[in]t2- Конечный параметр усечения.
[in]sense- Направление усеченной базовой кривой.
Возвращает:
Новую мультилинию.

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