12#ifdef CANDLEWICK_WITH_FFMPEG_SUPPORT
16#include <pinocchio/visualizers/base-visualizer.hpp>
17#include <SDL3/SDL_mouse.h>
18#include <entt/entity/registry.hpp>
23 using pinocchio::visualizers::BaseVisualizer;
24 using pinocchio::visualizers::ConstVectorRef;
25 using pinocchio::visualizers::Vector3;
26 using pinocchio::visualizers::VectorXs;
62 bool m_showGui =
true;
63 bool m_shouldExit =
false;
70 void displayPrecall()
override {}
72 void displayImpl()
override;
74 void guiCallbackImpl();
79 using BaseVisualizer::setCameraPose;
103 const pin::GeometryModel &visual_model,
107 const pin::GeometryModel &visual_model, pin::Data &data,
111 const pin::GeometryModel &visual_model)
113 [this](auto &) { this->guiCallbackImpl(); }) {}
116 const pin::GeometryModel &visual_model, pin::Data &data,
117 pin::GeometryData &visual_data)
118 :
Visualizer(config, model, visual_model, data, visual_data,
119 [this](auto &) { this->guiCallbackImpl(); }) {}
135 [[nodiscard]]
bool shouldExit() const noexcept {
return m_shouldExit; }
145#ifdef CANDLEWICK_WITH_FFMPEG_SUPPORT
146 auto &videoSettings() {
return m_videoSettings; }
163 std::optional<Vector3> scale = std::nullopt,
164 std::optional<float> vel_scale = std::nullopt);
172 Uint32 lifetime = 5u);
186 std::string m_currentScreenshotFilename;
187 bool m_shouldScreenshot =
false;
188#ifdef CANDLEWICK_WITH_FFMPEG_SUPPORT
189 std::string m_currentVideoFilename;
Scene for organizing debug entities and render systems.
Definition DebugScene.h:50
Definition GuiSystem.h:13
std::function< void(const RenderContext &)> GuiBehavior
Definition GuiSystem.h:21
A render system for Pinocchio robot geometries using Pinocchio.
Definition RobotScene.h:41
void setFrameExternalForce(pin::FrameIndex frame_id, const pin::Force &force, Uint32 lifetime=5u)
Add visualization for the body forces expressed at the local frame of a joint.
void clean() override
Clear objects.
Definition Visualizer.h:178
void startRecording(std::string_view filename)
bool stopRecording()
Stop recording the window.
void removeFramesViz()
Remove all frame visualizations.
void addFrameViz(pin::FrameIndex id, bool show_velocity=true, std::optional< Vector3 > scale=std::nullopt, std::optional< float > vel_scale=std::nullopt)
Add visualization for a given frame.
DebugScene debugScene
Definition Visualizer.h:84
bool shouldExit() const noexcept
Definition Visualizer.h:135
RobotScene robotScene
Definition Visualizer.h:83
bool show_imgui_about
Definition Visualizer.h:88
Visualizer(const Config &config, const pin::Model &model, const pin::GeometryModel &visual_model, pin::Data &data, pin::GeometryData &visual_data)
Definition Visualizer.h:115
CameraControlParams cameraParams
Definition Visualizer.h:86
AABB worldSceneBounds
Definition Visualizer.h:89
Visualizer(const Config &config, const pin::Model &model, const pin::GeometryModel &visual_model, pin::Data &data, pin::GeometryData &visual_data, GuiSystem::GuiBehavior callback)
void setCameraTarget(const Eigen::Ref< const Vector3 > &target) override
Visualizer(const Config &config, const pin::Model &model, const pin::GeometryModel &visual_model)
Definition Visualizer.h:110
entt::registry registry
Definition Visualizer.h:80
CylindricalCamera controller
Definition Visualizer.h:85
Visualizer(const Config &config, const pin::Model &model, const pin::GeometryModel &visual_model, GuiSystem::GuiBehavior gui_callback)
RenderContext renderer
Definition Visualizer.h:81
static constexpr Radf DEFAULT_FOV
Definition Visualizer.h:77
void takeScreenshot(std::string_view filename)
bool show_our_about
Definition Visualizer.h:87
void setCameraPose(const Eigen::Ref< const Matrix4 > &pose) override
void setCameraPosition(const Eigen::Ref< const Vector3 > &position) override
const Device & device() const
Definition Visualizer.h:123
GuiSystem guiSystem
Definition Visualizer.h:82
void enableCameraControl(bool v) override
Definition Visualizer.h:131
void loadViewerModel() override
Rad< float > Radf
Definition math_types.h:125
Support for the Pinocchio rigid-body algorithms library and the Coal collision detection library.
Definition LoadPinocchioGeometry.h:8
void guiAddCameraParams(CylindricalCamera &controller, CameraControlParams ¶ms)
Definition CameraControls.h:68
RAII wrapper for SDL_GPUDevice.
Definition Device.h:17
The RenderContext class provides a rendering context for a graphical application.
Definition RenderContext.h:36
Definition Visualizer.h:40
Uint8 panButton
Definition Visualizer.h:42
Uint8 rotButton
Definition Visualizer.h:41
Uint8 yRotButton
Definition Visualizer.h:43
Definition Visualizer.h:31
struct candlewick::multibody::CameraControlParams::MouseConfig mouseButtons
bool enabled
Definition Visualizer.h:37
float localRotSensitivity
Definition Visualizer.h:35
float panSensitivity
Definition Visualizer.h:33
float zoomSensitivity
Definition Visualizer.h:34
float rotSensitivity
Definition Visualizer.h:32
bool yInvert
Definition Visualizer.h:36
Definition Visualizer.h:91
Uint32 height
Definition Visualizer.h:93
SDL_GPUTextureFormat depthStencilFormat
Definition Visualizer.h:95
Uint32 width
Definition Visualizer.h:92
SDL_GPUSampleCount sampleCount
Definition Visualizer.h:94