/** \file
 *
 *  Contains the DeadReckonWithRespectToWater class declaration.
 *
 *  DeadReckonWithRespectToWater.h should only be included by DeadReckonWithRespectToWater.cpp
 *  Other classes should include DeadReckonWithRespectToWaterIF.h
 *
 *  Copyright (c) 2013 MBARI
 *  MBARI Proprietary Information.  All Rights Reserved
*/
#ifndef DEADRECKONWITHRESPECTTOWATER_H_
#define DEADRECKONWITHRESPECTTOWATER_H_

// include parent class
#include "navigationModule/DeadReckoner.h" // should include component/Component.h in turn

// forward declare classes for which this class includes a pointer
class UniversalDataReader;

/**
 * Dead Reckoning navigator using UniversalURI::PLATFORM_SPEED_WRT_SEA_WATER.
 *
 * DeadReckonWithRespectToWater.h should only be included by DeadReckonWithRespectToWater.cpp
 * Other classes should include DeadReckonWithRespectToWater.h
 *
 * \ingroup modules_navigation
 */
class DeadReckonWithRespectToWater : public DeadReckoner
{
public:
    DeadReckonWithRespectToWater( const Module* module );
    virtual ~DeadReckonWithRespectToWater();
    void initialize( void );

protected: // TODO: why private vs. protected?
    UniversalDataReader* speedReader_;

    // read in velocity required for dead reckoning calculation
    void readVehicleVelocity( void );

    // all other parameters and methods are inherited
};

#endif /* DEADRECKONWITHRESPECTTOWATER_H_ */
