Ver Fonte

added get_objects() to get a collection of all the particles as PhysicalObjects

Josh Wilson há 19 anos atrás
pai
commit
f195f3635d
2 ficheiros alterados com 20 adições e 0 exclusões
  1. 17 0
      panda/src/physics/physical.cxx
  2. 3 0
      panda/src/physics/physical.h

+ 17 - 0
panda/src/physics/physical.cxx

@@ -120,6 +120,23 @@ Physical::
   }
   }
 }
 }
 
 
+////////////////////////////////////////////////////////////////////
+//    Function : get_objects
+//      Access : Public
+////////////////////////////////////////////////////////////////////
+const PhysicsObjectCollection Physical::
+get_objects() const{
+  PhysicsObjectCollection poc;
+
+  for (PhysicsObject::Vector::const_iterator i=_physics_objects.begin();
+       i != _physics_objects.end();
+       ++i) {
+    poc.add_physics_object((PhysicsObject*)(*i));
+  }
+
+  return poc;
+}
+
 ////////////////////////////////////////////////////////////////////
 ////////////////////////////////////////////////////////////////////
 //     Function : output
 //     Function : output
 //       Access : Public
 //       Access : Public

+ 3 - 0
panda/src/physics/physical.h

@@ -27,6 +27,7 @@
 #include "plist.h"
 #include "plist.h"
 
 
 #include "physicsObject.h"
 #include "physicsObject.h"
+#include "physicsObjectCollection.h"
 #include "linearForce.h"
 #include "linearForce.h"
 #include "angularForce.h"
 #include "angularForce.h"
 
 
@@ -73,6 +74,8 @@ PUBLISHED:
   INLINE void set_viscosity(float viscosity);
   INLINE void set_viscosity(float viscosity);
   INLINE float get_viscosity() const;
   INLINE float get_viscosity() const;
   
   
+  const PhysicsObjectCollection get_objects() const;
+
   virtual void output(ostream &out = cout) const;
   virtual void output(ostream &out = cout) const;
   virtual void write_physics_objects(
   virtual void write_physics_objects(
     ostream &out = cout, unsigned int indent=0) const;
     ostream &out = cout, unsigned int indent=0) const;