#pragma once
#include "NetMsg.h"
#ifdef AFTR_CONFIG_USE_BOOST

#include <array>
#include "Mat4.h"

namespace Aftr
{

class NetMsgSendDCM3x3 : public NetMsg
{
public:
   NetMsgMacroDeclaration( NetMsgSendDCM3x3 );

   NetMsgSendDCM3x3() = default;
   NetMsgSendDCM3x3( Mat4 const& upper3x3_to_send );
   virtual ~NetMsgSendDCM3x3() = default;
   virtual bool toStream( NetMessengerStreamBuffer& os ) const override;
   virtual bool fromStream( NetMessengerStreamBuffer& is ) override;
   virtual void onMessageArrived() override;
   virtual std::string toString() const override;
   Mat4D getDCM() const;

   // 0,1,2 -> xDir
   // 3,4,5 -> yDir
   // 6,7,8 -> zDir
   std::array<double, 9> dcm{0}; ///< elements 0,8 of the 3x3 matrix.

};

} //namespace Aftr

#endif
