C3D Toolkit
Kernel - 105435, Vision - 121811.105435
|
Поверхность заметания с масштабированием и поворотом образующей кривой. Подробнее...
#include <surf_exploration_surface.h>
Открытые члены | |
Общие функции геометрического объекта | |
virtual MbeSpaceType | IsA () const |
Получить тип объекта. | |
virtual MbSpaceItem & | Duplicate (MbRegDuplicate *=NULL) 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 *=NULL) |
Преобразовать объект согласно матрице. Подробнее... | |
virtual void | Move (const MbVector3D &, MbRegTransform *=NULL) |
Сдвинуть объект вдоль вектора. Подробнее... | |
virtual void | Rotate (const MbAxis3D &, double angle, MbRegTransform *=NULL) |
Повернуть объект вокруг оси на заданный угол. Подробнее... | |
virtual void | GetProperties (MbProperties &) |
Выдать свойства объекта. Подробнее... | |
virtual void | SetProperties (const MbProperties &) |
Изменить свойства объекта. Подробнее... | |
Функции для работы в области определения поверхности | |
Функции PointOn, Derive... поверхностей корректируют параметры при выходе их за пределы прямоугольной области определения параметров. | |
virtual void | PointOn (double &u, double &v, MbCartPoint3D &) const |
Вычислить точку на поверхности. Подробнее... | |
virtual void | DeriveU (double &u, double &v, MbVector3D &) const |
Вычислить первую производную по u. | |
virtual void | DeriveV (double &u, double &v, MbVector3D &) const |
Вычислить первую производную по v. | |
virtual void | DeriveUU (double &u, double &v, MbVector3D &) const |
Вычислить вторую производную по u. | |
virtual void | DeriveVV (double &u, double &v, MbVector3D &) const |
Вычислить вторую производную по v. | |
virtual void | DeriveUV (double &u, double &v, MbVector3D &) const |
Вычислить вторую производную. | |
virtual void | DeriveUUU (double &u, double &v, MbVector3D &) const |
Вычислить третью производную. | |
virtual void | DeriveUUV (double &u, double &v, MbVector3D &) const |
Вычислить третью производную. | |
virtual void | DeriveUVV (double &u, double &v, MbVector3D &) const |
Вычислить третью производную. | |
virtual void | DeriveVVV (double &u, double &v, MbVector3D &) const |
Вычислить третью производную. | |
Функции для работы внутри и вне области определения поверхности | |
функции _PointOn, _Derive... поверхностей не корректируют параметры при выходе их за пределы прямоугольной области определения параметров. | |
virtual void | _PointOn (double u, double v, MbCartPoint3D &) const |
Вычислить точку на поверхности. Подробнее... | |
virtual void | _DeriveU (double u, double v, MbVector3D &) const |
Вычислить первую производную по u на расширенной поверхности. | |
virtual void | _DeriveV (double u, double v, MbVector3D &) const |
Вычислить первую производную по v на расширенной поверхности. | |
virtual void | _DeriveUU (double u, double v, MbVector3D &) const |
Вычислить вторую производную по u на расширенной поверхности. | |
virtual void | _DeriveVV (double u, double v, MbVector3D &) const |
Вычислить вторую производную по v на расширенной поверхности. | |
virtual void | _DeriveUV (double u, double v, MbVector3D &) const |
Вычислить вторую производную на расширенной поверхности. | |
virtual void | _DeriveUUU (double u, double v, MbVector3D &) const |
Вычислить третью производную на расширенной поверхности. | |
virtual void | _DeriveUUV (double u, double v, MbVector3D &) const |
Вычислить третью производную на расширенной поверхности. | |
virtual void | _DeriveUVV (double u, double v, MbVector3D &) const |
Вычислить третью производную на расширенной поверхности. | |
virtual void | _DeriveVVV (double u, double v, MbVector3D &) const |
Вычислить третью производную на расширенной поверхности. | |
Функции доступа к группе данных для работы внутри и вне области определения параметров поверхности. | |
virtual void | Explore (double &u, double &v, bool ext, MbCartPoint3D &pnt, MbVector3D &uDer, MbVector3D &vDer, MbVector3D *uuDer, MbVector3D *vvDer, MbVector3D *uvDer, MbVector3D *nor) const |
Вычислить значения точки и производных для заданных параметров. Подробнее... | |
Функции движения по поверхности | |
virtual double | StepU (double u, double v, double sag) const |
Вычислить шаг параметра. Подробнее... | |
virtual double | StepV (double u, double v, double sag) const |
Вычислить шаг параметра. Подробнее... | |
virtual double | DeviationStepU (double u, double v, double angle) const |
Вычислить шаг параметра. Подробнее... | |
virtual double | DeviationStepV (double u, double v, double angle) const |
Вычислить шаг параметра. Подробнее... | |
![]() | |
MbEvolutionSurface (const MbCurve3D &c, const MbSpine &s, bool sameCurve, bool sameSpine=false) | |
Конструктор по образующей и направляющей. Подробнее... | |
MbEvolutionSurface (const MbCurve3D &c, const MbCurve3D &s, const MbCurve3D &d, bool sameCurve, bool sameSpine, bool sameD) | |
Конструктор по образующей и направляющей. Подробнее... | |
MbEvolutionSurface (double r, const MbCurve3D &s, const MbCurve3D &d, MbRect1D *pURgn, MbRect1D *pVRgn) | |
Конструктор по радиусу, направляющей и её кривой векторa ориентации матрицы преобразования. Подробнее... | |
virtual void | GetBasisItems (RPArray< MbSpaceItem > &) |
Выдать базовые объекты в присланный контейнер. | |
virtual void | GetBasisPoints (MbControlData3D &) const |
Выдать контрольные точки объекта. | |
virtual void | SetBasisPoints (const MbControlData3D &) |
Изменить объект по контрольным точкам. | |
virtual double | MetricStepU (double u, double v, double length) const |
Вычислить шаг параметра. Подробнее... | |
virtual double | MetricStepV (double u, double v, double length) const |
Вычислить шаг параметра. Подробнее... | |
virtual double | CurvatureU (double u, double v) const |
Вычислить кривизну линии вдоль u. Подробнее... | |
virtual bool | IsPlanar () const |
Является ли поверхность плоской. | |
virtual void | ChangeCarrier (const MbSpaceItem &item, MbSpaceItem &init) |
Изменение носителя. Подробнее... | |
virtual void | CalculateGabarit (MbCube &) const |
Рассчитать габарит поверхности. Рекомендуется использовать GetGabarit. | |
virtual void | CalculateLocalGabarit (const MbMatrix3D &, MbCube &) const |
Рассчитать габарит в локальной системе координат. | |
virtual bool | IsSpecialSimilarToSurface (const MbSurface &surf, VERSION version, double precision=METRIC_PRECISION) const |
Подобные ли поверхности для объединения (слива). Специальный случай. Для внутреннего использования. | |
virtual bool | CreateNormalPlacements (const MbVector3D &axisZ, double angle, SArray< MbPlacement3D > &places) const |
Построить нормальные плейсменты конструктивных плоскостей. | |
virtual bool | CreateTangentPlacements (const MbVector3D &axisZ, SArray< MbPlacement3D > &places) const |
Построить касательные плейсменты конструктивных плоскостей. | |
virtual bool | IsSimilarToSurface (const MbSurface &surf, double precision=METRIC_PRECISION) const |
Определить, подобны ли поверхности для объединения. Подробнее... | |
virtual bool | GetMatrixToSurface (const MbSurface &surf, MbMatrix &matr, double precision=METRIC_PRECISION) const |
Дать двумерную матрицу преобразования из своей параметрической области в параметрическую область surf. Подробнее... | |
virtual bool | IsSpinePeriodic () const |
Периодичность направляющей. Подробнее... | |
virtual void | IncludePoint (double u, double v) |
Включить точку в область определения. Для внутреннего использования. | |
void | TransformMatrix (double v, MbMatrix3D &matr) const |
Определение матрицы переноса для образующей. Подробнее... | |
const MbSpine & | GetSpine () const |
Направляющая. | |
const MbCurve3D & | GetSpineCurve () const |
Направляющая кривая. | |
const MbCartPoint3D & | GetOrigin () const |
Центр тяжести образующей. | |
MbCurve3D & | SetSpineCurve () |
Дать направляющую кривую для изменения. | |
void | SetOrigin (const MbCartPoint3D &p) |
Задать центр тяжести образующей. | |
![]() | |
virtual MbeSpaceType | Type () const |
Получить групповой тип объекта. | |
virtual double | GetUMin () const |
Вернуть минимальное значение параметра u. | |
virtual double | GetVMin () const |
Вернуть минимальное значение параметра v. | |
virtual double | GetUMax () const |
Вернуть максимальное значение параметра u. | |
virtual double | GetVMax () const |
Вернуть максимальное значение параметра v. | |
virtual bool | IsUClosed () const |
Определить, замкнута ли поверхность по параметру u. Подробнее... | |
virtual bool | IsVClosed () const |
Определить, замкнута ли поверхность по параметру v. Подробнее... | |
virtual double | GetUPeriod () const |
Вернуть период для гладко замкнутой поверхности или 0. | |
const MbCurve3D & | GetCurve () const |
Дать образующую кривую. | |
MbCurve3D & | SetCurve () |
Дать образующую кривую для изменения. | |
![]() | |
virtual | ~MbSurface () |
Деструктор. | |
VISITING_CLASS (MbSurface) | |
Реализация функции, инициирующей посещение объекта. | |
virtual MbeSpaceType | Family () const |
Получить семейство объекта. | |
virtual double | DistanceToPoint (const MbCartPoint3D &) const |
Определить расстояние до точки. Подробнее... | |
virtual void | AddYourGabaritTo (MbCube &c) const |
Расширить присланный габаритный куб так, чтобы он включал в себя данный объект. Подробнее... | |
virtual void | Refresh () |
Перевести все временные (mutable) данные объекта в неопределённое (исходное) состояние. | |
virtual void | PrepareIntegralData (const bool forced) const |
Рассчитать временные (mutable) данные объекта. Подробнее... | |
virtual void | CalculateMesh (const MbStepData &stepData, const MbFormNote ¬e, MbMesh &mesh) const |
Построить полигональную копию mesh. Подробнее... | |
virtual MbProperty & | CreateProperty (MbePrompt name) const |
Создать собственное свойство с заданием его имени. | |
virtual bool | IsUTouch () const |
Определить, замкнута ли фактически поверхность по u-параметру независимо от гладкости замыкания. Подробнее... | |
virtual bool | IsVTouch () const |
Определить, замкнута ли фактически поверхность по v-параметру независимо от гладкости замыкания. Подробнее... | |
virtual bool | IsUPeriodic () const |
Определить, замкнута ли поверхность по параметру u. Подробнее... | |
virtual bool | IsVPeriodic () const |
Определить, замкнута ли поверхность по параметру v. Подробнее... | |
virtual double | GetVPeriod () const |
Вернуть период для гладко замкнутой поверхности или 0. | |
virtual double | GetPeriod (ptrdiff_t i) const |
Вернуть период. Подробнее... | |
virtual size_t | Periodicity () const |
Определить периодичность. Подробнее... | |
virtual bool | GetPoleUMin () const |
Существует ли полюс на границе параметрической области. | |
virtual bool | GetPoleUMax () const |
Существует ли полюс на границе параметрической области. | |
virtual bool | GetPoleVMin () const |
Существует ли полюс на границе параметрической области. | |
virtual bool | GetPoleVMax () const |
Существует ли полюс на границе параметрической области. | |
virtual bool | IsPole (double u, double v) const |
Является ли точка полюсом. | |
bool | IsPole (const MbCartPoint &uv) const |
Является ли точка полюсом. | |
virtual void | TangentU (double &u, double &v, MbVector3D &) const |
Вычислить касательный вектор по u. | |
virtual void | TangentV (double &u, double &v, MbVector3D &) const |
Вычислить касательный вектор по v. | |
virtual void | Normal (double &u, double &v, MbVector3D &) const |
Вычислить нормаль. | |
virtual void | NormalU (double &u, double &v, MbVector3D &) const |
Вычислить производную нормали по U. | |
virtual void | NormalV (double &u, double &v, MbVector3D &) const |
Вычислить производную нормали по V. | |
virtual void | _TangentU (double u, double v, MbVector3D &) const |
Вычислить касательный вектор по u на расширенной поверхности. | |
virtual void | _TangentV (double u, double v, MbVector3D &) const |
Вычислить касательный вектор по v на расширенной поверхности. | |
virtual void | _Normal (double u, double v, MbVector3D &) const |
Вычислить нормаль на расширенной поверхности. | |
virtual void | _NormalU (double u, double v, MbVector3D &) const |
Вычислить производную нормали на расширенной поверхности. | |
virtual void | _NormalV (double u, double v, MbVector3D &) const |
Вычислить производную нормали на расширенной поверхности. | |
virtual void | _NormalUU (double u, double v, MbVector3D &) const |
Вычислить вторую производную нормали на расширенной поверхности. | |
virtual void | _NormalUV (double u, double v, MbVector3D &) const |
Вычислить вторую производную нормали на расширенной поверхности. | |
virtual void | _NormalVV (double u, double v, MbVector3D &) const |
Вычислить вторую производную нормали на расширенной поверхности. | |
virtual void | _NormalD (double u, double v, double du, double dv, MbVector3D &der) const |
Вычислить производную нормали в точке с параметрами u v вдоль линии du dv. | |
virtual void | _PointNormal (double u, double v, MbCartPoint3D &pnt, MbVector3D &deru, MbVector3D &derv, MbVector3D &norm, MbVector3D &noru, MbVector3D &norv, MbVector3D &deruu, MbVector3D &dervv, MbVector3D &deruv) const |
Вычислить значения всех производных в точке. Подробнее... | |
double | SurfaceStep (const double &u, const double &v, bool alongU, const MbStepData &stepData) const |
Вычислить шаг параметра. Подробнее... | |
virtual const MbSurface & | GetSurface () const |
Дать себя (перегружена только у CurveBoundedSurface). | |
virtual const MbSurface & | GetBasisSurface () const |
Дать базовую поверхность, если есть, или себя. | |
virtual MbSurface & | SetSurface () |
Дать себя (перегружена только у CurveBoundedSurface). | |
virtual MbSurface & | SetBasisSurface () |
Дать базовую поверхность, если есть, или себя. | |
virtual void | GetLimitPoint (ptrdiff_t number, MbCartPoint3D &pnt) const |
Вычислить граничную точку. Подробнее... | |
virtual void | GetLimitPoint (ptrdiff_t number, MbCartPoint &pnt) const |
Вычислить двумерную граничную точку. Подробнее... | |
MbCartPoint3D | GetLimitPoint (ptrdiff_t number) const |
Вычислить граничную точку. Подробнее... | |
virtual double | CurvatureV (double u, double v) const |
Вычислить кривизну линии вдоль v. Подробнее... | |
double | NormalCurvatureU (double u, double v) const |
Вычислить нормальную кривизну линии вдоль u. Подробнее... | |
double | NormalCurvatureV (double u, double v) const |
Вычислить нормальную кривизну линии вдоль v. Подробнее... | |
double | NormalCurvature (double u, double v, double du, double dv) const |
Вычислить нормальную кривизну поверхности. Подробнее... | |
bool | MeanGaussCurvature (double u, double v, double &mean, double &gauss) const |
Вычислить Среднюю и Гауссову кривизну. Подробнее... | |
virtual bool | IsSameBase (const MbSurface &) const |
Является ли базовая поверхность копией базовой поверхности данного объекта. | |
virtual double | GetRadius () const |
Дать физический радиус объекта или ноль, если это невозможно. Подробнее... | |
virtual double | GetFilletRadius (const MbCartPoint3D &p) const |
Дать радиус скругления, если поверхность является поверхностью скругления. | |
virtual MbeParamDir | GetFilletDirection () const |
Направление поверхности скругления. | |
virtual bool | GetCylinderAxis (MbAxis3D &) const |
Дать ось вращения для поверхности. | |
virtual bool | GetCentre (MbCartPoint3D &c) const |
Выдать центр сферической поверхности. | |
virtual bool | ChangeCarrierBorne (const MbSurface &item, MbSurface &init, const MbMatrix &matr) |
Изменение носимых элементов. Подробнее... | |
MbSplineSurface * | NurbsSurface (bool bmatch=false) const |
Построить NURBS копию поверхности. Подробнее... | |
bool | NurbsParam (const MbNurbsParameters &tParam, bool uParam, double op1, double op2, bool &isClosedNurbs, double &epsilon, SArray< double > ¶ms) const |
Подготовить параметры для преобразования в NURBS поверхность. Подробнее... | |
void | CheckApproxPointParamsOpen (bool isU, double par, size_t degree, size_t pCount, SArray< double > &tList, SArray< double > &aKnots) const |
Выбрать точки для аппроксимации вдоль параметра. Подробнее... | |
void | CheckApproxPointParamsClosed (bool isU, double par, size_t degree, size_t pCount, SArray< double > &tList, SArray< double > &aKnots) const |
Выбрать точки для аппроксимации вдоль параметра. Подробнее... | |
virtual MbSurface * | NurbsSurface (const MbNurbsParameters &uParam, const MbNurbsParameters &vParam) const |
Построить NURBS копию поверхности. Подробнее... | |
virtual MbCurve3D * | CurveUV (const MbLineSegment &segm, bool bApprox=true) const |
Построить пространственную копию линии по параметрической линии. Подробнее... | |
virtual MbeItemLocation | PointRelative (const MbCartPoint3D &pnt, double eps=ANGLE_REGION) const |
Определить, с какой стороны от поверхности находится точка. Подробнее... | |
virtual MbeItemLocation | PointClassification (const MbCartPoint &pnt, bool ignoreClosed=false) const |
Находятся ли точка в области, принадлежащей поверхности. Подробнее... | |
virtual double | DistanceToBorder (const MbCartPoint &point, double &epsilon) const |
Вычислить параметрическое расстояние до ближайшей границы. Подробнее... | |
virtual size_t | CurveClassification (const MbCurve &curve, SArray< double > &tcurv, SArray< MbVector > &dir) const |
Определить точки пересечения кривoй с контурами поверхности. Подробнее... | |
size_t | SurfaceBorderIntersection (const MbCurve &curve, SArray< double > &tcurv, SArray< MbVector > &dir) const |
Определить точки пересечения кривoй с контурами поверхности. Подробнее... | |
virtual MbeNewtonResult | PointProjectionNewton (const MbCartPoint3D &p, size_t iterLimit, double &u, double &v, bool ext) const |
Нахождение проекции точки на поверхность. Для внутреннего использования. | |
virtual bool | NearPointProjection (const MbCartPoint3D &pnt, double &u, double &v, bool ext, MbRect2D *uvRange=NULL) const |
Найти проекцию точки на поверхность. Подробнее... | |
virtual MbeNewtonResult | DirectPointProjectionNewton (const MbCartPoint3D &p, const MbVector3D &vect, size_t iterLimit, double &u, double &v, double &w, bool ext) const |
Нахождение проекции точки на поверхность в направлении вектора. Для внутреннего использования. | |
virtual void | DirectPointProjection (const MbCartPoint3D &pnt, const MbVector3D &vect, SArray< MbCartPoint > &uv, bool ext, MbRect2D *uvRange=NULL) const |
Найти все проекции точки на поверхность вдоль вектора в любом из двух направлений. Подробнее... | |
virtual bool | NearDirectPointProjection (const MbCartPoint3D &pnt, const MbVector3D &vect, double &u, double &v, bool ext, MbRect2D *uvRange=NULL, bool onlyPositiveDirection=false) const |
Найти ближайшую проекцию точки на поверхность в направлении вектора. Подробнее... | |
virtual MbeNewtonResult | CurveIntersectNewton (const MbCurve3D &curv1, double funcEpsilon, size_t iterLimit, double &u0, double &v0, double &t1, bool ext0, bool ext1) const |
Решение системы уравнений для определения пересечения поверхности и кривой. Для внутреннего использования. | |
virtual MbeNewtonResult | CurveTangentNewton (const MbCurve3D &curv1, double funcEpsilon, size_t iterLimit, double &u0, double &v0, double &t1, bool ext0, bool ext1) const |
Решение системы уравнений для определения касания поверхности и кривой. Для внутреннего использования. | |
virtual void | CurveIntersection (const MbCurve3D &curv, SArray< MbCartPoint > &uv, SArray< double > &tt, bool ext0, bool ext, bool touchInclude=false) const |
Определить точки пересечения поверхности и кривой. Подробнее... | |
virtual MbeNewtonResult | SurfaceIntersectNewton (const MbSurface &surf1, MbeParamDir switchPar, double funcEpsilon, size_t iterLimit, double &u0, double &v0, double &u1, double &v1, bool ext0, bool ext1) const |
Решение системы уравнений для определения пересечения поверхностей. Для внутреннего использования. | |
virtual MbeNewtonResult | SurfaceTangentNewton (const MbSurface &surf1, MbeParamDir switchPar, double funcEpsilon, size_t iterLimit, double &u0, double &v0, double &u1, double &v1, bool ext0, bool ext1) const |
Решение системы уравнений для определения касания поверхностей. Для внутреннего использования. | |
virtual MbeNewtonResult | SilhouetteNewton (const MbVector3D &eye, bool perspective, const MbAxis3D *axis, MbeParamDir switchPar, double funcEpsilon, size_t iterLimit, double &u, double &v, bool ext) const |
Решение системы уравнений для определение точек очерка поверхности. Для внутреннего использования. | |
virtual bool | ProjectCurveOnSimilarSurface (const MbCurve3D &spaceCurve, const MbCurve &curve, const MbSurface &surfNew, MbCurve *&curveNew) const |
Построение проекции поверхностной кривой на совпадающую поверхность. Подробнее... | |
virtual ThreeStates | Salient () const |
Определить, выпуклая ли поверхность. | |
virtual double | DistanceToCurve (const MbCurve3D &curve, double &u, double &v, double &t, bool tCalc=false) const |
Вычислить ближайшее расстояние до кривой. Подробнее... | |
virtual double | DistanceToSurface (const MbSurface &surf1, double &u0, double &v0, double &u1, double &v1) const |
Вычислить ближайшее расстояние до поверхности. Подробнее... | |
MbeNewtonResult | PlacementNewton (const MbVector3D &vec, double angle, MbeParamDir switchPar, size_t iterLimit, double &u, double &v) const |
Построить касательные плейсменты конструктивных плоскостей. Для внутреннего использования. | |
bool | CreateVconstPlacements (const MbVector3D &axisZ, double angle, bool normalPlace, SArray< MbPlacement3D > &places) const |
Построить нормальные или касательные плейсменты на v-линиях. | |
bool | CreateUconstPlacements (const MbVector3D &axisZ, double angle, bool normalPlace, SArray< MbPlacement3D > &places) const |
Построить нормальные или касательные плейсменты на u-линиях. | |
virtual double | ParamArea () const |
Вычислить площадь области определения параметров. | |
virtual size_t | GetUPairs (double v, SArray< double > &u) const |
Вычислить U-пары от V. Подробнее... | |
virtual size_t | GetVPairs (double u, SArray< double > &v) const |
Вычислить V-пары от U. Подробнее... | |
MbeNewtonResult | IsoclinalNewton (const MbVector3D &dir, size_t iterLimit, double &u, double &v) const |
Определение параметров точки изоклины поверхности. Для внутреннего использования. | |
virtual void | GetIsoclinal (const MbVector3D &nor, SArray< MbCartPoint > &uv) const |
Найти все изоклины поверхности. Подробнее... | |
const MbCube & | GetGabarit () const |
Рассчитать габаритный куб поверхности. | |
const MbCube & | Cube () const |
Вернуть сохраненный габаритный куб. Он должен быть пустой. Рекомендуется использовать GetGabarit. | |
void | SetDirtyGabarit () const |
Сделать габарит пустым. Для внутреннего использования. | |
void | CopyGabarit (const MbSurface &s, const MbVector3D *to=NULL) |
Скопировать габаритный куб из копии. Подробнее... | |
double | GetGabDiagonal () const |
Вычислить диагональ габаритного куба. | |
void | CalculateRect (const MbPlacement3D &place, MbRect &rect) const |
Вычислить прямоугольный габарит поверхности в заданной плоскости. Подробнее... | |
virtual MbContour & | MakeContour (bool sense) const |
Вернуть граничный двумерный контур. Подробнее... | |
virtual MbCurve & | MakeSegment (size_t i, bool sense) const |
Вернуть сегмент граничного двумерного контура. Подробнее... | |
MbCurve & | MakeCurve (size_t number1, size_t number2) const |
Вернуть сегмент граничного двумерного контура. Подробнее... | |
virtual void | SetLimit (double u1, double v1, double u2, double v2) |
Установить пределы поверхности. Для внутреннего использования. | |
void | SetLimit (const MbRect &) |
Установить пределы поверхности. Для внутреннего использования. | |
virtual void | SetExtendedParamRegion (double u1, double v1, double u2, double v2) |
Установить расширенные пределы поверхности. Для внутреннего использования. | |
double | GetMaxParamDeltaU () const |
Дать максимальное приращение параметра U. | |
double | GetMaxParamDeltaV () const |
Дать максимальное приращение параметра V. | |
virtual double | GetParamDelta () const |
Дать максимальное приращение параметра. | |
virtual double | GetParamPrice () const |
Дать минимально различимую величину параметра. | |
virtual double | GetUParamToUnit () const |
Дать приращение параметра u, осреднённо соответствующее единичной длине в пространстве. | |
virtual double | GetVParamToUnit () const |
Дать приращение параметра v, осреднённо соответствующее единичной длине в пространстве. | |
virtual double | GetUParamToUnit (double u, double v) const |
Дать приращение параметра u, соответствующее единичной длине в пространстве. | |
virtual double | GetVParamToUnit (double u, double v) const |
Дать приращение параметра v, соответствующее единичной длине в пространстве. | |
virtual void | GetParamsToUnit (double u, double v, double &uParam, double &vParam) const |
Дать приращение параметра u и параметра v, соответствующее единичной длине в пространстве. | |
double | GetUEpsilon () const |
Дать минимально различимую величину параметра U. Соответствует длине в пространстве = Math::metricEpsilon. | |
double | GetVEpsilon () const |
Дать минимально различимую величину параметра V. Соответствует длине в пространстве = Math::metricEpsilon. | |
double | GetUEpsilon (double u, double v) const |
Дать минимально различимую величину параметра U. Соответствует длине в пространстве = Math::metricEpsilon. | |
double | GetVEpsilon (double u, double v) const |
Дать минимально различимую величину параметра V. Соответствует длине в пространстве = Math::metricEpsilon. | |
double | GetURegion () const |
Дать минимально различимую величину параметра U. Соответствует длине в пространстве = Math::metricRegion. | |
double | GetVRegion () const |
Дать минимально различимую величину параметра V. Соответствует длине в пространстве = Math::metricRegion. | |
double | GetURegion (double u, double v) const |
Дать минимально различимую величину параметра U. Соответствует длине в пространстве = Math::metricRegion. | |
double | GetVRegion (double u, double v) const |
Дать минимально различимую величину параметра V. Соответствует длине в пространстве = Math::metricRegion. | |
void | CalculatePolygon (double minPar, double maxPar, double constPar, MbeParamDir dir, const MbStepData &stepData, MbPolygon3D &polygon) const |
Рассчитать полигон по параметру U или V. Подробнее... | |
virtual void | CalculateSurfaceWire (const MbStepData &stepData, size_t beg, MbMesh &mesh, size_t uMeshCount=c3d::WIRE_MAX, size_t vMeshCount=c3d::WIRE_MAX) const |
Рассчитать сетку. Подробнее... | |
void | AddTesselation (const MbStepData &stepData, MbeParamDir dir, double u1, double u2, double v1, double v2, SArray< double > &uu, SArray< double > &vv) const |
Определить разбивку параметрической области поверхности с учетом направления. Подробнее... | |
virtual void | CalculateSurfaceGrid (const MbStepData &stepData, bool sense, MbGrid &grid) const |
Аппроксимировать поверхность треугольными пластинами. Подробнее... | |
virtual bool | IsRectangular () const |
Определить, ортогональны ли производные по u и v. | |
virtual bool | IsLineU () const |
Проверить, что все производные поверхности по U выше первой равны нулю. | |
virtual bool | IsLineV () const |
Проверить, что все производные поверхности по V выше первой равны нулю. | |
virtual bool | IsShift (const MbSpaceItem &obj, MbVector3D &dir, bool &isSame, double accuracy=LENGTH_EPSILON) const |
Определить, является ли объект смещением. Подробнее... | |
virtual void | CheckSurfParams (double &u, double &v) const |
Проверить параметры. Аналог глобальной функции _CheckParams, оптимизированный под использование кэшей. Подробнее... | |
bool | GetPlacement (MbPlacement3D *place, bool exact=false) const |
Дать плоскость (или только возможность ее выдачи). | |
bool | GetPlanePlacement (MbPlacement3D &place) const |
Дать плоскость. | |
bool | GetControlPlacement (MbPlacement3D &place, bool sameSense=true) const |
Дать плейсмент поверхности в средней точке. | |
bool | OrientPlacement (MbPlacement3D &place, bool normalSense=true) const |
Сориентировать ось Х плейсмента вдоль линии его пересечения с поверхностью. | |
bool | IsPointOn (const MbCartPoint3D &, double eps=METRIC_PRECISION) const |
Определить, лежит ли точка на плоскости. | |
void | PointOn (MbCartPoint &uv, MbCartPoint3D &p) const |
Вычислить точку на поверхности в области определения поверхности. | |
void | _PointOn (const MbCartPoint &uv, MbCartPoint3D &p) const |
Вычислить точку на продолженной поверхности. | |
void | Normal (MbCartPoint &uv, MbVector3D &v) const |
Вычислить нормаль к поверхности в области определения поверхности. | |
bool | GetMatrix (double xMin, double xMax, double yMin, double yMax, MbMatrix &matr) const |
Найти матрицу преобразования для кривых на поверхности при изменении параметризации. Подробнее... | |
double | GetUMid () const |
Среднее значение параметра u. | |
double | GetVMid () const |
Среднее значение параметра v. | |
double | GetURange () const |
Параметрическая длина по u. | |
double | GetVRange () const |
Параметрическая длина по v. | |
void | GetRect (MbRect &r) const |
Получить параметрические границы поверхности. | |
void | GetRect (MbRect2D &r) const |
Получить параметрические границы поверхности. | |
![]() | |
virtual | ~MbSpaceItem () |
Деструктор. | |
void | PrepareWrite () |
Регистрация объекта. Подробнее... | |
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 &other) | |
Конструктор копирования | |
virtual | ~TapeBase () |
Деструктор. | |
RegistrableRec | GetRegistrable () const |
Является ли потоковый класс регистрируемым. | |
void | SetRegistrable (RegistrableRec regs=registrable) const |
Установить состояние регистрации потокового класса. | |
virtual ClassDescriptor | GetClassDescriptor (const VersionContainer &) const =0 |
Получить дескриптор класса | |
virtual const char * | GetPureName (const VersionContainer &) const |
Получить имя класса. | |
![]() | |
MbRefItem () | |
Конструктор без параметров. | |
refcount_t | GetUseCount () const |
Выдать количество ссылок (выдать количество владельцев объекта). | |
refcount_t | AddRef () const |
Увеличить количество ссылок на единицу. | |
refcount_t | DecRef () const |
Уменьшить количество ссылок на единицу. | |
refcount_t | Release () const |
Уменьшить количество ссылок на единицу и, если количество ссылок стало равным нулю, удалить себя. | |
Защищенные члены | |
MbExplorationSurface (const MbCurve3D &c, const MbSpine &s, bool sameCurve, bool sameSpine, MbFunction &_scaling, MbFunction &_winding) | |
Конструктор по образующей и направляющей. Подробнее... | |
![]() | |
MbSweptSurface (const MbCurve3D &, bool same) | |
Конструктор по образующей. Подробнее... | |
void | InitSwept (const MbSweptSurface &) |
Инициализация по поверхности движения. | |
bool | CheckPlaneByLimitPoints () const |
Проверить по граничным точкам, может ли поверхность оказаться плоской. | |
![]() | |
MbSurface () | |
Конструктор. | |
MbSurface (const MbSurface &) | |
Конструктор копирования. | |
void | MoveGabarit (const MbVector3D &v) |
Сдвинуть габарит. | |
void | NormalCalculation (const MbVector3D &uDer, const MbVector3D &vDer, double u, double v, bool ext, MbVector3D &nor) const |
Вычислить нормаль по известным производным uDer и vDer в точке с параметрами u, v. | |
double | StepAlong (double u, double v, double sag, bool alongU, double stepMinCoeff, const MbVector3D &der, const MbVector3D &sec) const |
Вычислить шаг по параметру для заданного прогиба. | |
double | DeviationStepAlong (double u, double v, double angle, bool alongU, const MbVector3D &der, const MbVector3D &sec) const |
Вычислить шаг по параметру для заданного углового отклонения нормали. | |
![]() | |
MbSpaceItem () | |
Конструктор без параметров. | |
Защищенные данные | |
MbFunction * | scaling |
Функция второго параметра (v) масштабирования образующей кривой. | |
MbFunction * | winding |
Функция второго параметра (v) вращения образующей кривой. | |
MbAxis3D | axis |
Не пишется. | |
![]() | |
MbSpine * | spine |
Направляющая кривая. | |
MbCartPoint3D | origin |
Начало направляющей кривой. | |
![]() | |
MbCurve3D * | curve |
Образующая кривая. | |
double | umin |
Минимальное значение параметра u. | |
double | vmin |
Минимальное значение параметра v. | |
double | umax |
Максимальное значение параметра u. | |
double | vmax |
Максимальное значение параметра v. | |
bool | uclosed |
Признак замкнутости по параметру u. | |
bool | vclosed |
Признак замкнутости по параметру v. | |
![]() | |
MbCube | cube |
Габаритный куб поверхности. Подробнее... | |
Общие функции поверхности | |
void | Init () |
virtual MbSplineSurface * | NurbsSurface (double, double, double, double, bool bmatch=false) const |
Построить NURBS копию усеченной поверхности. Подробнее... | |
virtual MbSurface * | Offset (double d, bool same) const |
Построить эквидистантую поверхность. Подробнее... | |
virtual MbCurve3D * | CurveU (double v, MbRect1D *pRgn, bool bApprox=true) const |
Построить пространственную копию линии v = const. Подробнее... | |
virtual MbCurve3D * | CurveV (double u, MbRect1D *pRgn, bool bApprox=true) const |
Построить пространственную копию линии u = const. Подробнее... | |
virtual void | GetTesselation (const MbStepData &stepData, double u1, double u2, double v1, double v2, SArray< double > &uu, SArray< double > &vv) const |
Определить разбивку параметрической области поверхности вертикалями и горизонталями. Подробнее... | |
virtual size_t | GetUCount () const |
Количество разбиений по параметру u для проверки событий. | |
virtual size_t | GetVCount () const |
Количество разбиений по параметру v для проверки событий. | |
virtual size_t | GetUMeshCount () const |
Выдать количество разбиений по u. | |
virtual size_t | GetVMeshCount () const |
Выдать количество разбиений по v. | |
static MbSurface * | Create (const MbCurve3D &curve, const MbSpine &spine, bool samec, bool sames, MbFunction &_scaling, MbFunction &_winding) |
Создать кинематическую поверхность. Подробнее... | |
Поверхность заметания с масштабированием и поворотом образующей кривой.
Кинематическая поверхность образуется путем движения образующей кривой curve по направляющей кривой spine->curve. В процессе движения вдоль направляющей кривой образующая кривая сохраняет своё положение в движущейся локальной системе координат, начало которой совпадает с текущей точкой базовой кривой. Одна из осей движущейся локальной системы координат всегда совпадает с касательной направляющей кривой, а две другие оси ортогональны ей. Первый параметр поверхности совпадает с параметром образующей кривой. Второй параметр поверхности совпадает с параметром направляющей кривой.
|
protected |
Конструктор по образующей и направляющей.
Конструктор по образующей и направляющей.
[in] | c | - Образующая |
[in] | s | - Направляющая |
[in] | sameCurve | - Признак использования оригинала образующей, а не копии |
[in] | sameSpine | - Признак использования оригинала направляющей, а не копии |
|
virtual |
Создать копию объекта.
Создать копию объекта с использованием регистратора. Регистратор используется для предотвращения многократного копирования объекта. Если объект содержит ссылки на другие объекты, то вложенные объекты так же копируются. Допустимо не передавать регистратор в функцию. Тогда будет создана новая копия объекта. При копировании одиночного объекта или набора не связанных между собой объектов допустимо не использовать регистратор. Регистратор необходимо использовать, если надо последовательно копировать несколько взаимосвязанных объектов. Возможно, что связь объектов обусловлена наличием в них ссылок на общие объекты. Тогда, при копировании без использования регистратора, можно получить набор копий, содержащих ссылки на разные копии одного и того же вложенного объекта, что ведет к потере связи между копиями.
[in] | iReg | - Регистратор. |
Переопределяет метод предка MbEvolutionSurface.
|
virtual |
Определить, являются ли объекты равными.
Равными считаются однотипные объекты, все данные которых одинаковы (равны).
[in] | item | - Объект для сравнения. |
[in] | accuracy | - Точность сравнения. |
Переопределяет метод предка MbEvolutionSurface.
|
virtual |
Сделать объекты равным, если они подобны.
Равными можно сделать только подобные объекты. Подобный объект приравнивается присланному путем изменения численных данных.
[in] | item | - Объект для инициализации. |
Переопределяет метод предка MbEvolutionSurface.
|
virtual |
Определить, являются ли объекты подобными.
Подобными считаются однотипные объекты, данные которых можно приравнять или данные так же являются подобными (указатели). Подобный объект можно инициализировать по данным подобного ему объекта (приравнять один другому без изменения адресов).
[in] | item | - Объект для сравнения. |
Переопределяет метод предка MbEvolutionSurface.
|
virtual |
Преобразовать объект согласно матрице.
Преобразовать исходный объект согласно матрице c использованием регистратора. Если объект содержит ссылки на другие геометрические объекты, то вложенные объекты так же преобразуются согласно матрице. Регистратор служит для предотвращения многократного преобразования объекта. Допустимо использовать функцию без регистратора, если надо преобразовать одиночный объект. Если надо преобразовать набор взаимосвязанных объектов, необходимо использовать регистратор для предотвращения повторного преобразования вложенных объектов, поскольку не исключена ситуация, когда несколько объектов из набора содержат ссылки на один или несколько общих объектов, подлежащих трансформации.
[in] | matr | - Матрица преобразования. |
[in] | iReg | - Регистратор. |
Переопределяет метод предка MbEvolutionSurface.
|
virtual |
Сдвинуть объект вдоль вектора.
Сдвинуть геометрический объект вдоль вектора с использованием регистратора. Если объект содержит ссылки на другие геометрические объекты, то к вложенным объектам так же применяется операция сдвига. Регистратор служит для предотвращения многократного преобразования объекта. Допустимо использовать функцию без регистратора, если надо преобразовать одиночный объект. Если надо преобразовать набор взаимосвязанных объектов, необходимо использовать регистратор для предотвращения повторного преобразования вложенных объектов, поскольку не исключена ситуация, когда несколько объектов из набора содержат ссылки на один или несколько общих объектов, подлежащих сдвигу.
[in] | to | - Вектор сдвига. |
[in] | iReg | - Регистратор. |
Переопределяет метод предка MbEvolutionSurface.
|
virtual |
Повернуть объект вокруг оси на заданный угол.
Повернуть объект вокруг оси на заданный угол с использованием регистратора. Если объект содержит ссылки на другие геометрические объекты, то к вложенным объектам так же применяется операция поворота. Регистратор служит для предотвращения многократного преобразования объекта. Допустимо использовать функцию без регистратора, если надо преобразовать одиночный объект. Если надо преобразовать набор взаимосвязанных объектов, необходимо использовать регистратор для предотвращения повторного преобразования вложенных объектов, поскольку не исключена ситуация, когда несколько объектов из набора содержат ссылки на один или несколько общих объектов, подлежащих повороту.
[in] | axis | - Ось поворота. |
[in] | angle | - Угол поворота. |
[in] | iReg | - Регистратор. |
Переопределяет метод предка MbEvolutionSurface.
|
virtual |
Выдать свойства объекта.
Выдать внутренние данные (свойства) объекта для их просмотра и модификации.
[in] | properties | - Контейнер для внутренних данных объекта. |
Переопределяет метод предка MbEvolutionSurface.
|
virtual |
Изменить свойства объекта.
Изменение внутренних данных (свойств) объекта выполняется копированием соответствующих значений из присланного объекта.
[in] | properties | - Контейнер для внутренних данных объекта. |
Переопределяет метод предка MbEvolutionSurface.
|
virtual |
Вычислить точку на поверхности.
Скорректировать параметры при выходе их за пределы прямоугольной области определения и вычислить точку на поверхности.
[in] | u | - Первый параметр поверхности. |
[in] | v | - Второй параметр поверхности. |
[out] | p | - Вычисленная точка на поверхности. |
Переопределяет метод предка MbEvolutionSurface.
|
virtual |
Вычислить точку на поверхности.
Вычислить точку на поверхности в том числе и за пределами области определения параметров.
[in] | u | - Первый параметр поверхности. |
[in] | v | - Второй параметр поверхности. |
[out] | p | - Вычисленная точка на поверхности. |
Переопределяет метод предка MbEvolutionSurface.
|
virtual |
Вычислить значения точки и производных для заданных параметров.
Значения точки и производных вычисляются в пределах области определения и на расширенной поверхности.
[in] | u | - Параметр. |
[in] | v | - Параметр. |
[in] | ext | - В пределах области определения (false), на расширенной поверхности (true). |
[out] | pnt | - Точка. |
[out] | uDer | - Производная по u. |
[out] | vDer | - Производная по v. |
[out] | uuDer | - Вторая производная по u, если не ноль. |
[out] | vvDer | - Вторая производная по v, если не ноль. |
[out] | uvDer | - Вторая производная по u и по v, если не ноль. |
Переопределяет метод предка MbEvolutionSurface.
|
virtual |
Вычислить шаг параметра.
Вычислить шаг параметра для аппроксимации поверхности по величине прогиба вдоль линии с постоянным значением v. Вычисление шага проходит с учетом радиуса кривизны. Шаг аппроксимации вдоль кривой выбирается таким образом, чтобы отклонение кривой от ее полигона не превышало заданную величину прогиба.
[in] | u | - Параметр, определяющий точку на поверхности. |
[in] | v | - Параметр, определяющий точку на поверхности. |
[in] | sag | - Максимально допустимая величина прогиба. |
Переопределяет метод предка MbEvolutionSurface.
|
virtual |
Вычислить шаг параметра.
Вычислить шаг параметра для аппроксимации поверхности по величине прогиба вдоль линии с постоянным значением u. Вычисление шага проходит с учетом радиуса кривизны. Шаг аппроксимации вдоль кривой выбирается таким образом, чтобы отклонение кривой от ее полигона не превышало заданную величину прогиба.
[in] | u | - Параметр, определяющий точку на поверхности. |
[in] | v | - Параметр, определяющий точку на поверхности. |
[in] | sag | - Максимально допустимая величина прогиба. |
Переопределяет метод предка MbEvolutionSurface.
|
virtual |
Вычислить шаг параметра.
Вычислить шаг параметра для аппроксимации поверхности по углу отклонения касательной вдоль линии с постоянным значением u. Шаг аппроксимации вдоль кривой выбирается таким образом, чтобы угловое отклонение касательной к кривой в следующей точке не превышало заданную величину ang.
[in] | u | - Параметр, определяющий точку на поверхности. |
[in] | v | - Параметр, определяющий точку на поверхности. |
[in] | ang | - Максимально допустимый угол отклонения касательной. |
Переопределяет метод предка MbEvolutionSurface.
|
virtual |
Вычислить шаг параметра.
Вычислить шаг параметра для аппроксимации поверхности по углу отклонения касательной вдоль линии с постоянным значением v. Шаг аппроксимации вдоль кривой выбирается таким образом, чтобы угловое отклонение касательной к кривой в следующей точке не превышало заданную величину ang.
[in] | u | - Параметр, определяющий точку на поверхности. |
[in] | v | - Параметр, определяющий точку на поверхности. |
[in] | ang | - Максимально допустимый угол отклонения касательной. |
Переопределяет метод предка MbEvolutionSurface.
|
virtual |
Построить NURBS копию усеченной поверхности.
Полученная поверхность всегда не замкнута как по u, так и по v. Исключением является сама поверхность NURBS. Если поверхность не требует пересчета, то выдается ее копия Параметры u1, u2, v1, v2 - границы усечения поверхности.
[in] | u1 | - Минимальный параметр по U |
[in] | u2 | - Максимальный параметр по U |
[in] | v1 | - Минимальный параметр по V |
[in] | v2 | - Максимальный параметр по V |
[in] | bmatch | - true, если при преобразовании нужно сохранить однозначное сответствие параметрических областей |
Переопределяет метод предка MbEvolutionSurface.
|
virtual |
Построить эквидистантую поверхность.
[in] | d | - Расстояние по нормали от базовой до эквидистантной поверхности. |
[in] | same | - Флаг, показывающий, использовать ли в эквидистантной поверхности текущую поверхность или ее копию. |
Переопределяет метод предка MbEvolutionSurface.
|
virtual |
Построить пространственную копию линии v = const.
[in] | v | - Параметр по направлению V. |
[in] | pRgn | - Диапазон параметров по U. |
[in] | bApprox | - Если false, то вернет не ноль только в случае, если получится создать точную кривую. Если true, то вернет не ноль, если кривая не вырождена. |
Переопределяет метод предка MbEvolutionSurface.
|
virtual |
Построить пространственную копию линии u = const.
[in] | u | - Параметр по направлению U. |
[in] | pRgn | - Диапазон параметров по V. |
[in] | bApprox | - Если false, то вернет не ноль только в случае, если получится создать точную кривую. Если true, то вернет не ноль, если кривая не вырождена. |
Переопределяет метод предка MbEvolutionSurface.
|
virtual |
Определить разбивку параметрической области поверхности вертикалями и горизонталями.
Определить разбивку параметрической области поверхности вертикалями и горизонталями при триангуляции.
[in] | stepData | - Данные для вычисления шага при триангуляции. |
[in] | u1 | - Минимальное значение параметра u в области разбиения поверхности. |
[in] | u2 | - Максимальное значение параметра u в области разбиения поверхности. |
[in] | v1 | - Минимальное значение параметра v в области разбиения поверхности. |
[in] | v2 | - Максимальное значение параметра v в области разбиения поверхности. |
[out] | uu | - Множество параметров разбиения по u. |
[out] | vv | - Множество параметров разбиения по v. |
Переопределяет метод предка MbEvolutionSurface.