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

#include <MovieSceneSequenceTransform.h>

Public Member Functions

 FMovieSceneSequenceTransform ()
 
 FMovieSceneSequenceTransform (FFrameTime InOffset, float InTimeScale=1.f)
 
 FMovieSceneSequenceTransform (FMovieSceneTimeTransform InLinearTransform)
 
 FMovieSceneSequenceTransform (FMovieSceneNestedSequenceTransform &&InNestedTransform)
 
bool NeedsBreadcrumbs () const
 
bool IsLinear () const
 
FMovieSceneTimeTransform AsLinear () const
 
MOVIESCENE_API bool IsIdentity () const
 
MOVIESCENE_API FFrameTime TransformTime (FFrameTime Time) const
 
MOVIESCENE_API FFrameTime TransformTime (FFrameTime InTime, const UE::MovieScene::FTransformTimeParams &Params) const
 
MOVIESCENE_API TRange< FFrameTimeComputeTraversedHull (const TRange< FFrameTime > &Range) const
 
MOVIESCENE_API TRange< FFrameTimeComputeTraversedHull (const TRange< FFrameNumber > &Range) const
 
MOVIESCENE_API TOptional< UE::MovieScene::ETimeWarpChannelDomainFindFirstWarpDomain () const
 
MOVIESCENE_API void Add (FMovieSceneTimeTransform InTransform)
 
MOVIESCENE_API void Add (FMovieSceneNestedSequenceTransform InTransform)
 
MOVIESCENE_API void Add (FFrameTime InOffset, FMovieSceneTimeWarpVariant &&InTimeWarp)
 
MOVIESCENE_API void AddLoop (FFrameNumber Start, FFrameNumber End)
 
MOVIESCENE_API void Append (const FMovieSceneSequenceTransform &Tail)
 
MOVIESCENE_API FMovieSceneSequenceTransform operator* (const FMovieSceneSequenceTransform &RHS) const
 
MOVIESCENE_API FMovieSceneInverseSequenceTransform Inverse () const
 
MOVIESCENE_API bool ExtractBoundariesWithinRange (FFrameTime UntransformedStart, FFrameTime UntransformedEnd, const TFunctionRef< bool(FFrameTime)> &Visitor) const
 
bool IsLooping () const
 
MOVIESCENE_API void TransformTime (FFrameTime InTime, FFrameTime &OutTime, FMovieSceneWarpCounter &OutWarpCounter) const
 
MOVIESCENE_API float GetTimeScale () const
 
MOVIESCENE_API TRange< FFrameTimeTransformRangePure (const TRange< FFrameTime > &Range) const
 
MOVIESCENE_API TRange< FFrameTimeTransformRangeUnwarped (const TRange< FFrameTime > &Range) const
 
MOVIESCENE_API TRange< FFrameTimeTransformRangeConstrained (const TRange< FFrameTime > &Range) const
 
MOVIESCENE_API TRange< FFrameNumberTransformRangePure (const TRange< FFrameNumber > &Range) const
 
MOVIESCENE_API TRange< FFrameNumberTransformRangeUnwarped (const TRange< FFrameNumber > &Range) const
 
MOVIESCENE_API TRange< FFrameNumberTransformRangeConstrained (const TRange< FFrameNumber > &Range) const
 
MOVIESCENE_API FMovieSceneSequenceTransform InverseNoLooping () const
 
MOVIESCENE_API FMovieSceneTimeTransform InverseLinearOnly () const
 
MOVIESCENE_API FMovieSceneTimeTransform InverseFromAllFirstWarps () const
 
MOVIESCENE_API FMovieSceneTimeTransform InverseFromWarp (const FMovieSceneWarpCounter &WarpCounter) const
 
MOVIESCENE_API FMovieSceneTimeTransform InverseFromWarp (const TArrayView< const uint32 > &WarpCounts) const
 
MOVIESCENE_API FMovieSceneSequenceTransform InverseFromAllFirstLoops () const
 
MOVIESCENE_API FMovieSceneSequenceTransform InverseFromLoop (const FMovieSceneWarpCounter &LoopCounter) const
 
FMovieSceneSequenceTransform InverseFromLoop (const TArrayView< const FFrameTime > &Breadcrumbs) const
 
MOVIESCENE_API FMovieSceneSequenceTransform InverseFromLoop (const TArrayView< const uint32 > &LoopCounts) const
 

Public Attributes

FMovieSceneTimeTransform LinearTransform
 
TArray< FMovieSceneNestedSequenceTransformNestedTransforms
 

Friends

bool operator== (const FMovieSceneSequenceTransform &A, const FMovieSceneSequenceTransform &B)
 
bool operator!= (const FMovieSceneSequenceTransform &A, const FMovieSceneSequenceTransform &B)
 

Detailed Description

Movie scene sequence transform class that transforms from one time-space to another, represented as a linear transformation plus zero or more complex, non-linear transformations.

Constructor & Destructor Documentation

◆ FMovieSceneSequenceTransform() [1/4]

FMovieSceneSequenceTransform::FMovieSceneSequenceTransform ( )
inline

Default construction to the identity transform

