1 // Copyright (C) 2014-20xx CEA/DEN, EDF R&D -->
3 // File: FeaturesAPI_ExtrusionBoolean.cpp
4 // Created: 09 June 2016
5 // Author: Dmitry Bobylev
7 #include "FeaturesAPI_ExtrusionBoolean.h"
9 #include <ModelHighAPI_Double.h>
10 #include <ModelHighAPI_Dumper.h>
11 #include <ModelHighAPI_Reference.h>
12 #include <ModelHighAPI_Tools.h>
14 //==================================================================================================
15 FeaturesAPI_ExtrusionBoolean::FeaturesAPI_ExtrusionBoolean(const std::shared_ptr<ModelAPI_Feature>& theFeature)
16 : ModelHighAPI_Interface(theFeature)
20 //==================================================================================================
21 FeaturesAPI_ExtrusionBoolean::~FeaturesAPI_ExtrusionBoolean()
25 //==================================================================================================
26 void FeaturesAPI_ExtrusionBoolean::setNestedSketch(const ModelHighAPI_Reference& theSketch)
28 mysketch->setValue(theSketch.feature());
29 // to inform that the history is updated due to the sketch moved under the composite feature
30 if (theSketch.feature().get())
31 theSketch.feature()->document()->updateHistory(ModelAPI_Feature::group());
32 mybaseObjects->clear();
33 mybaseObjects->append(theSketch.feature()->firstResult(), GeomShapePtr());
38 //==================================================================================================
39 void FeaturesAPI_ExtrusionBoolean::setBase(const std::list<ModelHighAPI_Selection>& theBaseObjects)
41 mysketch->setValue(ObjectPtr());
42 mybaseObjects->clear();
43 fillAttribute(theBaseObjects, mybaseObjects);
48 //==================================================================================================
49 void FeaturesAPI_ExtrusionBoolean::setDirection(const ModelHighAPI_Selection& theDirection)
51 fillAttribute(theDirection, mydirection);
56 //==================================================================================================
57 void FeaturesAPI_ExtrusionBoolean::setSizes(const ModelHighAPI_Double& theToSize,
58 const ModelHighAPI_Double& theFromSize)
60 fillAttribute(FeaturesPlugin_Extrusion::CREATION_METHOD_BY_SIZES(), mycreationMethod);
61 fillAttribute(theToSize, mytoSize);
62 fillAttribute(theFromSize, myfromSize);
67 //==================================================================================================
68 void FeaturesAPI_ExtrusionBoolean::setSize(const ModelHighAPI_Double& theSize)
70 fillAttribute(FeaturesPlugin_Extrusion::CREATION_METHOD_BY_SIZES(), mycreationMethod);
71 fillAttribute(theSize, mytoSize);
72 fillAttribute(ModelHighAPI_Double(), myfromSize);
77 //==================================================================================================
78 void FeaturesAPI_ExtrusionBoolean::setPlanesAndOffsets(const ModelHighAPI_Selection& theToObject,
79 const ModelHighAPI_Double& theToOffset,
80 const ModelHighAPI_Selection& theFromObject,
81 const ModelHighAPI_Double& theFromOffset)
83 fillAttribute(FeaturesPlugin_Extrusion::CREATION_METHOD_BY_PLANES(), mycreationMethod);
84 fillAttribute(theToObject, mytoObject);
85 fillAttribute(theToOffset, mytoOffset);
86 fillAttribute(theFromObject, myfromObject);
87 fillAttribute(theFromOffset, myfromOffset);
92 //==================================================================================================
93 void FeaturesAPI_ExtrusionBoolean::setBooleanObjects(const std::list<ModelHighAPI_Selection>& theBooleanObjects)
95 fillAttribute(theBooleanObjects, mybooleanObjects);
100 //==================================================================================================
101 void FeaturesAPI_ExtrusionBoolean::dump(ModelHighAPI_Dumper& theDumper) const
103 FeaturePtr aBase = feature();
104 const std::string& aDocName = theDumper.name(aBase->document());
106 AttributeReferencePtr anAttrSketch = aBase->reference(FeaturesPlugin_Extrusion::SKETCH_ID());
107 AttributeSelectionListPtr anAttrObjects = aBase->selectionList(FeaturesPlugin_Extrusion::BASE_OBJECTS_ID());
108 AttributeSelectionPtr anAttrDirection = aBase->selection(FeaturesPlugin_Extrusion::DIRECTION_OBJECT_ID());
110 theDumper << aBase << " = model.addExtrusion";
111 if(aBase->getKind() == FeaturesPlugin_ExtrusionCut::ID()) {
113 } else if(aBase->getKind() == FeaturesPlugin_ExtrusionFuse::ID()) {
116 theDumper << "(" << aDocName << ", ";
117 anAttrSketch->isInitialized() ? theDumper << "[]" : theDumper << anAttrObjects;
118 theDumper << ", " << anAttrDirection;
120 std::string aCreationMethod = aBase->string(FeaturesPlugin_Extrusion::CREATION_METHOD())->value();
122 if(aCreationMethod == FeaturesPlugin_Extrusion::CREATION_METHOD_BY_SIZES()) {
123 AttributeDoublePtr anAttrToSize = aBase->real(FeaturesPlugin_Extrusion::TO_SIZE_ID());
124 AttributeDoublePtr anAttrFromSize = aBase->real(FeaturesPlugin_Extrusion::FROM_SIZE_ID());
126 theDumper << ", " << anAttrToSize << ", " << anAttrFromSize;
127 } else if(aCreationMethod == FeaturesPlugin_Extrusion::CREATION_METHOD_BY_PLANES()) {
128 AttributeSelectionPtr anAttrToObject = aBase->selection(FeaturesPlugin_Extrusion::TO_OBJECT_ID());
129 AttributeDoublePtr anAttrToOffset = aBase->real(FeaturesPlugin_Extrusion::TO_OFFSET_ID());
130 AttributeSelectionPtr anAttrFromObject = aBase->selection(FeaturesPlugin_Extrusion::FROM_OBJECT_ID());
131 AttributeDoublePtr anAttrFromOffset = aBase->real(FeaturesPlugin_Extrusion::FROM_OFFSET_ID());
133 theDumper << ", " << anAttrToObject << ", " << anAttrToOffset << ", " << anAttrFromObject << ", " << anAttrFromOffset;
136 AttributeSelectionListPtr anAttrBoolObjects = aBase->selectionList(FeaturesPlugin_CompositeBoolean::OBJECTS_ID());
137 theDumper << ", " << anAttrBoolObjects << ")" << std::endl;
139 if(anAttrSketch->isInitialized()) {
140 theDumper << aBase << ".setNestedSketch(" << anAttrSketch << ")" << std::endl;
144 //==================================================================================================
145 void FeaturesAPI_ExtrusionBoolean::execIfBaseNotEmpty()
147 if(mybaseObjects->size() > 0) {
153 //==================================================================================================
154 FeaturesAPI_ExtrusionCut::FeaturesAPI_ExtrusionCut(const std::shared_ptr<ModelAPI_Feature>& theFeature)
155 : FeaturesAPI_ExtrusionBoolean(theFeature)
160 //==================================================================================================
161 FeaturesAPI_ExtrusionCut::FeaturesAPI_ExtrusionCut(const std::shared_ptr<ModelAPI_Feature>& theFeature,
162 const std::list<ModelHighAPI_Selection>& theBaseObjects,
163 const ModelHighAPI_Double& theSize,
164 const std::list<ModelHighAPI_Selection>& theBooleanObjects)
165 : FeaturesAPI_ExtrusionBoolean(theFeature)
168 fillAttribute(theBaseObjects, mybaseObjects);
169 fillAttribute(FeaturesPlugin_Extrusion::CREATION_METHOD_BY_SIZES(), mycreationMethod);
170 fillAttribute(theSize, mytoSize);
171 fillAttribute(ModelHighAPI_Double(), myfromSize);
172 setBooleanObjects(theBooleanObjects);
176 //==================================================================================================
177 FeaturesAPI_ExtrusionCut::FeaturesAPI_ExtrusionCut(const std::shared_ptr<ModelAPI_Feature>& theFeature,
178 const std::list<ModelHighAPI_Selection>& theBaseObjects,
179 const ModelHighAPI_Selection& theDirection,
180 const ModelHighAPI_Double& theSize,
181 const std::list<ModelHighAPI_Selection>& theBooleanObjects)
182 : FeaturesAPI_ExtrusionBoolean(theFeature)
185 fillAttribute(theBaseObjects, mybaseObjects);
186 fillAttribute(theDirection, mydirection);
187 fillAttribute(FeaturesPlugin_Extrusion::CREATION_METHOD_BY_SIZES(), mycreationMethod);
188 fillAttribute(theSize, mytoSize);
189 fillAttribute(ModelHighAPI_Double(), myfromSize);
190 setBooleanObjects(theBooleanObjects);
194 //==================================================================================================
195 FeaturesAPI_ExtrusionCut::FeaturesAPI_ExtrusionCut(const std::shared_ptr<ModelAPI_Feature>& theFeature,
196 const std::list<ModelHighAPI_Selection>& theBaseObjects,
197 const ModelHighAPI_Double& theToSize,
198 const ModelHighAPI_Double& theFromSize,
199 const std::list<ModelHighAPI_Selection>& theBooleanObjects)
200 : FeaturesAPI_ExtrusionBoolean(theFeature)
203 fillAttribute(theBaseObjects, mybaseObjects);
204 fillAttribute(FeaturesPlugin_Extrusion::CREATION_METHOD_BY_SIZES(), mycreationMethod);
205 fillAttribute(theToSize, mytoSize);
206 fillAttribute(theFromSize, myfromSize);
207 setBooleanObjects(theBooleanObjects);
211 //==================================================================================================
212 FeaturesAPI_ExtrusionCut::FeaturesAPI_ExtrusionCut(const std::shared_ptr<ModelAPI_Feature>& theFeature,
213 const std::list<ModelHighAPI_Selection>& theBaseObjects,
214 const ModelHighAPI_Selection& theDirection,
215 const ModelHighAPI_Double& theToSize,
216 const ModelHighAPI_Double& theFromSize,
217 const std::list<ModelHighAPI_Selection>& theBooleanObjects)
218 : FeaturesAPI_ExtrusionBoolean(theFeature)
221 fillAttribute(theBaseObjects, mybaseObjects);
222 fillAttribute(theDirection, mydirection);
223 fillAttribute(FeaturesPlugin_Extrusion::CREATION_METHOD_BY_SIZES(), mycreationMethod);
224 fillAttribute(theToSize, mytoSize);
225 fillAttribute(theFromSize, myfromSize);
226 setBooleanObjects(theBooleanObjects);
230 //==================================================================================================
231 FeaturesAPI_ExtrusionCut::FeaturesAPI_ExtrusionCut(const std::shared_ptr<ModelAPI_Feature>& theFeature,
232 const std::list<ModelHighAPI_Selection>& theBaseObjects,
233 const ModelHighAPI_Selection& theToObject,
234 const ModelHighAPI_Double& theToOffset,
235 const ModelHighAPI_Selection& theFromObject,
236 const ModelHighAPI_Double& theFromOffset,
237 const std::list<ModelHighAPI_Selection>& theBooleanObjects)
238 : FeaturesAPI_ExtrusionBoolean(theFeature)
241 fillAttribute(theBaseObjects, mybaseObjects);
242 fillAttribute(FeaturesPlugin_Extrusion::CREATION_METHOD_BY_PLANES(), mycreationMethod);
243 fillAttribute(theToObject, mytoObject);
244 fillAttribute(theToOffset, mytoOffset);
245 fillAttribute(theFromObject, myfromObject);
246 fillAttribute(theFromOffset, myfromOffset);
247 setBooleanObjects(theBooleanObjects);
251 //==================================================================================================
252 FeaturesAPI_ExtrusionCut::FeaturesAPI_ExtrusionCut(const std::shared_ptr<ModelAPI_Feature>& theFeature,
253 const std::list<ModelHighAPI_Selection>& theBaseObjects,
254 const ModelHighAPI_Selection& theDirection,
255 const ModelHighAPI_Selection& theToObject,
256 const ModelHighAPI_Double& theToOffset,
257 const ModelHighAPI_Selection& theFromObject,
258 const ModelHighAPI_Double& theFromOffset,
259 const std::list<ModelHighAPI_Selection>& theBooleanObjects)
260 : FeaturesAPI_ExtrusionBoolean(theFeature)
263 fillAttribute(theBaseObjects, mybaseObjects);
264 fillAttribute(theDirection, mydirection);
265 fillAttribute(FeaturesPlugin_Extrusion::CREATION_METHOD_BY_PLANES(), mycreationMethod);
266 fillAttribute(theToObject, mytoObject);
267 fillAttribute(theToOffset, mytoOffset);
268 fillAttribute(theFromObject, myfromObject);
269 fillAttribute(theFromOffset, myfromOffset);
270 setBooleanObjects(theBooleanObjects);
274 //==================================================================================================
275 ExtrusionCutPtr addExtrusionCut(const std::shared_ptr<ModelAPI_Document>& thePart,
276 const std::list<ModelHighAPI_Selection>& theBaseObjects,
277 const ModelHighAPI_Double& theSize,
278 const std::list<ModelHighAPI_Selection>& theBooleanObjects)
280 std::shared_ptr<ModelAPI_Feature> aFeature = thePart->addFeature(FeaturesPlugin_ExtrusionCut::ID());
281 return ExtrusionCutPtr(new FeaturesAPI_ExtrusionCut(aFeature, theBaseObjects, theSize, theBooleanObjects));
284 //==================================================================================================
285 ExtrusionCutPtr addExtrusionCut(const std::shared_ptr<ModelAPI_Document>& thePart,
286 const std::list<ModelHighAPI_Selection>& theBaseObjects,
287 const ModelHighAPI_Selection& theDirection,
288 const ModelHighAPI_Double& theSize,
289 const std::list<ModelHighAPI_Selection>& theBooleanObjects)
291 std::shared_ptr<ModelAPI_Feature> aFeature = thePart->addFeature(FeaturesPlugin_ExtrusionCut::ID());
292 return ExtrusionCutPtr(new FeaturesAPI_ExtrusionCut(aFeature, theBaseObjects, theDirection, theSize, theBooleanObjects));
295 //==================================================================================================
296 ExtrusionCutPtr addExtrusionCut(const std::shared_ptr<ModelAPI_Document>& thePart,
297 const std::list<ModelHighAPI_Selection>& theBaseObjects,
298 const ModelHighAPI_Double& theToSize,
299 const ModelHighAPI_Double& theFromSize,
300 const std::list<ModelHighAPI_Selection>& theBooleanObjects)
302 std::shared_ptr<ModelAPI_Feature> aFeature = thePart->addFeature(FeaturesPlugin_ExtrusionCut::ID());
303 return ExtrusionCutPtr(new FeaturesAPI_ExtrusionCut(aFeature, theBaseObjects, theToSize, theFromSize, theBooleanObjects));
306 //==================================================================================================
307 ExtrusionCutPtr addExtrusionCut(const std::shared_ptr<ModelAPI_Document>& thePart,
308 const std::list<ModelHighAPI_Selection>& theBaseObjects,
309 const ModelHighAPI_Selection& theDirection,
310 const ModelHighAPI_Double& theToSize,
311 const ModelHighAPI_Double& theFromSize,
312 const std::list<ModelHighAPI_Selection>& theBooleanObjects)
314 std::shared_ptr<ModelAPI_Feature> aFeature = thePart->addFeature(FeaturesPlugin_ExtrusionCut::ID());
315 return ExtrusionCutPtr(new FeaturesAPI_ExtrusionCut(aFeature,
323 //==================================================================================================
324 ExtrusionCutPtr addExtrusionCut(const std::shared_ptr<ModelAPI_Document>& thePart,
325 const std::list<ModelHighAPI_Selection>& theBaseObjects,
326 const ModelHighAPI_Selection& theToObject,
327 const ModelHighAPI_Double& theToOffset,
328 const ModelHighAPI_Selection& theFromObject,
329 const ModelHighAPI_Double& theFromOffset,
330 const std::list<ModelHighAPI_Selection>& theBooleanObjects)
332 std::shared_ptr<ModelAPI_Feature> aFeature = thePart->addFeature(FeaturesPlugin_ExtrusionCut::ID());
333 return ExtrusionCutPtr(new FeaturesAPI_ExtrusionCut(aFeature,
342 //==================================================================================================
343 ExtrusionCutPtr addExtrusionCut(const std::shared_ptr<ModelAPI_Document>& thePart,
344 const std::list<ModelHighAPI_Selection>& theBaseObjects,
345 const ModelHighAPI_Selection& theDirection,
346 const ModelHighAPI_Selection& theToObject,
347 const ModelHighAPI_Double& theToOffset,
348 const ModelHighAPI_Selection& theFromObject,
349 const ModelHighAPI_Double& theFromOffset,
350 const std::list<ModelHighAPI_Selection>& theBooleanObjects)
352 std::shared_ptr<ModelAPI_Feature> aFeature = thePart->addFeature(FeaturesPlugin_ExtrusionCut::ID());
353 return ExtrusionCutPtr(new FeaturesAPI_ExtrusionCut(aFeature,
364 //==================================================================================================
365 FeaturesAPI_ExtrusionFuse::FeaturesAPI_ExtrusionFuse(const std::shared_ptr<ModelAPI_Feature>& theFeature)
366 : FeaturesAPI_ExtrusionBoolean(theFeature)
371 //==================================================================================================
372 FeaturesAPI_ExtrusionFuse::FeaturesAPI_ExtrusionFuse(const std::shared_ptr<ModelAPI_Feature>& theFeature,
373 const std::list<ModelHighAPI_Selection>& theBaseObjects,
374 const ModelHighAPI_Double& theSize,
375 const std::list<ModelHighAPI_Selection>& theBooleanObjects)
376 : FeaturesAPI_ExtrusionBoolean(theFeature)
379 fillAttribute(theBaseObjects, mybaseObjects);
380 fillAttribute(FeaturesPlugin_Extrusion::CREATION_METHOD_BY_SIZES(), mycreationMethod);
381 fillAttribute(theSize, mytoSize);
382 fillAttribute(ModelHighAPI_Double(), myfromSize);
383 setBooleanObjects(theBooleanObjects);
387 //==================================================================================================
388 FeaturesAPI_ExtrusionFuse::FeaturesAPI_ExtrusionFuse(const std::shared_ptr<ModelAPI_Feature>& theFeature,
389 const std::list<ModelHighAPI_Selection>& theBaseObjects,
390 const ModelHighAPI_Selection& theDirection,
391 const ModelHighAPI_Double& theSize,
392 const std::list<ModelHighAPI_Selection>& theBooleanObjects)
393 : FeaturesAPI_ExtrusionBoolean(theFeature)
396 fillAttribute(theBaseObjects, mybaseObjects);
397 fillAttribute(theDirection, mydirection);
398 fillAttribute(FeaturesPlugin_Extrusion::CREATION_METHOD_BY_SIZES(), mycreationMethod);
399 fillAttribute(theSize, mytoSize);
400 fillAttribute(ModelHighAPI_Double(), myfromSize);
401 setBooleanObjects(theBooleanObjects);
405 //==================================================================================================
406 FeaturesAPI_ExtrusionFuse::FeaturesAPI_ExtrusionFuse(const std::shared_ptr<ModelAPI_Feature>& theFeature,
407 const std::list<ModelHighAPI_Selection>& theBaseObjects,
408 const ModelHighAPI_Double& theToSize,
409 const ModelHighAPI_Double& theFromSize,
410 const std::list<ModelHighAPI_Selection>& theBooleanObjects)
411 : FeaturesAPI_ExtrusionBoolean(theFeature)
414 fillAttribute(theBaseObjects, mybaseObjects);
415 fillAttribute(FeaturesPlugin_Extrusion::CREATION_METHOD_BY_SIZES(), mycreationMethod);
416 fillAttribute(theToSize, mytoSize);
417 fillAttribute(theFromSize, myfromSize);
418 setBooleanObjects(theBooleanObjects);
422 //==================================================================================================
423 FeaturesAPI_ExtrusionFuse::FeaturesAPI_ExtrusionFuse(const std::shared_ptr<ModelAPI_Feature>& theFeature,
424 const std::list<ModelHighAPI_Selection>& theBaseObjects,
425 const ModelHighAPI_Selection& theDirection,
426 const ModelHighAPI_Double& theToSize,
427 const ModelHighAPI_Double& theFromSize,
428 const std::list<ModelHighAPI_Selection>& theBooleanObjects)
429 : FeaturesAPI_ExtrusionBoolean(theFeature)
432 fillAttribute(theBaseObjects, mybaseObjects);
433 fillAttribute(theDirection, mydirection);
434 fillAttribute(FeaturesPlugin_Extrusion::CREATION_METHOD_BY_SIZES(), mycreationMethod);
435 fillAttribute(theToSize, mytoSize);
436 fillAttribute(theFromSize, myfromSize);
437 setBooleanObjects(theBooleanObjects);
441 //==================================================================================================
442 FeaturesAPI_ExtrusionFuse::FeaturesAPI_ExtrusionFuse(const std::shared_ptr<ModelAPI_Feature>& theFeature,
443 const std::list<ModelHighAPI_Selection>& theBaseObjects,
444 const ModelHighAPI_Selection& theToObject,
445 const ModelHighAPI_Double& theToOffset,
446 const ModelHighAPI_Selection& theFromObject,
447 const ModelHighAPI_Double& theFromOffset,
448 const std::list<ModelHighAPI_Selection>& theBooleanObjects)
449 : FeaturesAPI_ExtrusionBoolean(theFeature)
452 fillAttribute(theBaseObjects, mybaseObjects);
453 fillAttribute(FeaturesPlugin_Extrusion::CREATION_METHOD_BY_PLANES(), mycreationMethod);
454 fillAttribute(theToObject, mytoObject);
455 fillAttribute(theToOffset, mytoOffset);
456 fillAttribute(theFromObject, myfromObject);
457 fillAttribute(theFromOffset, myfromOffset);
458 setBooleanObjects(theBooleanObjects);
462 //==================================================================================================
463 FeaturesAPI_ExtrusionFuse::FeaturesAPI_ExtrusionFuse(const std::shared_ptr<ModelAPI_Feature>& theFeature,
464 const std::list<ModelHighAPI_Selection>& theBaseObjects,
465 const ModelHighAPI_Selection& theDirection,
466 const ModelHighAPI_Selection& theToObject,
467 const ModelHighAPI_Double& theToOffset,
468 const ModelHighAPI_Selection& theFromObject,
469 const ModelHighAPI_Double& theFromOffset,
470 const std::list<ModelHighAPI_Selection>& theBooleanObjects)
471 : FeaturesAPI_ExtrusionBoolean(theFeature)
474 fillAttribute(theBaseObjects, mybaseObjects);
475 fillAttribute(theDirection, mydirection);
476 fillAttribute(FeaturesPlugin_Extrusion::CREATION_METHOD_BY_PLANES(), mycreationMethod);
477 fillAttribute(theToObject, mytoObject);
478 fillAttribute(theToOffset, mytoOffset);
479 fillAttribute(theFromObject, myfromObject);
480 fillAttribute(theFromOffset, myfromOffset);
481 setBooleanObjects(theBooleanObjects);
485 //==================================================================================================
486 ExtrusionFusePtr addExtrusionFuse(const std::shared_ptr<ModelAPI_Document>& thePart,
487 const std::list<ModelHighAPI_Selection>& theBaseObjects,
488 const ModelHighAPI_Double& theSize,
489 const std::list<ModelHighAPI_Selection>& theBooleanObjects)
491 std::shared_ptr<ModelAPI_Feature> aFeature = thePart->addFeature(FeaturesPlugin_ExtrusionFuse::ID());
492 return ExtrusionFusePtr(new FeaturesAPI_ExtrusionFuse(aFeature, theBaseObjects, theSize, theBooleanObjects));
495 //==================================================================================================
496 ExtrusionFusePtr addExtrusionFuse(const std::shared_ptr<ModelAPI_Document>& thePart,
497 const std::list<ModelHighAPI_Selection>& theBaseObjects,
498 const ModelHighAPI_Selection& theDirection,
499 const ModelHighAPI_Double& theSize,
500 const std::list<ModelHighAPI_Selection>& theBooleanObjects)
502 std::shared_ptr<ModelAPI_Feature> aFeature = thePart->addFeature(FeaturesPlugin_ExtrusionFuse::ID());
503 return ExtrusionFusePtr(new FeaturesAPI_ExtrusionFuse(aFeature, theBaseObjects, theDirection, theSize, theBooleanObjects));
506 //==================================================================================================
507 ExtrusionFusePtr addExtrusionFuse(const std::shared_ptr<ModelAPI_Document>& thePart,
508 const std::list<ModelHighAPI_Selection>& theBaseObjects,
509 const ModelHighAPI_Double& theToSize,
510 const ModelHighAPI_Double& theFromSize,
511 const std::list<ModelHighAPI_Selection>& theBooleanObjects)
513 std::shared_ptr<ModelAPI_Feature> aFeature = thePart->addFeature(FeaturesPlugin_ExtrusionFuse::ID());
514 return ExtrusionFusePtr(new FeaturesAPI_ExtrusionFuse(aFeature, theBaseObjects, theToSize, theFromSize, theBooleanObjects));
517 //==================================================================================================
518 ExtrusionFusePtr addExtrusionFuse(const std::shared_ptr<ModelAPI_Document>& thePart,
519 const std::list<ModelHighAPI_Selection>& theBaseObjects,
520 const ModelHighAPI_Selection& theDirection,
521 const ModelHighAPI_Double& theToSize,
522 const ModelHighAPI_Double& theFromSize,
523 const std::list<ModelHighAPI_Selection>& theBooleanObjects)
525 std::shared_ptr<ModelAPI_Feature> aFeature = thePart->addFeature(FeaturesPlugin_ExtrusionFuse::ID());
526 return ExtrusionFusePtr(new FeaturesAPI_ExtrusionFuse(aFeature,
534 //==================================================================================================
535 ExtrusionFusePtr addExtrusionFuse(const std::shared_ptr<ModelAPI_Document>& thePart,
536 const std::list<ModelHighAPI_Selection>& theBaseObjects,
537 const ModelHighAPI_Selection& theToObject,
538 const ModelHighAPI_Double& theToOffset,
539 const ModelHighAPI_Selection& theFromObject,
540 const ModelHighAPI_Double& theFromOffset,
541 const std::list<ModelHighAPI_Selection>& theBooleanObjects)
543 std::shared_ptr<ModelAPI_Feature> aFeature = thePart->addFeature(FeaturesPlugin_ExtrusionFuse::ID());
544 return ExtrusionFusePtr(new FeaturesAPI_ExtrusionFuse(aFeature,
553 //==================================================================================================
554 ExtrusionFusePtr addExtrusionFuse(const std::shared_ptr<ModelAPI_Document>& thePart,
555 const std::list<ModelHighAPI_Selection>& theBaseObjects,
556 const ModelHighAPI_Selection& theDirection,
557 const ModelHighAPI_Selection& theToObject,
558 const ModelHighAPI_Double& theToOffset,
559 const ModelHighAPI_Selection& theFromObject,
560 const ModelHighAPI_Double& theFromOffset,
561 const std::list<ModelHighAPI_Selection>& theBooleanObjects)
563 std::shared_ptr<ModelAPI_Feature> aFeature = thePart->addFeature(FeaturesPlugin_ExtrusionFuse::ID());
564 return ExtrusionFusePtr(new FeaturesAPI_ExtrusionFuse(aFeature,