Version: 8.3.0
BLSURFPlugin_Algorithm.idl
Go to the documentation of this file.
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 
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
66  TEntry faceEntry;
67  TEnfVertexList enfVertexList;
68  };
69  typedef sequence<TFaceEntryEnfVertexListMapElement> TFaceEntryEnfVertexListMap;
70 
71  // Map Face Entry / List of coords
73  TEntry faceEntry;
74  TEnfVertexCoordsList coordsList;
75  };
76  typedef sequence<TFaceEntryCoordsListMapElement> TFaceEntryCoordsListMap;
77 
78  // Map Face Entry / List of enf vertex entries
80  TEntry faceEntry;
81  TEntryList enfVertexEntryList;
82  };
83  typedef sequence<TFaceEntryEnfVertexEntryListMapElement> TFaceEntryEnfVertexEntryListMap;
84 
85  // Map Coords / Enforced vertex
87  TEnfVertexCoords coords;
89  };
90  typedef sequence<TCoordsEnfVertexElement> TCoordsEnfVertexMap;
91 
92  // Map Enf Vertex Entry / Enforced vertex
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
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
115  TEntry shape1Entry;
116  TEntry shape2Entry;
119  };
120 
121  typedef sequence<TPreCadPeriodicity> TPeriodicityList;
122 
123  // Hyper-patches
124  typedef sequence<long> THyperPatch;
125  typedef sequence<THyperPatch> THyperPatchList;
126 
130  interface BLSURFPlugin_BLSURF : SMESH::SMESH_2D_Algo
131  {
132  };
133 
137  interface BLSURFPlugin_Hypothesis : SMESH::SMESH_Hypothesis
138  {
139 
146  void SetPhysicalMesh(in long isCustom);
147  long GetPhysicalMesh();
148 
155  void SetGeometricMesh(in long isCustom);
156  long GetGeometricMesh();
157 
161  void SetPhySize(in double size);
162  void SetPhySizeRel(in double size);
163  double GetPhySize();
164  boolean IsPhySizeRel();
165 
169  void SetMinSize(in double theMinSize);
170  void SetMinSizeRel(in double theMinSize);
171  double GetMinSize();
172  boolean IsMinSizeRel();
173 
177  void SetMaxSize(in double theMaxSize);
178  void SetMaxSizeRel(in double theMaxSize);
179  double GetMaxSize();
180  boolean IsMaxSizeRel();
181 
185  void SetUseGradation(in boolean toUse);
186  boolean GetUseGradation();
187  void SetGradation(in double ratio);
188  double GetGradation();
189 
193  void SetUseVolumeGradation(in boolean toUse);
194  boolean GetUseVolumeGradation();
195  void SetVolumeGradation(in double ratio);
196  double GetVolumeGradation();
197 
201  void SetQuadAllowed(in boolean allowed);
202  boolean GetQuadAllowed();
203 
207  void SetAngleMesh(in double angle);
208  double GetAngleMesh();
209 
213  void SetChordalError(in double distance);
214  double GetChordalError();
215 
219  void SetAnisotropic(in boolean anisotropic);
220  boolean GetAnisotropic();
221 
227  void SetAnisotropicRatio(in double ratio);
228  double GetAnisotropicRatio();
229 
235  void SetRemoveTinyEdges(in boolean remove);
236  boolean GetRemoveTinyEdges();
237 
241  void SetTinyEdgeLength(in double length);
242  double GetTinyEdgeLength();
243 
250  void SetOptimiseTinyEdges(in boolean toOptimise);
251  boolean GetOptimiseTinyEdges();
252 
257  void SetTinyEdgeOptimisationLength(in double length);
259 
263  void SetCorrectSurfaceIntersection(in boolean toCorrect);
265 
272  void SetCorrectSurfaceIntersectionMaxCost(in double maxCost);
274 
280  void SetBadElementRemoval(in boolean remove);
281  boolean GetBadElementRemoval();
282 
287  void SetBadElementAspectRatio(in double ratio);
288  double GetBadElementAspectRatio();
289 
295  void SetOptimizeMesh(in boolean optimize);
296  boolean GetOptimizeMesh();
297 
301  void SetQuadraticMesh(in boolean quadratic);
302  boolean GetQuadraticMesh();
303 
310  void SetTopology(in long way);
311  long GetTopology();
312 
316  void SetVerbosity(in short theVal) raises (SALOME::SALOME_Exception);
317  short GetVerbosity();
318 
326  void SetEnforceCadEdgesSize( in boolean toEnforce );
327  boolean GetEnforceCadEdgesSize();
328 
335  void SetJacobianRectificationRespectGeometry( in boolean allowRectification );
337 
343  void SetJacobianRectification( in boolean allowRectification );
344  boolean GetJacobianRectification();
345 
352  void SetUseDeprecatedPatchMesher( in boolean useDeprecatedPatchMesher );
353  boolean GetUseDeprecatedPatchMesher();
354 
362  void SetMaxNumberOfPointsPerPatch( in long nb ) raises (SALOME::SALOME_Exception);
364 
365 
371  void SetMaxNumberOfThreads( in long nb ) raises (SALOME::SALOME_Exception);
372  long GetMaxNumberOfThreads();
373 
380  void SetRespectGeometry( in boolean toRespect );
381  boolean GetRespectGeometry();
382 
389  void SetTinyEdgesAvoidSurfaceIntersections( in boolean toAvoidIntersection );
391 
398  void SetClosedGeometry( in boolean isClosed );
399  boolean GetClosedGeometry();
400 
407  void SetDebug( in boolean isDebug );
408  boolean GetDebug();
409 
416  void SetPeriodicTolerance( in double tol ) raises (SALOME::SALOME_Exception);
417  double GetPeriodicTolerance() raises (SALOME::SALOME_Exception);
418 
430  void SetRequiredEntities( in string howToTreat ) raises (SALOME::SALOME_Exception);
431  string GetRequiredEntities();
432 
438  void SetSewingTolerance( in double tol ) raises (SALOME::SALOME_Exception);
439  double GetSewingTolerance() raises (SALOME::SALOME_Exception);
440 
452  void SetTags( in string howToTreat ) raises (SALOME::SALOME_Exception);
453  string GetTags();
454 
458  void SetHyperPatches(in THyperPatchList hpl);
459  THyperPatchList GetHyperPatches();
460 
464  void SetPreCADMergeEdges(in boolean toMergeEdges);
465  boolean GetPreCADMergeEdges();
466 
470  void SetPreCADRemoveDuplicateCADFaces(in boolean toRemoveDuplicateCADFaces);
472 
476  void SetPreCADProcess3DTopology(in boolean toProcess);
477  boolean GetPreCADProcess3DTopology();
478 
479 
483  void SetPreCADDiscardInput(in boolean toDiscardInput);
484  boolean GetPreCADDiscardInput();
485 
489  void SetOptionValue(in string optionName,
490  in string optionValue) raises (SALOME::SALOME_Exception);
491  void SetPreCADOptionValue(in string optionName,
492  in string optionValue) raises (SALOME::SALOME_Exception);
493  string GetOptionValue(in string optionName) raises (SALOME::SALOME_Exception);
494  string GetPreCADOptionValue(in string optionName) raises (SALOME::SALOME_Exception);
498  void UnsetOption(in string optionName);
499  void UnsetPreCADOption(in string optionName);
500 
504  void SetAdvancedOption(in string optionsAndValues) // in a form "option_1 v1 option_2 v2'"
505  raises (SALOME::SALOME_Exception);
506  void AddOption(in string optionName, in string optionValue);
507  void AddPreCADOption(in string optionName, in string optionValue);
508  string GetOption(in string optionName);
509  string GetPreCADOption(in string optionName);
510 
518  string_array GetOptionValues();
519  string_array GetPreCADOptionValues();
520  string_array GetAdvancedOptionValues();
521 
526  void SetOptionValues(in string_array options) raises (SALOME::SALOME_Exception);
527  void SetPreCADOptionValues(in string_array options) raises (SALOME::SALOME_Exception);
528  void SetAdvancedOptionValues(in string_array options);
529 
533  void SetSizeMapEntries(in string_array sizeMaps) raises (SALOME::SALOME_Exception);
534  void ClearSizeMaps();
535 
536  void UnsetEntry(in string entry);
537 
541  void SetSizeMap(in GEOM::GEOM_Object GeomObj, in string sizeMap) raises (SALOME::SALOME_Exception);
542  void SetConstantSizeMap(in GEOM::GEOM_Object GeomObj, in double sizeMap);
543  void UnsetSizeMap(in GEOM::GEOM_Object GeomObj);
544 
548  void SetSizeMapEntry(in string entry, in string sizeMap) raises (SALOME::SALOME_Exception);
549  void SetConstantSizeMapEntry(in string entry, in GEOM::shape_type shapeType, in double sizeMap) raises (SALOME::SALOME_Exception);
550  string GetSizeMapEntry(in string entry) raises (SALOME::SALOME_Exception);
551  string_array GetSizeMapEntries();
552 
556  void SetAttractor(in GEOM::GEOM_Object GeomObj, in string attractor);
557  void UnsetAttractor(in GEOM::GEOM_Object GeomObj);
558 
562  void SetAttractorEntry(in string entry, in string attractor) raises (SALOME::SALOME_Exception);
563  string GetAttractorEntry(in string entry) raises (SALOME::SALOME_Exception);
564  string_array GetAttractorEntries();
565 
569  void SetAttractorGeom(in GEOM::GEOM_Object GeomObj, in GEOM::GEOM_Object AttractorShape, in double StartSize, in double EndSize, in double ActionRadius, in double ConstantRadius);
570  void UnsetAttractorGeom(in GEOM::GEOM_Object GeomObj, in GEOM::GEOM_Object AttractorShape);
571  void UnsetAttractorEntry(in string entry, in string attractor);
572 
576  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);
577  BLSURFPlugin::TAttParamsMap GetAttractorParams();
578 
579 /*
580  void SetCustomSizeMapEntry(in string entry, in string sizeMap);
581  string GetCustomSizeMapEntry(in string entry);
582  void SetCustomSizeMap(in GEOM::GEOM_Object GeomObj, in string sizeMap);
583  void UnsetCustomSizeMap(in GEOM::GEOM_Object GeomObj);
584  string_array GetCustomSizeMapEntries();
585 */
587  // ENFORCED VERTEXES //
589 
590  TFaceEntryEnfVertexListMap GetAllEnforcedVerticesByFace();
591  TEnfVertexList GetAllEnforcedVertices();
592 
593  TFaceEntryCoordsListMap GetAllCoordsByFace();
594  TCoordsEnfVertexMap GetAllEnforcedVerticesByCoords();
595 
596  TFaceEntryEnfVertexEntryListMap GetAllEnfVertexEntriesByFace();
597  TEnfVertexEntryEnfVertexMap GetAllEnforcedVerticesByEnfVertexEntry();
598 
600 
604  // OBSOLETE
605  boolean SetEnforcedVertex(in GEOM::GEOM_Object theFace, in double x, in double y, in double z) raises (SALOME::SALOME_Exception);
606  boolean SetEnforcedVertexNamed(in GEOM::GEOM_Object theFace, in double x, in double y, in double z, in TEnfName theVertexName) raises (SALOME::SALOME_Exception);
607  boolean SetEnforcedVertexGeom(in GEOM::GEOM_Object theFace, in GEOM::GEOM_Object theVertex) raises (SALOME::SALOME_Exception);
608  boolean SetEnforcedVertexWithGroup(in GEOM::GEOM_Object theFace, in double x, in double y, in double z, in TEnfGroupName groupName) raises (SALOME::SALOME_Exception);
609  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);
610  boolean SetEnforcedVertexGeomWithGroup(in GEOM::GEOM_Object theFace, in GEOM::GEOM_Object theVertex, in TEnfGroupName groupName) raises (SALOME::SALOME_Exception);
611 
612  TEnfVertexList GetEnforcedVertices(in GEOM::GEOM_Object theFace) raises (SALOME::SALOME_Exception);
613  boolean UnsetEnforcedVertex(in GEOM::GEOM_Object theFace, in double x, in double y, in double z) raises (SALOME::SALOME_Exception);
614  boolean UnsetEnforcedVertexGeom(in GEOM::GEOM_Object theFace, in GEOM::GEOM_Object theVertex) raises (SALOME::SALOME_Exception);
615  boolean UnsetEnforcedVertices(in GEOM::GEOM_Object theFace) raises (SALOME::SALOME_Exception);
616 
617  // NEW - no face
618  boolean AddEnforcedVertex(in double x, in double y, in double z) raises (SALOME::SALOME_Exception);
619  boolean AddEnforcedVertexNamed(in double x, in double y, in double z, in TEnfName theVertexName) raises (SALOME::SALOME_Exception);
620  boolean AddEnforcedVertexGeom(in GEOM::GEOM_Object theVertex) raises (SALOME::SALOME_Exception);
621  boolean AddEnforcedVertexWithGroup(in double x, in double y, in double z, in TEnfGroupName groupName) raises (SALOME::SALOME_Exception);
622  boolean AddEnforcedVertexNamedWithGroup(in double x, in double y, in double z, in TEnfName theVertexName, in TEnfGroupName groupName) raises (SALOME::SALOME_Exception);
623  boolean AddEnforcedVertexGeomWithGroup(in GEOM::GEOM_Object theVertex, in TEnfGroupName groupName) raises (SALOME::SALOME_Exception);
624 
625  boolean RemoveEnforcedVertex(in double x, in double y, in double z) raises (SALOME::SALOME_Exception);
626  boolean RemoveEnforcedVertexGeom(in GEOM::GEOM_Object theVertex) raises (SALOME::SALOME_Exception);
627  boolean RemoveEnforcedVertices() raises (SALOME::SALOME_Exception);
628 
632  boolean SetEnforcedVertexEntry(in TEntry theFaceEntry, in double x, in double y, in double z,
633  in TEnfName theVertexName, in TEntry theVertexEntry, in TEnfGroupName groupName) raises (SALOME::SALOME_Exception);
634 
635  TEnfVertexList GetEnforcedVerticesEntry(in TEntry theFaceEntry) raises (SALOME::SALOME_Exception);
636  boolean UnsetEnforcedVertexEntry(in TEntry theFaceEntry, in double x, in double y, in double z, in TEntry theVertexEntry) raises (SALOME::SALOME_Exception);
637 // boolean UnsetEnforcedVertexEntryGeom(in TEntry theFaceEntry, in TEntry theVertexEntry) raises (SALOME::SALOME_Exception);
638  boolean UnsetEnforcedVerticesEntry(in TEntry theFaceEntry) raises (SALOME::SALOME_Exception);
639 
643  void SetInternalEnforcedVertexAllFaces(in boolean toEnforceInternalVertices);
645  void SetInternalEnforcedVertexAllFacesGroup(in TEnfGroupName groupName);
647 
648 // Enable internal enforced vertices on specific face if requested by user
649 // void SetInternalEnforcedVertex(in GEOM::GEOM_Object theFace,in boolean toEnforceInternalVertices) raises (SALOME::SALOME_Exception);
650 // void SetInternalEnforcedVertexWithGroup(in GEOM::GEOM_Object theFace, in boolean toEnforceInternalVertices, in TEnfGroupName groupName) raises (SALOME::SALOME_Exception);
651 // void SetInternalEnforcedVertexEntry(in TEntry theFaceEntry, in boolean toEnforceInternalVertices, in TEnfGroupName groupName) raises (SALOME::SALOME_Exception);
652 // boolean GetInternalEnforcedVertex(in GEOM::GEOM_Object theFace) raises (SALOME::SALOME_Exception);
653 // boolean GetInternalEnforcedVertexEntry(in TEntry theFaceEntry) raises (SALOME::SALOME_Exception);
654 // TFaceEntryInternalVerticesList GetAllInternalEnforcedVerticesFaces();
656 
657 
659  // PERIODICITY //
661 
663  void AddPreCadFacesPeriodicity(in GEOM::GEOM_Object theFace1, in GEOM::GEOM_Object theFace2) raises (SALOME::SALOME_Exception);
664  void AddPreCadFacesPeriodicityWithVertices(in GEOM::GEOM_Object theFace1, in GEOM::GEOM_Object theFace2, in GEOM::ListOfGO theSourceVertices, in GEOM::ListOfGO theTargetVertices) raises (SALOME::SALOME_Exception);
665  void AddPreCadFacesPeriodicityEntry(in TEntry theFace1, in TEntry theFace2, in TEntryList theSourceVertices, in TEntryList theTargetVertices) raises (SALOME::SALOME_Exception);
666  void AddPreCadEdgesPeriodicity(in GEOM::GEOM_Object theEdge1, in GEOM::GEOM_Object theEdge2) raises (SALOME::SALOME_Exception);
667  void AddPreCadEdgesPeriodicityWithVertices(in GEOM::GEOM_Object theEdge1, in GEOM::GEOM_Object theEdge2, in GEOM::ListOfGO theSourceVertices, in GEOM::ListOfGO theTargetVertices) raises (SALOME::SALOME_Exception);
668  void AddPreCadEdgesPeriodicityEntry(in TEntry theEdge1, in TEntry theEdge2, in TEntryList theSourceVertices, in TEntryList theTargetVertices) raises (SALOME::SALOME_Exception);
669  TPeriodicityList GetPreCadFacesPeriodicityVector();
670  TPeriodicityList GetPreCadEdgesPeriodicityVector();
672 
676 // void SetGMFFile(in string theFileName, in boolean isBinary);
677  void SetGMFFile(in string theFileName);
678  string GetGMFFile();
679 // boolean GetGMFFileMode();
680 
681  //
682  // Obsolete methods - To be removed in V7
683  //
684  void SetPhyMin(in double theMinSize);
685  double GetPhyMin();
686  void SetPhyMax(in double theMaxSize);
687  double GetPhyMax();
688  void SetGeoMin(in double theMinSize);
689  double GetGeoMin();
690  void SetGeoMax(in double theMaxSize);
691  double GetGeoMax();
692  void SetAngleMeshS(in double angle);
693  double GetAngleMeshS();
694  void SetAngleMeshC(in double angle);
695  double GetAngleMeshC();
696  void SetDecimesh(in boolean toIgnoreEdges);
697  boolean GetDecimesh();
698  void SetPreCADRemoveNanoEdges(in boolean toRemoveNanoEdges);
699  boolean GetPreCADRemoveNanoEdges();
700  void SetPreCADEpsNano(in double epsNano);
701  double GetPreCADEpsNano();
702  };
703 };
704 
705 #endif