Revision: 57055
          http://sourceforge.net/p/brlcad/code/57055
Author:   phoenixyjll
Date:     2013-08-22 03:56:58 +0000 (Thu, 22 Aug 2013)
Log Message:
-----------
Swap start & end if start > end.

Modified Paths:
--------------
    brlcad/trunk/src/libbrep/boolean.cpp

Modified: brlcad/trunk/src/libbrep/boolean.cpp
===================================================================
--- brlcad/trunk/src/libbrep/boolean.cpp        2013-08-22 03:50:27 UTC (rev 
57054)
+++ brlcad/trunk/src/libbrep/boolean.cpp        2013-08-22 03:56:58 UTC (rev 
57055)
@@ -1140,10 +1140,17 @@
                    // Find an intersection between all their "parts".
                    for (int i1 = 0; i1 < t_face->m_parts.Count(); i1++) {
                        for (int i2 = 0; i2 < another_face->m_parts.Count(); 
i2++) {
-                           const IntersectPoint& start1 = 
t_face->m_parts[i1].first;
-                           const IntersectPoint& start2 = 
another_face->m_parts[i2].first;
-                           const IntersectPoint& end1 = 
t_face->m_parts[i1].second;
-                           const IntersectPoint& end2 = 
another_face->m_parts[i2].second;
+                           IntersectPoint& start1 = t_face->m_parts[i1].first;
+                           IntersectPoint& start2 = 
another_face->m_parts[i2].first;
+                           IntersectPoint& end1 = t_face->m_parts[i1].second;
+                           IntersectPoint& end2 = 
another_face->m_parts[i2].second;
+                           if (compare_t(&start1, &end1) > 0) {
+                               // start > end, swap them
+                               std::swap(start1, end1);
+                           }
+                           if (compare_t(&start2, &end2) > 0) {
+                               std::swap(start2, end2);
+                           }
                            const IntersectPoint& start_max = 
compare_t(&start1, &start2) < 0 ? start2 : start1;
                            const IntersectPoint& end_min = compare_t(&end1, 
&end2) < 0 ? end1 : end2;
                            if (compare_t(&start_max, &end_min) < 0) {

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


------------------------------------------------------------------------------
Introducing Performance Central, a new site from SourceForge and 
AppDynamics. Performance Central is your source for news, insights, 
analysis and resources for efficient Application Performance Management. 
Visit us today!
http://pubads.g.doubleclick.net/gampad/clk?id=48897511&iu=/4140/ostg.clktrk
_______________________________________________
BRL-CAD Source Commits mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/brlcad-commits

Reply via email to