/*
    ANTLand simulation
    (C) 2004 justin_sane

    This program is free software; you can redistribute it and/or
    modify it under the terms of the GNU General Public License
    as published by the Free Software Foundation; either version 2
    of the License, or (at your option) any later version.

    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
    Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.

    Contact: justinsanemsu@msu.edu

    FILE: network.cpp
    Authors: justin_sane
*/


#include <vector.h>

#ifndef networkH
#define networkH

#define net_width (unsigned)6
#define net_layers (unsigned)3

class input_class
{
  public:
    bool *source;
    float value;
};

class node_class
{
  public:
    vector<float *> sources;  // pointer to the sources
    vector<float> weights;  // the weights of these conections

    float bias;

    float bias_range;
    float weight_range;

    float value, next_value;
};

class output_class
{
  public:
    float *source;
    float *target;
};

class network_class
{
  public:
    void __fastcall draw( void );

    vector<input_class> inputs;
    vector<node_class> nodes;
    vector<output_class> outputs;
};

#endif

