UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
FTimeStretchCurveInstance Struct Reference

#include <TimeStretchCurve.h>

Public Member Functions

 GENERATED_USTRUCT_BODY ()
 
 FTimeStretchCurveInstance ()
 
ENGINE_API void InitializeFromPlayRate (float InPlayRate, const FTimeStretchCurve &TimeStretchCurve)
 
bool HasValidData () const
 
ENGINE_API void UpdateMarkerIndexForPosition (int32 &InOutMarkerIndex, float InPosition, const TArray< float > &InMarkerPositions) const
 
ENGINE_API bool IsValidMarkerForPosition (int32 InMarkerIndex, float InPosition, const TArray< float > &InMarkerPositions) const
 
ENGINE_API bool AreValidMarkerBookendsForPosition (float InPosition, float InP_CurrMarker, float InP_NextMarker) const
 
ENGINE_API int32 BinarySearchMarkerIndex (float InPosition, const TArray< float > &InMarkerPositions) const
 
ENGINE_API float Convert_P_Original_To_Target (int32 InMarkerIndex, float In_P_Original) const
 
ENGINE_API float Convert_P_Target_To_Original (int32 InMarkerIndex, float In_P_Target) const
 
ENGINE_API float Clamp_P_Target (float In_P_Target) const
 
const TArray< float > & GetMarkers_Original () const
 
const TArray< float > & GetMarkers_Target () const
 
float Get_T_Original () const
 
float Get_T_Target () const
 

Constructor & Destructor Documentation

◆ FTimeStretchCurveInstance()

FTimeStretchCurveInstance::FTimeStretchCurveInstance ( )
inline

Member Function Documentation

◆ AreValidMarkerBookendsForPosition()

bool FTimeStretchCurveInstance::AreValidMarkerBookendsForPosition ( float  InPosition,
float  InP_CurrMarker,
float  InP_NextMarker 
) const

Validates that the supplied marker positions bookend supplied position.

◆ BinarySearchMarkerIndex()

int32 FTimeStretchCurveInstance::BinarySearchMarkerIndex ( float  InPosition,
const TArray< float > &  InMarkerPositions 
) const

Find marker index that bookends supplied position, using supplied markers, doing a binary search to find match. Most steps taken are Log2(N).

◆ Clamp_P_Target()

float FTimeStretchCurveInstance::Clamp_P_Target ( float  In_P_Target) const

Make sure In_P_Target stays in valid marker range.

◆ Convert_P_Original_To_Target()

float FTimeStretchCurveInstance::Convert_P_Original_To_Target ( int32  InMarkerIndex,
float  In_P_Original 
) const

Converts a Position from Original Space to Target Space. This requires a Marker Index that satisfies 'IsValidMarkerForPosition' for the supplied position.

◆ Convert_P_Target_To_Original()

float FTimeStretchCurveInstance::Convert_P_Target_To_Original ( int32  InMarkerIndex,
float  In_P_Target 
) const

Converts a Position from Target Space to Original Space. This requires a Marker Index that satisfies 'IsValidMarkerForPosition' for the supplied position.

◆ GENERATED_USTRUCT_BODY()

FTimeStretchCurveInstance::GENERATED_USTRUCT_BODY ( )

◆ Get_T_Original()

float FTimeStretchCurveInstance::Get_T_Original ( ) const
inline

Get original play back duration

◆ Get_T_Target()

float FTimeStretchCurveInstance::Get_T_Target ( ) const
inline

Get target play back duration

◆ GetMarkers_Original()

const TArray< float > & FTimeStretchCurveInstance::GetMarkers_Original ( ) const
inline

Read access to markers in original space.

◆ GetMarkers_Target()

const TArray< float > & FTimeStretchCurveInstance::GetMarkers_Target ( ) const
inline

Read access to markers in target space.

◆ HasValidData()

bool FTimeStretchCurveInstance::HasValidData ( ) const
inline

◆ InitializeFromPlayRate()

void FTimeStretchCurveInstance::InitializeFromPlayRate ( float  InPlayRate,
const FTimeStretchCurve TimeStretchCurve 
)

S should always be greater than -1. As -1 would pause, and less would play in reverse. This will occur if er are outside of our cached bounds, and have to extrapolate with very high U.

If our OverallPlayRate is too small, abort and don't use the Time Stretch Curve.

◆ IsValidMarkerForPosition()

bool FTimeStretchCurveInstance::IsValidMarkerForPosition ( int32  InMarkerIndex,
float  InPosition,
const TArray< float > &  InMarkerPositions 
) const

Validates that the supplied marker index correctly bookends supplied position.

◆ UpdateMarkerIndexForPosition()

void FTimeStretchCurveInstance::UpdateMarkerIndexForPosition ( int32 InOutMarkerIndex,
float  InPosition,
const TArray< float > &  InMarkerPositions 
) const

Updates InOutMarkerIndex as needed based on 'InPosition' in 'InMarkerPositions' So that InOutMarkerIndex satisfies 'IsValidMarkerForPosition'


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