+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];
+ }
+}
+
+