Salome HOME
PAL16842 (Genertion of groups when a mesh is transformed)
authoreap <eap@opencascade.com>
Mon, 12 Nov 2007 09:54:49 +0000 (09:54 +0000)
committereap <eap@opencascade.com>
Mon, 12 Nov 2007 09:54:49 +0000 (09:54 +0000)
    add *MakeGroups() methods

idl/SMESH_MeshEditor.idl

index a4dfb1d321de68441afc667bfccaabf5b7a3729e..a080e19d52c9d2691e6096d50b31f56678f9574f 100644 (file)
@@ -215,22 +215,64 @@ module SMESH
 
     void RenumberElements();
 
+    /*!
+     * \brief Genarate dim+1 elements by rotation of given elements around axis
+     * \param IDsOfElements - elements to ratate
+     * \param Axix - rotation axis
+     * \param AngleInRadians - rotation angle
+     * \param NbOfSteps - number of elements to generate from one element
+     */
     void RotationSweep(in long_array       IDsOfElements,
                        in AxisStruct       Axix,
                        in double           AngleInRadians,
                        in long             NbOfSteps,
                        in double           Tolerance);
-
+    /*!
+     * \brief Same as previous but additionally create groups of elements
+     *  generated from elements belonging to preexisting groups
+     */
+    ListOfGroups RotationSweepMakeGroups(in long_array       IDsOfElements,
+                                         in AxisStruct       Axix,
+                                         in double           AngleInRadians,
+                                         in long             NbOfSteps,
+                                         in double           Tolerance);
+    /*!
+     * \brief Genarate dim+1 elements by rotation of the object around axis
+     * \param theObject - object containing elements to ratate
+     * \param Axix - rotation axis
+     * \param AngleInRadians - rotation angle
+     * \param NbOfSteps - number of elements to generate from one element
+     */
     void RotationSweepObject(in SMESH_IDSource  theObject,
                             in AxisStruct      Axix,
                             in double          AngleInRadians,
                             in long            NbOfSteps,
                             in double          Tolerance);
-
+    /*!
+     * \brief Same as previous but additionally create groups of elements
+     *  generated from elements belonging to preexisting groups
+     */
+    ListOfGroups RotationSweepObjectMakeGroups(in SMESH_IDSource  theObject,
+                                               in AxisStruct      Axix,
+                                               in double          AngleInRadians,
+                                               in long            NbOfSteps,
+                                               in double          Tolerance);
+    /*!
+     * \brief Genarate dim+1 elements by extrusion of elements along vector
+     * \param IDsOfElements - elements to sweep
+     * \param StepVector - vector giving direction and distance of an extrusion step
+     * \param NbOfSteps - number of elements to generate from one element
+     */
     void ExtrusionSweep(in long_array      IDsOfElements,
                         in DirStruct       StepVector,
                         in long            NbOfSteps);
-
+    /*!
+     * \brief Same as previous but additionally create groups of elements
+     *  generated from elements belonging to preexisting groups
+     */
+    ListOfGroups ExtrusionSweepMakeGroups(in long_array      IDsOfElements,
+                                          in DirStruct       StepVector,
+                                          in long            NbOfSteps);
    /*!
     * Generate new elements by extrusion of theElements 
     * by StepVector by NbOfSteps
@@ -243,18 +285,36 @@ module SMESH
                            in long            NbOfSteps,
                           in long            ExtrFlags,
                           in double          SewTolerance);
+    /*!
+     * \brief Same as previous but additionally create groups of elements
+     *  generated from elements belonging to preexisting groups
+     */
+    ListOfGroups AdvancedExtrusionMakeGroups(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);
+    ListOfGroups ExtrusionSweepObjectMakeGroups(in SMESH_IDSource  theObject,
+                                                in DirStruct       StepVector,
+                                                in long            NbOfSteps);
 
     void ExtrusionSweepObject1D(in SMESH_IDSource theObject,
                                in DirStruct      StepVector,
                                in long           NbOfSteps);
+    ListOfGroups ExtrusionSweepObject1DMakeGroups(in SMESH_IDSource theObject,
+                                                  in DirStruct      StepVector,
+                                                  in long           NbOfSteps);
 
     void ExtrusionSweepObject2D(in SMESH_IDSource theObject,
                                in DirStruct      StepVector,
                                in long           NbOfSteps);
