#include "SALOME_Exception.idl"
#include "SALOME_GenericObj.idl"
-
-module GEOM
-{
- interface GEOM_Object;
-};
-
-
-module SALOME_MED
-{
- interface MESH;
- interface FAMILY;
-};
-
+#include "GEOM_Gen.idl"
+#include "MED.idl"
module SMESH
{
MOVE_NODE,
CHANGE_ELEMENT_NODES,
CHANGE_POLYHEDRON_NODES,
- RENUMBER
+ RENUMBER,
+ ADD_QUADEDGE,
+ ADD_QUADTRIANGLE,
+ ADD_QUADQUADRANGLE,
+ ADD_QUADTETRAHEDRON,
+ ADD_QUADPYRAMID,
+ ADD_QUADPENTAHEDRON,
+ ADD_QUADHEXAHEDRON
};
struct log_block
FACE,
VOLUME
};
+
+ /*!
+ * ElementOrder points out entities of what order are requested
+ */
+ enum ElementOrder {
+ ORDER_ANY, /*! entities of any order */
+ ORDER_LINEAR, /*! entities of 1st order */
+ ORDER_QUADRATIC /*! entities of 2nd order */
+ };
/*!
* Enumeration for hypothesis status (used by AddHypothesis() and RemoveHypothesis() methods)
HYP_INCOMPATIBLE, // hypothesis does not fit algo
HYP_NOTCONFORM, // not conform mesh is produced appling a hypothesis
HYP_ALREADY_EXIST,// such hypothesis already exist
- HYP_BAD_DIM // bad dimension
+ HYP_BAD_DIM, // bad dimension
+ HYP_BAD_SUBSHAPE // shape is neither the main one, nor its subshape, nor a group
};
/*!
typedef sequence<log_block> log_array;
+ /*!
+ * Auxilary flags for advanced extrusion.
+ * BOUNDARY: create or not boundary for result of extrusion
+ * SEW: try to use existing nodes or create new nodes in any case
+ */
+ const long EXTRUSION_FLAG_BOUNDARY = 1;
+ const long EXTRUSION_FLAG_SEW = 2;
+
interface SMESH_IDSource
{
/*!
SMESH_MeshEditor GetMeshEditor()
raises (SALOME::SALOME_Exception);
+ /*! Check group names for duplications.
+ * Consider maximum group name length stored in MED file.
+ */
+ boolean HasDuplicatedGroupNamesMED();
+
/*!
* Export Mesh to different MED Formats
* @params
long NbEdges()
raises (SALOME::SALOME_Exception);
+ long NbEdgesOfOrder(in ElementOrder order)
+ raises (SALOME::SALOME_Exception);
+
long NbFaces()
raises (SALOME::SALOME_Exception);
+ long NbFacesOfOrder(in ElementOrder order)
+ raises (SALOME::SALOME_Exception);
+
long NbTriangles()
raises (SALOME::SALOME_Exception);
+ long NbTrianglesOfOrder(in ElementOrder order)
+ raises (SALOME::SALOME_Exception);
+
long NbQuadrangles()
raises (SALOME::SALOME_Exception);
+ long NbQuadranglesOfOrder(in ElementOrder order)
+ raises (SALOME::SALOME_Exception);
+
long NbPolygons()
raises (SALOME::SALOME_Exception);
long NbVolumes()
raises (SALOME::SALOME_Exception);
+ long NbVolumesOfOrder(in ElementOrder order)
+ raises (SALOME::SALOME_Exception);
+
long NbTetras()
raises (SALOME::SALOME_Exception);
+ long NbTetrasOfOrder(in ElementOrder order)
+ raises (SALOME::SALOME_Exception);
+
long NbHexas()
raises (SALOME::SALOME_Exception);
+ long NbHexasOfOrder(in ElementOrder order)
+ raises (SALOME::SALOME_Exception);
+
long NbPyramids()
raises (SALOME::SALOME_Exception);
+ long NbPyramidsOfOrder(in ElementOrder order)
+ raises (SALOME::SALOME_Exception);
+
long NbPrisms()
raises (SALOME::SALOME_Exception);
+ long NbPrismsOfOrder(in ElementOrder order)
+ raises (SALOME::SALOME_Exception);
+
long NbPolyhedrons()
raises (SALOME::SALOME_Exception);
long_array GetNodesId()
raises (SALOME::SALOME_Exception);
+
+ /*!
+ * Returns type of mesh element
+ */
+ ElementType GetElementType( in long id, in boolean iselem )
+ raises (SALOME::SALOME_Exception);
/*!
* Get mesh description
*/
string Dump();
+
+ /*!
+ * Get mesh pointer
+ */
+ long GetMeshPtr();
+
};
interface SMESH_subMesh : SALOME::GenericObj, SMESH_IDSource
*/
long_array GetElementsByType( in ElementType theType )
raises (SALOME::SALOME_Exception);
+
+ /*!
+ * Return type of submesh element
+ */
+ ElementType GetElementType( in long id, in boolean iselem )
+ raises (SALOME::SALOME_Exception);
/*!
*
boolean AddFace(in long_array IDsOfNodes);
+ boolean AddPolygonalFace(in long_array IdsOfNodes);
+
boolean AddVolume(in long_array IDsOfNodes);
/*!
in DirStruct StepVector,
in long NbOfSteps);
+ /*!
+ * Generate new elements by extrusion of theElements
+ * by StepVector by NbOfSteps
+ * param ExtrFlags set flags for performing extrusion
+ * param SewTolerance - uses for comparing locations of nodes if flag
+ * EXTRUSION_FLAG_SEW is set
+ */
+ void AdvancedExtrusion(in long_array IDsOfElements,
+ in DirStruct StepVector,
+ in long NbOfSteps,
+ in long ExtrFlags,
+ in double SewTolerance);
+
void ExtrusionSweepObject(in SMESH_IDSource theObject,
in DirStruct StepVector,
in long NbOfSteps);