]> SALOME platform Git repositories - plugins/blsurfplugin.git/blob - idl/BLSURFPlugin_Algorithm.idl
Salome HOME
23307: [EDF 7315] Improvement of DISTENE meshing plugins
[plugins/blsurfplugin.git] / idl / BLSURFPlugin_Algorithm.idl
1 // Copyright (C) 2007-2016  CEA/DEN, EDF R&D
2 //
3 // This library is free software; you can redistribute it and/or
4 // modify it under the terms of the GNU Lesser General Public
5 // License as published by the Free Software Foundation; either
6 // version 2.1 of the License, or (at your option) any later version.
7 //
8 // This library is distributed in the hope that it will be useful,
9 // but WITHOUT ANY WARRANTY; without even the implied warranty of
10 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
11 // Lesser General Public License for more details.
12 //
13 // You should have received a copy of the GNU Lesser General Public
14 // License along with this library; if not, write to the Free Software
15 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
16 //
17 // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
18 //
19
20 // ---
21 // File    : BLSURFPlugin_Algorithm.idl
22 // Authors : Francis KLOSS (OCC) & Patrick LAUG (INRIA) & Lioka RAZAFINDRAZAKA (CEA)
23 //           Size maps developement: Nicolas GEIMER (OCC) & Gilles DAVID (EURIWARE)
24 // ---
25 //
26 #ifndef _SMESH_BLSURFALGORITHM_IDL_
27 #define _SMESH_BLSURFALGORITHM_IDL_
28
29 #include "SMESH_Hypothesis.idl"
30 #include "GEOM_Gen.idl"
31 #include "SALOME_Exception.idl"
32
33 /*!
34  * BLSURFPlugin: interfaces to BLSURF related hypotheses and algorithms
35  */
36 module BLSURFPlugin
37 {
38   typedef sequence<string> string_array;
39
40   // Enforced vertex name
41   typedef string TEnfName;
42   // Entry
43   typedef string TEntry;
44   typedef sequence<TEntry> TEntryList;
45   // Group name
46   typedef string TEnfGroupName;
47   
48   // Coordinates of enforced vertex
49   typedef sequence<double,3> TEnfVertexCoords;
50   // List of coords
51   typedef sequence<TEnfVertexCoords> TEnfVertexCoordsList;
52   
53   // Enforced vertex
54   struct TEnfVertex {
55     TEnfName name;
56     TEntry geomEntry;
57     TEnfVertexCoords coords;
58     TEnfGroupName grpName;
59     TEntryList faceEntries;
60   };
61   // List of enforced vertices
62   typedef sequence<TEnfVertex> TEnfVertexList;
63
64   // Map Face Entry / List of enforced vertices
65   struct TFaceEntryEnfVertexListMapElement {
66     TEntry faceEntry;
67     TEnfVertexList enfVertexList;
68   };
69   typedef sequence<TFaceEntryEnfVertexListMapElement> TFaceEntryEnfVertexListMap;
70   
71   // Map Face Entry / List of coords
72   struct TFaceEntryCoordsListMapElement {
73     TEntry faceEntry;
74     TEnfVertexCoordsList coordsList;
75   };
76   typedef sequence<TFaceEntryCoordsListMapElement> TFaceEntryCoordsListMap;
77   
78   // Map Face Entry / List of enf vertex entries
79   struct TFaceEntryEnfVertexEntryListMapElement {
80     TEntry faceEntry;
81     TEntryList enfVertexEntryList;
82   };
83   typedef sequence<TFaceEntryEnfVertexEntryListMapElement> TFaceEntryEnfVertexEntryListMap;
84   
85   // Map Coords / Enforced vertex
86   struct TCoordsEnfVertexElement {
87     TEnfVertexCoords coords;
88     TEnfVertex enfVertex;
89   };
90   typedef sequence<TCoordsEnfVertexElement> TCoordsEnfVertexMap;
91   
92   // Map Enf Vertex Entry / Enforced vertex
93   struct TEnfVertexEntryEnfVertexElement {
94     TEntry enfVertexEntry;
95     TEnfVertex enfVertex;
96   };
97   typedef sequence<TEnfVertexEntryEnfVertexElement> TEnfVertexEntryEnfVertexMap;
98
99   // List of Face Entry with internal enforced vertices activated
100   typedef sequence<TEntry> TFaceEntryInternalVerticesList;
101
102   // Attractors
103   struct TAttractorParams {
104     string faceEntry;
105     string attEntry;
106     double startSize;
107     double endSize;
108     double infDist;
109     double constDist;
110   };
111   typedef sequence<TAttractorParams> TAttParamsMap;
112   
113   // Periodicity
114   struct TPreCadPeriodicity {
115     TEntry shape1Entry;
116     TEntry shape2Entry;
117     TEntryList theSourceVerticesEntries;
118     TEntryList theTargetVerticesEntries;
119   };
120   
121   typedef sequence<TPreCadPeriodicity> TPeriodicityList;
122   
123   /*!
124    * BLSURFPlugin_BLSURF: interface of BLSURF algorithm
125    */
126   interface BLSURFPlugin_BLSURF : SMESH::SMESH_2D_Algo
127   {
128   };
129
130   /*!
131    * BLSURFPlugin_Hypothesis: interface of "BLSURF parameters" hypothesis
132    */
133   interface BLSURFPlugin_Hypothesis : SMESH::SMESH_Hypothesis
134   {
135
136     /*!
137      * Sets a way to define size of mesh elements to generate
138      * 0 - size is defined automatically
139      * 1 - size is set by SetPhySize() method
140      * 2 - size is set by SetPhySize() method. A sizemap is defined.
141      */
142     void SetPhysicalMesh(in long isCustom);
143     long GetPhysicalMesh();
144
145     /*!
146      * Sets a way to define maximum angular deflection of mesh from CAD model
147      * 0 - deflection is defined automatically
148      * 1 - deflection is set by SetAngleMesh() method
149      * 2 - deflection is set by SetAngleMesh() method. A sizemap is defined (TODO).
150      */
151     void SetGeometricMesh(in long isCustom);
152     long GetGeometricMesh();
153
154     /*!
155      * Sets size of mesh elements to generate
156      */
157     void SetPhySize(in double size);
158     void SetPhySizeRel(in double size);
159     double GetPhySize();
160     boolean IsPhySizeRel();
161
162     /*!
163      * Sets lower boundary of mesh element size
164      */
165     void SetMinSize(in double theMinSize);
166     void SetMinSizeRel(in double theMinSize);
167     double GetMinSize();
168     boolean IsMinSizeRel();
169
170     /*!
171      * Sets upper boundary of mesh element size
172      */
173     void SetMaxSize(in double theMaxSize);
174     void SetMaxSizeRel(in double theMaxSize);
175     double GetMaxSize();
176     boolean IsMaxSizeRel();
177
178     /*!
179      * Sets maximal allowed ratio between the lengths of two adjacent edges
180      */
181     void SetUseGradation(in boolean toUse);
182     boolean GetUseGradation();
183     void SetGradation(in double ratio);
184     double GetGradation();
185
186     /*!
187      * Sets maximal allowed ratio between the lengths of two adjacent edges in 3D mesh
188      */
189     void SetUseVolumeGradation(in boolean toUse);
190     boolean GetUseVolumeGradation();
191     void SetVolumeGradation(in double ratio);
192     double GetVolumeGradation();
193
194     /*!
195      * Sets to create quadrilateral elements or not
196      */
197     void SetQuadAllowed(in boolean allowed);
198     boolean GetQuadAllowed();
199
200     /*!
201      * Sets angular deflection (in degrees) of a mesh face and edge from CAD surface
202      */
203     void SetAngleMesh(in double angle);
204     double GetAngleMesh();
205
206     /*!
207      * Sets the maximum desired distance between a triangle and its supporting CAD surface
208      */
209     void SetChordalError(in double distance);
210     double GetChordalError();
211
212     /*!
213      * Determines whether the generated mesh will be isotropic or anisotropic
214      */
215     void SetAnisotropic(in boolean anisotropic);
216     boolean GetAnisotropic();
217
218     /*!
219      * Defines the maximum anisotropic ratio of the metric governing the anisotropic process.
220      * The default value of 0 means that the metric (and thus the generated elements) 
221      * can be arbitrarily stretched.
222      */
223     void SetAnisotropicRatio(in double ratio);
224     double GetAnisotropicRatio();
225
226     /*!
227      * This patch-independent correction option can be activated to remove the tiny
228      * (nano) edges from the generated mesh, without taking into account the tags 
229      * (attributes) specifications.
230      */
231     void SetRemoveTinyEdges(in boolean remove);
232     boolean GetRemoveTinyEdges();
233
234     /*!
235      * Defines the minimal length under which an edge is considered to be a tiny one
236      */
237     void SetTinyEdgeLength(in double length);
238     double GetTinyEdgeLength();
239
240     /*!
241      *  This patch-independent correction option can be activated to remove the tiny
242      * edges (defined by the option tiny edge optimisation length) from the generated
243      * mesh when it improves the local mesh quality, without taking into account the
244      * tags (attributes) specifications.
245      */
246     void SetOptimiseTinyEdges(in boolean toOptimise);
247     boolean GetOptimiseTinyEdges();
248
249     /*!
250      * Defines the minimal length under which an edge is considered to be a tiny one
251      * to be optimised out by the optimise tiny edges option
252      */
253     void SetTinyEdgeOptimisationLength(in double length);
254     double GetTinyEdgeOptimisationLength();
255
256     /*!
257      * Activate correction of all surface intersections
258      */
259     void SetCorrectSurfaceIntersection(in boolean toCorrect);
260     boolean GetCorrectSurfaceIntersection();
261
262     /*!
263      * Defines the time the user is ready to spend in the intersection prevention process.
264      * For example, maxCost = 3 means that MeshGems-CADSurf will not spend more time
265      * in the intersection removal process than 3 times the time required to mesh
266      * without processing the intersections.
267      */
268     void SetCorrectSurfaceIntersectionMaxCost(in double maxCost);
269     double GetCorrectSurfaceIntersectionMaxCost();
270
271     /*!
272      * This patch independent correction option can be activated to remove the bad 
273      * elements (often called slivers) from the generated mesh, without taking into account
274      * the tags (attributes) specification.
275      */
276     void SetBadElementRemoval(in boolean remove);
277     boolean GetBadElementRemoval();
278
279     /*!
280      * This parameter defines the aspect ratio triggering the "bad element"
281      * classification for the force bad surface element removal option. 
282      */
283     void SetBadElementAspectRatio(in double ratio);
284     double GetBadElementAspectRatio();
285
286     /*!
287      * If this option is activated, MeshGems-CADSurf will optimize the mesh in order to
288      * get better shaped elements, during a process which respects the patch independent options.
289      * This optimisation cannot be fully performed when correct_surface_intersections = 1.
290      */
291     void SetOptimizeMesh(in boolean optimize);
292     boolean GetOptimizeMesh();
293
294     /*!
295      * Determines the order of mesh elements to be generated (linear or quadratic)
296      */
297     void SetQuadraticMesh(in boolean quadratic);
298     boolean GetQuadraticMesh();
299
300     /*!
301      * Sets topology usage way defining how mesh conformity is assured
302      * value=0 - mesh conformity is assured by conformity of a shape
303      * value=1,2 - mesh conformity is assured by pre-processing a CAD model (OBSOLETE)
304      * value=3 - mesh conformity is assured by pre-processing a CAD model with Pre-CAD
305      */
306     void SetTopology(in long way);
307     long GetTopology();
308
309     /*!
310      * Sets verbosity level in the range 0 to 100.
311      */
312     void SetVerbosity(in short theVal) raises (SALOME::SALOME_Exception);
313     short GetVerbosity();
314
315     /*!
316      * Set enforce_cad_edge_sizes parameter
317      *
318      * Relaxes the given sizemap constraint around CAD edges to allow a better
319      * element quality and a better geometric approximation. It is only useful in 
320      * combination with the gradation option.
321      */
322     void SetEnforceCadEdgesSize( in boolean toEnforce );
323     boolean GetEnforceCadEdgesSize();
324
325     /*!
326      * Set jacobian_rectification_respect_geometry parameter
327      *
328      * While making the mesh quadratic, allows to lose the CAD-mesh associativity in order
329      * to correct elements with nagative Jacobian
330      */
331     void SetJacobianRectificationRespectGeometry( in boolean allowRectification );
332     boolean GetJacobianRectificationRespectGeometry();
333     
334     /*!
335      * Set rectify_jacobian parameter
336      *
337      * While making the mesh quadratic, allow to fix nagative Jacobian surface elements
338      */
339     void SetJacobianRectification( in boolean allowRectification );
340     boolean GetJacobianRectification();
341
342     /*!
343      * Set max_number_of_points_per_patch parameter
344      * 
345      * This parameter controls the maximum amount of points MeshGems-CADSurf is allowed
346      * to generate on a single CAD patch. For an automatic gestion of the memory, one
347      * can set this parameter to 0
348      */
349     void SetMaxNumberOfPointsPerPatch( in long nb ) raises (SALOME::SALOME_Exception);
350     long GetMaxNumberOfPointsPerPatch();
351
352     /*!
353      * Set respect_geometry parameter
354      *
355      *  This patch independent option can be deactivated to allow MeshGems-CADSurf
356      * to lower the geometry accuracy in its patch independent process.
357      */
358     void SetRespectGeometry( in boolean toRespect );
359     boolean GetRespectGeometry();
360
361     /*!
362      * Set tiny_edges_avoid_surface_intersections parameter
363      *
364      * This option defines the priority between the tiny feature
365      * suppression and the surface intersection prevention. 
366      */
367     void SetTinyEdgesAvoidSurfaceIntersections( in boolean toAvoidIntersection );
368     boolean GetTinyEdgesAvoidSurfaceIntersections();
369
370     /*!
371      * Set closed_geometry parameter parameter
372      *
373      *  Describes whether the geometry is expected to be closed or not. 
374      * When activated, this option helps MeshGems-PreCAD to treat the dirtiest geometries.
375      */
376     void SetClosedGeometry( in boolean isClosed );
377     boolean GetClosedGeometry();
378
379     /*!
380      * Set debug parameter
381      *
382      * Make MeshGems-CADSurf will be very verbose and will output some intermediate
383      * files in the working directory. This option is mainly meant for Distene support issues.
384      */
385     void SetDebug( in boolean isDebug );
386     boolean GetDebug();
387
388     /*!
389      * Set periodic_tolerance parameter
390      * 
391      *  This parameter defines the maximum size difference between two periodic edges
392      * and also the maximum distance error between two periodic entities.
393      */
394     void SetPeriodicTolerance( in double tol ) raises (SALOME::SALOME_Exception);
395     double GetPeriodicTolerance() raises (SALOME::SALOME_Exception);
396
397     /*!
398      * Set required_entities parameter
399      *
400      * The required entities control the correction operations. 
401      * Accepted values for this parameter are :
402      * - "respect" : MeshGems-CADSurf is not allowed to alter any required entity, 
403      *             even for correction purposes,
404      * - "ignore" : MeshGems-CADSurf will ignore the required entities in its processing,
405      * - "clear" : MeshGems-CADSurf will clear any required status for the entities. 
406      *           There will not be any entity marked as required in the generated mesh.
407      */
408     void SetRequiredEntities( in string howToTreat ) raises (SALOME::SALOME_Exception);
409     string GetRequiredEntities();
410
411     /*!
412      * Set sewing_tolerance parameter
413      *
414      * This parameter is the tolerance of the assembly.
415      */
416     void SetSewingTolerance( in double tol ) raises (SALOME::SALOME_Exception);
417     double GetSewingTolerance() raises (SALOME::SALOME_Exception);
418
419     /*!
420      * Set tags parameter
421      *
422      *  The tag (attribute) system controls the optimisation process. 
423      *  Accepted values for this parameter are :
424      * - "respect"  : the CAD tags will be preserved and unaltered by the optimisation operations,
425      * - "ignore" : the CAD tags will be ignored by the optimisation operations 
426      *              but they will still be present in the output mesh,
427      * - "clear" : MeshGems-CADSurf will clear any tag on any entity and optimise accordingly. 
428      *             There will not be any tag in the generated mesh.
429      */
430     void SetTags( in string howToTreat ) raises (SALOME::SALOME_Exception);
431     string GetTags();
432
433     /*!
434      * To merges edges.
435      */
436     void SetPreCADMergeEdges(in boolean toMergeEdges);
437     boolean GetPreCADMergeEdges();
438
439     /*!
440      * To remove tiny UV edges edges.
441      */
442     void SetPreCADRemoveTinyUVEdges(in boolean toRemoveTinyUVEdges);
443     boolean GetPreCADRemoveTinyUVEdges();
444
445     /*!
446      * To remove duplicate CAD faces.
447      */
448     void SetPreCADRemoveDuplicateCADFaces(in boolean toRemoveDuplicateCADFaces);
449     boolean GetPreCADRemoveDuplicateCADFaces();
450
451     /*!
452      * To process 3D topology.
453      */
454     void SetPreCADProcess3DTopology(in boolean toProcess);
455     boolean GetPreCADProcess3DTopology();
456
457
458     /*!
459      * To compute topology from scratch
460      */
461     void SetPreCADDiscardInput(in boolean toDiscardInput);
462     boolean GetPreCADDiscardInput();
463
464     /*!
465      * Sets advanced option value
466      */
467     void SetOptionValue(in string optionName,
468                         in string optionValue) raises (SALOME::SALOME_Exception);
469     void SetPreCADOptionValue(in string optionName,
470                         in string optionValue) raises (SALOME::SALOME_Exception);
471     string GetOptionValue(in string optionName) raises (SALOME::SALOME_Exception);
472     string GetPreCADOptionValue(in string optionName) raises (SALOME::SALOME_Exception);
473     /*!
474      * Unsets advanced option
475      */
476     void UnsetOption(in string optionName);
477     void UnsetPreCADOption(in string optionName);
478
479     /*!
480      * Adds custom advanced option and its value
481      */
482     void SetAdvancedOption(in string optionsAndValues) // in a form "option_1 v1 option_2 v2'"
483       raises (SALOME::SALOME_Exception);
484     void AddOption(in string optionName, in string optionValue);
485     void AddPreCADOption(in string optionName, in string optionValue);
486     string GetOption(in string optionName);
487     string GetPreCADOption(in string optionName);
488
489     /*!
490      * Return array of strings each of which is option name concatenated
491      * with option value devided by semicolon - "option_name:option_value:option_type".
492      * Option value is empty if an option is not set.
493      * option_type: 1 if user-define, 0 if default
494      * Note: the method is mostly for interaction with GUI.
495      */
496     string_array GetOptionValues();
497     string_array GetPreCADOptionValues();
498     string_array GetAdvancedOptionValues();
499
500     /*!
501      * Set option values each in the form "option_name[:option_value][:option_type]".
502      * Note: the method is mostly for interaction with GUI.
503      */
504     void SetOptionValues(in string_array options) raises (SALOME::SALOME_Exception);
505     void SetPreCADOptionValues(in string_array options) raises (SALOME::SALOME_Exception);
506     void SetAdvancedOptionValues(in string_array options);
507
508     /*!
509      * SizeMap
510      */
511     void SetSizeMapEntries(in string_array sizeMaps) raises (SALOME::SALOME_Exception);
512     void ClearSizeMaps();
513
514     void UnsetEntry(in string entry);
515
516     /*!
517      * Set/unset a SizeMap on geom object
518      */
519     void         SetSizeMap(in GEOM::GEOM_Object GeomObj, in string sizeMap) raises (SALOME::SALOME_Exception);
520     void         SetConstantSizeMap(in GEOM::GEOM_Object GeomObj, in double sizeMap);
521     void         UnsetSizeMap(in GEOM::GEOM_Object GeomObj);
522     
523     /*!
524      * Set a SizeMap on geom object given by entry
525      */
526     void         SetSizeMapEntry(in string entry, in string sizeMap) raises (SALOME::SALOME_Exception);
527     void         SetConstantSizeMapEntry(in string entry, in GEOM::shape_type shapeType, in double sizeMap) raises (SALOME::SALOME_Exception);
528     string       GetSizeMapEntry(in string entry) raises (SALOME::SALOME_Exception);
529     string_array GetSizeMapEntries();
530
531     /*!
532      * Set/unset an attractor on geom object
533      */
534     void         SetAttractor(in GEOM::GEOM_Object GeomObj, in string attractor);
535     void         UnsetAttractor(in GEOM::GEOM_Object GeomObj);
536     
537     /*!
538      * Set an attractor on geom object given by entry
539      */
540     void         SetAttractorEntry(in string entry, in string attractor) raises (SALOME::SALOME_Exception);
541     string       GetAttractorEntry(in string entry) raises (SALOME::SALOME_Exception);
542     string_array GetAttractorEntries();
543
544     /*!
545      * Set/unset an attractor given as geom object on another geom object
546      */
547     void         SetAttractorGeom(in GEOM::GEOM_Object GeomObj, in GEOM::GEOM_Object AttractorShape, in double StartSize, in double EndSize, in double ActionRadius, in double ConstantRadius);
548     void         UnsetAttractorGeom(in GEOM::GEOM_Object GeomObj, in GEOM::GEOM_Object AttractorShape);
549     void         UnsetAttractorEntry(in string entry, in string attractor);
550
551     /*!
552      * Set an attractor given by entry on a geom object given by entry
553      */
554     void         SetClassAttractorEntry(in string entry, in string att_entry, in double StartSize, in double EndSize, in double ActionRadius, in double ConstantRadius ) raises (SALOME::SALOME_Exception);
555     BLSURFPlugin::TAttParamsMap GetAttractorParams();
556
557 /*
558     void         SetCustomSizeMapEntry(in string entry, in string sizeMap);
559     string       GetCustomSizeMapEntry(in string entry);
560     void         SetCustomSizeMap(in GEOM::GEOM_Object GeomObj, in string sizeMap);
561     void         UnsetCustomSizeMap(in GEOM::GEOM_Object GeomObj);
562     string_array GetCustomSizeMapEntries();
563 */
564     ///////////////////////
565     // ENFORCED VERTEXES //
566     ///////////////////////
567     
568     TFaceEntryEnfVertexListMap      GetAllEnforcedVerticesByFace();
569     TEnfVertexList                  GetAllEnforcedVertices();
570     
571     TFaceEntryCoordsListMap         GetAllCoordsByFace();
572     TCoordsEnfVertexMap             GetAllEnforcedVerticesByCoords();
573     
574     TFaceEntryEnfVertexEntryListMap GetAllEnfVertexEntriesByFace();
575     TEnfVertexEntryEnfVertexMap     GetAllEnforcedVerticesByEnfVertexEntry();
576     
577     void                            ClearAllEnforcedVertices();
578     
579    /*!
580     * Set/get/unset an enforced vertex on geom face
581     */
582     boolean SetEnforcedVertex(in GEOM::GEOM_Object theFace, in double x, in double y, in double z) raises (SALOME::SALOME_Exception);
583     boolean SetEnforcedVertexNamed(in GEOM::GEOM_Object theFace, in double x, in double y, in double z, in TEnfName theVertexName) raises (SALOME::SALOME_Exception);
584     boolean SetEnforcedVertexGeom(in GEOM::GEOM_Object theFace, in GEOM::GEOM_Object theVertex) raises (SALOME::SALOME_Exception);
585     boolean SetEnforcedVertexWithGroup(in GEOM::GEOM_Object theFace, in double x, in double y, in double z, in TEnfGroupName groupName) raises (SALOME::SALOME_Exception);
586     boolean SetEnforcedVertexNamedWithGroup(in GEOM::GEOM_Object theFace, in double x, in double y, in double z, in TEnfName theVertexName, in TEnfGroupName groupName) raises (SALOME::SALOME_Exception);
587     boolean SetEnforcedVertexGeomWithGroup(in GEOM::GEOM_Object theFace, in GEOM::GEOM_Object theVertex, in TEnfGroupName groupName) raises (SALOME::SALOME_Exception);
588
589     
590     TEnfVertexList GetEnforcedVertices(in GEOM::GEOM_Object theFace) raises (SALOME::SALOME_Exception);
591     
592     boolean UnsetEnforcedVertex(in GEOM::GEOM_Object theFace, in double x, in double y, in double z) raises (SALOME::SALOME_Exception);
593     boolean UnsetEnforcedVertexGeom(in GEOM::GEOM_Object theFace, in GEOM::GEOM_Object theVertex) raises (SALOME::SALOME_Exception);
594     boolean UnsetEnforcedVertices(in GEOM::GEOM_Object theFace) raises (SALOME::SALOME_Exception);
595     
596    /*!
597     * Set/get/unset an enforced vertex on geom face given by entry
598     */
599     boolean SetEnforcedVertexEntry(in TEntry theFaceEntry, in double x, in double y, in double z, 
600                                    in TEnfName theVertexName, in TEntry theVertexEntry, in TEnfGroupName groupName) raises (SALOME::SALOME_Exception);
601
602     TEnfVertexList GetEnforcedVerticesEntry(in TEntry theFaceEntry) raises (SALOME::SALOME_Exception);
603     boolean UnsetEnforcedVertexEntry(in TEntry theFaceEntry, in double x, in double y, in double z, in TEntry theVertexEntry) raises (SALOME::SALOME_Exception);
604 //    boolean UnsetEnforcedVertexEntryGeom(in TEntry theFaceEntry, in TEntry theVertexEntry) raises (SALOME::SALOME_Exception);
605     boolean UnsetEnforcedVerticesEntry(in TEntry theFaceEntry) raises (SALOME::SALOME_Exception);
606
607     /*!
608      * To get/set internal vertices as enforced vertices
609      */
610     void          SetInternalEnforcedVertexAllFaces(in boolean toEnforceInternalVertices);
611     boolean       GetInternalEnforcedVertexAllFaces();
612     void          SetInternalEnforcedVertexAllFacesGroup(in TEnfGroupName groupName);
613     TEnfGroupName GetInternalEnforcedVertexAllFacesGroup();
614
615 //  Enable internal enforced vertices on specific face if requested by user
616 //    void          SetInternalEnforcedVertex(in GEOM::GEOM_Object theFace,in boolean toEnforceInternalVertices) raises (SALOME::SALOME_Exception);
617 //    void          SetInternalEnforcedVertexWithGroup(in GEOM::GEOM_Object theFace, in boolean toEnforceInternalVertices, in TEnfGroupName groupName) raises (SALOME::SALOME_Exception);
618 //    void          SetInternalEnforcedVertexEntry(in TEntry theFaceEntry, in boolean toEnforceInternalVertices, in TEnfGroupName groupName) raises (SALOME::SALOME_Exception);
619 //    boolean       GetInternalEnforcedVertex(in GEOM::GEOM_Object theFace) raises (SALOME::SALOME_Exception);
620 //    boolean       GetInternalEnforcedVertexEntry(in TEntry theFaceEntry) raises (SALOME::SALOME_Exception);
621 //    TFaceEntryInternalVerticesList GetAllInternalEnforcedVerticesFaces();
622     ///////////////////////
623     
624
625     ///////////////////////
626     // PERIODICITY       //
627     ///////////////////////
628
629     void ClearPreCadPeriodicityVectors();
630     void AddPreCadFacesPeriodicity(in GEOM::GEOM_Object theFace1, in GEOM::GEOM_Object theFace2) raises (SALOME::SALOME_Exception);
631     void AddPreCadFacesPeriodicityWithVertices(in GEOM::GEOM_Object theFace1, in GEOM::GEOM_Object theFace2, in GEOM::ListOfGO theSourceVertices, in GEOM::ListOfGO theTargetVertices) raises (SALOME::SALOME_Exception);
632     void AddPreCadFacesPeriodicityEntry(in TEntry theFace1, in TEntry theFace2, in TEntryList theSourceVertices, in TEntryList theTargetVertices)  raises (SALOME::SALOME_Exception);
633     void AddPreCadEdgesPeriodicity(in GEOM::GEOM_Object theEdge1, in GEOM::GEOM_Object theEdge2) raises (SALOME::SALOME_Exception);
634     void AddPreCadEdgesPeriodicityWithVertices(in GEOM::GEOM_Object theEdge1, in GEOM::GEOM_Object theEdge2, in GEOM::ListOfGO theSourceVertices, in GEOM::ListOfGO theTargetVertices) raises (SALOME::SALOME_Exception);
635     void AddPreCadEdgesPeriodicityEntry(in TEntry theEdge1, in TEntry theEdge2, in TEntryList theSourceVertices, in TEntryList theTargetVertices)  raises (SALOME::SALOME_Exception);
636     TPeriodicityList GetPreCadFacesPeriodicityVector();
637     TPeriodicityList GetPreCadEdgesPeriodicityVector();
638     ///////////////////////
639
640     /*!
641      * Sets the file for export resulting mesh in GMF format
642      */
643 //     void SetGMFFile(in string theFileName, in boolean isBinary);
644     void SetGMFFile(in string theFileName);
645     string GetGMFFile();
646 //     boolean GetGMFFileMode();
647
648     //
649     // Obsolete methods - To be removed in V7
650     //
651     void SetPhyMin(in double theMinSize);
652     double GetPhyMin();
653     void SetPhyMax(in double theMaxSize);
654     double GetPhyMax();
655     void SetGeoMin(in double theMinSize);
656     double GetGeoMin();
657     void SetGeoMax(in double theMaxSize);
658     double GetGeoMax();
659     void SetAngleMeshS(in double angle);
660     double GetAngleMeshS();
661     void SetAngleMeshC(in double angle);
662     double GetAngleMeshC();
663     void SetDecimesh(in boolean toIgnoreEdges);
664     boolean GetDecimesh();
665     void SetPreCADRemoveNanoEdges(in boolean toRemoveNanoEdges);
666     boolean GetPreCADRemoveNanoEdges();
667     void SetPreCADEpsNano(in double epsNano);
668     double GetPreCADEpsNano();
669   };
670 };
671
672 #endif