C3D Toolkit
Kernel - 105435, Vision - 121811.105435
|
Двумерная кривая, координатные функции которой заданы в символьном виде. Подробнее...
#include <cur_character_curve.h>
Открытые члены | |
virtual MbePlaneType | IsA () const |
Получить тип объекта. | |
virtual MbPlaneItem & | Duplicate (MbRegDuplicate *=NULL) const |
Создать копию. Подробнее... | |
virtual bool | IsSame (const MbPlaneItem &other, double accuracy=LENGTH_EPSILON) const |
Определить, являются ли объекты равными. Подробнее... | |
virtual bool | SetEqual (const MbPlaneItem &) |
Сделать объекты равным. Подробнее... | |
virtual void | Transform (const MbMatrix &, MbRegTransform *=NULL, const MbSurface *newSurface=NULL) |
Преобразовать согласно матрице. Подробнее... | |
virtual void | Move (const MbVector &, MbRegTransform *=NULL, const MbSurface *newSurface=NULL) |
Сдвинуть вдоль вектора. Подробнее... | |
virtual void | Rotate (const MbCartPoint &pnt, const MbDirection &angle, MbRegTransform *=NULL, const MbSurface *newSurface=NULL) |
Повернуть вокруг точки. Подробнее... | |
virtual void | AddYourGabaritTo (MbRect &) const |
Расширить присланный габаритный прямоугольник так, чтобы он включал в себя данный объект. | |
virtual void | PrepareIntegralData (const bool forced) const |
Рассчитать временные (mutable) данные объекта. Подробнее... | |
virtual double | GetTMin () const |
Получить минимальное значение параметра. | |
virtual double | GetTMax () const |
Получить максимальное значение параметра. | |
virtual bool | IsClosed () const |
Определить, является ли кривая замкнутой. Подробнее... | |
virtual void | PointOn (double &t, MbCartPoint &) const |
Вычислить точку на кривой. Подробнее... | |
virtual void | FirstDer (double &t, MbVector &) const |
Вычислить первую производную. | |
virtual void | SecondDer (double &t, MbVector &) const |
Вычислить вторую производную. | |
virtual void | ThirdDer (double &t, 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 ang) const |
Вычислить шаг параметра. Подробнее... | |
virtual bool | HasLength (double &length) const |
Вычислить метрическую длину кривой. Подробнее... | |
virtual double | GetMetricLength () const |
Вычислить метрическую длину кривой. Подробнее... | |
virtual double | GetLengthEvaluation () const |
Вычислить метрическую длину кривой. Подробнее... | |
virtual void | Inverse (MbRegTransform *iReg=NULL) |
Изменить направления кривой на противоположное. | |
virtual MbNurbs * | NurbsCurve (const MbCurveIntoNurbsInfo &) const |
Построить NURBS копию кривой. Подробнее... | |
virtual MbCurve * | Trimmed (double t1, double t2, int sense) const |
Построить усеченную кривую. Подробнее... | |
virtual MbeState | DeletePart (double t1, double t2, MbCurve *&part2) |
Удалить часть кривой. Подробнее... | |
virtual MbeState | TrimmPart (double t1, double t2, MbCurve *&part2) |
Оставить часть кривой. Подробнее... | |
virtual void | GetBasisPoints (MbControlData &) const |
Выдать базовые точки кривой. | |
virtual void | SetBasisPoints (const MbControlData &) |
Изменить объект по контрольным точкам. | |
virtual void | GetProperties (MbProperties &) |
Выдать свойства объекта. | |
virtual void | SetProperties (const MbProperties &) |
Записать свойства объекта. | |
![]() | |
virtual | ~MbCurve () |
Деструктор. | |
virtual MbePlaneType | Type () const |
Получить групповой тип объекта. | |
virtual MbePlaneType | Family () const |
Получить семейство объекта. | |
virtual void | Refresh () |
Перевести все временные (mutable) данные объекта в неопределённое (исходное) состояние. | |
size_t | size () const |
Количество объектов при трактовке объекта как вектора объектов. | |
const MbCurve * | operator[] (size_t) const |
Оператор доступа. | |
virtual void | AddYourGabaritMtr (MbRect &rect, const MbMatrix &matr) const |
Добавить габарит в прямоугольник. Подробнее... | |
virtual void | CalculateGabarit (MbRect &) const |
Определить габаритный прямоугольник кривой. Подробнее... | |
virtual void | CalculateLocalGabarit (const MbMatrix &into, MbRect &local) const |
Рассчитать габарит в локальной системы координат. Подробнее... | |
virtual bool | IsVisibleInRect (const MbRect &rect, bool exact=false) const |
Определить видимость объекта в прямоугольнике. Подробнее... | |
virtual bool | IsCompleteInRect (const MbRect &rect) const |
Определить, виден ли объект полностью в прямоугольнике. Подробнее... | |
virtual double | DistanceToPoint (const MbCartPoint &toP) const |
Вычислить расстояние до точки. | |
virtual bool | DistanceToPointIfLess (const MbCartPoint &toP, double &d) 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 |
Вычислить вектор главной нормали (нормализованный). | |
virtual void | _PointOn (double t, MbCartPoint &p) const |
Вычислить точку на кривой и её продолжении. Подробнее... | |
virtual void | _FirstDer (double t, MbVector &v) const |
Вычислить первую производную на кривой и её продолжении. | |
virtual void | _SecondDer (double t, MbVector &v) const |
Вычислить вторую производную на кривой и её продолжении. | |
virtual void | _ThirdDer (double t, MbVector &v) 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 | IsStraight () const |
Определить, является ли кривая прямолинейной. | |
virtual bool | IsDegenerate (double eps=Math::LengthEps) const |
Определить, является ли кривая вырожденной. | |
virtual bool | IsSmoothConnected (double angleEps) const |
Определить, являются ли стыки контура/кривой гладкими. | |
double | GetParamLength () const |
Вычислить параметрическую длину кривой. | |
virtual double | CalculateMetricLength () const |
Вычислить метрическую длину кривой. | |
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 |
Сдвинуть параметр вдоль кривой. Подробнее... | |
virtual void | ResetTCalc () const |
Сбросить текущее значение параметра. | |
virtual MbCurve * | Offset (double rad) 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 |
Рассчитать массив точек для отрисовки. Подробнее... | |
MbNurbs * | NurbsCurve (const MbCurveIntoNurbsInfo *nInfo=NULL) const |
Построить NURBS копию кривой. Подробнее... | |
virtual MbCurve * | NurbsCurve (const MbNurbsParameters &tParameters) const |
Построить NURBS копию кривой. Подробнее... | |
virtual MbContour * | NurbsContour () const |
Аппроксимировать кривую контуром из NURBS-кривых. | |
virtual MbeState | Deformation (const MbRect &rect, const MbMatrix &matr) |
Деформировать кривую. Подробнее... | |
virtual bool | IsInRectForDeform (const MbRect &) const |
Определить видимость кривой в прямоугольнике. | |
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 &pnt) const |
Найти проекцию точки на кривую. | |
MbeNewtonResult | PointProjectionNewton (const MbCartPoint &p, double xEpsilon, double yEpsilon, size_t iterLimit, double &t, bool ext) const |
Найти проекцию точки на кривую. Подробнее... | |
virtual bool | NearPointProjection (const MbCartPoint &pnt, double xEpsilon, double yEpsilon, double &t, bool ext, MbRect1D *tRange=NULL) 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 | TangentPoint (const MbCartPoint &pnt, SArray< double > &tFind) const |
Найти касательные к кривой. Подробнее... | |
virtual void | PerpendicularPoint (const MbCartPoint &pnt, SArray< double > &tFind) const |
Найти перпендикуляры к кривой. Подробнее... | |
virtual void | IntersectHorizontal (double y, SArray< double > &cross) const |
Найти пересечения кривой с горизонтальной прямой. Подробнее... | |
virtual void | IntersectVertical (double x, SArray< double > &cross) 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 void | SelfIntersect (SArray< MbCrossPoint > &crossPnt) const |
Найти самопересечения кривой. Подробнее... | |
virtual void | OffsetCuspPoint (SArray< double > &tCusps, double dist) const |
Найти особые точки эквидистантной кривой. Подробнее... | |
virtual bool | GoThroughPoint (MbCartPoint &pnt) |
Провести кривую через точку. Подробнее... | |
virtual bool | GetMiddlePoint (MbCartPoint &) const |
Вычислить среднюю точку кривой. | |
virtual void | GetStartPoint (MbCartPoint &) const |
Вычислить начальную точку кривой. | |
virtual void | GetEndPoint (MbCartPoint &) const |
Вычислить конечную точку кривой. | |
virtual bool | GetCentre (MbCartPoint &) const |
Вычислить центр кривой. | |
virtual double | GetRadius () const |
Дать физический радиус скривой или ноль, если это невозможно. Подробнее... | |
virtual bool | GetAxisPoint (MbCartPoint &p) const |
Вычислить точку для построения оси. Подробнее... | |
virtual bool | IsSimilarToCurve (const MbCurve &curve, double precision=PARAM_PRECISION) const |
Определить, подобны ли кривые для объединения (слива). | |
virtual size_t | GetCount () 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 |
Вычислить минимальную длину кривой между двумя точками на ней. Подробнее... | |
virtual bool | GetWeightCentre (MbCartPoint &) 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 |
Корректировать параметр. Подробнее... | |
MbCurve * | InverseDuplicate () 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 bool | GetSpecificPoint (const MbCartPoint &from, double &dmax, MbCartPoint &pnt) const |
Вернуть характерную точку кривой. Подробнее... | |
virtual const MbCurve & | GetBasisCurve () const |
Вернуть базовую кривую, если есть, или себя. | |
virtual MbCurve & | SetBasisCurve () |
Вернуть базовую кривую, если есть, или себя. | |
virtual double | GetParamDelta () const |
Вернуть отступ по параметру кривой. | |
virtual const MbCurve & | GetSubstrate () const |
Выдать подложку или себя. | |
virtual MbCurve & | SetSubstrate () |
Выдать подложку или себя. | |
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 MbProperty & | CreateProperty (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) |
Установить имя кривой. | |
![]() | |
virtual | ~MbPlaneItem () |
Деструктор. | |
void | PrepareWrite () |
Регистрация объекта. Подробнее... | |
virtual MbeRefType | RefType () const |
Получить регистрационный тип (для копирования, дублирования). | |
void | Rotate (const MbCartPoint &pnt, double angle, MbRegTransform *iReg=NULL, const MbSurface *newSurface=NULL) |
Повернуть вокруг точки. Подробнее... | |
virtual bool | IsSimilar (const MbPlaneItem &item) const |
Определить, являются ли объекты подобными. Подробнее... | |
![]() | |
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 () | |
Конструктор без параметров. | |
refcount_t | GetUseCount () const |
Выдать количество ссылок (выдать количество владельцев объекта). | |
refcount_t | AddRef () const |
Увеличить количество ссылок на единицу. | |
refcount_t | DecRef () const |
Уменьшить количество ссылок на единицу. | |
refcount_t | Release () const |
Уменьшить количество ссылок на единицу и, если количество ссылок стало равным нулю, удалить себя. | |
Дополнительные унаследованные члены | |
![]() | |
MbCurve () | |
Конструктор по умолчанию. | |
MbCurve (const MbCurve &other) | |
Конструктор копирования. | |
![]() | |
MbPlaneItem () | |
Конструктор. | |
![]() | |
SimpleName | name |
Имя кривой. | |
Двумерная кривая, координатные функции которой заданы в символьном виде.
Координатные функции кривой заданы в виде пользовательских функций общего параметра t. Кождая ккордината кривой описана своей функцией в виде строкового выражения. Параметр кривой, он же параметр координатных функций, изменяется на отрезке [tmin tmax].
Все пользовательские функции заданы в локальной системе координат position. Система координат может быть декартовой или полярной. Радиус-вектор кривой в методе PointOn(double&t,MbCartPoint3D&r) описывается векторной функцией:
r(t) = position.origin + (position.axisX xFunction(t)) + (position.axisY yFunction(t)).
|
virtual |
Создать копию.
Создать копию объекта с использованием регистратора. Регистратор используется для предотвращения многократного копирования объекта. Если объект содержит ссылки на другие объекты, то вложенные объекты так же копируются. Допустимо не передавать регистратор в функцию. Тогда будет создана новая копия объекта. При копировании одиночного объекта или набора не связанных между собой объектов допустимо не использовать регистратор. Регистратор необходимо использовать, если надо последовательно копировать несколько взаимосвязанных объектов. Возможно, что связь объектов обусловлена наличием в них ссылок на общие объекты. Тогда, при копировании без использования регистратора, можно получить набор копий, содержащих ссылки на разные копии одного и того же вложенного объекта, что ведет к потере связи между копиями.
[in] | iReg | - Регистратор. |
Замещает MbCurve.
|
virtual |
Определить, являются ли объекты равными.
Равными считаются однотипные объекты, все данные которых одинаковы (равны).
[in] | item | - Объект для сравнения. |
[in] | accuracy | - Точность сравнения. |
Замещает MbCurve.
|
virtual |
Сделать объекты равным.
Равными можно сделать только подобные объекты. Подобный объект приравнивается присланному путем изменения численных данных.
[in] | item | - Объект для инициализации. |
Замещает MbCurve.
|
virtual |
Преобразовать согласно матрице.
Преобразовать исходный объект согласно матрице c использованием регистратора. Если объект содержит ссылки на другие геометрические объекты, то вложенные объекты так же преобразуются согласно матрице. Регистратор служит для предотвращения многократного преобразования объекта. Допустимо использовать функцию без регистратора, если надо преобразовать одиночный объект. Если надо преобразовать набор взаимосвязанных объектов, необходимо использовать регистратор для предотвращения повторного преобразования вложенных объектов, поскольку не исключена ситуация, когда несколько объектов из набора содержат ссылки на один или несколько общих объектов, подлежащих трансформации.
[in] | matr | - Матрица преобразования. |
[in] | iReg | - Регистратор. |
[in] | surface | - Новая базовая поверхность объекта при условии, что matr - матрица преобразования из старой поверхности в новую. Для трансформации проекционной кривой. Не учитывается, если поверхность плоская. |
Замещает MbCurve.
|
virtual |
Сдвинуть вдоль вектора.
Сдвинуть геометрический объект вдоль вектора с использованием регистратора. Если объект содержит ссылки на другие геометрические объекты, то к вложенным объектам так же применяется операция сдвига. Регистратор служит для предотвращения многократного преобразования объекта. Допустимо использовать функцию без регистратора, если надо преобразовать одиночный объект. Если надо преобразовать набор взаимосвязанных объектов, необходимо использовать регистратор для предотвращения повторного преобразования вложенных объектов, поскольку не исключена ситуация, когда несколько объектов из набора содержат ссылки на один или несколько общих объектов, подлежащих сдвигу.
[in] | to | - Вектор сдвига. |
[in] | iReg | - Регистратор. |
[in] | surface | - Новая базовая поверхность объекта при условии, что matr - матрица преобразования из старой поверхности в новую. Для трансформации проекционной кривой. Не учитывается, если поверхность плоская. |
Замещает MbCurve.
|
virtual |
Повернуть вокруг точки.
Повернуть объект вокруг точки на заданный угол с использованием регистратора. Если объект содержит ссылки на другие геометрические объекты, то к вложенным объектам так же применяется операция поворота. Регистратор служит для предотвращения многократного преобразования объекта. Допустимо использовать функцию без регистратора, если надо преобразовать одиночный объект. Если надо преобразовать набор взаимосвязанных объектов, необходимо использовать регистратор для предотвращения повторного преобразования вложенных объектов, поскольку не исключена ситуация, когда несколько объектов из набора содержат ссылки на один или несколько общих объектов, подлежащих повороту.
[in] | pnt | - Неподвижная точка. |
[in] | angle | - Угол поворота. |
[in] | iReg | - Регистратор. |
[in] | surface | - Новая базовая поверхность объекта при условии, что matr - матрица преобразования из старой поверхности в новую. Для трансформации проекционной кривой. Не учитывается, если поверхность плоская. |
Замещает MbCurve.
|
virtual |
Рассчитать временные (mutable) данные объекта.
Рассчитать временные данные объекта в зависимости от параметра forced. Если параметр forced равен false, рассчитываются только ещё не насчитанные данные. Если параметр forced равен true, перерасчитываются все временные данные объекта. Принудительный перерасчёт.
Переопределяет метод предка MbCurve.
|
virtual |
Определить, является ли кривая замкнутой.
Определить, является ли кривая замкнутой.
Замкнутой считается кривая, если она циклична:
Замещает MbCurve.
|
virtual |
Вычислить точку на кривой.
Скорректировать параметры при выходе их за пределы области определения и вычислить точку на кривой.
[in] | t | - Параметр curve. |
[out] | p | - Вычисленная точка на кривой. |
Замещает MbCurve.
|
virtual |
Вычислить значения точки и производных для заданного параметра.
Значения точки и производных вычисляются в пределах области определения и на расширенной кривой.
[in] | t | - Параметр. |
[in] | ext | - В пределах области определения (false), на расширенной кривой (true). |
[out] | pnt | - Точка. |
[out] | fir | - Производная. |
[out] | sec | - Вторая производная по t, если не ноль. |
[out] | thir | - Третья производная по t, если не ноль. |
Переопределяет метод предка MbCurve.
|
virtual |
Вычислить шаг параметра.
Вычислить шаг параметра для аппроксимации кривой по величине прогиба кривой. Вычисление шага проходит с учетом радиуса кривизны. Шаг аппроксимации кривой выбирается таким образом, чтобы отклонение кривой от её полигона не превышало заданную величину прогиба.
[in] | t | - Параметр, определяющий точку на кривой, в которой надо вычислить шаг. |
[in] | sag | - Максимально допустимая величина прогиба. |
Переопределяет метод предка MbCurve.
|
virtual |
Вычислить шаг параметра.
Вычислить шаг параметра для аппроксимации кривой по углу отклонения касательной. Шаг аппроксимации кривой выбирается таким образом, чтобы угловое отклонение касательной кривой в следующей точке не превышало заданную величину ang.
[in] | t | - Параметр, определяющий точку на кривой, в которой надо вычислить шаг. |
[in] | ang | - Максимально допустимый угол отклонения касательной. |
Переопределяет метод предка MbCurve.
|
virtual |
Вычислить метрическую длину кривой.
Вычислить метрическую длину кривой и записать ее в переменную length.
[in,out] | length | - Вычисленная длина кривой. |
Замещает MbCurve.
|
virtual |
Вычислить метрическую длину кривой.
Если длина кривой уже была вычислена и запомнена в объекте, эта функция возвращает готовый результат, не выполняя повторных вычислений. Иначе длина вычисляется с помощью функции CalculateMetricLength().
Замещает MbCurve.
|
virtual |
Вычислить метрическую длину кривой.
Длина кривой вычисляется неточно, на основе аппроксимации ломаной. Если нужна более точно вычисленная длина кривой, надо пользоваться функцией CalculateMetricLength().
Переопределяет метод предка MbCurve.
|
virtual |
Построить NURBS копию кривой.
Строит NURBS кривую, аппроксимирующую заданную в диапазоне параметров [t1, t2] с заданным направлением. По возможности, строит точную кривую, возможно с кратными узлами. Количество узлов для NURBS определяется в зависимости от кривой.
[in,out] | nurbs | - Построенная NURBS кривая. |
[in] | t1 | - Параметр, соответствующий началу аппроксимируемой части кривой. |
[in] | t2 | - Параметр, соответствующий концу аппроксимируемой части кривой. |
[in] | sense | - Совпадает ли направление возрастания параметра вдоль NURBS кривой с направлением на исходной кривой. sense > 0 - направление совпадает. |
[in] | nInfo | - Параметры преобразования кривой в NURBS. |
Замещает MbCurve.
|
virtual |
Построить усеченную кривую.
Строит усеченную кривую, начало которой соответствует точке с параметром t1 и конец - точке с параметром t2. Можно изменить направление полученной кривой относительно исходной с помощью параметра sense. Если кривая замкнута, можно получить усеченную кривую, проходящую через начало кривой.
В случае замкнутой кривой (или для дуги - исключение) три параметра sense, t1 и t2 однозначно определяют результат. В случае разомкнутой кривой параметр sense и параметрами усечения должны соответствовать друг другу:
1) если sense == 1, то t1 < t2,
2) если sense == -1, то t1 > t2.
Если есть несоответствие между sense и параметрами усечения, то приоритетным параметром считается sense. Если параметры t1 и t2 равны и кривая замкнута, в результате должны получить замкнутую кривую.
[in] | t1 | - Параметр, соответствующий началу усеченной кривой. |
[in] | t2 | - Параметр, соответствующий концу усеченной кривой. |
[in] | sense | - Направление усеченной кривой относительно исходной. sense = 1 - направление кривой сохраняется. sense = -1 - направление кривой меняется на обратное. |
Замещает MbCurve.
Удалить часть кривой.
Удалить часть кривой между параметрами t1 и t2. Если после удаления кривая распалась на две части, то исходный объект соответствует начальной части кривой, а в параметре part2 содержится конечная часть кривой. Если осталась односвязной, то изменяется только исходный объект.
[in] | t1 | - Начальный параметр усечения. |
[in] | t2 | - Конечный параметр усечения. |
[in,out] | part2 | - Конечная часть кривой после удаления, если исходная кривая распалась на части. Может являться единственной частью кривой после удаления, \ если не смогли изменить саму кривую (например, для прямой MbLine), в этом случае возвращаемый результат dp_Degenerated. |
Замещает MbCurve.
Оставить часть кривой.
Оставить часть кривой между параметрами t1 и t2.
В случае успеха операции возвращаемое значение равно dp_Changed и кривая удовлетворяет следующим условиям:
[in] | t1 | - Начальный параметр усечения. |
[in] | t2 | - Конечный параметр усечения. |
[in,out] | part2 | - Может заполниться результатом усечения, если не смогли изменить саму кривую. В этом случае возвращаемый результат dp_Degenerated. Иначе = NULL. |
Замещает MbCurve.