}
}
const std::list<ObjectPtr>& anObjects = anInfo.second;
- std::shared_ptr<GeomAPI_Pnt2d> aPoint2D = sketch()->to2D(aPoint);
for (std::list<ObjectPtr>::const_iterator anObjectIt = anObjects.begin();
anObjectIt != anObjects.end(); anObjectIt++) {
- ObjectPtr anObject = *anObjectIt;
- // find an attribute on the point feature and if it is, append it into attribute list
- // the case when the feature just touch the source feature, not intersect
- FeaturePtr aRefFeature = ModelAPI_Feature::feature(anObject);
- std::list<std::shared_ptr<ModelAPI_Attribute> > anAttributes =
- aRefFeature->data()->attributes(GeomDataAPI_Point2D::typeId());
- bool aFoundAttribute = false;
- for (std::list<std::shared_ptr<ModelAPI_Attribute> >::const_iterator
- aPntAttrIt = anAttributes.begin(); aPntAttrIt != anAttributes.end(); aPntAttrIt++) {
- std::shared_ptr<GeomDataAPI_Point2D> anAttrPoint =
- std::dynamic_pointer_cast<GeomDataAPI_Point2D>(*aPntAttrIt);
- if (anAttrPoint->pnt()->isEqual(aPoint2D)) {
- createConstraint(SketchPlugin_ConstraintCoincidence::ID(), aPointAttribute, anAttrPoint);
- aFoundAttribute = true;
- break;
- }
- }
- if (!aFoundAttribute)
- createConstraintToObject(SketchPlugin_ConstraintCoincidence::ID(), aPointAttribute,
- anObject);
+ createConstraintToObject(SketchPlugin_ConstraintCoincidence::ID(), aPointAttribute,
+ *anObjectIt);
}
}