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

#include <MovieSceneEvaluationTree.h>

+ Inheritance diagram for FMovieSceneEvaluationTree:

Public Member Functions

 FMovieSceneEvaluationTree ()
 
 FMovieSceneEvaluationTree (const FMovieSceneEvaluationTree &RHS)=default
 
FMovieSceneEvaluationTreeoperator= (const FMovieSceneEvaluationTree &RHS)=default
 
 FMovieSceneEvaluationTree (FMovieSceneEvaluationTree &&RHS)
 
FMovieSceneEvaluationTreeoperator= (FMovieSceneEvaluationTree &&RHS)
 
MOVIESCENE_API FMovieSceneEvaluationTreeRangeIterator IterateFromTime (FFrameNumber Time) const
 
MOVIESCENE_API FMovieSceneEvaluationTreeRangeIterator IterateFromLowerBound (TRangeBound< FFrameNumber > InStartingLowerBound) const
 
const FMovieSceneEvaluationTreeNodeGetRootNode () const
 
FMovieSceneEvaluationTreeNodeGetNode (FMovieSceneEvaluationTreeNodeHandle Handle)
 
const FMovieSceneEvaluationTreeNodeGetNode (FMovieSceneEvaluationTreeNodeHandle Handle) const
 
MOVIESCENE_API TArrayView< const FMovieSceneEvaluationTreeNodeGetChildren (const FMovieSceneEvaluationTreeNode &InNode) const
 
MOVIESCENE_API TArrayView< FMovieSceneEvaluationTreeNodeGetChildren (const FMovieSceneEvaluationTreeNode &InNode)
 
bool IsValid (FMovieSceneEvaluationTreeNodeHandle Handle) const
 
void Reset ()
 
MOVIESCENE_API void AddTimeRange (TRange< FFrameNumber > InTimeRange)
 

Protected Member Functions

FMovieSceneEvaluationTreeNodeGetNode (FEvaluationTreeEntryHandle ChildrenID, int32 Index)
 
const FMovieSceneEvaluationTreeNodeGetNode (FEvaluationTreeEntryHandle ChildrenID, int32 Index) const
 
MOVIESCENE_API void AddTimeRange (TRange< FFrameNumber > InTimeRange, const IMovieSceneEvaluationTreeNodeOperator &InOperator, FMovieSceneEvaluationTreeNodeHandle InParent, const TFunctionRef< bool(FMovieSceneEvaluationTreeNodeHandle)> *Predicate)
 
MOVIESCENE_API void InsertNewChild (TRange< FFrameNumber > InEffectiveRange, const IMovieSceneEvaluationTreeNodeOperator &InOperator, int32 InsertIndex, FMovieSceneEvaluationTreeNodeHandle InParent)
 

Protected Attributes

FMovieSceneEvaluationTreeNode RootNode
 
TEvaluationTreeEntryContainer< FMovieSceneEvaluationTreeNodeChildNodes
 

Friends

FArchiveoperator<< (FArchive &Ar, FMovieSceneEvaluationTree &In)
 

Detailed Description

A tree structure used to efficiently reference overlapping time ranges hierarchically. Each node represents a unique combination of 'entities' overlapping for a given range. Example structure (dependent on order of addition): Time -inf 10 20 25 30 inf [============= 0 ===========] [============= 1 ==================] [========================== 2 ==================================] [================== 3 ==========================] [================== 4 ==========================]

[===== 5 ======]

Where each time range is added in order, this is represented as: [======== 3 =======][========== 0,2,3 ==========][============= 1,2 ================][============ 4 ===========] | \

[===== 5 ====] [======== 4 ========]

Unique Ranges [ 3 | 0,2,3 | 0,2,3,5 | 0,2,3 | 1,2 | 1,2,4 | 4 ]

Constructor & Destructor Documentation

◆ FMovieSceneEvaluationTree() [1/3]

FMovieSceneEvaluationTree::FMovieSceneEvaluationTree ( )
inline

◆ FMovieSceneEvaluationTree() [2/3]

FMovieSceneEvaluationTree::FMovieSceneEvaluationTree ( const FMovieSceneEvaluationTree RHS)
default

◆ FMovieSceneEvaluationTree() [3/3]

FMovieSceneEvaluationTree::FMovieSceneEvaluationTree ( FMovieSceneEvaluationTree &&  RHS)
inline

Move construction must ensure that the root node is correctly restored to its default to ensure that invariant

Member Function Documentation

◆ AddTimeRange() [1/2]

void FMovieSceneEvaluationTree::AddTimeRange ( TRange< FFrameNumber InTimeRange)

Insert the specified time range into this tree

Parameters
InTimeRangeThe time range to add to the tree

◆ AddTimeRange() [2/2]

void FMovieSceneEvaluationTree::AddTimeRange ( TRange< FFrameNumber InTimeRange,
const IMovieSceneEvaluationTreeNodeOperator InOperator,
FMovieSceneEvaluationTreeNodeHandle  InParent,
const TFunctionRef< bool(FMovieSceneEvaluationTreeNodeHandle)> *  Predicate 
)
protected

Insert the specified time range into this tree

