-
Notifications
You must be signed in to change notification settings - Fork 1
/
DebugStrings.h
57 lines (43 loc) · 1.44 KB
/
DebugStrings.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
// Fill out your copyright notice in the Description page of Project Settings.
#pragma once
#include "CoreMinimal.h"
#include "Debug/DebugDrawComponent.h"
#include "DebugStrings.generated.h"
struct FDebugSceneProxyData
{
struct FDebugText
{
FVector Location;
FString Text;
FDebugText() {}
FDebugText(const FVector& InLocation, const FString& InText) : Location(InLocation), Text(InText){}
};
TArray<FDebugText> DebugLabels;
};
class FDebugSceneProxy : public FDebugRenderSceneProxy
{
public:
FDebugSceneProxy(const UPrimitiveComponent* InComponent, FDebugSceneProxyData* ProxyData);
FDebugSceneProxyData ProxyData;
};
class FDebugTextDelegateHelper : public FDebugDrawDelegateHelper
{
public:
virtual void DrawDebugLabels(UCanvas* Canvas, APlayerController*) override;
void SetupFromProxy(const FDebugSceneProxy* InSceneProxy);
TArray<FDebugSceneProxyData::FDebugText> DebugLabels;
};
/**
*
*/
UCLASS(ClassGroup = Custom, meta = (BlueprintSpawnableComponent))
class UDebugStrings : public UDebugDrawComponent
{
GENERATED_BODY()
public:
UDebugStrings(const FObjectInitializer& ObjectInitializer = FObjectInitializer::Get());
virtual FDebugRenderSceneProxy* CreateDebugSceneProxy() override;
virtual FDebugDrawDelegateHelper& GetDebugDrawDelegateHelper() override { return DebugDrawDelegateManager; }
virtual FBoxSphereBounds CalcBounds(const FTransform& LocalToWorld) const override;
FDebugTextDelegateHelper DebugDrawDelegateManager;
};