#include <ModelAPI_AttributeSelectionList.h>
#include <ModelAPI_ResultBody.h>
+#include <GeomAlgoAPI_Copy.h>
+
//=================================================================================================
BuildPlugin_Edge::BuildPlugin_Edge()
{
return;
}
+ // Copy shape.
+ GeomAlgoAPI_Copy aCopyAlgo(aShape);
+
+ // Check that algo is done.
+ if(!aCopyAlgo.isDone()) {
+ setError("Error: " + getKind() + " algorithm failed.");
+ return;
+ }
+
+ // Check if shape is not null.
+ if(!aCopyAlgo.shape().get() || aCopyAlgo.shape()->isNull()) {
+ setError("Error: Resulting shape is null.");
+ return;
+ }
+
+ // Check that resulting shape is valid.
+ if(!aCopyAlgo.isValid()) {
+ setError("Error: Resulting shape is not valid.");
+ return;
+ }
+
// Store result.
ResultBodyPtr aResultBody = document()->createBody(data(), aResultIndex);
- aResultBody->store(aShape);
+ aResultBody->storeModified(aShape, aCopyAlgo.shape());
+ std::shared_ptr<GeomAPI_DataMapOfShapeShape> aSubShapes = aCopyAlgo.mapOfSubShapes();
+ int aModVertexTag = 1;
+ std::string aModVertexName = "Modified_Vertex";
+ aResultBody->loadAndOrientModifiedShapes(&aCopyAlgo, aShape, GeomAPI_Shape::VERTEX,
+ aModVertexTag, aModVertexName, *aSubShapes.get());
+
setResult(aResultBody, aResultIndex);
++aResultIndex;
}