C3D Toolkit
Kernel - 112706, Vision - 2.6.3.0
|
Кривая пересечения двух поверхностей. Подробнее...
#include <cur_surface_intersection.h>
Открытые члены | |
MbSurfaceIntersectionCurve (const MbSurface &surf1, const MbCurve &curve1, const MbSurface &surf2, const MbCurve &curve2, MbeCurveBuildType buildType, bool sameOne, bool sameTwo, MbRegDuplicate *iReg=c3d_null) | |
Конструктор по поверхностям и двумерным кривым. Подробнее... | |
MbSurfaceIntersectionCurve (const MbSurface &surf1, const MbCartPoint &surf1p0, const MbCartPoint &surf1p1, const MbSurface &surf2, const MbCartPoint &surf2p0, const MbCartPoint &surf2p1) | |
Конструктор по поверхностям и двумерным точкам. Подробнее... | |
MbSurfaceIntersectionCurve (const MbSurface &surf1, const MbCurve &curve1, const MbSurface &surf2, const MbCartPoint &surf2p0, const MbCartPoint &surf2p1, MbeCurveBuildType buildType) | |
Конструктор по поверхностям, двумерным кривой и точкам. Подробнее... | |
MbSurfaceIntersectionCurve (const MbSurface &surf1, const MbCartPoint &surf1p0, const MbCartPoint &surf1p1, const MbSurface &surf2, const MbCurve &curve2, MbeCurveBuildType buildType) | |
Конструктор по поверхностям, двумерным точкам и кривой. Подробнее... | |
MbSurfaceIntersectionCurve (const MbSurface &surf1, const MbCurve &curve1, const MbSurface &surf2, const MbCurve &curve2, const MbCurve3D *spaceCurve, MbeCurveBuildType buildType, MbeCurveGlueType glueType, double tol) | |
Конструктор для конвертеров по поверхностям и двумерным кривым. Подробнее... | |
VISITING_CLASS (MbSurfaceIntersectionCurve) | |
Реализация функции, инициирующей посещение объекта. | |
virtual double | GetTMax () const |
Вернуть максимальное значение параметра. | |
virtual double | GetTMin () const |
Вернуть минимальное значение параметра. | |
virtual bool | IsClosed () const |
Определить, является ли кривая замкнутой. Подробнее... | |
virtual double | GetPeriod () const |
Вернуть период. Если кривая непериодическая, то 0. | |
virtual bool | IsPeriodic () 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 | Tangent (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 void | FastApproxExplore (double &t, MbCartPoint3D &pnt, MbVector3D &fir, MbVector3D *sec) const |
Вычислить точку и производные на кривой. Подробнее... | |
virtual void | Inverse (MbRegTransform *iReg=c3d_null) |
Изменить направление кривой. | |
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 MbNurbs3D * | NurbsCurve (const MbCurveIntoNurbsInfo &) const |
Построить NURBS копию кривой. Подробнее... | |
virtual MbCurve3D * | Trimmed (double t1, double t2, int sense) const |
Построить усеченную кривую. Подробнее... | |
MbSurfaceIntersectionCurve * | TrimmedIntersection (double t1, double t2, int sense) const |
Создать усеченную кривую на тех же поверхностях. | |
virtual double | GetMetricLength () const |
Вычислить метрическую длину кривой. | |
virtual double | GetLengthEvaluation () const |
Вычислить метрическую длину кривой. Подробнее... | |
bool | CopyReadyMutable (const MbSurfaceIntersectionCurve &s) |
virtual double | CalculateLength (double t1, double t2) const |
Вычислить метрическую длину кривой. Подробнее... | |
virtual double | GetRadius () const |
Дать физический радиус кривой или ноль, если это невозможно. Подробнее... | |
virtual bool | GetCircleAxis (MbAxis3D &) const |
Дать ось окружности, геометрически совпадающей с данной кривой Подробнее... | |
virtual void | GetCentre (MbCartPoint3D &) const |
Выдать центр кривой. | |
virtual void | GetWeightCentre (MbCartPoint3D &) const |
Выдать центр тяжести кривой. | |
virtual void | CalculateGabarit (MbCube &c) const |
Вычислить габарит кривой. | |
virtual bool | DistanceAlong (double &t, double len, int curveDir, double eps=Math::metricPrecision, VERSION version=Math::DefaultMathVersion()) const |
Сдвинуть параметр вдоль кривой. Подробнее... | |
virtual void | CalculatePolygon (const MbStepData &stepData, MbPolygon3D &polygon) const |
Рассчитать массив точек для отрисовки. Подробнее... | |
virtual MbCurve * | GetMap (const MbMatrix3D &into, MbRect1D *pRegion=c3d_null, VERSION version=Math::DefaultMathVersion(), bool *coincParams=c3d_null) const |
Построить плоскую проекцию некоторой части пространственной кривой. Подробнее... | |
virtual MbCurve * | GetProjection (const MbPlacement3D &place, VERSION version) const |
Построить плоскую проекцию пространственной кривой на плоскость. Подробнее... | |
virtual size_t | GetCount () const |
Определить количество разбиений для прохода в операциях. | |
virtual bool | IsStraight (bool ignoreParams=false) const |
Является ли линия прямолинейной? | |
virtual void | ChangeCarrier (const MbSpaceItem &item, MbSpaceItem &init) |
Изменить носитель. Для поверхностных кривых. | |
virtual bool | ChangeCarrierBorne (const MbSpaceItem &item, MbSpaceItem &init, const MbMatrix &matr) |
Изменить носитель. Подробнее... | |
virtual bool | IsPlanar (double accuracy=METRIC_EPSILON) const |
Является ли кривая плоской? | |
virtual bool | IsSmoothConnected (double angleEps) const |
Являются ли стыки контура/кривой гладкими? | |
virtual double | DistanceToPlace (const MbPlacement3D &place, double &t0, double &angle) const |
Ближайшая точка кривой к плейсменту. | |
virtual bool | GetPlaneCurve (MbCurve *&curve2d, MbPlacement3D &place3d, bool saveParams, PlanarCheckParams params=PlanarCheckParams()) const |
Дать плоскую кривую и плейсмент, если пространственная кривая плоская. Подробнее... | |
virtual bool | GetPlacement (MbPlacement3D &place, PlanarCheckParams params=PlanarCheckParams()) const |
Заполнить плейсемент, если кривая плоская. | |
virtual bool | GetSurfaceCurve (MbCurve *&curve2d, MbSurface *&surface, VERSION version=Math::DefaultMathVersion()) const |
Дать поверхностную кривую, если пространственная кривая поверхностная (после использования вызывать DeleteItem на аргументы). | |
virtual double | GetParamToUnit () const |
Дать приращение параметра, осреднённо соответствующее единичной длине в пространстве. | |
virtual double | GetParamToUnit (double t) 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 |
Подобные ли кривые для объединения (слива). | |
virtual bool | IsSpaceSame (const MbSpaceItem &item, double eps=METRIC_REGION) const |
Являются ли объекты идентичными в пространстве. | |
MbeCurveGlueType | GetGlueType () const |
Получить тип кривой по топологии. | |
void | SetGlueType (MbeCurveGlueType type) |
Установить тип кривой по топологии. | |
void | SetPoleGlueType () const |
Установить тип кривой по топологии. | |
MbeCurveBuildType | GetBuildType () const |
Получить тип кривой по построению. | |
void | SetBuildType (MbeCurveBuildType type) |
Установить тип кривой по построению. | |
bool | PointOn (double t, MbCartPoint &r1, MbCartPoint &r2) const |
Вычислить точки на пересекаемых поверхностях. | |
void | GetPointOn (double &t, MbCartPoint3D &) const |
Вычислить точку. | |
void | GetFirstDer (double &t, MbVector3D &) const |
Вычислить первую производную. | |
virtual void | GetCurvatureSpecialPoints (std::vector< c3d::DoublePair > &points) const |
Найти все особые точки функции кривизны кривой. | |
bool | InsertPoints (double &t, const std::pair< MbCartPoint, MbCartPoint > *pointsPair, double &tCheck) |
Уточнить кривую общего случая пересечения. Подробнее... | |
MbSurfaceIntersectionCurve * | BreakCurve (double t, bool beg, const MbSurface *surface) |
Разрезать кривую на две части. Подробнее... | |
bool | TruncateCurve (double t1, double t2, const MbSurface *surface) |
Усечь кривую. Подробнее... | |
bool | MergeCurves (const MbSurfaceIntersectionCurve &addCurve, bool toBegin, bool fromBegin, bool allowCntr, const VERSION version, bool insertInterimPoints=true, double eps=PARAM_NEAR) |
Присоединить к данной кривой другую кривую. Подробнее... | |
bool | ProlongCurve (double &t, bool beg, double sag, const VERSION version) |
Продлить кривую. Подробнее... | |
void | Normalize () |
Согласовать параметрическую длину двумерных кривых. | |
const MbCurve * | ChooseCurve (const MbSurface &surf, bool faceSense, bool curveSense) const |
Выбрать кривую шва по ориентации грани и ориентации двумерной кривой. | |
MbCurve * | ChooseCurve_ (const MbSurface &surf, bool faceSense, bool curveSense) |
Выбрать кривую шва по ориентации грани и ориентации двумерной кривой. | |
bool | GetMoveVector (const MbSurface &surf, bool faceSense, bool curveSense, MbVector &to) const |
Вычислить вектор сдвига двумерной кривой шва. Подробнее... | |
bool | ChangeCurve (const MbCurve *oldCrv, MbCurve &newCrv) |
Заменить двумерную кривую. | |
bool | ChangeSurface (const MbSurface &oldSrf, MbSurface &newSrf, bool faceSense, bool curveSense) |
Заменить поверхность. | |
bool | ChangeSurfaces (const MbSurface &surf1, const MbSurface &surf2) |
Заменить поверхности. | |
bool | ReplaceSameSurfaces (const MbSurfaceIntersectionCurve &) |
Заменить поверхности на такие же (IsSame) с другой кривой. | |
bool | SetLimitParam (double newTMin, double newTMax) |
Установить область изменения параметра. | |
bool | SwapSurfaceCurves () |
Поменять местами поверхностные кривые. | |
bool | Direction (double &t, MbVector3D &tau, double eps=Math::paramNear) const |
Вычислить векторное произведение нормалей поверхностей. | |
bool | NearDirection (double &t, const MbSurface &surfOne, const MbSurface &surfTwo, MbVector3D &tau, double delta, MbCartPoint &point1, MbCartPoint &point2, MbVector3D &normal1, MbVector3D &normal2) const |
Вычислить векторное произведение нормалей поверхностей вблизи линии. | |
bool | TransversalReper (double &t, MbVector3D &tau0, MbVector3D &tau1, MbVector3D &tau2) const |
Вычислить тангенциальный и трансверсальный векторы, касательные к поверхностям. | |
bool | SetCurveEqual (const MbSpaceItem &init) |
Сделать равными двумерные кривые. | |
bool | IsCurveEqual (const MbSpaceItem &init) const |
Определить, являются ли объекты подобными. | |
const MbSurfaceCurve & | GetCurve (ptrdiff_t i) const |
Получить поверхностную кривую по номеру (0 - первая, 1 - вторая). | |
MbSurfaceCurve & | SetCurve (ptrdiff_t i) |
Получить поверхностную кривую по номеру (0 - первая, 1 - вторая). | |
const MbSurfaceCurve & | GetCurveOne () const |
Получить первую поверхностную кривую. | |
MbSurfaceCurve & | SetCurveOne () |
Получить первую поверхностную кривую. | |
const MbSurfaceCurve & | GetCurveTwo () const |
Получить вторую поверхностную кривую. | |
MbSurfaceCurve & | SetCurveTwo () |
Получить вторую поверхностную кривую. | |
const MbCurve & | GetCurveOneCurve () const |
Получить двумерную кривую первой поверхностной кривой. | |
MbCurve & | SetCurveOneCurve () |
Получить двумерную кривую первой поверхностной кривой. | |
const MbCurve & | GetCurveTwoCurve () const |
Получить двумерную кривую второй поверхностной кривой. | |
MbCurve & | SetCurveTwoCurve () |
Получить двумерную кривую второй поверхностной кривой. | |
const MbSurface & | GetCurveOneSurface () const |
Получить поверхность первой поверхностной кривой. | |
MbSurface & | SetCurveOneSurface () |
Получить поверхность первой поверхностной кривой. | |
const MbSurface & | GetCurveTwoSurface () const |
Получить поверхность второй поверхностной кривой. | |
MbSurface & | SetCurveTwoSurface () |
Получить поверхность второй поверхностной кривой. | |
const MbSurface & | GetSurface (ptrdiff_t i) const |
Получить поверхность по номеру (0 - из первой, 1 - из второй поверхностной кривой). | |
MbSurface & | SetSurface (ptrdiff_t i) |
Получить поверхность по номеру (0 - из первой, 1 - из второй поверхностной кривой). | |
const MbSurfaceCurve * | GetSCurveOne () const |
Дать указатель на первую кривую на поверхности. | |
const MbSurfaceCurve * | GetSCurveTwo () const |
Дать указатель на вторую кривую на поверхности. | |
const MbCurve * | GetPCurveOne () const |
Дать указатель на двумерную кривую. | |
const MbCurve * | GetPCurveTwo () const |
Дать указатель на двумерную кривую. | |
const MbSurface * | GetSurfaceOne () const |
Дать указатель на поверхность первой кривой. | |
const MbSurface * | GetSurfaceTwo () const |
Дать указатель на поверхность второй кривой. | |
const MbSurface * | GetAnotherSurface (const MbSurface &surface) const |
Получить одну из поверхностей, отличную от заданной. | |
const MbCurve * | GetAnotherCurve (const MbCurve &curve) const |
Получить одну из двумерных кривых, отличную от заданной. | |
virtual void | GetPointsByEvenLengthDelta (size_t n, std::vector< MbCartPoint3D > &pnts) const |
Выдать n точек кривой с равными интервалами по длине дуги. | |
MbeNewtonResult | ConvexoConcaveNewton (size_t iterLimit, double &t) const |
Вычислить точки изменения выпуклости-вогнутости кривой пересечения. | |
bool | IsConvexoConcave (SArray< double > ¶ms) const |
Определить наличие точек изменения выпуклости-вогнутости. | |
MbCurve3D * | MakeCurve (double t1, double t2) const |
Построить участок пространственной копии кривой. | |
MbCurve3D * | MakeCurve () const |
Построить пространственную копию кривой. | |
const MbCurve3D * | GetSpaceCurve () const |
Дать пространственную аппроксимацию кривой пересечения. | |
MbCurve3D * | SetSpaceCurve () |
Дать пространственную аппроксимацию кривой пересечения. | |
const MbCurve3D & | GetExactCurve (bool saveParams=true) const |
Дать точную пространственную копию или себя. | |
void | ReleaseSpaceCurve () const |
Удалить пространственную кривую. | |
MbSurfaceIntersectionCurve * | BreakWithGap (double tt, double ttP, bool sense) |
Разрезать кривую пересечения на три части по заданным параметрам и вернуть одну из крайних частей в зависимости от sense. | |
MbCurve3D * | Trimmed (const MbCartPoint3D &p1, const MbCartPoint3D &p2, bool sense) const |
Усечь кривую пересечения по двум точкам и заданному направлению. | |
bool | IsSmooth () const |
Определить, гладкая ли кривая пересечения. | |
bool | IsPole () const |
Определить, полюсная ли кривая пересечения. | |
bool | IsSplit (bool strict=false) const |
Определить, является ли кривая пересечения кривой разъема. | |
double | GetTolerance () const |
Получить толерантность кривой. | |
void | SetTolerance (double tol) |
Выставить толерантность кривой. | |
void | ResetTolerance () |
Сбросить толерантность кривой. | |
Общие функции геометрического объекта. | |
virtual MbeSpaceType | IsA () const |
Получить тип объекта. | |
virtual MbSpaceItem & | Duplicate (MbRegDuplicate *=c3d_null) const |
Создать копию объекта. Подробнее... | |
MbSurfaceIntersectionCurve & | CurvesDuplicate () const |
Сделать копию кривой на тех же поверхностях. | |
virtual bool | IsSame (const MbSpaceItem &other, double accuracy=LENGTH_EPSILON) const |
Определить, являются ли объекты равными. Подробнее... | |
virtual bool | SetEqual (const MbSpaceItem &) |
Сделать объекты равным, если они подобны. Подробнее... | |
virtual bool | IsSimilar (const MbSpaceItem &) const |
Определить, являются ли объекты подобными. Подробнее... | |
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 void | AddYourGabaritTo (MbCube &r) const |
Расширить присланный габаритный куб так, чтобы он включал в себя данный объект. Подробнее... | |
virtual void | CalculateMesh (const MbStepData &stepData, const MbFormNote ¬e, MbMesh &mesh) const |
Построить полигональную копию mesh. Подробнее... | |
virtual void | Refresh () |
Перевести все временные (mutable) данные объекта в неопределённое (исходное) состояние. | |
virtual void | PrepareIntegralData (const bool forced) const |
Рассчитать временные (mutable) данные объекта. Подробнее... | |
virtual void | GetProperties (MbProperties &) |
Выдать свойства объекта. Подробнее... | |
virtual void | SetProperties (const MbProperties &) |
Изменить свойства объекта. Подробнее... | |
virtual void | GetBasisItems (RPArray< MbSpaceItem > &) |
Выдать базовые объекты в присланный контейнер. | |
virtual void | GetBasisPoints (MbControlData3D &) const |
Выдать контрольные точки объекта. | |
virtual void | SetBasisPoints (const MbControlData3D &) |
Изменить объект по контрольным точкам. | |
![]() | |
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 double | DistanceToPoint (const MbCartPoint3D &) const |
Определить расстояние до точки. Подробнее... | |
bool | IsTouch (double eps=Math::metricPrecision) 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 |
Вычислить вектор бинормали (нормализованный) на кривой и её продолжении. | |
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 MbCurve3D * | NurbsCurve (const MbNurbsParameters &tParameters) const |
Построить NURBS копию кривой. Подробнее... | |
virtual size_t | NurbsCurveMinPoints (const MbNurbsParameters &tParameters, double epsilon=c3d::METRIC_DELTA) const |
Определить число узлов NURBS кривой, нужное для аппроксимации кривой с заданной точностью. Подробнее... | |
double | GetParamLength () const |
Вернуть параметрическую длину кривой. | |
virtual double | CalculateMetricLength () const |
Вычислить метрическую длину кривой. | |
virtual void | CalculateLocalGabarit (const MbMatrix3D &into, MbCube &cube) const |
Рассчитать габарит в локальной системы координат. Подробнее... | |
virtual bool | IsDegenerate (double eps=METRIC_PRECISION) const |
Проверить вырожденная ли кривая. | |
virtual MbProperty & | CreateProperty (MbePrompt name) const |
Создать собственное свойство с заданием его имени. | |
DEPRECATE_DECLARE void | CalculatePolygon (double, MbPolygon3D &) 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 MbCurve * | GetMapPsp (const MbMatrix3D &into, double zNear, MbRect1D *pRegion=c3d_null) const |
Построить плоскую проекцию некоторой части пространственной кривой. Подробнее... | |
void | GetPointsByEvenParamDelta (size_t n, std::vector< MbCartPoint3D > &pnts) const |
Выдать n точек кривой с равными интервалами по параметру. | |
void | GetPointsByEvenParamDelta (size_t n, SArray< MbCartPoint3D > &pnts) const |
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 | 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 |
Преобразовать параметр кривой в параметр подложки. | |
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 |
Дать плоскую кривую и плейсмент, если пространственная кривая плоская. Подробнее... | |
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 на аргументы). | |
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 |
Принадлежит ли объект к регистрируемому семейству. | |
void | CalculateWire (const MbStepData &stepData, MbMesh &mesh) const |
void | CalculateWire (double sag, MbMesh &mesh) const |
![]() | |
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. | |
Защищенные члены | |
MbSurfaceIntersectionCurve (const MbSurfaceIntersectionCurve &, MbRegDuplicate *) | |
Конструктор копирования. | |
MbSurfaceIntersectionCurve (const MbSurfaceIntersectionCurve *) | |
Конструктор копирования двумерных кривых с теми же поверхностями для CurvesDuplicate(). | |
![]() | |
MbCurve3D () | |
Конструктор по умолчанию. | |
MbCurve3D (const MbCurve3D &other) | |
Конструктор копирования. | |
![]() | |
MbSpaceItem () | |
Конструктор без параметров. | |
Дополнительные унаследованные члены | |
![]() | |
SimpleName | name |
Имя кривой. | |
Кривая пересечения двух поверхностей.
Кривая пересечения поверхностей содержит две кривые на пересекаемых поверхностях curveOne и curveTwo, подчинённые следующим правилам:
MbSurfaceIntersectionCurve::MbSurfaceIntersectionCurve | ( | const MbSurface & | surf1, |
const MbCurve & | curve1, | ||
const MbSurface & | surf2, | ||
const MbCurve & | curve2, | ||
MbeCurveBuildType | buildType, | ||
bool | sameOne, | ||
bool | sameTwo, | ||
MbRegDuplicate * | iReg = c3d_null |
||
) |
Конструктор по поверхностям и двумерным кривым.
Конструктор кривой пересечения по поверхностям и двумерным кривым.
[in] | surf1 | - Первая поверхность. |
[in] | curve1 | - Первая двумерная кривая. |
[in] | surf2 | - Вторая поверхность. |
[in] | curve2 | - Вторая двумерная кривая. |
[in] | buildType | - Тип кривой пересечения по построению. |
[in] | sameOne | - Использовать оригинал первой двумерной кривой. |
[in] | sameTwo | - Использовать оригинал второй двумерной кривой. |
[in,out] | iReg | - Регистратор дублирования. |
MbSurfaceIntersectionCurve::MbSurfaceIntersectionCurve | ( | const MbSurface & | surf1, |
const MbCartPoint & | surf1p0, | ||
const MbCartPoint & | surf1p1, | ||
const MbSurface & | surf2, | ||
const MbCartPoint & | surf2p0, | ||
const MbCartPoint & | surf2p1 | ||
) |
Конструктор по поверхностям и двумерным точкам.
Конструктор кривой пересечения по поверхностям и двумерным точкам.
[in] | surf1 | - Первая поверхность. |
[in] | surf1p0 | - Начальная точка на поверхности. |
[in] | surf1p1 | - Конечная точка на поверхности. |
[in] | surf2 | - Вторая поверхность. |
[in] | surf2p0 | - Начальная точка на поверхности. |
[in] | surf2p1 | - Конечная точка на поверхности. |
MbSurfaceIntersectionCurve::MbSurfaceIntersectionCurve | ( | const MbSurface & | surf1, |
const MbCurve & | curve1, | ||
const MbSurface & | surf2, | ||
const MbCartPoint & | surf2p0, | ||
const MbCartPoint & | surf2p1, | ||
MbeCurveBuildType | buildType | ||
) |
Конструктор по поверхностям, двумерным кривой и точкам.
Конструктор кривой пересечения по поверхностям, двумерным кривой и точкам.
[in] | surf1 | - Первая поверхность. |
[in] | curve1 | - Первая двумерная кривая. |
[in] | surf2 | - Вторая поверхность. |
[in] | surf2p0 | - Начальная точка на поверхности. |
[in] | surf2p1 | - Конечная точка на поверхности. |
[in] | buildType | - Тип кривой пересечения по построению. |
MbSurfaceIntersectionCurve::MbSurfaceIntersectionCurve | ( | const MbSurface & | surf1, |
const MbCartPoint & | surf1p0, | ||
const MbCartPoint & | surf1p1, | ||
const MbSurface & | surf2, | ||
const MbCurve & | curve2, | ||
MbeCurveBuildType | buildType | ||
) |
Конструктор по поверхностям, двумерным точкам и кривой.
Конструктор кривой пересечения по поверхностям, двумерным точкам и кривой.
[in] | surf1 | - Первая поверхность. |
[in] | surf1p0 | - Начальная точка на поверхности. |
[in] | surf1p1 | - Конечная точка на поверхности. |
[in] | surf2 | - Вторая поверхность. |
[in] | curve2 | - Вторая двумерная кривая. |
[in] | buildType | - Тип кривой пересечения по построению. |
MbSurfaceIntersectionCurve::MbSurfaceIntersectionCurve | ( | const MbSurface & | surf1, |
const MbCurve & | curve1, | ||
const MbSurface & | surf2, | ||
const MbCurve & | curve2, | ||
const MbCurve3D * | spaceCurve, | ||
MbeCurveBuildType | buildType, | ||
MbeCurveGlueType | glueType, | ||
double | tol | ||
) |
Конструктор для конвертеров по поверхностям и двумерным кривым.
Конструктор кривой пересечения для конвертеров по поверхностям и двумерным кривым.
[in] | surf1 | - Первая поверхность. |
[in] | curve1 | - Первая двумерная кривая. |
[in] | surf2 | - Вторая поверхность. |
[in] | curve2 | - Вторая двумерная кривая. |
[in] | spaceCurve | - Аппроксимация кривой пересечения. |
[in] | buildType | - Тип кривой пересечения по построению. |
[in] | glueType | - Тип кривой пересечения по топологии. |
[in] | tol | - Неточность построения кривой пересечения. |
|
virtual |
Создать копию объекта.
Создать копию объекта с использованием регистратора. Регистратор используется для предотвращения многократного копирования объекта. Если объект содержит ссылки на другие объекты, то вложенные объекты так же копируются. Допустимо не передавать регистратор в функцию. Тогда будет создана новая копия объекта. При копировании одиночного объекта или набора не связанных между собой объектов допустимо не использовать регистратор. Регистратор необходимо использовать, если надо последовательно копировать несколько взаимосвязанных объектов. Возможно, что связь объектов обусловлена наличием в них ссылок на общие объекты. Тогда, при копировании без использования регистратора, можно получить набор копий, содержащих ссылки на разные копии одного и того же вложенного объекта, что ведет к потере связи между копиями.
[in] | iReg | - Регистратор. |
Замещает MbCurve3D.
|
virtual |
Определить, являются ли объекты равными.
Равными считаются однотипные объекты, все данные которых одинаковы (равны).
[in] | item | - Объект для сравнения. |
[in] | accuracy | - Точность сравнения. |
Замещает MbCurve3D.
|
virtual |
Сделать объекты равным, если они подобны.
Равными можно сделать только подобные объекты. Подобный объект приравнивается присланному путем изменения численных данных.
[in] | item | - Объект для инициализации. |
Замещает MbCurve3D.
|
virtual |
Определить, являются ли объекты подобными.
Подобными считаются однотипные объекты, данные которых можно приравнять или данные так же являются подобными (указатели). Подобный объект можно инициализировать по данным подобного ему объекта (приравнять один другому без изменения адресов).
[in] | item | - Объект для сравнения. |
Переопределяет метод предка MbSpaceItem.
|
virtual |
Преобразовать объект согласно матрице.
Преобразовать исходный объект согласно матрице c использованием регистратора. Если объект содержит ссылки на другие геометрические объекты, то вложенные объекты так же преобразуются согласно матрице. Регистратор служит для предотвращения многократного преобразования объекта. Допустимо использовать функцию без регистратора, если надо преобразовать одиночный объект. Если надо преобразовать набор взаимосвязанных объектов, необходимо использовать регистратор для предотвращения повторного преобразования вложенных объектов, поскольку не исключена ситуация, когда несколько объектов из набора содержат ссылки на один или несколько общих объектов, подлежащих трансформации.
[in] | matr | - Матрица преобразования. |
[in] | iReg | - Регистратор. |
Замещает MbCurve3D.
|
virtual |
Сдвинуть объект вдоль вектора.
Сдвинуть геометрический объект вдоль вектора с использованием регистратора. Если объект содержит ссылки на другие геометрические объекты, то к вложенным объектам так же применяется операция сдвига. Регистратор служит для предотвращения многократного преобразования объекта. Допустимо использовать функцию без регистратора, если надо преобразовать одиночный объект. Если надо преобразовать набор взаимосвязанных объектов, необходимо использовать регистратор для предотвращения повторного преобразования вложенных объектов, поскольку не исключена ситуация, когда несколько объектов из набора содержат ссылки на один или несколько общих объектов, подлежащих сдвигу.
[in] | to | - Вектор сдвига. |
[in] | iReg | - Регистратор. |
Замещает MbCurve3D.
|
virtual |
Повернуть объект вокруг оси на заданный угол.
Повернуть объект вокруг оси на заданный угол с использованием регистратора. Если объект содержит ссылки на другие геометрические объекты, то к вложенным объектам так же применяется операция поворота. Регистратор служит для предотвращения многократного преобразования объекта. Допустимо использовать функцию без регистратора, если надо преобразовать одиночный объект. Если надо преобразовать набор взаимосвязанных объектов, необходимо использовать регистратор для предотвращения повторного преобразования вложенных объектов, поскольку не исключена ситуация, когда несколько объектов из набора содержат ссылки на один или несколько общих объектов, подлежащих повороту.
[in] | axis | - Ось поворота. |
[in] | angle | - Угол поворота. |
[in] | iReg | - Регистратор. |
Замещает MbCurve3D.
|
virtual |
Расширить присланный габаритный куб так, чтобы он включал в себя данный объект.
Расширить присланный габаритный куб так, чтобы он включал в себя данный объект.
[in,out] | cube | - Принимающий габаритный куб с информацией по габаритам. |
Переопределяет метод предка MbCurve3D.
|
virtual |
Построить полигональную копию mesh.
Построить полигональную копию данного объекта, представленную полигонами, или/и плоскими пластинами.
[in] | stepData | - Данные для вычисления шага при построении полигонального. |
[in] | note | - Способ построения полигонального объекта. |
[in,out] | mesh | - Построенный полигональный объект. |
Переопределяет метод предка MbCurve3D.
|
virtual |
Рассчитать временные (mutable) данные объекта.
Рассчитать временные данные объекта в зависимости от параметра forced. Если параметр forced равен false, рассчитываются только ещё не насчитанные данные. Если параметр forced равен true, пересчитываются все временные данные объекта. Принудительный перерасчёт.
Переопределяет метод предка 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 |
Вычислить точку и производные на кривой.
Функция перегружена у MbSurfaceIntersectionCurve и MbSilhouetteCurve для приближённого быстрого вычисления точки и производных. В остальных поверхностях эквивалентна функции Explore(t,false,pnt,fir,sec,c3d_null).
[in] | t | - Параметр. |
[out] | pnt | - Вычисленная точка. |
[out] | fir | - Производная. |
[out] | sec | - Вторая производная по t, если не ноль. |
Переопределяет метод предка MbCurve3D.
|
virtual |
Вычислить шаг параметра.
Вычислить шаг параметра для аппроксимации кривой по величине прогиба кривой. Вычисление шага проходит с учетом радиуса кривизны. Шаг аппроксимации кривой выбирается таким образом, чтобы отклонение кривой от ее полигона не превышало заданную величину прогиба.
[in] | t | - Параметр, определяющий точку на кривой, в которой надо вычислить шаг. |
[in] | sag | - Максимально допустимая величина прогиба. |
Переопределяет метод предка MbCurve3D.
|
virtual |
Вычислить шаг параметра.
Вычислить шаг параметра для аппроксимации кривой по углу отклонения касательной. Шаг аппроксимации кривой выбирается таким образом, чтобы угловое отклонение касательной кривой в следующей точке не превышало заданную величину ang.
[in] | t | - Параметр, определяющий точку на кривой, в которой надо вычислить шаг. |
[in] | ang | - Максимально допустимый угол отклонения касательной. |
Переопределяет метод предка MbCurve3D.
|
virtual |
Вычислить шаг параметра.
Вычислить шаг параметра для аппроксимации кривой по заданной метрической длине шага вдоль кривой.
[in] | t | - Параметр, определяющий точку на кривой, в которой надо вычислить шаг. |
[in] | len | - Максимальная метрическая длина шага вдоль кривой. |
Переопределяет метод предка MbCurve3D.
|
virtual |
Построить NURBS копию кривой.
Строит NURBS кривую, аппроксимирующую заданную в диапазоне параметров [t1, t2] с заданным направлением. По возможности, строит точную кривую, возможно с кратными узлами. Количеством узлов для NURBS определяется в зависимости от кривой.
[in] | t1 | - Параметр, соответствующий началу аппроксимируемой части кривой. |
[in] | t2 | - Параметр, соответствующий концу аппроксимируемой части кривой. |
[in] | sense | - Совпадает ли направление возрастания параметра вдоль NURBS кривой с направлением на исходной кривой. sense > 0 - направление совпадает. |
[in] | nInfo | - Параметры преобразования кривой в 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 |
Вычислить метрическую длину кривой.
Длина кривой вычисляется неточно, на основе аппроксимации ломаной. Если нужна более точно вычисленная длина кривой, надо пользоваться функцией CalculateMetricLength().
Переопределяет метод предка MbCurve3D.
|
inline |
Скопировать из копии готовые метрические оценки, которые в оригинале не были рассчитаны.
|
virtual |
Вычислить метрическую длину кривой.
Вычислить метрическую длину разомкнутой кривой от параметра t1 до t2. Должно выполнятся условие t1 < t2.
[in] | t1 | - Начальный параметр отрезка кривой. |
[in] | t2 | - Конечный параметр отрезка кривой. |
Переопределяет метод предка MbCurve3D.
|
virtual |
Дать физический радиус кривой или ноль, если это невозможно.
В общем случае на запрос радиуса возвращается 0. Число, отличное от 0, можно получить лишь в том случае, если кривая является дугой окружности или эквивалентна дуге окружности.
Переопределяет метод предка MbCurve3D.
|
virtual |
Дать ось окружности, геометрически совпадающей с данной кривой
Дать ось окружности, геометрически совпадающей с данной кривой
[out] | axis | - Ось с началом в центре окружности и направлением вдоль нормали плоскости окружности |
Переопределяет метод предка MbCurve3D.
|
virtual |
Сдвинуть параметр вдоль кривой.
Сдвинуть параметр вдоль кривой на заданное расстояние в заданном направлении. Новое значение параметра сохраняется в переменной t. Если кривая не замкнута и длина ее части от точки с параметром t до конца в заданном направлении меньше, чем нужное смещение, то вычисления происходят на продолжении кривой, если можно построить продолжение.
[in,out] | t | - На входе - исходное значение параметра. На выходе - новое значение параметра. |
[in] | len | - Величина смещения вдоль кривой. |
[in] | curveDir | - Направление смещения. Если curveDir - неотрицательно, то смещение направлено в сторону увеличения параметра. Иначе - в сторону уменьшения параметра. |
[in] | eps | - Точность вычислений. |
Переопределяет метод предка MbCurve3D.
|
virtual |
Рассчитать массив точек для отрисовки.
Выдать массив отрисовочных точек с заданной стрелкой прогиба. Если кривая представляет собой контур, то узловые точки контура дублируются.
[in] | stepData | - Данные для вычисления шага. |
[in,out] | polygon | - Полигон рассчитанных точек на кривой. |
Переопределяет метод предка 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] | place | - Плоскость. |
[in] | version | - Версия математики. |
Переопределяет метод предка MbCurve3D.
|
virtual |
Изменить носитель.
Для поверхностных кривых. Заменяет текущий носитель item на новый, если возможно. Трансформирует носимый элемент по заданной матрице.
[in] | item | - Исходный носитель. |
[in] | init | - Новый носитель. |
[in] | matr | - Матрица для трансформации носимого элемента. |
Переопределяет метод предка MbCurve3D.
|
virtual |
Дать плоскую кривую и плейсмент, если пространственная кривая плоская.
Дать плоскую кривую и плейсмент, если пространственная кривая плоская (после использования вызывать DeleteItem на двумерную кривую).
[out] | curve2d | - Полученная плоская кривая. |
[out] | place | - Система координат полученной двумерной кривой. |
[in] | saveParams | - Параметр, задающий сохранение соответствия параметризации у двумерной кривой. Если true - параметризация кривой curve2d должна соответствовать параметризациии исходной кривой this. Если false - параметризации кривых могут не соответствовать. Кривая curve2d может быть найдена с больший вероятностью, чем если бы saveParams = true. |
[in] | params | - Параметры проверки. |
Переопределяет метод предка MbCurve3D.
bool MbSurfaceIntersectionCurve::InsertPoints | ( | double & | t, |
const std::pair< MbCartPoint, MbCartPoint > * | pointsPair, | ||
double & | tCheck | ||
) |
Уточнить кривую общего случая пересечения.
Уточнить кривую общего случая пересечения с флагом cbt_Specific (для других флагов ничего не выполняется). При флаге кривой cbt_Specific для параметра t определяются двумерные точки на пересекаемых поверхностях и вставляются в сплайны curveOne.curve и curveTwo.curve.
[in] | t | - Параметр точки уточнения, |
[in] | pointsPair | - Параметрические точки уточнения, полученные в функции PointOn( t, pointsPair->first, pointsPair->second), |
[in] | tCheck | - Контрольный параметр точки уточнения, если он не равен t, то вставляемые точки не сдвинутся так, чтобы параметр t стал равен tCheck. |
MbSurfaceIntersectionCurve* MbSurfaceIntersectionCurve::BreakCurve | ( | double | t, |
bool | beg, | ||
const MbSurface * | surface | ||
) |
Разрезать кривую на две части.
Разрезать кривую на две части точкой кривой с заданным параметром.
[in] | t | - Параметр точки разбиения, |
[in] | beg | - Кривая сохранит начальную половину (true) или кривая сохранит конечную половину (false), |
[in] | surface | - Для толерантной кривой требуется указать поверхность, к кривой которой относится параметр |
bool MbSurfaceIntersectionCurve::TruncateCurve | ( | double | t1, |
double | t2, | ||
const MbSurface * | surface | ||
) |
Усечь кривую.
Усечь кривую по заданным параметрам.
[in] | t1 | - Начальный параметр усечения, |
[in] | t2 | - Конечный параметр усечения, |
[in] | surface | - Для толерантной кривой требуется указать поверхность, к кривой которой относятся параметры усечения |
bool MbSurfaceIntersectionCurve::MergeCurves | ( | const MbSurfaceIntersectionCurve & | addCurve, |
bool | toBegin, | ||
bool | fromBegin, | ||
bool | allowCntr, | ||
const VERSION | version, | ||
bool | insertInterimPoints = true , |
||
double | eps = PARAM_NEAR |
||
) |
Присоединить к данной кривой другую кривую.
Сделать из двух кривых пересечения одну - вызывается для объединения двух ребер из функции MbCurveEdge::MergeEdges. Объединяемые кривые должны описывать пересечение одних и тех же поверхностей. Объединяются только гладко стыкующиеся кривые. Должно быть точное совпадение кривых, поверхностей этих кривых и касательных в месте склеивания. После присоединения другую кривую можно удалить.
[in] | addCurve | - Добавляемая кривая (другая кривая), |
[in] | toBegin | - Пристыковываем к началу this (true) или пристыковываем к концу this (false), |
[in] | fromBegin | - Пристыковываем начало addCurve (true) или пристыковываем конец addCurve (false), |
[in] | allowCntr | - Флаг, разрешающий заменять curveOne.curve и curveTwo.curve двумерными контурами. |
[in] | version | - Версия математики. |
[in] | insertInterimPoints | - Флаг, разрешающий вставлять дополнительные точки в кривые типа cbt_Specific. |
bool MbSurfaceIntersectionCurve::ProlongCurve | ( | double & | t, |
bool | beg, | ||
double | sag, | ||
const VERSION | version | ||
) |
Продлить кривую.
Продлить кривую до точки с заданным параметром.
[in] | t | - Параметр, до точки которого продлить кривую, |
[in] | beg | - Продлить начало кривой (true) или продлить конец кривой (false), |
[in] | version | - Версия математики. |
bool MbSurfaceIntersectionCurve::GetMoveVector | ( | const MbSurface & | surf, |
bool | faceSense, | ||
bool | curveSense, | ||
MbVector & | to | ||
) | const |
Вычислить вектор сдвига двумерной кривой шва.
Вычислить вектор сдвига двумерной кривой шва отрицательно ориентированной относительно заданной.