Hlavná stránka | Zoznam tried | Zoznam súborov | Zoznam členov tried

stolicka.h

00001 //---------------------------------------------------------------------------
00002 
00003 #ifndef stolickaH
00004 #define stolickaH
00005 
00006 //#include <math.h>
00007 #include "strom.h"
00008 #include "konvex.h"
00009 //---------------------------------------------------------------------------
00010 
00014 class stolicka
00015 {
00016  public:
00020   int cislo;
00021 
00025   hodnoty_fitness hodn_fit;  //hodnoty fitness za jednotlive kriteria
00026 
00030   nastavenie_fitness nast;   //navod, ako sa ma vyhodnocovat fitness funkcia tejto stolicky
00031 
00035   bool stol;                 //ci ma byt navrchu polozena doska ako na stole
00036 
00037  private:
00041   float fit;        //fitness
00042 
00043   //asi nanic
00044   float stabilita;  //relativna stabilita stolicky
00045 
00046  public:
00050   strom *posuny;
00051 
00055   float mox,moz;      //maximalna absolutna suradnica v smere osi x, z
00056 
00060   float maxy;         //maximalna  y-ova suradnica v stolicke (najvyssi bod stolicky)
00061 
00065   float miny;         //minimalnay-ova suradnica stolicky (najnizsi bod stolicky)
00066 
00070   float minz,maxz;
00071 
00075   bool symetria;    //ci ma byt stolicka symetricka (zrkadlovo podla roviny z-x)
00076 
00080   bool symetria4;   //symetria podla roviny x-z a x-y
00081 
00085   int pocet_useciek;  //pocet useciek v stolicke
00086 
00087  private:
00091   int pocet_bodov;    //pocet bodov celej stolicky
00092 
00096   bod maxy_bod;       //najvyssi bod stolicky
00097 
00098  public:
00102   bod utvary[100][30];     //suradnice jedneho utvaru, t.j. jednej plochy alebo jednej ciary
00103 
00107   int dlzky[100];          //dlzky zaznamov v poli utvary, ak je dlzky[i]<100, tak je to ciara
00108                            //                              ak je dlzky[i]>100, tak je to rovina v dlzke dlzky[i]-100
00109  public:
00113   bod opor_body[100];      //oporne body - body, ktore su na zemi
00114 
00118   int sedatka[100];        //index do pola utvary na riadky, v ktorych sa nachadza rovina, ktora je sedatkom
00119 
00123   int pocet_sedatok;       //pocet prvkov v poli sedatka;
00124 
00125  public:
00129   int  pocmin;   //pocet opornych bodov = pocet bodov, ktore nie su vyssie ako 1 od najnizsieho bodu
00130 
00131  private:
00135   bod zaciatok;
00136   
00137  public:
00142   stolicka(int uhol);                     //vyrobi prazdnu stolicku
00143 
00152   stolicka(nastavenie_fitness n, bool sym, bool sym4, bool doska);
00153 
00158   ~stolicka();
00159 
00160  public:
00166   bod tazisko();               //tazisko celej stolicky
00167 
00173   bod tazisko_roviny(int x);   //tazisko roviny v utvary[x]
00174 
00180   bod tazisko_opor_bodov();    //aritmeticky stred (priemer) opornych bodov
00181 
00185   void vyrataj_body();
00186 
00192   void najdi_sedatka();
00193 
00200   float fitness_za_sedatka();
00201 
00207   void zniz_body();            //znizi 3(2) najnizise body na uroven najnizsieho z nich
00208 
00214   void urob_symetriu();        //urobi stolicku symetrickou
00215 
00221   void urob_4symetriu();       //urobi stolicku 4symetrickou
00222   
00223  public:
00227   void mutuj();
00228 
00233   float fitness();
00234 
00239   prvok* daj_na_krizenie();
00240 
00245   void pridaj_pri_krizeni(prvok *uk);
00246 
00251   bool je_sedatko();
00252 
00257   bool stabilna();
00258 
00263   stolicka* zduplikuj_sa();
00264 
00268   void vyrataj_oporne_body();
00269 
00275   int length();
00276 
00281   void uloz_do_suboru(AnsiString filename);
00282   
00287   void nacitaj_zo_suboru(AnsiString filename);
00288 
00292   void napln_nahodne();
00293 
00299   bool plocha_je_sedatko(int x);
00300 
00301 };
00302 
00309 float vzdialenost_bodov_bez_y(bod b1, bod b2);
00310 
00317 float vzdialenost_bodov(bod b1, bod b2);
00318     //dlazka je rovina x-z!!!
00319 #endif
00320 

Generované Thu May 6 10:44:22 2004 programom doxygen 1.3.6