Salome HOME
PAL7768
[modules/geom.git] / src / GEOMImpl / GEOMImpl_IHealingOperations.hxx
1
2 #ifndef _GEOMImpl_IHealingOperations_HXX_
3 #define _GEOMImpl_IHealingOperations_HXX_
4
5 #include "GEOM_IOperations.hxx"
6 #include "GEOM_Engine.hxx"
7 #include "GEOM_Object.hxx"
8
9 #include <TColStd_HArray1OfExtendedString.hxx>
10 #include <TColStd_HArray1OfInteger.hxx>
11
12 #include <list>
13
14 class GEOMImpl_IHealingOperations : public GEOM_IOperations {
15  public:
16   GEOMImpl_IHealingOperations(GEOM_Engine* theEngine, int theDocID);
17   ~GEOMImpl_IHealingOperations();
18
19   // Apply Shape Processing to the selected Object
20   Handle(GEOM_Object) ShapeProcess( Handle(GEOM_Object) theObject,
21                                     const Handle(TColStd_HArray1OfExtendedString)& theOperations,
22                                     const Handle(TColStd_HArray1OfExtendedString)& theParams,
23                                     const Handle(TColStd_HArray1OfExtendedString)& theValues );
24
25   // Retrieve default Shape Process parameters (from resource file)
26   void GetShapeProcessParameters( list<string>& theOperations,
27                                   list<string>& theParams,
28                                   list<string>& theValues );
29
30   // Retrieve default Shape Process parameters for given operator
31   bool GetOperatorParameters( const string theOperation, 
32                               list<string>& theParams,
33                               list<string>& theValues );
34
35   // returns all parameters that are valid for the given operation (Shape Process operator)
36   static bool GetParameters( const string theOperation, list<string>& theParams );                                      
37
38   Handle(GEOM_Object) SuppressFaces( Handle(GEOM_Object) theObject,
39                                      const Handle(TColStd_HArray1OfInteger)& theFaces);
40
41   Handle(GEOM_Object) CloseContour( Handle(GEOM_Object) theObject,
42                                     const Handle(TColStd_HArray1OfInteger)& theWires,
43                                     bool isCommonVertex );
44
45   Handle(GEOM_Object) RemoveIntWires( Handle(GEOM_Object) theObject,
46                                       const Handle(TColStd_HArray1OfInteger)& theWires);
47
48   Handle(GEOM_Object) FillHoles( Handle(GEOM_Object) theObject,
49                                  const Handle(TColStd_HArray1OfInteger)& theWires);
50                                       
51   Handle(GEOM_Object) Sew( Handle(GEOM_Object) theObject,
52                            double theTolerance );
53
54   Handle(GEOM_Object) DivideEdge( Handle(GEOM_Object) theObject,
55                                   int theIndex,  
56                                   double theValue,
57                                   bool isByParameter );
58
59   // this function does not use Function-Driver mechanism, it just computes the free
60   // boundary edges and returns them in the sequence.  It is called just for information reasons
61   // and it's not intended for history/undo/redo/etc..
62   bool GetFreeBoundary ( Handle(GEOM_Object) theObject, 
63                          Handle(TColStd_HSequenceOfTransient)& theOutClosedWires, 
64                          Handle(TColStd_HSequenceOfTransient)& theOutOpenWires );
65 };
66
67 #endif