UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
FNewSpline Class Reference
+ Inheritance diagram for FNewSpline:

Public Member Functions

 FNewSpline ()
 
 FNewSpline (const FNewSpline &Other)
 
 FNewSpline (const FLegacySpline &Other)
 
 FNewSpline (const FSplineCurves &Other)
 
virtual ~FNewSpline () override=default
 
FNewSplineoperator= (const FNewSpline &Other)
 
bool operator!= (const FNewSpline &Other) const
 
virtual bool Serialize (FArchive &Ar) override
 
FInterval1f GetSegmentSpace () const
 
float GetSegmentLength (const int32 Index, const float Param, const FVector &Scale3D=FVector(1.0f)) const
 
float GetSplineLength ()
 
virtual void SetClosedLoop (bool bInClosedLoop) override
 
void Reset ()
 
void ResetRotation ()
 
void ResetScale ()
 
void AddPoint (const FSplinePoint &Point)
 
void InsertPoint (const FSplinePoint &Point, int32 Index)
 
FSplinePoint GetPoint (int32 Index) const
 
void RemovePoint (int32 Index)
 
void SetLocation (int32 Index, const FVector &InLocation)
 
FVector GetLocation (const int32 Index) const
 
void SetInTangent (const int32 Index, const FVector &InTangent)
 
FVector GetInTangent (const int32 Index) const
 
void SetOutTangent (const int32 Index, const FVector &OutTangent)
 
FVector GetOutTangent (const int32 Index) const
 
void SetRotation (int32 Index, const FQuat &InRotation)
 
FQuat GetRotation (const int32 Index) const
 
void SetScale (int32 Index, const FVector &InScale)
 
FVector GetScale (const int32 Index) const
 
void SetSplinePointType (int32 Index, EInterpCurveMode Type)
 
EInterpCurveMode GetSplinePointType (int32 Index) const
 
float GetParameterAtIndex (int32 Index) const
 
float GetParameterAtDistance (float Distance)
 
float GetDistanceAtParameter (float Parameter)
 
virtual float FindNearest (const FVector &InLocation, float &OutSquaredDistance) const override
 
float FindNearestOnSegment (const FVector &InLocation, int32 SegmentIndex, float &OutSquaredDistance) const
 
FVector EvaluatePosition (float Parameter) const
 
FVector EvaluateDerivative (float Parameter) const
 
FQuat EvaluateRotation (float Parameter) const
 
FVector EvaluateScale (float Parameter) const
 
template<typename AttrType >
int32 NumAttributeValues (FName Name) const
 
template<typename AttrType >
AttrType GetAttributeValue (const FName &Name, int32 Index) const
 
template<typename AttrType >
void SetAttributeValue (FName Name, const AttrType &Value, int32 Index)
 
template<typename AttrType >
void RemoveAttributeValue (FName Name, int32 Index)
 
template<typename AttrType >
int32 SetAttributeParameter (const FName &Name, int32 Index, float ParentSpaceParameter)
 
template<typename AttrType >
float GetAttributeParameter (const FName &Name, int32 Index) const
 
template<typename AttrType >
int32 AddAttributeValue (FName Name, const AttrType &Value, float Parameter)
 
void UpdateSpline ()
 
void UpdateSpline (const FSpline::FUpdateSplineParams &Params)
 
const FInterpCurveVectorGetSplinePointsPosition () const
 
const FInterpCurveQuatGetSplinePointsRotation () const
 
const FInterpCurveVectorGetSplinePointsScale () const
 
- Public Member Functions inherited from UE::Geometry::Spline::TMultiSpline< UE::Geometry::Spline::FTangentBezierSpline3d >
virtual FSplineTypeId::IdType GetTypeId () const override
 
virtual FString GetImplementationName () const override
 
SplineTypeGetSpline ()
 
const SplineTypeGetSpline () const
 
virtual bool operator== (const TMultiSpline< SplineType > &Other) const
 
virtual void Clear () override
 