◆ FMovieSceneSequenceTransform() [2/4]

FMovieSceneSequenceTransform::FMovieSceneSequenceTransform ( FFrameTime  InOffset,
float  InTimeScale = 1.f 
)
inlineexplicit

Construction from an offset, and a scale

Parameters
InOffsetThe offset to translate by
InTimeScaleThe timescale. For instance, if a sequence is playing twice as fast, pass 2.f

◆ FMovieSceneSequenceTransform() [3/4]

FMovieSceneSequenceTransform::FMovieSceneSequenceTransform ( FMovieSceneTimeTransform  InLinearTransform)
inlineexplicit

Construction from a linear time transform.

Parameters
InLinearTransformThe linear transform

◆ FMovieSceneSequenceTransform() [4/4]

FMovieSceneSequenceTransform::FMovieSceneSequenceTransform ( FMovieSceneNestedSequenceTransform &&  InNestedTransform)
inlineexplicit

Construction from a single nested sequence transform structure

Parameters
InNestedTransformThe transform

Member Function Documentation

◆ Add() [1/3]

void FMovieSceneSequenceTransform::Add ( FFrameTime  InOffset,
FMovieSceneTimeWarpVariant &&  InTimeWarp 
)

Add the specified warping transform to the end of this transform stack with an offset (ie, applying it last)

◆ Add() [2/3]

void FMovieSceneSequenceTransform::Add ( FMovieSceneNestedSequenceTransform  InTransform)

Add the specified nested transform to the end of this transform stack (ie, applying it last). Does nothing if the supplied transform is an identity.

◆ Add() [3/3]

PRAGMA_ENABLE_DEPRECATION_WARNINGS void FMovieSceneSequenceTransform::Add ( FMovieSceneTimeTransform  InTransform)

Add the specified linear transform to the end of this transform stack (ie, applying it last)

◆ AddLoop()

void FMovieSceneSequenceTransform::AddLoop ( FFrameNumber  Start,
FFrameNumber  End 
)

Add an entry to this transform denoting it should loop between the specified start and end point

Note
Start and End are interpreted in the transformed space of the current stack of transforms in this class.
Parameters
StartThe start frame number of the loop
EndThe ending frame number of the loop

◆ Append()

void FMovieSceneSequenceTransform::Append ( const FMovieSceneSequenceTransform Tail)

Append another transform to this one, resulting in a transform that effectively goes from this -> Tail

Parameters
TailThe transform to append

◆ AsLinear()

FMovieSceneTimeTransform FMovieSceneSequenceTransform::AsLinear ( ) const
inline

Convert this transform to its linear representation.

Note
It is invalid to call this function unless IsLinear() is true

◆ ComputeTraversedHull() [1/2]

TRange< FFrameTime > FMovieSceneSequenceTransform::ComputeTraversedHull ( const TRange< FFrameNumber > &  Range) const

Given a range in untransformed space, compute the hull of times that this range encompass when transformed. See above overload for additional details.

◆ ComputeTraversedHull() [2/2]

TRange< FFrameTime > FMovieSceneSequenceTransform::ComputeTraversedHull ( const TRange< FFrameTime > &  Range) const

Given a range in untransformed space, compute the hull of times that this range encompass when transformed. For instance, if this transform represents a loop of [0, 10) an input range of:

  • [15,19) would yield [5,9)
  • [5,25) would yield [0,10)
Note
Disjoint ranges are not supported by this function. An input of [5, 19) under the previous example would yield [0, 9) because we can only return a single range.

◆ ExtractBoundariesWithinRange()

bool FMovieSceneSequenceTransform::ExtractBoundariesWithinRange ( FFrameTime  UntransformedStart,
FFrameTime  UntransformedEnd,
const TFunctionRef< bool(FFrameTime)> &  Visitor 
) const

Extract all the boundaries for this transform within the specified untransformed start and end time, invoking Visitor for every boundary that is present within the range. Iteration will continue until Visitor returns false, at which point this function itself will return false.

Parameters
UntransformedStartThe inclusive start of the range within which Visitor can be invoked
UntransformedEndThe inclusive end of the range within which Visitor can be invoked
VisitorA functor to invoke for every boundary that is found within the range. Return value signifies whether iteration continues (true) or not (false)
Returns
(true) if there were no boundaries, or Visitor returned true for all encountered boundaries; false otherwise

◆ FindFirstWarpDomain()

TOptional< UE::MovieScene::ETimeWarpChannelDomain > FMovieSceneSequenceTransform::FindFirstWarpDomain ( ) const

Retrieve the first active timewarp domain that is present in this transform, if any is present at all

◆ GetTimeScale()

float FMovieSceneSequenceTransform::GetTimeScale ( ) const

◆ Inverse()

FMovieSceneInverseSequenceTransform FMovieSceneSequenceTransform::Inverse ( ) const

Compute the inverse of this transform, that is: the transform that goes from transformed to untransformed space.

◆ InverseFromAllFirstLoops()

FMovieSceneSequenceTransform FMovieSceneSequenceTransform::InverseFromAllFirstLoops ( ) const

◆ InverseFromAllFirstWarps()

