}
+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;
}
+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];
+ obj2->angle[0] = (*i).angle[0];
+ obj2->angle[1] = (*i).angle[1];
+//we don't do this because we want to keep selected & friends from changing
+// memcpy(obj2, *j, sizeof(Object));
+ }
+}
+
+