C3D Toolkit
Kernel - 112706, Vision - 2.6.3.0
|
Прямая в трехмерном пространстве. Подробнее...
#include <cur_line3d.h>
Открытые члены | |
virtual MbeSpaceType | IsA () const |
Получить тип объекта. | |
virtual MbSpaceItem & | Duplicate (MbRegDuplicate *=c3d_null) const |
Создать копию объекта. Подробнее... | |
virtual bool | IsSame (const MbSpaceItem &other, double accuracy=LENGTH_EPSILON) const |
Определить, являются ли объекты равными. Подробнее... | |
virtual bool | SetEqual (const MbSpaceItem &) |
Сделать объекты равным, если они подобны. Подробнее... | |
virtual void | Transform (const MbMatrix3D &, MbRegTransform *=c3d_null) |
Преобразовать объект согласно матрице. Подробнее... | |
virtual void | Move (const MbVector3D &, MbRegTransform *=c3d_null) |
Сдвинуть объект вдоль вектора. Подробнее... | |
virtual void | Rotate (const MbAxis3D &, double angle, MbRegTransform *=c3d_null) |
Повернуть объект вокруг оси на заданный угол. Подробнее... | |
virtual double | DistanceToPoint (const MbCartPoint3D &) const |
Определить расстояние до точки. Подробнее... | |
virtual void | AddYourGabaritTo (MbCube &) const |
Расширить присланный габаритный куб так, чтобы он включал в себя данный объект. Подробнее... | |
virtual void | GetProperties (MbProperties &) |
Выдать свойства объекта. Подробнее... | |
virtual void | SetProperties (const MbProperties &) |
Изменить свойства объекта. Подробнее... | |
virtual void | GetBasisPoints (MbControlData3D &) const |
Выдать контрольные точки объекта. | |
virtual void | SetBasisPoints (const MbControlData3D &) |
Изменить объект по контрольным точкам. | |
virtual double | GetTMax () const |
Вернуть максимальное значение параметра. | |
virtual double | GetTMin () const |
Вернуть минимальное значение параметра. | |
virtual bool | IsClosed () const |
Определить, является ли кривая замкнутой. Подробнее... | |
virtual void | PointOn (double &t, MbCartPoint3D &) const |
Вычислить точку на кривой. Подробнее... | |
virtual void | FirstDer (double &t, MbVector3D &) const |
Вычислить первую производную. | |
virtual void | SecondDer (double &t, MbVector3D &) const |
Вычислить вторую производную. | |
virtual void | ThirdDer (double &t, MbVector3D &) const |
Вычислить третью производную. | |
virtual void | _PointOn (double t, MbCartPoint3D &) const |
Вычислить точку на кривой и её продолжении. Подробнее... | |
virtual void | _FirstDer (double t, MbVector3D &) const |
Вычислить первую производную на кривой и её продолжении. | |
virtual void | _SecondDer (double t, MbVector3D &) const |
Вычислить вторую производную на кривой и её продолжении. | |
virtual void | _ThirdDer (double t, MbVector3D &) const |
Вычислить третью производную на кривой и её продолжении. | |
virtual void | Explore (double &t, bool ext, MbCartPoint3D &pnt, MbVector3D &fir, MbVector3D *sec, MbVector3D *thir) const |
Вычислить значения точки и производных для заданного параметра. Подробнее... | |
virtual MbNurbs3D * | NurbsCurve (const MbCurveIntoNurbsInfo &) const |
Построить NURBS копию кривой. Подробнее... | |
virtual MbCurve3D * | NurbsCurve (const MbNurbsParameters &) const |
Построить NURBS копию кривой. Подробнее... | |
virtual MbCurve3D * | Trimmed (double t1, double t2, int sense) const |
Построить усеченную кривую. Подробнее... | |
virtual bool | DistanceAlong (double &t, double len, int curveDir, double eps=Math::metricPrecision, VERSION version=Math::DefaultMathVersion()) const |
Сдвинуть параметр вдоль кривой. Подробнее... | |
virtual void | Inverse (MbRegTransform *iReg=c3d_null) |
Изменить направление кривой. | |
virtual double | GetMetricLength () const |
Вычислить метрическую длину кривой. | |
virtual double | Step (double t, double sag) const |
Вычислить шаг параметра. Подробнее... | |
virtual double | DeviationStep (double t, double angle) const |
Вычислить шаг параметра. Подробнее... | |
virtual double | MetricStep (double t, double length) const |
Вычислить шаг параметра. Подробнее... | |
virtual void | CalculateGabarit (MbCube &) const |
Вычислить габарит кривой. | |
virtual void | CalculateLocalGabarit (const MbMatrix3D &into, MbCube &) const |
Рассчитать габарит в локальной системы координат. Подробнее... | |
virtual bool | NearPointProjection (const MbCartPoint3D &, double &t, bool ext, MbRect1D *tRange=c3d_null) const |
Найти проекцию точки на кривую. Подробнее... | |
virtual void | GetCentre (MbCartPoint3D &c) const |
Выдать центр кривой. | |
virtual void | GetWeightCentre (MbCartPoint3D &wc) const |
Выдать центр тяжести кривой. | |
virtual bool | IsStraight (bool ignoreParams=false) const |
Является ли линия прямолинейной? | |
virtual bool | IsPlanar (double accuracy=METRIC_EPSILON) const |
Является ли кривая плоской? | |
virtual double | GetParamToUnit () const |
Дать приращение параметра, осреднённо соответствующее единичной длине в пространстве. | |
virtual double | GetParamToUnit (double t) const |
Дать приращение параметра, соответствующее единичной длине в пространстве. | |
virtual MbCurve * | GetMap (const MbMatrix3D &, MbRect1D *pRgn=c3d_null, VERSION version=Math::DefaultMathVersion(), bool *coincParams=c3d_null) const |
Построить плоскую проекцию некоторой части пространственной кривой. Подробнее... | |
virtual MbCurve * | GetMapPsp (const MbMatrix3D &, double zNear, MbRect1D *pRgn=c3d_null) const |
Построить плоскую проекцию некоторой части пространственной кривой. Подробнее... | |
virtual void | CalculatePolygon (const MbStepData &stepData, MbPolygon3D &) const |
Рассчитать массив точек для отрисовки. Подробнее... | |
virtual bool | IsSimilarToCurve (const MbCurve3D &curve, double precision=METRIC_PRECISION) const |
Подобные ли кривые для объединения (слива). | |
![]() | |
virtual | ~MbCurve3D () |
Деструктор. | |
VISITING_CLASS (MbCurve3D) | |
Реализация функции, инициирующей посещение объекта. | |
size_t | size () const |
Размер кривой трактуемой как в виде вектора кривых. | |
const MbCurve3D * | operator[] (size_t) const |
Оператор доступа. | |
virtual MbeSpaceType | Type () const |
Получить групповой тип объекта. | |
virtual MbeSpaceType | Family () const |
Получить семейство объекта. | |
virtual MbCurve3D & | InverseDuplicate () const |
Сделать копию с измененным направлением. | |
virtual void | Refresh () |
Перевести все временные (mutable) данные объекта в неопределённое (исходное) состояние. | |
virtual void | PrepareIntegralData (const bool forced) const |
Рассчитать временные (mutable) данные объекта. Подробнее... | |
virtual bool | IsSpaceSame (const MbSpaceItem &item, double eps=METRIC_REGION) const |
Являются ли объекты идентичными в пространстве. | |
virtual double | GetPeriod () const |
Вернуть период. Если кривая непериодическая, то 0. | |
virtual bool | IsPeriodic () const |
Определить, является ли замкнутая кривая периодической. | |
bool | IsTouch (double eps=Math::metricPrecision) const |
Определить, замкнута ли кривая фактически независимо от гладкости замыкания. Подробнее... | |
virtual void | Tangent (double &t, MbVector3D &) const |
Вычислить касательный вектор (нормализованный). | |
virtual void | Normal (double &t, MbVector3D &) const |
Вычислить вектор главной нормали. | |
virtual void | BNormal (double &t, MbVector3D &) const |
Вычислить вектор бинормали. | |
virtual void | _Tangent (double t, MbVector3D &) const |
Вычислить касательный вектор (нормализованный) на кривой и её продолжении. | |
virtual void | _Normal (double t, MbVector3D &) const |
Вычислить вектор главной нормали (нормализованный) на кривой и её продолжении. | |
virtual void | _BNormal (double t, MbVector3D &) const |
Вычислить вектор бинормали (нормализованный) на кривой и её продолжении. | |
virtual void | FastApproxExplore (double &t, MbCartPoint3D &pnt, MbVector3D &fir, MbVector3D *sec) const |
Вычислить точку и производные на кривой. Подробнее... | |
double | CurveStep (const double &t, const MbStepData &stepData) const |
Вычислить шаг параметра. Подробнее... | |
virtual void | ResetTCalc () const |
Сбросить текущее значение параметра. | |
virtual const MbCurve3D & | GetBasisCurve () const |
Вернуть базовую кривую, если есть, или себя | |
virtual MbCurve3D & | SetBasisCurve () |
Вернуть базовую кривую, если есть, или себя | |
virtual double | Curvature (double t) const |
Вычислить кривизну кривой. | |
virtual void | ThirdMetricDer (double t, MbVector3D &vect) const |
Вычислить вторую производную касательной. | |
MbNurbs3D * | NurbsCurve (const MbCurveIntoNurbsInfo *nInfo=c3d_null) const |
Построить NURBS копию кривой. Подробнее... | |
virtual size_t | NurbsCurveMinPoints (const MbNurbsParameters &tParameters, double epsilon=c3d::METRIC_DELTA) const |
Определить число узлов NURBS кривой, нужное для аппроксимации кривой с заданной точностью. Подробнее... | |
double | GetParamLength () const |
Вернуть параметрическую длину кривой. | |
virtual double | CalculateMetricLength () const |
Вычислить метрическую длину кривой. | |
virtual double | CalculateLength (double t1, double t2) const |
Вычислить метрическую длину кривой. Подробнее... | |
virtual double | GetLengthEvaluation () const |
Вычислить метрическую длину кривой. Подробнее... | |
virtual bool | IsDegenerate (double eps=METRIC_PRECISION) const |
Проверить вырожденная ли кривая. | |
virtual bool | IsSmoothConnected (double angleEps) const |
Являются ли стыки контура/кривой гладкими? | |
virtual void | ChangeCarrier (const MbSpaceItem &item, MbSpaceItem &init) |
Изменить носитель. Для поверхностных кривых. | |
virtual bool | ChangeCarrierBorne (const MbSpaceItem &item, MbSpaceItem &init, const MbMatrix &matr) |
Изменить носитель. Подробнее... | |
virtual MbProperty & | CreateProperty (MbePrompt name) const |
Создать собственное свойство с заданием его имени. | |
virtual void | CalculateMesh (const MbStepData &stepData, const MbFormNote ¬e, MbMesh &mesh) const |
Построить полигональную копию mesh. Подробнее... | |
DEPRECATE_DECLARE void | CalculatePolygon (double, MbPolygon3D &) const |
virtual MbeNewtonResult | PointProjectionNewton (const MbCartPoint3D &p, size_t iterLimit, double &t, bool ext) const |
Найти проекцию точки на кривую. Подробнее... | |
virtual MbeNewtonResult | IsoclinalNewton (const MbVector3D &dir, size_t iterLimit, double &t) const |
Найти изоклины кривой. Подробнее... | |
virtual void | GetIsoclinal (const MbVector3D &nor, SArray< double > &tIso) const |
Найти все изоклины кривой. Подробнее... | |
virtual double | DistanceToCurve (const MbCurve3D &curve2, double &t1, double &t2) const |
Вычислить ближайшее расстояние до кривой. | |
virtual double | DistanceToPlace (const MbPlacement3D &place, double &t0, double &angle) const |
Ближайшая точка кривой к плейсменту. | |
virtual double | GetRadius () const |
Дать физический радиус кривой или ноль, если это невозможно. Подробнее... | |
virtual bool | GetCircleAxis (MbAxis3D &axis) const |
Дать ось окружности, геометрически совпадающей с данной кривой Подробнее... | |
virtual MbCurve * | GetProjection (const MbPlacement3D &place, VERSION version) const |
Построить плоскую проекцию пространственной кривой на плоскость. Подробнее... | |
virtual size_t | GetCount () const |
Определить количество разбиений для прохода в операциях. | |
void | GetPointsByEvenParamDelta (size_t n, std::vector< MbCartPoint3D > &pnts) const |
Выдать n точек кривой с равными интервалами по параметру. | |
void | GetPointsByEvenParamDelta (size_t n, SArray< MbCartPoint3D > &pnts) const |
virtual void | GetPointsByEvenLengthDelta (size_t n, std::vector< MbCartPoint3D > &pnts) const |
Выдать n точек кривой с равными интервалами по длине дуги. | |
void | GetPointsByEvenLengthDelta (size_t n, SArray< MbCartPoint3D > &pnts) const |
virtual bool | IsContinuousDerivative (bool &contLength, bool &contDirect, c3d::DoubleVector *params=c3d_null, double epsilon=EPSILON) const |
Непрерывна ли первая производная кривой по длине и направлению? Отсутствуют ли разрывы первой производной кривой по длине и направлению? . Подробнее... | |
virtual bool | SetContinuousDerivativeLength (VERSION version, double epsilon=EPSILON) |
Устранить разрывы первых производных по длине. Устранить разрывы производных по длине. . Подробнее... | |
bool | IsSpaceNear (const MbCurve3D &curve, double eps, bool ext, double devSag=5.0 *Math::deviateSag) const |
Определить, близки ли две кривые метрически. Подробнее... | |
bool | IsPointOn (const MbCartPoint3D &, double eps=METRIC_PRECISION) const |
Проверить, лежит ли точка на кривой. | |
double | GetTMid () const |
Вернуть середину параметрического диапазона кривой. | |
double | GetTRange () const |
Вернуть параметрическую длину кривой. | |
MbCartPoint3D | PointOn (double &t) const |
Вычислить точку на кривой. | |
MbVector3D | FirstDer (double &t) const |
Вычислить первую производную. | |
MbVector3D | SecondDer (double &t) const |
Вычислить вторую производную. | |
MbVector3D | ThirdDer (double &t) const |
Вычислить третью производную. | |
virtual void | GetCurvatureSpecialPoints (std::vector< c3d::DoublePair > &points) const |
Найти все особые точки функции кривизны кривой. Подробнее... | |
virtual void | GetAnalyticalFunctionsBounds (std::vector< double > ¶ms) const |
Получить границы участков кривой, которые описываются одной аналитической функцией. Подробнее... | |
MbCartPoint3D | GetLimitPoint (ptrdiff_t number) const |
Вычислить граничную точку. Подробнее... | |
void | GetLimitPoint (ptrdiff_t number, MbCartPoint3D &pnt) const |
Вычислить граничную точку. Подробнее... | |
MbVector3D | GetLimitTangent (ptrdiff_t number) const |
Вычислить касательный вектор в граничной точке. Подробнее... | |
void | GetLimitTangent (ptrdiff_t number, MbVector3D &v) const |
Вычислить касательный вектор в граничной точке. Подробнее... | |
bool | AreLimitPointsEqual () const |
Равны ли граничные точки. Подробнее... | |
bool | SetInParamRegion (double &t) const |
Загнать в параметрическую область. | |
bool | IsParamOn (double t, double eps) const |
Проверить, что параметр в диапазоне кривой. | |
bool | IsInverseSame (const MbCurve3D &curve, double accuracy=LENGTH_EPSILON) const |
Являются ли кривая инверсно такой же? | |
virtual bool | IsReparamSame (const MbCurve3D &curve, double &factor) const |
Определить, является ли кривая репараметризованно такой же. Подробнее... | |
double | GetTEpsilon () const |
Дать минимально различимую величину параметра. | |
double | GetTEpsilon (double t) const |
Дать минимально различимую величину параметра. | |
double | GetTRegion () const |
Дать минимально различимую величину параметра. | |
double | GetTRegion (double t) const |
Дать минимально различимую величину параметра. | |
virtual const MbCurve3D & | GetSubstrate () const |
Выдать подложку или себя. | |
virtual MbCurve3D & | SetSubstrate () |
Выдать подложку или себя. | |
virtual int | SubstrateCurveDirection () const |
Направление подложки относительно кривой или наоборот. | |
virtual void | SubstrateToCurve (double &) const |
Преобразовать параметр подложки в параметр кривой. | |
virtual void | CurveToSubstrate (double &) const |
Преобразовать параметр кривой в параметр подложки. | |
virtual bool | GetPlaneCurve (MbCurve *&curve2d, MbPlacement3D &place, bool saveParams, PlanarCheckParams params=PlanarCheckParams()) const |
Дать плоскую кривую и плейсмент, если пространственная кривая плоская. Подробнее... | |
bool | GetPlaneCurve (SPtr< MbCurve > &curve2d, MbPlacement3D &place, bool saveParams, PlanarCheckParams params=PlanarCheckParams()) const |
Дать плоскую кривую и плейсмент, если пространственная кривая плоская. Подробнее... | |
bool | GetPlaneCurve (SPtr< const MbCurve > &curve2d, MbPlacement3D &place, bool saveParams, PlanarCheckParams params=PlanarCheckParams()) const |
Дать плоскую кривую и плейсмент, если пространственная кривая плоская. Подробнее... | |
virtual bool | GetSurfaceCurve (MbCurve *&curve2d, MbSurface *&surface, VERSION version=Math::DefaultMathVersion()) const |
Дать поверхностную кривую, если пространственная кривая поверхностная (после использования вызывать DeleteItem на аргументы). | |
bool | GetSurfaceCurve (SPtr< MbCurve > &curve2d, SPtr< MbSurface > &surface, VERSION version=Math::DefaultMathVersion()) const |
Дать поверхностную кривую, если пространственная кривая поверхностная (после использования вызывать DeleteItem на аргументы). | |
bool | GetSurfaceCurve (SPtr< const MbCurve > &curve2d, SPtr< const MbSurface > &surface, VERSION version=Math::DefaultMathVersion()) const |
Дать поверхностную кривую, если пространственная кривая поверхностная (после использования вызывать DeleteItem на аргументы). | |
virtual bool | GetPlacement (MbPlacement3D &place, PlanarCheckParams params=PlanarCheckParams()) const |
Заполнить плейсемент, если кривая плоская. | |
virtual bool | IsShift (const MbSpaceItem &, MbVector3D &, bool &isSame, double accuracy=LENGTH_EPSILON) const |
Является ли объект смещением. | |
void | CalculateGrid (double radius, const MbStepData &stepData, MbMesh &mesh) const |
Аппроксимация кривой плоскогранной трубкой радиуса radius. | |
SimpleName | GetCurveName () const |
Имя кривой. | |
void | SetCurveName (SimpleName newName) |
Установить имя кривой. | |
![]() | |
virtual | ~MbSpaceItem () |
Деструктор. | |
void | PrepareWrite () const |
Регистрация объекта. Подробнее... | |
virtual MbeRefType | RefType () const |
Получить регистрационный тип (для копирования, дублирования). | |
virtual bool | IsFamilyRegistrable () const |
Принадлежит ли объект к регистрируемому семейству. | |
virtual bool | IsSimilar (const MbSpaceItem &item) const |
Определить, являются ли объекты подобными. Подробнее... | |
void | CalculateWire (const MbStepData &stepData, MbMesh &mesh) const |
void | CalculateWire (double sag, MbMesh &mesh) const |
virtual void | GetBasisItems (RPArray< MbSpaceItem > &) |
Выдать базовые объекты в присланный контейнер. | |
![]() | |
TapeBase (RegistrableRec regs=noRegistrable) | |
Конструктор. | |
TapeBase (const TapeBase &) | |
Конструктор копирования | |
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 |
Получить имя класса. | |
![]() | |
MbRefItem () | |
Конструктор без параметров. | |
refcount_t | GetUseCount () const |
Выдать количество ссылок (выдать количество владельцев объекта). | |
refcount_t | AddRef () const |
Увеличить количество ссылок на единицу. | |
refcount_t | DecRef () const |
Уменьшить количество ссылок на единицу. | |
refcount_t | Release () const |
Уменьшить количество ссылок на единицу и, если количество ссылок стало равным нулю, удалить себя. | |
![]() | |
void | Lock () const |
Включить блокировку (блокировка происходит только при наличии параллельности). | |
void | Unlock () const |
Снять блокировку, если она была установлена. | |
CommonRecursiveMutex * | GetLock () const |
Выдать указатель на объект мьютекса. Возращает c3d_null, если параллельности нет. Для использования в ScopedLock. | |
Дополнительные унаследованные члены | |
![]() | |
MbCurve3D () | |
Конструктор по умолчанию. | |
MbCurve3D (const MbCurve3D &other) | |
Конструктор копирования. | |
![]() | |
MbSpaceItem () | |
Конструктор без параметров. | |
![]() | |
SimpleName | name |
Имя кривой. | |
Прямая в трехмерном пространстве.
Прямая линия ведёт себя как бесконечный объект, хотя в своих данных имеет граничные значения параметра tmin и tmax. В отличие от других кривых в методах вычисления радиуса-вектора и его производных прямая не корректирует параметр t при его выходе за предельные значения tmin и tmax.
Радиус-вектор кривой в методе PointOn(double&t,MbCartPoint3D&r) описывается векторной функцией
r(t) = origin + (t direction).
|
virtual |
Создать копию объекта.
Создать копию объекта с использованием регистратора. Регистратор используется для предотвращения многократного копирования объекта. Если объект содержит ссылки на другие объекты, то вложенные объекты так же копируются. Допустимо не передавать регистратор в функцию. Тогда будет создана новая копия объекта. При копировании одиночного объекта или набора не связанных между собой объектов допустимо не использовать регистратор. Регистратор необходимо использовать, если надо последовательно копировать несколько взаимосвязанных объектов. Возможно, что связь объектов обусловлена наличием в них ссылок на общие объекты. Тогда, при копировании без использования регистратора, можно получить набор копий, содержащих ссылки на разные копии одного и того же вложенного объекта, что ведет к потере связи между копиями.
[in] | iReg | - Регистратор. |
Замещает MbCurve3D.
|
virtual |
Определить, являются ли объекты равными.
Равными считаются однотипные объекты, все данные которых одинаковы (равны).
[in] | item | - Объект для сравнения. |
[in] | accuracy | - Точность сравнения. |
Замещает MbCurve3D.
|
virtual |
Сделать объекты равным, если они подобны.
Равными можно сделать только подобные объекты. Подобный объект приравнивается присланному путем изменения численных данных.
[in] | item | - Объект для инициализации. |
Замещает MbCurve3D.
|
virtual |
Преобразовать объект согласно матрице.
Преобразовать исходный объект согласно матрице c использованием регистратора. Если объект содержит ссылки на другие геометрические объекты, то вложенные объекты так же преобразуются согласно матрице. Регистратор служит для предотвращения многократного преобразования объекта. Допустимо использовать функцию без регистратора, если надо преобразовать одиночный объект. Если надо преобразовать набор взаимосвязанных объектов, необходимо использовать регистратор для предотвращения повторного преобразования вложенных объектов, поскольку не исключена ситуация, когда несколько объектов из набора содержат ссылки на один или несколько общих объектов, подлежащих трансформации.
[in] | matr | - Матрица преобразования. |
[in] | iReg | - Регистратор. |
Замещает MbCurve3D.
|
virtual |
Сдвинуть объект вдоль вектора.
Сдвинуть геометрический объект вдоль вектора с использованием регистратора. Если объект содержит ссылки на другие геометрические объекты, то к вложенным объектам так же применяется операция сдвига. Регистратор служит для предотвращения многократного преобразования объекта. Допустимо использовать функцию без регистратора, если надо преобразовать одиночный объект. Если надо преобразовать набор взаимосвязанных объектов, необходимо использовать регистратор для предотвращения повторного преобразования вложенных объектов, поскольку не исключена ситуация, когда несколько объектов из набора содержат ссылки на один или несколько общих объектов, подлежащих сдвигу.
[in] | to | - Вектор сдвига. |
[in] | iReg | - Регистратор. |
Замещает MbCurve3D.
|
virtual |
Повернуть объект вокруг оси на заданный угол.
Повернуть объект вокруг оси на заданный угол с использованием регистратора. Если объект содержит ссылки на другие геометрические объекты, то к вложенным объектам так же применяется операция поворота. Регистратор служит для предотвращения многократного преобразования объекта. Допустимо использовать функцию без регистратора, если надо преобразовать одиночный объект. Если надо преобразовать набор взаимосвязанных объектов, необходимо использовать регистратор для предотвращения повторного преобразования вложенных объектов, поскольку не исключена ситуация, когда несколько объектов из набора содержат ссылки на один или несколько общих объектов, подлежащих повороту.
[in] | axis | - Ось поворота. |
[in] | angle | - Угол поворота. |
[in] | iReg | - Регистратор. |
Замещает MbCurve3D.
|
virtual |
Определить расстояние до точки.
Определить расстояние до точки.
[in] | point | - Точка. |
Переопределяет метод предка MbCurve3D.
|
virtual |
Расширить присланный габаритный куб так, чтобы он включал в себя данный объект.
Расширить присланный габаритный куб так, чтобы он включал в себя данный объект.
[in,out] | cube | - Принимающий габаритный куб с информацией по габаритам. |
Переопределяет метод предка MbCurve3D.
|
virtual |
Выдать свойства объекта.
Выдать внутренние данные (свойства) объекта для их просмотра и модификации.
[in] | properties | - Контейнер для внутренних данных объекта. |
Замещает MbCurve3D.
|
virtual |
Изменить свойства объекта.
Изменение внутренних данных (свойств) объекта выполняется копированием соответствующих значений из присланного объекта.
[in] | properties | - Контейнер для внутренних данных объекта. |
Замещает MbCurve3D.
|
virtual |
Определить, является ли кривая замкнутой.
Определить, является ли кривая замкнутой.
Замкнутой считается кривая, если она циклична:
Замещает MbCurve3D.
|
virtual |
Вычислить точку на кривой.
Скорректировать параметры при выходе их за пределы области определения и вычислить точку на кривой.
[in] | t | - Параметр curve. |
[out] | p | - Вычисленная точка на кривой. |
Замещает MbCurve3D.
|
virtual |
Вычислить точку на кривой и её продолжении.
Вычислить точку на кривой в том числе и за пределами области определения параметрa.
[in] | t | - Параметр curve. |
[out] | p | - Вычисленная точка на кривой. |
Переопределяет метод предка MbCurve3D.
|
virtual |
Вычислить значения точки и производных для заданного параметра.
Значения точки и производных вычисляются в пределах области определения и на расширенной кривой.
[in] | t | - Параметр. |
[in] | ext | - В пределах области определения (false), на расширенной кривой (true). |
[out] | pnt | - Точка. |
[out] | fir | - Производная. |
[out] | sec | - Вторая производная по t, если не ноль. |
[out] | thir | - Третья производная по t, если не ноль. |
Переопределяет метод предка MbCurve3D.
|
virtual |
Построить NURBS копию кривой.
Строит NURBS кривую, аппроксимирующую заданную в диапазоне параметров [t1, t2] с заданным направлением. По возможности, строит точную кривую, возможно с кратными узлами. Количеством узлов для NURBS определяется в зависимости от кривой.
[in] | t1 | - Параметр, соответствующий началу аппроксимируемой части кривой. |
[in] | t2 | - Параметр, соответствующий концу аппроксимируемой части кривой. |
[in] | sense | - Совпадает ли направление возрастания параметра вдоль NURBS кривой с направлением на исходной кривой. sense > 0 - направление совпадает. |
[in] | nInfo | - Параметры преобразования кривой в NURBS. |
Переопределяет метод предка MbCurve3D.
|
virtual |
Построить NURBS копию кривой.
Строит NURBS кривую, аппроксимирующую исходную с заданными параметрами. В параметрах можно задать степень и количество узлов сплайна, диапазон изменения параметра кривой. Если в параметрах не задан флаг точной аппроксимации, то строит NURBS без кратных узлов.
[in] | tParameters | - Параметры построения NURBS копии кривой. |
Переопределяет метод предка MbCurve3D.
|
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 - направление кривой меняется на обратное. |
Переопределяет метод предка MbCurve3D.
|
virtual |
Сдвинуть параметр вдоль кривой.
Сдвинуть параметр вдоль кривой на заданное расстояние в заданном направлении. Новое значение параметра сохраняется в переменной t. Если кривая не замкнута и длина ее части от точки с параметром t до конца в заданном направлении меньше, чем нужное смещение, то вычисления происходят на продолжении кривой, если можно построить продолжение.
[in,out] | t | - На входе - исходное значение параметра. На выходе - новое значение параметра. |
[in] | len | - Величина смещения вдоль кривой. |
[in] | curveDir | - Направление смещения. Если curveDir - неотрицательно, то смещение направлено в сторону увеличения параметра. Иначе - в сторону уменьшения параметра. |
[in] | eps | - Точность вычислений. |
Переопределяет метод предка MbCurve3D.
|
virtual |
Вычислить шаг параметра.
Вычислить шаг параметра для аппроксимации кривой по величине прогиба кривой. Вычисление шага проходит с учетом радиуса кривизны. Шаг аппроксимации кривой выбирается таким образом, чтобы отклонение кривой от ее полигона не превышало заданную величину прогиба.
[in] | t | - Параметр, определяющий точку на кривой, в которой надо вычислить шаг. |
[in] | sag | - Максимально допустимая величина прогиба. |
Переопределяет метод предка MbCurve3D.
|
virtual |
Вычислить шаг параметра.
Вычислить шаг параметра для аппроксимации кривой по углу отклонения касательной. Шаг аппроксимации кривой выбирается таким образом, чтобы угловое отклонение касательной кривой в следующей точке не превышало заданную величину ang.
[in] | t | - Параметр, определяющий точку на кривой, в которой надо вычислить шаг. |
[in] | ang | - Максимально допустимый угол отклонения касательной. |
Переопределяет метод предка MbCurve3D.
|
virtual |
Вычислить шаг параметра.
Вычислить шаг параметра для аппроксимации кривой по заданной метрической длине шага вдоль кривой.
[in] | t | - Параметр, определяющий точку на кривой, в которой надо вычислить шаг. |
[in] | len | - Максимальная метрическая длина шага вдоль кривой. |
Переопределяет метод предка MbCurve3D.
|
virtual |
Рассчитать габарит в локальной системы координат.
Для получения габарита объекта относительно локальной системы координат, присланный куб делается пустым. Затем вычисляются габариты объекта в локальной системе координат и сохраняются в кубе cube.
[in] | into | - Матрица перехода от текущей для объекта системы координат к локальной системе координат. |
[in,out] | cube | - Куб с информацией по габаритам. |
Переопределяет метод предка MbCurve3D.
|
virtual |
Найти проекцию точки на кривую.
Найти ближайшую проекцию точки на кривую или ее продолжение по заданному начальному приближению. Если задан диапазон изменения параметра tRange - то надо найти проекцию в заданном диапазоне. Диапазон параметра может выходить за область определения параметра кривой. Используется метод Ньютона.
[in] | pnt | - Заданная точка. |
[in,out] | t | - На входе - начальное приближение, на выходе - параметр кривой, соответствующий ближайшей проекции. |
[in] | ext | - Флаг, определяющий, искать ли проекцию на продолжении кривой (если true, то искать). |
[in] | tRange | - Диапазон изменения параметра, в котором надо найти решение. |
Переопределяет метод предка MbCurve3D.
|
virtual |
Построить плоскую проекцию некоторой части пространственной кривой.
Построить плоскую проекцию некоторой части пространственной кривой.
[in] | into | - Матрица преобразования из глобальной системы координат в видовую плоскость. |
[in] | pRegion | - Отображаемая часть кривой (paramRegion.x = t1, paramRegion.y = t2), по умолчанию - вся кривая. |
[in] | version | - Версия, по умолчанию - последняя. |
[in,out] | coincParams | - Флаг совпадения параметризации исходной кривой и ее проекции если coincParams != c3d_null, функция попытается сделать проекцию с совпадающей параметризацией если в результате *coincParams = true, у проекции параметризация совпадает с параметрицацией исходной кривой. |
Переопределяет метод предка MbCurve3D.
|
virtual |
Построить плоскую проекцию некоторой части пространственной кривой.
Построить плоскую проекцию некоторой части пространственной кривой для перспективного отображения.
[in] | into | - Матрица преобразования из глобальной системы координат в видовую плоскость. |
[in] | zNear | - Параметр перспективного отображения, равный расстоянию точки наблюдения от видовой плоскости (отрицательный) |
[in] | pRegion | - Отображаемая часть кривой (paramRegion.x = t1, paramRegion.y = t2), по умолчанию - вся кривая. |
Переопределяет метод предка MbCurve3D.
|
virtual |
Рассчитать массив точек для отрисовки.
Выдать массив отрисовочных точек с заданной стрелкой прогиба. Если кривая представляет собой контур, то узловые точки контура дублируются.
[in] | stepData | - Данные для вычисления шага. |
[in,out] | polygon | - Полигон рассчитанных точек на кривой. |
Переопределяет метод предка MbCurve3D.