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

#include <NURBSSurface.h>

+ Inheritance diagram for UE::CADKernel::FNURBSSurface:

Public Member Functions

virtual void ValidateUVPoints (TArray< FVector2d > &UVPoints) const
 
virtual void Serialize (FCADKernelArchive &Ar) override
 
ESurface GetSurfaceType () const
 
constexpr const int32 GetDegree (EIso Iso) const
 
constexpr const int32 GetPoleCount (EIso Iso) const
 
const TArray< FVector > & GetPoles () const
 
const TArray< double > & GetWeights () const
 
const TArray< double > & GetHPoles () const
 
constexpr const TArray< double > & GetNodalVector (EIso Iso) const
 
bool IsRational () const
 
virtual TSharedPtr< FEntityGeomApplyMatrix (const FMatrixH &InMatrix) const override
 
virtual void EvaluatePoint (const FVector2d &InSurfacicCoordinate, FSurfacicPoint &OutPoint3D, int32 InDerivativeOrder=0) const override
 
void EvaluatePointGrid (const FCoordinateGrid &InSurfacicCoordinates, FSurfacicSampling &OutPoints, bool bComputeNormals) const override
 
virtual void LinesNotDerivables (const FSurfacicBoundary &InBoundary, int32 InDerivativeOrder, FCoordinateGrid &OutNotDerivableCoordinates) const override
 
void ComputeMinToleranceIso ()
 
- Public Member Functions inherited from UE::CADKernel::FSurface
virtual ~FSurface ()=default
 
virtual EEntity GetEntityType () const override
 
const FSurfacicBoundaryGetBoundary () const
 
void TrimBoundaryTo (const FSurfacicBoundary NewLimit)
 
void ExtendBoundaryTo (const FSurfacicBoundary MaxLimit)
 
const FSurfacicToleranceGetIsoTolerances () const
 
double GetIsoTolerance (EIso Iso) const
 
double Get3DTolerance () const
 
virtual void EvaluatePoints (const TArray< FVector2d > &InSurfacicCoordinates, TArray< FSurfacicPoint > &OutPoint3D, int32 InDerivativeOrder=0) const
 
virtual void EvaluatePoints (const TArray< FCurvePoint2D > &InSurfacicCoordinates, TArray< FSurfacicPoint > &OutPoint3D, int32 InDerivativeOrder=0) const
 
virtual void EvaluatePoints (const TArray< FCurvePoint2D > &InSurfacicCoordinates, TArray< FCurvePoint > &OutPoint3D, int32 InDerivativeOrder=0) const
 
virtual void EvaluatePoints (FSurfacicPolyline &Polyline) const
 
virtual void EvaluatePoints (const TArray< FCurvePoint2D > &Points2D, FSurfacicPolyline &Polyline) const
 
virtual FVector2d EvaluatePointInCylindricalSpace (const FVector2d &InSurfacicCoordinate) const
 
virtual void EvaluatePointGridInCylindricalSpace (const FCoordinateGrid &Coordinates, TArray< FVector2d > &) const
 
void EvaluateGrid (FGrid &Grid) const
 
virtual void EvaluateNormals (const TArray< FVector2d > &Points2D, TArray< FVector3f > &Normals) const
 
virtual void EvaluatePointAndNormal (const FVector2d &InPoint2D, FVector &Point, FVector3f &Normal) const
 
virtual FVector EvaluateNormal (const FVector2d &InPoint2D) const
 
void Sample (const FSurfacicBoundary &Bounds, int32 NumberOfSubdivisions[2], FSurfacicSampling &OutPointSampling) const
 
void Sample (const FSurfacicBoundary &Boundary, int32 NumberOfSubdivisions[2], FCoordinateGrid &OutCoordinateSampling) const
 
virtual void Presample (const FSurfacicBoundary &InBoundaries, FCoordinateGrid &OutCoordinates)
 
void LinesNotDerivables (int32 InDerivativeOrder, FCoordinateGrid &OutNotDerivableCoordinates) const
 
virtual void IsSurfaceClosed (bool &bOutClosedAlongU, bool &bOutClosedAlongV) const
 
void PresampleIsoCircle (const FSurfacicBoundary &InBoundaries, FCoordinateGrid &Coordinates, EIso Iso)
 
- Public Member Functions inherited from UE::CADKernel::FEntityGeom
 FEntityGeom ()=default
 
FIdent GetKioId () const
 
- Public Member Functions inherited from UE::CADKernel::FEntity
virtual ~FEntity ()
 
virtual void Delete ()
 
