setPoint(aX, aY);
}
else {
+ if (getPoint2d(aView, aShape, aX, aY))
+ setPoint(aX, aY);
setConstraintWith(aObject);
emit vertexSelected();
emit focusOutWidget(this);
// do not set a coincidence constraint in the attribute if the feature contains a point
// with the same coordinates. It is important for line creation in order to do not set
// the same constraints for the same points, oterwise the result line has zero length.
- if (getPoint2d(aView, aShape, aX, aY))
+ if (getPoint2d(aView, aShape, aX, aY)) {
+ setPoint(aX, aY);
PartSet_Tools::setConstraints(mySketch, feature(), attributeID(), aX, aY);
+ }
else if (aShape.ShapeType() == TopAbs_EDGE) {
if (MyFeaturesForCoincedence.contains(myFeature->getKind().c_str()))
setConstraintWith(aObject);
std::list<AttributePtr> anAttributes =
myFeature->data()->attributes(GeomDataAPI_Point2D::typeId());
std::list<AttributePtr>::iterator anIter = anAttributes.begin();
- for(; anIter != anAttributes.end(); anIter++) {
+ for(; anIter != anAttributes.end() && !aPointIsFound; anIter++) {
AttributePoint2DPtr aPoint2DAttribute =
std::dynamic_pointer_cast<GeomDataAPI_Point2D>(*anIter);
if (aPoint2DAttribute == aWidgetAttribute)
continue;
- if (aPoint2DAttribute.get()) {
+ if (aPoint2DAttribute.get() && aPoint2DAttribute->isInitialized()) {
aPointIsFound = aPoint2DAttribute->pnt()->isEqual(aPnt2d);
}
}