#include <TopExp_Explorer.hxx>
#include <TopoDS.hxx>
+#include <GEOMUtils.hxx>
+#include <TopTools_ListOfShape.hxx>
+#include <TopTools_ListIteratorOfListOfShape.hxx>
+
#ifdef WIN32
#pragma warning ( default: 4251 )
#endif
int i = 0;
//show all faces first
+ TopTools_ListOfShape aListOfFaces;
TopExp_Explorer aFE( theShape, TopAbs_FACE );
- for( ; aFE.More(); aFE.Next(), i++ )
- show( aFE.Current(), theMode, false, GetColor(i) );
+ for( ; aFE.More(); aFE.Next() )
+ aListOfFaces.Append(aFE.Current());
+ GEOMUtils::SortShapes(aListOfFaces);
+ TopTools_ListIteratorOfListOfShape aLF(aListOfFaces);
+ for( ; aLF.More(); aLF.Next(), i++)
+ show( aLF.Value(), theMode, false, GetColor(i) );
//show all independent wires
+ TopTools_ListOfShape aListOfWires;
TopExp_Explorer aWE( theShape, TopAbs_WIRE, TopAbs_FACE );
- for( ; aWE.More(); aWE.Next(), i++ )
- show( aWE.Current(), theMode, false, GetColor(i) );
+ for( ; aWE.More(); aWE.Next() )
+ aListOfWires.Append(aWE.Current());
+ GEOMUtils::SortShapes(aListOfWires);
+ TopTools_ListIteratorOfListOfShape aLW(aListOfWires);
+ for( ; aLW.More(); aLW.Next(), i++)
+ show( aLW.Value(), theMode, false, GetColor(i) );
//show all independent edges
+ TopTools_ListOfShape aListOfEdges;
TopExp_Explorer anEE( theShape, TopAbs_EDGE, TopAbs_WIRE );
- for( ; anEE.More(); anEE.Next(), i++ )
- show( anEE.Current(), theMode, false, GetColor(i) );
+ for( ; anEE.More(); anEE.Next())
+ aListOfEdges.Append(anEE.Current());
+ GEOMUtils::SortShapes(aListOfEdges);
+ TopTools_ListIteratorOfListOfShape aLE(aListOfEdges);
+ for( ; aLE.More(); aLE.Next(), i++)
+ show( aLE.Value(), theMode, false, GetColor(i) );
if( isFitAll )
{