// 
// File name: RecognitionNet.h
//
// Discription: Base classes
//
// Programmer: Vladimir P. Stasevich (SV)
//
// History: 
//    Created 12.02.2000 (SV)
//

#ifndef RECOGNITION_H
#define RECOGNITION_H

#include "dir.h"
#pragma hdrstop

#include "neuro.h"
#include "Force.h"

#define RECOGNNUMLAYS 3
#define RECOGNNUMBINPUTS 3
#define RECOGNNUMBMIDDLENEURONS 1000
#define RECOGNNUMBOUTNEURONS 6

   // Ситуация
typedef enum TSituation
{
   NOTOUCHSITUATION = 0,
   FACETSITUATION,
   ONEPOINTSITUATION,
   TWOPOINTSITUATION,
   JAMMINGSITUATION,
} TSituation;

struct TImageSituation
{
   float x[5];
};

class TRecognitionNet : public NetBP
{
   protected:
      char name[MAXPATH];

   public:
      TRecognitionNet();
      TRecognitionNet( unsigned nI, unsigned nM, unsigned nO );
      ~TRecognitionNet();

      char* GetName()
         { return name; };

      void Learn( TForces& forces, TSituation situation ); 
      TSituation Recognize();
      
      int LoadFromFile( const char *fileName );
      int SaveToFile( const char *fileName );
};

#endif
