C3D Toolkit
Kernel - 112706, Vision - 2.6.3.0
|
Поверхность на базе триангуляции. Подробнее...
#include <surf_grid_surface.h>
Открытые члены | |
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 ang) const |
Вычислить шаг параметра. Подробнее... | |
virtual double | DeviationStepV (double u, double v, double ang) const |
Вычислить шаг параметра. Подробнее... | |
virtual size_t | GetUCount () const |
Количество разбиений по параметру u для проверки событий. | |
virtual size_t | GetVCount () const |
Количество разбиений по параметру v для проверки событий. | |
virtual void | GetLimitPoint (ptrdiff_t num, MbCartPoint3D &) const |
Вычислить граничную точку. Подробнее... | |
virtual void | GetLimitPoint (ptrdiff_t num, MbCartPoint &) const |
Вычислить двумерную граничную точку. Подробнее... | |
virtual MbeItemLocation | PointClassification (const MbCartPoint &, bool ignoreClosed=false) const |
Находятся ли точка в области, принадлежащей поверхности. Подробнее... | |
virtual double | DistanceToBorder (const MbCartPoint &, double &eps) const |
Вычислить параметрическое расстояние до ближайшей границы. Подробнее... | |
virtual size_t | CurveClassification (const MbCurve &curve, SArray< double > &tcurv, SArray< MbVector > &dir) const |
Определить точки пересечения кривoй с контурами поверхности. Подробнее... | |
virtual bool | NearPointProjection (const MbCartPoint3D &p, double &u, double &v, bool ext, MbRect2D *uvRange=c3d_null) const |
Найти проекцию точки на поверхность. Подробнее... | |
virtual void | DirectPointProjection (const MbCartPoint3D &p, const MbVector3D &vect, SArray< MbCartPoint > &uv, bool ext, MbRect2D *uvRange=c3d_null) const |
Найти все проекции точки на поверхность вдоль вектора в любом из двух направлений. Подробнее... | |
virtual void | CurveIntersection (const MbCurve3D &curv, SArray< MbCartPoint > &uv, SArray< double > &tt, bool ext0, bool ext, bool touchInclude=false) const |
Определить точки пересечения поверхности и кривой. Подробнее... | |
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. Подробнее... | |
virtual void | CalculateMesh (const MbStepData &stepData, const MbFormNote ¬e, MbMesh &mesh) const |
Построить полигональную копию mesh. Подробнее... | |
virtual void | CalculateSurfaceWire (const MbStepData &stepData, size_t beg, MbMesh &mesh, size_t uMeshCount=c3d::WIRE_MAX, size_t vMeshCount=c3d::WIRE_MAX) const |
Рассчитать сетку. Подробнее... | |
virtual void | CalculateSurfaceGrid (const MbStepData &stepData, bool sense, MbGrid &grid) const |
Аппроксимировать поверхность треугольными пластинами. Подробнее... | |
virtual void | GetTesselation (const MbStepData &stepData, double u1, double u2, double v1, double v2, SArray< double > &uu, SArray< double > &vv) const |
Определить разбивку параметрической области поверхности вертикалями и горизонталями. Подробнее... | |
virtual MbContour & | MakeContour (bool sense) const |
Вернуть граничный двумерный контур. Подробнее... | |
virtual MbCurve & | MakeSegment (size_t i, bool sense) const |
Вернуть сегмент граничного двумерного контура. Подробнее... | |
void | Init (const MbGridSurface &init) |
Инициализация объекта по другому такому же. | |
size_t | PointsCount () const |
Выдать количество точек. | |
size_t | NormalsCount () const |
Выдать количество нормалей. | |
size_t | ParamsCount () const |
Выдать количество параметров. | |
Общие функции геометрического объекта | |
virtual MbeSpaceType | IsA () const |
Получить тип объекта. | |
virtual MbSpaceItem & | Duplicate (MbRegDuplicate *=c3d_null) const |
Создать копию объекта. Подробнее... | |
virtual bool | IsSame (const MbSpaceItem &other, double accuracy=LENGTH_EPSILON) const |
Определить, являются ли объекты равными. Подробнее... | |
virtual bool | SetEqual (const MbSpaceItem &init) |
Сделать объекты равным, если они подобны. Подробнее... | |
virtual bool | IsSimilar (const MbSpaceItem &init) const |
Определить, являются ли объекты подобными. Подробнее... | |
virtual void | Transform (const MbMatrix3D &matr, MbRegTransform *=c3d_null) |
Преобразовать объект согласно матрице. Подробнее... | |
virtual void | Move (const MbVector3D &to, MbRegTransform *=c3d_null) |
Сдвинуть объект вдоль вектора. Подробнее... | |
virtual void | Rotate (const MbAxis3D &axis, double angle, MbRegTransform *=c3d_null) |
Повернуть объект вокруг оси на заданный угол. Подробнее... | |
virtual double | DistanceToPoint (const MbCartPoint3D &) const |
Определить расстояние до точки. Подробнее... | |
virtual void | GetProperties (MbProperties &properties) |
Выдать свойства объекта. Подробнее... | |
virtual void | SetProperties (const MbProperties &properties) |
Изменить свойства объекта. Подробнее... | |
virtual void | GetBasisPoints (MbControlData3D &) const |
Выдать контрольные точки объекта. | |
virtual void | SetBasisPoints (const MbControlData3D &) |
Изменить объект по контрольным точкам. | |
virtual void | Refresh () |
Перевести все временные (mutable) данные объекта в неопределённое (исходное) состояние. | |
Функции описания области определения поверхности | |
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. Подробнее... | |
Функции для работы в области определения поверхности | |
Функции PointOn, Derive... поверхностей корректируют параметры при выходе их за пределы прямоугольной области определения параметров. | |
virtual void | PointOn (double &u, double &v, MbCartPoint3D &p) const |
Вычислить точку на поверхности. Подробнее... | |
virtual void | DeriveU (double &u, double &v, MbVector3D &der) const |
Вычислить первую производную по u. | |
virtual void | DeriveV (double &u, double &v, MbVector3D &der) const |
Вычислить первую производную по v. | |
virtual void | DeriveUU (double &u, double &v, MbVector3D &der) const |
Вычислить вторую производную по u. | |
virtual void | DeriveVV (double &u, double &v, MbVector3D &der) const |
Вычислить вторую производную по v. | |
virtual void | DeriveUV (double &u, double &v, MbVector3D &der) const |
Вычислить вторую производную. | |
virtual void | DeriveUUU (double &u, double &v, MbVector3D &der) const |
Вычислить третью производную. | |
virtual void | DeriveUUV (double &u, double &v, MbVector3D &der) const |
Вычислить третью производную. | |
virtual void | DeriveUVV (double &u, double &v, MbVector3D &der) const |
Вычислить третью производную. | |
virtual void | DeriveVVV (double &u, double &v, MbVector3D &der) 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 | ~MbSurface () |
Деструктор. | |
VISITING_CLASS (MbSurface) | |
Реализация функции, инициирующей посещение объекта. | |
virtual MbeSpaceType | Type () const |
Получить групповой тип объекта. | |
virtual MbeSpaceType | Family () const |
Получить семейство объекта. | |
virtual void | AddYourGabaritTo (MbCube &c) const |
Расширить присланный габаритный куб так, чтобы он включал в себя данный объект. Подробнее... | |
virtual void | PrepareIntegralData (const bool forced) const |
Рассчитать временные (mutable) данные объекта. Подробнее... | |
virtual MbProperty & | CreateProperty (MbePrompt name) const |
Создать собственное свойство с заданием его имени. | |
size_t | size () const |
Количество объектов при трактовке объекта как вектора объектов. | |
const MbSurface * | operator[] (size_t) const |
Оператор доступа. | |
virtual bool | IsUTouch () const |
Определить, замкнута ли фактически поверхность по u-параметру независимо от гладкости замыкания. Подробнее... | |
virtual bool | IsVTouch () const |
Определить, замкнута ли фактически поверхность по v-параметру независимо от гладкости замыкания. Подробнее... | |
virtual bool | IsUPeriodic () const |
Определить, замкнута ли поверхность по параметру u. Подробнее... | |
virtual bool | IsVPeriodic () const |
Определить, замкнута ли поверхность по параметру v. Подробнее... | |
virtual double | GetUPeriod () const |
Вернуть период для гладко замкнутой поверхности или 0. | |
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 | Explore (double &u, double &v, MbCartPoint3D &pnt, MbVector3D &uDer, MbVector3D &vDer) const |
Вычислить значения точки и первых производных по u и по 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 | _NormalDD (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 |
Вычислить значения всех производных в точке. Подробнее... | |
virtual double | MetricStepU (double u, double v, double length) const |
Вычислить шаг параметра. Подробнее... | |
virtual double | MetricStepV (double u, double v, double length) 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 () |
Дать базовую поверхность, если есть, или себя. | |
MbCartPoint3D | GetLimitPoint (ptrdiff_t number) const |
Вычислить граничную точку. Подробнее... | |
virtual double | CurvatureU (double u, double v) const |
Вычислить кривизну линии вдоль u. Подробнее... | |
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 bool | IsPlanar (double accuracy=METRIC_EPSILON) 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 | GetCenterLines (std::vector< MbCurve3D *> &clCurves) const |
Дать осевые (центральные) линии для поверхности. | |
virtual void | ChangeCarrier (const MbSpaceItem &item, MbSpaceItem &init) |
Изменение носителя. Подробнее... | |
virtual bool | ChangeCarrierBorne (const MbSurface &item, MbSurface &init, const MbMatrix &matr) |
Изменение носимых элементов. Подробнее... | |
virtual bool | IsSpinePeriodic () const |
Периодичность направляющей. Подробнее... | |
MbSplineSurface * | NurbsSurface (bool bmatch=false) const |
Построить NURBS копию поверхности. Подробнее... | |
virtual MbSplineSurface * | NurbsSurface (double u1, double u2, double v1, double v2, bool bmatch=false) const |
Построить NURBS копию усеченной поверхности. Подробнее... | |
virtual MbSurface * | NurbsSurface (const MbNurbsParameters &uParam, const MbNurbsParameters &vParam) 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 * | 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 MbCurve3D * | CurveUV (const MbLineSegment &segm, bool bApprox=true) const |
Построить пространственную копию линии по параметрической линии. Подробнее... | |
virtual MbeItemLocation | PointRelative (const MbCartPoint3D &pnt, double eps=ANGLE_REGION) const |
Определить, с какой стороны от поверхности находится точка. Подробнее... | |
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 MbeNewtonResult | DirectPointProjectionNewton (const MbCartPoint3D &p, const MbVector3D &vect, size_t iterLimit, double &u, double &v, double &w, bool ext) const |
Нахождение проекции точки на поверхность в направлении вектора. Для внутреннего использования. | |
virtual bool | NearDirectPointProjection (const MbCartPoint3D &pnt, const MbVector3D &vect, double &u, double &v, bool ext, MbRect2D *uvRange=c3d_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 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 | IsSimilarToSurface (const MbSurface &surf, VERSION version, double precision=METRIC_PRECISION) const |
Определить, подобны ли поверхности для объединения. Подробнее... | |
virtual bool | IsSpecialSimilarToSurface (const MbSurface &surf, VERSION version, double precision=METRIC_PRECISION) const |
Подобные ли поверхности для объединения (слива). Специальный случай. Для внутреннего использования. | |
virtual bool | ProjectCurveOnSimilarSurface (const MbCurve3D &spaceCurve, const MbCurve &curve, const MbSurface &surfNew, MbCurve *&curveNew) const |
Построение проекции поверхностной кривой на совпадающую поверхность. Подробнее... | |
bool | ProjectCurveOnSimilarSurface (const MbCurve3D &spaceCurve, const MbCurve &curve, const MbSurface &surfNew, SPtr< MbCurve > &curveNew) const |
Построение проекции поверхностной кривой на совпадающую поверхность. Подробнее... | |
virtual bool | GetMatrixToSurface (const MbSurface &surf, MbMatrix &matr, VERSION version, double precision=METRIC_PRECISION) const |
Дать двумерную матрицу преобразования из своей параметрической области в параметрическую область surf. Подробнее... | |
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 |
Вычислить ближайшее расстояние до поверхности. Подробнее... | |
virtual bool | CreateNormalPlacements (const MbVector3D &axisZ, double angle, SArray< MbPlacement3D > &places) const |
Построить нормальные плейсменты конструктивных плоскостей. | |
virtual bool | CreateTangentPlacements (const MbVector3D &axisZ, SArray< MbPlacement3D > &places) 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-линиях. | |
MbeNewtonResult | IsoclinalNewton (const MbVector3D &dir, size_t iterLimit, double &u, double &v) const |
Определение параметров точки изоклины поверхности. Для внутреннего использования. | |
virtual void | GetIsoclinal (const MbVector3D &nor, SArray< MbCartPoint > &uv) const |
Найти все изоклины поверхности. Подробнее... | |
virtual void | CalculateGabarit (MbCube &cube) const |
Рассчитать габарит поверхности. Рекомендуется использовать GetGabarit. | |
virtual void | CalculateLocalGabarit (const MbMatrix3D &into, MbCube &cube) const |
Рассчитать габарит в локальной системе координат. | |
const MbCube & | GetGabarit () const |
Рассчитать габаритный куб поверхности. | |
const MbCube & | Cube () const |
Вернуть сохраненный габаритный куб. Он должен быть пустой. Рекомендуется использовать GetGabarit. | |
void | SetDirtyGabarit () const |
Сделать габарит пустым. Для внутреннего использования. | |
void | CopyGabarit (const MbSurface &s, const MbVector3D *to=c3d_null) |
Скопировать габаритный куб из копии. Подробнее... | |
double | GetGabDiagonal () const |
Вычислить диагональ габаритного куба. | |
void | CalculateRect (const MbPlacement3D &place, MbRect &rect) 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) |
Установить расширенные пределы поверхности. Для внутреннего использования. | |
virtual void | IncludePoint (double u, double v) |
Включить точку в область определения. Для внутреннего использования. | |
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, соответствующее единичной длине в пространстве. | |
double | GetUParamToUnit (const MbCartPoint &uv) const |
Дать приращение параметра u, соответствующее единичной длине в пространстве. | |
double | GetVParamToUnit (const MbCartPoint &uv) 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. | |
virtual size_t | GetUMeshCount () const |
Выдать количество разбиений по u. | |
virtual size_t | GetVMeshCount () const |
Выдать количество разбиений по v. | |
void | CalculatePolygon (double minPar, double maxPar, double constPar, MbeParamDir dir, const MbStepData &stepData, MbPolygon3D &polygon) const |
Рассчитать полигон по параметру U или V. Подробнее... | |
void | AddTesselation (const MbStepData &stepData, MbeParamDir dir, double u1, double u2, double v1, double v2, SArray< double > &uu, SArray< double > &vv) 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 () const |
Регистрация объекта. Подробнее... | |
virtual MbeRefType | RefType () const |
Получить регистрационный тип (для копирования, дублирования). | |
virtual bool | IsFamilyRegistrable () const |
Принадлежит ли объект к регистрируемому семейству. | |
void | CalculateWire (const MbStepData &stepData, MbMesh &mesh) const |
void | CalculateWire (double sag, MbMesh &mesh) const |
virtual void | GetBasisItems (RPArray< MbSpaceItem > &) |
Выдать базовые объекты в присланный контейнер. | |
![]() | |
TapeBase (RegistrableRec regs=noRegistrable) | |
Конструктор. | |
TapeBase (const TapeBase &) | |
Конструктор копирования | |
virtual | ~TapeBase () |
Деструктор. | |
RegistrableRec | GetRegistrable () const |
Является ли потоковый класс регистрируемым. | |
void | SetRegistrable (RegistrableRec regs=registrable) const |
Установить состояние регистрации потокового класса. | |
virtual ClassDescriptor | GetClassDescriptor (const VersionContainer &) const =0 |
Получить дескриптор класса | |
virtual const char * | GetPureName (const VersionContainer &) const |
Получить имя класса. | |
![]() | |
MbRefItem () | |
Конструктор без параметров. | |
refcount_t | GetUseCount () const |
Выдать количество ссылок (выдать количество владельцев объекта). | |
refcount_t | AddRef () const |
Увеличить количество ссылок на единицу. | |
refcount_t | DecRef () const |
Уменьшить количество ссылок на единицу. | |
refcount_t | Release () const |
Уменьшить количество ссылок на единицу и, если количество ссылок стало равным нулю, удалить себя. | |
![]() | |
void | Lock () const |
Включить блокировку (блокировка происходит только при наличии параллельности). | |
void | Unlock () const |
Снять блокировку, если она была установлена. | |
CommonRecursiveMutex * | GetLock () const |
Выдать указатель на объект мьютекса. Возращает c3d_null, если параллельности нет. Для использования в ScopedLock. | |
Открытые статические члены | |
template<class Params , class Points , class Normals , class Triangles , class Bounds > | |
static MbGridSurface * | Create (const Params &_params, const Points &_points, const Normals &_normals, const Triangles &_triangles, const Bounds &_bounds) |
Создание поверхности. | |
Защищенные члены | |
template<class Params , class Points , class Normals , class Triangles , class Bounds > | |
MbGridSurface (const Params &_params, const Points &_points, const Normals &_normals, const Triangles &_triangles, const Bounds &_bounds) | |
Конструктор поверхности. | |
![]() | |
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 () | |
Конструктор без параметров. | |
Дополнительные унаследованные члены | |
![]() | |
MbCube | cube |
Габаритный куб поверхности. Подробнее... | |
Поверхность на базе триангуляции.
Поверхность на базе триангуляции образована криволинейными треугольниками, гладко стыкующимися между собой по общим сторонам. В общих вершинах стыкующиеся треугольники имеют общую нормаль. Сторону треугольников изменяются по кубическому закону.
|
virtual |
Создать копию объекта.
Создать копию объекта с использованием регистратора. Регистратор используется для предотвращения многократного копирования объекта. Если объект содержит ссылки на другие объекты, то вложенные объекты так же копируются. Допустимо не передавать регистратор в функцию. Тогда будет создана новая копия объекта. При копировании одиночного объекта или набора не связанных между собой объектов допустимо не использовать регистратор. Регистратор необходимо использовать, если надо последовательно копировать несколько взаимосвязанных объектов. Возможно, что связь объектов обусловлена наличием в них ссылок на общие объекты. Тогда, при копировании без использования регистратора, можно получить набор копий, содержащих ссылки на разные копии одного и того же вложенного объекта, что ведет к потере связи между копиями.
[in] | iReg | - Регистратор. |
Замещает MbSurface.
|
virtual |
Определить, являются ли объекты равными.
Равными считаются однотипные объекты, все данные которых одинаковы (равны).
[in] | item | - Объект для сравнения. |
[in] | accuracy | - Точность сравнения. |
Замещает MbSurface.
|
virtual |
Сделать объекты равным, если они подобны.
Равными можно сделать только подобные объекты. Подобный объект приравнивается присланному путем изменения численных данных.
[in] | item | - Объект для инициализации. |
Замещает MbSurface.
|
virtual |
Определить, являются ли объекты подобными.
Подобными считаются однотипные объекты, данные которых можно приравнять или данные так же являются подобными (указатели). Подобный объект можно инициализировать по данным подобного ему объекта (приравнять один другому без изменения адресов).
[in] | item | - Объект для сравнения. |
Переопределяет метод предка MbSpaceItem.
|
virtual |
Преобразовать объект согласно матрице.
Преобразовать исходный объект согласно матрице c использованием регистратора. Если объект содержит ссылки на другие геометрические объекты, то вложенные объекты так же преобразуются согласно матрице. Регистратор служит для предотвращения многократного преобразования объекта. Допустимо использовать функцию без регистратора, если надо преобразовать одиночный объект. Если надо преобразовать набор взаимосвязанных объектов, необходимо использовать регистратор для предотвращения повторного преобразования вложенных объектов, поскольку не исключена ситуация, когда несколько объектов из набора содержат ссылки на один или несколько общих объектов, подлежащих трансформации.
[in] | matr | - Матрица преобразования. |
[in] | iReg | - Регистратор. |
Замещает MbSurface.
|
virtual |
Сдвинуть объект вдоль вектора.
Сдвинуть геометрический объект вдоль вектора с использованием регистратора. Если объект содержит ссылки на другие геометрические объекты, то к вложенным объектам так же применяется операция сдвига. Регистратор служит для предотвращения многократного преобразования объекта. Допустимо использовать функцию без регистратора, если надо преобразовать одиночный объект. Если надо преобразовать набор взаимосвязанных объектов, необходимо использовать регистратор для предотвращения повторного преобразования вложенных объектов, поскольку не исключена ситуация, когда несколько объектов из набора содержат ссылки на один или несколько общих объектов, подлежащих сдвигу.
[in] | to | - Вектор сдвига. |
[in] | iReg | - Регистратор. |
Замещает MbSurface.
|
virtual |
Повернуть объект вокруг оси на заданный угол.
Повернуть объект вокруг оси на заданный угол с использованием регистратора. Если объект содержит ссылки на другие геометрические объекты, то к вложенным объектам так же применяется операция поворота. Регистратор служит для предотвращения многократного преобразования объекта. Допустимо использовать функцию без регистратора, если надо преобразовать одиночный объект. Если надо преобразовать набор взаимосвязанных объектов, необходимо использовать регистратор для предотвращения повторного преобразования вложенных объектов, поскольку не исключена ситуация, когда несколько объектов из набора содержат ссылки на один или несколько общих объектов, подлежащих повороту.
[in] | axis | - Ось поворота. |
[in] | angle | - Угол поворота. |
[in] | iReg | - Регистратор. |
Замещает MbSurface.
|
virtual |
Определить расстояние до точки.
Определить расстояние до точки.
[in] | point | - Точка. |
Переопределяет метод предка MbSurface.
|
virtual |
Выдать свойства объекта.
Выдать внутренние данные (свойства) объекта для их просмотра и модификации.
[in] | properties | - Контейнер для внутренних данных объекта. |
Замещает MbSurface.
|
virtual |
Изменить свойства объекта.
Изменение внутренних данных (свойств) объекта выполняется копированием соответствующих значений из присланного объекта.
[in] | properties | - Контейнер для внутренних данных объекта. |
Замещает MbSurface.
|
virtual |
Определить, замкнута ли поверхность по параметру u.
Определить, замкнута ли гладко поверхность по u-параметру без учета граничного контура. Всегда false для MbCurveBoundSurface. Рекомендуется использовать IsUPeriodic.
Замещает MbSurface.
|
virtual |
Определить, замкнута ли поверхность по параметру v.
Определить, замкнута ли гладко поверхность по v-параметру без учета граничного контура. Всегда false для MbCurveBoundSurface. Рекомендуется использовать IsVPeriodic.
Замещает MbSurface.
|
virtual |
Вычислить точку на поверхности.
Скорректировать параметры при выходе их за пределы прямоугольной области определения и вычислить точку на поверхности.
[in] | u | - Первый параметр поверхности. |
[in] | v | - Второй параметр поверхности. |
[out] | p | - Вычисленная точка на поверхности. |
Замещает MbSurface.
|
virtual |
Вычислить точку на поверхности.
Вычислить точку на поверхности в том числе и за пределами области определения параметров.
[in] | u | - Первый параметр поверхности. |
[in] | v | - Второй параметр поверхности. |
[out] | p | - Вычисленная точка на поверхности. |
Переопределяет метод предка MbSurface.
|
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, если не ноль. |
Переопределяет метод предка MbSurface.
|
virtual |
Вычислить шаг параметра.
Вычислить шаг параметра для аппроксимации поверхности по величине прогиба вдоль линии с постоянным значением v. Вычисление шага проходит с учетом радиуса кривизны. Шаг аппроксимации вдоль кривой выбирается таким образом, чтобы отклонение кривой от ее полигона не превышало заданную величину прогиба.
[in] | u | - Параметр, определяющий точку на поверхности. |
[in] | v | - Параметр, определяющий точку на поверхности. |
[in] | sag | - Максимально допустимая величина прогиба. |
Переопределяет метод предка MbSurface.
|
virtual |
Вычислить шаг параметра.
Вычислить шаг параметра для аппроксимации поверхности по величине прогиба вдоль линии с постоянным значением u. Вычисление шага проходит с учетом радиуса кривизны. Шаг аппроксимации вдоль кривой выбирается таким образом, чтобы отклонение кривой от ее полигона не превышало заданную величину прогиба.
[in] | u | - Параметр, определяющий точку на поверхности. |
[in] | v | - Параметр, определяющий точку на поверхности. |
[in] | sag | - Максимально допустимая величина прогиба. |
Переопределяет метод предка MbSurface.
|
virtual |
Вычислить шаг параметра.
Вычислить шаг параметра для аппроксимации поверхности по углу отклонения касательной вдоль линии с постоянным значением u. Шаг аппроксимации вдоль кривой выбирается таким образом, чтобы угловое отклонение касательной к кривой в следующей точке не превышало заданную величину ang.
[in] | u | - Параметр, определяющий точку на поверхности. |
[in] | v | - Параметр, определяющий точку на поверхности. |
[in] | ang | - Максимально допустимый угол отклонения касательной. |
Переопределяет метод предка MbSurface.
|
virtual |
Вычислить шаг параметра.
Вычислить шаг параметра для аппроксимации поверхности по углу отклонения касательной вдоль линии с постоянным значением v. Шаг аппроксимации вдоль кривой выбирается таким образом, чтобы угловое отклонение касательной к кривой в следующей точке не превышало заданную величину ang.
[in] | u | - Параметр, определяющий точку на поверхности. |
[in] | v | - Параметр, определяющий точку на поверхности. |
[in] | ang | - Максимально допустимый угол отклонения касательной. |
Переопределяет метод предка MbSurface.
|
virtual |
Вычислить граничную точку.
Вычислить одну из точек, параметры которых принимают наибольшие или наименьшие значения.
[in] | number | - Номер граничной точки. 1 соответствует точке (umin, vmin) 2 - точке (umax, vmin) 3 - точке (umax, vmax) 4 - точке (umin, vmax) |
[in,out] | pnt | - Вычисленная точка. |
Переопределяет метод предка MbSurface.
|
virtual |
Вычислить двумерную граничную точку.
Вычислить одну из точек, параметры которых принимают наибольшие или наименьшие значения.
[in] | number | - Номер граничной точки. 1 соответствует точке (umin, vmin) 2 - точке (umax, vmin) 3 - точке (umax, vmax) 4 - точке (umin, vmax) |
[in,out] | pnt | - Вычисленная точка. |
Переопределяет метод предка MbSurface.
|
virtual |
Находятся ли точка в области, принадлежащей поверхности.
Исследуется двумерная точка в параметрической плоскости поверхности.
[in] | pnt | - Исследуемая точка. |
[in] | ignoreClosed | - Учитывать ли замкнутость поверхности. Если true, то замкнутость не учитывается. |
Переопределяет метод предка MbSurface.
|
virtual |
Вычислить параметрическое расстояние до ближайшей границы.
Найденное расстояние до ближайшей границы имеет положительное значение, если точка находится внутри, и отрицательное - если снаружи.
[in] | point | - Исследуемая точка. |
[in] | epsilon | - Точность определения попадания точки на поверхность. |
Переопределяет метод предка MbSurface.
|
virtual |
Определить точки пересечения кривoй с контурами поверхности.
Определить точки пересечения кривoй с границами поверхности для нахождения частей кривой в пределах поверхности и векторов для их сдвига в пределы поверхности. Вектор сдвига определен для каждой точки пересечения. Если вектор сдвига найти нельзя, то в массив сохраняется вектор нулевой длины. Он может быть ненулевым, если поверхность замкнута хотя бы по одному из направлений. Тогда вектор сдвига позволяет сдвинуть часть кривой на некоторое количество периодов так, чтобы найденная точка пересечения кривой с границей находилась бы в пределах поверхности и производная к кривой в этой точке была бы направлена внутрь поверхности. С помощью вектора сдвига кривую можно сдвинуть на некоторое количество периодов. То есть метрически кривая не изменится.
[in] | curve | - Заданная кривая. |
[in,out] | tcurv | - Множество параметров кривой, соответствующих точкам пересечения. |
[in,out] | dir | - Множество векторов сдвига. |
Переопределяет метод предка MbSurface.
|
virtual |
Найти проекцию точки на поверхность.
Найти ближайшую проекцию точки на поверхность или ее продолжение по заданному начальному приближению. Если задан диапазон изменения параметров uvRange, то надо найти проекцию в заданном диапазоне. Диапазон параметров может выходить за область определения параметров поверхности. Используется метод Ньютона.
[in] | pnt | - Заданная точка. |
[in,out] | u | - На входе - начальное приближение, на выходе - параметр, соответствующий ближайшей проекции. |
[in,out] | v | - На входе - начальное приближение, на выходе - параметр, соответствующий ближайшей проекции. |
[in] | ext | - Флаг, определяющий, искать ли проекцию на продолжении поверхности (если true, то искать). |
[in] | uvRange | - Диапазон изменения параметров, в котором надо найти решение. |
Переопределяет метод предка MbSurface.
|
virtual |
Найти все проекции точки на поверхность вдоль вектора в любом из двух направлений.
Вычислить все точки пересечения поверхности с лучом, выходящим из заданной точки p по направлению vect. Если задан диапазон изменения параметров uvRange, то надо найти проекцию в заданном диапазоне. Диапазон параметров может выходить за область определения параметров поверхности.
[in] | pnt | - Заданная точка. |
[in] | vect | - Вектор направления. |
[out] | uv | - Множество точек проекции в области определения поверхности. |
[in] | ext | - Флаг, определяющий, искать ли проекцию на продолжении поверхности (если true, то искать). |
[in] | uvRange | - Диапазон изменения параметров поверхности, в котором надо найти решение. |
Переопределяет метод предка MbSurface.
|
virtual |
Определить точки пересечения поверхности и кривой.
Определить точки пересечения поверхности и кривой.
[in] | curv | - Заданная кривая. |
[in] | uv | - Множество точек пересечения на поверхности. |
[in,out] | tt | - Множество точек пересечения на кривой. |
[in] | ext0 | - Флаг, определяющий, искать ли пересечения на расширенной поверхности (если true, то искать). |
[in] | ext | - Флаг, определяющий, искать ли пересечения на продолжении кривой (если true, то искать). |
[in] | touchInclude | - Считать ли касание пересечением. Если true, то считать. |
Переопределяет метод предка MbSurface.
|
virtual |
Вычислить U-пары от V.
Вычислить значимые параметры u поверхности при заданном параметре v. В случае поверхности общего вида - минимальное и максимальное значения параметра u.
[in] | v | - Заданный параметр. |
[out] | u | - Множество значений u. |
Переопределяет метод предка MbSurface.
|
virtual |
Вычислить V-пары от U.
Вычислить значимые параметры v поверхности при заданном параметре u. В случае поверхности общего вида - минимальное и максимальное значения параметра v.
[in] | u | - Заданный параметр. |
[out] | v | - Множество значений v. |
Переопределяет метод предка MbSurface.
|
virtual |
Построить полигональную копию mesh.
Построить полигональную копию данного объекта, представленную полигонами, или/и плоскими пластинами.
[in] | stepData | - Данные для вычисления шага при построении полигонального. |
[in] | note | - Способ построения полигонального объекта. |
[in,out] | mesh | - Построенный полигональный объект. |
Переопределяет метод предка MbSurface.
|
virtual |
Рассчитать сетку.
В функции производится расчет сетки для отрисовки поверхности.
[in] | sag | - Величина прогиба, определяющая точность. |
[in] | beg | - Номер первого узла, который попадет в сетку, по каждому из направлений. Для построения сетки для всей поверхности beg == 0. |
[out] | mesh | - Насчитанный Фасетный объект. |
[in] | uMeshCount | - Количество u-линий отрисовочной сетки. |
[in] | vMeshCount | - Количество v-линий отрисовочной сетки. |
Переопределяет метод предка MbSurface.
|
virtual |
Аппроксимировать поверхность треугольными пластинами.
Аппроксимировать поверхность треугольными пластинами.
[in] | stepData | - Данные для вычисления шага при триангуляции. |
[in] | sense | - Определяет совпадение нормалей поверхности и треугольников. |
[out] | grid | - Результат разбиения. |
Переопределяет метод предка MbSurface.
|
virtual |
Определить разбивку параметрической области поверхности вертикалями и горизонталями.
Определить разбивку параметрической области поверхности вертикалями и горизонталями при триангуляции.
[in] | stepData | - Данные для вычисления шага при триангуляции. |
[in] | u1 | - Минимальное значение параметра u в области разбиения поверхности. |
[in] | u2 | - Максимальное значение параметра u в области разбиения поверхности. |
[in] | v1 | - Минимальное значение параметра v в области разбиения поверхности. |
[in] | v2 | - Максимальное значение параметра v в области разбиения поверхности. |
[out] | uu | - Множество параметров разбиения по u. |
[out] | vv | - Множество параметров разбиения по v. |
Переопределяет метод предка MbSurface.
|
virtual |
Вернуть граничный двумерный контур.
Функция создает новый двумерный граничный контур. После использования объект надо удалить.
[in] | sense | - Совпадает ли направление контура с направлением обхода против часовой стрелки. |
Переопределяет метод предка MbSurface.
|
virtual |
Вернуть сегмент граничного двумерного контура.
Функция создает сегмент граничного контура в соответствии с параметром i.
i = 0 - Отрезок границы при v = vmin
i = 1 - Отрезок границы при u = umax
i = 2 - Отрезок границы при v = vmax
i = 3 - Отрезок границы при u = umin
После использования объект надо удалить.
[in] | i | - Номер сегмента. |
[in] | sense | - Совпадает ли направление контура с направлением обхода против часовой стрелки. |
Переопределяет метод предка MbSurface.