Text archives Help
- From:
- To:
- Subject: [Manta] r2302 - trunk/Model/Groups
- Date: Tue, 8 Jul 2008 16:35:41 -0600 (MDT)
Author: abe
Date: Tue Jul 8 16:35:41 2008
New Revision: 2302
Modified:
trunk/Model/Groups/Group.cc
trunk/Model/Groups/Group.h
trunk/Model/Groups/Mesh.cc
trunk/Model/Groups/Mesh.h
Log:
Added a delete_ptr argument to Group::remove. If this argument is
true, the pointer will be deleted after it is removed from the array.
M Model/Groups/Group.cc
M Model/Groups/Mesh.cc
M Model/Groups/Mesh.h
M Model/Groups/Group.h
Modified: trunk/Model/Groups/Group.cc
==============================================================================
--- trunk/Model/Groups/Group.cc (original)
+++ trunk/Model/Groups/Group.cc Tue Jul 8 16:35:41 2008
@@ -123,10 +123,13 @@
dirtybbox = true;
}
-void Group::remove(Object* obj) {
+void Group::remove(Object* obj, bool delete_ptr) {
vector<Object*>::iterator iter = find(objs.begin(), objs.end(), obj);
if (iter != objs.end()) {
objs.erase(iter);
+ if (delete_ptr) {
+ delete obj;
+ }
dirtybbox = true;
}
}
Modified: trunk/Model/Groups/Group.h
==============================================================================
--- trunk/Model/Groups/Group.h (original)
+++ trunk/Model/Groups/Group.h Tue Jul 8 16:35:41 2008
@@ -60,7 +60,10 @@
virtual bool isParallel() const { return true; }
virtual void add(Object* obj);
- virtual void remove(Object* obj);
+
+ // Remove the specified pointer from the Group. The pointer will
+ // be deleted if delete_ptr == true.
+ virtual void remove(Object* obj, bool delete_ptr );
virtual void set( size_t i, Object* obj );
inline Object* get( size_t i ) {
Modified: trunk/Model/Groups/Mesh.cc
==============================================================================
--- trunk/Model/Groups/Mesh.cc (original)
+++ trunk/Model/Groups/Mesh.cc Tue Jul 8 16:35:41 2008
@@ -166,17 +166,17 @@
}
-void Mesh::add(Object* obj)
+void Mesh::add(Object*)
{
throw InternalError(string("Illegal call to ") + MANTA_FUNC);
}
-void Mesh::remove(Object* obj)
+void Mesh::remove(Object*, bool)
{
throw InternalError(string("Illegal call to ") + MANTA_FUNC);
}
-void Mesh::set( int i, Object *obj )
+void Mesh::set( int, Object *)
{
throw InternalError(string("Illegal call to ") + MANTA_FUNC);
}
Modified: trunk/Model/Groups/Mesh.h
==============================================================================
--- trunk/Model/Groups/Mesh.h (original)
+++ trunk/Model/Groups/Mesh.h Tue Jul 8 16:35:41 2008
@@ -70,10 +70,10 @@
}
void interpolateNormals();
- //should not be allowed to use Group's add and set.
- virtual void add(Object* obj);
- virtual void set( int i, Object *obj );
- virtual void remove(Object* obj);
+ // These methods should not be used, instead use addTriangle.
+ virtual void add(Object*);
+ virtual void set( int, Object *);
+ virtual void remove(Object*, bool);
inline MeshTriangle* get( size_t i ) {
ASSERT( i < objs.size() );
- [Manta] r2302 - trunk/Model/Groups, abe, 07/08/2008
Archive powered by MHonArc 2.6.16.