PageRenderTime 19ms CodeModel.GetById 7ms app.highlight 8ms RepoModel.GetById 1ms app.codeStats 0ms

/src/contrib/geom-6.3.1.8/inc/GEOMAlgo_ShapeSet.hxx

https://gitlab.com/tylerluo/pythonocc
C++ Header | 127 lines | 55 code | 36 blank | 36 comment | 1 complexity | 58a626b45f09aab38a9299575e3c2204 MD5 | raw file
  1//  Copyright (C) 2007-2008  CEA/DEN, EDF R&D, OPEN CASCADE
  2//
  3//  Copyright (C) 2003-2007  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
  4//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
  5//
  6//  This library is free software; you can redistribute it and/or
  7//  modify it under the terms of the GNU Lesser General Public
  8//  License as published by the Free Software Foundation; either
  9//  version 2.1 of the License.
 10//
 11//  This library is distributed in the hope that it will be useful,
 12//  but WITHOUT ANY WARRANTY; without even the implied warranty of
 13//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 14//  Lesser General Public License for more details.
 15//
 16//  You should have received a copy of the GNU Lesser General Public
 17//  License along with this library; if not, write to the Free Software
 18//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
 19//
 20//  See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 21//
 22#ifndef _GEOMAlgo_ShapeSet_HeaderFile
 23#define _GEOMAlgo_ShapeSet_HeaderFile
 24
 25#ifndef _Standard_HeaderFile
 26#include <Standard.hxx>
 27#endif
 28#ifndef _Standard_Macro_HeaderFile
 29#include <Standard_Macro.hxx>
 30#endif
 31
 32#ifndef _TopTools_MapOfOrientedShape_HeaderFile
 33#include <TopTools_MapOfOrientedShape.hxx>
 34#endif
 35#ifndef _TopTools_ListOfShape_HeaderFile
 36#include <TopTools_ListOfShape.hxx>
 37#endif
 38#ifndef _TopAbs_ShapeEnum_HeaderFile
 39#include <TopAbs_ShapeEnum.hxx>
 40#endif
 41#ifndef _Standard_Boolean_HeaderFile
 42#include <Standard_Boolean.hxx>
 43#endif
 44class TopTools_ListOfShape;
 45class TopoDS_Shape;
 46
 47
 48//! Implementation some formal <br>
 49//!          opereations with Set of shapes <br>
 50class GEOMAlgo_ShapeSet  {
 51
 52public:
 53
 54    void* operator new(size_t,void* anAddress) 
 55      {
 56        return anAddress;
 57      }
 58    void* operator new(size_t size) 
 59      { 
 60        return Standard::Allocate(size); 
 61      }
 62    void  operator delete(void *anAddress) 
 63      { 
 64        if (anAddress) Standard::Free((Standard_Address&)anAddress); 
 65      }
 66
 67//! Empty constructor <br>
 68Standard_EXPORT GEOMAlgo_ShapeSet();
 69
 70//! Adds shapes from the list theLS to the Set <br>
 71Standard_EXPORT   void Add(const TopTools_ListOfShape& theLS) ;
 72
 73//! Adds shape theShape to the Set <br>
 74Standard_EXPORT   void Add(const TopoDS_Shape& theShape) ;
 75
 76//! Adds sub-shapes of shape theShape, <br>
 77//!          that have type theType to the Set <br>
 78Standard_EXPORT   void Add(const TopoDS_Shape& theShape,const TopAbs_ShapeEnum theType) ;
 79
 80//! Removes shapes of theSet from the Set <br>
 81Standard_EXPORT   void Subtract(const GEOMAlgo_ShapeSet& theSet) ;
 82
 83//! Clears internal fields <br>
 84Standard_EXPORT   void Clear() ;
 85
 86//! Returns True if the Set contains <br>
 87//!          all shapes of theSet <br>
 88Standard_EXPORT   Standard_Boolean Contains(const GEOMAlgo_ShapeSet& theSet) const;
 89
 90//! Returns the Set <br>
 91Standard_EXPORT  const TopTools_ListOfShape& GetSet() const;
 92  //! Returns True if the Set==theSet <br>
 93  Standard_EXPORT     Standard_Boolean IsEqual(const GEOMAlgo_ShapeSet& theOther) const;
 94    Standard_Boolean operator ==(const GEOMAlgo_ShapeSet& theOther) const
 95{
 96  return IsEqual(theOther);
 97}
 98
 99
100
101
102
103protected:
104
105
106
107TopTools_MapOfOrientedShape myMap;
108TopTools_ListOfShape myList;
109
110
111private: 
112
113
114
115
116
117};
118
119
120
121
122
123// other Inline functions and methods (like "C++: function call" methods)
124//
125
126
127#endif