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

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

#include <Bnd_Box.hxx>
#include <Standard_Real.hxx>
#include <Standard_Integer.hxx>
#include <TColgp_Array1OfPnt.hxx>
#include <Standard_Boolean.hxx>
#include <Handle_TColStd_HArray1OfReal.hxx>
#include <Handle_Adaptor3d_HCurve.hxx>
class TColStd_HArray1OfReal;
class Standard_OutOfRange;
class Adaptor3d_HCurve;
class IntCurveSurface_TheHCurveTool;
class TColStd_Array1OfReal;
class Bnd_Box;
class gp_Pnt;



class IntCurveSurface_ThePolygonOfHInter 
{
public:

  DEFINE_STANDARD_ALLOC

  
  Standard_EXPORT IntCurveSurface_ThePolygonOfHInter(const Handle(Adaptor3d_HCurve)& Curve, const Standard_Integer NbPnt);
  
  Standard_EXPORT IntCurveSurface_ThePolygonOfHInter(const Handle(Adaptor3d_HCurve)& Curve, const Standard_Real U1, const Standard_Real U2, const Standard_Integer NbPnt);
  
  Standard_EXPORT IntCurveSurface_ThePolygonOfHInter(const Handle(Adaptor3d_HCurve)& Curve, const TColStd_Array1OfReal& Upars);
  
     const  Bnd_Box& Bounding()  const;
  
      Standard_Real DeflectionOverEstimation()  const;
  
      void SetDeflectionOverEstimation (const Standard_Real x) ;
  
      void Closed (const Standard_Boolean clos) ;
  
      Standard_Boolean Closed()  const;
  
      Standard_Integer NbSegments()  const;
  
     const  gp_Pnt& BeginOfSeg (const Standard_Integer Index)  const;
  
     const  gp_Pnt& EndOfSeg (const Standard_Integer Index)  const;
  
      Standard_Real InfParameter()  const;
  
      Standard_Real SupParameter()  const;
  
  Standard_EXPORT   Standard_Real ApproxParamOnCurve (const Standard_Integer Index, const Standard_Real ParamOnLine)  const;
  
  Standard_EXPORT   void Dump()  const;




protected:

  
  Standard_EXPORT   void Init (const Handle(Adaptor3d_HCurve)& Curve) ;
  
  Standard_EXPORT   void Init (const Handle(Adaptor3d_HCurve)& Curve, const TColStd_Array1OfReal& Upars) ;




private:



  Bnd_Box TheBnd;
  Standard_Real TheDeflection;
  Standard_Integer NbPntIn;
  TColgp_Array1OfPnt ThePnts;
  Standard_Boolean ClosedPolygon;
  Standard_Real Binf;
  Standard_Real Bsup;
  Handle(TColStd_HArray1OfReal) myParams;


};

#define TheCurve Handle(Adaptor3d_HCurve)
#define TheCurve_hxx <Adaptor3d_HCurve.hxx>
#define TheCurveTool IntCurveSurface_TheHCurveTool
#define TheCurveTool_hxx <IntCurveSurface_TheHCurveTool.hxx>
#define IntCurveSurface_Polygon IntCurveSurface_ThePolygonOfHInter
#define IntCurveSurface_Polygon_hxx <IntCurveSurface_ThePolygonOfHInter.hxx>

#include <IntCurveSurface_Polygon.lxx>

#undef TheCurve
#undef TheCurve_hxx
#undef TheCurveTool
#undef TheCurveTool_hxx
#undef IntCurveSurface_Polygon
#undef IntCurveSurface_Polygon_hxx




#endif // _IntCurveSurface_ThePolygonOfHInter_HeaderFile