virtual bool IsEqual (const ISplineInterface *OtherSpline) const override
 
ImplType * GetTypedAttributeChannel (FName Name) const
 
TSplineInterface< AttrType > * GetAttributeChannel (FName Name) const
 
TArray< FNameGetAllAttributeChannelNames () const
 
TArray< FNameGetAttributeChannelNamesOfType () const
 
bool RemoveAttributeChannel (const FName &Name)
 
bool CloneAttributeChannel (const FName &SourceName, const FName &DestName)
 
float MapParameterToChildSpace (FName Name, float Parameter) const
 
float MapParameterFromChildSpace (FName Name, float Parameter) const
 
FInterval1f GetMappedChildSpace (FName Name) const
 
ImplType * CreateAttributeChannel (const FName &Name)
 
TArray< FNameGetAttributeChannelNamesBySplineType () const
 
TArray< FNameGetAttributeChannelNamesByValueType () const
 
bool ClearAttributeChannel (const FName &Name)
 
bool HasAttributeChannel (const FName &Name) const
 
AttrType EvaluateAttribute (const FName &Name, float Parameter) const
 
bool SetAttributeChannelRange (FName Name, const FInterval1f &Range, EMappingRangeSpace RangeSpace)
 
- Public Member Functions inherited from UE::Geometry::Spline::TSplineWrapper< SPLINETYPE >
virtual ~TSplineWrapper () override=default
 
virtual int32 GetNumberOfSegments () const override
 
virtual FInterval1f GetSegmentParameterRange (int32 SegmentIndex) const override
 
virtual FString GetValueTypeName () const override
 
virtual FInterval1f GetParameterSpace () const override
 
virtual bool IsClosedLoop () const override
 
virtual void SetPreInfinityMode (EOutOfBoundsHandlingMode InMode) override
 
virtual void SetPostInfinityMode (EOutOfBoundsHandlingMode InMode) override
 
virtual EOutOfBoundsHandlingMode GetPreInfinityMode () const override
 
virtual EOutOfBoundsHandlingMode GetPostInfinityMode () const override
 
virtual ValueType EvaluateImpl (float Parameter) const override
 
virtual float FindNearest (const ValueType &Point, float &OutSquaredDistance) const override
 
virtual TUniquePtr< ISplineInterfaceClone () const override
 
- Public Member Functions inherited from UE::Geometry::Spline::TSplineInterface< SPLINETYPE::ValueType >
 TSplineInterface ()
 
virtual ~TSplineInterface () override=default
 
ValueType Evaluate (float Parameter) const
 
virtual float FindNearest (const ValueType &Point, float &OutSquaredDistance) const=0
 
- Public Member Functions inherited from UE::Geometry::Spline::ISplineInterface
virtual ~ISplineInterface ()=default
 

Friends

struct FSpline
 
FArchiveoperator<< (FArchive &Ar, FNewSpline &Spline)
 

Additional Inherited Members

- Public Types inherited from UE::Geometry::Spline::TMultiSpline< UE::Geometry::Spline::FTangentBezierSpline3d >
enum  EMappingRangeSpace
 
using SplineType = typename TSplineWrapper< UE::Geometry::Spline::FTangentBezierSpline3d >::SplineType
 
typedef TSplineWrapper< UE::Geometry::Spline::FTangentBezierSpline3d >::ValueType ValueType
 
- Public Types inherited from UE::Geometry::Spline::TSplineWrapper< SPLINETYPE >
typedef SPLINETYPE SplineType
 
typedef SplineType::ValueType ValueType
 
- Public Types inherited from UE::Geometry::Spline::TSplineInterface< SPLINETYPE::ValueType >
typedef SPLINETYPE::ValueType ValueType
 
- Static Public Member Functions inherited from UE::Geometry::Spline::TMultiSpline< UE::Geometry::Spline::FTangentBezierSpline3d >
static const FSplineTypeId::IdTypeGetStaticTypeId ()
 
