1 // Copyright (C) 2007-2022 CEA/DEN, EDF R&D
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.
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.
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
17 // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
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)
26 #ifndef _SMESH_BLSURFALGORITHM_IDL_
27 #define _SMESH_BLSURFALGORITHM_IDL_
29 #include "GEOM_Gen.idl"
30 #include "SALOME_Exception.idl"
31 #include "SMESH_Hypothesis.idl"
32 #include "SMESH_Mesh.idl"
35 * BLSURFPlugin: interfaces to BLSURF related hypotheses and algorithms
39 typedef sequence<string> string_array;
42 struct MG_EnforcedMesh1D
44 SMESH::SMESH_IDSource mesh; // mesh, group or sub-mesh
45 string groupName; // optional name of a group to add mesh edges to
47 typedef sequence< MG_EnforcedMesh1D > EnforcedMeshesList;
49 // Enforced vertex name
50 typedef string TEnfName;
52 typedef string TEntry;
53 typedef sequence<TEntry> TEntryList;
55 typedef string TEnfGroupName;
57 // Coordinates of enforced vertex
58 typedef sequence<double,3> TEnfVertexCoords;
60 typedef sequence<TEnfVertexCoords> TEnfVertexCoordsList;
66 TEnfVertexCoords coords;
67 TEnfGroupName grpName;
68 TEntryList faceEntries;
70 // List of enforced vertices
71 typedef sequence<TEnfVertex> TEnfVertexList;
73 // Map Face Entry / List of enforced vertices
74 struct TFaceEntryEnfVertexListMapElement {
76 TEnfVertexList enfVertexList;
78 typedef sequence<TFaceEntryEnfVertexListMapElement> TFaceEntryEnfVertexListMap;
80 // Map Face Entry / List of coords
81 struct TFaceEntryCoordsListMapElement {
83 TEnfVertexCoordsList coordsList;
85 typedef sequence<TFaceEntryCoordsListMapElement> TFaceEntryCoordsListMap;
87 // Map Face Entry / List of enf vertex entries
88 struct TFaceEntryEnfVertexEntryListMapElement {
90 TEntryList enfVertexEntryList;
92 typedef sequence<TFaceEntryEnfVertexEntryListMapElement> TFaceEntryEnfVertexEntryListMap;
94 // Map Coords / Enforced vertex
95 struct TCoordsEnfVertexElement {
96 TEnfVertexCoords coords;
99 typedef sequence<TCoordsEnfVertexElement> TCoordsEnfVertexMap;
101 // Map Enf Vertex Entry / Enforced vertex
102 struct TEnfVertexEntryEnfVertexElement {
103 TEntry enfVertexEntry;
104 TEnfVertex enfVertex;
106 typedef sequence<TEnfVertexEntryEnfVertexElement> TEnfVertexEntryEnfVertexMap;
108 // List of Face Entry with internal enforced vertices activated
109 typedef sequence<TEntry> TFaceEntryInternalVerticesList;
112 struct TAttractorParams {
120 typedef sequence<TAttractorParams> TAttParamsMap;
123 struct TPreCadPeriodicity {
126 TEntryList theSourceVerticesEntries;
127 TEntryList theTargetVerticesEntries;
130 typedef sequence<TPreCadPeriodicity> TPeriodicityList;
133 typedef sequence< long > THyperPatch;
134 typedef sequence< THyperPatch > THyperPatchList;
135 typedef sequence< string > THyperPatchEntries;
136 typedef sequence< THyperPatchEntries > THyperPatchEntriesList;
137 typedef sequence< GEOM::ListOfGO > THyperPatchShapesList;
140 * BLSURFPlugin_BLSURF: interface of BLSURF algorithm
142 interface BLSURFPlugin_BLSURF : SMESH::SMESH_2D_Algo
147 * BLSURFPlugin_Hypothesis: interface of "BLSURF parameters" hypothesis
149 interface BLSURFPlugin_Hypothesis : SMESH::SMESH_Hypothesis
153 * Get version of MeshGems suite.
154 * The version is a string in form <major>.<minor>-<patch>. Example: "2.9-6".
156 string GetMeshGemsVersion();
159 *Set a way to define size of mesh elements to generate
160 * 0 - size is defined automatically
161 * 1 - size is set by SetPhySize() method
162 * 2 - size is set by SetPhySize() method. A sizemap is defined.
164 void SetPhysicalMesh(in long isCustom);
165 long GetPhysicalMesh();
168 *Set a way to define maximum angular deflection of mesh from CAD model
169 * 0 - deflection is defined automatically
170 * 1 - deflection is set by SetAngleMesh() method
171 * 2 - deflection is set by SetAngleMesh() method. A sizemap is defined (TODO).
173 void SetGeometricMesh(in long isCustom);
174 long GetGeometricMesh();
177 *Set size of mesh elements to generate
179 void SetPhySize(in double size);
180 void SetPhySizeRel(in double size);
182 boolean IsPhySizeRel();
185 *Set lower boundary of mesh element size
187 void SetMinSize(in double theMinSize);
188 void SetMinSizeRel(in double theMinSize);
190 boolean IsMinSizeRel();
193 *Set upper boundary of mesh element size
195 void SetMaxSize(in double theMaxSize);
196 void SetMaxSizeRel(in double theMaxSize);
198 boolean IsMaxSizeRel();
201 *Set maximal allowed ratio between the lengths of two adjacent edges
203 void SetUseGradation(in boolean toUse);
204 boolean GetUseGradation();
205 void SetGradation(in double ratio);
206 double GetGradation();
209 *Set maximal allowed ratio between the lengths of two adjacent edges in 3D mesh
211 void SetUseVolumeGradation(in boolean toUse);
212 boolean GetUseVolumeGradation();
213 void SetVolumeGradation(in double ratio);
214 double GetVolumeGradation();
217 *Set to create quadrilateral elements or not
219 void SetQuadAllowed(in boolean allowed);
220 void SetElementType(in long elementType);
221 long GetElementType();
224 *Set angular deflection (in degrees) of a mesh face and edge from CAD surface
226 void SetAngleMesh(in double angle);
227 double GetAngleMesh();
230 *Set the maximum desired distance between a triangle and its supporting CAD surface
232 void SetChordalError(in double distance);
233 double GetChordalError();
236 * Determines whether the generated mesh will be isotropic or anisotropic
238 void SetAnisotropic(in boolean anisotropic);
239 boolean GetAnisotropic();
242 * Defines the maximum anisotropic ratio of the metric governing the anisotropic process.
243 * The default value of 0 means that the metric (and thus the generated elements)
244 * can be arbitrarily stretched.
246 void SetAnisotropicRatio(in double ratio);
247 double GetAnisotropicRatio();
250 * This patch-independent correction option can be activated to remove the tiny
251 * (nano) edges from the generated mesh, without taking into account the tags
252 * (attributes) specifications.
254 void SetRemoveTinyEdges(in boolean remove);
255 boolean GetRemoveTinyEdges();
258 * Defines the minimal length under which an edge is considered to be a tiny one
260 void SetTinyEdgeLength(in double length);
261 double GetTinyEdgeLength();
264 * This patch-independent correction option can be activated to remove the tiny
265 * edges (defined by the option tiny edge optimisation length) from the generated
266 * mesh when it improves the local mesh quality, without taking into account the
267 * tags (attributes) specifications.
269 void SetOptimiseTinyEdges(in boolean toOptimise);
270 boolean GetOptimiseTinyEdges();
273 * Defines the minimal length under which an edge is considered to be a tiny one
274 * to be optimised out by the optimise tiny edges option
276 void SetTinyEdgeOptimisationLength(in double length);
277 double GetTinyEdgeOptimisationLength();
280 * Activate correction of all surface intersections
282 void SetCorrectSurfaceIntersection(in boolean toCorrect);
283 boolean GetCorrectSurfaceIntersection();
286 * Defines the time the user is ready to spend in the intersection prevention process.
287 * For example, maxCost = 3 means that MeshGems-CADSurf will not spend more time
288 * in the intersection removal process than 3 times the time required to mesh
289 * without processing the intersections.
291 void SetCorrectSurfaceIntersectionMaxCost(in double maxCost);
292 double GetCorrectSurfaceIntersectionMaxCost();
295 * This patch independent correction option can be activated to remove the bad
296 * elements (often called slivers) from the generated mesh, without taking into account
297 * the tags (attributes) specification.
299 void SetBadElementRemoval(in boolean remove);
300 boolean GetBadElementRemoval();
303 * This parameter defines the aspect ratio triggering the "bad element"
304 * classification for the force bad surface element removal option.
306 void SetBadElementAspectRatio(in double ratio);
307 double GetBadElementAspectRatio();
310 * If this option is activated, MeshGems-CADSurf will optimize the mesh in order to
311 * get better shaped elements, during a process which respects the patch independent options.
312 * This optimisation cannot be fully performed when correct_surface_intersections = 1.
314 void SetOptimizeMesh(in boolean optimize);
315 boolean GetOptimizeMesh();
318 * Determines the order of mesh elements to be generated (linear or quadratic)
320 void SetQuadraticMesh(in boolean quadratic);
321 boolean GetQuadraticMesh();
324 *Set topology usage way defining how mesh conformity is assured
325 * value=0 - mesh conformity is assured by conformity of a shape
326 * value=1,2 - mesh conformity is assured by pre-processing a CAD model (OBSOLETE)
327 * value=3 - mesh conformity is assured by pre-processing a CAD model with Pre-CAD
329 void SetTopology(in long way);
334 * Activate/deactivate surface proximity computation
336 void SetSurfaceProximity( in boolean toUse );
337 boolean GetSurfaceProximity();
340 * Set number of surface element layers to be generated due to surface proximity
342 void SetNbSurfaceProximityLayers( in short nbLayers );
343 short GetNbSurfaceProximityLayers();
346 * Set coefficient by which size of element refined due to surface proximity is increased
348 void SetSurfaceProximityRatio( in double ratio );
349 double GetSurfaceProximityRatio();
352 * Activate/deactivate volume proximity computation
354 void SetVolumeProximity( in boolean toUse );
355 boolean GetVolumeProximity();
358 * Set number of surface element layers to be generated due to volume proximity
360 void SetNbVolumeProximityLayers( in short nbLayers );
361 short GetNbVolumeProximityLayers();
364 * Set coefficient by which size of element refined due to volume proximity is increased
366 void SetVolumeProximityRatio( in double ratio );
367 double GetVolumeProximityRatio();
370 * Set verbosity level in the range 0 to 10.
372 void SetVerbosity(in short theVal) raises (SALOME::SALOME_Exception);
373 short GetVerbosity();
376 * Set/Get enforced 1D meshes
378 void SetEnforcedMeshes( in EnforcedMeshesList enforcedMeshes );
379 EnforcedMeshesList GetEnforcedMeshes();
382 * Set enforce_cad_edge_sizes parameter
384 * Relaxes the given sizemap constraint around CAD edges to allow a better
385 * element quality and a better geometric approximation. It is only useful in
386 * combination with the gradation option.
388 void SetEnforceCadEdgesSize( in boolean toEnforce );
389 boolean GetEnforceCadEdgesSize();
392 * Set jacobian_rectification_respect_geometry parameter
394 * While making the mesh quadratic, allows to lose the CAD-mesh associativity in order
395 * to correct elements with nagative Jacobian
397 void SetJacobianRectificationRespectGeometry( in boolean allowRectification );
398 boolean GetJacobianRectificationRespectGeometry();
401 * Set rectify_jacobian parameter
403 * While making the mesh quadratic, allow to fix nagative Jacobian surface elements
405 void SetJacobianRectification( in boolean allowRectification );
406 boolean GetJacobianRectification();
409 * Set use_deprecated_patch_mesher parameter (compatibility with older versions of Meshgems)
411 * the use_deprecated_patch_mesher parameter allows to keep the same behaviour than
412 * in salome < 8.3 (meshgems 2.1.11 instead of meshgems >= 2.4.5)
414 void SetUseDeprecatedPatchMesher( in boolean useDeprecatedPatchMesher );
415 boolean GetUseDeprecatedPatchMesher();
418 * Set max_number_of_points_per_patch parameter
420 * This parameter controls the maximum amount of points MeshGems-CADSurf is allowed
421 * to generate on a single CAD patch. For an automatic gestion of the memory, one
422 * can set this parameter to 0
424 void SetMaxNumberOfPointsPerPatch( in long nb ) raises (SALOME::SALOME_Exception);
425 long GetMaxNumberOfPointsPerPatch();
429 * Set max_number_of_threads parameter
431 * Set the maximum of threads to use for multithreading mesh computation.
433 void SetMaxNumberOfThreads( in long nb ) raises (SALOME::SALOME_Exception);
434 long GetMaxNumberOfThreads();
437 * Set respect_geometry parameter
439 * This patch independent option can be deactivated to allow MeshGems-CADSurf
440 * to lower the geometry accuracy in its patch independent process.
442 void SetRespectGeometry( in boolean toRespect );
443 boolean GetRespectGeometry();
446 * Set tiny_edges_avoid_surface_intersections parameter
448 * This option defines the priority between the tiny feature
449 * suppression and the surface intersection prevention.
451 void SetTinyEdgesAvoidSurfaceIntersections( in boolean toAvoidIntersection );
452 boolean GetTinyEdgesAvoidSurfaceIntersections();
455 * Set closed_geometry parameter parameter
457 * Describes whether the geometry is expected to be closed or not.
458 * When activated, this option helps MeshGems-PreCAD to treat the dirtiest geometries.
460 void SetClosedGeometry( in boolean isClosed );
461 boolean GetClosedGeometry();
464 * Set debug parameter
466 * Make MeshGems-CADSurf will be very verbose and will output some intermediate
467 * files in the working directory. This option is mainly meant for Distene support issues.
469 void SetDebug( in boolean isDebug );
473 * Set periodic_tolerance parameter
475 * This parameter defines the maximum size difference between two periodic edges
476 * and also the maximum distance error between two periodic entities.
478 void SetPeriodicTolerance( in double tol ) raises (SALOME::SALOME_Exception);
479 double GetPeriodicTolerance() raises (SALOME::SALOME_Exception);
482 * Set required_entities parameter
484 * The required entities control the correction operations.
485 * Accepted values for this parameter are :
486 * - "respect" : MeshGems-CADSurf is not allowed to alter any required entity,
487 * even for correction purposes,
488 * - "ignore" : MeshGems-CADSurf will ignore the required entities in its processing,
489 * - "clear" : MeshGems-CADSurf will clear any required status for the entities.
490 * There will not be any entity marked as required in the generated mesh.
492 void SetRequiredEntities( in string howToTreat ) raises (SALOME::SALOME_Exception);
493 string GetRequiredEntities();
496 * Set sewing_tolerance parameter
498 * This parameter is the tolerance of the assembly.
500 void SetSewingTolerance( in double tol ) raises (SALOME::SALOME_Exception);
501 double GetSewingTolerance() raises (SALOME::SALOME_Exception);
506 * The tag (attribute) system controls the optimisation process.
507 * Accepted values for this parameter are :
508 * - "respect" : the CAD tags will be preserved and unaltered by the optimisation operations,
509 * - "ignore" : the CAD tags will be ignored by the optimisation operations
510 * but they will still be present in the output mesh,
511 * - "clear" : MeshGems-CADSurf will clear any tag on any entity and optimise accordingly.
512 * There will not be any tag in the generated mesh.
514 void SetTags( in string howToTreat ) raises (SALOME::SALOME_Exception);
520 void SetHyperPatches(in THyperPatchList hpl);
521 THyperPatchList GetHyperPatches( in GEOM::GEOM_Object mainShape );
522 void SetHyperPatchShapes(in THyperPatchShapesList hpsl);
523 THyperPatchEntriesList GetHyperPatchShapes();
524 void SetHyperPatchEntries(in THyperPatchEntriesList hpel);
529 void SetPreCADMergeEdges(in boolean toMergeEdges);
530 boolean GetPreCADMergeEdges();
533 * To remove duplicate CAD faces.
535 void SetPreCADRemoveDuplicateCADFaces(in boolean toRemoveDuplicateCADFaces);
536 boolean GetPreCADRemoveDuplicateCADFaces();
539 * To process 3D topology.
541 void SetPreCADProcess3DTopology(in boolean toProcess);
542 boolean GetPreCADProcess3DTopology();
546 * To compute topology from scratch
548 void SetPreCADDiscardInput(in boolean toDiscardInput);
549 boolean GetPreCADDiscardInput();
552 *Set advanced option value
554 void SetOptionValue(in string optionName,
555 in string optionValue) raises (SALOME::SALOME_Exception);
556 void SetPreCADOptionValue(in string optionName,
557 in string optionValue) raises (SALOME::SALOME_Exception);
558 string GetOptionValue(in string optionName) raises (SALOME::SALOME_Exception);
559 string GetPreCADOptionValue(in string optionName) raises (SALOME::SALOME_Exception);
561 * Unsets advanced option
563 void UnsetOption(in string optionName);
564 void UnsetPreCADOption(in string optionName);
567 * Adds custom advanced option and its value
569 void SetAdvancedOption(in string optionsAndValues) // in a form "option_1 v1 option_2 v2'"
570 raises (SALOME::SALOME_Exception);
571 void AddOption(in string optionName, in string optionValue);
572 void AddPreCADOption(in string optionName, in string optionValue);
573 string GetOption(in string optionName);
574 string GetPreCADOption(in string optionName);
577 * Return array of strings each of which is option name concatenated
578 * with option value devided by semicolon - "option_name:option_value:option_type".
579 * Option value is empty if an option is not set.
580 * option_type: 1 if user-define, 0 if default
581 * Note: the method is mostly for interaction with GUI.
583 string_array GetOptionValues();
584 string_array GetPreCADOptionValues();
585 string_array GetAdvancedOptionValues();
588 * Set option values each in the form "option_name[:option_value][:option_type]".
589 * Note: the method is mostly for interaction with GUI.
591 void SetOptionValues(in string_array options) raises (SALOME::SALOME_Exception);
592 void SetPreCADOptionValues(in string_array options) raises (SALOME::SALOME_Exception);
593 void SetAdvancedOptionValues(in string_array options);
598 void SetSizeMapEntries(in string_array sizeMaps) raises (SALOME::SALOME_Exception);
599 void ClearSizeMaps();
601 void UnsetEntry(in string entry);
604 * Set/unset a SizeMap on geom object
606 void SetSizeMap(in GEOM::GEOM_Object GeomObj, in string sizeMap) raises (SALOME::SALOME_Exception);
607 void SetConstantSizeMap(in GEOM::GEOM_Object GeomObj, in double sizeMap);
608 void UnsetSizeMap(in GEOM::GEOM_Object GeomObj);
611 * Set a SizeMap on geom object given by entry
613 void SetSizeMapEntry(in string entry, in string sizeMap) raises (SALOME::SALOME_Exception);
614 void SetConstantSizeMapEntry(in string entry, in GEOM::shape_type shapeType, in double sizeMap) raises (SALOME::SALOME_Exception);
615 string GetSizeMapEntry(in string entry) raises (SALOME::SALOME_Exception);
616 string_array GetSizeMapEntries();
619 * Set/unset an attractor on geom object
621 void SetAttractor(in GEOM::GEOM_Object GeomObj, in string attractor);
622 void UnsetAttractor(in GEOM::GEOM_Object GeomObj);
625 * Set an attractor on geom object given by entry
627 void SetAttractorEntry(in string entry, in string attractor) raises (SALOME::SALOME_Exception);
628 string GetAttractorEntry(in string entry) raises (SALOME::SALOME_Exception);
629 string_array GetAttractorEntries();
632 * Set/unset an attractor given as geom object on another geom object
634 void SetAttractorGeom(in GEOM::GEOM_Object GeomObj, in GEOM::GEOM_Object AttractorShape, in double StartSize, in double EndSize, in double ActionRadius, in double ConstantRadius);
635 void UnsetAttractorGeom(in GEOM::GEOM_Object GeomObj, in GEOM::GEOM_Object AttractorShape);
636 void UnsetAttractorEntry(in string entry, in string attractor);
639 * Set an attractor given by entry on a geom object given by entry
641 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);
642 BLSURFPlugin::TAttParamsMap GetAttractorParams();
645 void SetCustomSizeMapEntry(in string entry, in string sizeMap);
646 string GetCustomSizeMapEntry(in string entry);
647 void SetCustomSizeMap(in GEOM::GEOM_Object GeomObj, in string sizeMap);
648 void UnsetCustomSizeMap(in GEOM::GEOM_Object GeomObj);
649 string_array GetCustomSizeMapEntries();
651 ///////////////////////
652 // ENFORCED VERTEXES //
653 ///////////////////////
655 TFaceEntryEnfVertexListMap GetAllEnforcedVerticesByFace();
656 TEnfVertexList GetAllEnforcedVertices();
658 TFaceEntryCoordsListMap GetAllCoordsByFace();
659 TCoordsEnfVertexMap GetAllEnforcedVerticesByCoords();
661 TFaceEntryEnfVertexEntryListMap GetAllEnfVertexEntriesByFace();
662 TEnfVertexEntryEnfVertexMap GetAllEnforcedVerticesByEnfVertexEntry();
664 void ClearAllEnforcedVertices();
667 * Set/get/unset an enforced vertex on geom face
670 boolean SetEnforcedVertex(in GEOM::GEOM_Object theFace, in double x, in double y, in double z) raises (SALOME::SALOME_Exception);
671 boolean SetEnforcedVertexNamed(in GEOM::GEOM_Object theFace, in double x, in double y, in double z, in TEnfName theVertexName) raises (SALOME::SALOME_Exception);
672 boolean SetEnforcedVertexGeom(in GEOM::GEOM_Object theFace, in GEOM::GEOM_Object theVertex) raises (SALOME::SALOME_Exception);
673 boolean SetEnforcedVertexWithGroup(in GEOM::GEOM_Object theFace, in double x, in double y, in double z, in TEnfGroupName groupName) raises (SALOME::SALOME_Exception);
674 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);
675 boolean SetEnforcedVertexGeomWithGroup(in GEOM::GEOM_Object theFace, in GEOM::GEOM_Object theVertex, in TEnfGroupName groupName) raises (SALOME::SALOME_Exception);
677 TEnfVertexList GetEnforcedVertices(in GEOM::GEOM_Object theFace) raises (SALOME::SALOME_Exception);
678 boolean UnsetEnforcedVertex(in GEOM::GEOM_Object theFace, in double x, in double y, in double z) raises (SALOME::SALOME_Exception);
679 boolean UnsetEnforcedVertexGeom(in GEOM::GEOM_Object theFace, in GEOM::GEOM_Object theVertex) raises (SALOME::SALOME_Exception);
680 boolean UnsetEnforcedVertices(in GEOM::GEOM_Object theFace) raises (SALOME::SALOME_Exception);
683 boolean AddEnforcedVertex(in double x, in double y, in double z) raises (SALOME::SALOME_Exception);
684 boolean AddEnforcedVertexNamed(in double x, in double y, in double z, in TEnfName theVertexName) raises (SALOME::SALOME_Exception);
685 boolean AddEnforcedVertexGeom(in GEOM::GEOM_Object theVertex) raises (SALOME::SALOME_Exception);
686 boolean AddEnforcedVertexWithGroup(in double x, in double y, in double z, in TEnfGroupName groupName) raises (SALOME::SALOME_Exception);
687 boolean AddEnforcedVertexNamedWithGroup(in double x, in double y, in double z, in TEnfName theVertexName, in TEnfGroupName groupName) raises (SALOME::SALOME_Exception);
688 boolean AddEnforcedVertexGeomWithGroup(in GEOM::GEOM_Object theVertex, in TEnfGroupName groupName) raises (SALOME::SALOME_Exception);
690 boolean RemoveEnforcedVertex(in double x, in double y, in double z) raises (SALOME::SALOME_Exception);
691 boolean RemoveEnforcedVertexGeom(in GEOM::GEOM_Object theVertex) raises (SALOME::SALOME_Exception);
692 boolean RemoveEnforcedVertices() raises (SALOME::SALOME_Exception);
695 * Set/get/unset an enforced vertex on geom face given by entry
697 boolean SetEnforcedVertexEntry(in TEntry theFaceEntry, in double x, in double y, in double z,
698 in TEnfName theVertexName, in TEntry theVertexEntry, in TEnfGroupName groupName) raises (SALOME::SALOME_Exception);
700 TEnfVertexList GetEnforcedVerticesEntry(in TEntry theFaceEntry) raises (SALOME::SALOME_Exception);
701 boolean UnsetEnforcedVertexEntry(in TEntry theFaceEntry, in double x, in double y, in double z, in TEntry theVertexEntry) raises (SALOME::SALOME_Exception);
702 // boolean UnsetEnforcedVertexEntryGeom(in TEntry theFaceEntry, in TEntry theVertexEntry) raises (SALOME::SALOME_Exception);
703 boolean UnsetEnforcedVerticesEntry(in TEntry theFaceEntry) raises (SALOME::SALOME_Exception);
706 * To get/set internal vertices as enforced vertices
708 void SetInternalEnforcedVertexAllFaces(in boolean toEnforceInternalVertices);
709 boolean GetInternalEnforcedVertexAllFaces();
710 void SetInternalEnforcedVertexAllFacesGroup(in TEnfGroupName groupName);
711 TEnfGroupName GetInternalEnforcedVertexAllFacesGroup();
713 // Enable internal enforced vertices on specific face if requested by user
714 // void SetInternalEnforcedVertex(in GEOM::GEOM_Object theFace,in boolean toEnforceInternalVertices) raises (SALOME::SALOME_Exception);
715 // void SetInternalEnforcedVertexWithGroup(in GEOM::GEOM_Object theFace, in boolean toEnforceInternalVertices, in TEnfGroupName groupName) raises (SALOME::SALOME_Exception);
716 // void SetInternalEnforcedVertexEntry(in TEntry theFaceEntry, in boolean toEnforceInternalVertices, in TEnfGroupName groupName) raises (SALOME::SALOME_Exception);
717 // boolean GetInternalEnforcedVertex(in GEOM::GEOM_Object theFace) raises (SALOME::SALOME_Exception);
718 // boolean GetInternalEnforcedVertexEntry(in TEntry theFaceEntry) raises (SALOME::SALOME_Exception);
719 // TFaceEntryInternalVerticesList GetAllInternalEnforcedVerticesFaces();
720 ///////////////////////
723 ///////////////////////
725 ///////////////////////
727 void ClearPreCadPeriodicityVectors();
728 void AddPreCadFacesPeriodicity(in GEOM::GEOM_Object theFace1, in GEOM::GEOM_Object theFace2) raises (SALOME::SALOME_Exception);
729 void AddPreCadFacesPeriodicityWithVertices(in GEOM::GEOM_Object theFace1, in GEOM::GEOM_Object theFace2, in GEOM::ListOfGO theSourceVertices, in GEOM::ListOfGO theTargetVertices) raises (SALOME::SALOME_Exception);
730 void AddPreCadFacesPeriodicityEntry(in TEntry theFace1, in TEntry theFace2, in TEntryList theSourceVertices, in TEntryList theTargetVertices) raises (SALOME::SALOME_Exception);
731 void AddPreCadEdgesPeriodicity(in GEOM::GEOM_Object theEdge1, in GEOM::GEOM_Object theEdge2) raises (SALOME::SALOME_Exception);
732 void AddPreCadEdgesPeriodicityWithVertices(in GEOM::GEOM_Object theEdge1, in GEOM::GEOM_Object theEdge2, in GEOM::ListOfGO theSourceVertices, in GEOM::ListOfGO theTargetVertices) raises (SALOME::SALOME_Exception);
733 void AddPreCadEdgesPeriodicityEntry(in TEntry theEdge1, in TEntry theEdge2, in TEntryList theSourceVertices, in TEntryList theTargetVertices) raises (SALOME::SALOME_Exception);
734 TPeriodicityList GetPreCadFacesPeriodicityVector();
735 TPeriodicityList GetPreCadEdgesPeriodicityVector();
736 ///////////////////////
739 *Set the file for export resulting mesh in GMF format
741 void SetGMFFile(in string theFileName);