// Rbox - Copyright (C) 2010-2013 T. Mouton
//
// See the LICENSE.txt file for license information. Please report all
// bugs and problems to <thibaud.mouton@gmail.com>.

#include <stdio.h>
#include <stdlib.h>
#include <sstream>
#include <string>
#include <vector>
#include <map>
#include <list>
#include <iterator>
#include <queue>
#include <deque>
#include <stack>
#include <algorithm>
#include <set>
#include <math.h>
#include <assert.h>
#include <limits>
#include <string>
#include <time.h>
#include <getopt.h>

#ifndef _common_rbox_h_
#define _common_rbox_h_

struct point
{
  int index;
  double x;
  double y;
  double z;
  double t0;
  double angle;
  double v1;
  double v2;
  int nf;
};

class options
{
  public :
    char cmdline[1000];
    int debug;
    int dim;
    int random;
    int circle;
    int sphere;
    int line;
    int hline;  
    int vline;
    int sampling; 
    int nbpt;
    bool t0;
    bool speed;
    bool angle;
    bool aniso;
    int nf;
    double sx;
    double sy;
    char sep;
    
  public :
    options()
    {
      debug = 0;
      dim = 2;
      random = 0;
      circle = 0;
      line = 0;
      hline = 0;
      vline = 0;      
      sphere = 0;
      sampling = 0;
      nbpt = 0;
      sx = 1.0; 
      sy = 1.0;
      t0 = false;
      speed = false;
      angle = false;
      aniso = false;
      sep = '\t';
    }
    void usage ( const char *program_name );
    void parse ( int argc, char **argv );
};

#endif