Exemple #1
0
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);
	}
}
Exemple #3
0
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);
            }
        }
    }
}