Program Listing for File VizInterface.h
↰ Return to documentation for file (include/mola_kernel/interfaces/VizInterface.h
)
/* -------------------------------------------------------------------------
* A Modular Optimization framework for Localization and mApping (MOLA)
* Copyright (C) 2018-2024 Jose Luis Blanco, University of Almeria
* See LICENSE for license information.
* ------------------------------------------------------------------------- */
#pragma once
#include <mrpt/gui/CDisplayWindowGUI.h> // nanogui
#include <mrpt/math/TPoint3D.h>
#include <future>
#include <memory>
namespace mola
{
class VizInterface
{
public:
VizInterface() = default;
virtual ~VizInterface() = default;
using Ptr = std::shared_ptr<VizInterface>;
// ===============================
// See class MolaViz for docs
// ===============================
virtual std::future<nanogui::Window*> create_subwindow(
const std::string& title, const std::string& parentWindow = "main") = 0;
virtual std::future<bool> subwindow_update_visualization(
const mrpt::rtti::CObject::Ptr& obj, const std::string& subWindowTitle,
const std::string& parentWindow = "main") = 0;
virtual std::future<bool> update_3d_object(
const std::string& objName,
const std::shared_ptr<mrpt::opengl::CSetOfObjects>& obj,
const std::string& viewportName = "main",
const std::string& parentWindow = "main") = 0;
virtual std::future<bool> update_viewport_look_at(
const mrpt::math::TPoint3Df& lookAt,
const std::string& viewportName = "main",
const std::string& parentWindow = "main") = 0;
virtual std::future<bool> update_viewport_camera_azimuth(
const double azimuth, bool absolute_falseForRelative = true,
const std::string& viewportName = "main",
const std::string& parentWindow = "main") = 0;
virtual std::future<void> enqueue_custom_nanogui_code(
const std::function<void(void)>& userCode) = 0;
virtual std::future<bool> output_console_message(
const std::string& msg, const std::string& parentWindow = "main") = 0;
};
} // namespace mola