//**********Cette classe permet de définir une l_système**************
//*Un l_système est composé d'un axiome, de règles de croissances et *
//*d'un angle. Les règles de croissances sont représentées sous forme*
//*d'un vecteur de regle********************************************** 

#include "axiome.h"
#include<vector.h>
#include<iostream.h>
#include<string>
using namespace std;

class l_systeme{
 private:
  int angle;              //l'angle du l_système
  axiome unAxiome;        //l'axiome
  vector<regle> ensRegle; //l'ensemble des règles

 public:
  //constructeurs
  l_systeme(){};
  l_systeme(int, axiome, vector<regle>);
  //methodes
  void afficheAxiome();
  void afficheRegle();
  void afficheAngle();
  void developpeNiveau(int); //permet de développer le l_systeme au niveau n
  int getAngle();            //retourne l'angle du l_système
  axiome getNouvelAxiome();  //renvoie le nouvel axiome un fois le développement fait
  string getSymbNvAxiome();  //renvoie le vecteur de symbole du nouvel axiome
};
