1 // File: PartSet_WidgetShapeSelector.cpp
2 // Created: 27 Nov 2014
3 // Author: Vitaly Smetannikov
5 #include "PartSet_WidgetShapeSelector.h"
7 #include <ModelAPI_AttributeRefAttr.h>
8 #include <PartSet_Tools.h>
11 bool PartSet_WidgetShapeSelector::storeValue() const
13 if (!mySelectedObject)
16 FeaturePtr aSelectedFeature = ModelAPI_Feature::feature(mySelectedObject);
17 if (aSelectedFeature == myFeature) // In order to avoid selection of the same object
20 DataPtr aData = myFeature->data();
21 if (myUseSubShapes && myShape) {
22 AttributePtr aAttr = aData->attribute(attributeID());
23 AttributeRefAttrPtr aRefAttr =
24 std::dynamic_pointer_cast<ModelAPI_AttributeRefAttr>(aAttr);
26 TopoDS_Shape aShape = myShape->impl<TopoDS_Shape>();
27 AttributePtr aPntAttr = PartSet_Tools::findAttributeBy2dPoint(mySelectedObject, aShape, mySketch);
29 aRefAttr->setObject(mySelectedObject);
31 aRefAttr->setAttr(aPntAttr);
33 updateObject(myFeature);
37 return ModuleBase_WidgetShapeSelector::storeValue();