-// Copyright (C) 2014-2020 CEA/DEN, EDF R&D
+// Copyright (C) 2014-2024 CEA, EDF
//
// This library is free software; you can redistribute it and/or
// modify it under the terms of the GNU Lesser General Public
class GeomAlgoAPI_Sewing : public GeomAlgoAPI_MakeShape
{
public:
- /// Constructor.
+ /// Constructor (used by MakeShell).
+ /// \param[in] theShapes list of selected shapes.
GEOMALGOAPI_EXPORT GeomAlgoAPI_Sewing(const ListOfShape& theShapes);
+ /// Constructor with additional arguments (used by Sewing feature)
+ /// \param[in] theShapes list of selected shapes.
+ /// \param[in] theAllowNonManifold if True, non-manifold results are allowed.
+ /// \param[in] theTolerance tolerance value used for the sewing operation.
+ GEOMALGOAPI_EXPORT GeomAlgoAPI_Sewing(const ListOfShape& theShapes, const bool theAllowNonManifold, const double theTolerance);
+
/// \return the list of shapes modified from the shape \a theShape.
/// \param[in] theShape base shape.
/// \param[out] theHistory modified shapes.
GEOMALGOAPI_EXPORT virtual void modified(const std::shared_ptr<GeomAPI_Shape> theShape,
ListOfShape& theHistory);
+protected:
+ bool myBuildShell; // whether algorithm is used by MakeShell or by Sewing
+
private:
/// Builds resulting shape.
- void build(const ListOfShape& theShapes);
+ void build(const ListOfShape& theShapes, const bool theAllowNonManifold = false, const double theTolerance = 1.e-6);
};
#endif