Projekt for SPIE - Avatar for safety briefing / managment event
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

84 lines
2.8 KiB

// Copyright 2019 yangxiangyun
// All Rights Reserved
#pragma once
#include "CoreMinimal.h"
#include "ConnectionDrawingPolicy.h"
#include "../NGAGraphPinConnectionFactory.h"
#if ENGINE_MAJOR_VERSION == 5 && ENGINE_MINOR_VERSION >= 6
#define FVector2D FVector2f
#endif
class FNGAGraphConnectionDrawingPolicyCommon
{
public:
FConnectionDrawingPolicy* Ref_EffectingPolicy;
const int32 Ref_WireLayerID;
const FSlateBrush*& Ref_MidpointImage;
const FSlateBrush*& Ref_BubbleImage;
const UGraphEditorSettings*& Ref_Settings;
const float Ref_ZoomFactor;
const FSlateRect& Ref_ClippingRect;
FSlateWindowElementList& Ref_DrawElementsList;
TMap<TSharedRef<SWidget>, FArrangedWidget>*& Ref_PinGeometries;
const FVector2D& Ref_LocalMousePosition;
TSharedPtr<FNGAGraphPinConnectionFactoryPayLoadData> MyPayLoadData;
TArray<FVector2D> DelayDrawPreviewStart;
TArray<FVector2D> DelayDrawPreviewEnd;
TArray<UEdGraphPin*> DelayDrawPreviewPins;
const UEdGraph* MyGraphObject;
FNGAGraphConnectionDrawingPolicyCommon(
FConnectionDrawingPolicy* InPolicy,
const int32 InWireLayerID,
const FSlateBrush*& MidpointImage,
const FSlateBrush*& InBubbleImage,
const UGraphEditorSettings*& InSettings,
const float ZoomFactor,
const FSlateRect& InClippingRect,
FSlateWindowElementList& InDrawElements,
TMap<TSharedRef<SWidget>, FArrangedWidget>*& InPinGeometries,
const FVector2D& InLocalMousePosition, //need reference
TSharedPtr<FNGAGraphPinConnectionFactoryPayLoadData> InPayLoadData,
const UEdGraph* InGraphObj):
Ref_EffectingPolicy(InPolicy),
Ref_WireLayerID(InWireLayerID),
Ref_MidpointImage(MidpointImage),
Ref_BubbleImage(InBubbleImage),
Ref_Settings(InSettings),
Ref_ZoomFactor(ZoomFactor),
Ref_ClippingRect(InClippingRect),
Ref_DrawElementsList(InDrawElements),
Ref_PinGeometries(InPinGeometries),
Ref_LocalMousePosition(InLocalMousePosition),
MyPayLoadData(InPayLoadData),
MyGraphObject(InGraphObj)
{}
void OverrideDrawPreviewConnector(const FGeometry& PinGeometry, const FVector2D& StartPoint, const FVector2D& EndPoint, UEdGraphPin* Pin);
void OverrideDraw(TMap<TSharedRef<SWidget>, FArrangedWidget>& InPinGeometries, FArrangedChildren& ArrangedNodes);
void OverrideDrawConnection(int32 LayerId, const FVector2D& Start, const FVector2D& End, const FConnectionParams& Params);
void DetermineWiringStyle(UEdGraphPin* OutputPin, UEdGraphPin* InputPin, /*inout*/ FConnectionParams& Params);
void DelayDrawPreviewConnector();
void ResetPayloadData()
{
if (MyPayLoadData.IsValid())
{
MyPayLoadData->OutLazyConnectiblePin.Reset();
MyPayLoadData->OutInsertableNodePinInfo = InsertableNodePinInfo();
MyPayLoadData->OutHoveredInputPins.Empty();
MyPayLoadData->OutHoveredOutputPins.Empty();
}
}
};
#if ENGINE_MAJOR_VERSION == 5 && ENGINE_MINOR_VERSION >= 6
#undef FVector2D
#endif