UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
TMovieSceneCurveChannelImpl< ChannelType > Struct Template Reference

#include <MovieSceneCurveChannelImpl.h>

Classes

struct  FTimeEvaluationCache
 

Public Types

using ChannelValueType = typename ChannelType::ChannelValueType
 
using CurveValueType = typename ChannelType::CurveValueType
 

Static Public Member Functions

static bool Evaluate (const ChannelType *InChannel, FFrameTime InTime, CurveValueType &OutValue)
 
static UE::MovieScene::Interpolation::FCachedInterpolation GetInterpolationForTime (const ChannelType *InChannel, FFrameTime InTime)
 
static UE::MovieScene::Interpolation::FCachedInterpolation GetInterpolationForTime (const ChannelType *InChannel, FTimeEvaluationCache *InOutEvaluationCache, FFrameTime InTime)
 
static UE::MovieScene::Interpolation::FCachedInterpolation GetInterpolationForKey (const ChannelType *InChannel, int32 KeyIndex, const UE::MovieScene::FCycleParams *Params=nullptr)
 
static UE::MovieScene::Interpolation::FCachedInterpolation GetInterpolationForKey (const ChannelType *InChannel, int32 KeyIndex1, int32 KeyIndex2, const UE::MovieScene::FCycleParams *Params=nullptr)
 
static bool EvaluateWithCache (const ChannelType *InChannel, FTimeEvaluationCache *InOutEvaluationCache, FFrameTime InTime, CurveValueType &OutValue)
 
static void PopulateCurvePoints (const ChannelType *InChannel, double StartTimeSeconds, double EndTimeSeconds, double TimeThreshold, CurveValueType ValueThreshold, FFrameRate TickResolution, TArray< TTuple< double, double > > &OutPoints)
 
static bool ValueExistsAtTime (const ChannelType *Channel, FFrameNumber InFrameNumber, typename ChannelType::CurveValueType Value)
 
static bool ValueExistsAtTime (const ChannelType *Channel, FFrameNumber InFrameNumber, const typename ChannelType::ChannelValueType &InValue)
 
static void Set (ChannelType *InChannel, TArray< FFrameNumber > InTimes, TArray< ChannelValueType > InValues)
 
static int32 AddConstantKey (ChannelType *InChannel, FFrameNumber InTime, CurveValueType InValue)
 
static int32 AddLinearKey (ChannelType *InChannel, FFrameNumber InTime, CurveValueType InValue)
 
static int32 AddCubicKey (ChannelType *InChannel, FFrameNumber InTime, CurveValueType InValue, ERichCurveTangentMode TangentMode=RCTM_Auto, const FMovieSceneTangentData &Tangent=FMovieSceneTangentData())
 
static float CalcSmartTangent (ChannelType *InChannel, int32 Index)
 
static void AutoSetTangents (ChannelType *InChannel, float Tension=0.f)
 
static void DeleteKeysFrom (ChannelType *InChannel, FFrameNumber InTime, bool bDeleteKeysBefore)
 
static void ChangeFrameResolution (ChannelType *InChannel, FFrameRate SourceRate, FFrameRate DestinationRate)
 
static void RemapTimes (ChannelType *InChannel, const UE::MovieScene::IRetimingInterface &Retimer)
 
static void Optimize (ChannelType *InChannel, const FKeyDataOptimizationParams &InParameters)
 
static FKeyHandle AddKeyToChannel (ChannelType *InChannel, FFrameNumber InFrameNumber, float InValue, EMovieSceneKeyInterpolation Interpolation)
 
static double GetTangentValue (ChannelType *InChannel, const FFrameNumber InFrameTime, const float InValue, double InDeltaTime)
 
static EMovieSceneKeyInterpolation GetInterpolationMode (ChannelType *InChannel, const FFrameNumber &InTime, EMovieSceneKeyInterpolation DefaultInterpolationMode)
 
static bool CacheExtrapolation (const ChannelType *InChannel, FFrameTime InTime, UE::MovieScene::Interpolation::FCachedInterpolation &OutValue)
 
static void Dilate (ChannelType *InChannel, FFrameNumber Origin, float DilationFactor)
 
static void AssignValue (ChannelType *InChannel, FKeyHandle InKeyHandle, typename ChannelType::CurveValueType InValue)
 
static bool Serialize (ChannelType *InChannel, FArchive &Ar)
 
static bool SerializeFromRichCurve (ChannelType *InChannel, const FPropertyTag &Tag, FStructuredArchive::FSlot Slot)
 
static bool SerializeChannelValue (ChannelValueType &InValue, FArchive &Ar)
 
template<typename OtherChannelType >
static void CopyChannel (const OtherChannelType *InSourceChannel, ChannelType *OutDestinationChannel)
 

Detailed Description

template<typename ChannelType>
struct TMovieSceneCurveChannelImpl< ChannelType >

Utility class for curve channels

Member Typedef Documentation

◆ ChannelValueType

template<typename ChannelType >
using TMovieSceneCurveChannelImpl< ChannelType >::ChannelValueType = typename ChannelType::ChannelValueType

