0022686: Some Draw commands do not return necessary information in Draw_Interpretor...
authorVTN <>
Fri, 2 Sep 2011 10:14:02 +0000 (10:14 +0000)
committerbugmaster <bugmaster@opencascade.com>
Mon, 5 Mar 2012 15:29:58 +0000 (19:29 +0400)
src/MeshTest/MeshTest_CheckTopology.cxx
src/MeshTest/MeshTest_CheckTopology.hxx
src/MeshTest/MeshTest_PluginCommands.cxx

index 7627fce..e26d381 100755 (executable)
@@ -24,7 +24,7 @@
 //purpose  : Performs checking
 //=======================================================================
 
-void MeshTest_CheckTopology::Perform ()
+void MeshTest_CheckTopology::Perform (Draw_Interpretor& di)
 {
   TopTools_IndexedMapOfShape aMapF;
   TopTools_IndexedDataMapOfShapeListOfShape aMapEF;
@@ -107,7 +107,7 @@ void MeshTest_CheckTopology::Perform ()
     TopLoc_Location aLoc;
     Handle(Poly_Triangulation) aT = BRep_Tool::Triangulation(aFace, aLoc);
     if (aT.IsNull()) {
-      cout<< "face "<<iF<<" has no triangulation"<<endl;
+      di << "face " <<iF <<" has no triangulation" << "\n";
       continue;
     }
 
index 8631634..7e473db 100755 (executable)
@@ -10,6 +10,7 @@
 #include <NCollection_IndexedDataMap.hxx>
 #include <TColStd_SequenceOfInteger.hxx>
 #include <TColStd_SequenceOfReal.hxx>
+#include <Draw_Interpretor.hxx>
 
 //! This class checks topology of the mesh presented by
 //! triangulations of faces.
@@ -34,7 +35,7 @@ public:
     : myShape(theShape) {}
 
   //! performs checking
-  Standard_EXPORT void Perform();
+  Standard_EXPORT void Perform(Draw_Interpretor& di);
 
   //! returns the number of faces with free links
   Standard_Integer NbFacesWithFL() const
index 785b39b..95a80ba 100755 (executable)
@@ -302,7 +302,7 @@ static Standard_Integer triarea (Draw_Interpretor& di, int n, const char ** a)
     BRepGProp::SurfaceProperties(shape, props, anEps);
   double aGeomArea = props.Mass();
 
-  di << aTriArea << " " << aGeomArea << " ";
+  di << aTriArea << " " << aGeomArea << "\n";
   return 0;
 }
 
@@ -320,7 +320,7 @@ static Standard_Integer tricheck (Draw_Interpretor& di, int n, const char ** a)
 
   // execute check
   MeshTest_CheckTopology aCheck(shape);
-  aCheck.Perform();
+  aCheck.Perform(di);
 
   // dump info on free links inside the triangulation
   Standard_Integer nbFree = 0;
@@ -330,7 +330,7 @@ static Standard_Integer tricheck (Draw_Interpretor& di, int n, const char ** a)
       Standard_Integer nbEdge = aCheck.NbFreeLinks(k);
       Standard_Integer iF = aCheck.GetFaceNumWithFL(k);
       nbFree += nbEdge;
-      cout<<"free links of face "<<iF<<endl;
+      di << "free links of face " << iF << "\n";
       const TopoDS_Face& aFace = TopoDS::Face(aMapF.FindKey(iF));
       TopLoc_Location aLoc;
       Handle(Poly_Triangulation) aT = BRep_Tool::Triangulation(aFace, aLoc);
@@ -342,7 +342,7 @@ static Standard_Integer tricheck (Draw_Interpretor& di, int n, const char ** a)
       for (i=1; i <= nbEdge; i++) {
         Standard_Integer n1, n2;
         aCheck.GetFreeLink(k, i, n1, n2);
-        cout<<"{"<<n1<<" "<<n2<<"} ";
+        di << "{" << n1 << " " << n2 << "} ";
         pnts(1) = aPoints(n1).Transformed(trsf);
         pnts(2) = aPoints(n2).Transformed(trsf);
         Handle(Poly_Polygon3D) poly = new Poly_Polygon3D (pnts);
@@ -356,44 +356,44 @@ static Standard_Integer tricheck (Draw_Interpretor& di, int n, const char ** a)
         DrawTrSurf::Set (name, pnts2d(1));
         DrawTrSurf::Set (name, pnts2d(2));
       }
-      cout<<endl;
+      di << "\n";
     }
   }
 
   // dump info on cross face errors
   Standard_Integer nbErr = aCheck.NbCrossFaceErrors();
   if (nbErr > 0) {
-    cout<<"cross face errors: {face1, node1, face2, node2, distance}"<<endl;
+    di << "cross face errors: {face1, node1, face2, node2, distance}" << "\n";
     for (i=1; i <= nbErr; i++) {
       Standard_Integer iF1, n1, iF2, n2;
       Standard_Real aVal;
       aCheck.GetCrossFaceError(i, iF1, n1, iF2, n2, aVal);
-      cout<<"{"<<iF1<<" "<<n1<<" "<<iF2<<" "<<n2<<" "<<aVal<<"} ";
+      di << "{" << iF1 << " " << n1 << " " << iF2 << " " << n2 << " " << aVal << "} ";
     }
-    cout<<endl;
+    di << "\n";
   }
 
   // dump info on edges
   Standard_Integer nbAsync = aCheck.NbAsyncEdges();
   if (nbAsync > 0) {
-    cout<<"async edges:"<<endl;
+    di << "async edges:" << "\n";
     for (i=1; i <= nbAsync; i++) {
       Standard_Integer ie = aCheck.GetAsyncEdgeNum(i);
-      cout<<ie<<" ";
+      di << ie << " ";
     }
-    cout<<endl;
+    di << "\n";
   }
 
   // dump info on free nodes
   Standard_Integer nbFreeNodes = aCheck.NbFreeNodes();
   if (nbFreeNodes > 0) {
-    cout << "free nodes (in pairs: face / node): " << endl;
+    di << "free nodes (in pairs: face / node): " << "\n";
     for (i=1; i <= nbFreeNodes; i++) {
       Standard_Integer iface, inode;
       aCheck.GetFreeNodeNum(i, iface, inode);
-      cout << "{" << iface << " " << inode << "} ";
+      di << "{" << iface << " " << inode << "} ";
     }
-    cout << endl;
+    di << "\n";
   }
 
   // output errors summary to DRAW
@@ -401,6 +401,6 @@ static Standard_Integer tricheck (Draw_Interpretor& di, int n, const char ** a)
     di << "Free_links " << nbFree
        << " Cross_face_errors " << nbErr
        << " Async_edges " << nbAsync 
-       << " Free_nodes " << nbFreeNodes << " ";
+       << " Free_nodes " << nbFreeNodes << "\n";
   return 0;
 }