// 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_GapTool_HeaderFile
#define _TopOpeBRepDS_GapTool_HeaderFile

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

#include <Handle_TopOpeBRepDS_HDataStructure.hxx>
#include <TopOpeBRepDS_DataMapOfIntegerListOfInterference.hxx>
#include <TopOpeBRepDS_DataMapOfInterferenceShape.hxx>
#include <MMgt_TShared.hxx>
#include <Standard_Integer.hxx>
#include <Handle_TopOpeBRepDS_Interference.hxx>
#include <Standard_Boolean.hxx>
#include <Standard_Real.hxx>
class TopOpeBRepDS_HDataStructure;
class TopOpeBRepDS_ListOfInterference;
class TopOpeBRepDS_Interference;
class TopOpeBRepDS_Curve;
class TopoDS_Shape;



class TopOpeBRepDS_GapTool : public MMgt_TShared
{

public:

  
  Standard_EXPORT TopOpeBRepDS_GapTool();
  
  Standard_EXPORT TopOpeBRepDS_GapTool(const Handle(TopOpeBRepDS_HDataStructure)& HDS);
  
  Standard_EXPORT   void Init (const Handle(TopOpeBRepDS_HDataStructure)& HDS) ;
  
  Standard_EXPORT  const  TopOpeBRepDS_ListOfInterference& Interferences (const Standard_Integer IndexPoint)  const;
  
  Standard_EXPORT  const  TopOpeBRepDS_ListOfInterference& SameInterferences (const Handle(TopOpeBRepDS_Interference)& I)  const;
  
  Standard_EXPORT   TopOpeBRepDS_ListOfInterference& ChangeSameInterferences (const Handle(TopOpeBRepDS_Interference)& I) ;
  
  Standard_EXPORT   Standard_Boolean Curve (const Handle(TopOpeBRepDS_Interference)& I, TopOpeBRepDS_Curve& C)  const;
  
  Standard_EXPORT   Standard_Boolean EdgeSupport (const Handle(TopOpeBRepDS_Interference)& I, TopoDS_Shape& E)  const;
  
  //! Return les faces qui  ont genere la section origine
  //! de I
  Standard_EXPORT   Standard_Boolean FacesSupport (const Handle(TopOpeBRepDS_Interference)& I, TopoDS_Shape& F1, TopoDS_Shape& F2)  const;
  
  Standard_EXPORT   Standard_Boolean ParameterOnEdge (const Handle(TopOpeBRepDS_Interference)& I, const TopoDS_Shape& E, Standard_Real& U)  const;
  
  Standard_EXPORT   void SetPoint (const Handle(TopOpeBRepDS_Interference)& I, const Standard_Integer IndexPoint) ;
  
  Standard_EXPORT   void SetParameterOnEdge (const Handle(TopOpeBRepDS_Interference)& I, const TopoDS_Shape& E, const Standard_Real U) ;




  DEFINE_STANDARD_RTTI(TopOpeBRepDS_GapTool)

protected:




private: 


  Handle(TopOpeBRepDS_HDataStructure) myHDS;
  TopOpeBRepDS_DataMapOfIntegerListOfInterference myGToI;
  TopOpeBRepDS_DataMapOfInterferenceShape myInterToShape;


};







#endif // _TopOpeBRepDS_GapTool_HeaderFile
