Obsah

AgentModel.java

Typ: public

Implementované rozhrania:
sk.fiit.jim.agent.parsing.ParsedDataObserver
java.io.Serializable

Konštanty:
AgentModel instance

Premenné:
double rotationX - Natočenie agenta v závislosti od x-ovej osi
double rotationY - Natočenie agenta v závislosti od y-ovej osi
double rotationZ - Natočenie agenta v závislosti od z-ovej osi
Vector3D position - Pozícia agenta na ihrisku
List<PositionHistory> positionHistory - história pozícií agenta

Trieda uchováva informácie o aktuálnom stave agenta.

processNewServerMessage

Typ: public

Parametre:
ParsedData data - Informácie získané zo servera

Spracovanie informácií prijatých zo servera:

  1. ID hráča
  2. Na ktorej strane hrá agent
  3. Bola vykonaná zmena strán alebo polčas
  4. Vymazanie histórie polohy, ak bola splnená príslušná podmienka
  5. Aktualizovanie nastavenia otočných kĺbov (updateJointPosition)
  6. Nastavenie natočenia agenta z dát z gyroskopu (adjustRotationFor)
  7. Aktualizovanie natočenia agenta na základe videných bodov (updateRotation a volanie AgentRotationCalculator.updateRotations)
  8. Aktualizovanie polohy na základe videných bodov (updatePosition a volanie AgentPositionCalculator.updatePosition)
  9. Výpočty pre ZMP (Zero moment point)
  10. Kedy naposledy bol videný kontrolný bod.
  11. Aktualizovanie histórie polohy agenta

extendHistory

Typ: private

Návratová hodnota: boolean

Parametre:
Vector3D gyroscope - Informácia z gyroskopu

Vráti hodnotu true, ak agent videl nejaké objekty (čiary a/alebo kontrolné body) a zároveň nespadol / nevstáva.
Funkcia sa volá 2x v každej iterácii:

1. Keď sa má vypočítavať poloha agenta
- ak agent padol / vstáva, nie je potrebné vykonávať aktualizáciu polohy agenta (je naklonený, nevidí dobre objekty, výpočet polohy aj tak bude zlý),
-a ak agent nevidí žiaden objekt, nie je možné určiť polohu agenta
2. Keď sa rozhoduje o pridaní nového prvku do histórie polohy agenta (ak prebehla).
- ak funkcia vráti hodnotu true – pridá sa nový prvok do histórie
- inak sa aktualizuje accDistance z posledného záznamu v histórii

adjustRotationsFor

Typ: private

Parametre:
Vector3D gyroscope - Informácia z gyroskopu

Aktualizuje natočenie agenta na základe informácií z gyroskopu.

deleteHistory

Typ: private

Parametre:
ParsedData data

Vymazanie histórie sa vykoná, ak stav/mód hry (prijatý zo servera) nie je:

updateHistory

Typ: private

Parametre:
ParsedData data

Aktualizovanie histórie,


Pozi aj: Analýza modelu sveta