// This file is generated by WOK (CPPExt).
// Please do not edit this file; modify original file instead.
// The copyright and license terms as defined for the original file apply to 
// this header file considered to be the "object code" form of the original source.

#ifndef _BOPAlgo_BuilderArea_HeaderFile
#define _BOPAlgo_BuilderArea_HeaderFile

#include <Standard.hxx>
#include <Standard_DefineAlloc.hxx>
#include <Standard_Macro.hxx>

#include <Handle_IntTools_Context.hxx>
#include <BOPCol_ListOfShape.hxx>
#include <BOPCol_IndexedMapOfOrientedShape.hxx>
#include <BOPAlgo_Algo.hxx>
#include <BOPCol_BaseAllocator.hxx>
class IntTools_Context;


//! The root class for algorithms to build
//! faces/solids from set of edges/faces
class BOPAlgo_BuilderArea  : public BOPAlgo_Algo
{
public:

  DEFINE_STANDARD_ALLOC

  
  Standard_EXPORT   void SetContext (const Handle(IntTools_Context)& theContext) ;
  
  Standard_EXPORT  const  BOPCol_ListOfShape& Shapes()  const;
Standard_EXPORT void SetShapes(const BOPCol_ListOfShape& theLS);
  
  Standard_EXPORT  const  BOPCol_ListOfShape& Loops()  const;
  
  Standard_EXPORT  const  BOPCol_ListOfShape& Areas()  const;




protected:

  
  Standard_EXPORT BOPAlgo_BuilderArea();
Standard_EXPORT virtual ~BOPAlgo_BuilderArea();
  
  Standard_EXPORT BOPAlgo_BuilderArea(const BOPCol_BaseAllocator& theAllocator);
  
  Standard_EXPORT virtual   void PerformShapesToAvoid()  = 0;
  
  Standard_EXPORT virtual   void PerformLoops()  = 0;
  
  Standard_EXPORT virtual   void PerformAreas()  = 0;
  
  Standard_EXPORT virtual   void PerformInternalShapes()  = 0;


  Handle(IntTools_Context) myContext;
  BOPCol_ListOfShape myShapes;
  BOPCol_ListOfShape myLoops;
  BOPCol_ListOfShape myLoopsInternal;
  BOPCol_ListOfShape myAreas;
  BOPCol_IndexedMapOfOrientedShape myShapesToAvoid;


private:





};







#endif // _BOPAlgo_BuilderArea_HeaderFile
