]> SALOME platform Git repositories - modules/shaper.git/commitdiff
Salome HOME
Debug of the external circle center selection.
authormpv <mpv@opencascade.com>
Thu, 27 Apr 2017 13:24:03 +0000 (16:24 +0300)
committermpv <mpv@opencascade.com>
Thu, 27 Apr 2017 13:24:03 +0000 (16:24 +0300)
src/Model/Model_AttributeSelection.cpp
src/PartSet/PartSet_WidgetSketchLabel.cpp

index 1ed05a9a73d23a9666d4bbb42cb2ed1b34df8e49..0ffaf4fea0ea6eb5e6bcdf207b33aa511c39ed14 100644 (file)
@@ -167,6 +167,7 @@ void Model_AttributeSelection::setValueCenter(
       TDataStd_UAttribute::Set(aSelLab, kELLIPSE_CENTER2);
       break;
     }
+    owner()->data()->sendAttributeUpdated(this);
   }
 }
 
@@ -278,6 +279,7 @@ std::shared_ptr<GeomAPI_Shape> Model_AttributeSelection::value()
       TopoDS_Shape aSelShape = aSelection->Get();
       aResult = std::shared_ptr<GeomAPI_Shape>(new GeomAPI_Shape);
       aResult->setImpl(new TopoDS_Shape(aSelShape));
+      return centerByEdge(aResult, aType);
     } else { // for simple construction element: just shape of this construction element
       std::shared_ptr<Model_ResultConstruction> aConstr =
         std::dynamic_pointer_cast<Model_ResultConstruction>(context());
@@ -291,7 +293,7 @@ std::shared_ptr<GeomAPI_Shape> Model_AttributeSelection::value()
       }
     }
   }
-  return aResult;
+  return aResult; // empty case
 }
 
 bool Model_AttributeSelection::isInvalid()
index b3a05a35c0db0141777a835669dfe9c108d36774..83f48e1f57fd74d54fa996cb8a9c23060fb8bfa0 100644 (file)
@@ -577,7 +577,7 @@ std::shared_ptr<GeomAPI_Dir>
   std::shared_ptr<GeomAPI_Pnt> anOrigPnt(new GeomAPI_Pnt(aCoords));
   // X axis is preferable to be dirX on the sketch
   const double tol = Precision::Confusion();
-  bool isX = fabs(anA - 1.0) < tol && fabs(aB) < tol && fabs(aC) < tol;
+  bool isX = fabs(fabs(anA) - 1.0) < tol && fabs(aB) < tol && fabs(aC) < tol;
   std::shared_ptr<GeomAPI_Dir> aTempDir(
       isX ? new GeomAPI_Dir(0, 1, 0) : new GeomAPI_Dir(1, 0, 0));
   std::shared_ptr<GeomAPI_Dir> aYDir(new GeomAPI_Dir(aNormDir->cross(aTempDir)));