1 // File: SketchPlugin_Sketch.cxx
2 // Created: 27 Mar 2014
3 // Author: Mikhail PONIKAROV
5 #include "SketchPlugin_Sketch.h"
6 #include "ModelAPI_Data.h"
7 #include "ModelAPI_AttributeDocRef.h"
15 #include <TopoDS_Shape.hxx>
17 #include <BRep_Tool.hxx>
18 #include <BRep_Builder.hxx>
19 #include <BRepBuilderAPI_MakeFace.hxx>
21 const double PLANE_U_MIN = -100;
22 const double PLANE_U_MAX = 100;
23 const double PLANE_V_MIN = -100;
24 const double PLANE_V_MAX = 100;
26 SketchPlugin_Sketch::SketchPlugin_Sketch()
30 void SketchPlugin_Sketch::initAttributes()
32 data()->addAttribute(PART_ATTR_DOC_REF, ModelAPI_AttributeDocRef::type());
35 void SketchPlugin_Sketch::execute()
37 /*shared_ptr<ModelAPI_AttributeDocRef> aDocRef = data()->docRef(PART_ATTR_DOC_REF);
38 if (!aDocRef->value()) { // create a document if not yet created
39 shared_ptr<ModelAPI_Document> aPartSetDoc = ModelAPI_PluginManager::get()->rootDocument();
40 aDocRef->setValue(aPartSetDoc->subDocument(data()->getName()));
44 const TopoDS_Shape& SketchPlugin_Sketch::preview()
46 if (SketchPlugin_Feature::preview().IsNull())
48 gp_Pnt anOrigin(0, 0, 0);
49 gp_Dir aDir(gp_Vec(gp_Pnt(0,0,0), gp_Pnt(1,0,0)));
50 gp_Pln aPlane(anOrigin, aDir);
51 BRepBuilderAPI_MakeFace aFaceBuilder(aPlane, PLANE_U_MIN, PLANE_U_MAX, PLANE_V_MIN,
53 setPreview(aFaceBuilder.Face());
55 return SketchPlugin_Feature::preview();