// 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 _TopOpeBRepTool_BoxSort_HeaderFile
#define _TopOpeBRepTool_BoxSort_HeaderFile

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

#include <Bnd_Box.hxx>
#include <Bnd_BoundSortBox.hxx>
#include <TColStd_ListIteratorOfListOfInteger.hxx>
#include <TopoDS_Shape.hxx>
#include <Handle_TopOpeBRepTool_HBoxTool.hxx>
#include <Handle_Bnd_HArray1OfBox.hxx>
#include <Handle_TColStd_HArray1OfInteger.hxx>
#include <TopAbs_ShapeEnum.hxx>
#include <Standard_Integer.hxx>
class TopOpeBRepTool_HBoxTool;
class Bnd_HArray1OfBox;
class TColStd_HArray1OfInteger;
class TopoDS_Shape;
class Bnd_Box;
class TColStd_ListIteratorOfListOfInteger;



class TopOpeBRepTool_BoxSort 
{
public:

  DEFINE_STANDARD_ALLOC

  
  Standard_EXPORT TopOpeBRepTool_BoxSort();
  
  Standard_EXPORT TopOpeBRepTool_BoxSort(const Handle(TopOpeBRepTool_HBoxTool)& T);
  
  Standard_EXPORT   void SetHBoxTool (const Handle(TopOpeBRepTool_HBoxTool)& T) ;
  
  Standard_EXPORT  const  Handle(TopOpeBRepTool_HBoxTool)& HBoxTool()  const;
  
  Standard_EXPORT   void Clear() ;
  
  Standard_EXPORT   void AddBoxes (const TopoDS_Shape& S, const TopAbs_ShapeEnum TS, const TopAbs_ShapeEnum TA = TopAbs_SHAPE) ;
  
  Standard_EXPORT   void MakeHAB (const TopoDS_Shape& S, const TopAbs_ShapeEnum TS, const TopAbs_ShapeEnum TA = TopAbs_SHAPE) ;
  
  Standard_EXPORT  const  Handle(Bnd_HArray1OfBox)& HAB()  const;
  
  Standard_EXPORT static   void MakeHABCOB (const Handle(Bnd_HArray1OfBox)& HAB, Bnd_Box& COB) ;
  
  Standard_EXPORT  const  TopoDS_Shape& HABShape (const Standard_Integer I)  const;
  
  Standard_EXPORT   void MakeCOB (const TopoDS_Shape& S, const TopAbs_ShapeEnum TS, const TopAbs_ShapeEnum TA = TopAbs_SHAPE) ;
  
  Standard_EXPORT   void AddBoxesMakeCOB (const TopoDS_Shape& S, const TopAbs_ShapeEnum TS, const TopAbs_ShapeEnum TA = TopAbs_SHAPE) ;
  
  Standard_EXPORT  const  TColStd_ListIteratorOfListOfInteger& Compare (const TopoDS_Shape& S) ;
  
  Standard_EXPORT  const  TopoDS_Shape& TouchedShape (const TColStd_ListIteratorOfListOfInteger& I)  const;
  
  Standard_EXPORT  const  Bnd_Box& Box (const TopoDS_Shape& S)  const;
  
  Standard_EXPORT   void Destroy() ;
Standard_EXPORT ~TopOpeBRepTool_BoxSort() {Destroy();}




protected:





private:



  Bnd_Box myCOB;
  Bnd_BoundSortBox myBSB;
  TColStd_ListIteratorOfListOfInteger myIterator;
  TopoDS_Shape myLastCompareShape;
  Bnd_Box myLastCompareShapeBox;
  Handle(TopOpeBRepTool_HBoxTool) myHBT;
  Handle(Bnd_HArray1OfBox) myHAB;
  Handle(TColStd_HArray1OfInteger) myHAI;


};







#endif // _TopOpeBRepTool_BoxSort_HeaderFile
