Program Listing for File Mechanization.hpp

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

#pragma once

#include <memory>

#include <navtk/inertial/AidingAltData.hpp>
#include <navtk/inertial/InertialPosVelAtt.hpp>
#include <navtk/inertial/MechanizationOptions.hpp>
#include <navtk/not_null.hpp>
#include <navtk/tensors.hpp>

namespace navtk {
namespace inertial {

class Mechanization {

public:
    virtual ~Mechanization() = default;

    virtual not_null<std::shared_ptr<InertialPosVelAtt>> mechanize(
        const Vector3& dv_s,
        const Vector3& dth_s,
        double dt,
        const not_null<std::shared_ptr<InertialPosVelAtt>> pva,
        const not_null<std::shared_ptr<InertialPosVelAtt>> old_pva,
        const MechanizationOptions& mech_options,
        AidingAltData* aiding_alt_data) = 0;

protected:
    Mechanization() = default;
};

}  // namespace inertial
}  // namespace navtk