/* LICENSE:
  =========================================================================
    CMPack'04 Source Code Release for OPEN-R SDK 1.1.5-r2 for ERS7
    Copyright (C) 2004 Multirobot Lab [Project Head: Manuela Veloso]
    School of Computer Science, Carnegie Mellon University
    All rights reserved.
  ========================================================================= */

#ifndef INCLUDED_WorldModelEncoder_h
#define INCLUDED_WorldModelEncoder_h

#include "../headers/DogTypes.h"
#include "../headers/SPOutEncoder.h"

class WorldModel;
class Gaussian2;

// 15 Gaussians plus a character that specifies whether the gaussians
// are valid
#define WORLD_MODEL_ENCODER_SIZE 15*((5*sizeof(float))+sizeof(uchar))

/*------------------------------------------------------------------
CLASS
  SPOutWorldModelEncoder

DESCRIPTION
  Encodes SPOut output related to world model.
------------------------------------------------------------------*/

class SPOutWorldModelEncoder : public SPOutEncoder {
public:
  int encodeWorldModel(uchar *buf, WorldModel *modeller);
  void encodeGaussian2(uchar **buf, const Gaussian2 * g);
  void encodeValid(uchar **buf, uchar valid);
  int size();
};

#include "WorldModel.h"
#endif
