Bladeren bron

pgraph: Slight efficiency refactoring of `remove_unused_vertices()`

rdb 3 jaren geleden
bovenliggende
commit
4d5d7047af
2 gewijzigde bestanden met toevoegingen van 5 en 9 verwijderingen
  1. 4 8
      panda/src/pgraph/geomTransformer.cxx
  2. 1 1
      panda/src/pgraph/geomTransformer.h

+ 4 - 8
panda/src/pgraph/geomTransformer.cxx

@@ -72,9 +72,9 @@ GeomTransformer::
  * purpose of later removing unused vertices.
  */
 void GeomTransformer::
-register_vertices(Geom *geom, bool might_have_unused) {
+register_vertices(PT(Geom) geom, bool might_have_unused) {
   VertexDataAssoc &assoc = _vdata_assoc[geom->get_vertex_data()];
-  assoc._geoms.push_back(geom);
+  assoc._geoms.push_back(std::move(geom));
   if (might_have_unused) {
     assoc._might_have_unused = true;
   }
@@ -89,12 +89,8 @@ register_vertices(GeomNode *node, bool might_have_unused) {
   Thread *current_thread = Thread::get_current_thread();
   OPEN_ITERATE_CURRENT_AND_UPSTREAM(node->_cycler, current_thread) {
     GeomNode::CDStageWriter cdata(node->_cycler, pipeline_stage, current_thread);
-    GeomNode::GeomList::iterator gi;
-    PT(GeomNode::GeomList) geoms = cdata->modify_geoms();
-    for (gi = geoms->begin(); gi != geoms->end(); ++gi) {
-      GeomNode::GeomEntry &entry = (*gi);
-      PT(Geom) geom = entry._geom.get_write_pointer();
-      register_vertices(geom, might_have_unused);
+    for (GeomNode::GeomEntry &entry : *cdata->modify_geoms()) {
+      register_vertices(entry._geom.get_write_pointer(), might_have_unused);
     }
   }
   CLOSE_ITERATE_CURRENT_AND_UPSTREAM(node->_cycler);

+ 1 - 1
panda/src/pgraph/geomTransformer.h

@@ -48,7 +48,7 @@ public:
   INLINE int get_max_collect_vertices() const;
   INLINE void set_max_collect_vertices(int max_collect_vertices);
 
-  void register_vertices(Geom *geom, bool might_have_unused);
+  void register_vertices(PT(Geom) geom, bool might_have_unused);
   void register_vertices(GeomNode *node, bool might_have_unused);
 
   bool transform_vertices(Geom *geom, const LMatrix4 &mat);