Navigation
API > API/Runtime > API/Runtime/GeometryCore
| Name | TBSpline |
| Type | class |
| Header File | /Engine/Source/Runtime/GeometryCore/Public/Splines/BSpline.h |
| Include Path | #include "Splines/BSpline.h" |
Syntax
template<typename VALUETYPE, int32 DEGREE>
class TBSpline :
public UE::Geometry::Spline::TSplineInterface< VALUETYPE > ,
private UE::Geometry::Spline::TSelfRegisteringSpline< TBSpline< VALUETYPE, DEGREE >, VALUETYPE >
Inheritance Hierarchy
- TSelfRegisteringSpline → TBSpline
Implements Interfaces
Derived Classes
Constructors
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
TBSpline() |
Splines/BSpline.h |
Destructors
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
virtual ~TBSpline() |
Splines/BSpline.h |
Structs
| Name | Remarks |
|---|---|
| FValidKnotSearchParams | |
| THasToString |
Typedefs
| Name | Type | Remarks | Include Path |
|---|---|---|---|
| FWindow | TStaticArray< const ValueType *, WindowSize > | Splines/BSpline.h | |
| ValueType | typename TSplineInterface< VALUETYPE >::ValueType | Splines/BSpline.h |
Constants
| Name | Type | Remarks | Include Path |
|---|---|---|---|
| Degree | int32 | Splines/BSpline.h | |
| WindowSize | int32 | Splines/BSpline.h |
Functions
Public
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
int32 AddValue
(
const ValueType& NewValue |
Splines/BSpline.h | ||
void Dump() |
Splines/BSpline.h | ||
virtual int32 FindIndexForParameter
(
float Parameter, |
Find the control point index and local parameter for global parameter. | Splines/BSpline.h | |
int32 GetKnotMultiplicity
(
int32 KnotIndex |
Returns how many times a given knot value appears. | Splines/BSpline.h | |
FInterval1f GetKnotRange() |
Get the valid parameter range in knot space. | Splines/BSpline.h | |
| Knot vector management. | Splines/BSpline.h | ||
| Get the pair-based knot vector. | Splines/BSpline.h | ||
virtual float GetParameter
(
int32 Index |
Returns parameter value for a control point index using Greville Abscissae. | Splines/BSpline.h | |
const ValueType & GetValue
(
int32 Idx |
Splines/BSpline.h | ||
int32 InsertValue
(
int32 Idx, |
Splines/BSpline.h | ||
bool IsClampedEnds() |
Splines/BSpline.h | ||
int32 NumKeys() |
Splines/BSpline.h | ||
virtual bool RemoveValue
(
int32 Index |
Splines/BSpline.h | ||
virtual void Reparameterize
(
EParameterizationPolicy ParameterizationPolicy |
Updates the knot vector based on current control points and settings | Splines/BSpline.h | |
void ResetKnotVector() |
Splines/BSpline.h | ||
void SetClampedEnds
(
bool bInClampEnds |
Sets whether the spline should be clamped at endpoints When true, the curve will interpolate the first and last control points | Splines/BSpline.h | |
| Sets a custom knot vector using explicit knot/multiplicity pairs | Splines/BSpline.h | ||
virtual int32 SetParameter
(
int32 Index, |
Parameterization methods. | Splines/BSpline.h | |
bool SetValue
(
int32 Idx, |
Splines/BSpline.h |
Overridden from TSplineInterface
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
virtual ValueType EvaluateImpl
(
float Parameter |
TSplineInterface Implementation. | Splines/BSpline.h | |
virtual float FindNearest
(
const ValueType& Point, |
Finds the nearest parameter value to a point | Splines/BSpline.h |
Overridden from ISplineInterface
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
virtual void Clear() |
ISplineInterface Implementation. | Splines/BSpline.h | |
virtual TUniquePtr< ISplineInterface > Clone() |
Splines/BSpline.h | ||
virtual FString GetImplementationName() |
Splines/BSpline.h | ||
virtual int32 GetNumberOfSegments() |
Returns the number of Bezier segments in the spline | Splines/BSpline.h | |
virtual FInterval1f GetParameterSpace() |
Splines/BSpline.h | ||
virtual FInterval1f GetSegmentParameterRange
(
int32 SegmentIndex |
Maps a segment index to its parameter range | Splines/BSpline.h | |
virtual FSplineTypeId::IdType GetTypeId() |
Default implementation of type ID (derived classes should override) | Splines/BSpline.h | |
virtual bool IsClosedLoop() |
Splines/BSpline.h | ||
virtual bool IsEqual
(
const ISplineInterface* OtherSpline |
Splines/BSpline.h | ||
virtual bool Serialize
(
FArchive& Ar |
Serializes the spline | Splines/BSpline.h | |
virtual void SetClosedLoop
(
bool bClosed |
Splines/BSpline.h |
Protected
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
void ApplyClampedKnotsMultiplicity () |
Applies clamped multiplicity to the knot vector. | Splines/BSpline.h | |
void GenerateCentripetalKnots
(
int32 KnotCount |
Generates a knot vector using centripetal parameterization Uses square root of chord lengths which helps prevent cusps and unwanted loops Often provides the most visually pleasing results for interactive curve editing | Splines/BSpline.h | |
void GenerateChordLengthKnots
(
int32 KnotCount |
Generates a knot vector based on chord lengths between control points This gives better parameterization when control points are unevenly spaced | Splines/BSpline.h | |
void GenerateUniformKnots
(
int32 KnotCount |
Generates a uniform knot vector with equal spacing For clamped ends, multiplicity of degree+1 is used at endpoints | Splines/BSpline.h | |
virtual int32 GetExpectedNumKnots() |
Splines/BSpline.h | ||
float GetNearestAvailableKnotValue
(
const FValidKnotSearchParams& InSearchParams |
Finds the nearest available knot value that does not conflict with existing knots. | Splines/BSpline.h | |
bool InsertKnot
(
FKnot InKnot |
Inserts a knot at the specified parameter value | Splines/BSpline.h | |
void MarkFlatKnotsCacheDirty() |
Marks the flat knots cache as dirty. | Splines/BSpline.h | |
void PrintKnotVector() |
Prints the knot vector to the log for debugging. | Splines/BSpline.h | |
bool RemoveKnot
(
int32 KnotIdx |
Removes a knot at the specified index. | Splines/BSpline.h | |
void SetKnot
(
int32 KnotIdx, |
Sets the value of a knot | Splines/BSpline.h | |
void SwapKnots
(
int32 KnotIdxA, |
Swaps two knots. | Splines/BSpline.h | |
void UpdateFlatKnotsCache() |
Updates the flat knot cache from the pair representation if the cache is dirty. | Splines/BSpline.h |
Static
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
static FString GetSplineTypeName() |
Splines/BSpline.h | ||
static const FSplineTypeId::IdType & GetStaticTypeId() |
Splines/BSpline.h |
Operators
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
bool operator==
(
const TBSpline& Other |
Splines/BSpline.h |