UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
UE::CADKernel::BSpline Namespace Reference

Functions

void DeBoorValeursBSpline (const int32 degre, const double *const knot, const int32 segment, const int32 ndim, const int32 derivee, const double u, double *const pole_aux, double *const grad_aux, double *const lap_aux, double *const valeur, double *const Gradient, double *const Laplacian)
 
void InsertKnot (TArray< double > &vn, TArray< FVector > &poles, TArray< double > &weights, double u, double *newU=nullptr)
 
void Blossom (int32 degre, const TArray< FVector > &poles, const TArray< double > &vecteurNodal, const TArray< double > &poids, int32 seg, TArray< double > &params, FVector &pnt, double &weight)
 
void DuplicateNurbsCurveWithHigherDegree (int32 degre, const TArray< FVector > &poles, const TArray< double > &nodalVector, const TArray< double > &weights, TArray< FVector > &newPoles, TArray< double > &newNodalVector, TArray< double > &newWeights)
 
int32 fact_r (int32 n)
 
int32 fact (int32 n)
 
int32 CoefficientBinomial (int32 n, int32 k)
 
void Bernstein (int32 Degree, double InCoordinateU, double *BernsteinValuesAtU, double *BernsteinGradientsAtU, double *BernsteinLaplaciansAtU)
 
int32 Dichotomy (const double *const tab, double key, int32 first, int32 last)
 
void Interpolate1DBSpline (const int32 Degre, const int32 PoleNum, const double *const NodalVector, const int32 SpaceDimension, const double *const Poles, const int32 PointNum, const double *const Coordinate, const int32 Derivee, double *const OutPoints, double *const OutGradient, double *const OutLaplacian)
 
void InterpolerBSpline2D (const FNURBSSurface &Nurbs, FGrid &Grid)
 
void Interpolate2DBSpline (const int32 UDegre, const int32 VDegre, const int32 PoleUNum, const int32 PoleVNum, const double *const UNodalVector, const double *const VNodalVector, const int32 ndim, const double *const PoleUV, const int32 nb_pt_u, const double *const tab_u, const int32 nb_pt_v, const double *const tab_v, const int32 derivee, double *const valeur, double *const deru, double *const derv, double *const deruu, double *const dervv, double *const deruv)
 
void EvaluatePoint (const FNURBSCurve &Nurbs, double Coordinate, FCurvePoint &OutPoint, int32 DerivativeOrder)
 
void Evaluate2DPoint (const FNURBSCurve &Nurbs, double Coordinate, FCurvePoint2D &OutPoint, int32 DerivativeOrder)
 
TSharedPtr< FNURBSCurveDuplicateNurbsCurveWithHigherDegree (int32 Degre, const FNURBSCurve &InCurve)
 
void EvaluatePoint (const FNURBSSurface &Nurbs, const FVector2d &InPoint2D, FSurfacicPoint &OutPoint3D, int32 InDerivativeOrder)
 
void EvaluatePointGrid (const FNURBSSurface &Nurbs, const FCoordinateGrid &Coords, FSurfacicSampling &OutPoints, bool bComputeNormals)
 
void calculerBaseBSpline (const int32 degre, const int32 derivee, const int32 nb_pole, const double *const knot, const int32 nb_pt, const double *const tab_u, double *const valeur, double *const Gradient, double *const Laplacian)
 
double calculateN_HR (double u, const double *knots, int32 n, int32 l)
 
double calculateNd1_HR (double u, const double *knots, int32 n, int32 l)
 
double calculateNd2_HR (double u, const double *knots, int32 n, int32 l)
 
double calculateNd3_HR (double u, const double *knots, int32 n, int32 l)
 
void calculerBaseBSpline_HR (const int32 degre, const int32 derivee, const int32 nb_pole, const double *const knot, const int32 nb_pt, const double *const tab_u, TArray< double > &valeur, TArray< double > &Gradient, TArray< double > &Laplacian, TArray< double > &der3)
 
