76 for (
int32 ChildIndex = 0; ChildIndex < Children.Num(); ChildIndex++ )
78 if ( Children[ChildIndex]->AddChildClass(
ChildClass) )
105 for ( i = 0; i < Children.Num(); i++ )
116 Children.InsertUninitialized(i);
137 int32 OldIndex = Children.Find(CurrentChild);
140 Children.RemoveAt(OldIndex);
143 for (
int32 ChildIndex = Children.Num() - 1; ChildIndex >= 0; ChildIndex-- )
150 Children.RemoveAt(ChildIndex);
161 Children[NewIndex]->AddChildNode(CurrentChild);
182 for (
int32 i = 0; i < Children.Num(); i++ )
185 if ( Result !=
NULL )
203 for (
int32 i = 0; i < Children.Num(); i++ )
262 struct FScopedRecurseDepthCounter
270 ~FScopedRecurseDepthCounter()
288 ChildClasses.
Empty();
290 for (
int32 i = 0; i < Children.Num(); i++ )
292 ChildClasses.
Add( Children[i] );
298 for (
int32 i = 0; i < Children.Num(); i++ )
300 Children[i]->GetChildClasses(ChildClasses,
bRecurse);
316 ChildClasses.
Empty();
318 for (
int32 i = 0; i < Children.Num(); i++ )
320 ChildClasses.
Add( Children[i] );
326 for (
int32 i = 0; i < Children.Num(); i++ )
328 Children[i]->GetChildClasses(ChildClasses,
bRecurse);
341 template<
class Comparator >
344 for (
int32 i = 0; i < Children.Num(); i++ )
372 template<
class Comparator >
376 if (
Mask.IsValidClass(
this) )
379 for (
int32 ChildIndex = 0; ChildIndex < Children.Num(); ChildIndex++ )
399 for ( RootNode =
this; RootNode->Parent !=
NULL; RootNode = RootNode->Parent );
409 for ( RootNode =
this; RootNode->Parent !=
NULL; RootNode = RootNode->Parent );
440 for (
auto Child : Children)
510 for (
int32 i = 0; i < Children.Num(); i++ )
512 Count += Children[i]->Num();
526 check(Class==UObject::StaticClass());
530 else if (
Parent->GetClass() == UObject::StaticClass() )
533 Parent->GetChildClasses(ChildClasses);
535 for (
int32 i = 0; i < ChildClasses.
Num(); i++ )
538 if ( ChildClasses[i] !=
this )
551 check(Class->GetSuperClass() ==
Parent->GetClass());
573 for (
int32 i = 0; i < Children.Num(); i++ )
588 for (
int32 ChildIndex = 0; ChildIndex < Children.Num(); ChildIndex++ )
591 ChildNode->DumpClassTree(IndentCount + 2, Ar);
602 return Children.Num();
607 return Children[
Index];
#define NULL
Definition oodle2base.h:134
#define check(expr)
Definition AssertionMacros.h:314
EClassFlagMatchType
Definition ClassTree.h:17
@ MATCH_Any
Definition ClassTree.h:19
@ MATCH_All
Definition ClassTree.h:22
@ INDEX_NONE
Definition CoreMiscDefines.h:150
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
Definition ClassTree.h:31
const FClassTree * GetRootNode() const
Definition ClassTree.h:406
FClassTree * GetRootNode()
Definition ClassTree.h:396
void GetChildClasses(TArray< const FClassTree * > &ChildClasses, bool bRecurse=false) const
Definition ClassTree.h:311
void GetChildClasses(TArray< UClass * > &ChildClasses, const Comparator &Mask, bool bRecurse=false) const
Definition ClassTree.h:342
void DumpClassTree(int32 IndentCount, FOutputDevice &Ar)
Definition ClassTree.h:585
FClassTree * GenerateMaskedClassTree(const Comparator &Mask) const
Definition ClassTree.h:373
int32 Num() const
Definition ClassTree.h:507
FClassTree * GetNode(UClass *SearchClass)
Definition ClassTree.h:420
UE_FORCEINLINE_HINT int32 NumChildren() const
Definition ClassTree.h:600
void Validate() const
Definition ClassTree.h:521
void PopulateTree()
Definition ClassTree.h:219
~FClassTree()
Definition ClassTree.h:568
UClass * GetClass() const
Definition ClassTree.h:256
const FClassTree * FindNode(UClass *SearchClass) const
Definition ClassTree.h:432
FClassTree(UClass *BaseClass)
Definition ClassTree.h:560
UE_FORCEINLINE_HINT const FClassTree * GetChild(int32 Index) const
Definition ClassTree.h:605
bool AddClass(UClass *ChildClass)
Definition ClassTree.h:241
void GetChildClasses(TArray< FClassTree * > &ChildClasses, bool bRecurse=false)
Definition ClassTree.h:283
bool ChangeParentClass(UClass *SearchClass, UClass *InNewParentClass=NULL)
Definition ClassTree.h:457
Definition OutputDevice.h:133
void Logf(const FmtType &Fmt)
Definition OutputDevice.h:234
UE_REWRITE SizeType Num() const
Definition Array.h:1144
UE_NODEBUG UE_FORCEINLINE_HINT SizeType Add(ElementType &&Item)
Definition Array.h:2696
void Empty(SizeType Slack=0)
Definition Array.h:2273
Definition UObjectIterator.h:257
UClass * GetSuperClass() const
Definition Class.h:4352
FORCEINLINE UClass * GetClass() const
Definition UObjectBase.h:217
U16 Index
Definition radfft.cpp:71
static UE_FORCEINLINE_HINT int32 Stricmp(const CharType *String1, const CharType *String2)
Definition CString.h:1030
static const CharType * Spc(int32 NumSpaces)
Definition CString.h:624