Files
UnrealEngineUWP/Engine/Source/Developer/VisualGraphUtils/Public/VisualGraphElement.h
bryan sefcik de1956f47b Ran IWYU on Public headers under Engine/Source/Developer/...
Headers are updated to contain any missing #includes needed to compile and #includes are sorted.  Nothing is removed.

#ushell-cherrypick of 21064294 by bryan.sefcik
#jira
#preflight 62d5c2111062f2e63015e598

#ROBOMERGE-OWNER: bryan.sefcik
#ROBOMERGE-AUTHOR: bryan.sefcik
#ROBOMERGE-SOURCE: CL 21155249 via CL 21158121 via CL 21161259
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v972-20964824)

[CL 21182053 by bryan sefcik in ue5-main branch]
2022-07-20 12:03:45 -04:00

87 lines
1.9 KiB
C++

// Copyright Epic Games, Inc. All Rights Reserved.
#pragma once
#include "Containers/UnrealString.h"
#include "CoreMinimal.h"
#include "CoreTypes.h"
#include "HAL/PlatformCrt.h"
#include "Math/Color.h"
#include "Misc/Optional.h"
#include "UObject/NameTypes.h"
#include "UObject/ObjectMacros.h"
#include "UObject/UnrealNames.h"
#include "VisualGraphElement.generated.h"
class FVisualGraph;
UENUM()
enum class EVisualGraphShape : uint8
{
Box,
Polygon,
Ellipse,
Circle,
Triangle,
PlainText,
Diamond,
Parallelogram,
House
};
UENUM()
enum class EVisualGraphStyle : uint8
{
Filled,
Diagonals,
Rounded,
Dashed,
Dotted,
Solid,
Bold
};
class VISUALGRAPHUTILS_API FVisualGraphElement
{
public:
FVisualGraphElement()
: Name(NAME_None)
, DisplayName()
, Index(INDEX_NONE)
, Color()
, Style()
{}
virtual ~FVisualGraphElement() {}
FName GetName() const { return Name; }
FName GetDisplayName() const { return DisplayName.IsSet() ? DisplayName.GetValue() : Name; }
TOptional<FString> GetTooltip() const { return Tooltip; }
void SetTooltip(const FString& InTooltip) const { Tooltip = InTooltip; }
int32 GetIndex() const { return Index; }
TOptional<FLinearColor> GetColor() const { return Color; }
void SetColor(FLinearColor InValue) { Color = InValue; }
TOptional<EVisualGraphStyle> GetStyle() const { return Style; }
void SetStyle(EVisualGraphStyle InValue) { Style = InValue; }
protected:
virtual FString DumpDot(const FVisualGraph* InGraph, int32 InIndendation) const = 0;
static FString DumpDotIndentation(int32 InIndentation);
static FString DumpDotColor(const TOptional<FLinearColor>& InColor);
static FString DumpDotShape(const TOptional<EVisualGraphShape>& InShape);
static FString DumpDotStyle(const TOptional<EVisualGraphStyle>& InStyle);
FName Name;
TOptional<FName> DisplayName;
mutable TOptional<FString> Tooltip;
int32 Index;
TOptional<FLinearColor> Color;
TOptional<EVisualGraphStyle> Style;
friend class FVisualGraph;
};