void matricePassageMonomeBernstein (int32 ordre, TArray< double > &matrice)
 
void coeffCourbeToPolesBezier (int32 order, int32 nbDim, TArray< double > &tabCoeff, TArray< double > &tabPoles)
 
void coeffSurfaceToPolesBezier (int32 orderU, int32 orderV, int32 nbDim, const TArray< double > &tabCoeff, TArray< double > &tabPoles)
 
void FindNotDerivableParameters (int32 Degree, int32 PoleCount, const TArray< double > &NodalVector, int32 DerivativeOrder, const FLinearBoundary &Boundary, TArray< double > &OutNotDerivableParameters)
 
void FindNotDerivableParameters (const FNURBSCurve &Curve, int32 InDerivativeOrder, const FLinearBoundary &Boundary, TArray< double > &OutNotDerivableParameters)
 
void FindNotDerivableParameters (const FNURBSSurface &Nurbs, int32 InDerivativeOrder, const FSurfacicBoundary &Boundary, FCoordinateGrid &OutNotDerivableParameters)
 
void SampleNodalVector (double UMin, double UMax, TArray< double > &nodalVector, int32 nbPoles, int32 degre, TArray< double > *TabU)
 
int32 getKnotMultiplicity (const TArray< double > &knots, double u)
 
void insertKnotInKnots (TArray< double > &vn, double u, double *newU=nullptr)
 
void insertKnotVInPatch (double v, int32 nbTime, TArray< double > &knotsV, TArray< TArray< FVector > > &poles, TArray< TArray< double > > &weights)
 
void insertKnotUInPatch (double u, int32 nbTime, TArray< double > &knotsU, TArray< TArray< FVector > > &poles, TArray< TArray< double > > &weights)
 
void rebound (TArray< double > &knots, TArray< FVector > &poles, TArray< double > &weights, double u1, double u2)
 
TArray< doublehomogeniseCurveKnots (TArray< TArray< double > > &cbKnots, double uMin, double uMax)
 
void composeNodalVector (double UMin, double UMax, int32 degre, int32 nbPoles, TArray< double > *nodalVector)
 
void hermite (double t, double *H, double *dH, double *ddH)
 

Function Documentation

◆ Bernstein()

CADKERNEL_API void UE::CADKernel::BSpline::Bernstein ( int32  Degree,
double  InCoordinateU,
double BernsteinValuesAtU,
double BernsteinGradientsAtU,
double BernsteinLaplaciansAtU 
)

Compute the values of Bernstein polynomial

◆ Blossom()

void UE::CADKernel::BSpline::Blossom ( int32  degre,
const TArray< FVector > &  poles,
const TArray< double > &  vecteurNodal,
const TArray< double > &  poids,
int32  seg,
TArray< double > &  params,
FVector pnt,
double weight 
)

◆ calculateN_HR()

double UE::CADKernel::BSpline::calculateN_HR ( double  u,
const double knots,
int32  n,
int32  l 
)

◆ calculateNd1_HR()

double UE::CADKernel::BSpline::calculateNd1_HR ( double  u,
const double knots,
int32  n,
int32  l 
)

◆ calculateNd2_HR()

double UE::CADKernel::BSpline::calculateNd2_HR ( double  u,
const double knots,
int32  n,
int32  l 
)

◆ calculateNd3_HR()

double UE::CADKernel::BSpline::calculateNd3_HR ( double  u,
const double knots,
int32  n,
int32  l 
)

◆ calculerBaseBSpline()

void UE::CADKernel::BSpline::calculerBaseBSpline ( const int32  degre,
const int32  derivee,
const int32  nb_pole,
const double *const  knot,
const int32  nb_pt,
const double *const  tab_u,
double *const  valeur,
double *const  Gradient,
double *const  Laplacian 
)

◆ calculerBaseBSpline_HR()

void UE::CADKernel::BSpline::calculerBaseBSpline_HR ( const int32  degre,
const int32  derivee,
const int32  nb_pole,
const double *const  knot,
const int32  nb_pt,
const double *const  tab_u,
TArray< double > &  valeur,
TArray< double > &  Gradient,
TArray< double > &  Laplacian,
TArray< double > &  der3 
)

