1 // File: PartSet_OperationSketch.h
2 // Created: 20 Apr 2014
3 // Author: Natalia ERMOLAEVA
5 #include <PartSet_OperationSketch.h>
6 #include <PartSet_Tools.h>
8 #include <SketchPlugin_Sketch.h>
9 #include <SketchPlugin_ConstraintLength.h>
11 #include <ModelAPI_Data.h>
12 #include <ModelAPI_AttributeDouble.h>
13 #include <ModelAPI_AttributeRefList.h>
14 #include <ModelAPI_Events.h>
16 #include <GeomAlgoAPI_FaceBuilder.h>
17 #include <GeomDataAPI_Point.h>
18 #include <GeomDataAPI_Dir.h>
19 #include <GeomAPI_XYZ.h>
21 #include <ModuleBase_ViewerPrs.h>
22 #include <ModuleBase_ISelection.h>
23 #include <ModuleBase_IViewer.h>
24 #include <Events_Loop.h>
30 #include <QMouseEvent>
34 PartSet_OperationSketch::PartSet_OperationSketch(const QString& theId, QObject* theParent)
35 : ModuleBase_Operation(theId, theParent)
39 PartSet_OperationSketch::~PartSet_OperationSketch()
43 bool PartSet_OperationSketch::isNestedOperationsEnabled() const
45 bool aHasSketchPlane = false;
47 std::shared_ptr<ModelAPI_Data> aData = feature()->data();
48 AttributeDoublePtr anAttr;
49 std::shared_ptr<GeomDataAPI_Dir> aNormal = std::dynamic_pointer_cast<GeomDataAPI_Dir>(
50 aData->attribute(SketchPlugin_Sketch::NORM_ID()));
51 aHasSketchPlane = aNormal && !(aNormal->x() == 0 && aNormal->y() == 0 && aNormal->z() == 0);
53 return aHasSketchPlane;