Salome HOME
Merge branch 'master' of newgeom:newgeom
[modules/shaper.git] / src / ConstructionPlugin / ConstructionPlugin_Point.cpp
1 // File:        ConstructionPlugin_Point.cxx
2 // Created:     27 Mar 2014
3 // Author:      Mikhail PONIKAROV
4
5 #include "ConstructionPlugin_Point.h"
6 #include "ModelAPI_PluginManager.h"
7 #include "ModelAPI_Document.h"
8 #include "ModelAPI_Data.h"
9 #include "ModelAPI_AttributeDouble.h"
10 #include <ModelAPI_ResultConstruction.h>
11 #include <GeomAlgoAPI_PointBuilder.h>
12 #include <GeomAPI_Pnt.h>
13
14 using namespace std;
15
16 ConstructionPlugin_Point::ConstructionPlugin_Point()
17 {
18 }
19
20 void ConstructionPlugin_Point::initAttributes()
21 {
22   data()->addAttribute(POINT_ATTR_X, ModelAPI_AttributeDouble::type());
23   data()->addAttribute(POINT_ATTR_Y, ModelAPI_AttributeDouble::type());
24   data()->addAttribute(POINT_ATTR_Z, ModelAPI_AttributeDouble::type());
25 }
26
27 void ConstructionPlugin_Point::execute() 
28 {
29   boost::shared_ptr<GeomAPI_Pnt> aPnt(new GeomAPI_Pnt(
30     data()->real(POINT_ATTR_X)->value(), 
31     data()->real(POINT_ATTR_Y)->value(), 
32     data()->real(POINT_ATTR_Z)->value()));
33
34   boost::shared_ptr<ModelAPI_ResultConstruction> aConstr = document()->createConstruction(data());
35   aConstr->setShape(GeomAlgoAPI_PointBuilder::point(aPnt));
36   setResult(aConstr);
37 }