Program Listing for File BufferedIns.hpp

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

#pragma once

#include <memory>

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

namespace navtk {
namespace inertial {

class BufferedIns : public BufferedPva {

public:
    BufferedIns(std::shared_ptr<aspn_xtensor::MeasurementPositionVelocityAttitude> pva = nullptr,
                double expected_dt                                                     = 1.0,
                double buffer_length                                                   = 60.0);

    BufferedIns(const aspn_xtensor::MeasurementPositionVelocityAttitude& pva,
                double expected_dt   = 1.0,
                double buffer_length = 60.0);

    void add_pva(not_null<std::shared_ptr<aspn_xtensor::MeasurementPositionVelocityAttitude>> pva);

    void add_pva(const aspn_xtensor::MeasurementPositionVelocityAttitude& pva);

    void add_data(not_null<std::shared_ptr<aspn_xtensor::AspnBase>> data) override;
};

}  // namespace inertial
}  // namespace navtk