1 // Copyright (C) 2007-2021 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 "SMESH_Hypothesis.idl"
30 #include "GEOM_Gen.idl"
31 #include "SALOME_Exception.idl"
34 * BLSURFPlugin: interfaces to BLSURF related hypotheses and algorithms
38 typedef sequence<string> string_array;
40 // Enforced vertex name
41 typedef string TEnfName;
43 typedef string TEntry;
44 typedef sequence<TEntry> TEntryList;
46 typedef string TEnfGroupName;
48 // Coordinates of enforced vertex
49 typedef sequence<double,3> TEnfVertexCoords;
51 typedef sequence<TEnfVertexCoords> TEnfVertexCoordsList;
57 TEnfVertexCoords coords;
58 TEnfGroupName grpName;
59 TEntryList faceEntries;
61 // List of enforced vertices
62 typedef sequence<TEnfVertex> TEnfVertexList;
64 // Map Face Entry / List of enforced vertices
65 struct TFaceEntryEnfVertexListMapElement {
67 TEnfVertexList enfVertexList;
69 typedef sequence<TFaceEntryEnfVertexListMapElement> TFaceEntryEnfVertexListMap;
71 // Map Face Entry / List of coords
72 struct TFaceEntryCoordsListMapElement {
74 TEnfVertexCoordsList coordsList;
76 typedef sequence<TFaceEntryCoordsListMapElement> TFaceEntryCoordsListMap;
78 // Map Face Entry / List of enf vertex entries
79 struct TFaceEntryEnfVertexEntryListMapElement {
81 TEntryList enfVertexEntryList;
83 typedef sequence<TFaceEntryEnfVertexEntryListMapElement> TFaceEntryEnfVertexEntryListMap;
85 // Map Coords / Enforced vertex
86 struct TCoordsEnfVertexElement {
87 TEnfVertexCoords coords;
90 typedef sequence<TCoordsEnfVertexElement> TCoordsEnfVertexMap;
92 // Map Enf Vertex Entry / Enforced vertex
93 struct TEnfVertexEntryEnfVertexElement {
94 TEntry enfVertexEntry;
97 typedef sequence<TEnfVertexEntryEnfVertexElement> TEnfVertexEntryEnfVertexMap;
99 // List of Face Entry with internal enforced vertices activated
100 typedef sequence<TEntry> TFaceEntryInternalVerticesList;
103 struct TAttractorParams {
111 typedef sequence<TAttractorParams> TAttParamsMap;
114 struct TPreCadPeriodicity {
117 TEntryList theSourceVerticesEntries;
118 TEntryList theTargetVerticesEntries;
121 typedef sequence<TPreCadPeriodicity> TPeriodicityList;
124 typedef sequence< long > THyperPatch;
125 typedef sequence< THyperPatch > THyperPatchList;
126 typedef sequence< string > THyperPatchEntries;
127 typedef sequence< THyperPatchEntries > THyperPatchEntriesList;
128 typedef sequence< GEOM::ListOfGO > THyperPatchShapesList;
131 * BLSURFPlugin_BLSURF: interface of BLSURF algorithm
133 interface BLSURFPlugin_BLSURF : SMESH::SMESH_2D_Algo
138 * BLSURFPlugin_Hypothesis: interface of "BLSURF parameters" hypothesis
140 interface BLSURFPlugin_Hypothesis : SMESH::SMESH_Hypothesis
144 * Get version of MeshGems suite.
145 * The version is a string in form <major>.<minor>-<patch>. Example: "2.9-6".
147 string GetMeshGemsVersion();
150 *Set a way to define size of mesh elements to generate
151 * 0 - size is defined automatically
152 * 1 - size is set by SetPhySize() method
153 * 2 - size is set by SetPhySize() method. A sizemap is defined.
155 void SetPhysicalMesh(in long isCustom);
156 long GetPhysicalMesh();
159 *Set a way to define maximum angular deflection of mesh from CAD model
160 * 0 - deflection is defined automatically
161 * 1 - deflection is set by SetAngleMesh() method
162 * 2 - deflection is set by SetAngleMesh() method. A sizemap is defined (TODO).
164 void SetGeometricMesh(in long isCustom);
165 long GetGeometricMesh();
168 *Set size of mesh elements to generate
170 void SetPhySize(in double size);
171 void SetPhySizeRel(in double size);
173 boolean IsPhySizeRel();
176 *Set lower boundary of mesh element size
178 void SetMinSize(in double theMinSize);
179 void SetMinSizeRel(in double theMinSize);
181 boolean IsMinSizeRel();
184 *Set upper boundary of mesh element size
186 void SetMaxSize(in double theMaxSize);
187 void SetMaxSizeRel(in double theMaxSize);
189 boolean IsMaxSizeRel();
192 *Set maximal allowed ratio between the lengths of two adjacent edges
194 void SetUseGradation(in boolean toUse);
195 boolean GetUseGradation();
196 void SetGradation(in double ratio);
197 double GetGradation();
200 *Set maximal allowed ratio between the lengths of two adjacent edges in 3D mesh
202 void SetUseVolumeGradation(in boolean toUse);
203 boolean GetUseVolumeGradation();
204 void SetVolumeGradation(in double ratio);
205 double GetVolumeGradation();
208 *Set to create quadrilateral elements or not
210 void SetQuadAllowed(in boolean allowed);
211 void SetElementType(in long elementType);
212 long GetElementType();
215 *Set angular deflection (in degrees) of a mesh face and edge from CAD surface
217 void SetAngleMesh(in double angle);
218 double GetAngleMesh();
221 *Set the maximum desired distance between a triangle and its supporting CAD surface
223 void SetChordalError(in double distance);
224 double GetChordalError();
227 * Determines whether the generated mesh will be isotropic or anisotropic
229 void SetAnisotropic(in boolean anisotropic);
230 boolean GetAnisotropic();
233 * Defines the maximum anisotropic ratio of the metric governing the anisotropic process.
234 * The default value of 0 means that the metric (and thus the generated elements)
235 * can be arbitrarily stretched.
237 void SetAnisotropicRatio(in double ratio);
238 double GetAnisotropicRatio();
241 * This patch-independent correction option can be activated to remove the tiny
242 * (nano) edges from the generated mesh, without taking into account the tags
243 * (attributes) specifications.
245 void SetRemoveTinyEdges(in boolean remove);
246 boolean GetRemoveTinyEdges();
249 * Defines the minimal length under which an edge is considered to be a tiny one
251 void SetTinyEdgeLength(in double length);
252 double GetTinyEdgeLength();
255 * This patch-independent correction option can be activated to remove the tiny
256 * edges (defined by the option tiny edge optimisation length) from the generated
257 * mesh when it improves the local mesh quality, without taking into account the
258 * tags (attributes) specifications.
260 void SetOptimiseTinyEdges(in boolean toOptimise);
261 boolean GetOptimiseTinyEdges();
264 * Defines the minimal length under which an edge is considered to be a tiny one
265 * to be optimised out by the optimise tiny edges option
267 void SetTinyEdgeOptimisationLength(in double length);
268 double GetTinyEdgeOptimisationLength();
271 * Activate correction of all surface intersections
273 void SetCorrectSurfaceIntersection(in boolean toCorrect);
274 boolean GetCorrectSurfaceIntersection();
277 * Defines the time the user is ready to spend in the intersection prevention process.
278 * For example, maxCost = 3 means that MeshGems-CADSurf will not spend more time
279 * in the intersection removal process than 3 times the time required to mesh
280 * without processing the intersections.
282 void SetCorrectSurfaceIntersectionMaxCost(in double maxCost);
283 double GetCorrectSurfaceIntersectionMaxCost();
286 * This patch independent correction option can be activated to remove the bad
287 * elements (often called slivers) from the generated mesh, without taking into account
288 * the tags (attributes) specification.
290 void SetBadElementRemoval(in boolean remove);
291 boolean GetBadElementRemoval();
294 * This parameter defines the aspect ratio triggering the "bad element"
295 * classification for the force bad surface element removal option.
297 void SetBadElementAspectRatio(in double ratio);
298 double GetBadElementAspectRatio();
301 * If this option is activated, MeshGems-CADSurf will optimize the mesh in order to
302 * get better shaped elements, during a process which respects the patch independent options.
303 * This optimisation cannot be fully performed when correct_surface_intersections = 1.
305 void SetOptimizeMesh(in boolean optimize);
306 boolean GetOptimizeMesh();
309 * Determines the order of mesh elements to be generated (linear or quadratic)
311 void SetQuadraticMesh(in boolean quadratic);
312 boolean GetQuadraticMesh();
315 *Set topology usage way defining how mesh conformity is assured
316 * value=0 - mesh conformity is assured by conformity of a shape
317 * value=1,2 - mesh conformity is assured by pre-processing a CAD model (OBSOLETE)
318 * value=3 - mesh conformity is assured by pre-processing a CAD model with Pre-CAD
320 void SetTopology(in long way);
325 * Activate/deactivate surface proximity computation
327 void SetSurfaceProximity( in boolean toUse );
328 boolean GetSurfaceProximity();
331 * Set number of surface element layers to be generated due to surface proximity
333 void SetNbSurfaceProximityLayers( in short nbLayers );
334 short GetNbSurfaceProximityLayers();
337 * Set coefficient by which size of element refined due to surface proximity is increased
339 void SetSurfaceProximityRatio( in double ratio );
340 double GetSurfaceProximityRatio();
343 * Activate/deactivate volume proximity computation
345 void SetVolumeProximity( in boolean toUse );
346 boolean GetVolumeProximity();
349 * Set number of surface element layers to be generated due to volume proximity
351 void SetNbVolumeProximityLayers( in short nbLayers );
352 short GetNbVolumeProximityLayers();
355 * Set coefficient by which size of element refined due to volume proximity is increased
357 void SetVolumeProximityRatio( in double ratio );
358 double GetVolumeProximityRatio();
361 *Set verbosity level in the range 0 to 100.
363 void SetVerbosity(in short theVal) raises (SALOME::SALOME_Exception);
364 short GetVerbosity();
367 * Set enforce_cad_edge_sizes parameter
369 * Relaxes the given sizemap constraint around CAD edges to allow a better
370 * element quality and a better geometric approximation. It is only useful in
371 * combination with the gradation option.
373 void SetEnforceCadEdgesSize( in boolean toEnforce );
374 boolean GetEnforceCadEdgesSize();
377 * Set jacobian_rectification_respect_geometry parameter
379 * While making the mesh quadratic, allows to lose the CAD-mesh associativity in order
380 * to correct elements with nagative Jacobian
382 void SetJacobianRectificationRespectGeometry( in boolean allowRectification );
383 boolean GetJacobianRectificationRespectGeometry();
386 * Set rectify_jacobian parameter
388 * While making the mesh quadratic, allow to fix nagative Jacobian surface elements
390 void SetJacobianRectification( in boolean allowRectification );
391 boolean GetJacobianRectification();
394 * Set use_deprecated_patch_mesher parameter (compatibility with older versions of Meshgems)
396 * the use_deprecated_patch_mesher parameter allows to keep the same behaviour than
397 * in salome < 8.3 (meshgems 2.1.11 instead of meshgems >= 2.4.5)
399 void SetUseDeprecatedPatchMesher( in boolean useDeprecatedPatchMesher );
400 boolean GetUseDeprecatedPatchMesher();
403 * Set max_number_of_points_per_patch parameter
405 * This parameter controls the maximum amount of points MeshGems-CADSurf is allowed
406 * to generate on a single CAD patch. For an automatic gestion of the memory, one
407 * can set this parameter to 0
409 void SetMaxNumberOfPointsPerPatch( in long nb ) raises (SALOME::SALOME_Exception);
410 long GetMaxNumberOfPointsPerPatch();
414 * Set max_number_of_threads parameter
416 * Set the maximum of threads to use for multithreading mesh computation.
418 void SetMaxNumberOfThreads( in long nb ) raises (SALOME::SALOME_Exception);
419 long GetMaxNumberOfThreads();
422 * Set respect_geometry parameter
424 * This patch independent option can be deactivated to allow MeshGems-CADSurf
425 * to lower the geometry accuracy in its patch independent process.
427 void SetRespectGeometry( in boolean toRespect );
428 boolean GetRespectGeometry();
431 * Set tiny_edges_avoid_surface_intersections parameter
433 * This option defines the priority between the tiny feature
434 * suppression and the surface intersection prevention.
436 void SetTinyEdgesAvoidSurfaceIntersections( in boolean toAvoidIntersection );
437 boolean GetTinyEdgesAvoidSurfaceIntersections();
440 * Set closed_geometry parameter parameter
442 * Describes whether the geometry is expected to be closed or not.
443 * When activated, this option helps MeshGems-PreCAD to treat the dirtiest geometries.
445 void SetClosedGeometry( in boolean isClosed );
446 boolean GetClosedGeometry();
449 * Set debug parameter
451 * Make MeshGems-CADSurf will be very verbose and will output some intermediate
452 * files in the working directory. This option is mainly meant for Distene support issues.
454 void SetDebug( in boolean isDebug );
458 * Set periodic_tolerance parameter
460 * This parameter defines the maximum size difference between two periodic edges
461 * and also the maximum distance error between two periodic entities.
463 void SetPeriodicTolerance( in double tol ) raises (SALOME::SALOME_Exception);
464 double GetPeriodicTolerance() raises (SALOME::SALOME_Exception);
467 * Set required_entities parameter
469 * The required entities control the correction operations.
470 * Accepted values for this parameter are :
471 * - "respect" : MeshGems-CADSurf is not allowed to alter any required entity,
472 * even for correction purposes,
473 * - "ignore" : MeshGems-CADSurf will ignore the required entities in its processing,
474 * - "clear" : MeshGems-CADSurf will clear any required status for the entities.
475 * There will not be any entity marked as required in the generated mesh.
477 void SetRequiredEntities( in string howToTreat ) raises (SALOME::SALOME_Exception);
478 string GetRequiredEntities();
481 * Set sewing_tolerance parameter
483 * This parameter is the tolerance of the assembly.
485 void SetSewingTolerance( in double tol ) raises (SALOME::SALOME_Exception);
486 double GetSewingTolerance() raises (SALOME::SALOME_Exception);
491 * The tag (attribute) system controls the optimisation process.
492 * Accepted values for this parameter are :
493 * - "respect" : the CAD tags will be preserved and unaltered by the optimisation operations,
494 * - "ignore" : the CAD tags will be ignored by the optimisation operations
495 * but they will still be present in the output mesh,
496 * - "clear" : MeshGems-CADSurf will clear any tag on any entity and optimise accordingly.
497 * There will not be any tag in the generated mesh.
499 void SetTags( in string howToTreat ) raises (SALOME::SALOME_Exception);
505 void SetHyperPatches(in THyperPatchList hpl);
506 THyperPatchList GetHyperPatches( in GEOM::GEOM_Object mainShape );
507 void SetHyperPatchShapes(in THyperPatchShapesList hpsl);
508 THyperPatchEntriesList GetHyperPatchShapes();
509 void SetHyperPatchEntries(in THyperPatchEntriesList hpel);
514 void SetPreCADMergeEdges(in boolean toMergeEdges);
515 boolean GetPreCADMergeEdges();
518 * To remove duplicate CAD faces.
520 void SetPreCADRemoveDuplicateCADFaces(in boolean toRemoveDuplicateCADFaces);
521 boolean GetPreCADRemoveDuplicateCADFaces();
524 * To process 3D topology.
526 void SetPreCADProcess3DTopology(in boolean toProcess);
527 boolean GetPreCADProcess3DTopology();
531 * To compute topology from scratch
533 void SetPreCADDiscardInput(in boolean toDiscardInput);
534 boolean GetPreCADDiscardInput();
537 *Set advanced option value
539 void SetOptionValue(in string optionName,
540 in string optionValue) raises (SALOME::SALOME_Exception);
541 void SetPreCADOptionValue(in string optionName,
542 in string optionValue) raises (SALOME::SALOME_Exception);
543 string GetOptionValue(in string optionName) raises (SALOME::SALOME_Exception);
544 string GetPreCADOptionValue(in string optionName) raises (SALOME::SALOME_Exception);
546 * Unsets advanced option
548 void UnsetOption(in string optionName);
549 void UnsetPreCADOption(in string optionName);
552 * Adds custom advanced option and its value
554 void SetAdvancedOption(in string optionsAndValues) // in a form "option_1 v1 option_2 v2'"
555 raises (SALOME::SALOME_Exception);
556 void AddOption(in string optionName, in string optionValue);
557 void AddPreCADOption(in string optionName, in string optionValue);
558 string GetOption(in string optionName);
559 string GetPreCADOption(in string optionName);
562 * Return array of strings each of which is option name concatenated
563 * with option value devided by semicolon - "option_name:option_value:option_type".
564 * Option value is empty if an option is not set.
565 * option_type: 1 if user-define, 0 if default
566 * Note: the method is mostly for interaction with GUI.
568 string_array GetOptionValues();
569 string_array GetPreCADOptionValues();
570 string_array GetAdvancedOptionValues();
573 * Set option values each in the form "option_name[:option_value][:option_type]".
574 * Note: the method is mostly for interaction with GUI.
576 void SetOptionValues(in string_array options) raises (SALOME::SALOME_Exception);
577 void SetPreCADOptionValues(in string_array options) raises (SALOME::SALOME_Exception);
578 void SetAdvancedOptionValues(in string_array options);
583 void SetSizeMapEntries(in string_array sizeMaps) raises (SALOME::SALOME_Exception);
584 void ClearSizeMaps();
586 void UnsetEntry(in string entry);
589 * Set/unset a SizeMap on geom object
591 void SetSizeMap(in GEOM::GEOM_Object GeomObj, in string sizeMap) raises (SALOME::SALOME_Exception);
592 void SetConstantSizeMap(in GEOM::GEOM_Object GeomObj, in double sizeMap);
593 void UnsetSizeMap(in GEOM::GEOM_Object GeomObj);
596 * Set a SizeMap on geom object given by entry
598 void SetSizeMapEntry(in string entry, in string sizeMap) raises (SALOME::SALOME_Exception);
599 void SetConstantSizeMapEntry(in string entry, in GEOM::shape_type shapeType, in double sizeMap) raises (SALOME::SALOME_Exception);
600 string GetSizeMapEntry(in string entry) raises (SALOME::SALOME_Exception);
601 string_array GetSizeMapEntries();
604 * Set/unset an attractor on geom object
606 void SetAttractor(in GEOM::GEOM_Object GeomObj, in string attractor);
607 void UnsetAttractor(in GEOM::GEOM_Object GeomObj);
610 * Set an attractor on geom object given by entry
612 void SetAttractorEntry(in string entry, in string attractor) raises (SALOME::SALOME_Exception);
613 string GetAttractorEntry(in string entry) raises (SALOME::SALOME_Exception);
614 string_array GetAttractorEntries();
617 * Set/unset an attractor given as geom object on another geom object
619 void SetAttractorGeom(in GEOM::GEOM_Object GeomObj, in GEOM::GEOM_Object AttractorShape, in double StartSize, in double EndSize, in double ActionRadius, in double ConstantRadius);
620 void UnsetAttractorGeom(in GEOM::GEOM_Object GeomObj, in GEOM::GEOM_Object AttractorShape);
621 void UnsetAttractorEntry(in string entry, in string attractor);
624 * Set an attractor given by entry on a geom object given by entry
626 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);
627 BLSURFPlugin::TAttParamsMap GetAttractorParams();
630 void SetCustomSizeMapEntry(in string entry, in string sizeMap);
631 string GetCustomSizeMapEntry(in string entry);
632 void SetCustomSizeMap(in GEOM::GEOM_Object GeomObj, in string sizeMap);
633 void UnsetCustomSizeMap(in GEOM::GEOM_Object GeomObj);
634 string_array GetCustomSizeMapEntries();
636 ///////////////////////
637 // ENFORCED VERTEXES //
638 ///////////////////////
640 TFaceEntryEnfVertexListMap GetAllEnforcedVerticesByFace();
641 TEnfVertexList GetAllEnforcedVertices();
643 TFaceEntryCoordsListMap GetAllCoordsByFace();
644 TCoordsEnfVertexMap GetAllEnforcedVerticesByCoords();
646 TFaceEntryEnfVertexEntryListMap GetAllEnfVertexEntriesByFace();
647 TEnfVertexEntryEnfVertexMap GetAllEnforcedVerticesByEnfVertexEntry();
649 void ClearAllEnforcedVertices();
652 * Set/get/unset an enforced vertex on geom face
655 boolean SetEnforcedVertex(in GEOM::GEOM_Object theFace, in double x, in double y, in double z) raises (SALOME::SALOME_Exception);
656 boolean SetEnforcedVertexNamed(in GEOM::GEOM_Object theFace, in double x, in double y, in double z, in TEnfName theVertexName) raises (SALOME::SALOME_Exception);
657 boolean SetEnforcedVertexGeom(in GEOM::GEOM_Object theFace, in GEOM::GEOM_Object theVertex) raises (SALOME::SALOME_Exception);
658 boolean SetEnforcedVertexWithGroup(in GEOM::GEOM_Object theFace, in double x, in double y, in double z, in TEnfGroupName groupName) raises (SALOME::SALOME_Exception);
659 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);
660 boolean SetEnforcedVertexGeomWithGroup(in GEOM::GEOM_Object theFace, in GEOM::GEOM_Object theVertex, in TEnfGroupName groupName) raises (SALOME::SALOME_Exception);
662 TEnfVertexList GetEnforcedVertices(in GEOM::GEOM_Object theFace) raises (SALOME::SALOME_Exception);
663 boolean UnsetEnforcedVertex(in GEOM::GEOM_Object theFace, in double x, in double y, in double z) raises (SALOME::SALOME_Exception);
664 boolean UnsetEnforcedVertexGeom(in GEOM::GEOM_Object theFace, in GEOM::GEOM_Object theVertex) raises (SALOME::SALOME_Exception);
665 boolean UnsetEnforcedVertices(in GEOM::GEOM_Object theFace) raises (SALOME::SALOME_Exception);
668 boolean AddEnforcedVertex(in double x, in double y, in double z) raises (SALOME::SALOME_Exception);
669 boolean AddEnforcedVertexNamed(in double x, in double y, in double z, in TEnfName theVertexName) raises (SALOME::SALOME_Exception);
670 boolean AddEnforcedVertexGeom(in GEOM::GEOM_Object theVertex) raises (SALOME::SALOME_Exception);
671 boolean AddEnforcedVertexWithGroup(in double x, in double y, in double z, in TEnfGroupName groupName) raises (SALOME::SALOME_Exception);
672 boolean AddEnforcedVertexNamedWithGroup(in double x, in double y, in double z, in TEnfName theVertexName, in TEnfGroupName groupName) raises (SALOME::SALOME_Exception);
673 boolean AddEnforcedVertexGeomWithGroup(in GEOM::GEOM_Object theVertex, in TEnfGroupName groupName) raises (SALOME::SALOME_Exception);
675 boolean RemoveEnforcedVertex(in double x, in double y, in double z) raises (SALOME::SALOME_Exception);
676 boolean RemoveEnforcedVertexGeom(in GEOM::GEOM_Object theVertex) raises (SALOME::SALOME_Exception);
677 boolean RemoveEnforcedVertices() raises (SALOME::SALOME_Exception);
680 * Set/get/unset an enforced vertex on geom face given by entry
682 boolean SetEnforcedVertexEntry(in TEntry theFaceEntry, in double x, in double y, in double z,
683 in TEnfName theVertexName, in TEntry theVertexEntry, in TEnfGroupName groupName) raises (SALOME::SALOME_Exception);
685 TEnfVertexList GetEnforcedVerticesEntry(in TEntry theFaceEntry) raises (SALOME::SALOME_Exception);
686 boolean UnsetEnforcedVertexEntry(in TEntry theFaceEntry, in double x, in double y, in double z, in TEntry theVertexEntry) raises (SALOME::SALOME_Exception);
687 // boolean UnsetEnforcedVertexEntryGeom(in TEntry theFaceEntry, in TEntry theVertexEntry) raises (SALOME::SALOME_Exception);
688 boolean UnsetEnforcedVerticesEntry(in TEntry theFaceEntry) raises (SALOME::SALOME_Exception);
691 * To get/set internal vertices as enforced vertices
693 void SetInternalEnforcedVertexAllFaces(in boolean toEnforceInternalVertices);
694 boolean GetInternalEnforcedVertexAllFaces();
695 void SetInternalEnforcedVertexAllFacesGroup(in TEnfGroupName groupName);
696 TEnfGroupName GetInternalEnforcedVertexAllFacesGroup();
698 // Enable internal enforced vertices on specific face if requested by user
699 // void SetInternalEnforcedVertex(in GEOM::GEOM_Object theFace,in boolean toEnforceInternalVertices) raises (SALOME::SALOME_Exception);
700 // void SetInternalEnforcedVertexWithGroup(in GEOM::GEOM_Object theFace, in boolean toEnforceInternalVertices, in TEnfGroupName groupName) raises (SALOME::SALOME_Exception);
701 // void SetInternalEnforcedVertexEntry(in TEntry theFaceEntry, in boolean toEnforceInternalVertices, in TEnfGroupName groupName) raises (SALOME::SALOME_Exception);
702 // boolean GetInternalEnforcedVertex(in GEOM::GEOM_Object theFace) raises (SALOME::SALOME_Exception);
703 // boolean GetInternalEnforcedVertexEntry(in TEntry theFaceEntry) raises (SALOME::SALOME_Exception);
704 // TFaceEntryInternalVerticesList GetAllInternalEnforcedVerticesFaces();
705 ///////////////////////
708 ///////////////////////
710 ///////////////////////
712 void ClearPreCadPeriodicityVectors();
713 void AddPreCadFacesPeriodicity(in GEOM::GEOM_Object theFace1, in GEOM::GEOM_Object theFace2) raises (SALOME::SALOME_Exception);
714 void AddPreCadFacesPeriodicityWithVertices(in GEOM::GEOM_Object theFace1, in GEOM::GEOM_Object theFace2, in GEOM::ListOfGO theSourceVertices, in GEOM::ListOfGO theTargetVertices) raises (SALOME::SALOME_Exception);
715 void AddPreCadFacesPeriodicityEntry(in TEntry theFace1, in TEntry theFace2, in TEntryList theSourceVertices, in TEntryList theTargetVertices) raises (SALOME::SALOME_Exception);
716 void AddPreCadEdgesPeriodicity(in GEOM::GEOM_Object theEdge1, in GEOM::GEOM_Object theEdge2) raises (SALOME::SALOME_Exception);
717 void AddPreCadEdgesPeriodicityWithVertices(in GEOM::GEOM_Object theEdge1, in GEOM::GEOM_Object theEdge2, in GEOM::ListOfGO theSourceVertices, in GEOM::ListOfGO theTargetVertices) raises (SALOME::SALOME_Exception);
718 void AddPreCadEdgesPeriodicityEntry(in TEntry theEdge1, in TEntry theEdge2, in TEntryList theSourceVertices, in TEntryList theTargetVertices) raises (SALOME::SALOME_Exception);
719 TPeriodicityList GetPreCadFacesPeriodicityVector();
720 TPeriodicityList GetPreCadEdgesPeriodicityVector();
721 ///////////////////////
724 *Set the file for export resulting mesh in GMF format
726 void SetGMFFile(in string theFileName);