ModuleBase_WidgetValueFeature* aFeatureValue =
dynamic_cast<ModuleBase_WidgetValueFeature*>(theValue);
if (aFeatureValue) {
- setPoint(aFeatureValue->feature(), aFeatureValue->point());
- isDone = true;
+ boost::shared_ptr<GeomAPI_Pnt2d> aPnt = aFeatureValue->point();
+ ObjectPtr aObject = aFeatureValue->object();
+ FeaturePtr aFeature = boost::dynamic_pointer_cast<ModelAPI_Feature>(aObject);
+ if (aFeature && aPnt) {
+ setPoint(aFeature, aPnt);
+ isDone = true;
+ }
}
}
return isDone;
boost::shared_ptr<ModelAPI_Data> aData = theFeature->data();
boost::shared_ptr<GeomDataAPI_Point2D> aPoint = boost::dynamic_pointer_cast<GeomDataAPI_Point2D>
(aData->attribute(myFirstPntName));
+ if (!aPoint) return;
+
double aRadius = thePnt->distance(aPoint->pnt());
AttributeDoublePtr aReal = aData->real(attributeID());
if (aReal && (aReal->value() != aRadius)) {