+
+ /*!
+ * \brief Computes aMesh on aShape
+ * \param aShapeOnly - if true, algo->OnlyUnaryInput() feature is ignored and
+ * only \a aShape is computed.
+ * \param anUpward - compute from vertices up to more complex shape (internal usage)
+ * \param aDim - upper level dimension of the mesh computation
+ * \param aShapesId - list of shapes with computed mesh entities (elements or nodes)
+ * \retval bool - true if none submesh failed to compute
+ */
+ bool Compute(::SMESH_Mesh & aMesh,
+ const TopoDS_Shape & aShape,
+ const bool aShapeOnly=false,
+ const bool anUpward=false,
+ const ::MeshDimension aDim=::MeshDim_3D,
+ TSetOfInt* aShapesId=0);
+
+ void PrepareCompute(::SMESH_Mesh & aMesh,
+ const TopoDS_Shape & aShape);
+ void CancelCompute(::SMESH_Mesh & aMesh,
+ const TopoDS_Shape & aShape);
+
+ const SMESH_subMesh* GetCurrentSubMesh() const { return _sm_current; }
+
+ /*!
+ * \brief evaluates size of prospective mesh on a shape
+ * \param aMesh - the mesh
+ * \param aShape - the shape
+ * \param aResMap - map for prospective numbers of elements
+ * \retval bool - is a success
+ */
+ bool Evaluate(::SMESH_Mesh & aMesh,
+ const TopoDS_Shape & aShape,
+ MapShapeNbElems& aResMap,
+ const bool anUpward=false,
+ TSetOfInt* aShapesId=0);