- /** \brief Constructor by builder and builder type.
- * \param[in] theBuilder pointer to the builder.
- * \param[in] theBuilderType builder type.
- */
- GEOMALGOAPI_EXPORT GeomAlgoAPI_MakeShape(void* theBuilder, const BuilderType theBuilderType = OCCT_BRepBuilderAPI_MakeShape);
+ /// \brief Empty constructor.
+ GEOMALGOAPI_EXPORT GeomAlgoAPI_MakeShape();
+
+ /// \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();
+ }