00001 // Copyright (C) 2008 ETF Mighty Coders 00002 00003 #include "KoordinatniSistem.h" 00004 00005 #include <ostream> 00006 00007 KoordinatniSistem* KoordinatniSistem::Instance() 00008 { 00009 if (instance == 0) 00010 { 00011 instance = new KoordinatniSistem(); 00012 } 00013 return instance; 00014 } 00015 00016 KoordinatniSistem::~KoordinatniSistem() 00017 { 00018 obrisiSveTacke(); 00019 } 00020 00021 void KoordinatniSistem::ReleaseInstance() 00022 { 00023 if (0 != instance) 00024 { 00025 delete instance, instance = 0; 00026 } 00027 } 00028 00029 void KoordinatniSistem::dodajTacku(Tacka *pp_tacka) 00030 { 00031 dodajKopijuTacke(*pp_tacka); 00032 dodajAdresuTacke(pp_tacka); 00033 } 00034 00035 void KoordinatniSistem::ispisiTacke(std::ostream &os) 00036 { 00037 os << "Kopije unetih tacaka (iz zbirke kopija): " << std::endl; 00038 for (std::vector<Tacka>::iterator it = kopijeTacaka.begin(); it != kopijeTacaka.end(); it++) 00039 { 00040 os << *it; 00041 } 00042 00043 os << "Unete tacke (iz zbirke adresa): " << std::endl; 00044 for (std::vector<Tacka*>::iterator it = adreseTacaka.begin(); it != adreseTacaka.end(); it++) 00045 { 00046 os << *(*it); // zagrade nisu neophodne 00047 } 00048 } 00049 00050 KoordinatniSistem::KoordinatniSistem() 00051 { 00052 } 00053 00054 void KoordinatniSistem::obrisiSveTacke() 00055 { 00056 // Kod kopija ne treba raditi ništa posebno, samo isprazniti zbirku. 00057 kopijeTacaka.clear(); 00058 // Kod adresa treba i dealocirati svaku tačku. 00059 for (std::vector<Tacka*>::iterator it = adreseTacaka.begin(); it != adreseTacaka.end(); it++) 00060 { 00061 delete *it; 00062 } 00063 adreseTacaka.clear(); 00064 } 00065 00066 void KoordinatniSistem::dodajKopijuTacke(Tacka pv_tacka) 00067 { 00068 kopijeTacaka.push_back(pv_tacka); 00069 } 00070 00071 void KoordinatniSistem::dodajAdresuTacke(Tacka *pp_tacka) 00072 { 00073 adreseTacaka.push_back(pp_tacka); 00074 } 00075 00076 KoordinatniSistem* KoordinatniSistem::instance = 0; 00077 00078 const Tacka KoordinatniSistem::koordinatniPocetak;
1.5.3