virtual void Empty ()
 
bool IsTopologicalEntity () const
 
bool IsTopologicalShapeEntity () const
 
bool IsGeometricalEntity ()
 
const TCHARGetTypeName () const
 
const FIdentGetId () const
 
virtual void SpawnIdent (FDatabase &Database)
 
virtual void ResetMarkersRecursively () const
 
- Public Member Functions inherited from TSharedFromThis< FEntity >
TSharedRef< FEntity, Mode > AsShared ()
 
TSharedRef< FEntity const, Mode > AsShared () const
 
TSharedRef< SubobjectType, Mode > AsSharedSubobject (SubobjectType *SubobjectPtr) const
 
TWeakPtr< FEntity, Mode > AsWeak ()
 
TWeakPtr< FEntity const, Mode > AsWeak () const
 
TWeakPtr< SubobjectType, Mode > AsWeakSubobject (SubobjectType *SubobjectPtr) const
 
void UpdateWeakReferenceInternal (TSharedPtr< SharedPtrType, SharedPtrMode > const *InSharedPtr, OtherType *InObject) const
 
void UpdateWeakReferenceInternal (TSharedRef< SharedRefType, SharedPtrMode > const *InSharedRef, OtherType *InObject) const
 
UE_FORCEINLINE_HINT bool DoesSharedInstanceExist () const
 
- Public Member Functions inherited from UE::CADKernel::FHaveStates
 FHaveStates ()
 
void Serialize (FCADKernelArchive &Ar)
 
void ResetElementStatus ()
 
bool HasMarker1 () const
 
bool HasMarker2 () const
 
bool HasMarker1And2 () const
 
bool HasMarker1Or2 () const
 
void SetMarker1 () const
 
void SetMarker2 () const
 
void ResetMarker1 () const
 
void ResetMarker2 () const
 
void ResetMarkers () const
 
bool IsDeleted () const
 
void SetDeletedMarker () const
 
void ResetDeleted () const
 
virtual bool IsDeletedOrDegenerated () const
 
virtual bool IsDegenerated () const
 
virtual void SetAsDegenerated () const
 
virtual void ResetDegenerated () const
 
void SetWaitingMarker () const
 
void ResetWaitingMarker () const
 
virtual bool IsWaiting () const
 
void SetProcessedMarker () const
 
void ResetProcessedMarker () const
 
virtual bool IsProcessed () const
 
virtual bool IsProcessedDeletedOrDegenerated () const
 
void SetToProcessMarker () const
 
void ResetToProcessMarker () const
 
virtual bool IsToProcess () const
 
virtual bool IsNotToProcess () const
 
virtual bool IsNotToOrAlreadyProcess () const
 

Protected Member Functions

 FNURBSSurface (const double InToleranceGeometric, int32 InPoleUCount, int32 InPoleVCount, int32 InDegreU, int32 InDegreV, const TArray< double > &InNodalVectorU, const TArray< double > &InNodalVectorV, const TArray< FVector > &InPoles)
 
 FNURBSSurface (const double InToleranceGeometric, int32 InPoleUCount, int32 InPoleVCount, int32 InDegreU, int32 InDegreV, const TArray< double > &InNodalVectorU, const TArray< double > &InNodalVectorV, const TArray< FVector > &InPoles, const TArray< double > &InWeights)
 
 FNURBSSurface (const double InToleranceGeometric, FNurbsSurfaceData NurbsData)
 
 FNURBSSurface (const double InToleranceGeometric, FNurbsSurfaceHomogeneousData NurbsData)
 
 FNURBSSurface ()=default
 
- Protected Member Functions inherited from UE::CADKernel::FSurface
 FSurface ()=default
 
 FSurface (double InToleranceGeometric)
 
 FSurface (double InToleranceGeometric, const FSurfacicBoundary &InBoundary)
 
 FSurface (double InToleranceGeometric, double UMin, double UMax, double VMin, double VMax)
 
void ComputeDefaultMinToleranceIso ()
 
- Protected Member Functions inherited from UE::CADKernel::FEntity
bool SetId (FDatabase &Database)
 
- Protected Member Functions inherited from TSharedFromThis< FEntity >
 TSharedFromThis ()
 
 TSharedFromThis (TSharedFromThis const &)
 
UE_FORCEINLINE_HINT TSharedFromThisoperator= (TSharedFromThis const &)
 
 ~TSharedFromThis ()
 

Protected Attributes

int32 PoleUCount
 
int32 PoleVCount
 
int32 UDegree
 
int32 VDegree
 
