1#ifndef OE_COMPONENT_DEBUG_H
2#define OE_COMPONENT_DEBUG_H
6#ifndef OXYGEN_ENGINE_DEBUG_TOOLS
7 #error Debug tools are not included in this build, please enable then with OE_DEBUG_TOOLS CMake option
10#include "../core/device.h"
11#include "../gui/manager.h"
13#include "fps_camera.h"
14#include "../scene/scene.h"
98 void update(
const std::chrono::nanoseconds delta);
187 #ifdef OXYGEN_ENGINE_DEBUG_VALIDATE_ORDERED_OPERATIONS
188 bool is_between_update_render =
false;
198 int32_t _last_id = 0;
200 int32_t _frame_count = 0;
201 double _render_time = 0;
203 int32_t _last_fps = 0;
205 bool _fps_camera_mode =
false;
207 void _generate_gui(nk_context* context);
214 void _camera_settings(nk_context* context);
void render()
Render the Debug GUI.
glm::vec3 selected_node_aabb_color
Color of selected node AABB.
Definition debug.h:170
void update(const std::chrono::nanoseconds delta)
Update the component.
bool show_selected_node_aabb
Toggle to show bounding boxes of selected node.
Definition debug.h:165
bool is_active
Toggle the status of the component.
Definition debug.h:145
void loadSceneFromFile(const std::string &filename)
Load all scene transforms from a json file.
FpsCamera fps_camera
the FPS Camera
Definition debug.h:185
bool show_help_tooltips
Toggle to add tooltips to help understand some widget meaning.
Definition debug.h:150
glm::vec3 all_nodes_aabb_color
Color of all nodes AABB.
Definition debug.h:175
void onNodeRemove(oe::scene::Node &node)
Run actions on node removal.
bool show_origin
Toggle to show world origin.
Definition debug.h:155
Debug(oe::scene::Scene &scene, core::Device &device, core::Window &window, oe::core::EventHandler &event_handler)
Constructor.
void dumpSceneToFile(const std::string &filename) const
Save all scene transforms into a json file.
bool show_all_nodes_aabb
Toggle to show bounding boxes of all nodes.
Definition debug.h:160
oe::scene::NodePtr current_node_details
The node in the detail window.
Definition debug.h:180
The OxygenEngine device that will manage events, windows, scene, etc...
Definition device.h:17
Event handler.
Definition event_handler.h:18
Scene node.
Definition node.h:30
Logical scene manager.
Definition scene.h:18
Components bound to a node.
Definition namespaces.h:14
Components bound to the scene.
Definition namespaces.h:19
Scene / node components (camera, lighting, ...).
Definition debug.h:17
Control a camera like an FPS one (No clip, ignores any collisions).
Definition fps_camera.h:16
Wrapper to a node reference to use pointers to node even if the actual node moves in memory.
Definition node_ptr.h:19