X-Git-Url: http://shamusworld.gotdns.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Futils.cpp;h=c038f3670ee25598662841a19669e80956e5c9ac;hb=fce575a51ba1f26418869c20e63b9f388e118ab6;hp=b9ca463bbc948bda5ba79bcfeaa220af0588d0c3;hpb=bf5a50feb0f84a4627a65c5b82c3ca2d2eefe54b;p=architektonas diff --git a/src/utils.cpp b/src/utils.cpp index b9ca463..c038f36 100644 --- a/src/utils.cpp +++ b/src/utils.cpp @@ -1,3 +1,4 @@ +// // utils.cpp: Stuff that's useful to have kicking around, in one spot // // Part of the Architektonas Project @@ -16,7 +17,6 @@ #include // For memcpy() #include "geometry.h" - // // Copy objects in one vector to another, creating copies and placing them in // the other vector. Clearing & etc. of vectors is responsibility of the caller! @@ -31,7 +31,6 @@ void CopyObjects(VPVector & from, VPVector & to) } } - VPVector CopyObjects(VPVector & src) { VPVector copy; @@ -45,7 +44,6 @@ VPVector CopyObjects(VPVector & src) return copy; } - // // Create a copy of the passed in object. // @@ -104,7 +102,6 @@ Object * CopyObject(Object * obj) return (Object *)newObject; } - // // Create a copy of the passed in object. This version calls the second // version of CopyObjects() (with one parameter and a vector return value). @@ -167,7 +164,6 @@ Object * CopyObject2(Object * obj) return (Object *)newObject; } - void MoveSelectedObjectsTo(VPVector & dest, VPVector & from) { VPVectorIter i = from.begin(); @@ -186,7 +182,6 @@ void MoveSelectedObjectsTo(VPVector & dest, VPVector & from) } } - VPVector MoveSelectedObjectsFrom(VPVector & from) { VPVector objects; @@ -208,7 +203,6 @@ VPVector MoveSelectedObjectsFrom(VPVector & from) return objects; } - //hmm, this won't work, as these are just pointers... //[should work now] void CopySelectedObjectsTo(VPVector & dest, VPVector & from) @@ -222,7 +216,6 @@ void CopySelectedObjectsTo(VPVector & dest, VPVector & from) } } - VPVector CopySelectedObjects(VPVector & src) { VPVector copy; @@ -238,21 +231,18 @@ VPVector CopySelectedObjects(VPVector & src) return copy; } - void AddObjectsTo(VPVector & dest, VPVector & from) { for(VPVectorIter i=from.begin(); i!=from.end(); i++) dest.push_back(*i); } - void ClearSelected(VPVector & v) { for(VPVectorIter i=v.begin(); i!=v.end(); i++) ((Object *)(*i))->selected = false; } - // // Select all *visible* objects. If an object's layer is invisible, skip it. // @@ -266,7 +256,6 @@ void SelectAll(VPVector & v) } } - // // Recursively go down thru the Container's vectors, deleting all the objects // contained therein. Once that is done, the main Container can be deleted. @@ -290,7 +279,6 @@ void DeleteContents(VPVector & v) v.clear(); } - void DeleteSelectedObjects(VPVector & v) { VPVectorIter i = v.begin(); @@ -309,7 +297,6 @@ void DeleteSelectedObjects(VPVector & v) } } - // // This is used to remove selected objects from one container in order to move // them to a different container. @@ -329,6 +316,24 @@ void RemoveSelectedObjects(VPVector & v) } } +// +// This is used to remove hovered objects from one container in order to delete +// them from the same container. +// +void RemoveHoveredObjects(VPVector & v) +{ + VPVectorIter i = v.begin(); + + while (i != v.end()) + { + Object * obj = (Object *)(*i); + + if (obj->hovered) + v.erase(i); + else + i++; + } +} void SavePointsFrom(VPVector & v, std::vector & save) { @@ -342,7 +347,6 @@ void SavePointsFrom(VPVector & v, std::vector & save) } } - void RestorePointsTo(VPVector & v, std::vector & s) { std::vector::iterator i; @@ -360,7 +364,6 @@ void RestorePointsTo(VPVector & v, std::vector & s) } } - void RestorePointsTo(VPVector & v, VPVector & s) { for(VPVectorIter i=s.begin(), j=v.begin(); i!=s.end(); i++, j++) @@ -383,7 +386,6 @@ void RestorePointsTo(VPVector & v, VPVector & s) } } - // // Translate a single object; it it's a Container, translate all its contents, // including subcontainers. @@ -402,7 +404,6 @@ void TranslateObject(Object * obj, Point delta) obj->p[1] += delta; } - /* So we need to make it so that we pick the container's point clicked on, and translate all the other parts *not* clicked on. */ @@ -464,7 +465,6 @@ void TranslateContainer(Container * c, Point point, Point delta) TranslateObject((Object *)c, clickedDelta); } - // // Translate all objects in the passed in vector, including Containers and all // the objects they contain. @@ -485,7 +485,6 @@ void TranslateObjects(VPVector & v, Point delta) } } - // // This does not *copy* the objects, it simply flattens out the pointers in the // Container and all sub-Containers. @@ -510,7 +509,6 @@ VPVector Flatten(Container * src) return flat; } - // // This does not *copy* the objects, it simply flattens out the pointers in the // vector and all sub-Containers in the vector. @@ -534,4 +532,3 @@ VPVector Flatten(VPVector src) return flat; } -