InputGeneratorDefault.hpp

Go to the documentation of this file.
00001 //-----------------------------------------------------------------------------
00002 // Author: Jim Holmström
00003 // Date:   2002-02-13
00004 //-----------------------------------------------------------------------------
00005 
00006 #ifndef __INPUTGENERATORDEFAULT_H
00007 #define __INPUTGENERATORDEFAULT_H
00008 
00009 #include <Random.hpp>
00010 #include "IInputGenerator.hpp"
00011 #include <GNGRepresentation/IGLInputRepresentation.hpp>
00012 
00013 #include <cstdlib>
00014 #include <GL/glut.h>
00015 
00019 class InputGeneratorDefault : public IInputGenerator
00020 { 
00021 public:
00025   InputGeneratorDefault(unsigned int dimension)
00026   {
00027     m_dimension = dimension;
00028     m_min = -1.0;
00029     m_max = 1.0;
00030 
00031     for(unsigned int i=0; i< dimension; i++)
00032         m_vector.push_back(0.0);
00033         
00034     m_output.push_back(1.0); // only one class.
00035   }
00036   
00040   virtual Vector GetInput()
00041   {
00042     for(unsigned int i=0; i<m_dimension; i++)
00043       m_vector[i] = Random::Randomize();
00044     
00045     return m_vector;
00046   }
00047   
00051   virtual Vector const & GetLastInput() const { return m_vector; }  
00052 
00056   virtual unsigned int GetDimension() const { return m_dimension; }
00057 
00061   virtual GeneratorType GetGeneratorType() const { return ClassesGenerator; }
00062   
00063 protected:
00064   unsigned int m_dimension;
00065   double m_min;
00066   double m_max;
00067   Vector m_vector;
00068 };
00069 
00070 
00074 class InputRepresentationDefault : public IGLInputRepresentation
00075 {
00076 public:
00077   InputRepresentationDefault(InputGeneratorDefault * i) : m_inputGenerator(*i) {}
00078   virtual ~InputRepresentationDefault() {}
00079   
00080   virtual void GLOutputDistribution() const
00081   {
00082     glRectd(1.0,1.0,-1.0,-1.0);  
00083   }
00084   
00085   virtual void GLOutputSignal() const 
00086   {    
00087     Vector const & v = m_inputGenerator.GetLastInput();
00088     glBegin(GL_POINTS);
00089     {           
00090       glVertex2d(v[0], v[1]);
00091     }    
00092     glEnd();
00093     
00094   }
00095   
00096 private:
00097   InputGeneratorDefault & m_inputGenerator;
00098 };
00099 
00100 #endif
00101 

Generated on Mon Mar 22 16:40:47 2004 for GNG_GL by doxygen 1.3.6