UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
UE::Geometry::Spline::TMultiSpline< SPLINETYPE > Class Template Reference

#include <MultiSpline.h>

+ Inheritance diagram for UE::Geometry::Spline::TMultiSpline< SPLINETYPE >:

Public Types

enum class  EMappingRangeSpace : uint8 { Normalized , Parent }
 
using SplineType = typename TSplineWrapper< SPLINETYPE >::SplineType
 
typedef TSplineWrapper< SPLINETYPE >::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
 

Public Member Functions

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
 
virtual bool Serialize (FArchive &Ar) override
 
template<typename ImplType >
ImplType * GetTypedAttributeChannel (FName Name) const
 
template<typename AttrType >
TSplineInterface< AttrType > * GetAttributeChannel (FName Name) const
 
TArray< FNameGetAllAttributeChannelNames () const
 
template<typename AttrType >
TArray< FNameGetAttributeChannelNamesOfType () const
 
bool RemoveAttributeChannel (const FName &Name)
 
template<typename AttrType >
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
 
template<typename ImplType >
ImplType * CreateAttributeChannel (const FName &Name)
 
template<typename AttrSplineType >
TArray< FNameGetAttributeChannelNamesBySplineType () const
 
template<typename AttrType >
TArray< FNameGetAttributeChannelNamesByValueType () const
 
bool ClearAttributeChannel (const FName &Name)
 
bool HasAttributeChannel (const FName &Name) const
 
template<typename AttrType >
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 void SetClosedLoop (bool bClosed) 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
 

Static Public Member Functions

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)
 

Additional Inherited Members

- 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

template<typename SPLINETYPE>
class UE::Geometry::Spline::TMultiSpline< SPLINETYPE >

Multi-spline implementation that can contain other splines Provides attribute functionality while allowing direct access to implementation-specific methods

Member Typedef Documentation

◆ SplineType

◆ ValueType

Member Enumeration Documentation

◆ EMappingRangeSpace

Enumerator
Normalized 
Parent 

Member Function Documentation

◆ Clear()

◆ ClearAttributeChannel()

template<typename SPLINETYPE >
bool UE::Geometry::Spline::TMultiSpline< SPLINETYPE >::ClearAttributeChannel ( const FName Name)
inline

Clears all values from a specific attribute channel

Parameters
Name- Name of the attribute channel to clear
Returns
true if the channel was found and cleared, false otherwise

◆ CloneAttributeChannel()

template<typename SPLINETYPE >
template<typename AttrType >
bool UE::Geometry::Spline::TMultiSpline< SPLINETYPE >::CloneAttributeChannel ( const FName SourceName,
const FName DestName 
)
inline

Clones an attribute channel to a new name

Template Parameters
AttrType- The value type of the attribute channel
Parameters
SourceName- Name of the source channel to clone
DestName- Name for the new cloned channel
Returns
True if the channel was successfully cloned

◆ CreateAttributeChannel()

template<typename SPLINETYPE >
template<typename ImplType >
ImplType * UE::Geometry::Spline::TMultiSpline< SPLINETYPE >::CreateAttributeChannel ( const FName Name)
inline

Creates an attribute channel and returns the typed implementation

Template Parameters
ImplType- The specific spline implementation type to create
Parameters
Name- Name of the channel to create
Returns
Pointer to the created attribute channel, or nullptr if creation failed

◆ EvaluateAttribute()

template<typename SPLINETYPE >
template<typename AttrType >
AttrType UE::Geometry::Spline::TMultiSpline< SPLINETYPE >::EvaluateAttribute ( const FName Name,
float  Parameter 
) const
inline

Gets a value from an attribute channel at the specified parameter

Parameters
NameName of the attribute channel
ParameterParameter in parent space
Returns
Attribute value at the parameter

◆ GetAllAttributeChannelNames()

template<typename SPLINETYPE >
TArray< FName > UE::Geometry::Spline::TMultiSpline< SPLINETYPE >::GetAllAttributeChannelNames ( ) const
inline

Gets all attribute channel names present in this spline

Returns
Array of channel names

◆ GetAttributeChannel()

template<typename SPLINETYPE >
template<typename AttrType >
TSplineInterface< AttrType > * UE::Geometry::Spline::TMultiSpline< SPLINETYPE >::GetAttributeChannel ( FName  Name) const
inline

Gets an attribute channel interface of the specified type

Parameters
NameName of the attribute channel
Returns
Pointer to the channel interface, or nullptr if not found

◆ GetAttributeChannelNamesBySplineType()

template<typename SPLINETYPE >
TArray< FName > UE::Geometry::Spline::TMultiSpline< SPLINETYPE >::GetAttributeChannelNamesBySplineType ( ) const
inline

◆ GetAttributeChannelNamesByValueType()

template<typename SPLINETYPE >
template<typename AttrType >
TArray< FName > UE::Geometry::Spline::TMultiSpline< SPLINETYPE >::GetAttributeChannelNamesByValueType ( ) const
inline

◆ GetAttributeChannelNamesOfType()

template<typename SPLINETYPE >
template<typename AttrType >
TArray< FName > UE::Geometry::Spline::TMultiSpline< SPLINETYPE >::GetAttributeChannelNamesOfType ( ) const
inline

