Navigation
API > API/Runtime > API/Runtime/MovieScene
The inverse of a FMovieSceneSequenceTransform representing a transformation from transformed, to untransformed space. This uses a different class and API because the algorithms for computing the inverse of non-linear are different, often more complex, and can fail. Whereas an FMovieSceneSequenceTransform can only represent a 1:1 mapping from outer to inner space, its inverse is a (sometimes empty) many:many mapping.
Consider a looping transform with a duration of 10 frames: [0, 10). Every time in the outer space maps to a time in the inner space, but the opposite is not true. Only frames 0-10 exist in the inner space, and each frame in that time maps to an infinite number of solutions in the outer space. Conversely, any inner time outside the loop range, ie, [-inf, 0)..(10, +inf] cannot be transformed into the outer space.
For this reason, the API only has functions for attempting such computations (TryTransformTime), and iterating the solutions for any given time within a range.
The inverse of an inverse transform is the original transform such that T*(1/T)=I theoretically holds true, although transform multiplication is not actually supported by the API.
| Name | FMovieSceneInverseSequenceTransform |
| Type | struct |
| Header File | /Engine/Source/Runtime/MovieScene/Public/Evaluation/MovieSceneSequenceTransform.h |
| Include Path | #include "Evaluation/MovieSceneSequenceTransform.h" |
Syntax
USTRUCT ()
struct FMovieSceneInverseSequenceTransform
Variables
Protected
| Name | Type | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|---|
| FMovieSceneSequenceTransform | friend | Evaluation/MovieSceneSequenceTransform.h | ||
| LinearTransform | FMovieSceneTimeTransform | The final linear transformation represented as a 2D matrix. Always applied last. | Evaluation/MovieSceneSequenceTransform.h | |
| NestedTransforms | TArray< FMovieSceneInverseNestedSequenceTransform > | Additional transformations that should be applied before LinearTransform. | Evaluation/MovieSceneSequenceTransform.h |
Functions
Public
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
| Legacy function that folds all linear transforms together. | Evaluation/MovieSceneSequenceTransform.h | ||
FMovieSceneTimeTransform AsLinear() |
Cast this transform to a linear transformation, provided IsLinear() is true. | Evaluation/MovieSceneSequenceTransform.h | |
bool IsLinear() |
Returns whether this is a linear transform involving no non-linear components | Evaluation/MovieSceneSequenceTransform.h | |
bool TransformFiniteRangeWithinRange
(
const TRange< FFrameTime >& Range, |
Transforms a finite range in the transformed space, to non-empty ranges in untransformed space. | Evaluation/MovieSceneSequenceTransform.h | |
bool TransformTimeWithinRange
(
FFrameTime Time, |
Transforms a time from transformed to untransformed space within a finite range specified by two breadcrumb trails. | Evaluation/MovieSceneSequenceTransform.h | |
TOptional< FFrameTime > TryTransformTime
(
FFrameTime Time |
Fallback overload that does not require a breadcrumb trail if one is not available. | Evaluation/MovieSceneSequenceTransform.h | |
TOptional< FFrameTime > TryTransformTime
(
FFrameTime Time, |
Attempt to transform the specified transformed time into its untransformed space. | Evaluation/MovieSceneSequenceTransform.h | |
TOptional< FFrameTime > TryTransformTime
(
FFrameTime Time, |
Fallback overload that does not require a breadcrumb trail if one is not available. | Evaluation/MovieSceneSequenceTransform.h | |
TOptional< FFrameTime > TryTransformTime
(
FFrameTime Time, |
Attempt to transform the specified transformed time into its untransformed space. | Evaluation/MovieSceneSequenceTransform.h |