X-Git-Url: http://shamusworld.gotdns.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Futils.cpp;h=c6b457e8bb8e59e9802c64dfeb445c33b6e4d6b4;hb=06456047e6476969e45be5b1f31b8336ea74c45f;hp=6f3c73ae0941733bbfd8764a8ac0996cab79cbbf;hpb=deb5512a6b35e73dc2c19ac4d2800cff87dd2e71;p=architektonas diff --git a/src/utils.cpp b/src/utils.cpp index 6f3c73a..c6b457e 100644 --- a/src/utils.cpp +++ b/src/utils.cpp @@ -90,6 +90,13 @@ Object * CopyObject(Object * obj) } +void AddObjectsTo(std::vector & dest, std::vector & from) +{ + for(std::vector::iterator i=from.begin(); i!=from.end(); i++) + dest.push_back(*i); +} + + void ClearSelected(std::vector & v) { std::vector::iterator i; @@ -99,3 +106,49 @@ void ClearSelected(std::vector & v) } +void DeleteSelectedObjects(std::vector & v) +{ + std::vector::iterator i = v.begin(); + + while (i != v.end()) + { + Object * obj = (Object *)(*i); + + if (obj->selected) + { + delete obj; + v.erase(i); + } + else + i++; + } +} + + +void SavePointsFrom(std::vector & v, std::vector & save) +{ + save.clear(); + Object o; + + for(std::vector::iterator i=v.begin(); i!=v.end(); i++) + { + memcpy(&o, (*i), sizeof(Object)); + save.push_back(o); + } +} + + +void RestorePointsTo(std::vector & v, std::vector & s) +{ + std::vector::iterator i = s.begin(); + std::vector::iterator j = v.begin(); + + for(; i!=s.end(); i++, j++) + { + Object * obj2 = (Object *)(*j); + obj2->p[0] = (*i).p[0]; + obj2->p[1] = (*i).p[1]; + } +} + +