C3D Toolkit  Kernel - 105122, Vision - 0.181114.105122
Файл 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)
 Вычислить базисный сплайн по параметру t и узловому вектору. Подробнее...
 
void AllBasisFuns (ptrdiff_t i, double t, ptrdiff_t p, const SArray< double > &knots, double **ndu, double *left, double *right, bool newPatch=true)
 Вычисление B - базиса ( с использованием рабочих указателей классов nurbs кривых и поверхностей ). Подробнее...
 
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)
 Вычисление B - базиса ( с использованием рабочих указателей классов nurbs кривых и поверхностей ). Подробнее...
 
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 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)
 Рассчитать ненулевые сплайны при данном параметре. Подробнее...
 

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

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

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