+
+ enum ComputeFlags
+ {
+ SHAPE_ONLY = 1, // to ignore algo->OnlyUnaryInput() feature and to compute a given shape only.
+ UPWARD = 2, // to compute from vertices up to more complex shape (internal usage)
+ COMPACT_MESH = 4, // to compact the mesh at the end
+ SHAPE_ONLY_UPWARD = 3 // SHAPE_ONLY | UPWARD
+ };
+ /*!
+ * \brief Computes aMesh on aShape
+ * \param aMesh - the mesh.
+ * \param aShape - the shape.
+ * \param aFlags - ComputeFlags. By default compute the whole mesh and compact at the end.
+ * \param aDim - upper level dimension of the mesh computation (for preview)
+ * \param aShapesId - list of shapes with computed mesh entities (elements or nodes)
+ * \retval bool - true if none sub-mesh failed to compute
+ */
+ bool Compute(::SMESH_Mesh & aMesh,
+ const TopoDS_Shape & aShape,
+ const int aFlags = COMPACT_MESH,
+ 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;
+
+ /*!
+ * \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);