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

#include <PolyBezierSpline.h>

+ Inheritance diagram for UE::Geometry::Spline::TPolyBezierSpline< VALUETYPE >:

Public Types

using Base = TBSpline< VALUETYPE, 3 >
 
typedef Base::ValueType ValueType
 
using FWindow = typename Base::FWindow
 
- Public Types inherited from UE::Geometry::Spline::TBSpline< VALUETYPE, 3 >
using ValueType = typename TSplineInterface< VALUETYPE >::ValueType
 
using FWindow = TStaticArray< const ValueType *, WindowSize >
 
- Public Types inherited from UE::Geometry::Spline::TSplineInterface< VALUETYPE >
typedef VALUETYPE ValueType
 

Public Member Functions

 DECLARE_SPLINE_TYPE_ID (TEXT("PolyBezier"), *TSplineValueTypeTraits< VALUETYPE >::Name)
 
 TPolyBezierSpline ()=default
 
virtual ~TPolyBezierSpline () override=default
 
 TPolyBezierSpline (const ValueType &P0, const ValueType &P1, const ValueType &P2, const ValueType &P3, EParameterizationPolicy Parameterization=EParameterizationPolicy::Uniform)
 
virtual void Clear () override
 
virtual TUniquePtr< ISplineInterfaceClone () const override
 
float FindNearestOnSegment (const ValueType &Point, int32 SegmentIndex, float &OutSquaredDistance) const
 
virtual float FindNearest (const ValueType &Point, float &OutSquaredDistance) const override
 
template<int32 Order>
ValueType EvaluateDerivative (float Parameter) const
 
bool SetControlPoints (const TArray< ValueType > &Points, EParameterizationPolicy ParameterizationPolicy)
 
bool AddBezierSegments (const TArray< ValueType > &Points, bool bAppend, EParameterizationPolicy ParameterizationPolicy)
 
int32 AppendBezierSegment (const ValueType &P1, const ValueType &P2, const ValueType &P3, EParameterizationPolicy ParameterizationPolicy=EParameterizationPolicy::Centripetal)
 
int32 PrependBezierSegment (const ValueType &P0, const ValueType &P1, const ValueType &P2, EParameterizationPolicy ParameterizationPolicy=EParameterizationPolicy::Centripetal)
 
int32 InsertPointAtPosition (int32 SegmentIndex, const ValueType &Position, EParameterizationPolicy ParameterizationPolicy=EParameterizationPolicy::Centripetal)
 
int32 InsertPointAtSegmentParam (int32 SegmentIndex, float LocalT, const ValueType &Position, EParameterizationPolicy ParameterizationPolicy=EParameterizationPolicy::Centripetal)
 
int32 InsertPoint (float Parameter, const ValueType &Position, EParameterizationPolicy ParameterizationPolicy=EParameterizationPolicy::Centripetal)
 
int32 InsertBezierSegment (float Parameter, const ValueType &P1, const ValueType &P2, const ValueType &P3, EParameterizationPolicy ParameterizationPolicy=EParameterizationPolicy::Centripetal)
 
bool RemoveSegment (const int32 SegmentIndex)
 
bool RemovePoint (int32 PointIndex)
 
bool UpdateSegmentPoint (const int32 SegmentIndex, const int32 PointIndex, const ValueType &NewValue)
 
bool UpdateSegment (int32 SegmentIndex, const ValueType &P0, const ValueType &P1, const ValueType &P2, const ValueType &P3)
 
virtual int32 GetNumberOfSegments () const override
 
virtual FInterval1f GetSegmentParameterRange (int32 SegmentIndex) const override
 
virtual void Reparameterize (EParameterizationPolicy Mode=EParameterizationPolicy::Centripetal) override
 
virtual FInterval1f GetParameterSpace () const override
 
virtual float GetParameter (int32 Index) const override
 
virtual int32 SetParameter (int32 Index, float NewParameter) override
 
void FlipSegment (int32 Segment)
 
virtual int32 FindIndexForParameter (float Parameter, float &OutLocalParam) const override
 
void SetClosedLoopFlag (bool bClosed)
 
virtual void SetClosedLoop (bool bShouldClose) override
 
float MapLocalSegmentParameterToGlobal (int32 SegmentIndex, float LocalParam) const
 
