C3D Kernel  104065
Классы | Перечисления | Функции
Файл mb_nurbs_function.h

Модуль геометрических построений. Подробнее...

Классы

class  MbCurveIntoNurbsInfo
 Дополнительная информация для преобразования кривой или поверхности в Nurbs. Подробнее...
struct  MbNurbsParameters
 Параметры построения NURBS копии объекта. Подробнее...
struct  MbNurbsPointInfo
 Параметры узловой точки сплайновой копии объекта. Подробнее...

Перечисления

enum  MbeSplineCreateType { sct_Version0 = 0, sct_Version1 = 1, sct_Version2 = 2 }
 Флаг, определяющий построение сплайна, проходящего через точки. Подробнее...

Функции

template<class Type >
double GetParamDistance (const Type &p1, const Type &p2, MbeSplineParamType spType)
 Дать меру расстояния.
bool IsValidNurbsParams (ptrdiff_t degree, bool closed, size_t pcnt)
 Проверить параметры инициализации nurbs-объекта.
bool IsValidNurbsParams (ptrdiff_t degree, bool closed, size_t pcnt, size_t wcnt)
 Проверить параметры инициализации nurbs-объекта.
bool IsValidNurbsParams (ptrdiff_t degree, bool closed, size_t pcnt, size_t wcnt, size_t kcnt)
 Проверить параметры инициализации nurbs-объекта.
template<class KnotsVector >
bool IsValidNurbsParamsExt (ptrdiff_t degree, bool closed, size_t pcnt, const KnotsVector &knots)
 Проверить параметры инициализации nurbs-кривой.
template<class PointVector , class DoubleVector >
bool IsValidNurbsParamsExt (ptrdiff_t degree, bool closed, const PointVector &pnts, const DoubleVector *wts, const DoubleVector *knots=NULL)
 Проверить параметры инициализации nurbs-кривой.
template<class KnotsVector >
bool IsValidNurbsKnots (const KnotsVector &knots, double eps=EXTENT_EPSILON)
 Проверить узловой вектор nurbs-объекта.
template<class KnotsVector >
ptrdiff_t KnotIndex (ptrdiff_t degree, const KnotsVector &knots, double &t)
 Определение индекса узла left для первой ненулевой функции.
template<class KnotsVector >
ptrdiff_t DefineKnotsVector (ptrdiff_t degree, bool closed, ptrdiff_t uppPointsIndex, KnotsVector &knots)
 Определить узловой вектор (равномерная параметризация).
bool DefineKnotsVector (ptrdiff_t degree, bool closed, size_t count, const SArray< double > *params, SArray< double > &knots)
 Определить узловой вектор.
template<class Points , class Params >
bool DefineThroughPointsParams (const Points &points, MbeSplineParamType spType, bool closed, Params &params)
 Определить параметрическое распределение точек.
template<class Knots , class DoubleVector >
bool BasisFuns (ptrdiff_t i, double t, ptrdiff_t p, const Knots &knots, DoubleVector &nsplines, DoubleVector &lrVect)
 Вычисление B - базиса (degree - порядок B-сплайна, p = (degree - 1) - степень полинома(B-сплайна)).
template<class DoubleVector >
bool CalcBsplvb (const DoubleVector &knots, double t, ptrdiff_t left, ptrdiff_t degree, DoubleVector &biatx, DoubleVector &lrVect)
void AllBasisFuns (ptrdiff_t i, double t, ptrdiff_t p, const SArray< double > &knots, double **ndu, double *left, double *right, bool newPatch=true)
void AllBasisFuns (ptrdiff_t i, double t, ptrdiff_t p, const SArray< double > &knots, double *ndu, size_t degree, double *left, double *right, bool newPatch=true)
bool CalcDBsplvb (const SArray< double > &knots, ptrdiff_t degree, double t, ptrdiff_t left, ptrdiff_t n, Array2< double > &values)
 Вычислить значения базисного сплайна и его производных.
template<class Point , class NurbsVector , class KnotsVector >
void CurveDeriveCpts (ptrdiff_t p, const KnotsVector &U, const Point *P, const double *W, size_t pointCount, const NurbsVector *PW, ptrdiff_t d, ptrdiff_t r1, ptrdiff_t r2, NurbsVector *PK)
 Вычислить все разностные формы кривой.
template<class Point , class NurbsVector , class KnotsVector >
void CurveDeriveCpts (ptrdiff_t p, const KnotsVector &U, const Point *P, const double w, size_t pointCount, const NurbsVector *PW, ptrdiff_t d, ptrdiff_t r1, ptrdiff_t r2, NurbsVector *PK)
 Вычислить все разностные формы кривой.
