C3D Toolkit  Kernel - 105122, Vision - 0.181114.105122

Контур c разрывами. Подробнее...

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

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

 MbContourWithBreaks ()
 Создание пустого контура. Подробнее...
 
 MbContourWithBreaks (const MbContour &cnt)
 Копирующий конструктор.
 
Общие функции геометрического объекта.
virtual MbePlaneType IsA () const
 Получить тип объекта.
 
virtual void Transform (const MbMatrix &matr, MbRegTransform *ireg=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
 Создать копию. Подробнее...
 
Функции доступа к данным: разрывы.
size_t GetBreaksCount () const
 Число разрывов.
 
MbBreakGetBreak (size_t i) const
 Разрыв по номеру. Подробнее...
 
MbRect1D GetBreaksRange (size_t i) const
 Разрыв по номеру в параметрах контура. Подробнее...
 
Функции доступа к данным: видимые участки.
size_t GetVisibleCount () const
 Количество видимых частей. Подробнее...
 
const MbContourGetVisibleContour (size_t i) const
 Видимая часть по номеру. Подробнее...
 
Функции доступа к данным: невидимые участки.
MbContourGetInvisibleContour (size_t i) const
 Невидимая часть по номеру разрыва. Подробнее...
 
Работа с разрывами: добавление.
bool AddBreak (const MbCartPoint &point1, const MbCartPoint &point2, const MbCartPoint &point3, bool invertBreak=false)
 Добавить разрыв между точками. Подробнее...
 
bool AddBreak (double t1, double t2, double t3, bool invertBreak=false)
 Добавить разрыв между параметрами контура. Подробнее...
 
bool AddBreak (const MbRect1D &range)
 Добавить разрыв по интервалу параметров контура. Подробнее...
 
Работа с разрывами: удаление.
bool DeleteBreaks ()
 Удалить разрывы. Подробнее...
 
bool DeleteBreakAtNumber (size_t breakIndex, bool rebuild=false)
 Удалить разрыв по номеру разрыва. Подробнее...
 
bool DeleteBreakAtParam (double t)
 Удалить разрыв по параметру на контуре. Подробнее...
 
void DeleteBreaksAtBaseNumber (size_t baseNumber, bool delTracingBreaks, bool delEquidBreaks, bool delInLineSeg=true)
 Удалить разрывы на сегментах с соответствующим базовым номером. Подробнее...
 
Удаление разрывов и видимых частей малой метрической длины.
bool DeleteSmallBreaks (double length)
 Удалить разрывы малой метрической длины. Подробнее...
 
bool DeleteSmallVisContours (double length)
 Удалить видимые части малой метрической длины. Подробнее...
 
Работа с разрывами
bool GetBreakAtPoint (const MbCartPoint &p, double rad, size_t &index) const
 Номер разрыва, край которого попал в окрестность точки. Подробнее...
 
bool GetBreaksInRect (const MbRect &rect, SArray< size_t > &breaksNumbers) const
 Номера разрывов, которые хотя бы одним краем попадают в область. Подробнее...
 
bool GetBreaksInRect (const MbContour &contour, SArray< size_t > &breaksNumbers) const
 Номера разрывов, которые хотя бы одним краем попадают в область. Подробнее...
 
bool HitToBreaks (const MbCartPoint &p) const
 Определить попадает ли точка в любой из разрывов. Подробнее...
 
bool IsRectInBreak (const MbRect1D &rect)
 Находится ли интервал параметров на разрыве. Подробнее...
 
void RebuildBreaks (SArray< size_t > &oldBaseNumbers)
 Обновить невидимые и видимые контуры. Подробнее...
 
void RebuildBreaks ()
 Обновить невидимые и видимые контуры. Подробнее...
 
void TransformMultlinesBreaks (const MbMatrix &matr)
 Преобразование в соответствии с матрицей. Подробнее...
 
double GetLocalBreaksParam (const MbBreaksPart &brPart, size_t &segNumber) const
 Параметр привязки части разрыва. Подробнее...
 
Работа с разрывами: изменение разрыва.
void SetBreakFixedPoint (const MbCartPoint &newPoint, MbBreaksPart &part)
 Фиксировать точку. Подробнее...
 
void SetBreakFixedVar (double newFixedVar, MbBreaksPart &part)
 Фиксировать переменную. Подробнее...
 
Работа с разрывами: отслеживание разрыва
size_t GetBaseNumbersCount () const
 Количество номеров сегментов базового контура
 
void GetBaseNumbers (SArray< size_t > &baseNumbers) const
 Номера сегментов базового контура.
 
size_t GetBaseNumber (size_t i) const
 Номер сегмента базового контура. Подробнее...
 
void AddBaseSegNumber (size_t number)
 Добавить номер базового сегмента. Подробнее...
 
void AddBaseSegNumberAtBegin (size_t number)
 Добавить номер базового сегмента. Подробнее...
 
void InsertLastSegNumber (size_t lastInd)
 Вставить номер после lastInd. Подробнее...
 
void DeleteBaseSegNumber (size_t ind)
 Удалить элемент по индексу. Подробнее...
 
void ClearBaseSegNumbers ()
 Очистить массив с номерами базовых сегментов.
 
void ChangeBreaksSegNumbers (size_t begBaseNumber, ptrdiff_t deltaN)
 Изменить номера сегментов в разрывах. Подробнее...
 
void ChangeBreaksAtClosed (bool newClosed)
 Изменить разрывы соотвестсвенно замкнутости. Подробнее...
 
void MoveBreaksSegNumbers (ptrdiff_t deltaN)
 Изменить номера сегментов частей разрывов. Подробнее...
 
bool IsTrasingBreaksPart (const MbBreaksPart &part, size_t &vertNumber) const
 Находится ли часть разрыва этого контура на сегменте обхода вершин. Подробнее...
 
void SwapBreaksAndBaseNumbers (MbContourWithBreaks &other)
 Поменяться разрывами. Подробнее...
 
void AddContoursBreaks (const MbContourWithBreaks &other)
 Добавить разрывы контура. Подробнее...
 
void ChangeBaseNumbers (const MbContourWithBreaks &other)
 Заменить номера базовых сегментов. Подробнее...
 
- Открытые члены унаследованные от MbContour
 MbContour ()
 Пустой контур.
 
template<class Curves >
 MbContour (const Curves &, bool same)
 Конструктор по набору кривых.
 
virtual MbePlaneType Type () const
 Получить групповой тип объекта.
 
virtual bool IsSimilar (const MbPlaneItem &) const
 Определить, являются ли объекты подобными. Подробнее...
 
virtual bool SetEqual (const MbPlaneItem &)
 Сделать объекты равным. Подробнее...
 
virtual bool IsSame (const MbPlaneItem &, double accuracy=LENGTH_EPSILON) const
 Определить, являются ли объекты равными. Подробнее...
 
virtual MbCurveOffset (double rad) const
 Построить кривую, смещённую на заданное расстояние.
 
virtual void AddYourGabaritTo (MbRect &) const
 Расширить присланный габаритный прямоугольник так, чтобы он включал в себя данный объект.
 
virtual void CalculateGabarit (MbRect &) const
 Определить габаритный прямоугольник кривой. Подробнее...
 
virtual void CalculateLocalGabarit (const MbMatrix &into, MbRect &local) const
 Рассчитать габарит в локальной системы координат. Подробнее...
 
const MbRectGetGabarit () const
 
const MbRectGetCube () const
 
void SetDirtyGabarit () const
 
void CopyGabarit (const MbContour &c)
 
bool IsGabaritEmpty () const
 
virtual double DistanceToPoint (const MbCartPoint &) const
 Вычислить расстояние до точки.
 
virtual MbeState Deformation (const MbRect &, const MbMatrix &)
 Деформировать кривую. Подробнее...
 
virtual bool IsInRectForDeform (const MbRect &) const
 Определить видимость кривой в прямоугольнике.
 
virtual void Refresh ()
 Перевести все временные (mutable) данные объекта в неопределённое (исходное) состояние.
 
virtual void PrepareIntegralData (const bool forced) const
 Рассчитать временные (mutable) данные объекта. Подробнее...
 
virtual MbeState DeletePart (double t1, double t2, MbCurve *&part2)
 Удалить часть кривой. Подробнее...
 
virtual MbeState TrimmPart (double t1, double t2, MbCurve *&part2)
 Оставить часть кривой. Подробнее...
 
virtual MbCurveTrimmed (double t1, double t2, int sense) const
 Построить усеченную кривую. Подробнее...
 
virtual double GetTMin () const
 Получить минимальное значение параметра.
 
virtual double GetTMax () const
 Получить максимальное значение параметра.
 
virtual bool IsClosed () const
 Определить, является ли кривая замкнутой. Подробнее...
 
virtual bool IsStraight () const
 Определить, является ли кривая прямолинейной.
 
virtual bool IsSmoothConnected (double angleEps) const
 Определить, являются ли стыки контура/кривой гладкими.
 
virtual void PointOn (double &, MbCartPoint &) const
 Вычислить точку на кривой. Подробнее...
 
virtual void FirstDer (double &, MbVector &) const
 Вычислить первую производную.
 
virtual void SecondDer (double &, MbVector &) const
 Вычислить вторую производную.
 
virtual void ThirdDer (double &, MbVector &) const
 Вычислить третью производную.
 
virtual void _PointOn (double, MbCartPoint &) const
 Вычислить точку на кривой и её продолжении. Подробнее...
 
virtual void _FirstDer (double, MbVector &) const
 Вычислить первую производную на кривой и её продолжении.
 
virtual void _SecondDer (double, MbVector &) const
 Вычислить вторую производную на кривой и её продолжении.
 
virtual void _ThirdDer (double, MbVector &) const
 Вычислить третью производную на кривой и её продолжении.
 
virtual void Explore (double &t, bool ext, MbCartPoint &pnt, MbVector &fir, MbVector *sec, MbVector *thir) const
 Вычислить значения точки и производных для заданного параметра. Подробнее...
 
virtual double Step (double t, double sag) const
 Вычислить шаг параметра. Подробнее...
 
virtual double DeviationStep (double t, double angle) const
 Вычислить шаг параметра. Подробнее...
 
virtual bool HasLength (double &) const
 Вычислить метрическую длину кривой. Подробнее...
 
virtual double GetMetricLength () const
 Вычислить метрическую длину кривой. Подробнее...
 
virtual double GetLengthEvaluation () const
 Вычислить метрическую длину кривой. Подробнее...
 
virtual double CalculateMetricLength () const
 Вычислить метрическую длину кривой.
 
double GetParamLength () const
 
double CalculateParamLength ()
 
double GetArea (double sag=Math::deviateSag) const
 
virtual MbNurbsNurbsCurve (const MbCurveIntoNurbsInfo &) const
 Построить NURBS копию кривой. Подробнее...
 
virtual MbContourNurbsContour () const
 Аппроксимировать кривую контуром из NURBS-кривых.
 
void SetClosed ()
 Установить признак замкнутости контура.
 
void CheckClosed (double eps)
 Установить признак замкнутости контура.
 
void InitClosed (bool c)
 Установить признак замкнутости контура.
 
bool IsClosedContinuousC0 (double eps=5.0 *PARAM_NEAR) const
 Проверить замкнутость и непрерывность точек контура. Подробнее...
 
void CloseByLineSeg (bool calcData)
 Замкнуть контур отрезком.
 
virtual double CalculateLength (double t1, double t2) const
 Вычислить метрическую длину кривой. Подробнее...
 
virtual bool DistanceAlong (double &t, double len, int curveDir, double eps=Math::LengthEps, VERSION version=Math::DefaultMathVersion()) const
 Сдвинуть параметр вдоль кривой. Подробнее...
 
void Clear (bool calculateParamLength=true)
 Cбросить переменные кэширования.
 
ptrdiff_t FindSegment (double &t, double &tSeg) const
 Нахождение сегмента контура.
 
size_t GetSegmentsCount () const
 Выдать количество сегментов контура.
 
const MbCurveGetSegment (size_t ind) const
 Выдать сегмент контура по индексу.
 
MbCurveSetSegment (size_t ind)
 Выдать сегмент контура по индексу.
 
virtual MbeItemLocation PointRelative (const MbCartPoint &pnt, double eps=Math::LengthEps) const
 Определить положение точки относительно кривой. Подробнее...
 
virtual MbeLocation PointLocation (const MbCartPoint &pnt, double eps=Math::LengthEps) const
 Положение точки относительно кривой.
 
virtual double PointProjection (const MbCartPoint &) const
 Найти проекцию точки на кривую.
 
virtual bool NearPointProjection (const MbCartPoint &, double xEpsilon, double yEpsilon, double &t, bool ext, MbRect1D *tRange=NULL) const
 Найти проекцию точки на кривую. Подробнее...
 
double DistanceToBorder (const MbCartPoint &) const
 Параметрическое расстояние до ближайшей границы
 
void Trimm (double t1, double t2)
 Выделить часть контура.
 
virtual void PerpendicularPoint (const MbCartPoint &, SArray< double > &tFind) const
 Найти перпендикуляры к кривой. Подробнее...
 
virtual void TangentPoint (const MbCartPoint &, SArray< double > &tFind) const
 Найти касательные к кривой. Подробнее...
 
virtual void IntersectHorizontal (double y, SArray< double > &) const
 Найти пересечения кривой с горизонтальной прямой. Подробнее...
 
virtual void IntersectVertical (double x, SArray< double > &) const
 Найти пересечения кривой с вертикальной прямой. Подробнее...
 
virtual void SelfIntersect (SArray< MbCrossPoint > &) const
 Найти самопересечения кривой. Подробнее...
 
bool IsSelfIntersect (bool bStrict=true) const
 
bool FilletTwoSegments (ptrdiff_t &index, double rad, bool &del1, bool &del2)
 Скругление двух соседних элементов с информацией об удалении
 
bool FilletTwoSegments (ptrdiff_t &index, double rad)
 Скругление двух соседних элементов
 
bool ChamferTwoSegments (ptrdiff_t &index, double len, double angle, bool type, bool firstSeg, bool &del1, bool &del2)
 Вставка фаски между двумя соседними элементами с информацией об удалении
 
bool ChamferTwoSegments (ptrdiff_t &index, double len, double angle, bool type, bool firstSeg=true)
 Вставка фаски между двумя соседними элементами
 
bool Fillet (double rad)
 Скругление контура
 
bool Chamfer (double len, double angle, bool type)
 Вставка фаски
 
MbeState RemoveFilletOrChamfer (const MbCartPoint &pnt)
 Удалить скругление или фаску контура Разбить контур на непересекающиеся сегменты.
 
bool InsertCrossPoints ()
 
void BreakSegment (ptrdiff_t &index, ptrdiff_t firtsIdx, SArray< MbCrossPoint > &cross, bool firstCurve=true)
 Разбиение сегментов контура в точках пересечения.
 
bool CheckConnection (double eps=Math::LengthEps) const
 Проверка непрерывности контура
 
bool CheckConnection (double xEps, double yEps) const
 Проверка непрерывности контура
 
void FilletTwoSegmentsZero (ptrdiff_t &index, int defaultSense, bool fullInsert)
 Скругление двух соседних элементов дугой нулевого радиуса.
 
void FilletZero (int defaultSense, bool fullInsert=false)
 Скругление контура дугой нулевого радиуса.
 
void ChamferTwoSegmentsZero (ptrdiff_t &index, double rad)
 Вставка фаски между двумя соседними элементами для построения эквидистанты.
 
void ChamferZero (double rad)
 Вставка фаски для построения эквидистанты.
 
void DeleteDegenerateSegments (double radius, MbCurve *curve, bool mode)
 Удаление вырожденных сегментов контура.
 
void Equid (double radLeft, double radRight, int side, bool mode, PArray< MbCurve > &equLeft, PArray< MbCurve > &equRight)
 Построение эквидистанты к контуру. Подробнее...
 
void CreateNewContours (RPArray< MbCurve > &)
 Построение новых контуров из эквидистанты.
 
double CalculateArea (double sag=Math::deviateSag) const
 Вычисление площади контура, если контур замкнут.
 
int GetSense () const
 Определение направления обхода контура, если контур замкнут.
 
void SetSense (int sense)
 Установить направление обхода контура.
 
virtual void Inverse (MbRegTransform *=NULL)
 Изменить направления кривой на противоположное.
 
virtual size_t GetCount () const
 Определить количество разбиений для прохода в операциях.
 
virtual bool DistanceToPointIfLess (const MbCartPoint &toP, double &d) const
 Вычислить расстояние до точки. Подробнее...
 
virtual bool GetSpecificPoint (const MbCartPoint &from, double &dmax, MbCartPoint &pnt) const
 Вернуть характерную точку кривой. Подробнее...
 
bool GetSegmentMiddlePoint (const MbCartPoint &from, MbCartPoint &midPoint) const
 Выдать среднюю точку сегмента контура.
 
bool GetLinearSegment (const MbCartPoint &from, double maxDist, MbCartPoint &p1, MbCartPoint &p2, double &d) const
 Выдать линейный сегмент контура.
 
MbArcGetArcSegment (const MbCartPoint &from, double maxDist, double &d) const
 Выдать дуговой сегмент контура.
 
bool GetSegmentLength (const MbCartPoint &from, double &length) const
 Выдать длину сегмента контура.
 
virtual bool GetWeightCentre (MbCartPoint &) const
 Вычислить центр тяжести кривой.
 
virtual bool GetCentre (MbCartPoint &) const
 Вычислить центр кривой.
 
ptrdiff_t FindNearestNode (const MbCartPoint &to) const
 Найти ближайший к точке узел контура
 
ptrdiff_t FindNearestSegment (const MbCartPoint &to) const
 Найти ближайший к точке сегмент контура
 
virtual void OffsetCuspPoint (SArray< double > &tCusps, double dist) const
 Найти особые точки эквидистантной кривой. Подробнее...
 
virtual double GetRadius () const
 Дать физический радиус скривой или ноль, если это невозможно. Подробнее...
 
virtual bool GetAxisPoint (MbCartPoint &) const
 Вычислить точку для построения оси. Подробнее...
 
void CombineNurbsSegments ()
 Объединить NURBS кривые в контуре.
 
virtual void GetProperties (MbProperties &)
 Выдать свойства объекта.
 
virtual void SetProperties (const MbProperties &)
 Записать свойства объекта.
 
virtual void GetBasisPoints (MbControlData &) const
 Выдать базовые точки кривой.
 
virtual void SetBasisPoints (const MbControlData &)
 Изменить объект по контрольным точкам.
 
bool Init (List< MbCurve > &curves)
 Инициализация по списку кривых.
 
void Init (const MbContour &other)
 Инициализация по контуру.
 
template<class Curves >
bool Init (Curves &curves, bool same)
 Инициализация по массиву кривых.
 
template<class Points >
bool InitByPoints (const Points &)
 Инициализация по массиву точек (замкнутый контур).
 
bool InitAsRectangle (const MbCartPoint *)
 Инициализация как прямоугольника ( приходит 4 точки )
 
bool InitByRectangle (const MbRect &)
 Инициализация по прямоугольнику габарита.
 
bool AddSegment (MbCurve *)
 Добавить сегмент в контур.
 
bool AddSegmentOrDeleteCurve (MbCurve *)
 Добавить кривую как сегмент или удалить ее.
 
MbCurveAddSegment (const MbCurve *pBasis, double t1, double t2, int sense=1)
 
bool AddAtSegment (MbCurve *newSegment, size_t index)
 Вставить сегмент перед сегментом контура с индексом index.
 
bool AddAfterSegment (MbCurve *newSegment, size_t index)
 Вставить сегмент после сегмента контура с индексом index. Функция добавления новой кривой с управляемой проверкой.
 
bool AddCurveWithRuledCheck (MbCurve &newCur, double absEps, bool toEndOnly=false, bool checkSame=true, VERSION version=Math::DefaultMathVersion())
 
void DeleteSegments ()
 Удалить все сегменты в контуре.
 
void DeleteSegment (size_t ind)
 Удалить сегмент в контуре.
 
void DetachSegments ()
 Отцепить все сегменты от контура без удаления.
 
MbCurveDetachSegment (size_t ind)
 Отцепить сегмент от контура и вернуть его.
 
void SetSegment (MbCurve &newSegment, size_t ind)
 Заменить сегмент в контуре.
 
void SegmentsAdd (MbCurve &newSegment, bool calculateParamLength=true)
 Добавить сегмент в контур без проверки.
 
void SegmentsInsert (size_t ind, MbCurve &newSegment)
 Вставить сегмент в контур перед индексом без проверки.
 
void SegmentsRemove (size_t ind)
 Удалить сегмент без проверки.
 
void SegmentsDetach (size_t ind)
 Отцепить сегмент без проверки.
 
void Calculate (bool calcArea=false)
 Рассчитать параметры: rect, paramLength, metricLength, closed.
 
void SegmentsReserve (size_t additionalSpace)
 Зарезервировать место под столько элементов.
 
void SegmentsAdjust ()
 Удалить лишнюю память.
 
template<class Curves >
bool GetSegments (Curves &segms) const
 Получить сегменты контура.
 
void SetMetricLength (double len) const
 
bool SetBegEndPoint (double t)
 Установить начальную (конечную) точку для замкнутого контура.
 
void ReplaceContoursAndPolylines ()
 Заменить сегменты контуры и сегменты полилинии.
 
void GetPolygon (double sag, SArray< MbCartPoint > &poly, double eps) const
 Дать точки полигона.
 
bool IsAnyCurvilinear () const
 Есть ли в контуре криволинейный сегмент.
 
bool IsSameSegments (const MbContour &cntr) const
 Содержат ли контура идентичные сегменты.
 
bool GetBegSegmentPoint (size_t i, MbCartPoint &) const
 Дать начальную точку i-го сегмента.
 
bool GetEndSegmentPoint (size_t i, MbCartPoint &) const
 Дать конечную точку i-го сегмента.
 
bool CornerNormal (double t, MbVector &norm) const
 Нормаль по параметру, учитывая стыки сегментов. Подробнее...
 
template<class Params >
void GetCornerParams (Params &params) const
 Параметры стыков сегментов. Подробнее...
 
bool GetTwoTangents (double t, MbVector &tan1, MbVector &tan2) const
 Вычисление двух касательных (для параметров стыков). Подробнее...
 
void GetSegmentsNames (SimpleNameArray &names) const
 Дать имена сегментов. Подробнее...
 
void SetSegmentsNames (const SimpleNameArray &names)
 Установить имена сегментов. Подробнее...
 
- Открытые члены унаследованные от MbCurve
virtual ~MbCurve ()
 Деструктор.
 
virtual MbePlaneType Family () const
 Получить семейство объекта.
 
size_t size () const
 Размер кривой трактуемой как в виде вектора кривых.
 
const MbCurveoperator[] (size_t) const
 Оператор доступа.
 
virtual void AddYourGabaritMtr (MbRect &rect, const MbMatrix &matr) const
 Добавить габарит в прямоугольник. Подробнее...
 
virtual bool IsVisibleInRect (const MbRect &rect, bool exact=false) const
 Определить видимость объекта в прямоугольнике. Подробнее...
 
virtual bool IsCompleteInRect (const MbRect &rect) const
 Определить, виден ли объект полностью в прямоугольнике. Подробнее...
 
virtual double GetPeriod () const
 Вернуть период. Подробнее...
 
virtual bool IsPeriodic () const
 Определить, является ли замкнутая кривая периодической.
 
bool IsTouch (double eps=Math::LengthEps) const
 Определить, замкнута ли кривая фактически независимо от гладкости замыкания. Подробнее...
 
void Tangent (double &t, MbVector &v) const
 Вычислить касательный вектор (нормализованный).
 
void Tangent (double &t, MbDirection &d) const
 Вычислить касательный вектор (нормализованный).
 
void Normal (double &t, MbVector &v) const
 Вычислить вектор главной нормали (нормализованный).
 
void Normal (double &t, MbDirection &d) const
 Вычислить вектор главной нормали (нормализованный).
 
void _Tangent (double t, MbVector &v) const
 Вычислить касательный вектор (нормализованный).
 
void _Tangent (double t, MbDirection &d) const
 Вычислить касательный вектор (нормализованный).
 
void _Normal (double t, MbVector &v) const
 Вычислить вектор главной нормали (нормализованный) на кривой и её продолжении.
 
void _Normal (double t, MbDirection &d) const
 Вычислить вектор главной нормали (нормализованный) на кривой и её продолжении.
 
virtual double Curvature (double t) const
 Вычислить кривизну кривой.
 
double CurvatureDerive (double t) const
 Вычислить производную кривизны по параметру.
 
double CurvatureRadius (double t) const
 Вычислить радиус кривизны кривой со знаком.
 
virtual bool IsBounded () const
 Определить, является ли кривая ограниченной.
 
virtual bool IsDegenerate (double eps=Math::LengthEps) const
 Определить, является ли кривая вырожденной.
 
double GetParamLength () const
 Вычислить параметрическую длину кривой.
 
virtual void ResetTCalc () const
 Сбросить текущее значение параметра.
 
virtual bool BeginApprox (double sag, double &tbeg, double &tend, MbCartPoint &pnt, bool &existNextPoint) const
 Начать аппроксимацию для отрисовки. Подробнее...
 
virtual bool GetNextPoint (double sag, double tend, double &tcur, MbCartPoint &pnt) const
 Вычислить очередную точку. Подробнее...
 
virtual void CalculatePolygon (double sag, MbPolygon &poligon) const
 Рассчитать массив точек для отрисовки. Подробнее...
 
MbNurbsNurbsCurve (const MbCurveIntoNurbsInfo *nInfo=NULL) const
 Построить NURBS копию кривой. Подробнее...
 
virtual MbCurveNurbsCurve (const MbNurbsParameters &tParameters) const
 Построить NURBS копию кривой. Подробнее...
 
MbeNewtonResult PointProjectionNewton (const MbCartPoint &p, double xEpsilon, double yEpsilon, size_t iterLimit, double &t, bool ext) const
 Найти проекцию точки на кривую. Подробнее...
 
void PointProjection (const MbCartPoint &pnt, MbCartPoint &on) const
 Вычислить проекцию точки на кривую. Подробнее...
 
void BasePointProjection (const MbCartPoint &pnt, MbCartPoint &on) const
 Вычислить проекцию точки на кривую. Подробнее...
 
void PointProjectionAndAngle (MbCartPoint &on, double &angle) const
 Вычислить проекцию точки на кривую. Подробнее...
 
bool DirectPointProjection (const MbCartPoint &pnt, const MbDirection &dir, MbCartPoint &pp) const
 Вычислить проекцию точки на кривую. Подробнее...
 
virtual bool SmallestPerpendicular (const MbCartPoint &pnt, double &tProj) const
 Найти ближайший перпендикуляр к кривой. Подробнее...
 
virtual void Isoclinal (const MbVector &angle, SArray< double > &tFind) const
 Построить изоклины. Подробнее...
 
void HorzIsoclinal (SArray< double > &tFind) const
 Построить горизонтальные изоклины. Подробнее...
 
void VertIsoclinal (SArray< double > &tFind) const
 Построить вертикальные изоклины. Подробнее...
 
void LowestPoint (MbCartPoint &lowestPoint, double &tLowest) const
 Найти нижнюю точку кривой и соответствующий ей параметр.
 
virtual bool GoThroughPoint (MbCartPoint &pnt)
 Провести кривую через точку. Подробнее...
 
virtual bool GetMiddlePoint (MbCartPoint &) const
 Вычислить среднюю точку кривой.
 
virtual void GetStartPoint (MbCartPoint &) const
 Вычислить начальную точку кривой.
 
virtual void GetEndPoint (MbCartPoint &) const
 Вычислить конечную точку кривой.
 
virtual bool IsSimilarToCurve (const MbCurve &curve, double precision=PARAM_PRECISION) const
 Определить, подобны ли кривые для объединения (слива).
 
void GetPointsByEvenParamDelta (size_t n, std::vector< MbCartPoint > &pnts) const
 Выдать n точек кривой с равными интервалами по параметру.
 
void GetPointsByEvenParamDelta (size_t n, SArray< MbCartPoint > &pnts) const
 
virtual void GetPointsByEvenLengthDelta (size_t n, std::vector< MbCartPoint > &pnts) const
 Выдать n точек кривой с равными интервалами по длине дуги.
 
void GetPointsByEvenLengthDelta (size_t n, SArray< MbCartPoint > &pnts) const
 
virtual double LengthBetween2Points (MbCartPoint &p1, MbCartPoint &p2, MbCartPoint *pc=NULL) const
 Вычислить минимальную длину кривой между двумя точками на ней. Подробнее...
 
bool IsPointOn (const MbCartPoint &, double eps=Math::LengthEps) const
 Проверить лежит ли точка на кривой с точностью eps.
 
bool IsParamOn (double t, double eps=Math::paramEpsilon) const
 Проверить лежит ли параметр в диапазоне кривой с точностью eps.
 
void CorrectCyclicParameter (double &t, double eps=Math::paramRegion) const
 Корректировать параметр для замкнутых кривых. Подробнее...
 
void CorrectParameter (double &t) const
 Корректировать параметр. Подробнее...
 
MbCurveInverseDuplicate () const
 Сделать копию с измененным направлением.
 
bool IsInverseSame (const MbCurve &curve, double accuracy=LENGTH_EPSILON) const
 Определить, являются ли кривая инверсно такой же.
 
virtual bool IsReparamSame (const MbCurve &curve, double &factor) const
 Определить, является ли кривая репараметризованно такой же. Подробнее...
 
MbCartPoint GetLimitPoint (ptrdiff_t number) const
 Вычислить граничную точку. Подробнее...
 
void GetLimitPoint (ptrdiff_t number, MbCartPoint &pnt) const
 Вычислить граничную точку. Подробнее...
 
void GetLimitTangent (ptrdiff_t number, MbVector &v) const
 Вычислить касательный вектор в граничной точке. Подробнее...
 
void GetLimitPointAndTangent (ptrdiff_t number, MbCartPoint &pnt, MbVector &v) const
 Вычислить касательный вектор и точку на конце кривой. Подробнее...
 
bool AreLimitPointsEqual () const
 Равны ли граничные точки? Подробнее...
 
virtual const MbCurveGetBasisCurve () const
 Вернуть базовую кривую, если есть, или себя.
 
virtual MbCurveSetBasisCurve ()
 Вернуть базовую кривую, если есть, или себя.
 
virtual double GetParamDelta () const
 Вернуть отступ по параметру кривой.
 
virtual const MbCurveGetSubstrate () const
 Выдать подложку или себя.
 
virtual MbCurveSetSubstrate ()
 Выдать подложку или себя.
 
virtual int SubstrateCurveDirection () const
 Вернуть направление подложки относительно кривой или наоборот.
 
virtual void SubstrateToCurve (double &) const
 Преобразовать параметр подложки в параметр кривой.
 
virtual void CurveToSubstrate (double &) const
 Преобразовать параметр кривой в параметр подложки.
 
virtual double GetParamToUnit () const
 Вернуть приращение параметра, соответствующее единичной длине в пространстве.
 
virtual double GetParamToUnit (double t) const
 Вернуть приращение параметра, соответствующее единичной длине в пространстве в зависимости от параметра.
 
virtual double GetTEpsilon (double epsilon) const
 Вернуть минимально различимую величину параметра с заданной точностью.
 
virtual double GetTEpsilon (double t, double epsilon) const
 Вернуть минимально различимую величину параметра с заданной точностью в зависимости от параметра.
 
virtual double GetTRegion (double epsilon) const
 Вернуть минимально различимую величину параметра с заданной точностью.
 
virtual double GetTRegion (double t, double epsilon) const
 Вернуть минимально различимую величину параметра с заданной точностью в зависимости от параметра.
 
double GetTMid () const
 Вернуть середину параметрического диапазона кривой.
 
double GetTRange () const
 Вернуть параметрическую длину кривой.
 
MbCartPoint PointOn (double &t) const
 Вычислить точку на кривой.
 
MbVector FirstDer (double &t) const
 Вычислить первую производную.
 
MbDirection Tangent (double &t) const
 Вычислить касательный вектор (нормализованный).
 
MbDirection Normal (double &t) const
 Вычислить нормальный вектор.
 
double DerLength (double &t) const
 Вычислить длину вектора производной.
 
virtual MbPropertyCreateProperty (MbePrompt name) const
 Создать собственное свойство.
 
bool IsSpaceNear (const MbCurve &curve, double eps, bool ext, double devSag=5.0 *Math::deviateSag) const
 Определить, близки ли две кривые метрически. Подробнее...
 
bool IsSpaceNear (const MbCurve &curve, double xEps, double yEps, bool ext, double xNear, double yNear, double devSag=5.0 *Math::deviateSag) const
 Определить, близки ли две кривые метрически. Подробнее...
 
SimpleName GetCurveName () const
 Имя кривой.
 
void SetCurveName (SimpleName newName)
 Установить имя кривой.
 
- Открытые члены унаследованные от MbPlaneItem
virtual ~MbPlaneItem ()
 Деструктор.
 
void PrepareWrite ()
 Регистрация объекта. Подробнее...
 
virtual MbeRefType RefType () const
 Получить регистрационный тип (для копирования, дублирования).
 
void Rotate (const MbCartPoint &pnt, double angle, MbRegTransform *iReg=NULL, const MbSurface *newSurface=NULL)
 Повернуть вокруг точки. Подробнее...
 
- Открытые члены унаследованные от 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
 Уменьшить количество ссылок на единицу и, если количество ссылок стало равным нулю, удалить себя.
 

Дополнительные унаследованные члены

- Защищенные члены унаследованные от MbContour
 MbContour (const MbContour *, MbRegDuplicate *)
 Конструктор копирования.
 
- Защищенные члены унаследованные от MbCurve
 MbCurve ()
 Конструктор по умолчанию.
 
 MbCurve (const MbCurve &other)
 Конструктор копирования.
 
- Защищенные члены унаследованные от MbPlaneItem
 MbPlaneItem ()
 Конструктор.
 
- Защищенные данные унаследованные от MbContour
RPArray< MbCurvesegments
 Множество сегментов контура.
 
bool closed
 Признак замкнутости кривой.
 
double paramLength
 Параметрическая длина контура.
 
double metricLength
 Метрическая длина контура.
 
MbRect rect
 Габаритный прямоугольник.
 
c3d::DoublePair areaSign
 Площадь контура со знаком.
 
- Защищенные данные унаследованные от MbCurve
SimpleName name
 Имя кривой.
 

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

Контур c разрывами.

Контур c разрывами.
Для использования в мультилинии MbMultiline.
Содержит разрывы MbBreak, видимые части - контуры MbContour.
При использовании в мультилинии каждуй раз при перестроении контура в нем обновляется список номеров по количеству сегментов контура. Каждый номер показывает номер сегмента базовой кривой мультилинии, которому соответствует этот сегмент контура.
Если сегмент контура является эквидистантой сегмента базовой кривой, то ему соответствует номер этого сегмента.
Если контур является сегментом обхода вершины мультилинии, то ему соответствует номер, соответствующий предыдущему сегменту контура.
Разрывы в контуре не могут накладываться друг на друга. Если в результате перестроения один разрыв наложился на другой, то они объединяются.

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

◆ MbContourWithBreaks()

MbContourWithBreaks::MbContourWithBreaks ( )

Создание пустого контура.

Создание пустого контура без сегментов.

Методы

◆ Transform()

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

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

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

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

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

◆ Move()

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

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

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

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

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

◆ Rotate()

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

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

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

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

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

◆ Duplicate()

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

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

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

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

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

◆ GetBreak()

MbBreak* MbContourWithBreaks::GetBreak ( size_t  i) const
inline

Разрыв по номеру.

Разрыв по номеру.

Номер не проверяется на корректность.

Аргументы
[in]i- Номер разрыва, должен быть меньше количества разрывов.
Возвращает
Указатель на разрыв.

◆ GetBreaksRange()

MbRect1D MbContourWithBreaks::GetBreaksRange ( size_t  i) const

Разрыв по номеру в параметрах контура.

Разрыв по номеру в параметрах контура.

Номер проверяется на корректность. В случае, если номер больше числа сегментов результат - вывернутая область.

Аргументы
[in]i- Номер разрыва, должен быть меньше количества разрывов.
Возвращает
Интервал разрыва в параметрах контура.

◆ GetVisibleCount()

size_t MbContourWithBreaks::GetVisibleCount ( ) const
inline

Количество видимых частей.

Количество видимых частей.

Если в контуре нет разрывов, то возвращает 0.

Возвращает
Число видимых частей.

◆ GetVisibleContour()

const MbContour* MbContourWithBreaks::GetVisibleContour ( size_t  i) const
inline

Видимая часть по номеру.

Видимая часть по номеру.

Номер не проверяется на корректность.

Аргументы
[in]i- Номер видимой части, должен быть меньше количества видимых частей.
Возвращает
Указатель не контур - видимую часть.

◆ GetInvisibleContour()

MbContour* MbContourWithBreaks::GetInvisibleContour ( size_t  i) const

Невидимая часть по номеру разрыва.

Невидимая часть по номеру разрыва.
Номер проверяется на корректность. В случае, если номер не меньше числа разрывов, функция вернет NULL.
После использования полученный контур нужно удалить.

Аргументы
[in]i- Номер разрыва, должен быть меньше количества видимых частей.
Возвращает
Указатель не контур - видимую часть.

◆ AddBreak() [1/3]

bool MbContourWithBreaks::AddBreak ( const MbCartPoint point1,
const MbCartPoint point2,
const MbCartPoint point3,
bool  invertBreak = false 
)

Добавить разрыв между точками.

Добавить разрыв между точками.

Аргументы
[in]point1- Первая граница разрыва.
[in]point2- Вторая граница разрыва.
[in]point3- Точка, которая показывает удаляемую часть замкнутого контура,
в случае разомкнутого контура она игнорируется.
[in]invertBreak- Признак добавления разрыва на противоположную часть контура.
Возвращает
true, если разрыв был добавлен.

◆ AddBreak() [2/3]

bool MbContourWithBreaks::AddBreak ( double  t1,
double  t2,
double  t3,
bool  invertBreak = false 
)

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

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

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

◆ AddBreak() [3/3]

bool MbContourWithBreaks::AddBreak ( const MbRect1D range)

Добавить разрыв по интервалу параметров контура.

Добавить разрыв по интервалу параметров контура.

Аргументы
[in]range- Интервал параметров контура,
если range.zmin больше range.zmax, то результат работы функции будет корректным только в случае замкнутого контура - добавится разрыв, проходящий через начало контура.


Возвращает
true, если разрыв был добавлен.

◆ DeleteBreaks()

bool MbContourWithBreaks::DeleteBreaks ( )

Удалить разрывы.

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


Возвращает
true, если хотя бы один разрыв был удален. Удалить разрывы.

◆ DeleteBreakAtNumber()

bool MbContourWithBreaks::DeleteBreakAtNumber ( size_t  breakIndex,
bool  rebuild = false 
)

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

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

Аргументы
[in]breakIndex- Номер разрыва,
проверяется на корректность.
[in]rebuild- Нужно ли перестроить контур после удаления разрыва.
Если контур не перестраивать, видимые части контура не будут соответствовать разрывам.
Перестроить контур можно отдельно вызовом RebuildBreaks.
Возвращает
true, если разрыв был удален.

◆ DeleteBreakAtParam()

bool MbContourWithBreaks::DeleteBreakAtParam ( double  t)

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

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

Возвращает
true, если разрыв был удален

◆ DeleteBreaksAtBaseNumber()

void MbContourWithBreaks::DeleteBreaksAtBaseNumber ( size_t  baseNumber,
bool  delTracingBreaks,
bool  delEquidBreaks,
bool  delInLineSeg = true 
)

Удалить разрывы на сегментах с соответствующим базовым номером.

Удалить разрывы на сегментах с соответствующим базовым номером.

Разрывы удаляться, если в контуре заполнены базовые номера сегментов. Номера заполняются при перестроении мультилинии, содержащей контур.

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

Аргументы
[in]baseNumber- Номер сегмента базовой кривой.
[in]delTracingBreaks- Нужно ли удалять разрывы с сегментоа, соответствующих обходу вершины мультилинии.
[in]delEquidBreaks- Нужно ли удалять разрывы с сегментов, соответствующих эквидистантам.
[in]delInLineSeg- Удалять ли разрывы с прямолинейных сегментов.

◆ DeleteSmallBreaks()

bool MbContourWithBreaks::DeleteSmallBreaks ( double  length)

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

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

Аргументы
[in]length- Минимальная длина невидимой части.
Возвращает
true, если хотя бы один разрыв был удален.

◆ DeleteSmallVisContours()

bool MbContourWithBreaks::DeleteSmallVisContours ( double  length)

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

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

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

Аргументы
[in]length- Минимальная длина видимой части.
Возвращает
true, если разрывы были изменены.

◆ GetBreakAtPoint()

bool MbContourWithBreaks::GetBreakAtPoint ( const MbCartPoint p,
double  rad,
size_t &  index 
) const

Номер разрыва, край которого попал в окрестность точки.

Номер разрыва, край которого попал в окрестность точки.

Аргументы
[in]p- Точка.
[in]rad- Радиус окрестности точки для поиска разрыва.
[out]index- Номер разрыва.
Возвращает
true, если разрыв найден.

◆ GetBreaksInRect() [1/2]

bool MbContourWithBreaks::GetBreaksInRect ( const MbRect rect,
SArray< size_t > &  breaksNumbers 
) const

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

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

Аргументы
[in]rect- Область поиска.


Аргументы
[out]breaksNumbers- Номера разрывов.
Возвращает
true, если хотя бы один разрыв найден.

◆ GetBreaksInRect() [2/2]

bool MbContourWithBreaks::GetBreaksInRect ( const MbContour contour,
SArray< size_t > &  breaksNumbers 
) const

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

Номера разрывов, которые хотя бы одним краем попадают в область, заданную контуром.

Аргументы
[in]contour- Контур должен быть замкнутым и иметь правильное направление.


Аргументы
[out]breaksNumbers- Номера разрывов.
Возвращает
true, если хотя бы один разрыв найден.

◆ HitToBreaks()

bool MbContourWithBreaks::HitToBreaks ( const MbCartPoint p) const

Определить попадает ли точка в любой из разрывов.

Определить попадает ли точка в любой из разрывов.

Аргументы
[in]p- Точка для проверки.
Возвращает
true, если точка попадает в любой из разрывов.

◆ IsRectInBreak()

bool MbContourWithBreaks::IsRectInBreak ( const MbRect1D rect)

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

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

Аргументы
[in]rect- Интервал для проверки.
Возвращает
true, если интервал полностью находится на разрыве или совпадает с ним.

◆ RebuildBreaks() [1/2]

void MbContourWithBreaks::RebuildBreaks ( SArray< size_t > &  oldBaseNumbers)

Обновить невидимые и видимые контуры.

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

Аргументы
[in]oldBaseNumbers- Старые номера базовых сегментов,
должны быть запомнены до изменения мультилинии.

◆ RebuildBreaks() [2/2]

void MbContourWithBreaks::RebuildBreaks ( )

Обновить невидимые и видимые контуры.

Обновить невидимые и видимые контуры соответственно разрывам.

◆ TransformMultlinesBreaks()

void MbContourWithBreaks::TransformMultlinesBreaks ( const MbMatrix matr)

Преобразование в соответствии с матрицей.

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

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

◆ GetLocalBreaksParam()

double MbContourWithBreaks::GetLocalBreaksParam ( const MbBreaksPart brPart,
size_t &  segNumber 
) const

Параметр привязки части разрыва.

Посчитать параметр привязки части разрыва в зависимости от типа сегмента контура.

Аргументы
[in]brPart- Часть разрыва этого контура.
[out]segNumber- Номер сегмента контура.
Возвращает
Параметр центра разрыва на сегменте контура.

◆ SetBreakFixedPoint()

void MbContourWithBreaks::SetBreakFixedPoint ( const MbCartPoint newPoint,
MbBreaksPart part 
)

Фиксировать точку.

Поставить фиксированную точку части разрыва.

Аргументы
[in]newPoint- Новая фиксированная точка.
[out]part- Часть разрыва контура для изменения.

◆ SetBreakFixedVar()

void MbContourWithBreaks::SetBreakFixedVar ( double  newFixedVar,
MbBreaksPart part 
)

Фиксировать переменную.

Поставить фиксированную переменную части разрыва.

Аргументы
[in]newFixedVar- Новая фиксированная переменная.
[out]part- Часть разрыва контура для изменения.

◆ GetBaseNumber()

size_t MbContourWithBreaks::GetBaseNumber ( size_t  i) const

Номер сегмента базового контура.

Номер сегмента базового контура.

Номер сегмента будет найден, если массив номеров не пуст и корректно насчитан, то есть число номеров совпадает с числом сегментов контура

Аргументы
[in]i- Индекс номера.
Возвращает
Номер сегмента из массива номеров.

◆ AddBaseSegNumber()

void MbContourWithBreaks::AddBaseSegNumber ( size_t  number)

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

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

Аргументы
[in]number- Номер для добавления.

◆ AddBaseSegNumberAtBegin()

void MbContourWithBreaks::AddBaseSegNumberAtBegin ( size_t  number)

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

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

Аргументы
[in]number- Номер для добавления.

◆ InsertLastSegNumber()

void MbContourWithBreaks::InsertLastSegNumber ( size_t  lastInd)

Вставить номер после lastInd.

Вставить после элемента номер lastInd номер, соответствующий lastInd.

Аргументы
[in]lastInd- Индекс номера.

◆ DeleteBaseSegNumber()

void MbContourWithBreaks::DeleteBaseSegNumber ( size_t  ind)

Удалить элемент по индексу.

Удалить номер базового сегмента по индексу.

Аргументы
[in]ind- Индекс номера.

◆ ChangeBreaksSegNumbers()

void MbContourWithBreaks::ChangeBreaksSegNumbers ( size_t  begBaseNumber,
ptrdiff_t  deltaN 
)

Изменить номера сегментов в разрывах.

Изменить номера сегментов в разрывах.

Заданному номеру базового сегмента соответствует сегмент - эквидистанта на контуре. Для всех разрывов: если хотя бы часть разрыва находится на этом сегменте, у всех его частей номер сегмента будет изменен.

Аргументы
[in]begBaseNumber- Номер базового сегмента.
[in]deltaN- Величина изменение номера сегмента частей разрывов.

◆ ChangeBreaksAtClosed()

void MbContourWithBreaks::ChangeBreaksAtClosed ( bool  newClosed)

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

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

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

Аргументы
[in]newClosed- Новый признак замкнутости контура.

◆ MoveBreaksSegNumbers()

void MbContourWithBreaks::MoveBreaksSegNumbers ( ptrdiff_t  deltaN)

Изменить номера сегментов частей разрывов.

Изменить номера сегментов частей разрывов.

Аргументы
[in]deltaN- Величина изменения.

◆ IsTrasingBreaksPart()

bool MbContourWithBreaks::IsTrasingBreaksPart ( const MbBreaksPart part,
size_t &  vertNumber 
) const

Находится ли часть разрыва этого контура на сегменте обхода вершин.

Находится ли часть разрыва этого контура на сегменте обхода вершин.

Аргументы
[in]part- Часть разрыва этого контура.
[out]vertNumber- В случае успеха вернет номер вершины.
Возвращает
true, если часть разрыва находится на сегменте обхода вершины.

◆ SwapBreaksAndBaseNumbers()

void MbContourWithBreaks::SwapBreaksAndBaseNumbers ( MbContourWithBreaks other)

Поменяться разрывами.

Поменяться разрывами.

Аргументы
[in]other- Контур с разрывами для обмена.

◆ AddContoursBreaks()

void MbContourWithBreaks::AddContoursBreaks ( const MbContourWithBreaks other)

Добавить разрывы контура.

Добавить разрывы контура.

Аргументы
[in]other- Контур с разрывами для добавления разрывов.

◆ ChangeBaseNumbers()

void MbContourWithBreaks::ChangeBaseNumbers ( const MbContourWithBreaks other)

Заменить номера базовых сегментов.

Заменить номера базовых сегментов.

Аргументы
[in]other- Контур с новыми номерами.

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