PageRenderTime 20ms CodeModel.GetById 13ms app.highlight 5ms RepoModel.GetById 1ms app.codeStats 0ms

/src/contrib/geom-5.1.2.7/inc/ShHealOper_RemoveFace.hxx

http://pythonocc.googlecode.com/
C++ Header | 95 lines | 32 code | 21 blank | 42 comment | 0 complexity | 90a9ac0adaa270a07a729108c6a1c43d MD5 | raw file
 1// Copyright (C) 2005  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
 2// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
 3// 
 4// This library is free software; you can redistribute it and/or
 5// modify it under the terms of the GNU Lesser General Public
 6// License as published by the Free Software Foundation; either 
 7// version 2.1 of the License.
 8// 
 9// This library is distributed in the hope that it will be useful 
10// but WITHOUT ANY WARRANTY; without even the implied warranty of 
11// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
12// Lesser General Public License for more details.
13//
14// You should have received a copy of the GNU Lesser General Public  
15// License along with this library; if not, write to the Free Software 
16// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
17//
18// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
19//
20//
21// File:      ShHealOper_RemoveFace.hxx
22// Created:   15.04.04 18:10:16
23// Author:    Galina KULIKOVA
24
25
26#ifndef ShHealOper_RemoveFace_HeaderFile
27#define ShHealOper_RemoveFace_HeaderFile
28
29#include <MMgt_TShared.hxx>
30#include <ShHealOper_Tool.hxx>
31#include <TopoDS_Shape.hxx>
32#include <TopTools_SequenceOfShape.hxx>
33#include <TopTools_MapOfShape.hxx>
34#include <TopoDS_Solid.hxx>
35#include <TopoDS_Shell.hxx>
36#include <TopoDS_Face.hxx>
37#include <TopTools_IndexedDataMapOfShapeListOfShape.hxx>
38//  Class ShHealOper_RemoveFace
39
40//!Class intended to removing faces from shape.
41class ShHealOper_RemoveFace : public ShHealOper_Tool
42{
43 public:
44  // ---------- PUBLIC METHODS ----------
45  //!Empty constructor.
46  Standard_EXPORT ShHealOper_RemoveFace ();
47  
48  //! Constructor initialized by shape from which faces will be removed.
49  Standard_EXPORT ShHealOper_RemoveFace (const TopoDS_Shape& theShape);
50
51  //!Method for initalization by whole shape.
52  Standard_EXPORT virtual void Init(const TopoDS_Shape& theShape);
53
54  //!Removes all faces from specified shape.
55  Standard_EXPORT Standard_Boolean Perform();
56  
57  //!Removes faces specified in the sequence of faces from specified shape.
58  Standard_EXPORT Standard_Boolean Perform(const TopTools_SequenceOfShape& theRemovedFaces);
59
60
61 private:
62
63  //!Methods for removing faces from sub-shapes.
64  Standard_Boolean removeFaces(const TopoDS_Shape& theShape,TopoDS_Shape& theNewShape);
65
66  //!Methods for removing faces from sub-shapes.
67  Standard_Boolean removeFaces(const TopoDS_Solid& theShape,TopoDS_Shape& theNewShape);
68
69  //!Methods for removing faces from sub-shapes.
70  Standard_Boolean removeFaces(const TopoDS_Shell& theShell,TopoDS_Shape& theNewShape);
71
72  //!Methods for removing faces from sub-shapes.
73  Standard_Boolean isReplace(const TopoDS_Shape& theOldShape,TopoDS_Shape& theNewShape);
74
75  //!method for removing pcurves belonging to face
76  void removePCurve(const TopoDS_Face& theFace);
77  
78  //!denenes manifold shell.
79  Standard_Boolean isManifold(const TopoDS_Shell& aShell);
80  
81 private:
82  // ---------- PRIVATE FIELDS ----------
83
84  TopTools_MapOfShape myMapFaces;
85  TopTools_IndexedDataMapOfShapeListOfShape myMapEdgesFace;
86 public:
87// Declaration of CASCADE RTTI
88//DEFINE_STANDARD_RTTI (ShHealOper_RemoveFace)
89};
90
91// Definition of HANDLE object using Standard_DefineHandle.hxx
92//DEFINE_STANDARD_HANDLE (ShHealOper_RemoveFace, )
93
94
95#endif