FMovieSceneTimeTransform FMovieSceneSequenceTransform::InverseFromAllFirstWarps ( ) const

◆ InverseFromLoop() [1/3]

FMovieSceneSequenceTransform FMovieSceneSequenceTransform::InverseFromLoop ( const FMovieSceneWarpCounter LoopCounter) const

◆ InverseFromLoop() [2/3]

FMovieSceneSequenceTransform FMovieSceneSequenceTransform::InverseFromLoop ( const TArrayView< const FFrameTime > &  Breadcrumbs) const

◆ InverseFromLoop() [3/3]

FMovieSceneSequenceTransform FMovieSceneSequenceTransform::InverseFromLoop ( const TArrayView< const uint32 > &  LoopCounts) const

◆ InverseFromWarp() [1/2]

FMovieSceneTimeTransform FMovieSceneSequenceTransform::InverseFromWarp ( const FMovieSceneWarpCounter WarpCounter) const

◆ InverseFromWarp() [2/2]

FMovieSceneTimeTransform FMovieSceneSequenceTransform::InverseFromWarp ( const TArrayView< const uint32 > &  WarpCounts) const

◆ InverseLinearOnly()

FMovieSceneTimeTransform FMovieSceneSequenceTransform::InverseLinearOnly ( ) const

◆ InverseNoLooping()

FMovieSceneSequenceTransform FMovieSceneSequenceTransform::InverseNoLooping ( ) const

◆ IsIdentity()

bool FMovieSceneSequenceTransform::IsIdentity ( ) const

Returns whether this sequence transform is an identity transform (i.e. it doesn't change anything).

◆ IsLinear()

bool FMovieSceneSequenceTransform::IsLinear ( ) const
inline

Returns whether this sequence transform is purely linear (i.e. doesn't involve time warping).

◆ IsLooping()

PRAGMA_DISABLE_DEPRECATION_WARNINGS bool FMovieSceneSequenceTransform::IsLooping ( ) const

◆ NeedsBreadcrumbs()

bool FMovieSceneSequenceTransform::NeedsBreadcrumbs ( ) const
inline

Returns whether this sequence transform includes any time warping.

◆ operator*()

FMovieSceneSequenceTransform FMovieSceneSequenceTransform::operator* ( const FMovieSceneSequenceTransform RHS) const

Multiply this tranmsform with another transform, resulting in a single transform that gets from RHS parent to LHS space

Note
Transforms apply from right to left

◆ TransformRangeConstrained() [1/2]

TRange< FFrameNumber > FMovieSceneSequenceTransform::TransformRangeConstrained ( const TRange< FFrameNumber > &  Range) const

◆ TransformRangeConstrained() [2/2]

TRange< FFrameTime > FMovieSceneSequenceTransform::TransformRangeConstrained ( const TRange< FFrameTime > &  Range) const

◆ TransformRangePure() [1/2]

TRange< FFrameNumber > FMovieSceneSequenceTransform::TransformRangePure ( const TRange< FFrameNumber > &  Range) const

◆ TransformRangePure() [2/2]

TRange< FFrameTime > FMovieSceneSequenceTransform::TransformRangePure ( const TRange< FFrameTime > &  Range) const

◆ TransformRangeUnwarped() [1/2]

TRange< FFrameNumber > FMovieSceneSequenceTransform::TransformRangeUnwarped ( const TRange< FFrameNumber > &  Range) const

◆ TransformRangeUnwarped() [2/2]

TRange< FFrameTime > FMovieSceneSequenceTransform::TransformRangeUnwarped ( const TRange< FFrameTime > &  Range) const

◆ TransformTime() [1/3]

FFrameTime FMovieSceneSequenceTransform::TransformTime ( FFrameTime  InTime,
const UE::MovieScene::FTransformTimeParams Params 
) const

Transform the specified time into the inner-most (transformed) space

Parameters
TimeThe input time to transform
ParamsParameters for controlling the transform operation, and harvesting breadcrumbs
Returns
The resulting time in transformed space

◆ TransformTime() [2/3]

void FMovieSceneSequenceTransform::TransformTime ( FFrameTime  InTime,
FFrameTime OutTime,
FMovieSceneWarpCounter OutWarpCounter 
) const

◆ TransformTime() [3/3]

FFrameTime FMovieSceneSequenceTransform::TransformTime ( FFrameTime  Time) const

Transform the specified time into the inner-most (transformed) space

Parameters
TimeThe input time to transform
Returns
The resulting time in transformed space

Friends And Related Symbol Documentation

◆ operator!=

Inequality comparison

◆ operator==

bool operator== ( const FMovieSceneSequenceTransform A,
const FMovieSceneSequenceTransform B 
)
friend

Equality comparison

Member Data Documentation

◆ LinearTransform

FMovieSceneTimeTransform FMovieSceneSequenceTransform::LinearTransform

The initial linear transformation represented as a 2D matrix. Always applied first.

◆ NestedTransforms

TArray<FMovieSceneNestedSequenceTransform> FMovieSceneSequenceTransform::NestedTransforms

Additional transformations that should be applied after LinearTransform. This array is populated whenever a non-linear transform is encountered.


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