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

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

#include <Handle_Geom_Curve.hxx>
#include <Standard_Real.hxx>
#include <Standard_Boolean.hxx>
#include <TopoDS_Shape.hxx>
#include <Handle_TopOpeBRepDS_Interference.hxx>
#include <Standard_Integer.hxx>
#include <Handle_Geom2d_Curve.hxx>
#include <Standard_OStream.hxx>
class Geom_Curve;
class TopOpeBRepDS_Interference;
class TopoDS_Shape;
class Geom2d_Curve;


//! A Geom curve and a tolerance.
class TopOpeBRepDS_Curve 
{
public:

  DEFINE_STANDARD_ALLOC

  
  Standard_EXPORT TopOpeBRepDS_Curve();
  
  Standard_EXPORT TopOpeBRepDS_Curve(const Handle(Geom_Curve)& P, const Standard_Real T, const Standard_Boolean IsWalk = Standard_False);
  
  Standard_EXPORT   void DefineCurve (const Handle(Geom_Curve)& P, const Standard_Real T, const Standard_Boolean IsWalk) ;
  
  //! Update the tolerance
  Standard_EXPORT   void Tolerance (const Standard_Real tol) ;
  
  //! define the interferences face/curve.
  Standard_EXPORT   void SetSCI (const Handle(TopOpeBRepDS_Interference)& I1, const Handle(TopOpeBRepDS_Interference)& I2) ;
  
  Standard_EXPORT  const  Handle(TopOpeBRepDS_Interference)& GetSCI1()  const;
  
  Standard_EXPORT  const  Handle(TopOpeBRepDS_Interference)& GetSCI2()  const;
  
  Standard_EXPORT   void GetSCI (Handle(TopOpeBRepDS_Interference)& I1, Handle(TopOpeBRepDS_Interference)& I2)  const;
  
  Standard_EXPORT   void SetShapes (const TopoDS_Shape& S1, const TopoDS_Shape& S2) ;
  
  Standard_EXPORT   void GetShapes (TopoDS_Shape& S1, TopoDS_Shape& S2)  const;
  
  Standard_EXPORT  const  TopoDS_Shape& Shape1()  const;
  
  Standard_EXPORT   TopoDS_Shape& ChangeShape1() ;
  
  Standard_EXPORT  const  TopoDS_Shape& Shape2()  const;
  
  Standard_EXPORT   TopoDS_Shape& ChangeShape2() ;
  
  Standard_EXPORT  const  Handle(Geom_Curve)& Curve()  const;
  
  Standard_EXPORT   void SetRange (const Standard_Real First, const Standard_Real Last) ;
  
  Standard_EXPORT   Standard_Boolean Range (Standard_Real& First, Standard_Real& Last)  const;
  
  Standard_EXPORT   Standard_Real Tolerance()  const;
  
  Standard_EXPORT   Handle(Geom_Curve)& ChangeCurve() ;
  
  Standard_EXPORT   void Curve (const Handle(Geom_Curve)& C3D, const Standard_Real Tol) ;
  
  Standard_EXPORT  const  Handle(Geom2d_Curve)& Curve1()  const;
  
  Standard_EXPORT   void Curve1 (const Handle(Geom2d_Curve)& PC1) ;
  
  Standard_EXPORT  const  Handle(Geom2d_Curve)& Curve2()  const;
  
  Standard_EXPORT   void Curve2 (const Handle(Geom2d_Curve)& PC2) ;
  
  Standard_EXPORT   Standard_Boolean IsWalk()  const;
  
  Standard_EXPORT   void ChangeIsWalk (const Standard_Boolean B) ;
  
  Standard_EXPORT   Standard_Boolean Keep()  const;
  
  Standard_EXPORT   void ChangeKeep (const Standard_Boolean B) ;
  
  Standard_EXPORT   Standard_Integer Mother()  const;
  
  Standard_EXPORT   void ChangeMother (const Standard_Integer I) ;
  
  Standard_EXPORT   Standard_Integer DSIndex()  const;
  
  Standard_EXPORT   void ChangeDSIndex (const Standard_Integer I) ;
  
  Standard_EXPORT   Standard_OStream& Dump (Standard_OStream& OS, const Standard_Integer index, const Standard_Boolean compact = Standard_True)  const;




protected:





private:



  Handle(Geom_Curve) myCurve;
  Standard_Real myFirst;
  Standard_Real myLast;
  Standard_Boolean myRangeDefined;
  Standard_Real myTolerance;
  Standard_Boolean myIsWalk;
  TopoDS_Shape myS1;
  TopoDS_Shape myS2;
  Handle(TopOpeBRepDS_Interference) mySCI1;
  Handle(TopOpeBRepDS_Interference) mySCI2;
  Standard_Boolean myKeep;
  Standard_Integer myMother;
  Standard_Integer myDSIndex;


};







#endif // _TopOpeBRepDS_Curve_HeaderFile
