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

58 lines
2.7 KiB
C++

// Copyright Epic Games, Inc. All Rights Reserved.
#include "ChaosVDGenericDebugDrawExtension.h"
#include "Components/ChaosVDGenericDebugDrawDataComponent.h"
#include "Trace/DataProcessors/ChaosVDDebugDrawBoxDataProcessor.h"
#include "Trace/DataProcessors/ChaosVDDebugDrawImplicitObjectDataProcessor.h"
#include "Trace/DataProcessors/ChaosVDDebugDrawLineDataProcessor.h"
#include "Trace/DataProcessors/ChaosVDDebugDrawSphereDataProcessor.h"
#include "Visualizers/ChaosVDGenericDebugDrawDataComponentVisualizer.h"
#include "Widgets/SChaosVDMainTab.h"
FChaosVDGenericDebugDrawExtension::FChaosVDGenericDebugDrawExtension() : FChaosVDExtension()
{
DataComponentsClasses.Add(UChaosVDGenericDebugDrawDataComponent::StaticClass());
ExtensionName = FName(TEXT("FChaosVDGenericDebugDrawExtension"));
}
FChaosVDGenericDebugDrawExtension::~FChaosVDGenericDebugDrawExtension()
{
DataComponentsClasses.Reset();
}
void FChaosVDGenericDebugDrawExtension::RegisterDataProcessorsInstancesForProvider(const TSharedRef<FChaosVDTraceProvider>& InTraceProvider)
{
FChaosVDExtension::RegisterDataProcessorsInstancesForProvider(InTraceProvider);
TSharedPtr<FChaosVDDebugDrawBoxDataProcessor> DebugDrawBoxesDataProcessor = MakeShared<FChaosVDDebugDrawBoxDataProcessor>();
DebugDrawBoxesDataProcessor->SetTraceProvider(InTraceProvider);
InTraceProvider->RegisterDataProcessor(DebugDrawBoxesDataProcessor);
TSharedPtr<FChaosVDDebugDrawLineDataProcessor> DebugDrawLinesDataProcessor = MakeShared<FChaosVDDebugDrawLineDataProcessor>();
DebugDrawLinesDataProcessor->SetTraceProvider(InTraceProvider);
InTraceProvider->RegisterDataProcessor(DebugDrawLinesDataProcessor);
TSharedPtr<FChaosVDDebugDrawSphereDataProcessor> DebugDrawSpheresDataProcessor = MakeShared<FChaosVDDebugDrawSphereDataProcessor>();
DebugDrawSpheresDataProcessor->SetTraceProvider(InTraceProvider);
InTraceProvider->RegisterDataProcessor(DebugDrawSpheresDataProcessor);
TSharedPtr<FChaosVDDebugDrawImplicitObjectDataProcessor> DebugDrawImplicitObjectDataProcessor = MakeShared<FChaosVDDebugDrawImplicitObjectDataProcessor>();
DebugDrawImplicitObjectDataProcessor->SetTraceProvider(InTraceProvider);
InTraceProvider->RegisterDataProcessor(DebugDrawImplicitObjectDataProcessor);
}
TConstArrayView<TSubclassOf<UActorComponent>> FChaosVDGenericDebugDrawExtension::GetSolverDataComponentsClasses()
{
return DataComponentsClasses;
}
void FChaosVDGenericDebugDrawExtension::RegisterComponentVisualizers(const TSharedRef<SChaosVDMainTab>& InCVDToolKit)
{
FChaosVDExtension::RegisterComponentVisualizers(InCVDToolKit);
InCVDToolKit->RegisterComponentVisualizer(UChaosVDGenericDebugDrawDataComponent::StaticClass()->GetFName(), MakeShared<FChaosVDGenericDebugDrawDataComponentVisualizer>());
}