// 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_FaceInfo_HeaderFile
#define _BOPDS_FaceInfo_HeaderFile

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

#include <BOPCol_BaseAllocator.hxx>
#include <Standard_Integer.hxx>
#include <BOPDS_IndexedMapOfPaveBlock.hxx>
#include <BOPCol_MapOfInteger.hxx>



//! The class BOPDS_FaceInfo is to store
//! handy information about state of face
class BOPDS_FaceInfo 
{
public:

  DEFINE_STANDARD_ALLOC

  

  //! Empty contructor
    BOPDS_FaceInfo();
virtual ~BOPDS_FaceInfo();
  

  //! Contructor
  //! theAllocator - the allocator to manage the memory
    BOPDS_FaceInfo(const BOPCol_BaseAllocator& theAllocator);
  

  //! Clears the contents
  Standard_EXPORT   void Clear() ;
  

  //! Modifier
  //! Sets the index of the face <theI>
      void SetIndex (const Standard_Integer theI) ;
  

  //! Selector
  //! Returns the index of the face
  //!
  //! In
      Standard_Integer Index()  const;
  

  //! Selector
  //! Returns the pave blocks of the face
  //! that  have state In
     const  BOPDS_IndexedMapOfPaveBlock& PaveBlocksIn()  const;
  

  //! Selector/Modifier
  //! Returns the pave blocks
  //! of the face
  //! that  have state In
      BOPDS_IndexedMapOfPaveBlock& ChangePaveBlocksIn() ;
  

  //! Selector
  //! Returns the list of indices for vertices
  //! of the face
  //! that have state In
     const  BOPCol_MapOfInteger& VerticesIn()  const;
  

  //! Selector/Modifier
  //! Returns the list of indices for vertices
  //! of the face
  //! that have state In
  //!
  //! On
      BOPCol_MapOfInteger& ChangeVerticesIn() ;
  

  //! Selector
  //! Returns the pave blocks of the face
  //! that  have state On
     const  BOPDS_IndexedMapOfPaveBlock& PaveBlocksOn()  const;
  

  //! Selector/Modifier
  //! Returns the pave blocks
  //! of the face
  //! that  have state On
      BOPDS_IndexedMapOfPaveBlock& ChangePaveBlocksOn() ;
  

  //! Selector
  //! Returns the list of indices for vertices
  //! of the face
  //! that have state On
     const  BOPCol_MapOfInteger& VerticesOn()  const;
  

  //! Selector/Modifier
  //! Returns the list of indices for vertices
  //! of the face
  //! that have state On
  //!
  //! Sections
      BOPCol_MapOfInteger& ChangeVerticesOn() ;
  

  //! Selector
  //! Returns the pave blocks of the face
  //! that are  pave blocks of section edges
     const  BOPDS_IndexedMapOfPaveBlock& PaveBlocksSc()  const;
  
      BOPDS_IndexedMapOfPaveBlock& ChangePaveBlocksSc() ;
  

  //! Selector
  //! Returns the list of indices for section  vertices
  //! of the face
     const  BOPCol_MapOfInteger& VerticesSc()  const;
  

  //! Selector/Modifier
  //! Returns the list of indices for section  vertices
  //! of the face
  //!
  //! Others
      BOPCol_MapOfInteger& ChangeVerticesSc() ;




protected:



  BOPCol_BaseAllocator myAllocator;
  Standard_Integer myIndex;
  BOPDS_IndexedMapOfPaveBlock myPaveBlocksIn;
  BOPCol_MapOfInteger myVerticesIn;
  BOPDS_IndexedMapOfPaveBlock myPaveBlocksOn;
  BOPCol_MapOfInteger myVerticesOn;
  BOPDS_IndexedMapOfPaveBlock myPaveBlocksSc;
  BOPCol_MapOfInteger myVerticesSc;


private:





};


#include <BOPDS_FaceInfo.lxx>





#endif // _BOPDS_FaceInfo_HeaderFile