◆ coeffCourbeToPolesBezier()

void UE::CADKernel::BSpline::coeffCourbeToPolesBezier ( int32  order,
int32  nbDim,
TArray< double > &  tabCoeff,
TArray< double > &  tabPoles 
)

◆ CoefficientBinomial()

int32 UE::CADKernel::BSpline::CoefficientBinomial ( int32  n,
int32  k 
)

◆ coeffSurfaceToPolesBezier()

void UE::CADKernel::BSpline::coeffSurfaceToPolesBezier ( int32  orderU,
int32  orderV,
int32  nbDim,
const TArray< double > &  tabCoeff,
TArray< double > &  tabPoles 
)

◆ composeNodalVector()

void UE::CADKernel::BSpline::composeNodalVector ( double  UMin,
double  UMax,
int32  degre,
int32  nbPoles,
TArray< double > *  nodalVector 
)

◆ DeBoorValeursBSpline()

void UE::CADKernel::BSpline::DeBoorValeursBSpline ( const int32  degre,
const double *const  knot,
const int32  segment,
const int32  ndim,
const int32  derivee,
const double  u,
double *const  pole_aux,
double *const  grad_aux,
double *const  lap_aux,
double *const  valeur,
double *const  Gradient,
double *const  Laplacian 
)

Calcul du point courant‍/

Calcul du point courant‍/

◆ Dichotomy()

int32 UE::CADKernel::BSpline::Dichotomy ( const double *const  tab,
double  key,
int32  first,
int32  last 
)

◆ DuplicateNurbsCurveWithHigherDegree() [1/2]

CADKERNEL_API TSharedPtr< FNURBSCurve > UE::CADKernel::BSpline::DuplicateNurbsCurveWithHigherDegree ( int32  Degre,
const FNURBSCurve InCurve 
)

◆ DuplicateNurbsCurveWithHigherDegree() [2/2]

void UE::CADKernel::BSpline::DuplicateNurbsCurveWithHigherDegree ( int32  degre,
const TArray< FVector > &  poles,
const TArray< double > &  nodalVector,
const TArray< double > &  weights,
TArray< FVector > &  newPoles,
TArray< double > &  newNodalVector,
TArray< double > &  newWeights 
)

◆ Evaluate2DPoint()

CADKERNEL_API void UE::CADKernel::BSpline::Evaluate2DPoint ( const FNURBSCurve Nurbs,
double  Coordinate,
FCurvePoint2D OutPoint,
int32  DerivativeOrder 
)

◆ EvaluatePoint() [1/2]

CADKERNEL_API void UE::CADKernel::BSpline::EvaluatePoint ( const FNURBSCurve Nurbs,
double  Coordinate,
FCurvePoint OutPoint,
int32  DerivativeOrder 
)

◆ EvaluatePoint() [2/2]

CADKERNEL_API void UE::CADKernel::BSpline::EvaluatePoint ( const FNURBSSurface Nurbs,
const FVector2d InPoint2D,
FSurfacicPoint OutPoint3D,
int32  InDerivativeOrder 
)

◆ EvaluatePointGrid()

CADKERNEL_API void UE::CADKernel::BSpline::EvaluatePointGrid ( const FNURBSSurface Nurbs,
const FCoordinateGrid Coords,
FSurfacicSampling OutPoints,
bool  bComputeNormals 
)

◆ fact()

int32 UE::CADKernel::BSpline::fact ( int32  n)

◆ fact_r()

int32 UE::CADKernel::BSpline::fact_r ( int32  n)

◆ FindNotDerivableParameters() [1/3]

CADKERNEL_API void UE::CADKernel::BSpline::FindNotDerivableParameters ( const FNURBSCurve Curve,
int32  InDerivativeOrder,
const FLinearBoundary Boundary,
TArray< double > &  OutNotDerivableParameters 
)