The type of channel value structs

◆ CurveValueType

template<typename ChannelType >
using TMovieSceneCurveChannelImpl< ChannelType >::CurveValueType = typename ChannelType::CurveValueType

The type of curve values (float or double)

Member Function Documentation

◆ AddConstantKey()

template<typename ChannelType >
int32 TMovieSceneCurveChannelImpl< ChannelType >::AddConstantKey ( ChannelType *  InChannel,
FFrameNumber  InTime,
CurveValueType  InValue 
)
static

Adds a constant key

◆ AddCubicKey()

template<typename ChannelType >
int32 TMovieSceneCurveChannelImpl< ChannelType >::AddCubicKey ( ChannelType *  InChannel,
FFrameNumber  InTime,
CurveValueType  InValue,
ERichCurveTangentMode  TangentMode = RCTM_Auto,
const FMovieSceneTangentData Tangent = FMovieSceneTangentData() 
)
static

Adds a cubic interpolation key

◆ AddKeyToChannel()

template<typename ChannelType >
FKeyHandle TMovieSceneCurveChannelImpl< ChannelType >::AddKeyToChannel ( ChannelType *  InChannel,
FFrameNumber  InFrameNumber,
float  InValue,
EMovieSceneKeyInterpolation  Interpolation 
)
static

Add a new key to a channel at a given time

◆ AddLinearKey()

template<typename ChannelType >
int32 TMovieSceneCurveChannelImpl< ChannelType >::AddLinearKey ( ChannelType *  InChannel,
FFrameNumber  InTime,
CurveValueType  InValue 
)
static

Adds a linear interpolation key

◆ AssignValue()

template<typename ChannelType >
void TMovieSceneCurveChannelImpl< ChannelType >::AssignValue ( ChannelType *  InChannel,
FKeyHandle  InKeyHandle,
typename ChannelType::CurveValueType  InValue 
)
static

Assigns a given value on a key

◆ AutoSetTangents()

template<typename ChannelType >
void TMovieSceneCurveChannelImpl< ChannelType >::AutoSetTangents ( ChannelType *  InChannel,
float  Tension = 0.f 
)
static

Auto-sets all tangents in the channel's curve

◆ CacheExtrapolation()

template<typename ChannelType >
bool TMovieSceneCurveChannelImpl< ChannelType >::CacheExtrapolation ( const ChannelType *  InChannel,
FFrameTime  InTime,
UE::MovieScene::Interpolation::FCachedInterpolation OutValue 
)
static

Evaluate this channel's extrapolation by populating a cachable structure. Assumes more than 1 key is present.

Parameters
InTimeThe time to evaluate at
OutValueA value to receive the result
Returns
true if the time was evaluated with extrapolation, false otherwise

◆ CalcSmartTangent()

template<typename ChannelType >
float TMovieSceneCurveChannelImpl< ChannelType >::CalcSmartTangent ( ChannelType *  InChannel,
int32  Index 
)
static

Calculated smart tangent at that index

◆ ChangeFrameResolution()

template<typename ChannelType >
void TMovieSceneCurveChannelImpl< ChannelType >::ChangeFrameResolution ( ChannelType *  InChannel,
FFrameRate  SourceRate,
FFrameRate  DestinationRate 
)
static

Change the frame resolution of the channel

◆ CopyChannel()

template<typename ChannelType >
void TMovieSceneCurveChannelImpl< ChannelType >::CopyChannel ( const OtherChannelType InSourceChannel,
ChannelType *  OutDestinationChannel 
)
static

Miscellaneous methods Copy a channel of another type into a channel of our type, using a simple cast of values.

◆ DeleteKeysFrom()

template<typename ChannelType >
void TMovieSceneCurveChannelImpl< ChannelType >::DeleteKeysFrom ( ChannelType *  InChannel,
FFrameNumber  InTime,
bool  bDeleteKeysBefore 
)
static

Delete keys before or after the given time

◆ Dilate()

template<typename ChannelType >
void TMovieSceneCurveChannelImpl< ChannelType >::Dilate ( ChannelType *  InChannel,
FFrameNumber  Origin,
float  DilationFactor 
)
static

Dilate channel data.

◆ Evaluate()

template<typename ChannelType >
bool TMovieSceneCurveChannelImpl< ChannelType >::Evaluate ( const ChannelType *  InChannel,
FFrameTime  InTime,
CurveValueType OutValue 
)
static

Read-only methods Evaluate this channel with the frame resolution

◆ EvaluateWithCache()

template<typename ChannelType >
bool TMovieSceneCurveChannelImpl< ChannelType >::EvaluateWithCache ( const ChannelType *  InChannel,
FTimeEvaluationCache InOutEvaluationCache,
FFrameTime  InTime,
CurveValueType OutValue 
)
static

Evaluate this channel at provided FrameTime, using or populating cached time to frame-number(s) calculation

◆ GetInterpolationForKey() [1/2]

