[QGHG-it-dev-list] Zadatak 44 - kreiranje klase HalfintColor
Marko Vojinovic
vmarko at ipb.ac.rs
Mon Jun 22 00:29:33 CEST 2026
Kreirati klasu HalfintColor, koja ce da bude child klasa klase Color, i koja ce dati simpleks da oboji jednim Halfint brojem. Implementacija child klase treba da se uradi u fajlovima color.hpp i color.cpp, na sledeci nacin. Najpre definisati identifikacioni tip klase (na pocetku gde su definisani svi ostali tipovi),
#define TYPE_HALFINT 132
a zatim na dnu color.hpp i color.cpp fajla otvoriti novi "odeljak" gde ce child klasa HalfintColor da bude implementirana. Tu treba definisati klasu zadavanjem jednog podatka koji ce klasa da pamti,
Halfint hn;
i implementirati sledece metode:
// Constructor:
HalfintColor(); // sets hn = 0 by default
HalfintColor( Halfint hk ); // sets hn = hk
// Destructor:
~HalfintColor();
// Adding HalfintColor to a single simplex, to all simplices of a given
// level, and to the whole complex:
static bool colorize_single_simplex(KSimplex* simp);
static bool colorize_simplices_at_level(SimpComp* G, int level);
static bool colorize_entire_complex(SimpComp* simpComp);
// Adding HalfintColor to a single simplex, using values from a string:
static bool colorize_single_simplex(KSimplex* simp, const string& source);
// verify if a simplex contains the HalfintColor:
static bool is_colorized(KSimplex* simp);
// find a pointer to the HalfintColor for a given simplex:
static HalfintColor* find_pointer_to_color(KSimplex* simp);
// Print the value of hn to the screen in human-readable form:
void print();
// Obligatory implementations of string codec functions for HalfintColor:
string get_color_value_as_str() override;
void set_color_value_from_str(const string& source) override;
Implementirati sve ove funkcije po ugledu na implementacije drugih boja (ali nemojte da se ugledate na BoundaryColor, ta boja ima specijalan status i nikako nije za ugledanje...).
U funkcijama
colorize_single_simplex(KSimplex* simp, const string& source)
get_color_value_as_str()
set_color_value_from_str(const string& source)
konstruisati string na osnovu vrednosti broja hn onako kako bismo napisali broj u human-readable formi, dakle "3", "7.5", "-2.5", "-6", itd. Poslednje dve funkcije treba da budu inverzi jedna drugoj. Prva funkcija treba da pozove trecu u svojoj implementaciji.
Unutar triangulator/test/ putanje dodati novi fajl halfint_color_test.cpp, koji ce da seed-uje 2-sferu, da oboji ceo kompleksa UniqueID bojom, a zatim svaki simpleks iz 2-sfere da oboji HalfintColor bojom, tako da svakom simpleksu dodeli vrednost hn koja je za 0.5 veca od prethodnog simpleksa, pocev od vrednosti -2.5 (za prvi simpleks). Zatim uraditi print_detailed() celog kompleksa, da se ubedimo da su hn vrednosti zadate za svaki simpleks kako treba, snimiti ceo kompleks u fajl, instancirati novi kompleks citanjem iz fajla, i konacno print_detailed() novog kompleksa, da se ubedimo da su hn vrednosti iste kao u pocetnom kompleksu. Na kraju unseed-ovati oba kompleksa.
Ukoliko imate bilo kakva pitanja ili sugestije vezane za ovaj zadatak, slobodno se javite.
:-)
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
More information about the QGHG-it-dev-list
mailing list