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

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

#include <HLRAlgo_Intersection.hxx>
#include <Standard_Boolean.hxx>
#include <TopAbs_State.hxx>
#include <Handle_HLRBRep_AreaLimit.hxx>
#include <MMgt_TShared.hxx>
class HLRAlgo_Intersection;


//! The  private  nested class AreaLimit represents   a --
//! vertex on  the Edge with the  state on the left and --
//! the right.
class HLRBRep_AreaLimit : public MMgt_TShared
{

public:

  
  //! The previous and next field are set to NULL.
  Standard_EXPORT HLRBRep_AreaLimit(const HLRAlgo_Intersection& V, const Standard_Boolean Boundary, const Standard_Boolean Interference, const TopAbs_State StateBefore, const TopAbs_State StateAfter, const TopAbs_State EdgeBefore, const TopAbs_State EdgeAfter);
  
  Standard_EXPORT   void StateBefore (const TopAbs_State St) ;
  
  Standard_EXPORT   void StateAfter (const TopAbs_State St) ;
  
  Standard_EXPORT   void EdgeBefore (const TopAbs_State St) ;
  
  Standard_EXPORT   void EdgeAfter (const TopAbs_State St) ;
  
  Standard_EXPORT   void Previous (const Handle(HLRBRep_AreaLimit)& P) ;
  
  Standard_EXPORT   void Next (const Handle(HLRBRep_AreaLimit)& N) ;
  
  Standard_EXPORT  const  HLRAlgo_Intersection& Vertex()  const;
  
  Standard_EXPORT   Standard_Boolean IsBoundary()  const;
  
  Standard_EXPORT   Standard_Boolean IsInterference()  const;
  
  Standard_EXPORT   TopAbs_State StateBefore()  const;
  
  Standard_EXPORT   TopAbs_State StateAfter()  const;
  
  Standard_EXPORT   TopAbs_State EdgeBefore()  const;
  
  Standard_EXPORT   TopAbs_State EdgeAfter()  const;
  
  Standard_EXPORT   Handle(HLRBRep_AreaLimit) Previous()  const;
  
  Standard_EXPORT   Handle(HLRBRep_AreaLimit) Next()  const;
  
  Standard_EXPORT   void Clear() ;




  DEFINE_STANDARD_RTTI(HLRBRep_AreaLimit)

protected:




private: 


  HLRAlgo_Intersection myVertex;
  Standard_Boolean myBoundary;
  Standard_Boolean myInterference;
  TopAbs_State myStateBefore;
  TopAbs_State myStateAfter;
  TopAbs_State myEdgeBefore;
  TopAbs_State myEdgeAfter;
  Handle(HLRBRep_AreaLimit) myPrevious;
  Handle(HLRBRep_AreaLimit) myNext;


};







#endif // _HLRBRep_AreaLimit_HeaderFile
