- /// Returns a shape built by the shape construction algorithm
- GEOMALGOAPI_EXPORT const std::shared_ptr<GeomAPI_Shape> shape() const;
+ /// \brief Constructor by builder and builder type.
+ /// \param[in] theBuilder pointer to the builder.
+ /// \param[in] theBuilderType builder type.
+ template<class T> explicit GeomAlgoAPI_MakeShape(T* theBuilder, const BuilderType theBuilderType = OCCT_BRepBuilderAPI_MakeShape)
+ : GeomAPI_Interface(theBuilder),
+ myBuilderType(theBuilderType)
+ {
+ initialize();
+ }
+
+ /// \brief Initializes internals.
+ /// \param[in] theBuilder pointer to the builder.
+ /// \param[in] theBuilderType builder type.
+ template<class T> void initialize(T* theBuilder, const BuilderType theBuilderType = OCCT_BRepBuilderAPI_MakeShape)
+ {
+ setImpl(theBuilder);
+ myBuilderType = theBuilder;
+ initialize();
+ }
+
+ /// \return status of builder.
+ GEOMALGOAPI_EXPORT bool isDone() const;
+
+ /// \return a shape built by the shape construction algorithm.
+ GEOMALGOAPI_EXPORT virtual const std::shared_ptr<GeomAPI_Shape> shape() const;