Salome HOME
Correct processing of the fixed arc in PlaneGCS (issue #1280)
[modules/shaper.git] / src / SketchSolver / SketchSolver_ConstraintMulti.cpp
index 96fa9ea2f8f3e2ab7eebc2feb1a2c33f3680aaf0..404c5df7fb455fc6d0707e592d7ae33f00bc5450 100644 (file)
@@ -7,7 +7,9 @@
 #include <ModelAPI_AttributeRefAttr.h>
 #include <ModelAPI_AttributeRefList.h>
 #include <SketchPlugin_Arc.h>
+#include <SketchPlugin_Circle.h>
 #include <SketchPlugin_Line.h>
+#include <SketchPlugin_Point.h>
 
 void SketchSolver_ConstraintMulti::getEntities(std::list<EntityWrapperPtr>& theEntities)
 {
@@ -155,8 +157,10 @@ void SketchSolver_ConstraintMulti::adjustConstraint()
       } else if (aFeature->getKind() == SketchPlugin_Line::ID()) {
         aPoints.push_back(aFeature->attribute(SketchPlugin_Line::START_ID()));
         aPoints.push_back(aFeature->attribute(SketchPlugin_Line::END_ID()));
-      } else
-        aPoints = aFeature->data()->attributes(GeomDataAPI_Point2D::typeId());
+      } else if (aFeature->getKind() == SketchPlugin_Circle::ID())
+        aPoints.push_back(aFeature->attribute(SketchPlugin_Circle::CENTER_ID()));
+      else if (aFeature->getKind() == SketchPlugin_Point::ID())
+        aPoints.push_back(aFeature->attribute(SketchPlugin_Point::COORD_ID()));
 
       std::list<AttributePtr>::iterator aPtIt = aPoints.begin();
       for (aXIt = aX.begin(), aYIt = aY.begin(); aPtIt != aPoints.end(); ++aXIt, ++aYIt, ++aPtIt) {