Salome HOME
7fb20f0798af5a74af220aebc6a835e99173ccda
[modules/shaper.git] / src / SketchPlugin / SketchPlugin_Sketch.cpp
1 // File:        SketchPlugin_Sketch.cxx
2 // Created:     27 Mar 2014
3 // Author:      Mikhail PONIKAROV
4
5 #include "SketchPlugin_Sketch.h"
6 #include "ModelAPI_Data.h"
7 #include "ModelAPI_AttributeDocRef.h"
8
9 using namespace std;
10 #include <gp_Pln.hxx>
11 #include <gp_Dir.hxx>
12 #include <gp_Vec.hxx>
13
14 #include <TopoDS.hxx>
15 #include <TopoDS_Shape.hxx>
16
17 #include <BRep_Tool.hxx>
18 #include <BRep_Builder.hxx>
19 #include <BRepBuilderAPI_MakeFace.hxx>
20
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;
25
26 SketchPlugin_Sketch::SketchPlugin_Sketch()
27 {
28 }
29
30 void SketchPlugin_Sketch::initAttributes()
31 {
32   data()->addAttribute(PART_ATTR_DOC_REF, ModelAPI_AttributeDocRef::type());
33 }
34
35 void SketchPlugin_Sketch::execute() 
36 {
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()));
41   }*/
42 }
43
44 const TopoDS_Shape& SketchPlugin_Sketch::preview()
45 {
46   if (SketchPlugin_Feature::preview().IsNull())
47   {
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,
52                                          PLANE_V_MAX);
53     setPreview(aFaceBuilder.Face());
54   }
55   return SketchPlugin_Feature::preview();
56 }