UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
BSpline.cpp File Reference
#include "Math/BSpline.h"
#include "Geo/Curves/NURBSCurve.h"
#include "Geo/Sampling/SurfacicSampling.h"
#include "Geo/Surfaces/NURBSSurface.h"
#include "Math/MatrixH.h"
#include "Mesh/Structure/Grid.h"
#include "UI/Display.h"
#include "Utils/Util.h"
#include <algorithm>

Namespaces

namespace  UE
 
namespace  UE::CADKernel
 
namespace  UE::CADKernel::BSpline
 

Macros

#define DEGRE_MAX_POLY   9
 

Functions

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)
 
void UE::CADKernel::BSpline::InsertKnot (TArray< double > &vn, TArray< FVector > &poles, TArray< double > &weights, double u, double *newU=nullptr)
 
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)
 
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)
 
int32 UE::CADKernel::BSpline::fact_r (int32 n)
 
int32 UE::CADKernel::BSpline::fact (int32 n)
 
int32 UE::CADKernel::BSpline::CoefficientBinomial (int32 n, int32 k)
 
void UE::CADKernel::BSpline::Bernstein (int32 Degree, double InCoordinateU, double *BernsteinValuesAtU, double *BernsteinGradientsAtU, double *BernsteinLaplaciansAtU)
 
int32 UE::CADKernel::BSpline::Dichotomy (const double *const tab, double key, int32 first, int32 last)
 
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)
 
void UE::CADKernel::BSpline::InterpolerBSpline2D (const FNURBSSurface &Nurbs, FGrid &Grid)
 
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)
 
void UE::CADKernel::BSpline::EvaluatePoint (const FNURBSCurve &Nurbs, double Coordinate, FCurvePoint &OutPoint, int32 DerivativeOrder)
 
void UE::CADKernel::BSpline::Evaluate2DPoint (const FNURBSCurve &Nurbs, double Coordinate, FCurvePoint2D &OutPoint, int32 DerivativeOrder)
 
TSharedPtr< FNURBSCurveUE::CADKernel::BSpline::DuplicateNurbsCurveWithHigherDegree (int32 Degre, const FNURBSCurve &InCurve)
 
void UE::CADKernel::BSpline::EvaluatePoint (const FNURBSSurface &Nurbs, const FVector2d &InPoint2D, FSurfacicPoint &OutPoint3D, int32 InDerivativeOrder)
 
void UE::CADKernel::BSpline::EvaluatePointGrid (const FNURBSSurface &Nurbs, const FCoordinateGrid &Coords, FSurfacicSampling &OutPoints, bool bComputeNormals)
 
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)
 
double UE::CADKernel::BSpline::calculateN_HR (double u, const double *knots, int32 n, int32 l)
 
double UE::CADKernel::BSpline::calculateNd1_HR (double u, const double *knots, int32 n, int32 l)
 
double UE::CADKernel::BSpline::calculateNd2_HR (double u, const double *knots, int32 n, int32 l)
 
double UE::CADKernel::BSpline::calculateNd3_HR (double u, const double *knots, int32 n, int32 l)
 
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)
 
void UE::CADKernel::BSpline::matricePassageMonomeBernstein (int32 ordre, TArray< double > &matrice)
 
void UE::CADKernel::BSpline::coeffCourbeToPolesBezier (int32 order, int32 nbDim, TArray< double > &tabCoeff, TArray< double > &tabPoles)
 
void UE::CADKernel::BSpline::coeffSurfaceToPolesBezier (int32 orderU, int32 orderV, int32 nbDim, const TArray< double > &tabCoeff, TArray< double > &tabPoles)
 
void UE::CADKernel::BSpline::FindNotDerivableParameters (int32 Degree, int32 PoleCount, const TArray< double > &NodalVector, int32 DerivativeOrder, const FLinearBoundary &Boundary, TArray< double > &OutNotDerivableParameters)
 
void UE::CADKernel::BSpline::FindNotDerivableParameters (const FNURBSCurve &Curve, int32 InDerivativeOrder, const FLinearBoundary &Boundary, TArray< double > &OutNotDerivableParameters)
 
void UE::CADKernel::BSpline::FindNotDerivableParameters (const FNURBSSurface &Nurbs, int32 InDerivativeOrder, const FSurfacicBoundary &Boundary, FCoordinateGrid &OutNotDerivableParameters)
 
void UE::CADKernel::BSpline::SampleNodalVector (double UMin, double UMax, TArray< double > &nodalVector, int32 nbPoles, int32 degre, TArray< double > *TabU)
 
int32 UE::CADKernel::BSpline::getKnotMultiplicity (const TArray< double > &knots, double u)
 
void UE::CADKernel::BSpline::insertKnotInKnots (TArray< double > &vn, double u, double *newU=nullptr)
 
void UE::CADKernel::BSpline::insertKnotVInPatch (double v, int32 nbTime, TArray< double > &knotsV, TArray< TArray< FVector > > &poles, TArray< TArray< double > > &weights)
 
void UE::CADKernel::BSpline::insertKnotUInPatch (double u, int32 nbTime, TArray< double > &knotsU, TArray< TArray< FVector > > &poles, TArray< TArray< double > > &weights)
 
void UE::CADKernel::BSpline::rebound (TArray< double > &knots, TArray< FVector > &poles, TArray< double > &weights, double u1, double u2)
 
TArray< doubleUE::CADKernel::BSpline::homogeniseCurveKnots (TArray< TArray< double > > &cbKnots, double uMin, double uMax)
 
void UE::CADKernel::BSpline::composeNodalVector (double UMin, double UMax, int32 degre, int32 nbPoles, TArray< double > *nodalVector)
 
void UE::CADKernel::BSpline::hermite (double t, double *H, double *dH, double *ddH)
 

Macro Definition Documentation

◆ DEGRE_MAX_POLY

#define DEGRE_MAX_POLY   9