本文整理汇总了C++中GetGraph函数的典型用法代码示例。如果您正苦于以下问题:C++ GetGraph函数的具体用法?C++ GetGraph怎么用?C++ GetGraph使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了GetGraph函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: OnImportPreset
void FSubstanceEditor::OnImportPreset()
{
if (GetGraph())
{
SubstanceEditor::Helpers::ImportAndApplyPresetForGraph(GetGraph());
}
}
示例2: Transaction
void USoundCueGraphNode::RemoveInputPin(UEdGraphPin* InGraphPin)
{
const FScopedTransaction Transaction( NSLOCTEXT("UnrealEd", "SoundCueEditorDeleteInput", "Delete Sound Cue Input") );
Modify();
TArray<class UEdGraphPin*> InputPins;
GetInputPins(InputPins);
for (int32 InputIndex = 0; InputIndex < InputPins.Num(); InputIndex++)
{
if (InGraphPin == InputPins[InputIndex])
{
InGraphPin->MarkPendingKill();
Pins.Remove(InGraphPin);
// also remove the SoundNode child node so ordering matches
SoundNode->Modify();
SoundNode->RemoveChildNode(InputIndex);
break;
}
}
USoundCue* SoundCue = CastChecked<USoundCueGraph>(GetGraph())->GetSoundCue();
SoundCue->CompileSoundNodesFromGraphNodes();
SoundCue->MarkPackageDirty();
// Refresh the current graph, so the pins can be updated
GetGraph()->NotifyGraphChanged();
}
示例3: OnExportPreset
void FSubstanceEditor::OnExportPreset() const
{
if (GetGraph())
{
SubstanceEditor::Helpers::ExportPresetFromGraph(GetGraph());
}
}
示例4: GetInput1Pin
/** Determine if any pins are connected, if so make all the other pins the same type, if not, make sure pins are switched back to wildcards */
void UK2Node_EnumEquality::NotifyPinConnectionListChanged(UEdGraphPin* Pin)
{
Super::NotifyPinConnectionListChanged(Pin);
const UEdGraphSchema_K2* Schema = GetDefault<UEdGraphSchema_K2>();
UEdGraphPin* Input1Pin = GetInput1Pin();
UEdGraphPin* Input2Pin = GetInput2Pin();
if (Pin == Input1Pin || Pin == Input2Pin)
{
if ((Input1Pin->LinkedTo.Num() == 0) && (Input2Pin->LinkedTo.Num() == 0))
{
// Restore the wildcard status
Input1Pin->PinType.PinCategory = Schema->PC_Wildcard;
Input1Pin->PinType.PinSubCategory = TEXT("");
Input1Pin->PinType.PinSubCategoryObject = NULL;
Input2Pin->PinType.PinCategory = Schema->PC_Wildcard;
Input2Pin->PinType.PinSubCategory = TEXT("");
Input2Pin->PinType.PinSubCategoryObject = NULL;
Schema->SetPinDefaultValueBasedOnType(Input1Pin);
Schema->SetPinDefaultValueBasedOnType(Input2Pin);
// We have to refresh the graph to get the enum dropdowns to go away
GetGraph()->NotifyGraphChanged();
}
else if (Pin->LinkedTo.Num() > 0)
{
// Make sure the pin is a valid enum
if (Pin->LinkedTo[0]->PinType.PinCategory == Schema->PC_Byte &&
Pin->LinkedTo[0]->PinType.PinSubCategoryObject.IsValid() &&
Pin->LinkedTo[0]->PinType.PinSubCategoryObject.Get()->IsA(UEnum::StaticClass()))
{
Pin->PinType = Pin->LinkedTo[0]->PinType;
UEdGraphPin* OtherPin = (Input1Pin == Pin) ? Input2Pin : Input1Pin;
// Enforce the type on the other pin
OtherPin->PinType = Pin->PinType;
UEdGraphSchema_K2::ValidateExistingConnections(OtherPin);
// If we copied the pin type to a wildcard we have to refresh the graph to get the enum dropdown
if (OtherPin->LinkedTo.Num() <= 0 && OtherPin->DefaultValue.IsEmpty())
{
Schema->SetPinDefaultValueBasedOnType(OtherPin);
GetGraph()->NotifyGraphChanged();
}
}
// A valid enum wasn't used to break the links
else
{
Pin->BreakAllPinLinks();
}
}
else if(Pin->DefaultValue.IsEmpty())
{
Schema->SetPinDefaultValueBasedOnType(Pin);
}
}
}
示例5: GetGraph
void FSubstanceEditor::OnResetDefaultValues()
{
if (GetGraph())
{
GetGraph()->Modify(true);
Substance::Helpers::ResetToDefault(GetGraph()->Instance);
Substance::Helpers::RenderAsync(GetGraph()->Instance);
}
}
示例6: GetGraph
void UCreatureAnimStateNode::PostEditChangeProperty(FPropertyChangedEvent& PropertyChangedEvent)
{
Super::PostEditChangeProperty(PropertyChangedEvent);
if (PropertyChangedEvent.ChangeType == EPropertyChangeType::ValueSet&&GetGraph()!=nullptr)
{
GetGraph()->NotifyGraphChanged();
}
}
示例7: GetGraph
void UEnvironmentQueryGraphNode_Option::ResetNodeOwner()
{
Super::ResetNodeOwner();
UEnvQueryOption* OptionInstance = Cast<UEnvQueryOption>(NodeInstance);
if (OptionInstance && OptionInstance->Generator)
{
UObject* GraphOwner = GetGraph() ? GetGraph()->GetOuter() : nullptr;
OptionInstance->Generator->Rename(NULL, GraphOwner, REN_DontCreateRedirectors | REN_DoNotDirty);
}
}
示例8: GetInputClass
void UK2Node_GetClassDefaults::OnClassPinChanged()
{
TArray<UEdGraphPin*> OldPins = Pins;
TArray<UEdGraphPin*> OldOutputPins;
// Gather all current output pins
for(int32 PinIndex = 0; PinIndex < OldPins.Num(); ++PinIndex)
{
UEdGraphPin* OldPin = OldPins[PinIndex];
if(OldPin->Direction == EGPD_Output)
{
Pins.Remove(OldPin);
OldOutputPins.Add(OldPin);
}
}
// Clear the current output pin settings (so they don't carry over to the new set)
ShowPinForProperties.Empty();
// Create output pins for the new class type
UClass* InputClass = GetInputClass();
CreateOutputPins(InputClass);
// Destroy the previous set of output pins
DestroyPinList(OldOutputPins);
// Notify the graph that the node has been changed
if(UEdGraph* Graph = GetGraph())
{
Graph->NotifyGraphChanged();
}
}
示例9: AllocateDefaultPins
void UK2Node::ReallocatePinsDuringReconstruction(TArray<UEdGraphPin*>& OldPins)
{
AllocateDefaultPins();
for (auto OldPin : OldPins)
{
if (OldPin->ParentPin)
{
// find the new pin that corresponds to parent, and split it if it isn't already split
for (auto NewPin : Pins)
{
if (FCString::Stricmp(*(NewPin->PinName), *(OldPin->ParentPin->PinName)) == 0)
{
// Make sure we're not dealing with a menu node
UEdGraph* OuterGraph = GetGraph();
if (OuterGraph && OuterGraph->Schema && NewPin->SubPins.Num() == 0)
{
NewPin->PinType = OldPin->ParentPin->PinType;
GetSchema()->SplitPin(NewPin);
}
}
}
}
}
}
示例10: GetGraph
void UK2Node_Composite::PostPlacedNewNode()
{
// Create a new graph
BoundGraph = FBlueprintEditorUtils::CreateNewGraph(this, NAME_None, UEdGraph::StaticClass(), GetGraph()->Schema);
check(BoundGraph);
// Create the entry/exit nodes inside the new graph
{
FGraphNodeCreator<UK2Node_Tunnel> EntryNodeCreator(*BoundGraph);
UK2Node_Tunnel* EntryNode = EntryNodeCreator.CreateNode();
EntryNode->bCanHaveOutputs = true;
EntryNode->bCanHaveInputs = false;
EntryNode->OutputSourceNode = this;
EntryNodeCreator.Finalize();
InputSinkNode = EntryNode;
}
{
FGraphNodeCreator<UK2Node_Tunnel> ExitNodeCreator(*BoundGraph);
UK2Node_Tunnel* ExitNode = ExitNodeCreator.CreateNode();
ExitNode->bCanHaveOutputs = false;
ExitNode->bCanHaveInputs = true;
ExitNode->InputSinkNode = this;
ExitNodeCreator.Finalize();
OutputSourceNode = ExitNode;
}
// Add the new graph as a child of our parent graph
GetGraph()->SubGraphs.Add(BoundGraph);
}
示例11: check
void UAnimStateNode::PostPlacedNewNode()
{
// Create a new animation graph
check(BoundGraph == NULL);
BoundGraph = FBlueprintEditorUtils::CreateNewGraph(
this,
NAME_None,
UAnimationStateGraph::StaticClass(),
UAnimationStateGraphSchema::StaticClass());
check(BoundGraph);
// Find an interesting name
TSharedPtr<INameValidatorInterface> NameValidator = FNameValidatorFactory::MakeValidator(this);
FBlueprintEditorUtils::RenameGraphWithSuggestion(BoundGraph, NameValidator, TEXT("State"));
// Initialize the anim graph
const UEdGraphSchema* Schema = BoundGraph->GetSchema();
Schema->CreateDefaultNodesForGraph(*BoundGraph);
// Add the new graph as a child of our parent graph
UEdGraph* ParentGraph = GetGraph();
if(ParentGraph->SubGraphs.Find(BoundGraph) == INDEX_NONE)
{
ParentGraph->SubGraphs.Add(BoundGraph);
}
}
示例12: GetGraph
void CGraphWnd::ClearGraph(int graphnum, BOOL bRedraw)
{
CGraphProps* graph;
if (graphnum != -1)
{
graph = GetGraph(graphnum);
if (graph == NULL) return;
graph->RemoveAll();
} else
{
int index;
graph = GetFirstGraph(&index);
while (graph!=NULL)
{
graph->RemoveAll();
graph = GetNextGraph(&index);
};
};
if (graph_frame != NULL)
{
SGraphChange sgc;
sgc.graphnum = graphnum;
sgc.bRedraw = bRedraw;
sgc.main_wnd_ptr = this;
graph_frame->UpdateViews(GRAPH_GRAPH_CLEARED, &sgc);
};
}
示例13: PinName
FString UK2Node_Tunnel::CreateUniquePinName(FString InSourcePinName) const
{
if (GetClass() == UK2Node_Tunnel::StaticClass())
{
// When dealing with a tunnel node that is not a sub class (macro/collapsed graph entry and result), attempt to find the paired node and find a valid name between the two
TWeakObjectPtr<UK2Node_EditablePinBase> TunnelEntry;
TWeakObjectPtr<UK2Node_EditablePinBase> TunnelResult;
FBlueprintEditorUtils::GetEntryAndResultNodes(GetGraph(), TunnelEntry, TunnelResult);
if (TunnelEntry.IsValid() && TunnelResult.IsValid())
{
FString PinName(InSourcePinName);
int32 Index = 1;
while (TunnelEntry.Get()->FindPin(PinName) != nullptr || TunnelResult.Get()->FindPin(PinName) != nullptr)
{
++Index;
PinName = InSourcePinName + FString::FromInt(Index);
}
return PinName;
}
}
return Super::CreateUniquePinName(InSourcePinName);
}
示例14: GetClassToSpawn
void UK2Node_LatentAbilityCall::PinDefaultValueChanged(UEdGraphPin* ChangedPin)
{
if (ChangedPin->PinName == FK2Node_LatentAbilityCallHelper::ClassPinName)
{
const UEdGraphSchema_K2* K2Schema = GetDefault<UEdGraphSchema_K2>();
// Because the archetype has changed, we break the output link as the output pin type will change
//UEdGraphPin* ResultPin = GetResultPin();
//ResultPin->BreakAllPinLinks();
// Remove all pins related to archetype variables
for (auto OldPin : SpawnParmPins)
{
OldPin->BreakAllPinLinks();
Pins.Remove(OldPin);
}
SpawnParmPins.Empty();
UClass* UseSpawnClass = GetClassToSpawn();
if (UseSpawnClass != NULL)
{
CreatePinsForClass(UseSpawnClass);
}
// Refresh the UI for the graph so the pin changes show up
UEdGraph* Graph = GetGraph();
Graph->NotifyGraphChanged();
// Mark dirty
FBlueprintEditorUtils::MarkBlueprintAsModified(GetBlueprint());
}
}
示例15: if
void UK2Node_SwitchString::PostEditChangeProperty(struct FPropertyChangedEvent& PropertyChangedEvent)
{
bool bIsDirty = false;
FName PropertyName = (PropertyChangedEvent.Property != NULL) ? PropertyChangedEvent.Property->GetFName() : NAME_None;
if (PropertyName == TEXT("PinNames"))
{
bIsDirty = true;
}
else if (PropertyName == TEXT("bIsCaseSensitive"))
{
FunctionName = (bIsCaseSensitive == true)
? TEXT("NotEqual_StrStr")
: TEXT("NotEqual_StriStri");
FunctionClass = UKismetStringLibrary::StaticClass();
bIsDirty = true;
}
if (bIsDirty)
{
ReconstructNode();
GetGraph()->NotifyGraphChanged();
}
Super::PostEditChangeProperty(PropertyChangedEvent);
}