diff --git a/src/Mod/Part/App/FeaturePartBoolean.cpp b/src/Mod/Part/App/FeaturePartBoolean.cpp
index f046826613..c5ac261543 100644
--- a/src/Mod/Part/App/FeaturePartBoolean.cpp
+++ b/src/Mod/Part/App/FeaturePartBoolean.cpp
@@ -33,6 +33,7 @@
#include
#include "FeaturePartBoolean.h"
+#include "TopoShapeOpCode.h"
#include "modelRefine.h"
@@ -70,6 +71,11 @@ short Boolean::mustExecute() const
return 0;
}
+const char *Boolean::opCode() const
+{
+ return Part::OpCodes::Boolean;
+}
+
App::DocumentObjectExecReturn* Boolean::execute()
{
try {
@@ -82,13 +88,16 @@ App::DocumentObjectExecReturn* Boolean::execute()
if (!base || !tool) {
return new App::DocumentObjectExecReturn("Linked object is not a Part object");
}
-
+ std::vector shapes;
+ shapes.reserve(2);
// Now, let's get the TopoDS_Shape
- TopoDS_Shape BaseShape = Feature::getShape(base);
+ shapes.push_back(Feature::getTopoShape(Base.getValue()));
+ auto BaseShape = shapes[0].getShape();
if (BaseShape.IsNull()) {
throw NullShapeException("Base shape is null");
}
- TopoDS_Shape ToolShape = Feature::getShape(tool);
+ shapes.push_back(Feature::getTopoShape(Tool.getValue()));
+ auto ToolShape = shapes[1].getShape();
if (ToolShape.IsNull()) {
throw NullShapeException("Tool shape is null");
}
@@ -123,8 +132,8 @@ App::DocumentObjectExecReturn* Boolean::execute()
}
#ifndef FC_USE_TNP_FIX
std::vector history;
- history.push_back(buildHistory(*mkBool.get(), TopAbs_FACE, resShape, BaseShape));
- history.push_back(buildHistory(*mkBool.get(), TopAbs_FACE, resShape, ToolShape));
+ history.push_back(buildHistory(*mkBool, TopAbs_FACE, resShape, BaseShape));
+ history.push_back(buildHistory(*mkBool, TopAbs_FACE, resShape, ToolShape));
if (this->Refine.getValue()) {
try {
@@ -144,7 +153,7 @@ App::DocumentObjectExecReturn* Boolean::execute()
this->History.setValues(history);
return App::DocumentObject::StdReturn;
#else
- TopoShape res(0, getDocument()->getStringHasher());
+ TopoShape res(0);
res.makeElementShape(*mkBool, shapes, opCode());
if (this->Refine.getValue()) {
res = res.makeElementRefine();
diff --git a/src/Mod/Part/App/FeaturePartBoolean.h b/src/Mod/Part/App/FeaturePartBoolean.h
index 0570fad18d..230e18c130 100644
--- a/src/Mod/Part/App/FeaturePartBoolean.h
+++ b/src/Mod/Part/App/FeaturePartBoolean.h
@@ -58,6 +58,7 @@ public:
protected:
virtual BRepAlgoAPI_BooleanOperation* makeOperation(const TopoDS_Shape&, const TopoDS_Shape&) const = 0;
+ virtual const char *opCode() const = 0;
};
}
diff --git a/src/Mod/Part/App/FeaturePartCommon.cpp b/src/Mod/Part/App/FeaturePartCommon.cpp
index 55985d9f57..3d7632ccb8 100644
--- a/src/Mod/Part/App/FeaturePartCommon.cpp
+++ b/src/Mod/Part/App/FeaturePartCommon.cpp
@@ -45,6 +45,11 @@ PROPERTY_SOURCE(Part::Common, Part::Boolean)
Common::Common() = default;
+const char *Common::opCode() const
+{
+ return Part::OpCodes::Common;
+}
+
BRepAlgoAPI_BooleanOperation* Common::makeOperation(const TopoDS_Shape& base, const TopoDS_Shape& tool) const
{
// Let's call algorithm computing a section operation:
diff --git a/src/Mod/Part/App/FeaturePartCommon.h b/src/Mod/Part/App/FeaturePartCommon.h
index 37c1f8e1d7..5a30a1ee26 100644
--- a/src/Mod/Part/App/FeaturePartCommon.h
+++ b/src/Mod/Part/App/FeaturePartCommon.h
@@ -41,6 +41,7 @@ public:
/// recalculate the Feature
protected:
BRepAlgoAPI_BooleanOperation* makeOperation(const TopoDS_Shape&, const TopoDS_Shape&) const override;
+ const char *opCode() const override;
//@}
};
diff --git a/src/Mod/Part/App/FeaturePartCut.cpp b/src/Mod/Part/App/FeaturePartCut.cpp
index c43705b17a..b559d76a79 100644
--- a/src/Mod/Part/App/FeaturePartCut.cpp
+++ b/src/Mod/Part/App/FeaturePartCut.cpp
@@ -26,7 +26,7 @@
#endif
#include "FeaturePartCut.h"
-
+#include "TopoShapeOpCode.h"
using namespace Part;
@@ -35,6 +35,11 @@ PROPERTY_SOURCE(Part::Cut, Part::Boolean)
Cut::Cut() = default;
+const char *Cut::opCode() const
+{
+ return Part::OpCodes::Cut;
+}
+
BRepAlgoAPI_BooleanOperation* Cut::makeOperation(const TopoDS_Shape& base, const TopoDS_Shape& tool) const
{
// Let's call algorithm computing a cut operation:
diff --git a/src/Mod/Part/App/FeaturePartCut.h b/src/Mod/Part/App/FeaturePartCut.h
index 7b6c357cc2..78562f68d5 100644
--- a/src/Mod/Part/App/FeaturePartCut.h
+++ b/src/Mod/Part/App/FeaturePartCut.h
@@ -41,6 +41,7 @@ public:
/// recalculate the Feature
protected:
BRepAlgoAPI_BooleanOperation* makeOperation(const TopoDS_Shape&, const TopoDS_Shape&) const override;
+ const char *opCode() const override;
//@}
};
diff --git a/src/Mod/Part/App/FeaturePartFuse.cpp b/src/Mod/Part/App/FeaturePartFuse.cpp
index 58df63f61b..42ef3827b9 100644
--- a/src/Mod/Part/App/FeaturePartFuse.cpp
+++ b/src/Mod/Part/App/FeaturePartFuse.cpp
@@ -35,6 +35,7 @@
#include "FeaturePartFuse.h"
#include "modelRefine.h"
+#include "TopoShapeOpCode.h"
using namespace Part;
@@ -50,6 +51,11 @@ BRepAlgoAPI_BooleanOperation* Fuse::makeOperation(const TopoDS_Shape& base, cons
return new BRepAlgoAPI_Fuse(base, tool);
}
+const char *Fuse::opCode() const
+{
+ return Part::OpCodes::Fuse;
+}
+
// ----------------------------------------------------
PROPERTY_SOURCE(Part::MultiFuse, Part::Feature)
@@ -97,9 +103,9 @@ App::DocumentObjectExecReturn *MultiFuse::execute()
compoundOfArguments = s[0];
if (compoundOfArguments.ShapeType() == TopAbs_COMPOUND){
s.clear();
- TopoDS_Iterator it(compoundOfArguments);
- for (; it.More(); it.Next()) {
- const TopoDS_Shape& aChild = it.Value();
+ TopoDS_Iterator it2(compoundOfArguments);
+ for (; it2.More(); it2.Next()) {
+ const TopoDS_Shape& aChild = it2.Value();
s.push_back(aChild);
}
argumentsAreInCompound = true;
@@ -116,10 +122,10 @@ App::DocumentObjectExecReturn *MultiFuse::execute()
throw Base::RuntimeError("Input shape is null");
shapeArguments.Append(shape);
- for (std::vector::iterator it = s.begin()+1; it != s.end(); ++it) {
- if (it->IsNull())
+ for (auto it2 = s.begin()+1; it2 != s.end(); ++it2) {
+ if (it2->IsNull())
throw Base::RuntimeError("Input shape is null");
- shapeTools.Append(*it);
+ shapeTools.Append(*it2);
}
mkFuse.SetArguments(shapeArguments);
@@ -129,8 +135,8 @@ App::DocumentObjectExecReturn *MultiFuse::execute()
throw Base::RuntimeError("MultiFusion failed");
TopoDS_Shape resShape = mkFuse.Shape();
- for (const auto & it : s) {
- history.push_back(buildHistory(mkFuse, TopAbs_FACE, resShape, it));
+ for (const auto & it2 : s) {
+ history.push_back(buildHistory(mkFuse, TopAbs_FACE, resShape, it2));
}
if (resShape.IsNull())
throw Base::RuntimeError("Resulting shape is null");
@@ -173,7 +179,7 @@ App::DocumentObjectExecReturn *MultiFuse::execute()
for(std::pair &histitem: history[iChild].shapeMap){ //loop over elements of history - that is - over faces of the child of source compound
int iFaceInChild = histitem.first;
ShapeHistory::List &iFacesInResult = histitem.second;
- TopoDS_Shape srcFace = facesOfChild(iFaceInChild + 1); //+1 to convert our 0-based to OCC 1-bsed conventions
+ const TopoDS_Shape& srcFace = facesOfChild(iFaceInChild + 1); //+1 to convert our 0-based to OCC 1-bsed conventions
int iFaceInCompound = facesOfCompound.FindIndex(srcFace)-1;
overallHist.shapeMap[iFaceInCompound] = iFacesInResult; //this may overwrite existing info if the same face is used in several children of compound. This shouldn't be a problem, because the histories should match anyway...
}
diff --git a/src/Mod/Part/App/FeaturePartFuse.h b/src/Mod/Part/App/FeaturePartFuse.h
index fdee701b5c..97ef64bde8 100644
--- a/src/Mod/Part/App/FeaturePartFuse.h
+++ b/src/Mod/Part/App/FeaturePartFuse.h
@@ -41,6 +41,7 @@ public:
/// recalculate the Feature
protected:
BRepAlgoAPI_BooleanOperation* makeOperation(const TopoDS_Shape&, const TopoDS_Shape&) const override;
+ const char *opCode() const override;
//@}
};
diff --git a/src/Mod/Part/App/FeaturePartSection.cpp b/src/Mod/Part/App/FeaturePartSection.cpp
index 04fd6c7431..42c6ef697b 100644
--- a/src/Mod/Part/App/FeaturePartSection.cpp
+++ b/src/Mod/Part/App/FeaturePartSection.cpp
@@ -27,7 +27,7 @@
#endif
#include "FeaturePartSection.h"
-
+#include "TopoShapeOpCode.h"
using namespace Part;
@@ -46,6 +46,12 @@ short Section::mustExecute() const
return 0;
}
+
+const char *Section::opCode() const
+{
+ return Part::OpCodes::Section;
+}
+
BRepAlgoAPI_BooleanOperation* Section::makeOperation(const TopoDS_Shape& base, const TopoDS_Shape& tool) const
{
// Let's call algorithm computing a section operation:
diff --git a/src/Mod/Part/App/FeaturePartSection.h b/src/Mod/Part/App/FeaturePartSection.h
index e00a0df137..c830d5243f 100644
--- a/src/Mod/Part/App/FeaturePartSection.h
+++ b/src/Mod/Part/App/FeaturePartSection.h
@@ -46,6 +46,7 @@ public:
short mustExecute() const override;
protected:
BRepAlgoAPI_BooleanOperation* makeOperation(const TopoDS_Shape&, const TopoDS_Shape&) const override;
+ virtual const char *opCode() const;
//@}
};
diff --git a/src/Mod/Part/App/TopoShape.h b/src/Mod/Part/App/TopoShape.h
index 9433f18a17..df56358cc9 100644
--- a/src/Mod/Part/App/TopoShape.h
+++ b/src/Mod/Part/App/TopoShape.h
@@ -1451,172 +1451,15 @@ public:
return TopoShape(0, Hasher).makeElementShape(mkShape, *this, op);
}
- /** Specialized shape making for BRepBuilderAPI_Sewing with mapped element name
- *
- * @param mkShape: OCCT shape maker.
- * @param sources: list of source shapes.
- * @param op: optional string to be encoded into topo naming for indicating
- * the operation
- *
- * @return The original content of this TopoShape is discarded and replaced
- * with the new shape built by the shape maker. The function
- * returns the TopoShape itself as a self reference so that
- * multiple operations can be carried out for the same shape in the
- * same line of code.
- */
- TopoShape& makeElementShape(BRepBuilderAPI_Sewing& mkShape,
- const std::vector& sources,
- const char* op = nullptr);
- /** Specialized shape making for BRepBuilderAPI_Sewing with mapped element name
- *
- * @param mkShape: OCCT shape maker.
- * @param source: source shape.
- * @param op: optional string to be encoded into topo naming for indicating
- * the operation
- *
- * @return The original content of this TopoShape is discarded and replaced
- * with the new shape built by the shape maker. The function
- * returns the TopoShape itself as a self reference so that
- * multiple operations can be carried out for the same shape in the
- * same line of code.
- */
- TopoShape& makeElementShape(BRepBuilderAPI_Sewing& mkShape,
- const TopoShape& source,
- const char* op = nullptr);
- /** Specialized shape making for BRepBuilderAPI_Sewing with mapped element name
- *
- * @param mkShape: OCCT shape maker.
- * @param op: optional string to be encoded into topo naming for indicating
- * the operation
- *
- * @return Returns the new shape built by the shape maker with mappend element
- * name generated using this shape as the source. The shape itself
- * is not modified.
- */
- TopoShape makeElementShape(BRepBuilderAPI_Sewing& mkShape, const char* op = nullptr) const
- {
- return TopoShape(0, Hasher).makeElementShape(mkShape, *this, op);
- }
-
- /** Specialized shape making for BRepBuilderAPI_ThruSections with mapped element name
- *
- * @param mkShape: OCCT shape maker.
- * @param sources: list of source shapes.
- * @param op: optional string to be encoded into topo naming for indicating
- * the operation
- *
- * @return The original content of this TopoShape is discarded and replaced
- * with the new shape built by the shape maker. The function
- * returns the TopoShape itself as a self reference so that
- * multiple operations can be carried out for the same shape in the
- * same line of code.
- */
- TopoShape& makeElementShape(BRepOffsetAPI_ThruSections& mkShape,
- const std::vector& sources,
- const char* op = nullptr);
- /** Specialized shape making for BRepBuilderAPI_Sewing with mapped element name
- *
- * @param mkShape: OCCT shape maker.
- * @param source: source shape.
- * @param op: optional string to be encoded into topo naming for indicating
- * the operation
- *
- * @return The original content of this TopoShape is discarded and replaced
- * with the new shape built by the shape maker. The function
- * returns the TopoShape itself as a self reference so that
- * multiple operations can be carried out for the same shape in the
- * same line of code.
- */
- TopoShape& makeElementShape(BRepOffsetAPI_ThruSections& mkShape,
- const TopoShape& source,
- const char* op = nullptr);
- /** Specialized shape making for BRepBuilderAPI_Sewing with mapped element name
- *
- * @param mkShape: OCCT shape maker.
- * @param op: optional string to be encoded into topo naming for indicating
- * the operation
- *
- * @return Returns the new shape built by the shape maker with mappend element
- * name generated using this shape as the source. The shape itself
- * is not modified.
- */
- TopoShape makeElementShape(BRepOffsetAPI_ThruSections& mkShape, const char* op = nullptr) const
- {
- return TopoShape(0, Hasher).makeElementShape(mkShape, *this, op);
- }
-
- /** Specialized shape making for BRepBuilderAPI_MakePipeShell with mapped element name
- *
- * @param mkShape: OCCT shape maker.
- * @param sources: list of source shapes.
- * @param op: optional string to be encoded into topo naming for indicating
- * the operation
- *
- * @return The original content of this TopoShape is discarded and replaced
- * with the new shape built by the shape maker. The function
- * returns the TopoShape itself as a self reference so that
- * multiple operations can be carried out for the same shape in the
- * same line of code.
- */
- TopoShape& makeElementShape(BRepOffsetAPI_MakePipeShell& mkShape,
- const std::vector& sources,
- const char* op = nullptr);
-
- /** Specialized shape making for BRepBuilderAPI_MakeHalfSpace with mapped element name
- *
- * @param mkShape: OCCT shape maker.
- * @param source: source shape.
- * @param op: optional string to be encoded into topo naming for indicating
- * the operation
- *
- * @return The original content of this TopoShape is discarded and replaced
- * with the new shape built by the shape maker. The function
- * returns the TopoShape itself as a self reference so that
- * multiple operations can be carried out for the same shape in the
- * same line of code.
- */
- TopoShape& makeElementShape(BRepPrimAPI_MakeHalfSpace& mkShape,
- const TopoShape& source,
- const char* op = nullptr);
- /** Specialized shape making for BRepBuilderAPI_MakeHalfSpace with mapped element name
- *
- * @param mkShape: OCCT shape maker.
- * @param op: optional string to be encoded into topo naming for indicating
- * the operation
- *
- * @return Returns the new shape built by the shape maker with mappend element
- * name generated using this shape as the source. The shape itself
- * is not modified.
- */
- TopoShape makeElementShape(BRepPrimAPI_MakeHalfSpace& mkShape, const char* op = nullptr) const
- {
- return TopoShape(0, Hasher).makeElementShape(mkShape, *this, op);
- }
-
- /** Specialized shape making for BRepBuilderAPI_MakePrism with mapped element name
- *
- * @param mkShape: OCCT shape maker.
- * @param sources: list of source shapes.
- * @param op: optional string to be encoded into topo naming for indicating
- * the operation
- *
- * @return The original content of this TopoShape is discarded and replaced
- * with the new shape built by the shape maker. The function
- * returns the TopoShape itself as a self reference so that
- * multiple operations can be carried out for the same shape in the
- * same line of code.
- */
- TopoShape& makeElementShape(BRepFeat_MakePrism& mkShape,
- const std::vector& sources,
- const TopoShape& uptoface,
- const char* op);
-
- /** Helper class to return the generated and modified shape given an input shape
- *
- * Shape history information is extracted using OCCT APIs
- * BRepBuilderAPI_MakeShape::Generated/Modified(). However, there is often
- * some glitches in various derived class. So we use this class as an
- * abstraction, and create various derived classes to deal with the glitches.
+ /* Toponaming migration, February 2014:
+ * Note that the specialized versions of makeElementShape for operations that do not
+ * inherit from BRepBuilderAPI_MakeShape ( like BRepBuilderAPI_Sewing ) have been removed.
+ * Rather than restore them, code that calls them should be changed to call
+ * makeShapeWithElementMap directly. For example:
+ * makeElementShape(sewer, sources)
+ * makeShapeWithElementMap(sewer.SewedShape(), MapperSewing(sewer), sources, OpCodes::Sewing);
+ * Note that if op exists in the method, it should be checked for null and overriden with
+ * the appropriate operation if so.
*/
friend class TopoShapeCache;
@@ -1784,6 +1627,15 @@ struct PartExport MapperMaker: TopoShape::Mapper
const std::vector& generated(const TopoDS_Shape& s) const override;
};
+struct PartExport MapperSewing: TopoShape::Mapper
+{
+ BRepBuilderAPI_Sewing& maker;
+ explicit MapperSewing(BRepBuilderAPI_Sewing& maker)
+ : maker(maker)
+ {}
+ const std::vector& modified(const TopoDS_Shape& s) const override;
+};
+
/** Shape mapper for BRepTools_History
*
* Uses BRepTools_History::Modified/Generated() function to extract
diff --git a/src/Mod/Part/App/TopoShapeExpansion.cpp b/src/Mod/Part/App/TopoShapeExpansion.cpp
index e26aaa3730..cd5f6b9bdd 100644
--- a/src/Mod/Part/App/TopoShapeExpansion.cpp
+++ b/src/Mod/Part/App/TopoShapeExpansion.cpp
@@ -2478,35 +2478,28 @@ TopoShape::makeElementCopy(const TopoShape& shape, const char* op, bool copyGeom
return *this;
}
-struct MapperSewing: Part::TopoShape::Mapper
+const std::vector& MapperSewing::modified(const TopoDS_Shape& s) const
{
- BRepBuilderAPI_Sewing& maker;
- explicit MapperSewing(BRepBuilderAPI_Sewing& maker)
- : maker(maker)
- {}
- const std::vector& modified(const TopoDS_Shape& s) const override
- {
- _res.clear();
- try {
- const auto& shape = maker.Modified(s);
- if (!shape.IsNull() && !shape.IsSame(s)) {
- _res.push_back(shape);
- }
- else {
- const auto& sshape = maker.ModifiedSubShape(s);
- if (!sshape.IsNull() && !sshape.IsSame(s)) {
- _res.push_back(sshape);
- }
+ _res.clear();
+ try {
+ const auto& shape = maker.Modified(s);
+ if (!shape.IsNull() && !shape.IsSame(s)) {
+ _res.push_back(shape);
+ }
+ else {
+ const auto& sshape = maker.ModifiedSubShape(s);
+ if (!sshape.IsNull() && !sshape.IsSame(s)) {
+ _res.push_back(sshape);
}
}
- catch (const Standard_Failure& e) {
- if (FC_LOG_INSTANCE.isEnabled(FC_LOGLEVEL_LOG)) {
- FC_WARN("Exception on shape mapper: " << e.GetMessageString());
- }
- }
- return _res;
}
-};
+ catch (const Standard_Failure& e) {
+ if (FC_LOG_INSTANCE.isEnabled(FC_LOGLEVEL_LOG)) {
+ FC_WARN("Exception on shape mapper: " << e.GetMessageString());
+ }
+ }
+ return _res;
+}
struct MapperThruSections: MapperMaker
{
@@ -2551,7 +2544,6 @@ struct MapperThruSections: MapperMaker
}
};
-
TopoShape& TopoShape::makeElementShape(BRepBuilderAPI_MakeShape& mkShape,
const TopoShape& source,
const char* op)
@@ -2567,64 +2559,6 @@ TopoShape& TopoShape::makeElementShape(BRepBuilderAPI_MakeShape& mkShape,
return makeShapeWithElementMap(mkShape.Shape(), MapperMaker(mkShape), shapes, op);
}
-TopoShape&
-TopoShape::makeElementShape(BRepOffsetAPI_ThruSections& mk, const TopoShape& source, const char* op)
-{
- if (!op) {
- op = Part::OpCodes::ThruSections;
- }
- return makeElementShape(mk, std::vector(1, source), op);
-}
-
-TopoShape& TopoShape::makeElementShape(BRepOffsetAPI_ThruSections& mk,
- const std::vector& sources,
- const char* op)
-{
- if (!op) {
- op = Part::OpCodes::ThruSections;
- }
- return makeShapeWithElementMap(mk.Shape(), MapperThruSections(mk, sources), sources, op);
-}
-
-TopoShape& TopoShape::makeElementShape(BRepBuilderAPI_Sewing& mk,
- const std::vector& shapes,
- const char* op)
-{
- if (!op) {
- op = Part::OpCodes::Sewing;
- }
- return makeShapeWithElementMap(mk.SewedShape(), MapperSewing(mk), shapes, op);
-}
-
-TopoShape&
-TopoShape::makeElementShape(BRepBuilderAPI_Sewing& mkShape, const TopoShape& source, const char* op)
-{
- if (!op) {
- op = Part::OpCodes::Sewing;
- }
- return makeElementShape(mkShape, std::vector(1, source), op);
-}
-
-TopoShape& TopoShape::makeElementShape(BRepPrimAPI_MakeHalfSpace& mkShape,
- const TopoShape& source,
- const char* op)
-{
- if (!op) {
- op = Part::OpCodes::HalfSpace;
- }
- return makeShapeWithElementMap(mkShape.Solid(), MapperMaker(mkShape), {source}, op);
-}
-
-TopoShape& TopoShape::makeElementShape(BRepOffsetAPI_MakePipeShell& mkShape,
- const std::vector& source,
- const char* op)
-{
- if (!op) {
- op = Part::OpCodes::PipeShell;
- }
- return makeShapeWithElementMap(mkShape.Shape(), MapperMaker(mkShape), source, op);
-}
-
TopoShape& TopoShape::makeElementLoft(const std::vector& shapes,
IsSolid isSolid,
IsRuled isRuled,
diff --git a/tests/src/Mod/Part/App/TopoShapeMakeShape.cpp b/tests/src/Mod/Part/App/TopoShapeMakeShape.cpp
index bc291a6e3e..731009a48e 100644
--- a/tests/src/Mod/Part/App/TopoShapeMakeShape.cpp
+++ b/tests/src/Mod/Part/App/TopoShapeMakeShape.cpp
@@ -7,6 +7,7 @@
#include "src/App/InitApplication.h"
#include "PartTestHelpers.h"
#include
+#include
using namespace Data;
using namespace Part;
@@ -92,7 +93,8 @@ TEST_F(TopoShapeMakeShapeTests, thruSections)
thruMaker.AddWire(wire2);
TopoShape topoShape {};
// Act
- TopoShape& result = topoShape.makeElementShape(thruMaker, {wire1ts, wire2ts});
+ TopoShape& result =
+ topoShape.makeElementShape(thruMaker, {wire1ts, wire2ts}, OpCodes::ThruSections);
auto elements = elementMap(result);
// Assert
EXPECT_EQ(elements.size(), 24);
@@ -116,7 +118,11 @@ TEST_F(TopoShapeMakeShapeTests, sewing)
std::vector sources {{face1, 1L}, {face2, 2L}};
TopoShape topoShape {};
// Act
- TopoShape& result = topoShape.makeElementShape(sewer, sources);
+ TopoShape& result = topoShape.makeShapeWithElementMap(sewer.SewedShape(),
+ MapperSewing(sewer),
+ sources,
+ OpCodes::Sewing);
+
auto elements = elementMap(result);
// Assert
EXPECT_EQ(&result, &topoShape);