package geo

type Orientation int

const (
	TopLeft Orientation = iota
	TopRight
	BottomLeft
	BottomRight

	Top
	Right
	Bottom
	Left

	NONE
)

func ( Orientation) () string {
	switch  {
	case TopLeft:
		return "TopLeft"
	case TopRight:
		return "TopRight"
	case BottomLeft:
		return "BottomLeft"
	case BottomRight:
		return "BottomRight"

	case Top:
		return "Top"
	case Right:
		return "Right"
	case Bottom:
		return "Bottom"
	case Left:
		return "Left"
	default:
		return ""
	}
}

func ( Orientation) ( Orientation) bool {
	 := [][]Orientation{
		{TopLeft, Top, TopRight},
		{BottomLeft, Bottom, BottomRight},
		{Left, TopLeft, BottomLeft},
		{Right, TopRight, BottomRight},
	}
	for ,  := range  {
		 := false
		for ,  := range  {
			if  ==  {
				 = true
				break
			}
		}
		if  {
			for ,  := range  {
				if  ==  {
					return true
				}
			}
		}
	}
	return false
}

func ( Orientation) () bool {
	return  == TopLeft ||  == TopRight ||  == BottomLeft ||  == BottomRight
}

func ( Orientation) () bool {
	return  == Left ||  == Right
}

func ( Orientation) () bool {
	return  == Top ||  == Bottom
}

func ( Orientation) () Orientation {
	switch  {
	case TopLeft:
		return BottomRight
	case TopRight:
		return BottomLeft
	case BottomLeft:
		return TopRight
	case BottomRight:
		return TopLeft

	case Top:
		return Bottom
	case Bottom:
		return Top
	case Right:
		return Left
	case Left:
		return Right

	default:
		return 
	}
}