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-2025 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>
#include <mrpt/version.h>

namespace mola
{
class FrontEndBase : public ExecutableBase, public RawDataConsumer
{
#if MRPT_VERSION < 0x020e00
  DEFINE_VIRTUAL_MRPT_OBJECT(FrontEndBase)
#else
  DEFINE_VIRTUAL_MRPT_OBJECT(FrontEndBase, mola)
#endif

 public:
  FrontEndBase();

  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