]> SALOME platform Git repositories - modules/shaper.git/blob - src/ModuleBase/ModuleBase_Tools.cpp
Salome HOME
Merge branch 'master' of newgeom:newgeom
[modules/shaper.git] / src / ModuleBase / ModuleBase_Tools.cpp
1 // File:        ModuleBase_Tools.cpp
2 // Created:     11 July 2014
3 // Author:      Vitaly Smetannikov
4
5 #include "ModuleBase_Tools.h"
6 #include <ModelAPI_ResultBody.h>
7 #include <ModelAPI_ResultConstruction.h>
8 #include <ModelAPI_Document.h>
9
10 namespace ModuleBase_Tools
11 {
12
13 //******************************************************************
14 boost::shared_ptr<GeomAPI_Shape> shape(ResultPtr theResult)
15 {
16   ResultBodyPtr aBody = boost::dynamic_pointer_cast<ModelAPI_ResultBody>(theResult);
17   if (aBody) return aBody->shape();
18   ResultConstructionPtr aConstruct = boost::dynamic_pointer_cast<ModelAPI_ResultConstruction>(theResult);
19   if (aConstruct) return aConstruct->shape();
20   return boost::shared_ptr<GeomAPI_Shape>();
21 }
22
23 //******************************************************************
24 FeaturePtr feature(ObjectPtr theObject)
25 {
26   FeaturePtr aFeature = boost::dynamic_pointer_cast<ModelAPI_Feature>(theObject);
27   if (!aFeature) {
28     ResultPtr aResult = boost::dynamic_pointer_cast<ModelAPI_Result>(theObject);
29     if (aResult) {
30       PluginManagerPtr aMgr = ModelAPI_PluginManager::get();
31       DocumentPtr aDoc = aMgr->rootDocument();
32       return aDoc->feature(aResult);
33     }
34   }
35   return aFeature;
36 }
37
38 }