Files
UnrealEngine/Engine/Plugins/ChaosVD/Source/ChaosVDBuiltInExtensions/Private/GenericDebugDraw/Visualizers/ChaosVDGenericDebugDrawDataComponentVisualizer.h
Brandyn / Techy fcc1b09210 init
2026-04-04 15:40:51 -05:00

52 lines
2.5 KiB
C++

// Copyright Epic Games, Inc. All Rights Reserved.
#pragma once
#include "GenericDebugDraw/Components/ChaosVDGenericDebugDrawDataComponent.h"
#include "Visualizers/ChaosVDComponentVisualizerBase.h"
#include "GenericDebugDraw/Settings/ChaosVDGenericDebugDrawSettings.h"
enum class EChaosVDDrawDataContainerSource : uint8;
struct FChaosVDDebugDrawImplicitObjectDataWrapper;
class UChaosVDGenericDebugDrawDataComponent;
class UChaosVDGenericDebugDrawSettings;
/** Visualization context structure specific for acceleration structure visualizations */
struct FChaosVDGenericDebugDrawDataVisualizationSettings : public FChaosVDVisualizationContext
{
ESceneDepthPriorityGroup DepthPriority = SDPG_Foreground;
float Thickness = 0.0f;
bool bShowDebugText = false;
EChaosVDDrawDataContainerSource DataSource = EChaosVDDrawDataContainerSource::GameFrame;
const UChaosVDGenericDebugDrawDataComponent* DataComponent = nullptr;
bool IsVisualizationFlagEnabled(EChaosVDGenericDebugDrawVisualizationFlags Flag) const
{
const EChaosVDGenericDebugDrawVisualizationFlags FlagsAsGenericDebugDrawVisualizationVisFlags = static_cast<EChaosVDGenericDebugDrawVisualizationFlags>(VisualizationFlags);
return EnumHasAnyFlags(FlagsAsGenericDebugDrawVisualizationVisFlags, Flag);
}
};
class FChaosVDGenericDebugDrawDataComponentVisualizer final : public FChaosVDComponentVisualizerBase
{
public:
FChaosVDGenericDebugDrawDataComponentVisualizer();
virtual void RegisterVisualizerMenus() override;
virtual bool CanHandleClick(const HChaosVDComponentVisProxy& VisProxy) override { return false;}
virtual void DrawVisualization(const UActorComponent* Component, const FSceneView* View, FPrimitiveDrawInterface* PDI) override;
void DrawData(const FSceneView* View, FPrimitiveDrawInterface* PDI, const FChaosVDGenericDebugDrawDataVisualizationSettings& InVisualizationContext);
void DrawBoxes(FPrimitiveDrawInterface* PDI, const FSceneView* View, const FChaosVDGenericDebugDrawDataVisualizationSettings& InVisualizationContext);
void DrawLines(FPrimitiveDrawInterface* PDI, const FSceneView* View, const FChaosVDGenericDebugDrawDataVisualizationSettings& InVisualizationContext);
void DrawSpheres(FPrimitiveDrawInterface* PDI, const FSceneView* View, const FChaosVDGenericDebugDrawDataVisualizationSettings& InVisualizationContext);
void DrawImplicitObjects(FPrimitiveDrawInterface* PDI, const FSceneView* View, const FChaosVDGenericDebugDrawDataVisualizationSettings& InVisualizationContext);
};