TArray< doubleUNodalVector
 
TArray< doubleVNodalVector
 
TArray< doubleWeights
 
TArray< FVectorPoles
 
bool bIsRational
 
TArray< doubleHomogeneousPoles
 
- Protected Attributes inherited from UE::CADKernel::FSurface
FSurfacicBoundary Boundary
 
double Tolerance3D
 
TCache< FSurfacicToleranceMinToleranceIso
 
- Protected Attributes inherited from UE::CADKernel::FEntityGeom
FIdent CtKioId = 0
 
- Protected Attributes inherited from UE::CADKernel::FEntity
FIdent Id = 0
 
- Protected Attributes inherited from UE::CADKernel::FHaveStates
EHaveStates States
 

Additional Inherited Members

- Static Public Member Functions inherited from UE::CADKernel::FSurface
static TSharedPtr< FSurfaceMakeBezierSurface (const double InToleranceGeometric, int32 InUDegre, int32 InVDegre, const TArray< FVector > &InPoles)
 
static TSharedPtr< FSurfaceMakeConeSurface (const double InToleranceGeometric, const FMatrixH &InMatrix, double InStartRadius, double InConeAngle, const FSurfacicBoundary &InBoundary)
 
static TSharedPtr< FSurfaceMakeCylinderSurface (const double InToleranceGeometric, const FMatrixH &InMatrix, const double InRadius, const FSurfacicBoundary &InBoundary)
 
static TSharedPtr< FSurfaceMakeNurbsSurface (const double InToleranceGeometric, const FNurbsSurfaceData &NurbsData)
 
static TSharedPtr< FSurfaceMakeNurbsSurface (const double InToleranceGeometric, const FNurbsSurfaceHomogeneousData &NurbsData)
 
static TSharedPtr< FSurfaceMakePlaneSurface (const double InToleranceGeometric, const FMatrixH &InMatrix, const FSurfacicBoundary &InBoundary)
 
static TSharedPtr< FSurfaceMakeSphericalSurface (const double InToleranceGeometric, const FMatrixH &InMatrix, double InRadius, const FSurfacicBoundary &InBoundary)
 
static TSharedPtr< FSurfaceMakeTorusSurface (const double InToleranceGeometric, const FMatrixH &InMatrix, double InMajorRadius, double InMinorRadius, const FSurfacicBoundary &InBoundary)
 
static TSharedPtr< FSurfaceDeserialize (FCADKernelArchive &Archive)
 
static double ComputeScaleAlongAxis (const FVector &InAxis, const FMatrixH &InMatrix, const FVector &InOrigin)
 
- Static Public Member Functions inherited from UE::CADKernel::FEntity
template<typename OtherEntity , typename... InArgTypes>
static TSharedRef< OtherEntity > MakeShared (InArgTypes &&... Args)
 
template<typename OtherEntity >
static TSharedRef< OtherEntity > MakeShared (FCADKernelArchive &Archive)
 
static void SerializeIdent (FCADKernelArchive &Ar, TSharedPtr< FEntity > &Entity, bool bSaveSelection=true)
 
static void SerializeIdent (FCADKernelArchive &Ar, TWeakPtr< FEntity > &Entity, bool bSaveSelection=true)
 
static void SerializeIdent (FCADKernelArchive &Ar, FEntity **Entity, bool bSaveSelection=true)
 
template<typename EntityType >
static void SerializeIdent (FCADKernelArchive &Ar, EntityType **Entity, bool bSaveSelection=true)
 
template<typename EntityType >
static void SerializeIdent (FCADKernelArchive &Ar, TSharedPtr< EntityType > &Entity, bool bSaveSelection=true)
 
template<typename EntityType >
static void SerializeIdent (FCADKernelArchive &Ar, TWeakPtr< EntityType > &Entity, bool bSaveSelection=true)
 
static void SerializeIdents (FCADKernelArchive &Ar, TArray< FEntity * > &Array, bool bSaveSelection=true)
 
static void SerializeIdents (FCADKernelArchive &Ar, TArray< TWeakPtr< FEntity > > &Array, bool bSaveSelection=true)
 
static void SerializeIdents (FCADKernelArchive &Ar, TArray< TSharedPtr< FEntity > > &Array, bool bSaveSelection=true)
 
static void SerializeIdents (FCADKernelArchive &Ar, TArray< TOrientedEntity< FEntity > > &Array)
 
template<typename EntityType >
static void SerializeIdents (FCADKernelArchive &Ar, TArray< EntityType * > &Array, bool bSaveSelection=true)
 
