- GeomAlgoAPI_Boolean* aFeature = new GeomAlgoAPI_Boolean(anObject, aTool, aType);
- if(aFeature && !aFeature->isDone()) {
- static const std::string aFeatureError = "Boolean feature: algorithm failed";
- setError(aFeatureError);
- return;
- }
- // Check if shape is valid
- if (aFeature->shape()->isNull()) {
- static const std::string aShapeError = "Boolean feature: resulting shape is Null";
- setError(aShapeError);
- return;
- }
- if(!aFeature->isValid()) {
- static const std::string aFeatureError = "Boolean feature: resulting shape is not valid";
- setError(aFeatureError);
- return;
- }
- // if result of Boolean operation is same as was before it means that Boolean operation has no sence
- // and naming provides no result, so, generate an error in this case
- if (anObject->isEqual(aFeature->shape())) {
- static const std::string aFeatureError = "Boolean feature: operation was not performed";
- setError(aFeatureError);
- return;
- }
- //LoadNamingDS
- LoadNamingDS(aFeature, aResultBody, anObject, aTool, aType);
-
- setResult(aResultBody);
-}
-
-//============================================================================
-void FeaturesPlugin_Boolean::LoadNamingDS(GeomAlgoAPI_Boolean* theFeature,
- std::shared_ptr<ModelAPI_ResultBody> theResultBody,
- std::shared_ptr<GeomAPI_Shape> theObject,
- std::shared_ptr<GeomAPI_Shape> theTool,
- int theType)
-{