bool MapGlobalParameterToLocalSegment (float GlobalParam, int32 &OutSegmentIndex, float &OutLocalParam) const
 
int32 GetNumDistinctSegments () const
 
int32 FindSegmentIndex (float Parameter, float &OutLocalParam) const
 
virtual int32 GetExpectedNumKnots () const override
 
void SetKnotVector (const TArray< FKnot > &NewKnots)
 
- Public Member Functions inherited from UE::Geometry::Spline::TBSpline< VALUETYPE, 3 >
 DECLARE_SPLINE_TYPE_ID (BSplineNameSelector< DEGREE >::Name, *TSplineValueTypeTraits< VALUETYPE >::Name)
 
 TBSpline ()=default
 
virtual ~TBSpline () override=default
 
void Dump () const
 
virtual bool IsEqual (const ISplineInterface *OtherSpline) const override
 
virtual bool Serialize (FArchive &Ar) override
 
bool operator== (const TBSpline &Other) const
 
virtual bool IsClosedLoop () const override
 
virtual ValueType EvaluateImpl (float Parameter) const override
 
int32 NumKeys () const
 
const ValueTypeGetValue (int32 Idx) const
 
int32 AddValue (const ValueType &NewValue)
 
bool SetValue (int32 Idx, const ValueType &NewValue)
 
int32 InsertValue (int32 Idx, const ValueType &NewValue)
 
virtual bool RemoveValue (int32 Index)
 
const TArray< FKnot > & GetKnotVector () const
 
const TArray< FKnot > & GetPairKnots () const
 
void ResetKnotVector ()
 
int32 GetKnotMultiplicity (int32 KnotIndex) const
 
bool SetCustomKnots (const TArray< FKnot > &NewKnots)
 
void SetClampedEnds (bool bInClampEnds)
 
bool IsClampedEnds () const
 
FInterval1f GetKnotRange () const
 
- Public Member Functions inherited from UE::Geometry::Spline::TSplineInterface< VALUETYPE >
 TSplineInterface ()
 
virtual ~TSplineInterface () override=default
 
ValueType Evaluate (float Parameter) const
 
virtual FSplineTypeId::IdType GetTypeId () const override
 
virtual FString GetValueTypeName () const override
 
virtual void SetPreInfinityMode (EOutOfBoundsHandlingMode InMode)
 
virtual void SetPostInfinityMode (EOutOfBoundsHandlingMode InMode)
 
virtual EOutOfBoundsHandlingMode GetPreInfinityMode () const
 
virtual EOutOfBoundsHandlingMode GetPostInfinityMode () const
 
- Public Member Functions inherited from UE::Geometry::Spline::ISplineInterface
virtual ~ISplineInterface ()=default
 
virtual FString GetImplementationName () const =0
 

Static Public Member Functions

static TPolyBezierSpline CreateDefault ()
 
static TPolyBezierSpline< ValueTypeCreateLine (const ValueType &Start, const ValueType &End)
 
static TPolyBezierSpline< ValueTypeCreateCircleArc (const ValueType &Center, float Radius, float StartAngle, float EndAngle, int32 NumSegments=4)
 
static TPolyBezierSpline< ValueTypeCreateCircle (const ValueType &Center, float Radius, int32 NumSegments=4)
 
static TPolyBezierSpline< ValueTypeCreateEllipse (const ValueType &Center, float RadiusX, float RadiusY, int32 NumSegments=4)
 
static int32 GetDegree ()
 
- Static Public Member Functions inherited from UE::Geometry::Spline::TSplineInterface< VALUETYPE >
static void SetTypeName (const FString &InTypeName)
 

Additional Inherited Members

- Static Public Attributes inherited from UE::Geometry::Spline::TBSpline< VALUETYPE, 3 >
static constexpr int32 Degree
 
static constexpr int32 WindowSize
 
- Protected Member Functions inherited from UE::Geometry::Spline::TBSpline< VALUETYPE, 3 >
void SetKnot (int32 KnotIdx, float NewValue)
 
bool RemoveKnot (int32 KnotIdx)
 
void SwapKnots (int32 KnotIdxA, int32 KnotIdxB)
 
bool InsertKnot (FKnot InKnot)
 
float GetNearestAvailableKnotValue (const FValidKnotSearchParams &InSearchParams) const
 
