// License along with this library; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
//
-// See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
//
//
//
#include "SALOMEDS.idl"
#include "GEOM_Gen.idl"
-#include "GEOM_Shape.idl"
#include "SMESH_Mesh.idl"
#include "SMESH_Hypothesis.idl"
module SMESH
{
- typedef sequence<GEOM::GEOM_Shape> shape_array;
- typedef sequence<SMESH_Mesh> mesh_array;
+ typedef sequence<GEOM::GEOM_Object> object_array;
+ typedef sequence<SMESH_Mesh> mesh_array;
interface FilterManager;
+ interface SMESH_Pattern;
+
+ /*!
+ * Hypothesis definintion error
+ */
+ struct AlgoStateError
+ {
+ Hypothesis_Status state;
+ string algoName;
+ long algoDim;
+ boolean isGlobalAlgo;
+ };
+ typedef sequence<AlgoStateError> algo_error_array;
+
+ /*!
+ * Mesh computation error
+ */
+ enum ComputeErrorName
+ {
+ COMPERR_OK ,
+ COMPERR_BAD_INPUT_MESH, // wrong mesh on lower submesh
+ COMPERR_STD_EXCEPTION , // some std exception raised
+ COMPERR_OCC_EXCEPTION , // OCC exception raised
+ COMPERR_SLM_EXCEPTION , // SALOME exception raised
+ COMPERR_EXCEPTION , // other exception raised
+ COMPERR_MEMORY_PB , // memory allocation problem
+ COMPERR_ALGO_FAILED , // computation failed
+ COMPERR_BAD_SHAPE // bad geometry
+ };
+ struct ComputeError
+ {
+ short code; // ComputeErrorName or, if negative, algo specific code
+ string comment; // textual problem description
+ string algoName;
+ short subShapeID; // id of subshape of a shape to mesh
+ };
+ typedef sequence<ComputeError> compute_error_array;
+
interface SMESH_Gen : Engines::Component, SALOMEDS::Driver
{
+ //GEOM::GEOM_Gen SetGeomEngine( in string containerLoc );
+ void SetGeomEngine( in GEOM::GEOM_Gen geomcompo );
FilterManager CreateFilterManager();
+ SMESH_Pattern GetPattern();
+
+ /*!
+ Set the current mode
+ */
+ void SetEmbeddedMode( in boolean theMode );
+
+ /*!
+ Get the current mode
+ */
+ boolean IsEmbeddedMode();
+
/*!
Set the current study
*/
in string theLibName )
raises ( SALOME::SALOME_Exception );
+ /*!
+ * Return a hypothesis holding parameter values corresponding to the mesh
+ * existing on the given geometry.
+ * The returned hypothesis may be the one existing in a study and used
+ * to compute the mesh, or a temporary one created just to pass parameter
+ * values
+ */
+ SMESH_Hypothesis GetHypothesisParameterValues( in string theHypName,
+ in string theLibName,
+ in SMESH_Mesh theMesh,
+ in GEOM::GEOM_Object theGeom)
+ raises ( SALOME::SALOME_Exception );
+
/*!
* Create a Mesh object, given a geometry shape.
* Mesh is created empty (no points, no elements).
* of TopoDS_Shapes and bind CORBA references of shape & subshapes
* with TopoDS_Shapes
*/
- SMESH_Mesh CreateMesh( in GEOM::GEOM_Shape theShape )
+ SMESH_Mesh CreateMesh( in GEOM::GEOM_Object theObject )
raises ( SALOME::SALOME_Exception );
+ /*!
+ * Create a empty mesh object
+ */
+ SMESH_Mesh CreateEmptyMesh()
+ raises ( SALOME::SALOME_Exception );
+
+ /*!
+ * Create Mesh object importing data from given UNV file
+ * (UNV supported version is I-DEAS 10)
+ */
+ SMESH_Mesh CreateMeshesFromUNV( in string theFileName )
+ raises ( SALOME::SALOME_Exception );
+
/*!
* Create Mesh object(s) importing data from given MED file
*/
out SMESH::DriverMED_ReadStatus theStatus )
raises ( SALOME::SALOME_Exception );
+ /*!
+ * Create Mesh object importing data from given STL file
+ */
+ SMESH_Mesh CreateMeshesFromSTL( in string theFileName )
+ raises ( SALOME::SALOME_Exception );
+
/*!
* Create a Mesh object, without a geometry shape reference
*/
* First, verify list of hypothesis associated with the subShape,
* return NOK if hypothesis are not sufficient
*/
- boolean Compute( in SMESH_Mesh theMesh,
- in GEOM::GEOM_Shape theSubShape )
+ boolean Compute( in SMESH_Mesh theMesh,
+ in GEOM::GEOM_Object theSubObject )
raises ( SALOME::SALOME_Exception );
/*!
- *
+ * Return true if hypotheses are defined well
*/
+ boolean IsReadyToCompute( in SMESH_Mesh theMesh,
+ in GEOM::GEOM_Object theSubObject )
+ raises ( SALOME::SALOME_Exception );
- boolean IsReadyToCompute( in SMESH_Mesh theMesh,
- in GEOM::GEOM_Shape theSubShape )
+ /*!
+ * Return errors of hypotheses definintion
+ * algo_error_array is empty if everything is OK
+ */
+ algo_error_array GetAlgoState( in SMESH_Mesh theMesh,
+ in GEOM::GEOM_Object theSubObject )
+ raises ( SALOME::SALOME_Exception );
+
+ /*!
+ * Return errors of mesh computation
+ * compute_error_array is empty if everything is OK
+ */
+ compute_error_array GetComputeErrors( in SMESH_Mesh theMesh,
+ in GEOM::GEOM_Object theSubObject )
raises ( SALOME::SALOME_Exception );
/*!
- *
+ * Return indeces of faces, edges and vertices of given subshapes
+ * within theMainObject
*/
- long_array GetSubShapesId( in GEOM::GEOM_Shape theMainShape,
- in shape_array theListOfSubShape )
+ long_array GetSubShapesId( in GEOM::GEOM_Object theMainObject,
+ in object_array theListOfSubObjects )
raises ( SALOME::SALOME_Exception );
-
+
/*!
- *
+ * Return geometrical object the given element is built on.
+ * The returned geometrical object, if not nil, is either found in the
+ * study or is published by this method with the given name
*/
- // long_array GetSubMeshesState( in shape_array theListOfSubShape )
- // raises ( SALOME::SALOME_Exception );
-
+ GEOM::GEOM_Object GetGeometryByMeshElement( in SMESH_Mesh theMesh,
+ in long theElementID,
+ in string theGeomName)
+ raises ( SALOME::SALOME_Exception );
+
+ /*!
+ * Return geometrical object the given element is built on.
+ * The returned geometrical object not published in study by this method.
+ */
+ GEOM::GEOM_Object FindGeometryByMeshElement( in SMESH_Mesh theMesh,
+ in long theElementID)
+ raises ( SALOME::SALOME_Exception );
+
+ /*!
+ * Concatenate the given meshes into one mesh.
+ * Union groups with the same name and type if
+ * theUniteIdenticalGroups flag is true.
+ * Merge coincident nodes and elements if
+ * theMergeNodesAndElements flag is true.
+ */
+ SMESH_Mesh Concatenate(in mesh_array theMeshesArray,
+ in boolean theUniteIdenticalGroups,
+ in boolean theMergeNodesAndElements,
+ in double theMergeTolerance)
+ raises ( SALOME::SALOME_Exception );
};