Salome HOME
Delete key regression corrections: in previous implementation sketch entities did...
[modules/shaper.git] / src / ConstructionPlugin / ConstructionPlugin_Axis.cpp
index 280da1e7fd28869a24c27f8e23cc3189db3f5af1..8a6c2a5d0c23fb8ea0dad5ad7b35404771e1c90c 100644 (file)
@@ -44,7 +44,11 @@ void ConstructionPlugin_Axis::createAxisByTwoPoints()
   AttributeSelectionPtr aRef2 = data()->selection(ConstructionPlugin_Axis::POINT_SECOND());
   if ((aRef1.get() != NULL) && (aRef2.get() != NULL)) {
     GeomShapePtr aShape1 = aRef1->value();
+    if (!aShape1.get())
+      aShape1 = aRef1->context()->shape();
     GeomShapePtr aShape2 = aRef2->value();
+    if (!aShape2.get())
+      aShape2 = aRef2->context()->shape();
     if (aShape1->isVertex() && aShape2->isVertex() && (!aShape1->isEqual(aShape2))) {
       std::shared_ptr<GeomAPI_Pnt> aStart = GeomAlgoAPI_PointBuilder::point(aShape1);
       std::shared_ptr<GeomAPI_Pnt> anEnd = GeomAlgoAPI_PointBuilder::point(aShape2);
@@ -52,6 +56,7 @@ void ConstructionPlugin_Axis::createAxisByTwoPoints()
         std::shared_ptr<GeomAPI_Edge> anEdge = GeomAlgoAPI_EdgeBuilder::line(aStart, anEnd);
 
         ResultConstructionPtr aConstr = document()->createConstruction(data());
+        aConstr->setInfinite(true);
         aConstr->setShape(anEdge);
         setResult(aConstr);
       }
@@ -67,6 +72,7 @@ void ConstructionPlugin_Axis::createAxisByCylindricalFace()
       std::shared_ptr<GeomAPI_Edge> anEdge = GeomAlgoAPI_EdgeBuilder::cylinderAxis(aSelection);
 
       ResultConstructionPtr aConstr = document()->createConstruction(data());
+      aConstr->setInfinite(true);
       aConstr->setShape(anEdge);
       setResult(aConstr);
     }