void GenerateUniformKnots (int32 KnotCount)
 
void GenerateChordLengthKnots (int32 KnotCount)
 
void GenerateCentripetalKnots (int32 KnotCount)
 
void ApplyClampedKnotsMultiplicity ()
 
void UpdateFlatKnotsCache () const
 
void MarkFlatKnotsCacheDirty () const
 
void PrintKnotVector () const
 
- Protected Member Functions inherited from UE::Geometry::Spline::TSplineInterface< VALUETYPE >
float HandleOutOfBounds (float Parameter) const
 
- Protected Attributes inherited from UE::Geometry::Spline::TBSpline< VALUETYPE, 3 >
TArray< ValueTypeValues
 
TArray< FKnotPairKnots
 
TArray< floatFlatKnots
 
bool bFlatKnotsCacheDirty
 
bool bIsClosedLoop
 
bool bClampEnds
 
- Protected Attributes inherited from UE::Geometry::Spline::TSplineInterface< VALUETYPE >
EOutOfBoundsHandlingMode PreInfinityMode = EOutOfBoundsHandlingMode::Zero
 
EOutOfBoundsHandlingMode PostInfinityMode = EOutOfBoundsHandlingMode::Zero
 

Member Typedef Documentation

◆ Base

◆ FWindow

◆ ValueType

Constructor & Destructor Documentation

◆ TPolyBezierSpline() [1/2]

template<typename VALUETYPE >
UE::Geometry::Spline::TPolyBezierSpline< VALUETYPE >::TPolyBezierSpline ( )
default

◆ ~TPolyBezierSpline()

◆ TPolyBezierSpline() [2/2]

template<typename VALUETYPE >
UE::Geometry::Spline::TPolyBezierSpline< VALUETYPE >::TPolyBezierSpline ( const ValueType P0,
const ValueType P1,
const ValueType P2,
const ValueType P3,
EParameterizationPolicy  Parameterization = EParameterizationPolicy::Uniform 
)
inline

Member Function Documentation

◆ AddBezierSegments()

template<typename VALUETYPE >
bool UE::Geometry::Spline::TPolyBezierSpline< VALUETYPE >::AddBezierSegments ( const TArray< ValueType > &  Points,
bool  bAppend,
EParameterizationPolicy  ParameterizationPolicy 
)
inline

Adds multiple Bezier segments to the spline.

Parameters
Storage- Storage to add the segments to
Points- Array of control points defining the new segments
bAppend- If true, append to the end of spline; if false, prepend to the beginning
ParameterizationPolicy- How to distribute Knots for the new segments
Returns
True if the segments were successfully added

◆ AppendBezierSegment()

template<typename VALUETYPE >
int32 UE::Geometry::Spline::TPolyBezierSpline< VALUETYPE >::AppendBezierSegment ( const ValueType P1,
const ValueType P2,
const ValueType P3,
EParameterizationPolicy  ParameterizationPolicy = EParameterizationPolicy::Centripetal 
)
inline

Appends a Bezier segment using only 3 points (P1, P2, P3) The start point (P0) is automatically inferred from the last point of the previous segment.

Parameters
P1First control point
P2Second control point
P3End point
ParameterizationPolicyHow to distribute Knots
Returns
Index of the new segment

◆ Clear()

◆ Clone()

◆ CreateCircle()

template<typename VALUETYPE >
static TPolyBezierSpline< ValueType > UE::Geometry::Spline::TPolyBezierSpline< VALUETYPE >::CreateCircle ( const ValueType Center,
float  Radius,
int32  NumSegments = 4 
)
inlinestatic

◆ CreateCircleArc()

template<typename VALUETYPE >
static TPolyBezierSpline< ValueType > UE::Geometry::Spline::TPolyBezierSpline< VALUETYPE >::CreateCircleArc ( const ValueType Center,
float  Radius,
float  StartAngle,
float  EndAngle,
int32  NumSegments = 4 
)
inlinestatic

◆ CreateDefault()

Factory method to create an empty spline with a default segment

◆ CreateEllipse()

template<typename VALUETYPE >
static TPolyBezierSpline< ValueType > UE::Geometry::Spline::TPolyBezierSpline< VALUETYPE >::CreateEllipse ( const ValueType Center,
float  RadiusX,
float  RadiusY,
int32  NumSegments = 4 
)
inlinestatic

