bool isCombine = boolean(COMBINE_ID())->value();
if(anObjects.empty()/* || aTools.empty()*/) {
- std::string aFeatureError = "Not enough objects for partition operation";
+ std::string aFeatureError = "Error: Not enough objects for partition operation.";
setError(aFeatureError);
return;
}
if(isCombine) {
// Create single result.
- if(!aTools.empty()) {
- // This is a workaround for naming. Passing compound of objects as argument instead each object separately.
- std::shared_ptr<GeomAPI_Shape> aCompoud = GeomAlgoAPI_CompoundBuilder::compound(anObjects);
- anObjects.clear();
- anObjects.push_back(aCompoud);
- }
+ //if(!aTools.empty()) {
+ // // This is a workaround for naming. Passing compound of objects as argument instead each object separately.
+ // std::shared_ptr<GeomAPI_Shape> aCompoud = GeomAlgoAPI_CompoundBuilder::compound(anObjects);
+ // anObjects.clear();
+ // anObjects.push_back(aCompoud);
+ //}
std::shared_ptr<GeomAlgoAPI_Partition> aPartitionAlgo(new GeomAlgoAPI_Partition(anObjects, aTools));
// Checking that the algorithm worked properly.
if (!aPartitionAlgo->isDone()) {
- static const std::string aFeatureError = "Partition algorithm failed";
+ static const std::string aFeatureError = "Error: Partition algorithm failed.";
setError(aFeatureError);
return;
}
if (aPartitionAlgo->shape()->isNull()) {
- static const std::string aShapeError = "Resulting shape is Null";
+ static const std::string aShapeError = "Error: Resulting shape is Null.";
setError(aShapeError);
return;
}
if (!aPartitionAlgo->isValid()) {
- std::string aFeatureError = "Warning: resulting shape is not valid";
+ std::string aFeatureError = "Error: Resulting shape is not valid.";
setError(aFeatureError);
return;
}
std::shared_ptr<ModelAPI_ResultBody> aResultBody = document()->createBody(data(), aResultIndex);
aMakeShapeList.appendAlgo(aPartitionAlgo);
GeomAPI_DataMapOfShapeShape& aMapOfShapes = *aPartitionAlgo->mapOfSubShapes().get();
- loadNamingDS(aResultBody, anObjects.front(), aToolsForNaming, aPartitionAlgo->shape(), aMakeShapeList, aMapOfShapes);
+ std::shared_ptr<GeomAPI_Shape> aBaseShape = anObjects.front();
+ anObjects.pop_front();
+ aToolsForNaming.insert(aToolsForNaming.end(), anObjects.begin(), anObjects.end());
+ loadNamingDS(aResultBody, aBaseShape, aToolsForNaming, aPartitionAlgo->shape(), aMakeShapeList, aMapOfShapes);
setResult(aResultBody, aResultIndex);
aResultIndex++;
}
// Checking that the algorithm worked properly.
if (!aPartitionAlgo->isDone()) {
- static const std::string aFeatureError = "Partition algorithm failed";
+ static const std::string aFeatureError = "Error: Partition algorithm failed.";
setError(aFeatureError);
return;
}
if (aPartitionAlgo->shape()->isNull()) {
- static const std::string aShapeError = "Resulting shape is Null";
+ static const std::string aShapeError = "Error: Resulting shape is Null.";
setError(aShapeError);
return;
}
if (!aPartitionAlgo->isValid()) {
- std::string aFeatureError = "Warning: resulting shape is not valid";
+ std::string aFeatureError = "Error: Resulting shape is not valid.";
setError(aFeatureError);
return;
}