#include "Area.h" Framework::Vec3 getDirection( Directions dir ) { Framework::Vec3 result( 0, 0, 0 ); if( (dir | NORTH) == dir ) --result.y; if( (dir | EAST) == dir ) ++result.x; if( (dir | SOUTH) == dir ) ++result.y; if( (dir | WEST) == dir ) --result.x; if( (dir | TOP) == dir ) ++result.z; if( (dir | BOTTOM) == dir ) --result.z; return result; } int getDirectionIndex( Direction dir ) { if( dir == NORTH ) return 0; if( dir == EAST ) return 1; if( dir == SOUTH ) return 2; if( dir == WEST ) return 3; if( dir == TOP ) return 4; if( dir == BOTTOM ) return 5; assert( false ); return -1; } Direction getOppositeDirection( Direction dir ) { if( dir == NORTH ) return SOUTH; if( dir == EAST ) return WEST; if( dir == SOUTH ) return NORTH; if( dir == WEST ) return EAST; if( dir == TOP ) return BOTTOM; if( dir == BOTTOM ) return TOP; assert( false ); return NO_DIRECTION; } Direction getDirectionFromIndex( int index ) { return (Direction)(1 << index); }