◆ CreateLine()

template<typename VALUETYPE >
static TPolyBezierSpline< ValueType > UE::Geometry::Spline::TPolyBezierSpline< VALUETYPE >::CreateLine ( const ValueType Start,
const ValueType End 
)
inlinestatic

◆ DECLARE_SPLINE_TYPE_ID()

template<typename VALUETYPE >
UE::Geometry::Spline::TPolyBezierSpline< VALUETYPE >::DECLARE_SPLINE_TYPE_ID ( TEXT("PolyBezier")  ,
*TSplineValueTypeTraits< VALUETYPE >::Name   
)

◆ EvaluateDerivative()

template<typename VALUETYPE >
template<int32 Order>
ValueType UE::Geometry::Spline::TPolyBezierSpline< VALUETYPE >::EvaluateDerivative ( float  Parameter) const
inline

Evaluate nth derivative at parameter

Template Parameters
Order- The derivative order (0 = position, 1 = first derivative, etc.)
Parameters
Parameter- Parameter in spline space
Returns
nth derivative vector

◆ FindIndexForParameter()

template<typename VALUETYPE >
virtual int32 UE::Geometry::Spline::TPolyBezierSpline< VALUETYPE >::FindIndexForParameter ( float  Parameter,
float OutLocalParam 
) const
inlineoverridevirtual

◆ FindNearest()

template<typename VALUETYPE >
virtual float UE::Geometry::Spline::TPolyBezierSpline< VALUETYPE >::FindNearest ( const ValueType Point,
float OutSquaredDistance 
) const
inlineoverridevirtual

Finds the nearest parameter value to a point

Parameters
PointThe point to find nearest to
OutSquaredDistanceThe squared distance to the nearest point
Returns
The parameter value at the nearest point

Reimplemented from UE::Geometry::Spline::TBSpline< VALUETYPE, 3 >.

◆ FindNearestOnSegment()

template<typename VALUETYPE >
float UE::Geometry::Spline::TPolyBezierSpline< VALUETYPE >::FindNearestOnSegment ( const ValueType Point,
int32  SegmentIndex,
float OutSquaredDistance 
) const
inline

◆ FindSegmentIndex()

template<typename VALUETYPE >
int32 UE::Geometry::Spline::TPolyBezierSpline< VALUETYPE >::FindSegmentIndex ( float  Parameter,
float OutLocalParam 
) const
inline

◆ FlipSegment()

template<typename VALUETYPE >
void UE::Geometry::Spline::TPolyBezierSpline< VALUETYPE >::FlipSegment ( int32  Segment)
inline

◆ GetDegree()

◆ GetExpectedNumKnots()

template<typename VALUETYPE >
virtual int32 UE::Geometry::Spline::TPolyBezierSpline< VALUETYPE >::GetExpectedNumKnots ( ) const
inlineoverridevirtual

◆ GetNumberOfSegments()

template<typename VALUETYPE >
virtual int32 UE::Geometry::Spline::TPolyBezierSpline< VALUETYPE >::GetNumberOfSegments ( ) const
inlineoverridevirtual

Returns the number of Bezier segments in the spline

Reimplemented from UE::Geometry::Spline::TBSpline< VALUETYPE, 3 >.

◆ GetNumDistinctSegments()

template<typename VALUETYPE >
int32 UE::Geometry::Spline::TPolyBezierSpline< VALUETYPE >::GetNumDistinctSegments ( ) const
inline

Gets the number of segments defined by distinct knots

◆ GetParameter()

template<typename VALUETYPE >
virtual float UE::Geometry::Spline::TPolyBezierSpline< VALUETYPE >::GetParameter ( int32  Index) const
inlineoverridevirtual

◆ GetParameterSpace()

template<typename VALUETYPE >
virtual FInterval1f UE::Geometry::Spline::TPolyBezierSpline< VALUETYPE >::GetParameterSpace ( ) const
inlineoverridevirtual

◆ GetSegmentParameterRange()

template<typename VALUETYPE >
virtual FInterval1f UE::Geometry::Spline::TPolyBezierSpline< VALUETYPE >::GetSegmentParameterRange ( int32  SegmentIndex) const
inlineoverridevirtual

