/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. #ifndef ShHealOper_RemoveFace_HeaderFile
  25. #define ShHealOper_RemoveFace_HeaderFile
  26. #include <MMgt_TShared.hxx>
  27. #include <ShHealOper_Tool.hxx>
  28. #include <TopoDS_Shape.hxx>
  29. #include <TopTools_SequenceOfShape.hxx>
  30. #include <TopTools_MapOfShape.hxx>
  31. #include <TopoDS_Solid.hxx>
  32. #include <TopoDS_Shell.hxx>
  33. #include <TopoDS_Face.hxx>
  34. #include <TopTools_IndexedDataMapOfShapeListOfShape.hxx>
  35. // Class ShHealOper_RemoveFace
  36. //!Class intended to removing faces from shape.
  37. class ShHealOper_RemoveFace : public ShHealOper_Tool
  38. {
  39. public:
  40. // ---------- PUBLIC METHODS ----------
  41. //!Empty constructor.
  42. Standard_EXPORT ShHealOper_RemoveFace ();
  43. //! Constructor initialized by shape from which faces will be removed.
  44. Standard_EXPORT ShHealOper_RemoveFace (const TopoDS_Shape& theShape);
  45. //!Method for initalization by whole shape.
  46. Standard_EXPORT virtual void Init(const TopoDS_Shape& theShape);
  47. //!Removes all faces from specified shape.
  48. Standard_EXPORT Standard_Boolean Perform();
  49. //!Removes faces specified in the sequence of faces from specified shape.
  50. Standard_EXPORT Standard_Boolean Perform(const TopTools_SequenceOfShape& theRemovedFaces);
  51. private:
  52. //!Methods for removing faces from sub-shapes.
  53. Standard_Boolean removeFaces(const TopoDS_Shape& theShape,TopoDS_Shape& theNewShape);
  54. //!Methods for removing faces from sub-shapes.
  55. Standard_Boolean removeFaces(const TopoDS_Solid& theShape,TopoDS_Shape& theNewShape);
  56. //!Methods for removing faces from sub-shapes.
  57. Standard_Boolean removeFaces(const TopoDS_Shell& theShell,TopoDS_Shape& theNewShape);
  58. //!Methods for removing faces from sub-shapes.
  59. Standard_Boolean isReplace(const TopoDS_Shape& theOldShape,TopoDS_Shape& theNewShape);
  60. //!method for removing pcurves belonging to face
  61. void removePCurve(const TopoDS_Face& theFace);
  62. //!denenes manifold shell.
  63. Standard_Boolean isManifold(const TopoDS_Shell& aShell);
  64. private:
  65. // ---------- PRIVATE FIELDS ----------
  66. TopTools_MapOfShape myMapFaces;
  67. TopTools_IndexedDataMapOfShapeListOfShape myMapEdgesFace;
  68. public:
  69. // Declaration of CASCADE RTTI
  70. //DEFINE_STANDARD_RTTI (ShHealOper_RemoveFace)
  71. };
  72. // Definition of HANDLE object using Standard_DefineHandle.hxx
  73. //DEFINE_STANDARD_HANDLE (ShHealOper_RemoveFace, )
  74. #endif