Program Listing for File FactorBase.h
↰ Return to documentation for file (include/mola_kernel/factors/FactorBase.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/id.h>
#include <mrpt/serialization/CSerializable.h>
namespace mola
{
enum class Robust : uint8_t
{
REGULAR_L2 = 0 ,
HUBER ,
CAUCHY, //
TUKEY, //
WELSH, //
GEMANMCCLURE //
};
class FactorBase : public mrpt::serialization::CSerializable
{
DEFINE_VIRTUAL_SERIALIZABLE(FactorBase)
public:
FactorBase() = default;
virtual ~FactorBase();
virtual std::size_t edge_count() const = 0;
virtual mola::id_t edge_indices(const std::size_t i) const = 0;
mola::fid_t my_id_{mola::INVALID_FID};
mola::Robust robust_type_{mola::Robust::REGULAR_L2};
double robust_param_{1.0};
protected:
// Derived classes mus call these methods to serialize the common data in
// this base class:
void baseSerializeTo(mrpt::serialization::CArchive& out) const;
void baseSerializeFrom(mrpt::serialization::CArchive& in);
};
} // namespace mola