template<typename EntityType >
static void SerializeIdents (FCADKernelArchive &Ar, TArray< TWeakPtr< EntityType > > &Array, bool bSaveSelection=true)
 
template<typename EntityType >
static void SerializeIdents (FCADKernelArchive &Ar, TArray< TSharedPtr< EntityType > > &Array, bool bSaveSelection=true)
 
static void SpawnIdentOnEntities (TArray< FEntity * > &Array, FDatabase &Database)
 
static void SpawnIdentOnEntities (TArray< TSharedPtr< FEntity > > &Array, FDatabase &Database)
 
static void SpawnIdentOnEntities (TArray< TOrientedEntity< FEntity > > &Array, FDatabase &Database)
 
template<typename EntityType >
static void SpawnIdentOnEntities (TArray< TSharedPtr< EntityType > > &Array, FDatabase &Database)
 
static void ResetMarkersRecursivelyOnEntities (const TArray< FEntity * > &Array)
 
static void ResetMarkersRecursivelyOnEntities (const TArray< TWeakPtr< FEntity > > &Array)
 
static void ResetMarkersRecursivelyOnEntities (const TArray< TSharedPtr< FEntity > > &Array)
 
static void ResetMarkersRecursivelyOnEntities (const TArray< TOrientedEntity< FEntity > > &Array)
 
template<typename EntityType >
static void ResetMarkersRecursivelyOnEntities (const TArray< TSharedPtr< EntityType > > &Array)
 
static TSharedPtr< FEntityDeserialize (FCADKernelArchive &Ar)
 
static const TCHARGetTypeName (EEntity Type)
 
- Static Protected Member Functions inherited from TSharedFromThis< FEntity >
static UE_FORCEINLINE_HINT TSharedRef< OtherType, Mode > SharedThis (OtherType *ThisPtr)
 
static UE_FORCEINLINE_HINT TSharedRef< OtherType const, Mode > SharedThis (const OtherType *ThisPtr)
 
- Static Protected Attributes inherited from UE::CADKernel::FEntity
static const TCHARTypesNames []
 

Constructor & Destructor Documentation

◆ FNURBSSurface() [1/5]

UE::CADKernel::FNURBSSurface::FNURBSSurface ( const double  InToleranceGeometric,
int32  InPoleUCount,
int32  InPoleVCount,
int32  InDegreU,
int32  InDegreV,
const TArray< double > &  InNodalVectorU,
const TArray< double > &  InNodalVectorV,
const TArray< FVector > &  InPoles 
)
inlineprotected

Build a Non uniform B-Spline surface

Parameters
NodalVectorUIts size is the number of poles in U + the surface degree in U + 1 (PoleUNum + UDegre + 1)
NodalVectorVIts size is the number of poles in V + the surface degree in V + 1 (PoleVNum + VDegre + 1)

◆ FNURBSSurface() [2/5]

UE::CADKernel::FNURBSSurface::FNURBSSurface ( const double  InToleranceGeometric,
int32  InPoleUCount,
int32  InPoleVCount,
int32  InDegreU,
int32  InDegreV,
const TArray< double > &  InNodalVectorU,
const TArray< double > &  InNodalVectorV,
const TArray< FVector > &  InPoles,
const TArray< double > &  InWeights 
)
inlineprotected

Build a Non uniform rational B-Spline surface

Parameters
NodalVectorUIts size is the number of poles in U + the surface degree in U + 1 (PoleUNum + UDegre + 1)
NodalVectorVIts size is the number of poles in V + the surface degree in V + 1 (PoleVNum + VDegre + 1)

◆ FNURBSSurface() [3/5]

UE::CADKernel::FNURBSSurface::FNURBSSurface ( const double  InToleranceGeometric,
FNurbsSurfaceData  NurbsData 
)
inlineprotected

Build a Non uniform B-Spline surface

Parameters
NodalVectorUIts size is the number of poles in U + the surface degree in U + 1 (PoleUNum + UDegre + 1)
NodalVectorVIts size is the number of poles in V + the surface degree in V + 1 (PoleVNum + VDegre + 1)

◆ FNURBSSurface() [4/5]

UE::CADKernel::FNURBSSurface::FNURBSSurface ( const double  InToleranceGeometric,
FNurbsSurfaceHomogeneousData  NurbsData 
)
inlineprotected

Build a Non uniform B-Spline surface

Parameters
NodalVectorUIts size is the number of poles in U + the surface degree in U + 1 (PoleUNum + UDegre + 1)
NodalVectorVIts size is the number of poles in V + the surface degree in V + 1 (PoleVNum + VDegre + 1)

