PageRenderTime 16ms CodeModel.GetById 10ms app.highlight 4ms RepoModel.GetById 0ms app.codeStats 1ms

/src/contrib/geom-5.1.2.7/inc_pythonocc/GEOMAlgo_Splitter.hxx

http://pythonocc.googlecode.com/
C++ Header | 145 lines | 59 code | 43 blank | 43 comment | 1 complexity | 670f4753965750793c820bba0cfad294 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_Splitter_HeaderFile
 23#define _GEOMAlgo_Splitter_HeaderFile
 24
 25#ifndef _TopTools_ListOfShape_HeaderFile
 26#include <TopTools_ListOfShape.hxx>
 27#endif
 28#ifndef _TopTools_MapOfShape_HeaderFile
 29#include <TopTools_MapOfShape.hxx>
 30#endif
 31#ifndef _TopAbs_ShapeEnum_HeaderFile
 32#include <TopAbs_ShapeEnum.hxx>
 33#endif
 34#ifndef _Standard_Integer_HeaderFile
 35#include <Standard_Integer.hxx>
 36#endif
 37#ifndef _GEOMAlgo_Builder_HeaderFile
 38#include <GEOMAlgo_Builder.hxx>
 39#endif
 40class TopoDS_Shape;
 41class TopTools_ListOfShape;
 42
 43
 44#ifndef _Standard_HeaderFile
 45#include <Standard.hxx>
 46#endif
 47#ifndef _Standard_Macro_HeaderFile
 48#include <Standard_Macro.hxx>
 49#endif
 50
 51//! Implementation of Gluing Operation Algorithm (GA) <br>
 52class GEOMAlgo_Splitter  : public GEOMAlgo_Builder {
 53
 54public:
 55
 56    void* operator new(size_t,void* anAddress) 
 57      {
 58        return anAddress;
 59      }
 60    void* operator new(size_t size) 
 61      { 
 62        return Standard::Allocate(size); 
 63      }
 64    void  operator delete(void *anAddress) 
 65      { 
 66        if (anAddress) Standard::Free((Standard_Address&)anAddress); 
 67      }
 68 // Methods PUBLIC
 69 // 
 70
 71//!  Empty constructor <br>
 72Standard_EXPORT GEOMAlgo_Splitter();
 73Standard_EXPORT virtual ~GEOMAlgo_Splitter();
 74
 75//!  Clears internal fields and arguments <br>
 76Standard_EXPORT virtual  void Clear() ;
 77
 78//!  Adds Tool argument theShape of the operation <br>
 79Standard_EXPORT virtual  void AddTool(const TopoDS_Shape& theShape) ;
 80
 81//!  Returns the arguments of the operation <br>
 82Standard_EXPORT  const TopTools_ListOfShape& Tools() const;
 83
 84
 85Standard_EXPORT   void SetLimit(const TopAbs_ShapeEnum aLimit) ;
 86
 87
 88Standard_EXPORT   TopAbs_ShapeEnum Limit() const;
 89
 90
 91Standard_EXPORT   void SetLimitMode(const Standard_Integer aLimitMode) ;
 92
 93
 94Standard_EXPORT   Standard_Integer LimitMode() const;
 95
 96//!  Adds Tool arguments of the operation as <br>
 97//!           shapes of upper level of container shape theShape <br>
 98//! ===================================================== <br>
 99Standard_EXPORT   void AddToolCompound(const TopoDS_Shape& theShape) ;
100
101
102
103
104
105protected:
106
107 // Methods PROTECTED
108 // 
109
110//! Build the resulting shapes of type theType <br>
111Standard_EXPORT virtual  void BuildResult(const TopAbs_ShapeEnum theType) ;
112
113//!  Provides post-tratment actions <br>
114Standard_EXPORT virtual  void PostTreat() ;
115
116
117 // Fields PROTECTED
118 //
119TopTools_ListOfShape myTools;
120TopTools_MapOfShape myMapTools;
121TopAbs_ShapeEnum myLimit;
122Standard_Integer myLimitMode;
123
124
125private: 
126
127 // Methods PRIVATE
128 // 
129
130
131 // Fields PRIVATE
132 //
133
134
135};
136
137
138
139
140
141// other Inline functions and methods (like "C++: function call" methods)
142//
143
144
145#endif