C3D Toolkit
Kernel - 112346, Vision - 2.6.2.8
|
Кривая в трехмерном пространстве. Подробнее...
#include <curve3d.h>
Открытые члены | |
virtual | ~MbCurve3D () |
Деструктор. | |
VISITING_CLASS (MbCurve3D) | |
Реализация функции, инициирующей посещение объекта. | |
size_t | size () const |
Размер кривой трактуемой как в виде вектора кривых. | |
const MbCurve3D * | operator[] (size_t) const |
Оператор доступа. | |
Общие функции геометрического объекта. | |
virtual MbeSpaceType | IsA () const =0 |
Получить тип объекта. | |
virtual MbeSpaceType | Type () const |
Получить групповой тип объекта. | |
virtual MbeSpaceType | Family () const |
Получить семейство объекта. | |
virtual MbSpaceItem & | Duplicate (MbRegDuplicate *=c3d_null) const =0 |
Создать копию объекта. Подробнее... | |
virtual MbCurve3D & | InverseDuplicate () const |
Сделать копию с измененным направлением. | |
virtual bool | IsSame (const MbSpaceItem &other, double accuracy=LENGTH_EPSILON) const =0 |
Определить, являются ли объекты равными. Подробнее... | |
virtual bool | SetEqual (const MbSpaceItem &)=0 |
Сделать объекты равным, если они подобны. Подробнее... | |
virtual void | Transform (const MbMatrix3D &, MbRegTransform *=c3d_null)=0 |
Преобразовать объект согласно матрице. Подробнее... | |
virtual void | Move (const MbVector3D &, MbRegTransform *=c3d_null)=0 |
Сдвинуть объект вдоль вектора. Подробнее... | |
virtual void | Rotate (const MbAxis3D &, double angle, MbRegTransform *=c3d_null)=0 |
Повернуть объект вокруг оси на заданный угол. Подробнее... | |
virtual double | DistanceToPoint (const MbCartPoint3D &) const |
Определить расстояние до точки. Подробнее... | |
virtual void | AddYourGabaritTo (MbCube &) 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 | GetTMax () const =0 |
Вернуть максимальное значение параметра. | |
virtual double | GetTMin () const =0 |
Вернуть минимальное значение параметра. | |
virtual bool | IsClosed () const =0 |
Определить, является ли кривая замкнутой. Подробнее... | |
virtual double | GetPeriod () const |
Вернуть период. Если кривая непериодическая, то 0. | |
virtual bool | IsPeriodic () const |
Определить, является ли замкнутая кривая периодической. | |
bool | IsTouch (double eps=Math::metricPrecision) const |
Определить, замкнута ли кривая фактически независимо от гладкости замыкания. Подробнее... | |
Функции для работы в области определения кривой\n | |
функции PointOn, FirstDer, SecondDer, ThirdDer,... корректируют параметр при выходе его за пределы области определения параметра. Исключение составляет MbLine3D (прямая). | |
virtual void | PointOn (double &t, MbCartPoint3D &p) const =0 |
Вычислить точку на кривой. Подробнее... | |
virtual void | FirstDer (double &t, MbVector3D &) const =0 |
Вычислить первую производную. | |
virtual void | SecondDer (double &t, MbVector3D &) const =0 |
Вычислить вторую производную. | |
virtual void | ThirdDer (double &t, MbVector3D &) const =0 |
Вычислить третью производную. | |
virtual void | Tangent (double &t, MbVector3D &) const |
Вычислить касательный вектор (нормализованный). | |
virtual void | Normal (double &t, MbVector3D &) const |
Вычислить вектор главной нормали. | |
virtual void | BNormal (double &t, MbVector3D &) const |
Вычислить вектор бинормали. | |
Функции для работы внутри и вне области определения кривой\n | |
функции _PointOn, _FirstDer, _SecondDer, _ThirdDer,... не корректируют параметр при выходе за пределы области определения. | |
virtual void | _PointOn (double t, MbCartPoint3D &p) const |
Вычислить точку на кривой и её продолжении. Подробнее... | |
virtual void | _FirstDer (double t, MbVector3D &) const |
Вычислить первую производную на кривой и её продолжении. | |
virtual void | _SecondDer (double t, MbVector3D &) const |
Вычислить вторую производную на кривой и её продолжении. | |
virtual void | _ThirdDer (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 | Explore (double &t, bool ext, MbCartPoint3D &pnt, MbVector3D &fir, MbVector3D *sec, MbVector3D *thir) const |
Вычислить значения точки и производных для заданного параметра. Подробнее... | |
virtual void | FastApproxExplore (double &t, MbCartPoint3D &pnt, MbVector3D &fir, MbVector3D *sec) const |
Вычислить точку и производные на кривой. Подробнее... | |
Функции движения по кривой | |
virtual double | Step (double t, double sag) const |
Вычислить шаг параметра. Подробнее... | |
virtual double | DeviationStep (double t, double ang) const |
Вычислить шаг параметра. Подробнее... | |
virtual double | MetricStep (double t, double length) const |
Вычислить шаг параметра. Подробнее... | |
double | CurveStep (const double &t, const MbStepData &stepData) const |
Вычислить шаг параметра. Подробнее... | |
Общие функции кривой | |
virtual void | ResetTCalc () const |
Сбросить текущее значение параметра. | |
virtual void | Inverse (MbRegTransform *iReg=c3d_null)=0 |
Изменить направление кривой. | |
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 MbNurbs3D * | NurbsCurve (const MbCurveIntoNurbsInfo &nInfo) const |
Построить NURBS копию кривой. Подробнее... | |
virtual MbCurve3D * | NurbsCurve (const MbNurbsParameters &tParameters) const |
Построить NURBS копию кривой. Подробнее... | |
virtual size_t | NurbsCurveMinPoints (const MbNurbsParameters &tParameters, double epsilon=c3d::METRIC_DELTA) const |
Определить число узлов NURBS кривой, нужное для аппроксимации кривой с заданной точностью. Подробнее... | |
virtual MbCurve3D * | Trimmed (double t1, double t2, int sense) const |
Построить усеченную кривую. Подробнее... | |
double | GetParamLength () const |
Вернуть параметрическую длину кривой. | |
virtual double | GetMetricLength () 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::metricPrecision, VERSION version=Math::DefaultMathVersion()) const |
Сдвинуть параметр вдоль кривой. Подробнее... | |
virtual double | GetLengthEvaluation () const |
Вычислить метрическую длину кривой. Подробнее... | |
virtual void | CalculateGabarit (MbCube &cube) const |
Вычислить габарит кривой. | |
virtual void | CalculateLocalGabarit (const MbMatrix3D &into, MbCube &cube) const |
Рассчитать габарит в локальной системы координат. Подробнее... | |
virtual bool | IsDegenerate (double eps=METRIC_PRECISION) const |
Проверить вырожденная ли кривая. | |
virtual bool | IsStraight (bool ignoreParams=false) const |
Является ли линия прямолинейной? | |
virtual bool | IsPlanar (double accuracy=METRIC_EPSILON) 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 | GetProperties (MbProperties &properties)=0 |
Выдать свойства объекта. Подробнее... | |
virtual void | SetProperties (const MbProperties &properties)=0 |
Изменить свойства объекта. Подробнее... | |
virtual void | CalculateMesh (const MbStepData &stepData, const MbFormNote ¬e, MbMesh &mesh) const |
Построить полигональную копию mesh. Подробнее... | |
virtual void | CalculatePolygon (const MbStepData &stepData, MbPolygon3D &polygon) const |
Рассчитать массив точек для отрисовки. Подробнее... | |
DEPRECATE_DECLARE void | CalculatePolygon (double, MbPolygon3D &) const |
virtual void | GetCentre (MbCartPoint3D &) const |
Выдать центр кривой. | |
virtual void | GetWeightCentre (MbCartPoint3D &) const |
Выдать центр тяжести кривой. | |
virtual MbeNewtonResult | PointProjectionNewton (const MbCartPoint3D &p, size_t iterLimit, double &t, bool ext) const |
Найти проекцию точки на кривую. Подробнее... | |
virtual bool | NearPointProjection (const MbCartPoint3D &pnt, double &t, bool ext, MbRect1D *tRange=c3d_null) 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 * | GetMap (const MbMatrix3D &into, MbRect1D *pRegion=c3d_null, VERSION version=Math::DefaultMathVersion(), bool *coincParams=c3d_null) const |
Построить плоскую проекцию некоторой части пространственной кривой. Подробнее... | |
virtual MbCurve * | GetMapPsp (const MbMatrix3D &into, double zNear, MbRect1D *pRegion=c3d_null) 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 void | GetBasisPoints (MbControlData3D &) const |
Выдать контрольные точки объекта. | |
virtual void | SetBasisPoints (const MbControlData3D &) |
Изменить объект по контрольным точкам. | |
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 |
Определить, является ли кривая репараметризованно такой же. Подробнее... | |
virtual double | GetParamToUnit () const |
Дать приращение параметра, осреднённо соответствующее единичной длине в пространстве. | |
virtual double | GetParamToUnit (double t) 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 |
Дать плоскую кривую и плейсмент, если пространственная кривая плоская (после использования вызывать DeleteItem на двумерную кривую). | |
bool | GetPlaneCurve (SPtr< MbCurve > &curve2d, MbPlacement3D &place, bool saveParams, PlanarCheckParams params=PlanarCheckParams()) const |
Дать плоскую кривую и плейсмент, если пространственная кривая плоская (после использования вызывать DeleteItem на двумерную кривую). | |
bool | GetPlaneCurve (SPtr< const MbCurve > &curve2d, MbPlacement3D &place, bool saveParams, PlanarCheckParams params=PlanarCheckParams()) const |
Дать плоскую кривую и плейсмент, если пространственная кривая плоская (после использования вызывать DeleteItem на двумерную кривую). | |
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 |
Является ли объект смещением. | |
virtual bool | IsSimilarToCurve (const MbCurve3D &other, double precision=METRIC_PRECISION) 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 |
Имя кривой. | |
Кривая в трехмерном пространстве.
Кривая в пространстве представляет собой векторную функцию скалярного параметра, принимающего значения на конечной одномерной области. Координаты точки кривой являются однозначными непрерывными функциями параметра кривой. Кривая представляет собой непрерывное отображение некоторого участка числовой оси в трёхмерное пространство.
Кривые используются для построения поверхностей.
Нормаль к кривой вычисляется с учетом кривизны (второй производной).
Для прямолинейных кривых это вектор нулевой за исключением плоских прямолинейных кривых, где он перпендикулярен нормали плоскости этой кривой.
|
pure virtual |
Создать копию объекта.
Создать копию объекта с использованием регистратора. Регистратор используется для предотвращения многократного копирования объекта. Если объект содержит ссылки на другие объекты, то вложенные объекты так же копируются. Допустимо не передавать регистратор в функцию. Тогда будет создана новая копия объекта. При копировании одиночного объекта или набора не связанных между собой объектов допустимо не использовать регистратор. Регистратор необходимо использовать, если надо последовательно копировать несколько взаимосвязанных объектов. Возможно, что связь объектов обусловлена наличием в них ссылок на общие объекты. Тогда, при копировании без использования регистратора, можно получить набор копий, содержащих ссылки на разные копии одного и того же вложенного объекта, что ведет к потере связи между копиями.
[in] | iReg | - Регистратор. |
Замещает MbSpaceItem.
Замещается в MbNurbs3D, MbSurfaceIntersectionCurve, MbArc3D, MbCubicSpline3D, MbHermit3D, MbConeSpiral, MbSurfaceCurve, MbOffsetCurve3D, MbContourOnSurface, MbBezier3D, MbPolyline3D, MbSpiral, MbContour3D, MbSilhouetteCurve, MbCurveSpiral, MbCrookedSpiral, MbCharacterCurve3D, MbReparamCurve3D, MbBridgeCurve3D, MbLineSegment3D, MbContourOnPlane, MbTrimmedCurve3D, MbPlaneCurve, MbBSpline, MbLine3D и MbPolyCurve3D.
|
pure virtual |
Определить, являются ли объекты равными.
Равными считаются однотипные объекты, все данные которых одинаковы (равны).
[in] | item | - Объект для сравнения. |
[in] | accuracy | - Точность сравнения. |
Замещает MbSpaceItem.
Замещается в MbNurbs3D, MbSurfaceIntersectionCurve, MbArc3D, MbCubicSpline3D, MbHermit3D, MbConeSpiral, MbSurfaceCurve, MbOffsetCurve3D, MbContourOnSurface, MbBezier3D, MbPolyline3D, MbSpiral, MbContour3D, MbSilhouetteCurve, MbCurveSpiral, MbCrookedSpiral, MbCharacterCurve3D, MbReparamCurve3D, MbBridgeCurve3D, MbContourOnPlane, MbLineSegment3D, MbTrimmedCurve3D, MbPlaneCurve, MbBSpline, MbLine3D и MbPolyCurve3D.
|
pure virtual |
Сделать объекты равным, если они подобны.
Равными можно сделать только подобные объекты. Подобный объект приравнивается присланному путем изменения численных данных.
[in] | item | - Объект для инициализации. |
Замещает MbSpaceItem.
Замещается в MbNurbs3D, MbSurfaceIntersectionCurve, MbArc3D, MbCubicSpline3D, MbHermit3D, MbSurfaceCurve, MbOffsetCurve3D, MbContourOnSurface, MbBezier3D, MbPolyline3D, MbSpiral, MbContour3D, MbSilhouetteCurve, MbCurveSpiral, MbCrookedSpiral, MbCharacterCurve3D, MbReparamCurve3D, MbBridgeCurve3D, MbLineSegment3D, MbTrimmedCurve3D, MbPlaneCurve, MbBSpline, MbLine3D и MbPolyCurve3D.
|
pure virtual |
Преобразовать объект согласно матрице.
Преобразовать исходный объект согласно матрице c использованием регистратора. Если объект содержит ссылки на другие геометрические объекты, то вложенные объекты так же преобразуются согласно матрице. Регистратор служит для предотвращения многократного преобразования объекта. Допустимо использовать функцию без регистратора, если надо преобразовать одиночный объект. Если надо преобразовать набор взаимосвязанных объектов, необходимо использовать регистратор для предотвращения повторного преобразования вложенных объектов, поскольку не исключена ситуация, когда несколько объектов из набора содержат ссылки на один или несколько общих объектов, подлежащих трансформации.
[in] | matr | - Матрица преобразования. |
[in] | iReg | - Регистратор. |
Замещает MbSpaceItem.
Замещается в MbNurbs3D, MbSurfaceIntersectionCurve, MbArc3D, MbCubicSpline3D, MbHermit3D, MbSurfaceCurve, MbOffsetCurve3D, MbContourOnSurface, MbBezier3D, MbPolyline3D, MbSpiral, MbContour3D, MbSilhouetteCurve, MbCharacterCurve3D, MbReparamCurve3D, MbBridgeCurve3D, MbLineSegment3D, MbTrimmedCurve3D, MbPlaneCurve, MbBSpline, MbLine3D и MbPolyCurve3D.
|
pure virtual |
Сдвинуть объект вдоль вектора.
Сдвинуть геометрический объект вдоль вектора с использованием регистратора. Если объект содержит ссылки на другие геометрические объекты, то к вложенным объектам так же применяется операция сдвига. Регистратор служит для предотвращения многократного преобразования объекта. Допустимо использовать функцию без регистратора, если надо преобразовать одиночный объект. Если надо преобразовать набор взаимосвязанных объектов, необходимо использовать регистратор для предотвращения повторного преобразования вложенных объектов, поскольку не исключена ситуация, когда несколько объектов из набора содержат ссылки на один или несколько общих объектов, подлежащих сдвигу.
[in] | to | - Вектор сдвига. |
[in] | iReg | - Регистратор. |
Замещает MbSpaceItem.
Замещается в MbNurbs3D, MbSurfaceIntersectionCurve, MbArc3D, MbCubicSpline3D, MbHermit3D, MbSurfaceCurve, MbOffsetCurve3D, MbContourOnSurface, MbBezier3D, MbPolyline3D, MbSpiral, MbContour3D, MbSilhouetteCurve, MbCharacterCurve3D, MbReparamCurve3D, MbBridgeCurve3D, MbLineSegment3D, MbTrimmedCurve3D, MbPlaneCurve, MbBSpline, MbLine3D и MbPolyCurve3D.
|
pure virtual |
Повернуть объект вокруг оси на заданный угол.
Повернуть объект вокруг оси на заданный угол с использованием регистратора. Если объект содержит ссылки на другие геометрические объекты, то к вложенным объектам так же применяется операция поворота. Регистратор служит для предотвращения многократного преобразования объекта. Допустимо использовать функцию без регистратора, если надо преобразовать одиночный объект. Если надо преобразовать набор взаимосвязанных объектов, необходимо использовать регистратор для предотвращения повторного преобразования вложенных объектов, поскольку не исключена ситуация, когда несколько объектов из набора содержат ссылки на один или несколько общих объектов, подлежащих повороту.
[in] | axis | - Ось поворота. |
[in] | angle | - Угол поворота. |
[in] | iReg | - Регистратор. |
Замещает MbSpaceItem.
Замещается в MbNurbs3D, MbSurfaceIntersectionCurve, MbArc3D, MbCubicSpline3D, MbHermit3D, MbSurfaceCurve, MbOffsetCurve3D, MbContourOnSurface, MbBezier3D, MbPolyline3D, MbSpiral, MbContour3D, MbSilhouetteCurve, MbCharacterCurve3D, MbReparamCurve3D, MbBridgeCurve3D, MbLineSegment3D, MbTrimmedCurve3D, MbPlaneCurve, MbBSpline, MbLine3D и MbPolyCurve3D.
|
virtual |
Определить расстояние до точки.
Определить расстояние до точки.
[in] | point | - Точка. |
Замещает MbSpaceItem.
Переопределяется в MbArc3D, MbContourOnSurface, MbPolyline3D, MbContour3D, MbReparamCurve3D, MbPlaneCurve и MbLine3D.
|
virtual |
Расширить присланный габаритный куб так, чтобы он включал в себя данный объект.
Расширить присланный габаритный куб так, чтобы он включал в себя данный объект.
[in,out] | cube | - Принимающий габаритный куб с информацией по габаритам. |
Замещает MbSpaceItem.
Переопределяется в MbSurfaceIntersectionCurve, MbSurfaceCurve, MbOffsetCurve3D, MbContourOnSurface, MbSpiral, MbCharacterCurve3D, MbBridgeCurve3D, MbLine3D и MbPolyCurve3D.
|
virtual |
Рассчитать временные (mutable) данные объекта.
Рассчитать временные данные объекта в зависимости от параметра forced. Если параметр forced равен false, рассчитываются только ещё не насчитанные данные. Если параметр forced равен true, пересчитываются все временные данные объекта. Принудительный перерасчёт.
Переопределяется в MbSurfaceIntersectionCurve, MbSurfaceCurve, MbOffsetCurve3D, MbContourOnSurface, MbSpiral, MbContour3D, MbCharacterCurve3D, MbReparamCurve3D, MbBridgeCurve3D, MbTrimmedCurve3D, MbPlaneCurve и MbPolyCurve3D.
|
inline |
Определить, замкнута ли кривая фактически независимо от гладкости замыкания.
Определить, замкнута ли кривая фактически независимо от гладкости замыкания.
MbNurbs3D* MbCurve3D::NurbsCurve | ( | const MbCurveIntoNurbsInfo * | nInfo = c3d_null | ) | const |
Построить NURBS копию кривой.
Строит NURBS кривую, аппроксимирующую заданную. По возможности, строит точную кривую, возможно с кратными узлами. Количество узлов для NURBS определяется в зависимости от кривой.
[in] | nInfo | - Параметры преобразования кривой в NURBS. |
|
virtual |
Построить NURBS копию кривой.
Строит NURBS кривую, аппроксимирующую заданную в диапазоне параметров [t1, t2] с заданным направлением. По возможности, строит точную кривую, возможно с кратными узлами. Количеством узлов для NURBS определяется в зависимости от кривой.
[in] | t1 | - Параметр, соответствующий началу аппроксимируемой части кривой. |
[in] | t2 | - Параметр, соответствующий концу аппроксимируемой части кривой. |
[in] | sense | - Совпадает ли направление возрастания параметра вдоль NURBS кривой с направлением на исходной кривой. sense > 0 - направление совпадает. |
[in] | nInfo | - Параметры преобразования кривой в NURBS. |
Переопределяется в MbNurbs3D, MbArc3D, MbSurfaceIntersectionCurve, MbCubicSpline3D, MbHermit3D, MbConeSpiral, MbSurfaceCurve, MbContour3D, MbContourOnSurface, MbBezier3D, MbSpiral, MbCharacterCurve3D, MbPolyline3D, MbReparamCurve3D, MbBridgeCurve3D, MbPlaneCurve, MbTrimmedCurve3D, MbLineSegment3D, MbLine3D, MbBSpline и MbPolyCurve3D.
|
virtual |
Определить число узлов NURBS кривой, нужное для аппроксимации кривой с заданной точностью.
Определить число узлов NURBS кривой, нужное для аппроксимации кривой с заданной точностью.
[in] | tParameters | - Параметры построения NURBS копии кривой. |
[in] | epsilon | - Точность аппроксимации. |
|
virtual |
Вычислить метрическую длину кривой.
Длина кривой вычисляется неточно, на основе аппроксимации ломаной. Если нужна более точно вычисленная длина кривой, надо пользоваться функцией CalculateMetricLength().
Переопределяется в MbSurfaceIntersectionCurve, MbArc3D, MbSurfaceCurve, MbContourOnSurface, MbSilhouetteCurve, MbReparamCurve3D, MbSpiral, MbTrimmedCurve3D, MbCharacterCurve3D, MbPlaneCurve, MbLineSegment3D, MbContourOnPlane и MbPolyCurve3D.
|
virtual |
Рассчитать габарит в локальной системы координат.
Для получения габарита объекта относительно локальной системы координат, присланный куб делается пустым. Затем вычисляются габариты объекта в локальной системе координат и сохраняются в кубе cube.
[in] | into | - Матрица перехода от текущей для объекта системы координат к локальной системе координат. |
[in,out] | cube | - Куб с информацией по габаритам. |
Замещает MbSpaceItem.
Переопределяется в MbArc3D, MbContour3D, MbPlaneCurve, MbPolyline3D, MbReparamCurve3D, MbLine3D и MbLineSegment3D.
|
pure virtual |
Выдать свойства объекта.
Выдать внутренние данные (свойства) объекта для их просмотра и модификации.
[in] | properties | - Контейнер для внутренних данных объекта. |
Замещает MbSpaceItem.
Замещается в MbNurbs3D, MbSurfaceIntersectionCurve, MbArc3D, MbCubicSpline3D, MbHermit3D, MbContour3D, MbConeSpiral, MbSurfaceCurve, MbOffsetCurve3D, MbContourOnSurface, MbBezier3D, MbPolyline3D, MbSpiral, MbSilhouetteCurve, MbCurveSpiral, MbCharacterCurve3D, MbCrookedSpiral, MbReparamCurve3D, MbBridgeCurve3D, MbLineSegment3D, MbPlaneCurve, MbTrimmedCurve3D, MbContourOnPlane, MbLine3D, MbBSpline и MbPolyCurve3D.
|
pure virtual |
Изменить свойства объекта.
Изменение внутренних данных (свойств) объекта выполняется копированием соответствующих значений из присланного объекта.
[in] | properties | - Контейнер для внутренних данных объекта. |
Замещает MbSpaceItem.
Замещается в MbNurbs3D, MbSurfaceIntersectionCurve, MbArc3D, MbCubicSpline3D, MbHermit3D, MbContour3D, MbConeSpiral, MbSurfaceCurve, MbOffsetCurve3D, MbContourOnSurface, MbBezier3D, MbPolyline3D, MbSpiral, MbSilhouetteCurve, MbCurveSpiral, MbCharacterCurve3D, MbCrookedSpiral, MbReparamCurve3D, MbBridgeCurve3D, MbLineSegment3D, MbPlaneCurve, MbTrimmedCurve3D, MbContourOnPlane, MbLine3D, MbBSpline и MbPolyCurve3D.
|
virtual |
Построить полигональную копию mesh.
Построить полигональную копию данного объекта, представленную полигонами, или/и плоскими пластинами.
[in] | stepData | - Данные для вычисления шага при построении полигонального. |
[in] | note | - Способ построения полигонального объекта. |
[in,out] | mesh | - Построенный полигональный объект. |
Замещает MbSpaceItem.
Переопределяется в MbSurfaceIntersectionCurve, MbContour3D, MbContourOnSurface и MbBSpline.
|
virtual |
Дать физический радиус кривой или ноль, если это невозможно.
В общем случае на запрос радиуса возвращается 0. Число, отличное от 0, можно получить лишь в том случае, если кривая является дугой окружности или эквивалентна дуге окружности.
Переопределяется в MbNurbs3D, MbArc3D, MbSurfaceIntersectionCurve, MbSurfaceCurve, MbContour3D, MbReparamCurve3D, MbPlaneCurve, MbTrimmedCurve3D и MbContourOnPlane.
|
virtual |
Дать ось окружности, геометрически совпадающей с данной кривой
Дать ось окружности, геометрически совпадающей с данной кривой
[out] | axis | - Ось с началом в центре окружности и направлением вдоль нормали плоскости окружности |
Переопределяется в MbNurbs3D, MbArc3D, MbSurfaceIntersectionCurve, MbSurfaceCurve, MbReparamCurve3D, MbPlaneCurve, MbTrimmedCurve3D и MbContourOnPlane.
|
virtual |
Непрерывна ли первая производная кривой по длине и направлению? Отсутствуют ли разрывы первой производной кривой по длине и направлению?
.
[out] | contLength | - Непрерывность длины (да/нет). |
[out] | contDirect | - Непрерывность направления (да/нет). |
[in] | epsilon | - Погрешность вычисления. |
Переопределяется в MbNurbs3D, MbSurfaceCurve, MbContour3D, MbContourOnSurface, MbReparamCurve3D, MbBezier3D, MbOffsetCurve3D, MbPolyline3D и MbPlaneCurve.
|
virtual |
Устранить разрывы первых производных по длине. Устранить разрывы производных по длине.
.
[in] | epsilon | - Погрешность вычисления. |
[in] | version | - Версия математики. |
Переопределяется в MbNurbs3D, MbSurfaceCurve, MbContour3D, MbContourOnSurface, MbReparamCurve3D, MbBezier3D, MbOffsetCurve3D, MbPolyline3D и MbPlaneCurve.
|
virtual |
Найти все особые точки функции кривизны кривой.
Найти все экстремумы, точки разрыва и точки перегиба функции кривизны кривой.
[out] | points | - Массив найденных особых точек функции кривизны. Первое поле каждого элемента содержит параметр найденной точки. Второе поле каждого элемента содержит значения кривизн в найденных точках. Данные значения могут быть следующих видов: 1) = 0.0 - точка перегиба; 2) < 0.0 - значение кривизны в точке минимума; 3) > 0.0 - значение кривизны в точке максимума; На разрыве кривизны вставляются две точки, слева и справа от разрыва. Точка с большей кривизной вставляется со знаком плюс, точка с меньшей кривизной вставляется со знаком минус. |
Переопределяется в MbSurfaceIntersectionCurve, MbContour3D, MbContourOnSurface, MbReparamCurve3D и MbTrimmedCurve3D.
MbVector3D MbCurve3D::GetLimitTangent | ( | ptrdiff_t | number | ) | const |
Вычислить касательный вектор в граничной точке.
Вычислить нормализованный касательный вектор в граничной точке.
[in] | number | - Номер граничной точки. Значение 1 соответствует начальной точке кривой, 2 - конечной. |
void MbCurve3D::GetLimitTangent | ( | ptrdiff_t | number, |
MbVector3D & | v | ||
) | const |
Вычислить касательный вектор в граничной точке.
Вычислить нормализованный касательный вектор в граничной точке.
[in] | number | - Номер граничной точки. Значение 1 соответствует начальной точке кривой, 2 - конечной. |
[in,out] | v | - Касательный вектор. |
|
inline |
Равны ли граничные точки.
Равны ли граничные точки кривой.
|
virtual |
Определить, является ли кривая репараметризованно такой же.
Определить, является ли кривая репараметризованно такой же.
[in] | curve | - Кривая для сравнения. |
[out] | factor | - Коэффициент сжатия параметрической области при переходе к указанной кривой. |
Переопределяется в MbNurbs3D.