void FGraphNodeClassHelper::GatherClasses(const UClass* BaseClass, TArray<FGraphNodeClassData>& AvailableClasses) { const FString BaseClassName = BaseClass->GetName(); if (!RootNode.IsValid()) { BuildClassGraph(); } TSharedPtr<FGraphNodeClassNode> BaseNode = FindBaseClassNode(RootNode, BaseClassName); FindAllSubClasses(BaseNode, AvailableClasses); }
void FClassBrowseHelper::FindAllSubClasses(TSharedPtr<FClassDataNode> Node, TArray<FClassData>& AvailableClasses) { if (Node.IsValid()) { if (!Node->Data.IsAbstract()) { AvailableClasses.Add(Node->Data); } for (int32 i = 0; i < Node->SubNodes.Num(); i++) { FindAllSubClasses(Node->SubNodes[i], AvailableClasses); } } }
void FGraphNodeClassHelper::FindAllSubClasses(TSharedPtr<FGraphNodeClassNode> Node, TArray<FGraphNodeClassData>& AvailableClasses) { if (Node.IsValid()) { if (!Node->Data.IsAbstract() && !Node->Data.IsDeprecated() && !Node->Data.bIsHidden) { AvailableClasses.Add(Node->Data); } for (int32 i = 0; i < Node->SubNodes.Num(); i++) { FindAllSubClasses(Node->SubNodes[i], AvailableClasses); } } }