◆ FNURBSSurface() [5/5]

UE::CADKernel::FNURBSSurface::FNURBSSurface ( )
protecteddefault

Member Function Documentation

◆ ApplyMatrix()

TSharedPtr< FEntityGeom > UE::CADKernel::FNURBSSurface::ApplyMatrix ( const FMatrixH InMatrix) const
overridevirtual

◆ ComputeMinToleranceIso()

void UE::CADKernel::FNURBSSurface::ComputeMinToleranceIso ( )

◆ EvaluatePoint()

virtual void UE::CADKernel::FNURBSSurface::EvaluatePoint ( const FVector2d InSurfacicCoordinate,
FSurfacicPoint OutPoint3D,
int32  InDerivativeOrder = 0 
) const
inlineoverridevirtual

◆ EvaluatePointGrid()

void UE::CADKernel::FNURBSSurface::EvaluatePointGrid ( const FCoordinateGrid InSurfacicCoordinates,
FSurfacicSampling OutPoints,
bool  bComputeNormals 
) const
inlineoverridevirtual

Reimplemented from UE::CADKernel::FSurface.

◆ GetDegree()

constexpr const int32 UE::CADKernel::FNURBSSurface::GetDegree ( EIso  Iso) const
inlineconstexpr

◆ GetHPoles()

const TArray< double > & UE::CADKernel::FNURBSSurface::GetHPoles ( ) const
inline

◆ GetNodalVector()

constexpr const TArray< double > & UE::CADKernel::FNURBSSurface::GetNodalVector ( EIso  Iso) const
inlineconstexpr

◆ GetPoleCount()

constexpr const int32 UE::CADKernel::FNURBSSurface::GetPoleCount ( EIso  Iso) const
inlineconstexpr

◆ GetPoles()

const TArray< FVector > & UE::CADKernel::FNURBSSurface::GetPoles ( ) const
inline

◆ GetSurfaceType()

ESurface UE::CADKernel::FNURBSSurface::GetSurfaceType ( ) const
inlinevirtual

◆ GetWeights()

const TArray< double > & UE::CADKernel::FNURBSSurface::GetWeights ( ) const
inline

◆ IsRational()

bool UE::CADKernel::FNURBSSurface::IsRational ( ) const
inline

◆ LinesNotDerivables()

virtual void UE::CADKernel::FNURBSSurface::LinesNotDerivables ( const FSurfacicBoundary InBoundary,
int32  InDerivativeOrder,
FCoordinateGrid OutNotDerivableCoordinates 
) const
inlineoverridevirtual

Reimplemented from UE::CADKernel::FSurface.

◆ Serialize()

virtual void UE::CADKernel::FNURBSSurface::Serialize ( FCADKernelArchive Ar)
inlineoverridevirtual

Serialization of a FEntity. Each class derived from FEntity has to override this method (and call the direct base class override method first) E.g. class FEntityXXX : public FEntityXX { virtual void Serialize(FCADKernelArchive& Ar) override { FEntityXX::Serialize(Ar); ... } }

Reimplemented from UE::CADKernel::FSurface.

◆ ValidateUVPoints()

virtual void UE::CADKernel::FNURBSSurface::ValidateUVPoints ( TArray< FVector2d > &  UVPoints) const
inlinevirtual

Reimplemented from UE::CADKernel::FSurface.

Member Data Documentation

◆ bIsRational

bool UE::CADKernel::FNURBSSurface::bIsRational
protected

◆ HomogeneousPoles

TArray<double> UE::CADKernel::FNURBSSurface::HomogeneousPoles
protected

Data generated at initialization which are not serialized

◆ Poles

TArray<FVector> UE::CADKernel::FNURBSSurface::Poles
protected

◆ PoleUCount

int32 UE::CADKernel::FNURBSSurface::PoleUCount
protected

◆ PoleVCount

int32 UE::CADKernel::FNURBSSurface::PoleVCount
protected

◆ UDegree

int32 UE::CADKernel::FNURBSSurface::UDegree
protected

◆ UNodalVector

TArray<double> UE::CADKernel::FNURBSSurface::UNodalVector
protected

◆ VDegree

int32 UE::CADKernel::FNURBSSurface::VDegree
protected

◆ VNodalVector

TArray<double> UE::CADKernel::FNURBSSurface::VNodalVector
protected

◆ Weights

TArray<double> UE::CADKernel::FNURBSSurface::Weights
protected

The documentation for this class was generated from the following files: