[QGHG-it-dev-list] Zadatak 8 - ucitavanje kompleksa iz fajla

Marko Vojinovic vmarko at ipb.ac.rs
Sun Nov 20 03:53:05 CET 2022


Pozdrav Dusane,

Hvala za I/O kod, pogledacu danas ili sutra kako izgleda i kako radi, kao i komentare i nedoumice koje su ti ostale, pa cu ti javiti komentare.

Sto se tice cmake, svakako, to treba da uradimo, i bas sada je pravi trenutak za to --- naime, uskoro treba da pocnemo da ugradjujemo nasu biblioteku rutina u gui koji je Jaroslav napravio u Qt-u. Ono sto bih ja zeleo da cmake uradi je sledece:

  * Da obezbedi kompajliranje staticke biblioteke rutina (pod Linux-om se standardno zove triangulator-library.a, pod Windows-om ce mozda da se zove triangulator-library.dll ili vec kakogod), sa smislom onoga sto je uradjeno "peske" u build-script.sh, ali naravno tako da se kompajliranje izvrsi automatski, i to na lokalnoj masini/arhitekturi/operativnom sistemu kao target-sistemu.

  * Da obezbedi kompajliranje gui-ja, takodje na lokalnom target-sistemu, tako da staticka biblioteka (kreirana u prethodnom koraku) bude ulinkovana za izvrsni fajl gui-ja. Inace, posto je gui napravljen u Qt-u, meni qtcreator omogucava da vidim Makefile koji on automatski generise i kojim kompajlira gui, a pretpostavljam da Visual Studio takodje radi nesto slicno, pa mozda to moze da ti pomogne za cmake za gui.

Imaj u vidu da ja ne znam ama bas nista o cmake, osim da je to alatka koja treba da omoguci da se ceo proces kompajliranja ucini dovoljno automatskim tako da ne moram da brinem o detaljima operativnog sistema, putanjama za include-fajlove, da li radim u qtcreator-u ili u VS-u, itdisl. Tako da bi bilo veoma dobro da implementiras cmake za nas projekt, i da celu stvar vrlo detaljno iskomentarises, da mi ostali mozemo citajuci to da naucimo sta tu kako treba da radi. :-)

Dakle samo napred, vrlo me zanima kako cmake moze da se primeni na nas projekt.

:-)
Marko


Dr. Marko Vojinovic
Group for Gravitation, Particles and Fields
Institute of Physics
University of Belgrade
======================
home page: www.markovojinovic.com
e-mail:    vmarko at ipb.ac.rs



On Sat, 19 Nov 2022, Dušan Cvijetić wrote:

> 
> Pozdrav,
> 
> Dovršio sam kod za ispis u fajl. Ostalo mi je da ga iskomentarišem i ozbiljnije istestiram. Na prvi pogled se čini da radi, i da je i redosled svih stavki očuvan.
> 
> Planiram, takođe, još malo da ulepšam I/O funkcije, trenutno su mahom ogromne i ružne. Ostalo mi je par nedoumica oko nekih rešenja, koja sam označio u komentarima sa // NOTE: ili //
> TODO:. Uglavnom se tiču izuzetaka, ili rada u okviru postojeće arhitekture (konkretno, čitanje različitih boja sam rešio putem case strukture, što možda nije najsrećnije, ali mi ništa
> drugo nije palo na pamet).
> 
> Pre nego što nastavim sa testiranjem, imam još jedan predlog: nedavno sam počeo da učim cmake, pa bih voleo da pokušam da napravim cmake za naš projekat, ako se slažete. Tako bismo
> mogli bolje da organizujemo testove i kompajliranje.
> 
> Pozdravi,
> Dušan
> 
> On 10/11/2022 11:55, Nenad Korolija wrote:
>       Zdravo Marko,
> 
> Ni ja se nisam dalje bavio triangulatorom, ali sam bar završio i poslednje repove sa Amerikancima i valjda skoro sve oko papirologije za reizbor (tu je bilo komplikacija, ali će
> valjda sve proći u redu:).
> Ako ćeš imati vremena da baciš pogled na moje đubre, možda možemo i da budemo na vezi, pa da mi odmah kažeš šta da menjam (umesto da kucaš email), pa da nastaviš gledanje kad
> promenim...
> 
> Vidimo se,
> Nenad
> 
> On Thu, Nov 10, 2022 at 11:52 AM Nenad Korolija <nenadko at gmail.com> wrote:
>       Zdravo Dušane,
> 
> Koliko vidim, snimanje simplicijalnog kompleksa radiš redom.
> for (unsigned int lvl = 0; lvl < simpComp->elements.size(); lvl++) {
>         for (auto ks : simpComp->elements[lvl]) {
> Dakle, verovatno je redosled snimanja i učitavanja isti, tj. nema potrebe da sortiraš po ID-u ili šta već.
> Dakle, trebalo bi da Markov predlog dobro testira snimanje i učitavanje - poređenje snimljenog sa onim što si nakon toga učitao pa snimio.
> 
> Vidimo se,
> Nenad
> 
> On Wed, Nov 9, 2022 at 10:52 PM Marko Vojinovic <vmarko at ipb.ac.rs> wrote:
>
>       Pozdrav Dusane i Nenade,
>
>       Evo konacno sam se vratio u Srbiju i uspeo malo da se organizujem. Dosad se nisam odazivao jer sam bio bas pretrpan obavezama, nisam stizao da pogledam sta ste
>       radili... :-( Ali nadalje cu biti malo bolji sa odgovaranjem na mail-ove. ;-)
>
>       Dusane, vidim da si poceo da radis na citanju kompleksa iz fajla, i otprilike sam bacio pogled na ono sto si stavio u svoj branch dosad. Nisam testirao, ali
>       pretpostavljam da radi, tj. da ispisuje na ekran ono sto procita? :-) Sto se tice posebne klase za I/O, svakako je napravi ako mislis da je potrebna, i Nenad i
>       ja se slazemo. Javi dokle si stigao i kako ide.
>
>       Btw, fundamentalni test za I/O moze da ide otprilike ovako:
>
>       (1) seed-ujes neki kompleks SimpComp *G1 (npr. 5-sferu ili stagod),
>
>       (2) snimis G1 u fajl-prvi.xml f-jom za snimanje (koju si napravio),
>
>       (3) ucitas fajl-prvi.xml u novi kompleks SimpComp *G2, f-jom za citanje (koju sad pravis),
>
>       (4) snimis G2 u fajl-drugi.xml f-jom za snimanje,
>
>       (5) uporedis fajl-prvi.xml i fajl-drugi.xml (npr. diff-om ili cime god).
>
>       Ako su dva fajla uglavnom identicna (do na vrednosti UniqueID brojeva i eventualne izmene u redosledu zapisivanja isl), test je prosao, i zadatak je resen. ;-)
>
>       Osim toga, ako bi uspeo jos da namestis obe f-je (za citanje i snimanje) tako da cak i redosled kojim su stavke zapisane u dva fajla bude isti, tj. da fajlovi
>       budu potpuno identicni (do na UniqueID-ove), to bi onda bila bas prava stvar. :-) Ali to nije obavezno --- redosled stavki u fajlovima u principu nije bitan,
>       dokle god mozemo pouzdano da se ubedimo da fajlovi zaista sadrze iste podatke.
>
>       :-)
>       Marko
>
>       P.S. Drago mi je da si se lepo proveo u CERN-u, i da postoji mogucnost da ides opet, svakako iskoristi priliku ako ti se ukaze...
> 
>
>       Dr. Marko Vojinovic
>       Group for Gravitation, Particles and Fields
>       Institute of Physics
>       University of Belgrade
>       ======================
>       home page: www.markovojinovic.com
>       e-mail:    vmarko at ipb.ac.rs
> 
> 
>
>       On Mon, 7 Nov 2022, Nenad Korolija wrote:
>
>       > Zdravo Dušane,
>       >
>       > Ja se slažem. Ima smisla izdvojiti celu I/O funkcionalnost u posebnu klasu, tj. fajl.
>       >
>       > Pozdrav,
>       > Nenad
>       >
>       > On Sun, Nov 6, 2022 at 5:16 PM Dušan Cvijetić <dusancvijetic2000 at gmail.com> wrote:
>       >       Pozdrav,
>       >
>       >       Predlažem da se za I/O funkcionalnosti napravi nova klasa, pošto
>       >       trenutno radim na čitanju kompleksa iz fajla i imam mnogo pomoćnih
>       >       funkcija koje sam napravio, a koje trenutno plutaju u etru, pa bi bilo
>       >       lepše grupisati ih.
>       >
>       >       Pozdravi,
>       >       Dušan
>       >
>       >       On 30/10/2022 19:58, Dušan Cvijetić wrote:
>       >       > Pozdrav,
>       >       >
>       >       > Radim na čitanju iz fajla, pošto sam konačno prešao na Ubuntu.
>       >       >
>       >       > Da li treba sada da razmišljam i o hvatanju izuzetaka, ili je to tema
>       >       > kojoj ćemo kasnije da se posvetimo?
>       >       >
>       >       > Pozdravi,
>       >       > Dušan
>       >       >
>       >       > On 07/03/2022 06:00, Marko Vojinovic wrote:
>       >       >>
>       >       >> Vazi. :-)
>       >       >>
>       >       >> Sto se citanja iz fajla tice, obrati samo paznju kako ces da
>       >       >> instanciras UniqueID boje --- moraces "rucno" da im menjas vrednosti
>       >       >> na osnovu onoga sto procitas iz .xml fajla, jer konstruktor
>       >       >> UniqueIDColor::UniqueIDColor() zadaje te id-jeve automatski.
>       >       >>
>       >       >> Takodje, kad sve zavrsis, treba da setujes vrednost za
>       >       >> UniqueIDColor::next_free_uid_number na ono sto bi trebalo da bude
>       >       >> prvi slobodan id broj. To je valjda id vrednost prvog simpleksa u
>       >       >> fajlu, jer su oni u fajlu poredjani rastucim redom, a ti id-jevi iz
>       >       >> fajla ne treba da postoje u konacnoj strukturi u memoriji, pa bi prvi
>       >       >> od njih trebalo da bude "slobodan" na samom kraju...
>       >       >>
>       >       >> Jedino nisam siguran kako ce next_free_uid_number da funkcionise u
>       >       >> kontekstu veceg broja istovremeno instanciranih kompleksa, ali to je
>       >       >> pitanje dizajna o kome moram jos da razmislim.
>       >       >>
>       >       >> Ostatak algoritma osmisli sam, kako mislis da je najzgodnije.
>       >       >>
>       >       >> :-)
>       >       >> Marko
>       >       >>
>       >       >>
>       >       >> Dr. Marko Vojinovic
>       >       >> Group for Gravitation, Particles and Fields
>       >       >> Institute of Physics
>       >       >> University of Belgrade
>       >       >> ======================
>       >       >> home page: www.markovojinovic.com
>       >       >> e-mail:    vmarko at ipb.ac.rs
>       >       >>
>       >       >>
>       >       >>
>       >       >> On Mon, 7 Mar 2022, Dusan Cvijetic wrote:
>       >       >>
>       >       >>> Pozdrav,
>       >       >>>
>       >       >>> S obzirom da sam radio ispis u .xml fajl, preuzeću i učitavanje
>       >       >>> kompleksa iz fajla.
>       >       >>>
>       >       >>> Pozdravi,
>       >       >>> Dušan
>       >       >>>
>       >       >>> пет, 11. феб 2022. у 23:17 Marko Vojinovic <vmarko at ipb.ac.rs> је
>       >       >>> написао/ла:
>       >       >>>
>       >       >>>       Implementirati metod u klasi SimpComp koji ce da procita dati
>       >       >>> fajl i instancira u memoriji simplicijalni kompleks na osnovu
>       >       >>> podataka iz fajla:
>       >       >>>
>       >       >>>          SimpComp* SimpComp::read_complex_from_file( file* f );
>       >       >>>
>       >       >>>          Input: Pointer na fajl iz koga se citaju podaci.
>       >       >>>          Output: pointer na instancirani simplicijalni kompleks
>       >       >>> kreiran na osnovu podataka iz fajla.
>       >       >>>
>       >       >>>       Ovaj zadatak treba da instancira nov prazan kompleks, zatim da
>       >       >>> cita dati fajl, interpretira sintaksu iz zadatka 7, i da na osnovu
>       >       >>> tih podataka popuni kompleks odgovarajucim
>       >       >>>       simpleksima datih nivoa, a zatim i boje i susede svakog
>       >       >>> simpleksa ponaosob. Ovo je u sustini inverzni algoritam u odnosu na
>       >       >>> zadatak 7, i zavisi od tacne implementacije tog
>       >       >>>       zadatka (tj. od tacne sintakse snimljenog fajla), pa ovaj
>       >       >>> zadatak treba raditi tek kada budemo sigurni da smo skroz zadovoljni
>       >       >>> sa radom f-ja za snimanje u fajl.
>       >       >>>
>       >       >>>       I u ovom slucaju cemo mozda uraditi vise verzija f-je za
>       >       >>> citanje, po jednu za svaki format fajla.
>       >       >>>
>       >       >>>
>       >       >>>       :-)
>       >       >>>       Marko
>       >       >>>
>       >       >>>
>       >       >>>       Dr. Marko Vojinovic
>       >       >>>       Group for Gravitation, Particles and Fields
>       >       >>>       Institute of Physics
>       >       >>>       University of Belgrade
>       >       >>>       ======================
>       >       >>>       home page: www.markovojinovic.com
>       >       >>>       e-mail:    vmarko at ipb.ac.rs
>       >       >>>
>       >       >>>
>       >       >>>       --
>       >       >>>       QGHG-it-dev-list mailing list
>       >       >>>       QGHG-it-dev-list at ipb.ac.rs
>       >       >>>       http://mail.ipb.ac.rs/mailman/listinfo/qghg-it-dev-list
>       >       >>>
>       >       >>>
>       >       >>>
>       >       >>
>       >       --
>       >       QGHG-it-dev-list mailing list
>       >       QGHG-it-dev-list at ipb.ac.rs
>       >       http://mail.ipb.ac.rs/mailman/listinfo/qghg-it-dev-list
>       >
>       >
>       >--
>       QGHG-it-dev-list mailing list
>       QGHG-it-dev-list at ipb.ac.rs
>       http://mail.ipb.ac.rs/mailman/listinfo/qghg-it-dev-list
> 
> 
> 
>


More information about the QGHG-it-dev-list mailing list