Files
UnrealEngineUWP/Engine/Source/Developer/LogVisualizer/Private/VisualLoggerRenderingActor.h
aurel cordonnier 50944fd712 Merge UE5/RES @ 16162155 to UE5/Main
This represents UE4/Main @ 16130047 and Dev-PerfTest @ 16126156

[CL 16163576 by aurel cordonnier in ue5-main branch]
2021-04-29 19:32:06 -04:00

74 lines
2.0 KiB
C++

// Copyright Epic Games, Inc. All Rights Reserved.
#pragma once
#include "CoreMinimal.h"
#include "UObject/ObjectMacros.h"
#include "GameFramework/Actor.h"
#include "VisualLogger/VisualLoggerTypes.h"
#include "DebugRenderSceneProxy.h"
#include "VisualLoggerRenderingActor.generated.h"
class UPrimitiveComponent;
struct FVisualLoggerDBRow;
/**
* Transient actor used to draw visual logger data on level
*/
DECLARE_MULTICAST_DELEGATE_OneParam(FOnSelectionChanged, class AActor*);
UCLASS(config = Engine, NotBlueprintable, Transient, notplaceable, AdvancedClassDisplay)
class LOGVISUALIZER_API AVisualLoggerRenderingActor : public AActor
{
struct FTimelineDebugShapes
{
TArray<FDebugRenderSceneProxy::FDebugLine> Lines;
TArray<FDebugRenderSceneProxy::FCone> Cones;
TArray<FDebugRenderSceneProxy::FDebugBox> Boxes;
TArray<FDebugRenderSceneProxy::FSphere> Points;
TArray<FDebugRenderSceneProxy::FMesh> Meshes;
TArray<FDebugRenderSceneProxy::FText3d> Texts;
TArray<FDebugRenderSceneProxy::FWireCylinder> Cylinders;
TArray<FDebugRenderSceneProxy::FCapsule> Capsules;
TArray<FDebugRenderSceneProxy::FArrowLine> Arrows;
TArray<FVector> LogEntriesPath;
void Reset()
{
Lines.Reset();
Cones.Reset();
Boxes.Reset();
Points.Reset();
Meshes.Reset();
Texts.Reset();
Cylinders.Reset();
Capsules.Reset();
Arrows.Reset();
LogEntriesPath.Reset();
}
};
public:
GENERATED_UCLASS_BODY()
virtual ~AVisualLoggerRenderingActor();
void ResetRendering();
void ObjectSelectionChanged(const TArray<FName>& Selection);
void OnItemSelectionChanged(const FVisualLoggerDBRow& BDRow, int32 ItemIndex);
private:
void AddDebugRendering();
#if ENABLE_VISUAL_LOG
void GetDebugShapes(const FVisualLogDevice::FVisualLogEntryItem& EntryItem, FTimelineDebugShapes& DebugShapes);
#endif
void OnFiltersChanged();
public:
UPrimitiveComponent* RenderingComponent;
FTimelineDebugShapes TestDebugShapes;
TArray<FName> CachedRowSelection;
TMap<FName, FTimelineDebugShapes> DebugShapesPerRow;
};