void FObjectInstancingGraph::AddNewObject(class UObject* ObjectInstance) { if (HasDestinationRoot()) { AddNewInstance(ObjectInstance); } else { SetDestinationRoot(ObjectInstance); } }
void FObjectInstancingGraph::AddNewObject(class UObject* ObjectInstance, UObject* InArchetype /*= nullptr*/) { if (HasDestinationRoot()) { AddNewInstance(ObjectInstance, InArchetype); } else { SetDestinationRoot(ObjectInstance, InArchetype); } }
void FObjectInstancingGraph::RetrieveObjectInstances( UObject* SearchOuter, TArray<UObject*>& out_Objects ) { if ( HasDestinationRoot() && SearchOuter != NULL && (SearchOuter == DestinationRoot || SearchOuter->IsIn(DestinationRoot)) ) { for ( TMap<UObject*,UObject*>::TIterator It(SourceToDestinationMap); It; ++It ) { UObject* InstancedObject = It.Value(); if ( InstancedObject->GetOuter() == SearchOuter ) { out_Objects.AddUnique(InstancedObject); } } } }