class mola::MolaViz

Overview

MOLA GUI and visualization API More…

#include <MolaViz.h>

class MolaViz:
    public mola::ExecutableBase,
    public mola::VizInterface
{
public:
    // typedefs

    typedef std::string window_name_t;
    typedef std::string subwindow_name_t;
    typedef std::function<void(const mrpt::rtti::CObject::Ptr&, nanogui::Window*subWin, window_name_t parentWin, MolaViz*instance)> update_handler_t;
    typedef std::string class_name_t;

    // fields

    static const static window_name_t DEFAULT_WINDOW_NAME = "main";

    // methods

    virtual std::future<nanogui::Window*> create_subwindow(
        const std::string& subWindowTitle,
        const std::string& parentWindow = DEFAULT_WINDOW_NAME
        );

    virtual std::future<bool> subwindow_update_visualization(
        const mrpt::rtti::CObject::Ptr& obj,
        const std::string& subWindowTitle,
        const std::string& parentWindow = DEFAULT_WINDOW_NAME
        );

    static bool IsRunning();
    static MolaViz* Instance();

    static void register_gui_handler(
        class_name_t name,
        update_handler_t handler
        );

    virtual void initialize_common(const Yaml&);
    virtual void initialize(const Yaml& cfg);
    virtual void spinOnce();
    void markWindowForReLayout(const window_name_t& name);
};

Inherited Members

public:
    // methods

    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;

Detailed Documentation

MOLA GUI and visualization API

Methods

virtual std::future<nanogui::Window*> create_subwindow(
    const std::string& subWindowTitle,
    const std::string& parentWindow = DEFAULT_WINDOW_NAME
    )

Returned object is owned by the VizInterface, do NOT delete it.

virtual std::future<bool> subwindow_update_visualization(
    const mrpt::rtti::CObject::Ptr& obj,
    const std::string& subWindowTitle,
    const std::string& parentWindow = DEFAULT_WINDOW_NAME
    )

Updates the contents of a subwindow from a given object, typically a mrpt::obs::CObservation, but custom handlers can be installed for arbitrary classes.

Depending on the object class RTTI, the corresponding handler is called.

Returns:

false if no handler is found for the given object.

See also:

virtual void initialize(const Yaml& cfg)

This should be reimplemented to read all the required parameters