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

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

#include <GeomAbs_Shape.hxx>
#include <Standard_Real.hxx>
#include <Standard_Integer.hxx>
#include <ShapeUpgrade_SplitSurface.hxx>
#include <Standard_Boolean.hxx>


//! Splits a Surface with a continuity criterion.
//! At the present moment C1 criterion is used only.
//! This tool works with tolerance. If C0 surface can be corrected
//! at a knot with given tolerance then the surface is corrected,
//! otherwise it is spltted at that knot.
class ShapeUpgrade_SplitSurfaceContinuity : public ShapeUpgrade_SplitSurface
{

public:

  
  //! Empty constructor.
  Standard_EXPORT ShapeUpgrade_SplitSurfaceContinuity();
  
  //! Sets criterion for splitting.
  Standard_EXPORT   void SetCriterion (const GeomAbs_Shape Criterion) ;
  
  //! Sets tolerance.
  Standard_EXPORT   void SetTolerance (const Standard_Real Tol) ;
  
  Standard_EXPORT virtual   void Compute (const Standard_Boolean Segment) ;




  DEFINE_STANDARD_RTTI(ShapeUpgrade_SplitSurfaceContinuity)

protected:




private: 


  GeomAbs_Shape myCriterion;
  Standard_Real myTolerance;
  Standard_Integer myCont;


};







#endif // _ShapeUpgrade_SplitSurfaceContinuity_HeaderFile
