File subsystems.hpp

Core API subsystems.

Includes the majority of the subsystems that are used when using the SLAMcore API. Along with their definition, we define load_minimal, save_minimal helper functions as well as the operator<< for storing/dumping their types.

Note

Notice that the majority of the classes are suffixed with *Interface. That’s because when you get access to the corresponding instance, you do via a pointer type (namely std::shared_ptr or the class member aliases Ptr, CPtr) and not through the actual class instance.

Helper functions for slamcore::SubsystemType

template<class Archive>
static inline void load_minimal(const Archive&, SubsystemType &obj, const std::string &value)
template<class Archive>
static inline std::string save_minimal(const Archive&, const SubsystemType &obj)
static inline std::ostream &operator<<(std::ostream &os, const SubsystemType obj)

Enums

enum SubsystemType

Subsystem types. For every one of these enum cases there is a corresponding <enum-name>Interface class.

Values:

enumerator CameraSensorsInfo
enumerator Count
namespace slamcore

Main namespace for the SLAMcore public API

Get information about the client library

Helper functions for slamcore::SubsystemType

template<class Archive>
static inline void load_minimal(const Archive&, SubsystemType &obj, const std::string &value)
template<class Archive>
static inline std::string save_minimal(const Archive&, const SubsystemType &obj)
static inline std::ostream &operator<<(std::ostream &os, const SubsystemType obj)

Helper conversion methods

slamcore::ImageFormat \(\leftrightarrow\) BytesPerPixel

Enums

enum SubsystemType

Subsystem types. For every one of these enum cases there is a corresponding <enum-name>Interface class.

Values:

enumerator CameraSensorsInfo
enumerator Count
class CameraSensorsInfoInterface : public SubsystemInterface
#include <subsystems.hpp>

Subsystem to access factory camera calibration.

Public Types

using Ptr = std::shared_ptr<CameraSensorsInfoInterface>
using CPtr = std::shared_ptr<const CameraSensorsInfoInterface>

Public Functions

inline virtual SubsystemType type() const

Type of the object.

virtual ~CameraSensorsInfoInterface() = default
virtual std::vector<SensorIDT> getCameraList() const = 0

Return the IDs for camera sensors in the system.

virtual Vector getCameraSensorSize(const SensorIDT sid) const = 0

Get camera sensor image dimensions.

virtual ImageFormat getCameraImageFormat(const SensorIDT sid) const = 0

Get camera sensor image format.

virtual Vector getCameraFactoryFocalLength(const SensorIDT sid) const = 0

Get camera sensor focal length (factory).

virtual Vector getCameraFactoryPrincipalPoint(const SensorIDT sid) const = 0

Get camera sensor principal point (factory).

virtual std::string getCameraFactoryDistortionModel(const SensorIDT sid) const = 0

Get camera sensor distortion model (factory).

virtual Vector getCameraFactoryDistortionParams(const SensorIDT sid) const = 0

Get camera sensor distortion coefficients (factory).

Public Static Attributes

static constexpr SubsystemType Type = SubsystemType::CameraSensorsInfo
class SubsystemInterface
#include <subsystems.hpp>

Common interface for all the objects - enables runtime polymorphism.

Subclassed by CameraSensorsInfoInterface

Public Types

using Ptr = std::shared_ptr<SubsystemInterface>
using CPtr = std::shared_ptr<const SubsystemInterface>

Public Functions

virtual ~SubsystemInterface() = default
inline virtual SubsystemType type() const

Type of the object.

Protected Functions

inline SubsystemInterface()