typedef sequence<log_block> log_array;
+
+ interface SMESH_IDSource
+ {
+ /*!
+ * Returns a sequence of all element IDs
+ */
+ long_array GetIDs();
+ };
+
+ interface SMESH_GroupBase;
interface SMESH_Group;
+ interface SMESH_GroupOnGeom;
interface SMESH_subMesh;
interface SMESH_MeshEditor;
- interface SMESH_Mesh : SALOME::GenericObj
+ interface SMESH_Mesh : SALOME::GenericObj, SMESH_IDSource
{
/*!
* Associate a Shape to a Mesh created with NewEmpty
// SMESH_subMesh NewEmpty()
// raises (SALOME::SALOME_Exception);
+ /*!
+ * Get geom shape to mesh. A result may be nil
+ */
+ GEOM::GEOM_Object GetShapeToMesh()
+ raises (SALOME::SALOME_Exception);
+
/*!
* Remove a submesh
*/
/*!
* Create a group from geometry group
*/
- SMESH_Group CreateGroupFromGEOM( in ElementType elem_type,
- in string name,
- in GEOM::GEOM_Object theGEOMGroup )
+ SMESH_GroupOnGeom CreateGroupFromGEOM( in ElementType elem_type,
+ in string name,
+ in GEOM::GEOM_Object theGeomObject )
raises (SALOME::SALOME_Exception);
/*!
* Remove a group
*/
- void RemoveGroup(in SMESH_Group aGroup)
+ void RemoveGroup(in SMESH_GroupBase aGroup)
raises (SALOME::SALOME_Exception);
/*!
* Remove group with its contents
*/
- void RemoveGroupWithContents( in SMESH_Group aGroup )
+ void RemoveGroupWithContents( in SMESH_GroupBase aGroup )
raises (SALOME::SALOME_Exception);
/*!
* New group is created. All mesh elements that are
* present in initial groups are added to the new one
*/
- SMESH_Group UnionGroups( in SMESH_Group aGroup1, in SMESH_Group aGroup2, in string name )
+ SMESH_Group UnionGroups (in SMESH_GroupBase aGroup1,
+ in SMESH_GroupBase aGroup2,
+ in string name )
raises (SALOME::SALOME_Exception);
/*!
* New group is created. All mesh elements that are
* present in both initial groups are added to the new one.
*/
- SMESH_Group IntersectGroups( in SMESH_Group aGroup1, in SMESH_Group aGroup2, in string name )
+ SMESH_Group IntersectGroups (in SMESH_GroupBase aGroup1,
+ in SMESH_GroupBase aGroup2,
+ in string name )
raises (SALOME::SALOME_Exception);
/*!
* New group is created. All mesh elements that are present in
* main group but do not present in tool group are added to the new one
*/
- SMESH_Group CutGroups( in SMESH_Group aMainGroup, in SMESH_Group aToolGroup, in string name )
+ SMESH_Group CutGroups (in SMESH_GroupBase aMainGroup,
+ in SMESH_GroupBase aToolGroup,
+ in string name )
raises (SALOME::SALOME_Exception);
/*!
string Dump();
};
- interface SMESH_subMesh : SALOME::GenericObj
+ interface SMESH_subMesh : SALOME::GenericObj, SMESH_IDSource
{
/*!
*
long_array GetNodesId()
raises (SALOME::SALOME_Exception);
+ /*!
+ * Get geom shape the submesh is dedicated to
+ */
+ GEOM::GEOM_Object GetSubShape()
+ raises (SALOME::SALOME_Exception);
+
/*!
* Get SMESH_Mesh which stores nodes coordinates & elements definition
*/
boolean DeleteDiag(in long NodeID1, in long NodeID2);
boolean Reorient(in long_array IDsOfElements);
+
+ boolean ReorientObject(in SMESH_IDSource theObject);
boolean TriToQuad(in long_array IDsOfElements,
in NumericalFunctor Criterion,
in double MaxAngle);
-
+
+ boolean TriToQuadObject(in SMESH_IDSource theObject,
+ in NumericalFunctor Criterion,
+ in double MaxAngle);
+
boolean QuadToTri(in long_array IDsOfElements,
in NumericalFunctor Criterion);
boolean SplitQuad(in long_array IDsOfElements,
in boolean Diag13);
+ boolean SplitQuadObject(in SMESH_IDSource theObject,
+ in boolean Diag13);
+
enum Smooth_Method { LAPLACIAN_SMOOTH, CENTROIDAL_SMOOTH };
boolean Smooth(in long_array IDsOfElements,
in double MaxAspectRatio,
in Smooth_Method Method);
+ boolean SmoothObject(in SMESH_IDSource theObject,
+ in long_array IDsOfFixedNodes,
+ in long MaxNbOfIterations,
+ in double MaxAspectRatio,
+ in Smooth_Method Method);
+
void RenumberNodes();
void RenumberElements();
in double AngleInRadians,
in long NbOfSteps,
in double Tolerance);
+
+ void RotationSweepObject(in SMESH_IDSource theObject,
+ in AxisStruct Axix,
+ in double AngleInRadians,
+ in long NbOfSteps,
+ in double Tolerance);
void ExtrusionSweep(in long_array IDsOfElements,
in DirStruct StepVector,
in long NbOfSteps);
+ void ExtrusionSweepObject(in SMESH_IDSource theObject,
+ in DirStruct StepVector,
+ in long NbOfSteps);
+
enum MirrorType { POINT, AXIS, PLANE };
void Mirror (in long_array IDsOfElements,
in MirrorType theMirrorType,
in boolean Copy);
+ void MirrorObject (in SMESH_IDSource theObject,
+ in AxisStruct Mirror,
+ in MirrorType theMirrorType,
+ in boolean Copy);
+
void Translate (in long_array IDsOfElements,
in DirStruct Vector,
in boolean Copy);
+ void TranslateObject (in SMESH_IDSource theObject,
+ in DirStruct Vector,
+ in boolean Copy);
+
void Rotate (in long_array IDsOfElements,
in AxisStruct Axis,
in double AngleInRadians,
in boolean Copy);
+ void RotateObject (in SMESH_IDSource theObject,
+ in AxisStruct Axis,
+ in double AngleInRadians,
+ in boolean Copy);
+
void FindCoincidentNodes (in double Tolerance,
out array_of_long_array GroupsOfNodes);
void MergeEqualElements();
- boolean SewFreeBorders (in long FirstNodeID1,
- in long SecondNodeID1,
- in long LastNodeID1,
- in long FirstNodeID2,
- in long SecondNodeID2,
- in long LastNodeID2);
-
- boolean SewConformFreeBorders (in long FirstNodeID1,
- in long SecondNodeID1,
- in long LastNodeID1,
- in long FirstNodeID2,
- in long SecondNodeID2);
-
- boolean SewBorderToSide (in long FirstNodeIDOnFreeBorder,
- in long SecondNodeIDOnFreeBorder,
- in long LastNodeIDOnFreeBorder,
- in long FirstNodeIDOnSide,
- in long LastNodeIDOnSide);
-
- boolean SewSideElements (in long_array IDsOfSide1Elements,
- in long_array IDsOfSide2Elements,
- in long NodeID1OfSide1ToMerge,
- in long NodeID1OfSide2ToMerge,
- in long NodeID2OfSide1ToMerge,
- in long NodeID2OfSide2ToMerge);
+ enum Sew_Error {
+ SEW_OK,
+ SEW_BORDER1_NOT_FOUND,
+ SEW_BORDER2_NOT_FOUND,
+ SEW_BOTH_BORDERS_NOT_FOUND,
+ SEW_BAD_SIDE_NODES,
+ SEW_VOLUMES_TO_SPLIT,
+ // for SewSideElements() only:
+ SEW_DIFF_NB_OF_ELEMENTS,
+ SEW_TOPO_DIFF_SETS_OF_ELEMENTS,
+ SEW_BAD_SIDE1_NODES,
+ SEW_BAD_SIDE2_NODES
+ };
+
+ Sew_Error SewFreeBorders (in long FirstNodeID1,
+ in long SecondNodeID1,
+ in long LastNodeID1,
+ in long FirstNodeID2,
+ in long SecondNodeID2,
+ in long LastNodeID2);
+
+ Sew_Error SewConformFreeBorders (in long FirstNodeID1,
+ in long SecondNodeID1,
+ in long LastNodeID1,
+ in long FirstNodeID2,
+ in long SecondNodeID2);
+
+ Sew_Error SewBorderToSide (in long FirstNodeIDOnFreeBorder,
+ in long SecondNodeIDOnFreeBorder,
+ in long LastNodeIDOnFreeBorder,
+ in long FirstNodeIDOnSide,
+ in long LastNodeIDOnSide);
+
+ Sew_Error SewSideElements (in long_array IDsOfSide1Elements,
+ in long_array IDsOfSide2Elements,
+ in long NodeID1OfSide1ToMerge,
+ in long NodeID1OfSide2ToMerge,
+ in long NodeID2OfSide1ToMerge,
+ in long NodeID2OfSide2ToMerge);
};
};