template<class Point , class Homogeneous >
void CurveDeriveCpts (ptrdiff_t p, const double *U, const Point *P, const double *W, size_t pointCount, ptrdiff_t r1, ptrdiff_t r2, Homogeneous *H0, Homogeneous *H1, Homogeneous *H2, Homogeneous *H3)
 Вычислить все разностные формы кривой.
void EiSum (const double *pk, double **nd, size_t jcount, double &sum)
void EiSum (const MbHomogeneous *pk, double *nd, size_t degree, size_t jcount, MbHomogeneous &sum)
void EiSum (const MbHomogeneous3D *pk, double *nd, size_t degree, size_t jcount, MbHomogeneous3D &sum)
void CheckParam (const double &tMin, const double &tMax, bool closed, double &t)
 Загнать параметр t в параметрическую область кривой.
template<class KnotsVector , class DoubleVector1 , class DoubleVector2 >
ptrdiff_t CalculateSplines (ptrdiff_t degree, const KnotsVector &knots, bool closed, double &t, DoubleVector1 &nsplines, DoubleVector2 &lrVect)
 Рассчитать ненулевые сплайны при данном параметре.
template<class Point , class PointVector , class DoubleVector >
MbeNewtonResult CalculatePointList (const DoubleVector &params, const PointVector &points, ptrdiff_t degree, bool closed, const DoubleVector &knots, PointVector &pointList)
template<class Point , class DoubleVector , class PointsVector >
MbeNewtonResult CalculatePointListWithBandMatrix (const DoubleVector &params, const PointsVector &points, ptrdiff_t degree, bool closed, const DoubleVector &knots, PointsVector &pointList)
template<class TypedNurbs , class TypedPoint , class TypedVector >
bool AttachNurbsG1 (TypedNurbs &nurbs, const TypedVector &tang, bool begin, bool modify, bool isC1)
template<class Curve , class Nurbs , class Point , class Vector >
bool SetLimitFirstDerivatives (const Curve &curve, bool setBeg, bool setEnd, Nurbs &nurbs, bool setLen)
template<class TypedNurbs , class TypedPoint , class TypedVector >
bool AttachNurbsG2 (TypedNurbs &nurbs, const TypedVector &tang, const TypedVector &tangDiff, bool begin, bool modify, double *wDiff1, double *wDiff2)
template<class Nurbs , class Point >
bool CreateClosedNURBS4 (Nurbs &nurbs, const SArray< Point > &initPoints, const SArray< double > &initParams)
template<class PointsVector , class DoubleVector >
bool CreateSplineParameters (const PointsVector &points, MbeSplineParamType spType, bool cls, DoubleVector &params)
template<class Curve , class Point >
size_t DefineApproxPointsClosed (Curve &curve, size_t pCount, double pmin, double pmax, ptrdiff_t degree, SArray< Point > &points, const SArray< double > &aKnots, const SArray< size_t > &pCounts)
template<class Curve , class Point >
size_t DefineApproxPointsOpen (Curve &curve, size_t pCount, double pmin, double pmax, SArray< Point > &points, const SArray< double > &aKnots, const SArray< size_t > &pCounts)
template<class Nurbs , class PointsVector , class DoubleVector >
bool CreateNurbsLSMClosed (SPtr< Nurbs > &nurbs, const ptrdiff_t degree, const ptrdiff_t pCount, const PointsVector &aPoints, const DoubleVector &aKnots, const DoubleVector *aParams=NULL)
template<class Nurbs , class PointsVector , class DoubleVector >
bool CreateNurbsLSM (SPtr< Nurbs > &nurbs, const ptrdiff_t degree, const ptrdiff_t pCount, const PointsVector &aPoints, const DoubleVector &aKnots, const DoubleVector *aParams=NULL)
template<class Curve , class Nurbs , class Point >
Nurbs * CreateLineOutRgn (const Curve &curve, double tn1, double tn2, double t1, double t2, const MbCurveIntoNurbsInfo &nci)
MbNurbsContourToNurbs (const MbContour &cntr, double t1, double t2, int sense, const MbCurveIntoNurbsInfo &nci, bool reparamByLength)
MbNurbs3DContourToNurbs (const MbContour3D &cntr, double t1, double t2, int sense, const MbCurveIntoNurbsInfo &nci, bool reparamByLength)

Подробное описание

Базовые алгоритмы Nurbs кривых и поверхностей.

 Указатель Классы Пространства имен Файлы Функции Переменные Определения типов Перечисления Элементы перечислений Друзья Макросы