Salome HOME
Remove extra includes
[modules/shaper.git] / src / PartSet / PartSet_WidgetShapeSelector.cpp
1 // File:        PartSet_WidgetShapeSelector.cpp
2 // Created:     27 Nov 2014
3 // Author:      Vitaly Smetannikov
4
5 #include "PartSet_WidgetShapeSelector.h"
6
7 #include <ModelAPI_AttributeRefAttr.h>
8 #include <PartSet_Tools.h>
9 #include <SketchPlugin_Feature.h>
10
11
12 bool PartSet_WidgetShapeSelector::storeValue() const
13 {
14   if (!mySelectedObject)
15     return false;
16
17   FeaturePtr aSelectedFeature = ModelAPI_Feature::feature(mySelectedObject);
18   if (aSelectedFeature == myFeature)  // In order to avoid selection of the same object
19     return false;
20
21   DataPtr aData = myFeature->data();
22   if (myUseSubShapes && myShape) {
23     AttributePtr aAttr = aData->attribute(attributeID());
24     AttributeRefAttrPtr aRefAttr = 
25       std::dynamic_pointer_cast<ModelAPI_AttributeRefAttr>(aAttr);
26     if (aRefAttr) {
27       TopoDS_Shape aShape = myShape->impl<TopoDS_Shape>();
28       AttributePtr aPntAttr = PartSet_Tools::findAttributeBy2dPoint(mySelectedObject, aShape, mySketch);
29       if (mySelectedObject)
30         aRefAttr->setObject(mySelectedObject);
31       if (aPntAttr)
32         aRefAttr->setAttr(aPntAttr);
33
34       updateObject(myFeature);
35       return true;
36     }
37   }
38   return ModuleBase_WidgetShapeSelector::storeValue();
39 }
40
41 //*********************************************
42 bool PartSet_WidgetConstraintShapeSelector::storeValue() const
43 {
44   FeaturePtr aFeature = ModelAPI_Feature::feature(mySelectedObject);
45   if (aFeature) {
46     std::shared_ptr<SketchPlugin_Feature> aSPFeature = 
47             std::dynamic_pointer_cast<SketchPlugin_Feature>(aFeature);
48     if ((!aSPFeature) && (!myShape->isNull())) {
49       ObjectPtr aObj = PartSet_Tools::createFixedObjectByEdge(myShape->impl<TopoDS_Shape>(),
50                                                               mySelectedObject, mySketch);
51       if (aObj) {
52         PartSet_WidgetConstraintShapeSelector* that = (PartSet_WidgetConstraintShapeSelector*) this;
53         that->mySelectedObject = aObj;
54       }
55     }
56   }
57   return ModuleBase_WidgetShapeSelector::storeValue();
58 }
59