UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
MovieSceneCompilerRules.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
6#include "CoreMinimal.h"
7#include "Misc/Optional.h"
8
9struct FFrameNumber;
11template <typename ElementType> class TRange;
12
14{
16
18
20
22
23 // Reduces the evaluated sections to only the section that resides last in the source data. Legacy behaviour from various track instances.
25}
26
29{
30 virtual void Blend(FSegmentBlendData& BlendData) const override
31 {
32 // By default we only evaluate the section with the highest Z-Order if they overlap on the same row
34 }
35};
36
39{
44
45 virtual TOptional<FMovieSceneSegment> InsertEmptySpace(const TRange<FFrameNumber>& Range, const FMovieSceneSegment* PreviousSegment, const FMovieSceneSegment* NextSegment) const
46 {
47 return MovieSceneSegmentCompiler::EvaluateNearestSegment(Range, PreviousSegment, NextSegment);
48 }
49};
50
52{
53 virtual void Blend(FSegmentBlendData& BlendData) const override
54 {
55 // sort by start time to match application order of player camera
56 BlendData.Sort(SortByStartTime);
57 }
58
59private:
60
61 MOVIESCENE_API static bool SortByStartTime(const FMovieSceneSectionData& A, const FMovieSceneSectionData& B);
62};
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
Definition Range.h:50
Definition MovieSceneCompilerRules.h:14
MOVIESCENE_API void FilterOutUnderlappingSections(FSegmentBlendData &BlendData)
Definition MovieSceneCompilerRules.cpp:41
MOVIESCENE_API void ChooseLowestRowIndex(FSegmentBlendData &BlendData)
Definition MovieSceneCompilerRules.cpp:68
MOVIESCENE_API bool AlwaysEvaluateSection(const FMovieSceneSectionData &InSectionData)
Definition MovieSceneCompilerRules.cpp:36
MOVIESCENE_API void BlendSegmentLegacySectionOrder(FSegmentBlendData &BlendData)
Definition MovieSceneCompilerRules.cpp:96
MOVIESCENE_API TOptional< FMovieSceneSegment > EvaluateNearestSegment(const TRange< FFrameNumber > &Range, const FMovieSceneSegment *PreviousSegment, const FMovieSceneSegment *NextSegment)
Definition MovieSceneCompilerRules.cpp:6
Definition MovieSceneCompilerRules.h:29
virtual void Blend(FSegmentBlendData &BlendData) const override
Definition MovieSceneCompilerRules.h:30
Definition MovieSceneCompilerRules.h:39
virtual TOptional< FMovieSceneSegment > InsertEmptySpace(const TRange< FFrameNumber > &Range, const FMovieSceneSegment *PreviousSegment, const FMovieSceneSegment *NextSegment) const
Definition MovieSceneCompilerRules.h:45
FEvaluateNearestSegmentBlender()
Definition MovieSceneCompilerRules.h:40
Definition FrameNumber.h:18
Definition MovieSceneCompilerRules.h:52
virtual void Blend(FSegmentBlendData &BlendData) const override
Definition MovieSceneCompilerRules.h:53
Definition MovieSceneSegmentCompiler.h:23
Definition MovieSceneSegment.h:144
Definition MovieSceneSegmentCompiler.h:72
Definition MovieSceneSegmentCompiler.h:89
bool bCanFillEmptySpace
Definition MovieSceneSegmentCompiler.h:146
Definition MovieSceneSegmentCompiler.h:47
Definition Optional.h:131