public class Roj.Smerník extends Object
Pomocná trieda na riadené vkladanie bodov do roja. Smerník je jednoduchá neviditeľná pomôcka na generovanie (pridávanie) bodov roja. Smerník je orientovaný kurzor umožňujúci pridávanie bodov na svojej pozícii. Dá sa presúvať, otáčať, orientovať smerom na zadaný bod, uchovávať (zálohovať) a obnovovať svoju polohu a orientáciu s použitím vnútorných zásobníkov a podobne.
| Modifikátor a typ | Atribút a opis | 
|---|---|
| boolean | vkladajObjektyPríznak toho, či nové vkladané body majú mať viditeľné
 objekty – či majú byť objekty definované na ich polohe kreslené. | 
| boolean | vkladajSpojePríznak toho, či nové vkladané body majú mať viditeľné
 (definované) spoje. | 
| Konštruktor a opis | 
|---|
| Smerník() | 
| Modifikátor a typ | Metóda a opis | 
|---|---|
| double[] | dajPolohu()Vráti vrchol zásobníka polôh smerníka vo forme trojprvkového
 poľa [x, y, z]. | 
| double[] | dajSmer()Vráti vrchol zásobníka smerov smerníka vo forme trojprvkového
 poľa [Δx, Δy, Δz]. | 
| double[] | dajStav()Vráti vrchol zásobníka stavov smerníka vo forme šesťprvkového
 poľa [x, y, z, Δx, Δy, Δz]. | 
| boolean | obnov()Vyberie (obnoví) z vnútorného zásobníka stavu smerníka
 poslednú uloženú polohu aj smer. | 
| boolean | obnovPolohu()Vyberie (obnoví) z vnútorného zásobníka polôh smerníka poslednú
 uloženú polohu. | 
| boolean | obnovSmer()Vyberie (obnoví) z vnútorného zásobníka smerov smerníka posledný
 uložený smer. | 
| void | otoc(double uhol) Alias pre otoč. | 
| void | otoc(double[] uhly) Alias pre otoč. | 
| void | otoc(double Δα,
    double Δβ,
    double Δγ) Alias pre otoč. | 
| void | otoc(double u,
    double v,
    double w,
    double Θ) Alias pre otoč. | 
| void | otocOkolo(double uhol) Alias pre otočOkolo. | 
| void | otocOkolo(double a,
         double b,
         double c,
         double u,
         double v,
         double w,
         double Θ,
         boolean î) Alias pre otočOkolo. | 
| void | otoč(double uhol)Pootočí smerník (zmení jeho orientáciu) o zadaný uhol okolo
 osi prechádzajúcej stredom súradnicovej sústavy a smerujúcej
 k poslednému uloženému smeru smerníka. | 
| void | otoč(double[] uhly)Pootočí smerník o uhly v smere osí x, y a z zadané vo forme
 poľa. | 
| void | otoč(double Δα,
    double Δβ,
    double Δγ)Pootočí smerník (zmení orientáciu) o zadané uhly v smere osí x,
 y a z. | 