Maps a segment index to its parameter range

Parameters
SegmentIndex- Index of the segment (0-based)
Returns
True if the segment index is valid and mapping succeeded

Reimplemented from UE::Geometry::Spline::TBSpline< VALUETYPE, 3 >.

◆ InsertBezierSegment()

template<typename VALUETYPE >
int32 UE::Geometry::Spline::TPolyBezierSpline< VALUETYPE >::InsertBezierSegment ( float  Parameter,
const ValueType P1,
const ValueType P2,
const ValueType P3,
EParameterizationPolicy  ParameterizationPolicy = EParameterizationPolicy::Centripetal 
)
inline

Inserts a Bezier segment at the specified parameter

Parameters
ValuesChannel- Channel to add the segment to
ParameterParameter value where to insert the segment (Spline Space)
P1First control point
P2Second control point
P3End point
ParameterizationPolicyHow to distribute Knots
Returns
Index of the new segment

◆ InsertPoint()

template<typename VALUETYPE >
int32 UE::Geometry::Spline::TPolyBezierSpline< VALUETYPE >::InsertPoint ( float  Parameter,
const ValueType Position,
EParameterizationPolicy  ParameterizationPolicy = EParameterizationPolicy::Centripetal 
)
inline

Inserts a point at the specified parameter along the spline. This splits the segment at the parameter value and places the new point at the specified position, which may change the spline shape.

