]> SALOME platform Git repositories - modules/hydro.git/commitdiff
Salome HOME
refs #1002
authorisn <isn@opencascade.com>
Thu, 24 Nov 2016 13:42:39 +0000 (16:42 +0300)
committerisn <isn@opencascade.com>
Thu, 24 Nov 2016 13:43:05 +0000 (16:43 +0300)
src/HYDROGUI/HYDROGUI_Polyline.cxx

index 7225e2e690591fd4a35a81ea4140d84fd5203024..ccd259aaad68daa94cfcbbb0fd82307f8e6ed7a8 100644 (file)
@@ -87,10 +87,20 @@ void HYDROGUI_Polyline::Compute(const Handle(PrsMgr_PresentationManager3d)& aPre
   Handle(Graphic3d_AspectLine3d) anAspect = new Graphic3d_AspectLine3d( aColor, aType, anWidth );
 
   TopExp_Explorer Exp1 ( myshape, TopAbs_EDGE );
+  Bnd_Box BB;
+  BRepBndLib::AddClose(myshape, BB);
+  double xmin, xmax, ymin, ymax, zmin, zmax;
+  double devCoeff = 0.1;
+  if (!BB.IsVoid())
+  {
+    BB.Get(xmin, ymin, zmin, xmax, ymax, zmax); //ignore Z coord
+    double minSide = Min(Abs(xmax - xmin), Abs(ymax - ymin));
+    devCoeff = minSide > 50 ? 0.1 : minSide / 500;
+  }
   for ( ; Exp1.More(); Exp1.Next() )
   {
     TopoDS_Edge anEdge = TopoDS::Edge( Exp1.Current() );
-    Handle( Graphic3d_ArrayOfPolylines ) anArray = BuildEdgePresentation( anEdge, 0.1 );
+    Handle( Graphic3d_ArrayOfPolylines ) anArray = BuildEdgePresentation( anEdge, devCoeff );
     if( !anArray.IsNull() )
     {
       aGroup->SetPrimitivesAspect( anAspect );