◆ FindNotDerivableParameters() [2/3]

CADKERNEL_API void UE::CADKernel::BSpline::FindNotDerivableParameters ( const FNURBSSurface Nurbs,
int32  InDerivativeOrder,
const FSurfacicBoundary Boundary,
FCoordinateGrid OutNotDerivableParameters 
)

◆ FindNotDerivableParameters() [3/3]

void UE::CADKernel::BSpline::FindNotDerivableParameters ( int32  Degree,
int32  PoleCount,
const TArray< double > &  NodalVector,
int32  DerivativeOrder,
const FLinearBoundary Boundary,
TArray< double > &  OutNotDerivableParameters 
)

◆ getKnotMultiplicity()

int32 UE::CADKernel::BSpline::getKnotMultiplicity ( const TArray< double > &  knots,
double  u 
)

◆ hermite()

void UE::CADKernel::BSpline::hermite ( double  t,
double H,
double dH,
double ddH 
)

◆ homogeniseCurveKnots()

TArray< double > UE::CADKernel::BSpline::homogeniseCurveKnots ( TArray< TArray< double > > &  cbKnots,
double  uMin,
double  uMax 
)

◆ InsertKnot()

void UE::CADKernel::BSpline::InsertKnot ( TArray< double > &  vn,
TArray< FVector > &  poles,
TArray< double > &  weights,
double  u,
double newU = nullptr 
)

◆ insertKnotInKnots()

void UE::CADKernel::BSpline::insertKnotInKnots ( TArray< double > &  vn,
double  u,
double newU = nullptr 
)

◆ insertKnotUInPatch()

void UE::CADKernel::BSpline::insertKnotUInPatch ( double  u,
int32  nbTime,
TArray< double > &  knotsU,
TArray< TArray< FVector > > &  poles,
TArray< TArray< double > > &  weights 
)

◆ insertKnotVInPatch()

void UE::CADKernel::BSpline::insertKnotVInPatch ( double  v,
int32  nbTime,
TArray< double > &  knotsV,
TArray< TArray< FVector > > &  poles,
TArray< TArray< double > > &  weights 
)

◆ Interpolate1DBSpline()

void UE::CADKernel::BSpline::Interpolate1DBSpline ( const int32  Degre,
const int32  PoleNum,
const double *const  NodalVector,
const int32  SpaceDimension,
const double *const  Poles,
const int32  PointNum,
const double *const  Coordinate,
const int32  Derivee,
double *const  OutPoints,
double *const  OutGradient,
double *const  OutLaplacian 
)

◆ Interpolate2DBSpline()

void UE::CADKernel::BSpline::Interpolate2DBSpline ( const int32  UDegre,
const int32  VDegre,
const int32  PoleUNum,
const int32  PoleVNum,
const double *const  UNodalVector,
const double *const  VNodalVector,
const int32  ndim,
const double *const  PoleUV,
const int32  nb_pt_u,
const double *const  tab_u,
const int32  nb_pt_v,
const double *const  tab_v,
const int32  derivee,
double *const  valeur,
double *const  deru,
double *const  derv,
double *const  deruu,
double *const  dervv,
double *const  deruv 
)

◆ InterpolerBSpline2D()

void UE::CADKernel::BSpline::InterpolerBSpline2D ( const FNURBSSurface Nurbs,
FGrid Grid 
)

◆ matricePassageMonomeBernstein()

void UE::CADKernel::BSpline::matricePassageMonomeBernstein ( int32  ordre,
TArray< double > &  matrice 
)

◆ rebound()

void UE::CADKernel::BSpline::rebound ( TArray< double > &  knots,
TArray< FVector > &  poles,
TArray< double > &  weights,
double  u1,
double  u2 
)

◆ SampleNodalVector()

void UE::CADKernel::BSpline::SampleNodalVector ( double  UMin,
double  UMax,
TArray< double > &  nodalVector,
int32  nbPoles,
int32  degre,
TArray< double > *  TabU 
)