UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
AnimCurveFilter.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
5#include "CoreMinimal.h"
6#include "Algo/Sort.h"
8#include "NamedValueArray.h"
9#include "Misc/MemStack.h"
10
11namespace UE::Anim
12{
13
14struct FCurveUtils;
15
16// Flags for each curve filter element
18{
19 // No flags
20 None = 0,
21
22 // Curve is explicitly disallowed (i.e. not processed at a particular LOD, bone linkage etc.).
23 // This is used in combination with the FilterMode of the filter.
24 Disallowed = 0x01,
25
26 // Curve is allowed/disallowed.
27 // This is used in combination with the FilterMode of the filter for allow/deny lists of curves.
28 Filtered = 0x02,
29};
30
32
33// The various ways curves can be filtered
35{
36 // No filtering
37 None,
38
39 // Curves are all filtered/disallowed (equivalent of all elements filtered)
41
42 // Elements marked as 'filtered' are the only ones that are allowed
44
45 // Elements marked as 'filtered' are disallowed, all others are allowed
47};
48
65
67struct FCurveFilter : TNamedValueArray<FDefaultAllocator, FCurveFilterElement>
68{
70
72
73 void Empty()
74 {
76 FilterMode = ECurveFilterMode::None;
77 }
78
79 bool IsEmpty() const
80 {
81 return FilterMode == ECurveFilterMode::None || (FilterMode == ECurveFilterMode::DisallowFiltered && Elements.Num() == 0);
82 }
83
85 {
86 Elements.Emplace(InName, InFlags);
87 bSorted = false;
88 }
89
92 {
94 for(const FName& Name : InNameArray)
95 {
97 }
98 bSorted = false;
99 }
100
103 {
106 {
107 Elements.Emplace(Arg.Get<0>(), Arg.Get<1>());
108 }
109 bSorted = false;
110 }
111
114 {
115 FilterMode = InFilterMode;
116 }
117
118private:
119 // The filtering mode
121};
122
123}
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
#define ENUM_CLASS_FLAGS(Enum)
Definition EnumClassFlags.h:6
uint8_t uint8
Definition binka_ue_file_header.h:8
Definition NameTypes.h:617
Definition ArrayView.h:139
UE_REWRITE SizeType Num() const
Definition Array.h:1144
UE_FORCEINLINE_HINT SizeType Emplace(ArgsType &&... Args)
Definition Array.h:2561
UE_FORCEINLINE_HINT void Reserve(SizeType Number)
Definition Array.h:3016
Definition AnimationAsset.h:42
ECurveFilterMode
Definition AnimCurveFilter.h:35
ECurveFilterFlags
Definition AnimCurveFilter.h:18
Definition Tuple.h:652
Definition AnimCurveFilter.h:50
FCurveFilterElement(FName InName)
Definition AnimCurveFilter.h:53
FName Name
Definition AnimCurveFilter.h:62
ECurveFilterFlags Flags
Definition AnimCurveFilter.h:63
FCurveFilterElement(FName InName, ECurveFilterFlags InFlags)
Definition AnimCurveFilter.h:57
Definition AnimCurveFilter.h:68
void Empty()
Definition AnimCurveFilter.h:73
void Add(FName InName, ECurveFilterFlags InFlags=ECurveFilterFlags::Filtered)
Definition AnimCurveFilter.h:84
void AppendNamedFlags(std::initializer_list< TTuple< const FName, ECurveFilterFlags > > InInputArgs)
Definition AnimCurveFilter.h:102
void SetFilterMode(ECurveFilterMode InFilterMode)
Definition AnimCurveFilter.h:113
friend FCurveUtils
Definition AnimCurveFilter.h:71
void AppendNames(TArrayView< const FName > InNameArray)
Definition AnimCurveFilter.h:91
TNamedValueArray< AllocatorType, FCurveFilterElement > Super
Definition AnimCurveFilter.h:69
bool IsEmpty() const
Definition AnimCurveFilter.h:79
Definition NamedValueArray.h:35
TArray< ElementType, AllocatorType > Elements
Definition NamedValueArray.h:229
void Empty()
Definition NamedValueArray.h:93