#ifndef _MIDI_VIZ_FRACTAL_TREE_
#define _MIDI_VIZ_FRACTAL_TREE_

#include <GL/gl.h>
#include <math.h>
#include "MidiEvent.h"
#include "NoteColorLookupTable.h"
#include "TreeFractal.h"
#include "SpiralFlower.h"


class MidiVizFractalTree{

 public:
  
  MidiVizFractalTree(int config);
  ~MidiVizFractalTree();
  void init();
  void draw();
  void frame();
  
  void processMidiEvent(MidiEvent event);
  
  void setPosition(float x, float y, float z ){
    position[0] = x;
    position[1] = y;
    position[2] = z;
  }
  
  void setRotation(float x, float y, float z){
    rotation[0] = x;
    rotation[1] = y;
    rotation[2] = z;
  }
  
  void setScale(float x, float y, float z){
    scale[0] = x;
    scale[1] = y;
    scale[2] = z;
  }
  
 private:
  
  float position[3];
  float rotation[3];
  float delta_rotation[3];
  float scale[3];
  NoteColorLookupTable color_table; 

  TreeFractal *treeFractal;

};

#endif