Parameters
Storage- Storage to add the point to
ParameterParameter value where to split the spline
PositionPosition for the new point (doesn't need to be on the original curve)
ParameterizationPolicyHow to distribute Knots
Returns
The index of the newly created point

◆ InsertPointAtPosition()

template<typename VALUETYPE >
int32 UE::Geometry::Spline::TPolyBezierSpline< VALUETYPE >::InsertPointAtPosition ( int32  SegmentIndex,
const ValueType Position,
EParameterizationPolicy  ParameterizationPolicy = EParameterizationPolicy::Centripetal 
)
inline

Inserts a point at the closest location on a segment to the given position.

Parameters
SegmentIndexIndex of the segment to split
PositionPosition for the new point
ParameterizationPolicyHow to distribute Knots
Returns
The index of the newly created point

◆ InsertPointAtSegmentParam()

template<typename VALUETYPE >
int32 UE::Geometry::Spline::TPolyBezierSpline< VALUETYPE >::InsertPointAtSegmentParam ( int32  SegmentIndex,
float  LocalT,
const ValueType Position,
EParameterizationPolicy  ParameterizationPolicy = EParameterizationPolicy::Centripetal 
)
inline

Inserts a point at a specific segment with local parameter. This splits the segment at the specified location and places the new point at the provided position, which may change the spline shape.

Parameters
SegmentIndexIndex of the segment to split
LocalTLocal parameter [0,1] within the segment
PositionPosition for the new point
ParameterizationPolicyHow to distribute Knots
Returns
The index of the newly created point

◆ MapGlobalParameterToLocalSegment()

template<typename VALUETYPE >
bool UE::Geometry::Spline::TPolyBezierSpline< VALUETYPE >::MapGlobalParameterToLocalSegment ( float  GlobalParam,
int32 OutSegmentIndex,
float OutLocalParam 
) const
inline

Maps a global parameter to a segment index and local parameter

Parameters
GlobalParam- Parameter in global space
OutSegmentIndex- Output segment index
OutLocalParam- Output local parameter [0,1]
Returns
True if mapping succeeded

◆ MapLocalSegmentParameterToGlobal()

template<typename VALUETYPE >
float UE::Geometry::Spline::TPolyBezierSpline< VALUETYPE >::MapLocalSegmentParameterToGlobal ( int32  SegmentIndex,
float  LocalParam 
) const
inline

Maps a local segment parameter [0,1] to global parameter space

Parameters
SegmentIndex- Index of the segment
LocalParam- Local parameter within segment [0,1]
Returns
Parameter value in global space, or 0 if segment is invalid

◆ PrependBezierSegment()

template<typename VALUETYPE >
int32 UE::Geometry::Spline::TPolyBezierSpline< VALUETYPE >::PrependBezierSegment ( const ValueType P0,
const ValueType P1,
const ValueType P2,
EParameterizationPolicy  ParameterizationPolicy = EParameterizationPolicy::Centripetal 
)
inline

Prepends a Bezier segment using only 3 points (P0, P1, P2) The end point (P3) is automatically inferred from the first point of the existing spline.

Parameters
P0First control point
P1Second control point
P2Third control point
ParameterizationPolicyHow to distribute Knots
Returns
Index of the new segment

◆ RemovePoint()

template<typename VALUETYPE >
bool UE::Geometry::Spline::TPolyBezierSpline< VALUETYPE >::RemovePoint ( int32  PointIndex)
inline

Removes a point from the spline.

Parameters
PointIndex- Index of the point to remove

◆ RemoveSegment()

template<typename VALUETYPE >
bool UE::Geometry::Spline::TPolyBezierSpline< VALUETYPE >::RemoveSegment ( const int32  SegmentIndex)
inline

Removes a Bezier segment from the spline

Parameters
Storage- Storage to remove the segment from
SegmentIndex- Segment index to remove
Returns
true if successfully removed

◆ Reparameterize()

template<typename VALUETYPE >
virtual void UE::Geometry::Spline::TPolyBezierSpline< VALUETYPE >::Reparameterize ( EParameterizationPolicy  Mode = EParameterizationPolicy::Centripetal)
inlineoverridevirtual

Reparameterizes the spline based on the provided points and mode

Parameters
Mode- New parameterization mode
Points- Array of control points to use for reparameterization
Returns

Reimplemented from UE::Geometry::Spline::TBSpline< VALUETYPE, 3 >.

◆ SetClosedLoop()

template<typename VALUETYPE >
virtual void UE::Geometry::Spline::TPolyBezierSpline< VALUETYPE >::SetClosedLoop ( bool  bShouldClose)
inlineoverridevirtual

◆ SetClosedLoopFlag()

template<typename VALUETYPE >
void UE::Geometry::Spline::TPolyBezierSpline< VALUETYPE >::SetClosedLoopFlag ( bool  bClosed)
inline

Sets the closed loop flag without modifying segments

Parameters
bClosedWhether the spline should be a closed loop

◆ SetControlPoints()

template<typename VALUETYPE >
bool UE::Geometry::Spline::TPolyBezierSpline< VALUETYPE >::SetControlPoints ( const TArray< ValueType > &  Points,
EParameterizationPolicy  ParameterizationPolicy 
)
inline

MANIPULATION METHODS Replaces all control points in the spline with the provided points. For a cubic Bezier spline, the number of points must be a multiple of 4 (or 4N-1 for open splines).

Parameters
Points- Array of new control points
ParameterizationPolicy- How to distribute Knots for the new segments
Returns
True if the points were successfully set

◆ SetKnotVector()

template<typename VALUETYPE >
void UE::Geometry::Spline::TPolyBezierSpline< VALUETYPE >::SetKnotVector ( const TArray< FKnot > &  NewKnots)
inline

◆ SetParameter()

template<typename VALUETYPE >
virtual int32 UE::Geometry::Spline::TPolyBezierSpline< VALUETYPE >::SetParameter ( int32  Index,
float  NewParameter 
)
inlineoverridevirtual

◆ UpdateSegment()

template<typename VALUETYPE >
bool UE::Geometry::Spline::TPolyBezierSpline< VALUETYPE >::UpdateSegment ( int32  SegmentIndex,
const ValueType P0,
const ValueType P1,
const ValueType P2,
const ValueType P3 
)
inline

Updates all control points of a Bezier segment at once

Parameters
SegmentIndex- Which cubic Bezier segment to update
P0- Start point of segment
P1- First control point
P2- Second control point
P3- End point of segment
Returns
true if successfully updated

◆ UpdateSegmentPoint()

template<typename VALUETYPE >
bool UE::Geometry::Spline::TPolyBezierSpline< VALUETYPE >::UpdateSegmentPoint ( const int32  SegmentIndex,
const int32  PointIndex,
const ValueType NewValue 
)
inline

Updates a single control point within a Bezier segment

Parameters
Storage- Storage to update the point in
SegmentIndex- Which cubic Bezier segment (each has 4 points)
PointIndex- Which point in the segment (0=P0, 1=P1, 2=P2, 3=P3)
NewValue- New position for the control point
Returns
true if successfully updated

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