1 // Copyright (C) 2014-20xx CEA/DEN, EDF R&D -->
3 // File: FeaturesAPI_Pipe.cpp
4 // Created: 09 June 2016
5 // Author: Dmitry Bobylev
7 #include "FeaturesAPI_Pipe.h"
9 #include <ModelHighAPI_Tools.h>
11 //==================================================================================================
12 FeaturesAPI_Pipe::FeaturesAPI_Pipe(const std::shared_ptr<ModelAPI_Feature>& theFeature)
13 : ModelHighAPI_Interface(theFeature)
18 //==================================================================================================
19 FeaturesAPI_Pipe::FeaturesAPI_Pipe(const std::shared_ptr<ModelAPI_Feature>& theFeature,
20 const std::list<ModelHighAPI_Selection>& theBaseObjects,
21 const ModelHighAPI_Selection& thePath)
22 : ModelHighAPI_Interface(theFeature)
25 fillAttribute(theBaseObjects, mybaseObjects);
30 //==================================================================================================
31 FeaturesAPI_Pipe::FeaturesAPI_Pipe(const std::shared_ptr<ModelAPI_Feature>& theFeature,
32 const std::list<ModelHighAPI_Selection>& theBaseObjects,
33 const ModelHighAPI_Selection& thePath,
34 const ModelHighAPI_Selection& theBiNoramal)
35 : ModelHighAPI_Interface(theFeature)
38 setByBasePathBiNormal(theBaseObjects, thePath, theBiNoramal);
42 //==================================================================================================
43 FeaturesAPI_Pipe::FeaturesAPI_Pipe(const std::shared_ptr<ModelAPI_Feature>& theFeature,
44 const std::list<ModelHighAPI_Selection>& theBaseObjects,
45 const ModelHighAPI_Selection& thePath,
46 const std::list<ModelHighAPI_Selection>& theLocations)
47 : ModelHighAPI_Interface(theFeature)
50 setByBasePathLocations(theBaseObjects, thePath, theLocations);
54 //==================================================================================================
55 FeaturesAPI_Pipe::~FeaturesAPI_Pipe()
60 //==================================================================================================
61 void FeaturesAPI_Pipe::setBase(const std::list<ModelHighAPI_Selection>& theBaseObjects)
63 fillAttribute(theBaseObjects, mybaseObjects);
68 //==================================================================================================
69 void FeaturesAPI_Pipe::setPath(const ModelHighAPI_Selection& thePath)
71 fillAttribute(thePath, mypath);
76 //==================================================================================================
77 void FeaturesAPI_Pipe::setByBasePath(const std::list<ModelHighAPI_Selection>& theBaseObjects,
78 const ModelHighAPI_Selection& thePath)
80 fillAttribute(FeaturesPlugin_Pipe::CREATION_METHOD_SIMPLE(), mycreationMethod);
81 fillAttribute(theBaseObjects, mybaseObjects);
82 fillAttribute(thePath, mypath);
87 //==================================================================================================
88 void FeaturesAPI_Pipe::setByBasePathBiNormal(const std::list<ModelHighAPI_Selection>& theBaseObjects,
89 const ModelHighAPI_Selection& thePath,
90 const ModelHighAPI_Selection& theBiNoramal)
92 fillAttribute(FeaturesPlugin_Pipe::CREATION_METHOD_BINORMAL(), mycreationMethod);
93 fillAttribute(theBaseObjects, mybaseObjects);
94 fillAttribute(thePath, mypath);
95 fillAttribute(theBiNoramal, mybiNormal);
100 //==================================================================================================
101 void FeaturesAPI_Pipe::setByBasePathLocations(const std::list<ModelHighAPI_Selection>& theBaseObjects,
102 const ModelHighAPI_Selection& thePath,
103 const std::list<ModelHighAPI_Selection>& theLocations)
105 fillAttribute(FeaturesPlugin_Pipe::CREATION_METHOD_LOCATIONS(), mycreationMethod);
106 fillAttribute(theBaseObjects, mybaseObjects);
107 fillAttribute(thePath, mypath);
108 fillAttribute(theLocations, mylocations);
113 //==================================================================================================
114 PipePtr addPipe(const std::shared_ptr<ModelAPI_Document>& thePart,
115 const std::list<ModelHighAPI_Selection>& theBaseObjects,
116 const ModelHighAPI_Selection& thePath)
118 std::shared_ptr<ModelAPI_Feature> aFeature = thePart->addFeature(FeaturesAPI_Pipe::ID());
119 return PipePtr(new FeaturesAPI_Pipe(aFeature, theBaseObjects, thePath));
122 //==================================================================================================
123 PipePtr addPipe(const std::shared_ptr<ModelAPI_Document>& thePart,
124 const std::list<ModelHighAPI_Selection>& theBaseObjects,
125 const ModelHighAPI_Selection& thePath,
126 const ModelHighAPI_Selection& theBiNoramal)
128 std::shared_ptr<ModelAPI_Feature> aFeature = thePart->addFeature(FeaturesAPI_Pipe::ID());
129 return PipePtr(new FeaturesAPI_Pipe(aFeature, theBaseObjects, thePath, theBiNoramal));
132 //==================================================================================================
133 PipePtr addPipe(const std::shared_ptr<ModelAPI_Document>& thePart,
134 const std::list<ModelHighAPI_Selection>& theBaseObjects,
135 const ModelHighAPI_Selection& thePath,
136 const std::list<ModelHighAPI_Selection>& theLocations)
138 std::shared_ptr<ModelAPI_Feature> aFeature = thePart->addFeature(FeaturesAPI_Pipe::ID());
139 return PipePtr(new FeaturesAPI_Pipe(aFeature, theBaseObjects, thePath, theLocations));