File multi_session_id.hpp

Types used across the API - multi-session ID.

Typedefs

using MultiSessionID = GenericMultiSessionId<detail::MultiSessionIdT::Base>

Generic ID

using FrameId = GenericMultiSessionId<detail::MultiSessionIdT::Frame>

ID for a frame

using KeyFrameId = GenericMultiSessionId<detail::MultiSessionIdT::KeyFrame>

ID for a keyframe

using LandmarkId = GenericMultiSessionId<detail::MultiSessionIdT::Landmark>

Id for a landmark

Enums

enum MultiSessionIdT

Values:

enumerator Frame
enumerator KeyFrame
enumerator Landmark
enumerator Base

Functions

inline KeyFrameId toKeyFrameId(FrameId id)

Explicit promotion of a FrameId to a KeyFrameId

Parameters

id – Frame ID to be promoted

Returns

KeyFrameId Promoted frame ID

inline KeyFrameId toKeyFrameId(MultiSessionID id)

Explicit promotion of a MultiSessionID to a KeyFrameId

Parameters

id – Generic ID to be promoted

Returns

KeyFrameId Promoted frame ID

template<>
struct GenericMultiSessionId<detail::MultiSessionIdT::Base>
#include <multi_session_id.hpp>

Public Types

using ValueT = int64_t

Public Functions

inline constexpr GenericMultiSessionId()
inline constexpr GenericMultiSessionId(const SessionIDT sid, const ValueT id)
inline ValueT value() const

Returns the zero-based index or -1 for the special case MultiFrameID.

inline SessionIDT session() const

Get the session ID.

Public Static Attributes

static constexpr SessionIDT s_invalidSession = std::numeric_limits<SessionIDT>::max()

Private Members

SessionIDT m_session_id
ValueT m_value

Friends

inline friend std::ostream &operator<<(std::ostream &os, const GenericMultiSessionId &v)
template<>
struct GenericMultiSessionId<detail::MultiSessionIdT::KeyFrame> : public GenericMultiSessionId<detail::MultiSessionIdT::Frame>
#include <multi_session_id.hpp>
namespace slamcore

Helper conversion methods

slamcore::ImageFormat \(\leftrightarrow\) BytesPerChannel

Get information about the client library

Typedefs

using MultiSessionID = GenericMultiSessionId<detail::MultiSessionIdT::Base>

Generic ID

using FrameId = GenericMultiSessionId<detail::MultiSessionIdT::Frame>

ID for a frame

using KeyFrameId = GenericMultiSessionId<detail::MultiSessionIdT::KeyFrame>

ID for a keyframe

using LandmarkId = GenericMultiSessionId<detail::MultiSessionIdT::Landmark>

Id for a landmark

Functions

inline KeyFrameId toKeyFrameId(FrameId id)

Explicit promotion of a FrameId to a KeyFrameId

Parameters

id – Frame ID to be promoted

Returns

KeyFrameId Promoted frame ID

inline KeyFrameId toKeyFrameId(MultiSessionID id)

Explicit promotion of a MultiSessionID to a KeyFrameId

Parameters

id – Generic ID to be promoted

Returns

KeyFrameId Promoted frame ID

template<detail::MultiSessionIdT SessionType>
struct GenericMultiSessionId
#include <multi_session_id.hpp>

ID for objects that can come from different sessions.

template<> Base >
#include <multi_session_id.hpp>

Public Types

using ValueT = int64_t

Public Functions

inline constexpr GenericMultiSessionId()
inline constexpr GenericMultiSessionId(const SessionIDT sid, const ValueT id)
inline ValueT value() const

Returns the zero-based index or -1 for the special case MultiFrameID.

inline SessionIDT session() const

Get the session ID.

Public Static Attributes

static constexpr SessionIDT s_invalidSession = std::numeric_limits<SessionIDT>::max()

Private Members

SessionIDT m_session_id
ValueT m_value

Friends

inline friend std::ostream &operator<<(std::ostream &os, const GenericMultiSessionId &v)
template<> KeyFrame > : public GenericMultiSessionId< detail::MultiSessionIdT::Frame >
#include <multi_session_id.hpp>
namespace detail

Slamcore API internal namespace

Enums

enum MultiSessionIdT

Values:

enumerator Frame
enumerator KeyFrame
enumerator Landmark
enumerator Base