Program Listing for File MovementDetectorPlugin.hpp

Return to documentation for file (src/navtk/inertial/MovementDetectorPlugin.hpp)

#pragma once

#include <navtk/aspn.hpp>
#include <navtk/inertial/MovementStatus.hpp>
#include <navtk/not_null.hpp>

namespace navtk {
namespace inertial {

class MovementDetectorPlugin {
public:
    virtual MovementStatus process(not_null<std::shared_ptr<aspn_xtensor::AspnBase>> data) = 0;

    virtual ~MovementDetectorPlugin() = default;

    virtual MovementStatus get_status() { return last_status; }

    virtual aspn_xtensor::TypeTimestamp get_time() = 0;

protected:
    MovementStatus last_status = MovementStatus::INVALID;
};
}  // namespace inertial
}  // namespace navtk