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

#include <Standard.hxx>
#include <Standard_DefineHandle.hxx>
#include <Handle_AIS_BadEdgeFilter.hxx>

#include <TopTools_DataMapOfIntegerListOfShape.hxx>
#include <Standard_Integer.hxx>
#include <SelectMgr_Filter.hxx>
#include <Standard_Boolean.hxx>
#include <TopAbs_ShapeEnum.hxx>
#include <Handle_SelectMgr_EntityOwner.hxx>
class SelectMgr_EntityOwner;
class TopoDS_Edge;


//! A Class
class AIS_BadEdgeFilter : public SelectMgr_Filter
{

public:

  
  //! Constructs an empty filter object for bad edges.
  Standard_EXPORT AIS_BadEdgeFilter();
  
  Standard_EXPORT virtual   Standard_Boolean ActsOn (const TopAbs_ShapeEnum aType)  const;
  
  Standard_EXPORT virtual   Standard_Boolean IsOk (const Handle(SelectMgr_EntityOwner)& EO)  const;
  
  //! sets  <myContour> with  current  contour. used  by
  //! IsOk.
  Standard_EXPORT   void SetContour (const Standard_Integer Index) ;
  
  //! Adds an  edge  to the list  of non-selectionnable
  //! edges.
  Standard_EXPORT   void AddEdge (const TopoDS_Edge& anEdge, const Standard_Integer Index) ;
  
  //! removes from the  list of non-selectionnable edges
  //! all edges in the contour <Index>.
  Standard_EXPORT   void RemoveEdges (const Standard_Integer Index) ;




  DEFINE_STANDARD_RTTI(AIS_BadEdgeFilter)

protected:




private: 


  TopTools_DataMapOfIntegerListOfShape myBadEdges;
  Standard_Integer myContour;


};







#endif // _AIS_BadEdgeFilter_HeaderFile