static FString GetSplineTypeName ()
 
- Static Public Member Functions inherited from UE::Geometry::Spline::TSplineInterface< SPLINETYPE::ValueType >
static void SetTypeName (const FString &InTypeName)
 
- Protected Member Functions inherited from UE::Geometry::Spline::TSplineInterface< SPLINETYPE::ValueType >
float HandleOutOfBounds (float Parameter) const
 
- Protected Attributes inherited from UE::Geometry::Spline::TSplineWrapper< SPLINETYPE >
SplineType InternalSpline
 
- Protected Attributes inherited from UE::Geometry::Spline::TSplineInterface< SPLINETYPE::ValueType >
EOutOfBoundsHandlingMode PreInfinityMode
 
EOutOfBoundsHandlingMode PostInfinityMode
 

Detailed Description

FNewSpline Definition

A spline that provides tangent-based control over curve shape while using piecewise Bezier curves internally for evaluation. Supports both manual tangent control and automatic tangent computation.

Constructor & Destructor Documentation

◆ FNewSpline() [1/4]

FNewSpline::FNewSpline ( )

FNewSpline Implementation

◆ FNewSpline() [2/4]

FNewSpline::FNewSpline ( const FNewSpline Other)

◆ FNewSpline() [3/4]

FNewSpline::FNewSpline ( const FLegacySpline Other)

◆ FNewSpline() [4/4]

FNewSpline::FNewSpline ( const FSplineCurves Other)

◆ ~FNewSpline()

virtual FNewSpline::~FNewSpline ( )
overridevirtualdefault

Member Function Documentation

◆ AddAttributeValue()

template<typename AttrType >
int32 FNewSpline::AddAttributeValue ( FName  Name,
const AttrType &  Value,
float  Parameter 
)

◆ AddPoint()

void FNewSpline::AddPoint ( const FSplinePoint Point)

◆ EvaluateDerivative()

FVector FNewSpline::EvaluateDerivative ( float  Parameter) const

◆ EvaluatePosition()

FVector FNewSpline::EvaluatePosition ( float  Parameter) const

Parameter based evaluation API.

◆ EvaluateRotation()

FQuat FNewSpline::EvaluateRotation ( float  Parameter) const

◆ EvaluateScale()

FVector FNewSpline::EvaluateScale ( float  Parameter) const

◆ FindNearest()

float FNewSpline::FindNearest ( const FVector InLocation,
float OutSquaredDistance 
) const
overridevirtual

◆ FindNearestOnSegment()

float FNewSpline::FindNearestOnSegment ( const FVector InLocation,
int32  SegmentIndex,
float OutSquaredDistance 
) const

◆ GetAttributeParameter()

template<typename AttrType >
float FNewSpline::GetAttributeParameter ( const FName Name,
int32  Index 
) const

◆ GetAttributeValue()

template<typename AttrType >
AttrType FNewSpline::GetAttributeValue ( const FName Name,
int32  Index 
) const

◆ GetDistanceAtParameter()

float FNewSpline::GetDistanceAtParameter ( float  Parameter)

◆ GetInTangent()

FVector FNewSpline::GetInTangent ( const int32  Index) const

◆ GetLocation()

FVector FNewSpline::GetLocation ( const int32  Index) const

◆ GetOutTangent()

FVector FNewSpline::GetOutTangent ( const int32  Index) const

◆ GetParameterAtDistance()

float FNewSpline::GetParameterAtDistance ( float  Distance)

◆ GetParameterAtIndex()

float FNewSpline::GetParameterAtIndex ( int32  Index) const

◆ GetPoint()

FSplinePoint FNewSpline::GetPoint ( int32  Index) const

◆ GetRotation()

FQuat FNewSpline::GetRotation ( const int32  Index) const

◆ GetScale()

FVector FNewSpline::GetScale ( const int32  Index) const

◆ GetSegmentLength()