| void | otoč(double u,
    double v,
    double w,
    double Θ)Pootočí smerník (zmení jeho orientáciu) o uhol Θ okolo osi
 prechádzajúcej stredom súradnicovej sústavy ( | 
| void | otočOkolo(double uhol)Zmení polohu smerníka (orientácia zostane zachovaná) jeho
 pootočením o zadaný uhol okolo osi určenej posledným uloženým stavom smerníka (pri ukladaní stavu
 je uchovaná poloha aj smer smerníka, takže na jednoznačné určenie
 osi rotácie je k dispozícii dostatočné množstvo údajov). | 
| void | otočOkolo(double a,
         double b,
         double c,
         double u,
         double v,
         double w,
         double Θ,
         boolean î)Zmení polohu smerníka (orientácia zostane zachovaná) jeho
 pootočením o uhol Θ okolo osi prechádzajúcej bodom [a, b, c]
 a smerujúcej buď k bodu [u, v, w] (ak je parameter  îrovnýfalse), alebo orientovanej v smere jednotkového
 vektora ⟨u, v, w⟩ (ak je parameterîrovnýtrue). | 
| double[] | poloha()Vráti aktuálnu polohu smerníka vo forme trojprvkového
 poľa [x, y, z]. | 
| void | poloha(double[] bod)Presunie smerník na súradnice zadané vo forme trojprvkového
 poľa. | 
| void | poloha(double x,
      double y,
      double z)Presunie smerník na zadané súradnice. | 
| void | posun(double dĺžka) Alias pre posuň. | 
| void | posuň(double dĺžka)Posunie smerník o zadanú dĺžku v aktuálnom smere (jeho
 orientácie). | 
| void | posun(double[] bod) Alias pre posuň. | 
| void | posuň(double[] bod)Posunie smerník o zadaný rozdiel súradníc zadaný vo forme
 trojprvkového poľa. | 
| void | posun(double Δx,
     double Δy,
     double Δz) Alias pre posuň. | 
| void | posuň(double Δx,
     double Δy,
     double Δz)Posunie smerník o zadaný rozdiel súradníc. | 
| Roj.Bod | pridajBod()Vloží do roja bod na aktuálnej polohe smerníka s nastavenými
 príznakmi kreslenia spoja a objektu na základe hodnôt príznakov
 smerníka vkladajSpoje a vkladajObjekty. | 
| double[] | smer()Vráti aktuálny „smer“ (jednotkový vektor pohybu) smerníka vo
 forme trojprvkového poľa [Δx, Δy, Δz]. | 
| void | smer(double[] vektor)Nastaví „smer“ (jednotkový vektor pohybu) smerníka podľa
 zadaných súradníc smerového vektora. | 
| void | smer(double x,
    double y,
    double z)Nastaví „smer“ (jednotkový vektor pohybu) smerníka podľa zadaných
 súradníc smerového vektora. | 
| void | smerNa(double x,
      double y,
      double z)Nastaví orientáciu smerníka tak, aby smeroval k zadanému
 bodu. | 
| int | vymaz() Alias pre vymaž. | 
| int | vymaz(int koľko) Alias pre vymaž. | 
| int | vymazPolohu() Alias pre vymažPolohu. | 
| int | vymazPolohy(int koľko) Alias pre vymažPolohy. | 
| int | vymazSmer() Alias pre vymažSmer. | 
| int | vymazSmery(int koľko) Alias pre vymažSmery. | 
| int | vymaž()Odstráni posledný záznam zo zásobníka stavov smerníka. | 
| int | vymaž(int koľko)Odstráni z vnútorného zásobníka stavov smerníka zadaný počet
 posledných záznamov. | 
| int | vymažPolohu()Odstráni posledný záznam zo zásobníka polôh smerníka. | 
| int | vymažPolohy(int koľko)Odstráni z vnútorného zásobníka polôh smerníka zadaný počet
 posledných záznamov. | 
| int | vymažSmer()Odstráni posledný záznam zo zásobníka smerov smerníka. | 
| int | vymažSmery(int koľko)Odstráni z vnútorného zásobníka smerov smerníka zadaný počet
 posledných záznamov. | 
| int | vyprazdni() Alias pre vyprázdni. | 
| int | vyprázdni()Vyprázdni vnútorný zásobník stavov smerníka. | 
| int | vyprazdniPolohy() Alias pre vyprázdniPolohy. | 
| int | vyprázdniPolohy()Vyprázdni vnútorný zásobník polôh smerníka. | 
| int | vyprazdniSmery() Alias pre vyprázdniSmery. | 
| int | vyprázdniSmery()Vyprázdni vnútorný zásobník smerov smerníka. | 
| int[] | vyprazdniVsetko() Alias pre vyprázdniVšetko. | 
| int[] | vyprázdniVšetko()Vyprázdni všetky vnútorné zásobníky smerníka. | 
| boolean | zalohuj() Alias pre zálohuj. | 
| boolean | zálohuj()Vloží do vnútorného zásobníka stavu smerníka jeho aktuálnu
 polohu aj smer. | 
| boolean | zalohujPolohu() Alias pre zálohujPolohu. | 
| boolean | zálohujPolohu()Vloží do vnútorného zásobníka polôh smerníka jeho aktuálnu
 polohu. | 
| boolean | zalohujSmer() Alias pre zálohujSmer. | 
| boolean | zálohujSmer()Vloží do vnútorného zásobníka smerov smerníka jeho aktuálny smer. | 
public boolean vkladajSpoje
Príznak toho, či nové vkladané body majú mať viditeľné (definované) spoje.
public boolean vkladajObjekty
Príznak toho, či nové vkladané body majú mať viditeľné objekty – či majú byť objekty definované na ich polohe kreslené.
public double[] poloha()
Vráti aktuálnu polohu smerníka vo forme trojprvkového poľa [x, y, z].
public void poloha(double x,
                   double y,
                   double z)
Presunie smerník na zadané súradnice.
x – x-ová súradnica novej polohyy – y-ová súradnica novej polohyz – z-ová súradnica novej polohypublic void poloha(double[] bod)
Presunie smerník na súradnice zadané vo forme trojprvkového poľa. (Ak má pole menší počet prvkov, poloha nebude nastavená. Pri väčšom počte prvkov sú brané do úvahy len prvé tri.)
bod – najmenej trojprvkové pole súradníc novej polohypublic void posuň(double Δx,
                  double Δy,
                  double Δz)
Posunie smerník o zadaný rozdiel súradníc.
Δx – prírastok x-ovej súradniceΔy – prírastok y-ovej súradniceΔz – prírastok z-ovej súradnicepublic void posun(double Δx,
                  double Δy,
                  double Δz)
 Alias pre
 Alias pre posuň.
public void posuň(double[] bod)
Posunie smerník o zadaný rozdiel súradníc zadaný vo forme trojprvkového poľa. (Ak má pole menší počet prvkov, poloha nebude upravená. Pri väčšom počte prvkov sú brané do úvahy len prvé tri.)
bod – najmenej trojprvkové pole prírastkov súradníc polohypublic void posun(double[] bod)
 Alias pre
 Alias pre posuň.
public void posuň(double dĺžka)
Posunie smerník o zadanú dĺžku v aktuálnom smere (jeho orientácie).
dĺžka – dĺžka, o ktorú sa má smerník posunúť v aktuálnom
     smere jednotkového vektorapublic void posun(double dĺžka)
 Alias pre
 Alias pre posuň.
public double[] smer()
Vráti aktuálny „smer“ (jednotkový vektor pohybu) smerníka vo forme trojprvkového poľa [Δx, Δy, Δz].
public void smer(double x,
                 double y,
                 double z)
Nastaví „smer“ (jednotkový vektor pohybu) smerníka podľa zadaných súradníc smerového vektora. Súradnice nemusia byť normalizované, metóda ich normalizuje.
x – x-ová súradnica smerového vektoray – y-ová súradnica smerového vektoraz – z-ová súradnica smerového vektorapublic void smer(double[] vektor)
Nastaví „smer“ (jednotkový vektor pohybu) smerníka podľa zadaných súradníc smerového vektora. Súradnice nemusia byť normalizované, metóda ich normalizuje.
vektor – najmenej trojprvkové pole súradníc smerového vektorapublic void otoč(double Δα,
                 double Δβ,
                 double Δγ)
Pootočí smerník (zmení orientáciu) o zadané uhly v smere osí x, y a z. Ide o pootočenie jednotkového vektora pohybu, takže aj keď je výpočtovo stred otáčania v strede súradnicovej sústavy, výsledný praktický efekt pootočenia vektora je zmena orientácie smerníka, ktorý sa od tohto momentu bude pohybovať zmeneným smerom.
Poznámka: Transformácia pootočenia je zložená z troch samostatných transformácií rotácie okolo jednotlivých osí súradnicovej sústavy. Skladanie transformácií nie je komutatívne, takže výsledok rotácie nie je intuitívny a môže sa líšiť od (intuitívne) predpokladaného stavu.
Δα – hodnota zmeny uhla v smere osi xΔβ – hodnota zmeny uhla v smere osi yΔγ – hodnota zmeny uhla v smere osi zpublic void otoc(double Δα,
                 double Δβ,
                 double Δγ)
 Alias pre
 Alias pre otoč.
public void otoč(double[] uhly)
Pootočí smerník o uhly v smere osí x, y a z zadané vo forme
 poľa. Ak pole obsahuje aspoň tri prvky, tak sa metóda správa
 rovnako ako metóda otoč(Δα, Δβ,
 Δγ), ktorej boli poslané tri uhly z prvých troch prvkov poľa. Ak
 pole obsahuje len dva prvky, tak je to ekvivalentné volaniu metódy
 otoč(Δα, Δβ, 0.0), kde sú do
 prvých dvoch parametrov vložené dva prvky poľa a podobne pri
 jednoprvkovom poli ide o volanie ekvivalentné vykonaniu otoč(Δα, 0.0, 0.0).
Poznámka: Transformácia pootočenia je zložená z troch samostatných transformácií rotácie okolo jednotlivých osí súradnicovej sústavy. Skladanie transformácií nie je komutatívne, takže výsledok rotácie nie je intuitívny a môže sa líšiť od (intuitívne) predpokladaného stavu.
uhly – najmenej trojprvkové pole uhlov rotácie okolo osí
     x, y a zpublic void otoc(double[] uhly)
 Alias pre
 Alias pre otoč.
public void otoč(double u,
                 double v,
                 double w,
                 double Θ)
Pootočí smerník (zmení jeho orientáciu) o uhol Θ okolo osi
 prechádzajúcej stredom súradnicovej sústavy (
u – x-ová súradnica smerového vektora určujúceho os rotáciev – y-ová súradnica smerového vektora určujúceho os rotáciew – z-ová súradnica smerového vektora určujúceho os rotácieΘ – uhol rotácie smerníkaotoč(double)public void otoc(double u,
                 double v,
                 double w,
                 double Θ)
 Alias pre
 Alias pre otoč.
public void otoč(double uhol)
Pootočí smerník (zmení jeho orientáciu) o zadaný uhol okolo osi prechádzajúcej stredom súradnicovej sústavy a smerujúcej k poslednému uloženému smeru smerníka. Ak je zásobník smerov prázdny, tak metóda nevykoná nič.
(Pozri aj informácie v metóde otoč(u, v, w, Θ).)
uhol – uhol pootočenia smerníka okolo osi prechádzajúcej
     stredom súradnicovej sústavy a smerujúcej podľa orientácie
     prevzatej z vrchola zásobníka smerovotoč(double, double, double, double)public void otoc(double uhol)
 Alias pre
 Alias pre otoč.
public void otočOkolo(double a,
                      double b,
                      double c,
                      double u,
                      double v,
                      double w,
                      double Θ,
                      boolean î)
Zmení polohu smerníka (orientácia zostane zachovaná) jeho
 pootočením o uhol Θ okolo osi prechádzajúcej bodom [a, b, c]
 a smerujúcej buď k bodu [u, v, w] (ak je parameter î
 rovný false), alebo orientovanej v smere jednotkového
 vektora ⟨u, v, w⟩ (ak je parameter î rovný true).
Pozor! Ak je parameter î
 rovný true, tak hodnoty parametrov u, v a w
 musia(!) obsahovať normalizované
 súradnice (súradnice jednotkového vektora), inak bude výsledok
 nesprávny!
a – x-ová súradnica bodu, ktorým prechádza os rotácieb – y-ová súradnica bodu, ktorým prechádza os rotáciec – z-ová súradnica bodu, ktorým prechádza os rotácieu – x-ová súradnica bodu alebo vektora určujúceho smer
     osi rotáciev – y-ová súradnica bodu alebo vektora určujúceho smer
     osi rotáciew – z-ová súradnica bodu alebo vektora určujúceho smer
     osi rotácieΘ – uhol rotácie smerníkaî – rozlišovací parameter toho, či parametre u, v a w určuje
     bod, do ktorého má os rotácie smerovať (hodnota false), alebo jednotkový vektor (hodnota true)otočOkolo(double)public void otocOkolo(double a,
                      double b,
                      double c,
                      double u,
                      double v,
                      double w,
                      double Θ,
                      boolean î)
 Alias pre
 Alias pre otočOkolo.
public void otočOkolo(double uhol)
Zmení polohu smerníka (orientácia zostane zachovaná) jeho pootočením o zadaný uhol okolo osi určenej posledným uloženým stavom smerníka (pri ukladaní stavu je uchovaná poloha aj smer smerníka, takže na jednoznačné určenie osi rotácie je k dispozícii dostatočné množstvo údajov). Ak je zásobník stavov prázdny, tak metóda nevykoná nič.
(Pozri aj informácie v metóde otočOkolo(a, b, c, u, v, w, Θ, î).)
uhol – uhol pootočenia smerníka okolo osi prevzatej
     z vrchola zásobníka stavovotočOkolo(double, double, double, double, double,
     double, double, boolean)public void otocOkolo(double uhol)
 Alias pre
 Alias pre otočOkolo.
public void smerNa(double x,
                   double y,
                   double z)
Nastaví orientáciu smerníka tak, aby smeroval k zadanému bodu.
x – x-ová súradnica cieľového boduy – y-ová súradnica cieľového boduz – z-ová súradnica cieľového bodupublic boolean zálohuj()
Vloží do vnútorného zásobníka stavu smerníka jeho aktuálnu
 polohu aj smer. (Ak metóda uspeje, tak vráti true.)
true pri úspechu; false v opačnom
     prípadepublic boolean zalohuj()
 Alias pre
 Alias pre zálohuj.
public boolean obnov()
Vyberie (obnoví) z vnútorného zásobníka stavu smerníka
 poslednú uloženú polohu aj smer. (Ak metóda uspeje, tak vráti
 true.)
true pri úspechu; false v opačnom
     prípadepublic double[] dajStav()
Vráti vrchol zásobníka stavov smerníka vo forme šesťprvkového
 poľa [x, y, z, Δx, Δy, Δz]. Ak je zásobník prázdny alebo nastane
 iné zlyhanie, tak metóda vráti hodnotu null. Zásobník
 zostane nezmenený.
null, ak je zásobník prázdnypublic int vyprázdni()
Vyprázdni vnútorný zásobník stavov smerníka. Metóda vráti počet záznamov odstránených zo zásobníka. Ak vznikne iné zlyhanie, tak metóda vráti −1.
public int vyprazdni()
 Alias pre
 Alias pre vyprázdni.
public int vymaž()
Odstráni posledný záznam zo zásobníka stavov smerníka.
 (Porovnaj s metódou vyprázdni.) Metóda
 vráti počet záznamov odstránených zo zásobníka. Ak vznikne iné
 zlyhanie, tak metóda vráti −1.
public int vymaz()
 Alias pre
 Alias pre vymaž.
public int vymaž(int koľko)
Odstráni z vnútorného zásobníka stavov smerníka zadaný počet posledných záznamov. Metóda vráti počet záznamov odstránených zo zásobníka. Ak vznikne iné zlyhanie, tak metóda vráti −1.
koľko – požadovaný počet záznamov, ktoré majú byť odstránenépublic int vymaz(int koľko)
 Alias pre
 Alias pre vymaž.
public boolean zálohujPolohu()
Vloží do vnútorného zásobníka polôh smerníka jeho aktuálnu
 polohu. (Ak metóda uspeje, tak vráti true.)
true pri úspechu; false v opačnom
     prípadepublic boolean zalohujPolohu()
 Alias pre
 Alias pre zálohujPolohu.
public boolean obnovPolohu()
Vyberie (obnoví) z vnútorného zásobníka polôh smerníka poslednú
 uloženú polohu. (Ak metóda uspeje, tak vráti true.)
true pri úspechu; false v opačnom
     prípadepublic double[] dajPolohu()
Vráti vrchol zásobníka polôh smerníka vo forme trojprvkového
 poľa [x, y, z]. Ak je zásobník prázdny alebo nastane iné zlyhanie,
 tak metóda vráti hodnotu null. Zásobník zostane
 nezmenený.
public int vyprázdniPolohy()
Vyprázdni vnútorný zásobník polôh smerníka. Metóda vráti počet záznamov odstránených zo zásobníka. Ak vznikne iné zlyhanie, tak metóda vráti −1.
public int vyprazdniPolohy()
 Alias pre
 Alias pre vyprázdniPolohy.
public int vymažPolohu()
Odstráni posledný záznam zo zásobníka polôh smerníka. (Porovnaj
 s metódou vyprázdniPolohy.) Metóda
 vráti počet záznamov odstránených zo zásobníka. Ak vznikne iné
 zlyhanie, tak metóda vráti −1.
public int vymazPolohu()
 Alias pre
 Alias pre vymažPolohu.
public int vymažPolohy(int koľko)
Odstráni z vnútorného zásobníka polôh smerníka zadaný počet posledných záznamov. Metóda vráti počet záznamov odstránených zo zásobníka. Ak vznikne iné zlyhanie, tak metóda vráti −1.
koľko – požadovaný počet záznamov, ktoré majú byť odstránenépublic int vymazPolohy(int koľko)
 Alias pre
 Alias pre vymažPolohy.
public boolean zálohujSmer()
Vloží do vnútorného zásobníka smerov smerníka jeho aktuálny smer.
 (Ak metóda uspeje, tak vráti true.)
true pri úspechu; false v opačnom
     prípadepublic boolean zalohujSmer()
 Alias pre
 Alias pre zálohujSmer.
public boolean obnovSmer()
Vyberie (obnoví) z vnútorného zásobníka smerov smerníka posledný
 uložený smer. (Ak metóda uspeje, tak vráti true.)
true pri úspechu; false v opačnom
     prípadepublic double[] dajSmer()
Vráti vrchol zásobníka smerov smerníka vo forme trojprvkového
 poľa [Δx, Δy, Δz]. Ak je zásobník prázdny alebo nastane iné
 zlyhanie, tak metóda vráti hodnotu null. Zásobník
 zostane nezmenený.
public int vyprázdniSmery()
Vyprázdni vnútorný zásobník smerov smerníka. Metóda vráti počet záznamov odstránených zo zásobníka. Ak vznikne iné zlyhanie, tak metóda vráti −1.
public int vyprazdniSmery()
 Alias pre
 Alias pre vyprázdniSmery.
public int vymažSmer()
Odstráni posledný záznam zo zásobníka smerov smerníka. (Porovnaj
 s metódou vyprázdniSmery.) Metóda
 vráti počet záznamov odstránených zo zásobníka. Ak vznikne iné
 zlyhanie, tak metóda vráti −1.
public int vymazSmer()
 Alias pre
 Alias pre vymažSmer.
public int vymažSmery(int koľko)
Odstráni z vnútorného zásobníka smerov smerníka zadaný počet posledných záznamov. Metóda vráti počet záznamov odstránených zo zásobníka. Ak vznikne iné zlyhanie, tak metóda vráti −1.
koľko – požadovaný počet záznamov, ktoré majú byť odstránenépublic int vymazSmery(int koľko)
 Alias pre
 Alias pre vymažSmery.
public int[] vyprázdniVšetko()
Vyprázdni všetky vnútorné zásobníky smerníka. Metóda vráti trojprvkové pole, ktoré bude obsahovať, koľko záznamov bolo odstránených zo zásobníka stavov, polôh a smerov. Hodnota −1 niektorého z prvkov znamená, že vyprázdňovanie konkrétneho zásobníka zlyhalo.
public int[] vyprazdniVsetko()
 Alias pre
 Alias pre vyprázdniVšetko.
public Roj.Bod pridajBod()
Vloží do roja bod na aktuálnej polohe smerníka s nastavenými príznakmi kreslenia spoja a objektu na základe hodnôt príznakov smerníka vkladajSpoje a vkladajObjekty. Nový bod je návratovou hodnotou tejto metódy.