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

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

#include <BOPDS_Iterator.hxx>
#include <BOPCol_BaseAllocator.hxx>
#include <Standard_Integer.hxx>



//! The class BOPDS_IteratorSI is
//! 1.to compute self-intersections between BRep sub-shapes
//! of each argument of an operation (see the class BOPDS_DS)
//! in terms of theirs bounding boxes
//! 2.provides interface to iterare the pairs of
//! intersected sub-shapes of given type
class BOPDS_IteratorSI  : public BOPDS_Iterator
{
public:

  DEFINE_STANDARD_ALLOC

  

  //! Empty contructor
  Standard_EXPORT BOPDS_IteratorSI();
Standard_EXPORT virtual ~BOPDS_IteratorSI();
  

  //! Contructor
  //! theAllocator - the allocator to manage the memory
  Standard_EXPORT BOPDS_IteratorSI(const BOPCol_BaseAllocator& theAllocator);
  
  //! Updates the lists of possible intersections
  //! according to the value of <theLevel>.
  //! It defines which interferferences will be checked:
  //! 0 - only V/V;
  //! 1 - V/V and V/E;
  //! 2 - V/V, V/E and E/E;
  //! 3 - V/V, V/E, E/E and V/F;
  //! 4 - V/V, V/E, E/E, V/F and E/F;
  //! other - all interferences.
  Standard_EXPORT   void UpdateByLevelOfCheck (const Standard_Integer theLevel) ;




protected:

  
  Standard_EXPORT virtual   void Intersect() ;




private:





};







#endif // _BOPDS_IteratorSI_HeaderFile
