//------------------------------------------------------------
// Tony Hyun Kim
// Spring 2007
// 18.354 Project: Lattice gas
// Detailed reflection model
//------------------------------------------------------------

#ifndef DETAILED_REFLECTION_H
#define DETAILED_REFLECTION_H

#include "Common.h"
#include "Node.h"

enum walltype {UNKNOWN,

			   PIN,					// (1 missing connection)

			   WALL_UPSLOPE,		// (2 missing connections)
			   WALL_DOWNSLOPE,
			   FUNNEL_UPSLOPE,
			   FUNNEL_DOWNSLOPE,

			   THREEWAY,			// (3 missing connections)
			   CORNER,
			   CORNER_DOWN,
			   CORNER_UP,
			   FORK_UP,
			   FORK_DOWN,

			   PATH_UP,				// (4 missing connections)
			   PATH_DOWN,
			   SHARPPATH_UP,
			   SHARPPATH_DOWN,

			   DEAD_END				// (5 missing connections)
			  };

walltype ComputeWallType(const NODE* np, int dir);
void ProcessDetailedReflection(NODE* np, int dir);

#endif