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

#include <Standard_Macro.hxx>
#include <Standard_DefineHandle.hxx>
#include <Standard.hxx>
#include <Handle_PBRep_CurveOnSurface.hxx>

#include <Handle_PGeom_Surface.hxx>
#include <Handle_PGeom2d_Curve.hxx>
#include <Standard_Boolean.hxx>
#include <gp_Pnt2d.hxx>
#include <PBRep_GCurve.hxx>
#include <Standard_Real.hxx>
class PGeom_Surface;
class PGeom2d_Curve;
class PTopLoc_Location;
class gp_Pnt2d;


class PBRep_CurveOnSurface : public PBRep_GCurve
{

public:

  
  //! CF is curve first parameter
  //! CL is curve last parameter
  //! As far as they can't be computed from a Persistent Curve
  //! they are given in the CurveOnSurface constructor
  Standard_EXPORT PBRep_CurveOnSurface(const Handle(PGeom2d_Curve)& PC, const Standard_Real CF, const Standard_Real CL, const Handle(PGeom_Surface)& S, const PTopLoc_Location& L);
  
  Standard_EXPORT   Handle(PGeom_Surface) Surface()  const;
  
  Standard_EXPORT   Handle(PGeom2d_Curve) PCurve()  const;
  
  //! Returns True.
  Standard_EXPORT virtual   Standard_Boolean IsCurveOnSurface()  const;
  
  Standard_EXPORT   void SetUVPoints (const gp_Pnt2d& Pnt1, const gp_Pnt2d& Pnt2) ;
  
  Standard_EXPORT   gp_Pnt2d FirstUV()  const;
  
  Standard_EXPORT   gp_Pnt2d LastUV()  const;

PBRep_CurveOnSurface( )
{
  
}
PBRep_CurveOnSurface(const Storage_stCONSTclCOM& a) : PBRep_GCurve(a)
{
  
}
    Handle(PGeom2d_Curve) _CSFDB_GetPBRep_CurveOnSurfacemyPCurve() const { return myPCurve; }
    void _CSFDB_SetPBRep_CurveOnSurfacemyPCurve(const Handle(PGeom2d_Curve)& p) { myPCurve = p; }
    Handle(PGeom_Surface) _CSFDB_GetPBRep_CurveOnSurfacemySurface() const { return mySurface; }
    void _CSFDB_SetPBRep_CurveOnSurfacemySurface(const Handle(PGeom_Surface)& p) { mySurface = p; }
    const gp_Pnt2d& _CSFDB_GetPBRep_CurveOnSurfacemyUV1() const { return myUV1; }
    const gp_Pnt2d& _CSFDB_GetPBRep_CurveOnSurfacemyUV2() const { return myUV2; }



  DEFINE_STANDARD_RTTI(PBRep_CurveOnSurface)

protected:




private: 


  Handle(PGeom2d_Curve) myPCurve;
  Handle(PGeom_Surface) mySurface;
  gp_Pnt2d myUV1;
  gp_Pnt2d myUV2;


};







#endif // _PBRep_CurveOnSurface_HeaderFile