Parameters
InTimeRangeThe time range to add to the tree
InOperatorOperator implementation to call for each node that is relevant to the time range
InParentThe current parent node
InPredicate(Optional) Predicate that determines whether the time should be added for a particular point

◆ GetChildren() [1/2]

TArrayView< FMovieSceneEvaluationTreeNode > FMovieSceneEvaluationTree::GetChildren ( const FMovieSceneEvaluationTreeNode InNode)

Get the children associated with the specified node

Parameters
InNodeThe node to get children for
Returns
Array view of the node's children

◆ GetChildren() [2/2]

TArrayView< const FMovieSceneEvaluationTreeNode > FMovieSceneEvaluationTree::GetChildren ( const FMovieSceneEvaluationTreeNode InNode) const

Get the children associated with the specified node

Parameters
InNodeThe node to get children for
Returns
Array view of the node's children

◆ GetNode() [1/4]

FMovieSceneEvaluationTreeNode & FMovieSceneEvaluationTree::GetNode ( FEvaluationTreeEntryHandle  ChildrenID,
int32  Index 
)
inlineprotected

Non-const access to a node from its parent's ChildrenID and this node's index.

Returns
A reference to the node that is valid as long as the tree remains unmodified

◆ GetNode() [2/4]

const FMovieSceneEvaluationTreeNode & FMovieSceneEvaluationTree::GetNode ( FEvaluationTreeEntryHandle  ChildrenID,
int32  Index 
) const
inlineprotected

Const access to a node from its parent's ChildrenID and this node's index.

Returns
A reference to the node that is valid as long as the tree remains unmodified

◆ GetNode() [3/4]

FMovieSceneEvaluationTreeNode & FMovieSceneEvaluationTree::GetNode ( FMovieSceneEvaluationTreeNodeHandle  Handle)
inline

Non-const access to a node from its handle. Handle must be valid.

Returns
A reference to the node that is valid as long as the tree remains unmodified

◆ GetNode() [4/4]

const FMovieSceneEvaluationTreeNode & FMovieSceneEvaluationTree::GetNode ( FMovieSceneEvaluationTreeNodeHandle  Handle) const
inline

Const access to a node from its handle. Handle must be valid.

Returns
A reference to the node that is valid as long as the tree remains unmodified

◆ GetRootNode()

const FMovieSceneEvaluationTreeNode & FMovieSceneEvaluationTree::GetRootNode ( ) const
inline

Access this tree's root node (infinite range)

Returns
The root node

◆ InsertNewChild()

void FMovieSceneEvaluationTree::InsertNewChild ( TRange< FFrameNumber InEffectiveRange,
const IMovieSceneEvaluationTreeNodeOperator InOperator,
int32  InsertIndex,
FMovieSceneEvaluationTreeNodeHandle  InParent 
)
protected

Helper function that creates a new child for the specified parent node

Parameters
InEffectiveRangeThe time range that this child should represent. Must not overlap any other child's time range.
InOperatorOperator implementation to call for the new child node
InsertIndexThe index at which to insert the new child (children must be sorted)
InParentThe node to add the child to

◆ IsValid()

bool FMovieSceneEvaluationTree::IsValid ( FMovieSceneEvaluationTreeNodeHandle  Handle) const
inline

Check whether the specified handle corresponds to a node within this tree

Parameters
InHandleNode handle to test
Returns
true if the handle is valid, false otherwise

◆ IterateFromLowerBound()

FMovieSceneEvaluationTreeRangeIterator FMovieSceneEvaluationTree::IterateFromLowerBound ( TRangeBound< FFrameNumber InStartingLowerBound) const

Start iterating this tree from the specified lower boundary

Parameters
InStartingLowerBoundThe lowerbound at which we should start iterating
Returns
A bi-directional iterator that is set to the unique range that overlaps the specified lowerbound

◆ IterateFromTime()

FMovieSceneEvaluationTreeRangeIterator FMovieSceneEvaluationTree::IterateFromTime ( FFrameNumber  Time) const

Start iterating this tree from the specified time

Parameters
TimeThe time at which we should start iterating
Returns
A bi-directional iterator that is set to the unique range that overlaps the current time

◆ operator=() [1/2]

FMovieSceneEvaluationTree & FMovieSceneEvaluationTree::operator= ( const FMovieSceneEvaluationTree RHS)
default

◆ operator=() [2/2]

FMovieSceneEvaluationTree & FMovieSceneEvaluationTree::operator= ( FMovieSceneEvaluationTree &&  RHS)
inline

Move assignment must ensure that the root node is correctly restored to its default to ensure that invariant

◆ Reset()

void FMovieSceneEvaluationTree::Reset ( )
inline

Friends And Related Symbol Documentation

◆ operator<<

FArchive & operator<< ( FArchive Ar,
FMovieSceneEvaluationTree In 
)
friend

Serialize this evaluation tree

Member Data Documentation

◆ ChildNodes

TEvaluationTreeEntryContainer<FMovieSceneEvaluationTreeNode> FMovieSceneEvaluationTree::ChildNodes
protected

Segmented array of all child nodes within this tree (in no particular order)

◆ RootNode

FMovieSceneEvaluationTreeNode FMovieSceneEvaluationTree::RootNode
protected

This tree's root node


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