Gets names of attribute channels with a specific value type

Template Parameters
AttrType- The value type to filter by (e.g., float, FVector)
Returns
Array of channel names with the specified value type

◆ GetImplementationName()

template<typename SPLINETYPE >
virtual FString UE::Geometry::Spline::TMultiSpline< SPLINETYPE >::GetImplementationName ( ) const
inlineoverridevirtual

◆ GetMappedChildSpace()

template<typename SPLINETYPE >
FInterval1f UE::Geometry::Spline::TMultiSpline< SPLINETYPE >::GetMappedChildSpace ( FName  Name) const
inline

Map a child spline's domain into the primary spline's domain.

Parameters
NameName of the child spline
Returns
The domain of the child spline in parent space.

◆ GetSpline() [1/2]

◆ GetSpline() [2/2]

template<typename SPLINETYPE >
const SplineType & UE::Geometry::Spline::TMultiSpline< SPLINETYPE >::GetSpline ( ) const
inline

◆ GetSplineTypeName()

template<typename SPLINETYPE >
static FString UE::Geometry::Spline::TMultiSpline< SPLINETYPE >::GetSplineTypeName ( )
inlinestatic

◆ GetStaticTypeId()

template<typename SPLINETYPE >
static const FSplineTypeId::IdType & UE::Geometry::Spline::TMultiSpline< SPLINETYPE >::GetStaticTypeId ( )
inlinestatic

◆ GetTypedAttributeChannel()

template<typename SPLINETYPE >
template<typename ImplType >
ImplType * UE::Geometry::Spline::TMultiSpline< SPLINETYPE >::GetTypedAttributeChannel ( FName  Name) const
inline

Gets a strongly-typed attribute channel with the specific implementation type

Template Parameters
ImplType- The specific spline implementation type to get
Parameters
Name- Name of the attribute channel
Returns
Pointer to the channel implementation, or nullptr if not found or can't be cast

◆ GetTypeId()

template<typename SPLINETYPE >
virtual FSplineTypeId::IdType UE::Geometry::Spline::TMultiSpline< SPLINETYPE >::GetTypeId ( ) const
inlineoverridevirtual

Default implementation of type ID (derived classes should override)

Reimplemented from UE::Geometry::Spline::TSplineInterface< SPLINETYPE::ValueType >.

◆ HasAttributeChannel()

template<typename SPLINETYPE >
bool UE::Geometry::Spline::TMultiSpline< SPLINETYPE >::HasAttributeChannel ( const FName Name) const
inline

Checks for an attribute channel called Name

Parameters
Name- Name of the attribute channel to find
Returns
true if an attribute channel called Name exists.

◆ IsEqual()

template<typename SPLINETYPE >
virtual bool UE::Geometry::Spline::TMultiSpline< SPLINETYPE >::IsEqual ( const ISplineInterface OtherSpline) const
inlineoverridevirtual

◆ MapParameterFromChildSpace()

template<typename SPLINETYPE >
float UE::Geometry::Spline::TMultiSpline< SPLINETYPE >::MapParameterFromChildSpace ( FName  Name,
float  Parameter 
) const
inline

Maps a parameter from child space to parent space

Parameters
NameName of the child spline
ParameterParameter in child space
Returns
Parameter mapped to parent space

◆ MapParameterToChildSpace()

template<typename SPLINETYPE >
float UE::Geometry::Spline::TMultiSpline< SPLINETYPE >::MapParameterToChildSpace ( FName  Name,
float  Parameter 
) const
inline

Maps a parameter from parent space to child space

Parameters
NameName of the child spline
ParameterParameter in parent space
Returns
Parameter mapped to child space

◆ operator==()

template<typename SPLINETYPE >
virtual bool UE::Geometry::Spline::TMultiSpline< SPLINETYPE >::operator== ( const TMultiSpline< SplineType > &  Other) const
inlinevirtual

◆ RemoveAttributeChannel()

template<typename SPLINETYPE >
bool UE::Geometry::Spline::TMultiSpline< SPLINETYPE >::RemoveAttributeChannel ( const FName Name)
inline

Removes an attribute channel completely

Parameters
Name- Name of the channel to remove
Returns
True if the channel was found and removed

◆ Serialize()

template<typename SPLINETYPE >
virtual bool UE::Geometry::Spline::TMultiSpline< SPLINETYPE >::Serialize ( FArchive Ar)
inlineoverridevirtual

Serializes the spline

Reimplemented from UE::Geometry::Spline::TSplineWrapper< SPLINETYPE >.

Reimplemented in FNewSpline.

◆ SetAttributeChannelRange()

template<typename SPLINETYPE >
bool UE::Geometry::Spline::TMultiSpline< SPLINETYPE >::SetAttributeChannelRange ( FName  Name,
const FInterval1f Range,
EMappingRangeSpace  RangeSpace 
)
inline

Sets the mapping range for an attribute channel

Parameters
NameName of the attribute channel
RangeNew mapping range
RangeSpaceSpace of the range (normalized or parent)
Returns
True if successful

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