Revision: 65380
          http://sourceforge.net/p/brlcad/code/65380
Author:   ejno
Date:     2015-06-18 13:06:55 +0000 (Thu, 18 Jun 2015)
Log Message:
-----------
sort regions by name before writing

Modified Paths:
--------------
    brlcad/trunk/src/libgcv/conv/fastgen4/fastgen4_write.cpp

Modified: brlcad/trunk/src/libgcv/conv/fastgen4/fastgen4_write.cpp
===================================================================
--- brlcad/trunk/src/libgcv/conv/fastgen4/fastgen4_write.cpp    2015-06-18 
12:38:08 UTC (rev 65379)
+++ brlcad/trunk/src/libgcv/conv/fastgen4/fastgen4_write.cpp    2015-06-18 
13:06:55 UTC (rev 65380)
@@ -170,8 +170,8 @@
 {
 #define COMPARE(a, b) \
     do { \
-       const int v = bu_strcmp((a), (b)); \
-       if (v != 0) return v < 0; \
+       const int r = bu_strcmp((a), (b)); \
+       if (r) return r < 0; \
     } while (false)
 
     const std::size_t len = std::min(left.get().fp_len, right.get().fp_len);
@@ -2073,14 +2073,22 @@
 
     std::map<const directory *, std::vector<FastgenWriter::SectionID> > ids;
 
+    typedef std::map<std::string, std::map<const directory *, RegionManager 
*>::const_iterator>
+    SortedRegionMap;
+    SortedRegionMap sorted_regions;
+
     for (std::map<const directory *, RegionManager *>::const_iterator it =
             m_regions.begin(); it != m_regions.end(); ++it)
-       ids[it->first] = it->second->write(m_writer);
+       sorted_regions[it->first->d_namep] = it;
 
-    for (std::map<const directory *, RegionManager *>::iterator it =
-            m_regions.begin(); it != m_regions.end(); ++it) {
-       it->second->write_walls(m_writer, ids);
-       delete it->second;
+    for (SortedRegionMap::const_iterator it = sorted_regions.begin();
+        it != sorted_regions.end(); ++it)
+       ids[it->second->first] = it->second->second->write(m_writer);
+
+    for (SortedRegionMap::iterator it = sorted_regions.begin();
+        it != sorted_regions.end(); ++it) {
+       it->second->second->write_walls(m_writer, ids);
+       delete it->second->second;
     }
 }
 

This was sent by the SourceForge.net collaborative development platform, the 
world's largest Open Source development site.


------------------------------------------------------------------------------
_______________________________________________
BRL-CAD Source Commits mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/brlcad-commits

Reply via email to