Version: 6.3.1

src/GEOMAlgo/GEOMAlgo_Gluer2.hxx

Go to the documentation of this file.
00001 // Copyright (C) 2007-2011  CEA/DEN, EDF R&D, OPEN CASCADE
00002 //
00003 // Copyright (C) 2003-2007  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
00004 // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
00005 //
00006 // This library is free software; you can redistribute it and/or
00007 // modify it under the terms of the GNU Lesser General Public
00008 // License as published by the Free Software Foundation; either
00009 // version 2.1 of the License.
00010 //
00011 // This library is distributed in the hope that it will be useful,
00012 // but WITHOUT ANY WARRANTY; without even the implied warranty of
00013 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00014 // Lesser General Public License for more details.
00015 //
00016 // You should have received a copy of the GNU Lesser General Public
00017 // License along with this library; if not, write to the Free Software
00018 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
00019 //
00020 // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
00021 //
00022 // File:        GEOMAlgo_Gluer2.hxx
00023 // Created:     
00024 // Author:      Peter KURNEV
00025 //              <pkv@irinox>
00026 
00027 #ifndef _GEOMAlgo_Gluer2_HeaderFile
00028 #define _GEOMAlgo_Gluer2_HeaderFile
00029 
00030 #include <Standard.hxx>
00031 #include <Standard_Macro.hxx>
00032 
00033 #include <TopTools_DataMapOfShapeListOfShape.hxx>
00034 #include <TopTools_DataMapOfShapeShape.hxx>
00035 #include <Standard_Boolean.hxx>
00036 #include <GEOMAlgo_GluerAlgo.hxx>
00037 #include <TopAbs_ShapeEnum.hxx>
00038 #include <NMTTools_CoupleOfShape.hxx>
00039 #include <NMTTools_ListOfCoupleOfShape.hxx>
00040 #include <GEOMAlgo_BuilderShape.hxx>
00041 
00042 //=======================================================================
00043 //class : GEOMAlgo_Gluer2
00044 //purpose  : 
00045 //=======================================================================
00046 class GEOMAlgo_Gluer2  : public GEOMAlgo_GluerAlgo, 
00047                          public GEOMAlgo_BuilderShape {
00048 public:
00049   
00050   Standard_EXPORT   GEOMAlgo_Gluer2();
00051   
00052   Standard_EXPORT virtual ~GEOMAlgo_Gluer2();
00053   
00054   Standard_EXPORT     void SetShapesToGlue(const TopTools_DataMapOfShapeListOfShape& aM) ;
00055   
00056   Standard_EXPORT    const TopTools_DataMapOfShapeListOfShape& ShapesToGlue() const;
00057   
00058   Standard_EXPORT     void SetKeepNonSolids(const Standard_Boolean theFlag) ;
00059   
00060   Standard_EXPORT     Standard_Boolean KeepNonSolids() const;
00061   
00062   Standard_EXPORT   virtual  void Clear() ;
00063   
00064   Standard_EXPORT   virtual  void Perform() ;
00065   
00066   Standard_EXPORT   virtual  void CheckData() ;
00067   
00068   Standard_EXPORT     void Detect() ;
00069   
00070   Standard_EXPORT    const TopTools_DataMapOfShapeListOfShape& ShapesDetected() const;
00071   
00072   Standard_EXPORT    const TopTools_DataMapOfShapeListOfShape& ImagesToWork() const;
00073   
00074   Standard_EXPORT   virtual const TopTools_ListOfShape& Generated(const TopoDS_Shape& theS) ;
00075   
00076   Standard_EXPORT   virtual const TopTools_ListOfShape& Modified(const TopoDS_Shape& theS) ;
00077   
00078   Standard_EXPORT   virtual  Standard_Boolean IsDeleted(const TopoDS_Shape& theS) ;
00079   
00080   Standard_EXPORT   static  void MakeVertex(const TopTools_ListOfShape& theLV,
00081                              TopoDS_Vertex& theV) ;
00082   
00083   Standard_EXPORT   static  void MapBRepShapes(const TopoDS_Shape& theS,
00084                                 TopTools_MapOfShape& theM) ;
00085   
00086   Standard_EXPORT   static  void MapShapes(const TopoDS_Shape& theS,
00087                             TopTools_MapOfShape& theM) ;
00088 
00089 
00090 protected:
00091   
00092   Standard_EXPORT     void PerformShapesToWork() ;
00093   
00094   Standard_EXPORT     void FillVertices() ;
00095   
00096   Standard_EXPORT     void FillEdges() ;
00097   
00098   Standard_EXPORT     void FillWires() ;
00099   
00100   Standard_EXPORT     void FillFaces() ;
00101   
00102   Standard_EXPORT     void FillShells() ;
00103   
00104   Standard_EXPORT     void FillSolids() ;
00105   
00106   Standard_EXPORT     void FillCompSolids() ;
00107   
00108   Standard_EXPORT     void FillCompounds() ;
00109   
00110   Standard_EXPORT     void BuildResult() ;
00111   
00112   Standard_EXPORT     void FillBRepShapes(const TopAbs_ShapeEnum theType) ;
00113   
00114   Standard_EXPORT     void FillContainers(const TopAbs_ShapeEnum theType) ;
00115   
00116   Standard_EXPORT     void FillCompound(const TopoDS_Shape& theC) ;
00117   
00118   Standard_EXPORT     virtual  void PrepareHistory() ;
00119   
00120   Standard_EXPORT     Standard_Boolean HasImage(const TopoDS_Shape& theC) ;
00121   
00122   Standard_EXPORT     void MakeBRepShapes(const TopoDS_Shape& theS,
00123                            TopoDS_Shape& theSnew) ;
00124   
00125   Standard_EXPORT     void MakeEdge(const TopoDS_Edge& theE,
00126                         TopoDS_Edge& theEnew) ;
00127   
00128   Standard_EXPORT     void MakeFace(const TopoDS_Face& theF,
00129                         TopoDS_Face& theFnew) ;
00130   
00131   Standard_EXPORT     void TreatPair(const NMTTools_CoupleOfShape& theCS,
00132                          NMTTools_ListOfCoupleOfShape& theLCS) ;
00133 
00134 protected:
00135   TopTools_DataMapOfShapeListOfShape myShapesToGlue;
00136   TopTools_DataMapOfShapeListOfShape myImagesDetected;
00137   TopTools_DataMapOfShapeShape myOriginsDetected;
00138   TopTools_DataMapOfShapeListOfShape myImagesToWork;
00139   TopTools_DataMapOfShapeShape myOriginsToWork;
00140   Standard_Boolean myKeepNonSolids;
00141 
00142 private:
00143 };
00144 #endif
Copyright © 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE
Copyright © 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS