]> Shamusworld >> Repos - architektonas/blobdiff - src/utils.cpp
Rotation tool now works properly for Lines. Need to fix Arcs.
[architektonas] / src / utils.cpp
index 6f3c73ae0941733bbfd8764a8ac0996cab79cbbf..c6b457e8bb8e59e9802c64dfeb445c33b6e4d6b4 100644 (file)
@@ -90,6 +90,13 @@ Object * CopyObject(Object * obj)
 }
 
 
+void AddObjectsTo(std::vector<void *> & dest, std::vector<void *> & from)
+{
+       for(std::vector<void *>::iterator i=from.begin(); i!=from.end(); i++)
+               dest.push_back(*i);
+}
+
+
 void ClearSelected(std::vector<void *> & v)
 {
        std::vector<void *>::iterator i;
@@ -99,3 +106,49 @@ void ClearSelected(std::vector<void *> & v)
 }
 
 
+void DeleteSelectedObjects(std::vector<void *> & v)
+{
+       std::vector<void *>::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<void *> & v, std::vector<Object> & save)
+{
+       save.clear();
+       Object o;
+
+       for(std::vector<void *>::iterator i=v.begin(); i!=v.end(); i++)
+       {
+               memcpy(&o, (*i), sizeof(Object));
+               save.push_back(o);
+       }
+}
+
+
+void RestorePointsTo(std::vector<void *> & v, std::vector<Object> & s)
+{
+       std::vector<Object>::iterator i = s.begin();
+       std::vector<void *>::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];
+       }
+}
+
+