#ifndef _BRepLib_CheckCurveOnSurface_HeaderFile
#define _BRepLib_CheckCurveOnSurface_HeaderFile
-#include <Standard.hxx>
-#include <Standard_DefineAlloc.hxx>
-#include <Standard_Handle.hxx>
-
-#include <Standard_Real.hxx>
-#include <Standard_Integer.hxx>
-#include <Standard_Boolean.hxx>
-class Geom_Curve;
-class Geom2d_Curve;
-class Geom_Surface;
-class TopoDS_Edge;
-class TopoDS_Face;
-
-
+#include <GeomLib_CheckCurveOnSurface.hxx>
//! Computes the max distance between edge and its
//! 2d representation on the face.
-//!
-//! The algorithm can be initialized in the following ways:
-//! 1. Input args are Edge and Face;
-//! 2. Input args are 3D curve, 2d curve, Surface and
-//! parametric range of the curve (first and last values).
+
class BRepLib_CheckCurveOnSurface
{
public:
DEFINE_STANDARD_ALLOC
+ //! Default contructor
+ BRepLib_CheckCurveOnSurface() {}
-
- //! Empty contructor
- Standard_EXPORT BRepLib_CheckCurveOnSurface();
-
-
//! Contructor
- Standard_EXPORT BRepLib_CheckCurveOnSurface(const TopoDS_Edge& theEdge, const TopoDS_Face& theFace);
+ Standard_EXPORT BRepLib_CheckCurveOnSurface(const TopoDS_Edge& theEdge,
+ const TopoDS_Face& theFace);
-
- //! Contructor
- Standard_EXPORT BRepLib_CheckCurveOnSurface(const Handle(Geom_Curve)& theCurve, const Handle(Geom2d_Curve)& thePCurve, const Handle(Geom_Surface)& theSurface, const Standard_Real theFirst, const Standard_Real theLast);
-
-
//! Sets the data for the algorithm
Standard_EXPORT void Init (const TopoDS_Edge& theEdge, const TopoDS_Face& theFace);
-
-
- //! Sets the data for the algorithm
- Standard_EXPORT void Init (const Handle(Geom_Curve)& theCurve, const Handle(Geom2d_Curve)& thePCurve, const Handle(Geom_Surface)& theSurface, const Standard_Real theFirst, const Standard_Real theLast);
-
-
- //! Returns my3DCurve
- const Handle(Geom_Curve)& Curve() const;
-
-
- //! Returns my2DCurve
- const Handle(Geom2d_Curve)& PCurve() const;
-
-
- //! Returns my2DCurve
- const Handle(Geom2d_Curve)& PCurve2() const;
-
-
- //! Returns mySurface
- const Handle(Geom_Surface)& Surface() const;
-
-
- //! Returns the range
- void Range (Standard_Real& theFirst, Standard_Real& theLast);
-
//! Performs the calculation
//! If isTheMultyTheadDisabled == TRUE then computation will be made
//! without any parallelization.
Standard_EXPORT void Perform (const Standard_Boolean isTheMultyTheradDisabled = Standard_False);
-
+ //! Returns source 3D-Curve
+ const Handle(Geom_Curve)& Curve() const
+ {
+ return myCOnSurfGeom.Curve();
+ }
+
+ //! Returns mine 2D-Curve
+ const Handle(Geom2d_Curve)& PCurve() const
+ {
+ return myPCurve;
+ }
+
+ //! Returns 2nd 2D-Curve (if it exists, e.g. for seam-edge)
+ const Handle(Geom2d_Curve)& PCurve2() const
+ {
+ return myPCurve2;
+ }
+
+ //! Returns source surface
+ const Handle(Geom_Surface)& Surface() const
+ {
+ return myCOnSurfGeom.Surface();
+ }
+
+ //! Returns first and last parameter of the curves
+ //! (2D- and 3D-curves are considered to have same range)
+ void Range (Standard_Real& theFirst, Standard_Real& theLast)
+ {
+ myCOnSurfGeom.Range(theFirst, theLast);
+ }
+
//! Returns true if the max distance has been found
- Standard_Boolean IsDone() const;
+ Standard_Boolean IsDone() const
+ {
+ return myCOnSurfGeom.ErrorStatus() == 0;
+ }
-
//! Returns error status
//! The possible values are:
//! 0 - OK;
//! 1 - null curve or surface or 2d curve;
//! 2 - invalid parametric range;
//! 3 - error in calculations.
- Standard_Integer ErrorStatus() const;
+ Standard_Integer ErrorStatus() const
+ {
+ return myCOnSurfGeom.ErrorStatus();
+ }
-
//! Returns max distance
- Standard_Real MaxDistance() const;
+ Standard_Real MaxDistance() const
+ {
+ return myCOnSurfGeom.MaxDistance();
+ }
-
//! Returns parameter in which the distance is maximal
- Standard_Real MaxParameter() const;
-
-
-
+ Standard_Real MaxParameter() const
+ {
+ return myCOnSurfGeom.MaxParameter();
+ }
protected:
-
-
- //! Checks the data
- Standard_EXPORT void CheckData();
-
-
- //! Computes the max distance for the 3d curve <myCurve>
+ //! Computes the max distance for the 3d curve of <myCOnSurfGeom>
//! and 2d curve <thePCurve>
//! If isTheMultyTheadDisabled == TRUE then computation will be made
//! without any parallelization.
- Standard_EXPORT void Compute (const Handle(Geom2d_Curve)& thePCurve, const Standard_Boolean isTheMultyTheradDisabled);
-
-
-
+ Standard_EXPORT void Compute (const Handle(Geom2d_Curve)& thePCurve,
+ const Standard_Boolean isTheMultyTheradDisabled);
private:
-
-
- Handle(Geom_Curve) myCurve;
+ GeomLib_CheckCurveOnSurface myCOnSurfGeom;
Handle(Geom2d_Curve) myPCurve;
Handle(Geom2d_Curve) myPCurve2;
- Handle(Geom_Surface) mySurface;
- Standard_Real myFirst;
- Standard_Real myLast;
- Standard_Integer myErrorStatus;
- Standard_Real myMaxDistance;
- Standard_Real myMaxParameter;
-
-
};
-
-#include <BRepLib_CheckCurveOnSurface.lxx>
-
-
-
-
-
#endif // _BRepLib_CheckCurveOnSurface_HeaderFile