+    ListOfGroups ExtrusionSweepObject2DMakeGroups(in SMESH_IDSource theObject,
+                                                  in DirStruct      StepVector,
+                                                  in long           NbOfSteps);
 
     enum Extrusion_Error {
       EXTR_OK,
@@ -274,6 +334,15 @@ module SMESH
                                       in double_array      Angles,
                                       in boolean           HasRefPoint,
                                       in PointStruct       RefPoint);
+    ListOfGroups ExtrusionAlongPathMakeGroups(in long_array        IDsOfElements,
+                                              in SMESH_Mesh        PathMesh,
+                                              in GEOM::GEOM_Object PathShape,
+                                              in long              NodeStart,
+                                              in boolean           HasAngles,
+                                              in double_array      Angles,
+                                              in boolean           HasRefPoint,
+                                              in PointStruct       RefPoint,
+                                              out Extrusion_Error  Error);
 
     Extrusion_Error ExtrusionAlongPathObject(in SMESH_IDSource    theObject,
                                             in SMESH_Mesh        PathMesh,
@@ -283,6 +352,15 @@ module SMESH
                                             in double_array      Angles,
                                             in boolean           HasRefPoint,
                                             in PointStruct       RefPoint);
+    ListOfGroups ExtrusionAlongPathObjectMakeGroups(in SMESH_IDSource    theObject,
+                                                    in SMESH_Mesh        PathMesh,
+                                                    in GEOM::GEOM_Object PathShape,
+                                                    in long              NodeStart,
+                                                    in boolean           HasAngles,
+                                                    in double_array      Angles,
+                                                    in boolean           HasRefPoint,
+                                                    in PointStruct       RefPoint,
+                                                    out Extrusion_Error  Error);
 
    /*!
     * Compute rotation angles for ExtrusionAlongPath as linear variation
@@ -298,33 +376,49 @@ module SMESH
 
     enum MirrorType { POINT, AXIS, PLANE };
 
-    void Mirror (in long_array       IDsOfElements,
-                 in AxisStruct       Mirror,
-                 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 Mirror (in long_array IDsOfElements,
+                 in AxisStruct Mirror,
+                 in MirrorType theMirrorType,
+                 in boolean    Copy);
+    ListOfGroups MirrorMakeGroups (in long_array IDsOfElements,
+                                   in AxisStruct Mirror,
+                                   in MirrorType theMirrorType);
+
+    void MirrorObject (in SMESH_IDSource theObject,
+                      in AxisStruct     Mirror,
+                      in MirrorType     theMirrorType,
+                      in boolean        Copy);
+    ListOfGroups MirrorObjectMakeGroups (in SMESH_IDSource theObject,
+                                         in AxisStruct     Mirror,
+                                         in MirrorType     theMirrorType);
+
+    void Translate (in long_array IDsOfElements,
+                    in DirStruct  Vector,
+                    in boolean    Copy);
+    ListOfGroups TranslateMakeGroups (in long_array IDsOfElements,
+                                      in DirStruct  Vector);
+
+    void TranslateObject (in SMESH_IDSource theObject,
+                         in DirStruct      Vector,
+                         in boolean        Copy);
+    ListOfGroups TranslateObjectMakeGroups (in SMESH_IDSource theObject,
+                                            in DirStruct      Vector);
+
+    void Rotate (in long_array IDsOfElements,
+                 in AxisStruct Axis,
+                 in double     AngleInRadians,
+                 in boolean    Copy);
+    ListOfGroups RotateMakeGroups (in long_array IDsOfElements,
+                                   in AxisStruct Axis,
+                                   in double     AngleInRadians);
+
+    void RotateObject (in SMESH_IDSource theObject,
+                      in AxisStruct     Axis,
+                      in double         AngleInRadians,
+                      in boolean        Copy);
+    ListOfGroups RotateObjectMakeGroups (in SMESH_IDSource theObject,
+                                         in AxisStruct     Axis,
+                                         in double         AngleInRadians);
 
     void FindCoincidentNodes (in  double              Tolerance,
                               out array_of_long_array GroupsOfNodes);