Program Listing for File FrontEndBase.h

Return to documentation for file (include/mola_kernel/interfaces/FrontEndBase.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 <mola_kernel/Yaml.h>
#include <mola_kernel/interfaces/BackEndBase.h>
#include <mola_kernel/interfaces/ExecutableBase.h>
#include <mola_kernel/interfaces/RawDataConsumer.h>
#include <mola_kernel/interfaces/VizInterface.h>

namespace mola
{
class FrontEndBase : public ExecutableBase, public RawDataConsumer
{
    DEFINE_VIRTUAL_MRPT_OBJECT(FrontEndBase)

   public:
    FrontEndBase();
    virtual ~FrontEndBase() = default;

    void initialize(const Yaml& cfg) override final;

   protected:
    virtual void initialize_frontend(const Yaml& cfg) = 0;

   public:
   protected:
    std::set<std::string> front_end_source_names_;

    BackEndBase::Ptr  slam_backend_;
    WorldModel::Ptr   worldmodel_;
    VizInterface::Ptr visualizer_;
};

}  // namespace mola