float FNewSpline::GetSegmentLength ( const int32  Index,
const float  Param,
const FVector Scale3D = FVector(1.0f) 
) const

◆ GetSegmentSpace()

FInterval1f FNewSpline::GetSegmentSpace ( ) const

Returns the parameter space of FNewSpline. All public functions taking a parameter are only defined when the provided value is in this interval.

Returns
[0, NumSegments] when NumSegment != 0, otherwise undefined (empty interval).

◆ GetSplineLength()

float FNewSpline::GetSplineLength ( )

◆ GetSplinePointsPosition()

const FInterpCurveVector & FNewSpline::GetSplinePointsPosition ( ) const
inline

◆ GetSplinePointsRotation()

const FInterpCurveQuat & FNewSpline::GetSplinePointsRotation ( ) const
inline

◆ GetSplinePointsScale()

const FInterpCurveVector & FNewSpline::GetSplinePointsScale ( ) const
inline

◆ GetSplinePointType()

EInterpCurveMode FNewSpline::GetSplinePointType ( int32  Index) const

◆ InsertPoint()

void FNewSpline::InsertPoint ( const FSplinePoint Point,
int32  Index 
)

◆ NumAttributeValues()

template<typename AttrType >
int32 FNewSpline::NumAttributeValues ( FName  Name) const

◆ operator!=()

bool FNewSpline::operator!= ( const FNewSpline Other) const

◆ operator=()

FNewSpline & FNewSpline::operator= ( const FNewSpline Other)

Copy assignment

◆ RemoveAttributeValue()

template<typename AttrType >
void FNewSpline::RemoveAttributeValue ( FName  Name,
int32  Index 
)

◆ RemovePoint()

void FNewSpline::RemovePoint ( int32  Index)

Removes a point from the spline

◆ Reset()

void FNewSpline::Reset ( )

◆ ResetRotation()

void FNewSpline::ResetRotation ( )

◆ ResetScale()

void FNewSpline::ResetScale ( )

◆ Serialize()

bool FNewSpline::Serialize ( FArchive Ar)
overridevirtual

◆ SetAttributeParameter()

template<typename AttrType >
int32 FNewSpline::SetAttributeParameter ( const FName Name,
int32  Index,
float  ParentSpaceParameter 
)

Cases we handle below: 1) Moving the only existing attribute. 2) Moving an endpoint for a 2 point channel. 3) Moving the first endpoint for a 3+ point channel. 4) Moving the last endpoint for a 3+ point channel. 5) Moving an internal point.

◆ SetAttributeValue()

template<typename AttrType >
void FNewSpline::SetAttributeValue ( FName  Name,
const AttrType &  Value,
int32  Index 
)

◆ SetClosedLoop()

void FNewSpline::SetClosedLoop ( bool  bInClosedLoop)
overridevirtual

◆ SetInTangent()

void FNewSpline::SetInTangent ( const int32  Index,
const FVector InTangent 
)

◆ SetLocation()

void FNewSpline::SetLocation ( int32  Index,
const FVector InLocation 
)

◆ SetOutTangent()

void FNewSpline::SetOutTangent ( const int32  Index,
const FVector OutTangent 
)

◆ SetRotation()

void FNewSpline::SetRotation ( int32  Index,
const FQuat InRotation 
)

◆ SetScale()

void FNewSpline::SetScale ( int32  Index,
const FVector InScale 
)

◆ SetSplinePointType()

void FNewSpline::SetSplinePointType ( int32  Index,
EInterpCurveMode  Type 
)

◆ UpdateSpline() [1/2]

void FNewSpline::UpdateSpline ( )

Updates the spline using the current configuration.

◆ UpdateSpline() [2/2]

void FNewSpline::UpdateSpline ( const FSpline::FUpdateSplineParams Params)

Updates the spline configuration, then updates the spline.

Friends And Related Symbol Documentation

◆ FSpline

◆ operator<<

FArchive & operator<< ( FArchive Ar,
FNewSpline Spline 
)
friend

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