#ifndef MAZE_H
#define MAZE_H
#include <stl.h>
#include <queue>
#include <slist>
#include "parser.h"
#include "grid.h"
struct wire_segment
{
short x1,y1,z1;
short x2,y2,z2;
};
/* cell
short x,y;
unsigned char l;
*/
struct active_cell
{
float pathcost;
float total_cost;
cell pos;
char dir;
};
struct cube
{
int x1,y1;
int x2,y2;
int z1,z2;
};
//list<cell> maze_route(grid &g, list<cell> &source, int net_dest,
// list<pin> &remaining, ActiveCellHeap &ach);
list<cell> net_maze_route(grid &g, int net, list<pin> &pins, int &partial);
list<wire_segment> path_to_segment(list<cell> &path);
void segment_to_path(list<wire_segment> &path, list<cell> &ret);
int get_seg_dir(wire_segment ws);
#endif