#ifndef ENVIRONMENT_H
#define ENVIRONMENT_H

#include "GL_Matrix.h"
#include <GL/glut.h>
#include "Object.h"
#include <list.h>


// data for drawing robot simulator scene

#define MAX_NUM_OBJECTS 20



class Environment
{
 public:

  Environment(void);

  bool show_objects;

  // list of objects
  list<Object> object_list;

  bool add_object( GLfloat *Size,
		   GLfloat *Pose,
		   GLfloat *Frame,
		   GLfloat *Color );

  bool remove_object( int num);

  // modelview matrix of current robot frame 
  GLfloat Mr[16]; 

  GLfloat slide_base[3];
  GLfloat slide_base_pos[3];

  GLfloat slide_side[3];
  GLfloat slide_side_pos[3];

  GLfloat slide_back[3];
  GLfloat slide_back_pos[3];

  GLfloat slide_back_side[3];
  GLfloat slide_back_side_pos[3];

  GLfloat sup_base[3];
  GLfloat sup_base_pos[3];

  GLfloat sup_1_R, sup_1_H;
  GLint   sup_1_N;
  GLfloat sup_1_pos[3];

  GLfloat sup_1_1[3];
  GLfloat sup_1_1_pos[3];

  GLfloat sup_2_R, sup_2_H;
  GLint   sup_2_N;
  GLfloat sup_2_pos[3];

  GLfloat sup_2_1[3];
  GLfloat sup_2_1_pos[3];

  GLfloat sup_3_R, sup_3_H;
  GLint   sup_3_N;
  GLfloat sup_3_pos[3];

};

#endif
