UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
MovieSceneSequenceVisitor.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
5#include "HAL/Platform.h"
6#include "Math/Range.h"
7#include "Misc/FrameNumber.h"
9
14struct FGuid;
16
17/*
18* Implements a visitor pattern to allow external code to easily iterate through a sequence hierarchy,
19* running custom code for each track, object, sub-section, or section visited. This handles skipping
20* over non-evaluated sub-scenes as well as accumulation of clamp ranges and sequence transforms as
21* it iterates through the hierarchy. This does not currently support looping (only visits once, though
22* FSubSequenceSpace::LocalClampRange will be the range of all the loops).
23*
24* Example:
25*
26* using FCameraCutInfo = TTuple<UMovieSceneCameraCutSection*, FMovieSceneSequenceID, int16>;
27* struct FCameraCutVisitor : UE::MovieScene::ISequenceVisitor
28* {
29* virtual void VisitTrack(UMovieSceneTrack* InTrack, const FGuid&, const UE::MovieScene::FSubSequenceSpace& LocalSpace)
30* {
31* if (UMovieSceneCameraCutTrack* CameraCutTrack = Cast<UMovieSceneCameraCutTrack>(InTrack))
32* {
33* for (UMovieSceneSection* Section : CameraCutTrack->GetAllSections())
34* {
35* if (!Section->IsActive())
36* {
37* continue;
38* }
39*
40* UMovieSceneCameraCutSection* CameraCutSection = CastChecked<UMovieSceneCameraCutSection>(Section);
41* TRange<FFrameNumber> RootCameraRange = TRange<FFrameNumber>::Intersection(LocalSpace.RootClampRange, CameraCutSection->GetRange() * LocalSpace.RootToSequenceTransform.InverseNoLooping());
42* if (!RootCameraRange.IsEmpty())
43* {
44* CameraCutTree.Add(RootCameraRange, MakeTuple(CameraCutSection, LocalSpace.SequenceID, LocalSpace.HierarchicalBias));
45* }
46* }
47* }
48* }
49* TMovieSceneEvaluationTree<FCameraCutInfo> CameraCutTree;
50* };
51*
52* UE::MovieScene::FSequenceVisitParams Params;
53* Params.bVisitRootTracks = true;
54* Params.bVisitSubSequences = true;
55* FCameraCutVisitor CameraCutVisitor;
56*
57* // Visit all camera cuts
58* VisitSequence(InSequence, Params, CameraCutVisitor);
59*/
60
61
62namespace UE
63{
64namespace MovieScene
65{
66
88
104
130
131
133
134
135} // namespace MovieScene
136} // namespace UE
137
138
139
FPlatformTypes::int16 int16
A 16-bit signed integer.
Definition Platform.h:1123
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
Definition MovieScene.Build.cs:6
Definition Range.h:50
Definition MovieSceneSection.h:243
Definition MovieSceneSequence.h:73
Definition MovieSceneSubSection.h:96
Definition MovieSceneTrack.h:206
void VisitSequence(UMovieSceneSequence *Sequence, const FSequenceVisitParams &InParams, ISequenceVisitor &Visitor)
Definition MovieSceneSequenceVisitor.cpp:169
Definition AdvancedWidgetsModule.cpp:13
@ false
Definition radaudio_common.h:23
Definition Guid.h:109
Definition MovieSceneBinding.h:25
Definition MovieSceneSequenceID.h:13
Definition MovieSceneSequenceTransform.h:625
Definition MovieSceneSequenceTransform.h:77
Definition MovieSceneSequenceVisitor.h:106
bool bVisitObjectBindings
Definition MovieSceneSequenceVisitor.h:123
bool bVisitSections
Definition MovieSceneSequenceVisitor.h:125
bool bVisitDisabledSections
Definition MovieSceneSequenceVisitor.h:126
bool bVisitSubSequences
Definition MovieSceneSequenceVisitor.h:127
bool bVisitRootTracks
Definition MovieSceneSequenceVisitor.h:122
bool CanVisitTracksOrSections() const
Definition MovieSceneSequenceVisitor.h:117
bool bVisitDisabledSubSequences
Definition MovieSceneSequenceVisitor.h:128
FSequenceVisitParams()
Definition MovieSceneSequenceVisitor.h:107
bool bVisitTracks
Definition MovieSceneSequenceVisitor.h:124
Definition MovieSceneSequenceVisitor.h:68
FMovieSceneTransformBreadcrumbs EndBreadcrumbs
Definition MovieSceneSequenceVisitor.h:78
int16 HierarchicalBias
Definition MovieSceneSequenceVisitor.h:86
FMovieSceneSequenceTransform RootToSequenceTransform
Definition MovieSceneSequenceVisitor.h:72
TRange< FFrameNumber > RootClampRange
Definition MovieSceneSequenceVisitor.h:82
MOVIESCENE_API FSubSequenceSpace()
Definition MovieSceneSequenceVisitor.cpp:18
FMovieSceneSequenceID SequenceID
Definition MovieSceneSequenceVisitor.h:80
TRange< FFrameNumber > LocalClampRange
Definition MovieSceneSequenceVisitor.h:84
FMovieSceneTransformBreadcrumbs StartBreadcrumbs
Definition MovieSceneSequenceVisitor.h:77
Definition MovieSceneSequenceVisitor.h:90
virtual void VisitTrack(UMovieSceneTrack *, const FGuid &, const FSubSequenceSpace &LocalSpace)
Definition MovieSceneSequenceVisitor.h:95
virtual void VisitObjectBinding(const FMovieSceneBinding &, const FSubSequenceSpace &LocalSpace)
Definition MovieSceneSequenceVisitor.h:93
virtual void VisitSubSequence(UMovieSceneSequence *, const FGuid &, const FSubSequenceSpace &LocalSpace)
Definition MovieSceneSequenceVisitor.h:99
virtual void VisitSection(UMovieSceneTrack *, UMovieSceneSection *, const FGuid &, const FSubSequenceSpace &LocalSpace)
Definition MovieSceneSequenceVisitor.h:97
virtual void VisitEndSubSequence(UMovieSceneSubSection *, const FGuid &, const FSubSequenceSpace &LocalSpace)
Definition MovieSceneSequenceVisitor.h:102
virtual ~ISequenceVisitor()
Definition MovieSceneSequenceVisitor.h:91
virtual void VisitStartSubSequence(UMovieSceneSubSection *, const FGuid &, const FSubSequenceSpace &LocalSpace)
Definition MovieSceneSequenceVisitor.h:101