Package eu.pedu.lib20s.geom
Enum Direction8
java.lang.Object
java.lang.Enum<Direction8>
eu.pedu.lib20s.geom.Direction8
- All Implemented Interfaces:
java.io.Serializable
,java.lang.Comparable<Direction8>
,java.lang.constant.Constable
public enum Direction8 extends java.lang.Enum<Direction8>
Třída
Direction8
slouží jako výčtový typ pro 8 hlavních a vedlejších
světových stran spolu se směrem NOWHERE pro situace,
kdy není možno určit směr.-
Nested Class Summary
-
Enum Constant Summary
Enum Constants Enum Constant Description EAST
Východ = doprava.NORTH
Sever = nahoru.NORTH_EAST
Severovýchod = doprava nahoru.NORTH_WEST
Severozápad = doleva nahoru.NOWHERE
Žádný = nikam.SOUTH
Jih = dolu.SOUTH_EAST
Jihovýchod = doprava dolu.SOUTH_WEST
Jihozápad = doleva nahoru.WEST
Západ = doleva. -
Field Summary
Fields Modifier and Type Field Description static int
NUM_DIRS
Celkový počet definovaných směrů. -
Method Summary
Modifier and Type Method Description Direction8
aboutTurn()
Vrátí směr otočený o 180°.static java.util.List<Direction8>
cardinals()
Vrátí neměnný seznam se čtyřmi hlavními světovými stranami.int
dx()
Vrátí změnu vodorovné souřadnice při přesunu na sousední pole v daném směru.int
dy()
Vrátí změnu svislé souřadnice při přesunu na sousední pole v daném směru.static Direction8
get(int index)
Vrátí směr se zadaným indexem.static Direction8
get(java.lang.String name)
Vrátí směr se zadaným názvem nebo zkratkou.java.lang.String
getShortcut()
Vrátí zkratku názvu daného směru.Direction8
halfLeft()
Vrátí směr otočený o 45° vlevo.Direction8
halfRight()
Vrátí směr otočený o 45° vpravo.boolean
isCardinal()
Direction8
leftTurn()
Vrátí směr otočený o 90° vlevo.Position
nextPosition(Position position)
Vrátí pozici sousedního políčka v daném směru.Position
nextPosition(Position position, int distance)
Vrátí pozici políčka vzdáleného v daném směru o zadanou vzdálenost.int
nextX(int x)
Obdrží x-vou souřadnici políčka a vrátí x-vou souřadnici sousedního políčka v daném směru.double
nextX(int x, int distance)
Obdrží x-vou souřadnici políčka a vrátí x-vou souřadnici políčka vzdáleného v daném směru o zadanou vzdálenost.int
nextY(int y)
Obdrží y-vou souřadnici políčka a vrátí y-vou souřadnici sousedního políčka v daném směru.double
nextY(int y, int distance)
Obdrží x-vou souřadnici políčka a vrátí x-vou souřadnici políčka vzdáleného v daném směru o zadanou vzdálenost.int
ordinal4()
Vrátí index daného hlavního směru v rámci hlavních směrů.int
ordinalDistanceTo(Direction8 direction)
Vrátí rozdíl pořadových čísel zadaných směrů, který po přičtení k pořadovému číslu daného směru dá pořadové číslo zadaného parametru.static boolean
prohibitNowhere(boolean prohibit)
Nastaví, zda budou povoleny operace se směremNOWHERE
.Direction8
rightTurn()
Vrátí směr otočený o 90° vpravo.Direction8
turnBy(int eighths)
Vrátí směr otočený o zadaný počet osminek (45°) vlevo.Area
turnInArea(Area ref, Area inner)
Přepočítá rozměry zadané oblasti orientované na východ a umístěné v referenční oblasti na nové rozměry po otočení do tohoto směru.Area
turnInArea(Area ref, Area inner, Direction8 fromDirection)
Přepočítá relativní pozici a absolutní rozměry zadané oblasti a umístěné v referenční čtvercové oblasti orientované zadaným směrem na absolutní rozměry po otočení referenční oblasti do tohoto směru.Area
turnInAreaTo(Direction8 toDirection, Area ref, Area inner)
Přepočítá relativní pozici a absolutní rozměry zadané oblasti a umístěné v referenční čtvercové oblasti orientované na východ na absolutní rozměry po otočení referenční oblasti do tohoto směru.void
turnTo4(ITurnable4 turnable)
void
turnTo8(ITurnable8 turnable)
Zadaný otočný objekt natočený do některého směru otočí do svého směru.static Direction8
valueOf(java.lang.String name)
Returns the enum constant of this type with the specified name.static Direction8[]
values()
Returns an array containing the constants of this enum type, in the order they are declared.static Direction8[]
values4()
Vrátí vektor se čtyřmi hlavními světovými stranami.
-
Enum Constant Details
-
EAST
Východ = doprava. -
NORTH_EAST
Severovýchod = doprava nahoru. -
NORTH
Sever = nahoru. -
NORTH_WEST
Severozápad = doleva nahoru. -
WEST
Západ = doleva. -
SOUTH_WEST
Jihozápad = doleva nahoru. -
SOUTH
Jih = dolu. -
SOUTH_EAST
Jihovýchod = doprava dolu. -
NOWHERE
Žádný = nikam.
-
-
Field Details
-
NUM_DIRS
public static final int NUM_DIRSCelkový počet definovaných směrů.
-
-
Method Details
-
values
Returns an array containing the constants of this enum type, in the order they are declared.- Returns:
- an array containing the constants of this enum type, in the order they are declared
-
valueOf
Returns the enum constant of this type with the specified name. The string must match exactly an identifier used to declare an enum constant in this type. (Extraneous whitespace characters are not permitted.)- Parameters:
name
- the name of the enum constant to be returned.- Returns:
- the enum constant with the specified name
- Throws:
java.lang.IllegalArgumentException
- if this enum type has no constant with the specified namejava.lang.NullPointerException
- if the argument is null
-
get
Vrátí směr se zadaným názvem nebo zkratkou. Bohužel není možno pojmenovat tuto metoduvalueOf()
, protože takto nazvanou metodu definuje překladač v této třídě takže ji není možno přebít vlastní verzí.- Parameters:
name
- Název požadovaného směru nebo jeho zkratka; při zadávání nezáleží na velikosti písmen- Returns:
- Požadovaný směr
- Throws:
java.lang.IllegalArgumentException
- Neexistuje-li směr se zadaným názvem nebo zkratkou
-
get
Vrátí směr se zadaným indexem. Směry mají indexy přiřazené postupně podle výskytu směru při otáčení proti směru hodinových ručiček.EAST
má index 0,NORTH_EAST
1 a tak dále až poSOUTH_EAST
s indexem 7. Za index je však možno dosadit jakékoliv celé číslo, které se přepočte jako počet otoček o 45°. SměrNOWHERE
je při tomto přepočtu přeskakován.- Parameters:
index
- Index požadovaného směru- Returns:
- Požadovaný směr
-
cardinals
Vrátí neměnný seznam se čtyřmi hlavními světovými stranami.- Returns:
- Požadovaný seznam
-
values4
Vrátí vektor se čtyřmi hlavními světovými stranami.- Returns:
- Požadovaný vektor
-
prohibitNowhere
public static boolean prohibitNowhere(boolean prohibit)Nastaví, zda budou povoleny operace se směremNOWHERE
. Nejsou-li operace povoleny, vyhazují metody při použití tohoto směru výjimkuIllegalStateException
. Jsou-li operace povoleny, pak objekt natočený do směruNOWHERE
zůstává v tomto "směru" po jakémkoliv otočení a při jakémkoliv přesunu zůstává na místě.- Parameters:
prohibit
-true
mají-li se operace zakázat,false
mají-li se povolit- Returns:
- Původní nastavení tohoto příznaku
-
getShortcut
public java.lang.String getShortcut()Vrátí zkratku názvu daného směru.- Returns:
- Požadovaná zkratka
-
isCardinal
public boolean isCardinal()Vrátí informaci o tom, je-li daný směr jedním ze 4 hlavních směrů, tj. jedná-li se o jeden ze směrůEAST
,NORTH
,WEST
,SOUTH
.- Returns:
- Jedná-li se o hlavní směr, vrátí
true
, jinak vrátífalse
-
ordinal4
public int ordinal4()Vrátí index daného hlavního směru v rámci hlavních směrů.- Returns:
- Požadovaný index
-
nextPosition
Vrátí pozici sousedního políčka v daném směru.- Parameters:
position
- Pozice stávajícího políčka- Returns:
- Pozice sousedního políčka v daném směru
-
nextPosition
Vrátí pozici políčka vzdáleného v daném směru o zadanou vzdálenost.- Parameters:
position
- Pozice stávajícího políčkadistance
- Vzdálenost hledané pozice- Returns:
- Pozice políčka vzdáleného v daném směru o zadanou vzdálenost
-
nextX
public int nextX(int x)Obdrží x-vou souřadnici políčka a vrátí x-vou souřadnici sousedního políčka v daném směru.- Parameters:
x
- Obdržená x-ová souřadnice- Returns:
- x-ová souřadnice políčka po přesunu o jedno pole v daném směru
-
nextX
public double nextX(int x, int distance)Obdrží x-vou souřadnici políčka a vrátí x-vou souřadnici políčka vzdáleného v daném směru o zadanou vzdálenost.- Parameters:
x
- Obdržená x-ová souřadnicedistance
- Vzdálenost políčka v daném směru- Returns:
- x-ová souřadnice vzdáleného políčka
-
nextY
public int nextY(int y)Obdrží y-vou souřadnici políčka a vrátí y-vou souřadnici sousedního políčka v daném směru.- Parameters:
y
- Obdržená y-ová souřadnice- Returns:
- y-ová souřadnice sousedního políčka v daném směru
-
nextY
public double nextY(int y, int distance)Obdrží x-vou souřadnici políčka a vrátí x-vou souřadnici políčka vzdáleného v daném směru o zadanou vzdálenost.- Parameters:
y
- Obdržená y-ová souřadnicedistance
- Vzdálenost políčka v daném směru- Returns:
- y-ová souřadnice vzdáleného políčka
-
dx
public int dx()Vrátí změnu vodorovné souřadnice při přesunu na sousední pole v daném směru.- Returns:
- Změna x-ové souřadnice při přesunu o jedno pole v daném směru
-
dy
public int dy()Vrátí změnu svislé souřadnice při přesunu na sousední pole v daném směru.- Returns:
- Změna y-ové souřadnice při přesunu o jedno pole v daném směru
-
leftTurn
Vrátí směr otočený o 90° vlevo.- Returns:
- Směr objektu po vyplnění příkazu vlevo v bok
-
rightTurn
Vrátí směr otočený o 90° vpravo.- Returns:
- Směr objektu po vyplnění příkazu vpravo v bok
-
aboutTurn
Vrátí směr otočený o 180°.- Returns:
- Směr objektu po vyplnění příkazu čelem vzad.
-
halfLeft
Vrátí směr otočený o 45° vlevo.- Returns:
- Směr objektu po vyplnění příkazu nalevo vpříč.
-
halfRight
Vrátí směr otočený o 45° vpravo.- Returns:
- Směr objektu po vyplnění příkazu napravo vpříč.
-
ordinalDistanceTo
Vrátí rozdíl pořadových čísel zadaných směrů, který po přičtení k pořadovému číslu daného směru dá pořadové číslo zadaného parametru.- Parameters:
direction
- Směr, vůči němuž číslo daného směru přepočítáváme- Returns:
- Rozdíl pořadových čísel zadaných směrů.
-
turnInArea
Přepočítá rozměry zadané oblasti orientované na východ a umístěné v referenční oblasti na nové rozměry po otočení do tohoto směru.- Parameters:
ref
- Referenční oblast, v níž je otáčená oblast umístěna a vůči níž jsou udávány výchozí souřadnice. V této otočené oblasti má být oblast umístěna po otočení. Přitom se předpokládá, že souřadnice referenční oblasti se otočením nezmění. V tomto ohledu je ideální referenční oblast čtvercová.inner
- Oblast, jejíž rozměry přepočítáváme a jejíž souřadnice jsou RELATIVNÍ vůči referenční oblasti- Returns:
- Oblast s novými parametry reprezentujícími původní oblast ¨ po otočení do zadaného směru; její souřadnice jsou udávány jako absolutní
-
turnInArea
Přepočítá relativní pozici a absolutní rozměry zadané oblasti a umístěné v referenční čtvercové oblasti orientované zadaným směrem na absolutní rozměry po otočení referenční oblasti do tohoto směru.- Parameters:
ref
- Referenční oblast, v níž je otáčená oblast umístěna a vůči níž jsou udávány výchozí relativní souřadnice. V této otočené oblasti má být oblast umístěna po otočení. Přitom se předpokládá, že souřadnice referenční oblasti se otočením nezmění.inner
- Oblast, jejíž rozměry přepočítáváme a jejíž souřadnice jsou RELATIVNÍ vůči referenční oblastifromDirection
- Směr, do nějž je objekt natočen nyní- Returns:
- Oblast s novými parametry reprezentujícími původní oblast ¨ po otočení referenční oblasti do zadaného směru; nové souřadnice jsou udávány jako absolutní
-
turnInAreaTo
Přepočítá relativní pozici a absolutní rozměry zadané oblasti a umístěné v referenční čtvercové oblasti orientované na východ na absolutní rozměry po otočení referenční oblasti do tohoto směru.- Parameters:
toDirection
- Směr, do nějž se má objekt natočitref
- Referenční oblast, v níž je otáčená oblast umístěna a vůči níž jsou udávány výchozí relativní souřadnice. V této otočené oblasti má být oblast umístěna po otočení. Přitom se předpokládá, že souřadnice referenční oblasti se otočením nezmění.inner
- Oblast, jejíž rozměry přepočítáváme a jejíž souřadnice jsou RELATIVNÍ vůči referenční oblasti- Returns:
- Oblast s novými parametry reprezentujícími původní oblast ¨ po otočení referenční oblasti do zadaného směru; nové souřadnice jsou udávány jako absolutní
-
turnTo4
Zadaný otočný objekt natočený do některého hlavního směru otočí do svého směru, který musí být také hlavním směrem, tj. jedním ze směrůEAST
,NORTH
,WEST
,SOUTH
.- Parameters:
turnable
- Otáčený objekt- Throws:
java.lang.IllegalStateException
- Není-li zadaný objekt otočen do některé ze čtyř hlavních světových stran nebo jej nechceme otočit do některé ze čtyř hlavních světových stran
-
turnTo8
Zadaný otočný objekt natočený do některého směru otočí do svého směru.- Parameters:
turnable
- Otáčený objekt
-
turnBy
Vrátí směr otočený o zadaný počet osminek (45°) vlevo.- Parameters:
eighths
- Počet osminek, o něž se má směr otočit, přičemž záporný počet označuje otočku vpravo- Returns:
- Směr objektu po vyplnění příkazu
-