Open 3D Engine DebugDraw Gem API Reference  24.09
O3DE is an open-source, fully-featured, high-fidelity, modular 3D engine for building games and simulations, available to every industry.
DebugDraw::DebugDrawSystemComponent Class Reference

Inherits AZ::Component, AZ::EntityBus::MultiHandler, DebugDrawRequestBus::Handler, DebugDrawInternalRequestBus::Handler, AZ::RPI::SceneNotificationBus::Handler, and AZ::Render::Bootstrap::NotificationBus::Handler.

Classes

struct  DebugDrawObbElementWrapper
 
struct  DebugDrawSphereElementWrapper
 

Public Member Functions

 AZ_COMPONENT (DebugDrawSystemComponent, "{48D54C3C-F284-43A5-B070-106F2CEB7154}")
 

Static Public Member Functions

static void Reflect (AZ::ReflectContext *context)
 
static void GetProvidedServices (AZ::ComponentDescriptor::DependencyArrayType &provided)
 
static void GetIncompatibleServices (AZ::ComponentDescriptor::DependencyArrayType &incompatible)
 
static void GetRequiredServices (AZ::ComponentDescriptor::DependencyArrayType &required)
 
static void GetDependentServices (AZ::ComponentDescriptor::DependencyArrayType &dependent)
 

Protected Member Functions

void DrawAabb (const AZ::Aabb &aabb, const AZ::Color &color, float duration) override
 
void DrawAabbOnEntity (const AZ::EntityId &targetEntity, const AZ::Aabb &aabb, const AZ::Color &color, float duration) override
 
void DrawLineBatchLocationToLocation (const AZStd::vector< DebugDraw::DebugDrawLineElement > &lineBatch) override
 
void DrawLineLocationToLocation (const AZ::Vector3 &startLocation, const AZ::Vector3 &endLocation, const AZ::Color &color, float duration) override
 
void DrawLineEntityToLocation (const AZ::EntityId &startEntity, const AZ::Vector3 &endLocation, const AZ::Color &color, float duration) override
 
void DrawLineEntityToEntity (const AZ::EntityId &startEntity, const AZ::EntityId &endEntity, const AZ::Color &color, float duration) override
 
void DrawObb (const AZ::Obb &obb, const AZ::Color &color, float duration) override
 
void DrawObbOnEntity (const AZ::EntityId &targetEntity, const AZ::Obb &obb, const AZ::Color &color, bool enableRayTracing, float duration) override
 
void DrawRayLocationToDirection (const AZ::Vector3 &worldLocation, const AZ::Vector3 &worldDirection, const AZ::Color &color, float duration) override
 
void DrawRayEntityToDirection (const AZ::EntityId &startEntity, const AZ::Vector3 &worldDirection, const AZ::Color &color, float duration) override
 
void DrawRayEntityToEntity (const AZ::EntityId &startEntity, const AZ::EntityId &endEntity, const AZ::Color &color, float duration) override
 
void DrawSphereAtLocation (const AZ::Vector3 &worldLocation, float radius, const AZ::Color &color, float duration) override
 
void DrawSphereOnEntity (const AZ::EntityId &targetEntity, float radius, const AZ::Color &color, bool enableRayTracing, float duration) override
 
void DrawTextAtLocation (const AZ::Vector3 &worldLocation, const AZStd::string &text, const AZ::Color &color, float duration) override
 
void DrawTextOnEntity (const AZ::EntityId &targetEntity, const AZStd::string &text, const AZ::Color &color, float duration) override
 
void DrawTextOnScreen (const AZStd::string &text, const AZ::Color &color, float duration) override
 
void DrawScaledTextOnScreen (const AZStd::string &text, float fontScale, const AZ::Color &color, float duration) override
 
void DrawScaledTextOnScreenPos (float x, float y, const AZStd::string &text, float fontScale, const AZ::Color &color, float duration, bool bCenter=true) override
 
void RegisterDebugDrawComponent (AZ::Component *component) override
 
void UnregisterDebugDrawComponent (AZ::Component *component) override
 
void Init () override
 
void Activate () override
 
void Deactivate () override
 
void OnBeginPrepareRender () override
 
void OnBootstrapSceneReady (AZ::RPI::Scene *scene) override
 
void OnEntityDeactivated (const AZ::EntityId &entityId) override
 
void OnTickAabbs (AzFramework::DebugDisplayRequests &debugDisplay)
 
void OnTickLines (AzFramework::DebugDisplayRequests &debugDisplay)
 
void OnTickObbs (AzFramework::DebugDisplayRequests &debugDisplay)
 
void OnTickRays (AzFramework::DebugDisplayRequests &debugDisplay)
 
void OnTickSpheres (AzFramework::DebugDisplayRequests &debugDisplay)
 
void OnTickText (AzFramework::DebugDisplayRequests &debugDisplay)
 
void CreateAabbEntryForComponent (const AZ::EntityId &componentEntityId, const DebugDrawAabbElement &element)
 
void CreateLineEntryForComponent (const AZ::EntityId &componentEntityId, const DebugDrawLineElement &element)
 
void CreateObbEntryForComponent (const AZ::EntityId &componentEntityId, const DebugDrawObbElement &element)
 
void CreateRayEntryForComponent (const AZ::EntityId &componentEntityId, const DebugDrawRayElement &element)
 
void CreateSphereEntryForComponent (const AZ::EntityId &componentEntityId, const DebugDrawSphereElement &element)
 
void CreateTextEntryForComponent (const AZ::EntityId &componentEntityId, const DebugDrawTextElement &element)
 
template<typename F >
void removeExpiredDebugElementsFromVector (AZStd::vector< F > &vectorToExpire)
 
void AddRaytracingData (DebugDrawSphereElementWrapper &element)
 
void AddRaytracingData (DebugDrawObbElementWrapper &element)
 
void RemoveRaytracingData (const DebugDrawSphereElementWrapper &element)
 
void RemoveRaytracingData (const DebugDrawObbElementWrapper &element)
 

Protected Attributes

AZStd::vector< DebugDrawAabbElementm_activeAabbs
 
AZStd::mutex m_activeAabbsMutex
 
AZStd::vector< DebugDrawLineElementm_activeLines
 
AZStd::mutex m_activeLinesMutex
 
AZStd::vector< DebugDrawObbElementWrapperm_activeObbs
 
AZStd::mutex m_activeObbsMutex
 
AZStd::vector< DebugDrawRayElementm_activeRays
 
AZStd::mutex m_activeRaysMutex
 
AZStd::vector< DebugDrawSphereElementWrapperm_activeSpheres
 
AZStd::mutex m_activeSpheresMutex
 
AZStd::vector< DebugDrawTextElementm_activeTexts
 
AZStd::mutex m_activeTextsMutex
 
double m_currentTime
 
AZStd::vector< AZ::Vector3 > m_batchPoints
 
AZStd::vector< AZ::Color > m_batchColors
 
AZ::Render::RayTracingFeatureProcessor * m_rayTracingFeatureProcessor = nullptr
 
AZ::RPI::Ptr< AZ::RPI::Buffer > m_spheresRayTracingIndicesBuffer
 
AZ::Render::RayTracingFeatureProcessor::ProceduralGeometryTypeHandle m_sphereRayTracingTypeHandle
 
AZ::Render::RayTracingIndexList< 1 > m_spheresRayTracingIndices
 
AZ::Render::RayTracingFeatureProcessor::ProceduralGeometryTypeHandle m_obbRayTracingTypeHandle
 

The documentation for this class was generated from the following file: