Salome HOME
Merge with version on tag OCC-V2_1_0d
[modules/geom.git] / src / ShHealOper / ShHealOper_RemoveInternalWires.hxx
1 // File:      ShHealOper_RemoveInternalWires.hxx
2 // Created:   26.04.04 11:22:26
3 // Author:    Galina KULIKOVA
4 //  < MODULE = KERNEL> <PACKAGE = ShHealOper> : <Shape Healing Operations>
5 //  Copyright (C) 2003  CEA
6 //
7 //  This library is free software; you can redistribute it and/or
8 //  modify it under the terms of the GNU Lesser General Public
9 //  License as published by the Free Software Foundation; either
10 //  version 2.1 of the License.
11 //
12
13 //  This library is distributed in the hope that it will be useful,
14 //  but WITHOUT ANY WARRANTY; without even the implied warranty of
15 //  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
16 //  Lesser General Public License for more details.
17 //
18 //  You should have received a copy of the GNU Lesser General Public
19 //  License along with this library; if not, write to the Free Software
20 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
21 //
22
23
24 #ifndef ShHealOper_RemoveInternalWires_HeaderFile
25 #define ShHealOper_RemoveInternalWires_HeaderFile
26
27 #include <MMgt_TShared.hxx>
28 #include <ShHealOper_Tool.hxx>
29 #include <TopoDS_Shape.hxx>
30 #include <TopTools_SequenceOfShape.hxx>
31 #include <TopoDS_Face.hxx>
32 #include <TopoDS_Wire.hxx>
33 #include <TopTools_IndexedDataMapOfShapeListOfShape.hxx>
34
35 ///  Class ShHealOper_RemoveInternalWires
36 // Intended for removing internal wires from faces.
37
38 class ShHealOper_RemoveInternalWires : public ShHealOper_Tool
39 {
40  public:
41   // ---------- PUBLIC METHODS ----------
42
43   /// Empty constructor
44   Standard_EXPORT ShHealOper_RemoveInternalWires () {}
45
46   /// Copy constructor
47   Standard_EXPORT ShHealOper_RemoveInternalWires (const TopoDS_Shape& theShape);
48   //Method for initalization by whole shape.
49   
50   Standard_EXPORT virtual void Init(const TopoDS_Shape& theShape);
51   //Method for initalization by whole shape.
52   
53   Standard_EXPORT Standard_Boolean Remove();
54   //Removes all internal wires from all faces of the shape
55   
56   Standard_EXPORT Standard_Boolean Remove(const TopTools_SequenceOfShape& theRemovedShapes);
57   //Removes wires specified in the sequence of shapes or internal wires 
58   //belonging faces  specified in the sequence of shape.
59   
60
61  private:
62   // ---------- PRIVATE METHODS ----------
63   
64   Standard_Boolean removeWire(const TopoDS_Face& theFace, 
65                               const TopoDS_Wire& theWire);
66   void fixShape(const TopoDS_Shape& theShape );
67
68  private:
69   // ---------- PRIVATE FIELDS ----------
70   TopTools_IndexedDataMapOfShapeListOfShape myMapWiresFace;
71
72
73
74  public:
75 // Declaration of CASCADE RTTI
76 //DEFINE_STANDARD_RTTI (ShHealOper_RemoveInternalWires)
77 };
78
79 // Definition of HANDLE object using Standard_DefineHandle.hxx
80 //DEFINE_STANDARD_HANDLE (ShHealOper_RemoveInternalWires, )
81
82
83 #endif