//////////////////////////////////////////////////////////////////////////////
//
// File: nn_layer.h
//
// Purpose: Interface for NeuNet's Layer class.
//
// Authors:
//   txe  Travis Emmitt
//
// Modifications:
//   17-APR-1998  txe  Initial creation
//   19-APR-1998  txe  Cleaned up, everything in constructor, destructor
//   23-APR-1998  txe  Added comments
//
//////////////////////////////////////////////////////////////////////////////

#ifndef NN_LAYER_H
#define NN_LAYER_H

#include "debug.h"
#include "nn_arch.h"
#include "nn_node.h"

class Layer : public Debug {
  friend class NeuNet;
  
private:
  Arch  *arch;           // NeuNet architecture
  int    id;             // layer id (0..num_layers-1)
  Layer *next;           // pointer to next layer
  Node **nodes;          // this layer's nodes (dynamically allocated)
  int    num_nodes;      // number of nodes in this layer
  
public:
  Layer (char *name, Arch *arch, int num_nodes, int num_in, Layer *next);
  ~Layer ();
};

#endif

///////////////////////////////////////////////////////////////////////////////