template<typename ChannelType >
UE::MovieScene::Interpolation::FCachedInterpolation TMovieSceneCurveChannelImpl< ChannelType >::GetInterpolationForKey ( const ChannelType *  InChannel,
int32  KeyIndex,
const UE::MovieScene::FCycleParams Params = nullptr 
)
static

◆ GetInterpolationForKey() [2/2]

template<typename ChannelType >
UE::MovieScene::Interpolation::FCachedInterpolation TMovieSceneCurveChannelImpl< ChannelType >::GetInterpolationForKey ( const ChannelType *  InChannel,
int32  KeyIndex1,
int32  KeyIndex2,
const UE::MovieScene::FCycleParams Params = nullptr 
)
static

◆ GetInterpolationForTime() [1/2]

template<typename ChannelType >
UE::MovieScene::Interpolation::FCachedInterpolation TMovieSceneCurveChannelImpl< ChannelType >::GetInterpolationForTime ( const ChannelType *  InChannel,
FFrameTime  InTime 
)
static

Evaluate this channel by returning a cachable interpolation structure

◆ GetInterpolationForTime() [2/2]

template<typename ChannelType >
UE::MovieScene::Interpolation::FCachedInterpolation TMovieSceneCurveChannelImpl< ChannelType >::GetInterpolationForTime ( const ChannelType *  InChannel,
FTimeEvaluationCache InOutEvaluationCache,
FFrameTime  InTime 
)
static

◆ GetInterpolationMode()

template<typename ChannelType >
EMovieSceneKeyInterpolation TMovieSceneCurveChannelImpl< ChannelType >::GetInterpolationMode ( ChannelType *  InChannel,
const FFrameNumber InTime,
EMovieSceneKeyInterpolation  DefaultInterpolationMode 
)
static

Get the interpolation mode to use at a specified time

Parameters
InChannelThe channel to find the interpolation mode
InTimeThe time we are looking for an interpolation mode
DefaultInterpolationModeCurrent default interpolation mode, may be returned as the current mode
Returns
Interpolation mode to use at that frame

◆ GetTangentValue()

template<typename ChannelType >
double TMovieSceneCurveChannelImpl< ChannelType >::GetTangentValue ( ChannelType *  InChannel,
const FFrameNumber  InFrameTime,
const float  InValue,
double  InDeltaTime 
)
static

Get Tangent Value at the specified time with specified delta in seconds

◆ Optimize()

template<typename ChannelType >
void TMovieSceneCurveChannelImpl< ChannelType >::Optimize ( ChannelType *  InChannel,
const FKeyDataOptimizationParams InParameters 
)
static

Optimize the channel's curve

◆ PopulateCurvePoints()

template<typename ChannelType >
void TMovieSceneCurveChannelImpl< ChannelType >::PopulateCurvePoints ( const ChannelType *  InChannel,
double  StartTimeSeconds,
double  EndTimeSeconds,
double  TimeThreshold,
CurveValueType  ValueThreshold,
FFrameRate  TickResolution,
TArray< TTuple< double, double > > &  OutPoints 
)
static

◆ RemapTimes()

template<typename ChannelType >
void TMovieSceneCurveChannelImpl< ChannelType >::RemapTimes ( ChannelType *  InChannel,
const UE::MovieScene::IRetimingInterface Retimer 
)
static

Remap key positions using a custom remap interface

◆ Serialize()

template<typename ChannelType >
bool TMovieSceneCurveChannelImpl< ChannelType >::Serialize ( ChannelType *  InChannel,
FArchive Ar 
)
static

Serialization methods Serialize the channel

◆ SerializeChannelValue()

template<typename ChannelType >
bool TMovieSceneCurveChannelImpl< ChannelType >::SerializeChannelValue ( ChannelValueType InValue,
FArchive Ar 
)
static

Serialize a channel value

◆ SerializeFromRichCurve()

template<typename ChannelType >
bool TMovieSceneCurveChannelImpl< ChannelType >::SerializeFromRichCurve ( ChannelType *  InChannel,
const FPropertyTag Tag,
FStructuredArchive::FSlot  Slot 
)
static

Serialization helper

◆ Set()

template<typename ChannelType >
void TMovieSceneCurveChannelImpl< ChannelType >::Set ( ChannelType *  InChannel,
TArray< FFrameNumber InTimes,
TArray< ChannelValueType InValues 
)
static

Editing methods Set the channel's times and values to the requested values

◆ ValueExistsAtTime() [1/2]

template<typename ChannelType >
bool TMovieSceneCurveChannelImpl< ChannelType >::ValueExistsAtTime ( const ChannelType *  Channel,
FFrameNumber  InFrameNumber,
const typename ChannelType::ChannelValueType &  InValue 
)
static

Checks if the given value is the curve channel's value at the given time

◆ ValueExistsAtTime() [2/2]

template<typename ChannelType >
bool TMovieSceneCurveChannelImpl< ChannelType >::ValueExistsAtTime ( const ChannelType *  Channel,
FFrameNumber  InFrameNumber,
typename ChannelType::CurveValueType  Value 
)
static

Checks if the given value is the curve channel's value at the given time


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