mirror of
https://git.dev.opencascade.org/repos/occt.git
synced 2025-08-09 13:22:24 +03:00
0028966: Coding Rules - remove Adaptor2d_HCurve2d, Adaptor3d_HCurve and Adaptor3d_HSurface classes
Adaptor2d_Curve2d, Adaptor3d_Curve and Adaptor3d_Surface now inherit Standard_Transient. Interfaces Adaptor2d_HCurve2d, Adaptor3d_HCurve, Adaptor3d_HSurface and their subclasses are now aliases to Adaptor2d_Curve2d, Adaptor3d_Curve and Adaptor3d_Surface. Removed numerous unsafe reinterpret casts. Generic classes Adaptor3d_GenHCurve, Adaptor3d_GenHSurface, Adaptor2d_GenHCurve2d have been removed. Several redundant .lxx files have been merged into .hxx. Removed obsolete adaptor classes with H suffix.
This commit is contained in:
@@ -17,10 +17,10 @@
|
||||
#ifndef Approx_Array1OfAdHSurface_HeaderFile
|
||||
#define Approx_Array1OfAdHSurface_HeaderFile
|
||||
|
||||
#include <Adaptor3d_HSurface.hxx>
|
||||
#include <Adaptor3d_Surface.hxx>
|
||||
#include <NCollection_Array1.hxx>
|
||||
|
||||
typedef NCollection_Array1<Handle(Adaptor3d_HSurface)> Approx_Array1OfAdHSurface;
|
||||
typedef NCollection_Array1<Handle(Adaptor3d_Surface)> Approx_Array1OfAdHSurface;
|
||||
|
||||
|
||||
#endif
|
||||
|
@@ -15,7 +15,7 @@
|
||||
// commercial license or contractual agreement.
|
||||
|
||||
|
||||
#include <Adaptor2d_HCurve2d.hxx>
|
||||
#include <Adaptor2d_Curve2d.hxx>
|
||||
#include <AdvApprox_ApproxAFunction.hxx>
|
||||
#include <AdvApprox_PrefAndRec.hxx>
|
||||
#include <Approx_Curve2d.hxx>
|
||||
@@ -30,7 +30,7 @@
|
||||
class Approx_Curve2d_Eval : public AdvApprox_EvaluatorFunction
|
||||
{
|
||||
public:
|
||||
Approx_Curve2d_Eval (const Handle(Adaptor2d_HCurve2d)& theFunc,
|
||||
Approx_Curve2d_Eval (const Handle(Adaptor2d_Curve2d)& theFunc,
|
||||
Standard_Real First, Standard_Real Last)
|
||||
: fonct(theFunc) { StartEndSav[0] = First; StartEndSav[1] = Last; }
|
||||
|
||||
@@ -42,7 +42,7 @@ class Approx_Curve2d_Eval : public AdvApprox_EvaluatorFunction
|
||||
Standard_Integer *ErrorCode);
|
||||
|
||||
private:
|
||||
Handle(Adaptor2d_HCurve2d) fonct;
|
||||
Handle(Adaptor2d_Curve2d) fonct;
|
||||
Standard_Real StartEndSav[2];
|
||||
};
|
||||
|
||||
@@ -96,7 +96,7 @@ void Approx_Curve2d_Eval::Evaluate (Standard_Integer *Dimension,
|
||||
}
|
||||
}
|
||||
|
||||
Approx_Curve2d::Approx_Curve2d(const Handle(Adaptor2d_HCurve2d)& C2D,const Standard_Real First,const Standard_Real Last,const Standard_Real TolU,const Standard_Real TolV,const GeomAbs_Shape Continuity,const Standard_Integer MaxDegree,const Standard_Integer MaxSegments)
|
||||
Approx_Curve2d::Approx_Curve2d(const Handle(Adaptor2d_Curve2d)& C2D,const Standard_Real First,const Standard_Real Last,const Standard_Real TolU,const Standard_Real TolV,const GeomAbs_Shape Continuity,const Standard_Integer MaxDegree,const Standard_Integer MaxSegments)
|
||||
{
|
||||
C2D->Trim(First,Last,Precision::PConfusion());
|
||||
|
||||
|
@@ -17,15 +17,10 @@
|
||||
#ifndef _Approx_Curve2d_HeaderFile
|
||||
#define _Approx_Curve2d_HeaderFile
|
||||
|
||||
#include <Standard.hxx>
|
||||
#include <Standard_DefineAlloc.hxx>
|
||||
#include <Standard_Handle.hxx>
|
||||
|
||||
#include <Adaptor2d_Curve2d.hxx>
|
||||
#include <GeomAbs_Shape.hxx>
|
||||
#include <Geom2d_BSplineCurve.hxx>
|
||||
|
||||
class Adaptor2d_HCurve2d;
|
||||
|
||||
//! Makes an approximation for HCurve2d from Adaptor3d
|
||||
class Approx_Curve2d
|
||||
{
|
||||
@@ -34,7 +29,7 @@ public:
|
||||
DEFINE_STANDARD_ALLOC
|
||||
|
||||
|
||||
Standard_EXPORT Approx_Curve2d(const Handle(Adaptor2d_HCurve2d)& C2D, const Standard_Real First, const Standard_Real Last, const Standard_Real TolU, const Standard_Real TolV, const GeomAbs_Shape Continuity, const Standard_Integer MaxDegree, const Standard_Integer MaxSegments);
|
||||
Standard_EXPORT Approx_Curve2d(const Handle(Adaptor2d_Curve2d)& C2D, const Standard_Real First, const Standard_Real Last, const Standard_Real TolU, const Standard_Real TolV, const GeomAbs_Shape Continuity, const Standard_Integer MaxDegree, const Standard_Integer MaxSegments);
|
||||
|
||||
Standard_EXPORT Standard_Boolean IsDone() const;
|
||||
|
||||
|
@@ -14,13 +14,13 @@
|
||||
// Alternatively, this file may be used under the terms of Open CASCADE
|
||||
// commercial license or contractual agreement.
|
||||
|
||||
#include <Approx_Curve3d.hxx>
|
||||
|
||||
#include <Adaptor3d_HCurve.hxx>
|
||||
#include <Adaptor3d_Curve.hxx>
|
||||
#include <AdvApprox_ApproxAFunction.hxx>
|
||||
#include <AdvApprox_PrefAndRec.hxx>
|
||||
#include <Approx_Curve3d.hxx>
|
||||
#include <Geom_BSplineCurve.hxx>
|
||||
#include <GeomAdaptor_HCurve.hxx>
|
||||
#include <GeomAdaptor_Curve.hxx>
|
||||
#include <gp_Pnt.hxx>
|
||||
#include <gp_Vec.hxx>
|
||||
#include <Precision.hxx>
|
||||
@@ -36,7 +36,7 @@
|
||||
class Approx_Curve3d_Eval : public AdvApprox_EvaluatorFunction
|
||||
{
|
||||
public:
|
||||
Approx_Curve3d_Eval (const Handle(Adaptor3d_HCurve)& theFunc,
|
||||
Approx_Curve3d_Eval (const Handle(Adaptor3d_Curve)& theFunc,
|
||||
Standard_Real First, Standard_Real Last)
|
||||
: fonct(theFunc) { StartEndSav[0] = First; StartEndSav[1] = Last; }
|
||||
|
||||
@@ -48,7 +48,7 @@ class Approx_Curve3d_Eval : public AdvApprox_EvaluatorFunction
|
||||
Standard_Integer *ErrorCode);
|
||||
|
||||
private:
|
||||
Handle(Adaptor3d_HCurve) fonct;
|
||||
Handle(Adaptor3d_Curve) fonct;
|
||||
Standard_Real StartEndSav[2];
|
||||
};
|
||||
|
||||
@@ -103,7 +103,7 @@ void Approx_Curve3d_Eval::Evaluate (Standard_Integer *Dimension,
|
||||
}
|
||||
}
|
||||
|
||||
Approx_Curve3d::Approx_Curve3d(const Handle(Adaptor3d_HCurve)& Curve,
|
||||
Approx_Curve3d::Approx_Curve3d(const Handle(Adaptor3d_Curve)& Curve,
|
||||
const Standard_Real Tol3d,
|
||||
const GeomAbs_Shape Order,
|
||||
const Standard_Integer MaxSegments,
|
||||
|
@@ -17,15 +17,10 @@
|
||||
#ifndef _Approx_Curve3d_HeaderFile
|
||||
#define _Approx_Curve3d_HeaderFile
|
||||
|
||||
#include <Standard.hxx>
|
||||
#include <Standard_DefineAlloc.hxx>
|
||||
#include <Standard_Handle.hxx>
|
||||
|
||||
#include <Adaptor3d_Curve.hxx>
|
||||
#include <GeomAbs_Shape.hxx>
|
||||
#include <Geom_BSplineCurve.hxx>
|
||||
|
||||
class Adaptor3d_HCurve;
|
||||
|
||||
class Approx_Curve3d
|
||||
{
|
||||
public:
|
||||
@@ -35,7 +30,7 @@ public:
|
||||
|
||||
//! Approximation of a curve with respect of the
|
||||
//! required tolerance Tol3D.
|
||||
Standard_EXPORT Approx_Curve3d(const Handle(Adaptor3d_HCurve)& Curve, const Standard_Real Tol3d, const GeomAbs_Shape Order, const Standard_Integer MaxSegments, const Standard_Integer MaxDegree);
|
||||
Standard_EXPORT Approx_Curve3d(const Handle(Adaptor3d_Curve)& Curve, const Standard_Real Tol3d, const GeomAbs_Shape Order, const Standard_Integer MaxSegments, const Standard_Integer MaxDegree);
|
||||
|
||||
Standard_EXPORT Handle(Geom_BSplineCurve) Curve() const;
|
||||
|
||||
|
@@ -14,24 +14,26 @@
|
||||
// Alternatively, this file may be used under the terms of Open CASCADE
|
||||
// commercial license or contractual agreement.
|
||||
|
||||
#include <Approx_CurveOnSurface.hxx>
|
||||
|
||||
#include <Adaptor2d_HCurve2d.hxx>
|
||||
#include <Adaptor2d_Curve2d.hxx>
|
||||
#include <Adaptor3d_CurveOnSurface.hxx>
|
||||
#include <Adaptor3d_HCurve.hxx>
|
||||
#include <Adaptor3d_HCurveOnSurface.hxx>
|
||||
#include <Adaptor3d_HSurface.hxx>
|
||||
#include <Adaptor3d_Curve.hxx>
|
||||
#include <Adaptor3d_CurveOnSurface.hxx>
|
||||
#include <Adaptor3d_Surface.hxx>
|
||||
#include <AdvApprox_ApproxAFunction.hxx>
|
||||
#include <AdvApprox_DichoCutting.hxx>
|
||||
#include <AdvApprox_PrefAndRec.hxx>
|
||||
#include <Approx_CurveOnSurface.hxx>
|
||||
#include <Geom2d_BezierCurve.hxx>
|
||||
#include <Geom2d_BSplineCurve.hxx>
|
||||
#include <Geom2dAdaptor_HCurve.hxx>
|
||||
#include <Geom2dAdaptor_Curve.hxx>
|
||||
#include <Geom_BSplineCurve.hxx>
|
||||
#include <Geom_RectangularTrimmedSurface.hxx>
|
||||
#include <Geom_TrimmedCurve.hxx>
|
||||
#include <GeomAdaptor_HCurve.hxx>
|
||||
#include <GeomAdaptor_HSurface.hxx>
|
||||
#include <GeomAdaptor_Curve.hxx>
|
||||
#include <GeomAdaptor_Surface.hxx>
|
||||
#include <GeomConvert.hxx>
|
||||
#include <gp_Lin2d.hxx>
|
||||
#include <gp_Pnt.hxx>
|
||||
#include <gp_Vec.hxx>
|
||||
#include <Precision.hxx>
|
||||
@@ -49,8 +51,8 @@
|
||||
class Approx_CurveOnSurface_Eval : public AdvApprox_EvaluatorFunction
|
||||
{
|
||||
public:
|
||||
Approx_CurveOnSurface_Eval (const Handle(Adaptor3d_HCurve)& theFunc,
|
||||
const Handle(Adaptor2d_HCurve2d)& theFunc2d,
|
||||
Approx_CurveOnSurface_Eval (const Handle(Adaptor3d_Curve)& theFunc,
|
||||
const Handle(Adaptor2d_Curve2d)& theFunc2d,
|
||||
Standard_Real First, Standard_Real Last)
|
||||
: fonct(theFunc), fonct2d(theFunc2d)
|
||||
{ StartEndSav[0] = First; StartEndSav[1] = Last; }
|
||||
@@ -63,8 +65,8 @@ class Approx_CurveOnSurface_Eval : public AdvApprox_EvaluatorFunction
|
||||
Standard_Integer *ErrorCode);
|
||||
|
||||
private:
|
||||
Handle(Adaptor3d_HCurve) fonct;
|
||||
Handle(Adaptor2d_HCurve2d) fonct2d;
|
||||
Handle(Adaptor3d_Curve) fonct;
|
||||
Handle(Adaptor2d_Curve2d) fonct2d;
|
||||
Standard_Real StartEndSav[2];
|
||||
};
|
||||
|
||||
@@ -150,7 +152,7 @@ void Approx_CurveOnSurface_Eval::Evaluate (Standard_Integer *Dimension,
|
||||
class Approx_CurveOnSurface_Eval3d : public AdvApprox_EvaluatorFunction
|
||||
{
|
||||
public:
|
||||
Approx_CurveOnSurface_Eval3d (const Handle(Adaptor3d_HCurve)& theFunc,
|
||||
Approx_CurveOnSurface_Eval3d (const Handle(Adaptor3d_Curve)& theFunc,
|
||||
Standard_Real First, Standard_Real Last)
|
||||
: fonct(theFunc) { StartEndSav[0] = First; StartEndSav[1] = Last; }
|
||||
|
||||
@@ -162,7 +164,7 @@ class Approx_CurveOnSurface_Eval3d : public AdvApprox_EvaluatorFunction
|
||||
Standard_Integer *ErrorCode);
|
||||
|
||||
private:
|
||||
Handle(Adaptor3d_HCurve) fonct;
|
||||
Handle(Adaptor3d_Curve) fonct;
|
||||
Standard_Real StartEndSav[2];
|
||||
};
|
||||
|
||||
@@ -231,7 +233,7 @@ void Approx_CurveOnSurface_Eval3d::Evaluate (Standard_Integer *Dimension,
|
||||
class Approx_CurveOnSurface_Eval2d : public AdvApprox_EvaluatorFunction
|
||||
{
|
||||
public:
|
||||
Approx_CurveOnSurface_Eval2d (const Handle(Adaptor2d_HCurve2d)& theFunc2d,
|
||||
Approx_CurveOnSurface_Eval2d (const Handle(Adaptor2d_Curve2d)& theFunc2d,
|
||||
Standard_Real First, Standard_Real Last)
|
||||
: fonct2d(theFunc2d) { StartEndSav[0] = First; StartEndSav[1] = Last; }
|
||||
|
||||
@@ -243,7 +245,7 @@ class Approx_CurveOnSurface_Eval2d : public AdvApprox_EvaluatorFunction
|
||||
Standard_Integer *ErrorCode);
|
||||
|
||||
private:
|
||||
Handle(Adaptor2d_HCurve2d) fonct2d;
|
||||
Handle(Adaptor2d_Curve2d) fonct2d;
|
||||
Standard_Real StartEndSav[2];
|
||||
};
|
||||
|
||||
@@ -307,8 +309,8 @@ void Approx_CurveOnSurface_Eval2d::Evaluate (Standard_Integer *Dimension,
|
||||
//function : Approx_CurveOnSurface
|
||||
//purpose : Constructor
|
||||
//=============================================================================
|
||||
Approx_CurveOnSurface::Approx_CurveOnSurface(const Handle(Adaptor2d_HCurve2d)& C2D,
|
||||
const Handle(Adaptor3d_HSurface)& Surf,
|
||||
Approx_CurveOnSurface::Approx_CurveOnSurface(const Handle(Adaptor2d_Curve2d)& C2D,
|
||||
const Handle(Adaptor3d_Surface)& Surf,
|
||||
const Standard_Real First,
|
||||
const Standard_Real Last,
|
||||
const Standard_Real Tol,
|
||||
@@ -335,8 +337,8 @@ void Approx_CurveOnSurface_Eval2d::Evaluate (Standard_Integer *Dimension,
|
||||
//function : Approx_CurveOnSurface
|
||||
//purpose : Constructor
|
||||
//=============================================================================
|
||||
Approx_CurveOnSurface::Approx_CurveOnSurface(const Handle(Adaptor2d_HCurve2d)& theC2D,
|
||||
const Handle(Adaptor3d_HSurface)& theSurf,
|
||||
Approx_CurveOnSurface::Approx_CurveOnSurface(const Handle(Adaptor2d_Curve2d)& theC2D,
|
||||
const Handle(Adaptor3d_Surface)& theSurf,
|
||||
const Standard_Real theFirst,
|
||||
const Standard_Real theLast,
|
||||
const Standard_Real theTol)
|
||||
@@ -371,7 +373,7 @@ void Approx_CurveOnSurface::Perform(const Standard_Integer theMaxSegments,
|
||||
|
||||
if(theOnly3d && theOnly2d) throw Standard_ConstructionError();
|
||||
|
||||
Handle( Adaptor2d_HCurve2d ) TrimmedC2D = myC2D->Trim( myFirst, myLast, Precision::PConfusion() );
|
||||
Handle( Adaptor2d_Curve2d ) TrimmedC2D = myC2D->Trim( myFirst, myLast, Precision::PConfusion() );
|
||||
|
||||
Standard_Boolean isU, isForward;
|
||||
Standard_Real aParam;
|
||||
@@ -385,9 +387,7 @@ void Approx_CurveOnSurface::Perform(const Standard_Integer theMaxSegments,
|
||||
}
|
||||
}
|
||||
|
||||
Adaptor3d_CurveOnSurface COnS( TrimmedC2D, mySurf );
|
||||
Handle(Adaptor3d_HCurveOnSurface) HCOnS = new Adaptor3d_HCurveOnSurface();
|
||||
HCOnS->Set(COnS);
|
||||
Handle(Adaptor3d_CurveOnSurface) HCOnS = new Adaptor3d_CurveOnSurface (TrimmedC2D, mySurf);
|
||||
|
||||
Standard_Integer Num1DSS = 0, Num2DSS=0, Num3DSS=0;
|
||||
Handle(TColStd_HArray1OfReal) OneDTol;
|
||||
@@ -510,7 +510,7 @@ void Approx_CurveOnSurface::Perform(const Standard_Integer theMaxSegments,
|
||||
//function : isIsoLine
|
||||
//purpose :
|
||||
//=============================================================================
|
||||
Standard_Boolean Approx_CurveOnSurface::isIsoLine(const Handle(Adaptor2d_HCurve2d) theC2D,
|
||||
Standard_Boolean Approx_CurveOnSurface::isIsoLine(const Handle(Adaptor2d_Curve2d) theC2D,
|
||||
Standard_Boolean& theIsU,
|
||||
Standard_Real& theParam,
|
||||
Standard_Boolean& theIsForward) const
|
||||
@@ -592,13 +592,13 @@ Standard_Boolean Approx_CurveOnSurface::isIsoLine(const Handle(Adaptor2d_HCurve2
|
||||
//function : buildC3dOnIsoLine
|
||||
//purpose :
|
||||
//=============================================================================
|
||||
Standard_Boolean Approx_CurveOnSurface::buildC3dOnIsoLine(const Handle(Adaptor2d_HCurve2d) theC2D,
|
||||
Standard_Boolean Approx_CurveOnSurface::buildC3dOnIsoLine(const Handle(Adaptor2d_Curve2d) theC2D,
|
||||
const Standard_Boolean theIsU,
|
||||
const Standard_Real theParam,
|
||||
const Standard_Boolean theIsForward)
|
||||
{
|
||||
// Convert adapter to the appropriate type.
|
||||
Handle(GeomAdaptor_HSurface) aGeomAdapter = Handle(GeomAdaptor_HSurface)::DownCast(mySurf);
|
||||
Handle(GeomAdaptor_Surface) aGeomAdapter = Handle(GeomAdaptor_Surface)::DownCast(mySurf);
|
||||
if (aGeomAdapter.IsNull())
|
||||
return Standard_False;
|
||||
|
||||
@@ -606,7 +606,7 @@ Standard_Boolean Approx_CurveOnSurface::buildC3dOnIsoLine(const Handle(Adaptor2d
|
||||
return Standard_False;
|
||||
|
||||
// Extract isoline
|
||||
Handle(Geom_Surface) aSurf = aGeomAdapter->ChangeSurface().Surface();
|
||||
Handle(Geom_Surface) aSurf = aGeomAdapter->Surface();
|
||||
Handle(Geom_Curve) aC3d;
|
||||
|
||||
gp_Pnt2d aF2d = theC2D->Value(theC2D->FirstParameter());
|
||||
|
@@ -17,21 +17,12 @@
|
||||
#ifndef _Approx_CurveOnSurface_HeaderFile
|
||||
#define _Approx_CurveOnSurface_HeaderFile
|
||||
|
||||
#include <Standard.hxx>
|
||||
#include <Standard_DefineAlloc.hxx>
|
||||
#include <Standard_Handle.hxx>
|
||||
|
||||
#include <Standard_Boolean.hxx>
|
||||
#include <Standard_Real.hxx>
|
||||
#include <Adaptor2d_Curve2d.hxx>
|
||||
#include <Adaptor3d_Surface.hxx>
|
||||
#include <GeomAbs_Shape.hxx>
|
||||
#include <Standard_Integer.hxx>
|
||||
class Geom2d_BSplineCurve;
|
||||
class Geom_BSplineCurve;
|
||||
class Standard_OutOfRange;
|
||||
class Standard_ConstructionError;
|
||||
class Adaptor2d_HCurve2d;
|
||||
class Adaptor3d_HSurface;
|
||||
|
||||
class Geom_BSplineCurve;
|
||||
class Geom2d_BSplineCurve;
|
||||
|
||||
//! Approximation of curve on surface
|
||||
class Approx_CurveOnSurface
|
||||
@@ -42,7 +33,7 @@ public:
|
||||
|
||||
//! This constructor calls perform method. This constructor is deprecated.
|
||||
Standard_DEPRECATED("This constructor is deprecated. Use other constructor and perform method instead.")
|
||||
Standard_EXPORT Approx_CurveOnSurface(const Handle(Adaptor2d_HCurve2d)& C2D, const Handle(Adaptor3d_HSurface)& Surf, const Standard_Real First, const Standard_Real Last, const Standard_Real Tol, const GeomAbs_Shape Continuity, const Standard_Integer MaxDegree, const Standard_Integer MaxSegments, const Standard_Boolean Only3d = Standard_False, const Standard_Boolean Only2d = Standard_False);
|
||||
Standard_EXPORT Approx_CurveOnSurface(const Handle(Adaptor2d_Curve2d)& C2D, const Handle(Adaptor3d_Surface)& Surf, const Standard_Real First, const Standard_Real Last, const Standard_Real Tol, const GeomAbs_Shape Continuity, const Standard_Integer MaxDegree, const Standard_Integer MaxSegments, const Standard_Boolean Only3d = Standard_False, const Standard_Boolean Only2d = Standard_False);
|
||||
|
||||
//! This constructor does not call perform method.
|
||||
//! @param theC2D 2D Curve to be approximated in 3D.
|
||||
@@ -50,8 +41,8 @@ public:
|
||||
//! @param theFirst First parameter of resulting curve.
|
||||
//! @param theFirst Last parameter of resulting curve.
|
||||
//! @param theTol Computation tolerance.
|
||||
Standard_EXPORT Approx_CurveOnSurface(const Handle(Adaptor2d_HCurve2d)& theC2D,
|
||||
const Handle(Adaptor3d_HSurface)& theSurf,
|
||||
Standard_EXPORT Approx_CurveOnSurface(const Handle(Adaptor2d_Curve2d)& theC2D,
|
||||
const Handle(Adaptor3d_Surface)& theSurf,
|
||||
const Standard_Real theFirst,
|
||||
const Standard_Real theLast,
|
||||
const Standard_Real theTol);
|
||||
@@ -94,7 +85,7 @@ protected:
|
||||
//! @param theParam Line parameter.
|
||||
//! @param theIsForward Flag indicating forward parameterization on a isoline.
|
||||
//! @return Standard_True when 2d curve is a line and Standard_False otherwise.
|
||||
Standard_Boolean isIsoLine(const Handle(Adaptor2d_HCurve2d) theC2D,
|
||||
Standard_Boolean isIsoLine(const Handle(Adaptor2d_Curve2d) theC2D,
|
||||
Standard_Boolean& theIsU,
|
||||
Standard_Real& theParam,
|
||||
Standard_Boolean& theIsForward) const;
|
||||
@@ -106,7 +97,7 @@ protected:
|
||||
//! @param theParam Line parameter.
|
||||
//! @param theIsForward Flag indicating forward parameterization on a isoline.
|
||||
//! @return Standard_True when 3d curve is built and Standard_False otherwise.
|
||||
Standard_Boolean buildC3dOnIsoLine(const Handle(Adaptor2d_HCurve2d) theC2D,
|
||||
Standard_Boolean buildC3dOnIsoLine(const Handle(Adaptor2d_Curve2d) theC2D,
|
||||
const Standard_Boolean theIsU,
|
||||
const Standard_Real theParam,
|
||||
const Standard_Boolean theIsForward);
|
||||
@@ -117,10 +108,10 @@ private:
|
||||
private:
|
||||
|
||||
//! Input curve.
|
||||
const Handle(Adaptor2d_HCurve2d) myC2D;
|
||||
const Handle(Adaptor2d_Curve2d) myC2D;
|
||||
|
||||
//! Input surface.
|
||||
const Handle(Adaptor3d_HSurface) mySurf;
|
||||
const Handle(Adaptor3d_Surface) mySurf;
|
||||
|
||||
//! First parameter of the result.
|
||||
const Standard_Real myFirst;
|
||||
@@ -139,13 +130,6 @@ private:
|
||||
Standard_Real myError2dU;
|
||||
Standard_Real myError2dV;
|
||||
|
||||
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#endif // _Approx_CurveOnSurface_HeaderFile
|
||||
|
@@ -14,23 +14,22 @@
|
||||
// Alternatively, this file may be used under the terms of Open CASCADE
|
||||
// commercial license or contractual agreement.
|
||||
|
||||
#include <Approx_CurvilinearParameter.hxx>
|
||||
|
||||
#include <Adaptor2d_HCurve2d.hxx>
|
||||
#include <Adaptor2d_Curve2d.hxx>
|
||||
#include <Adaptor3d_Curve.hxx>
|
||||
#include <Adaptor3d_CurveOnSurface.hxx>
|
||||
#include <Adaptor3d_HCurve.hxx>
|
||||
#include <Adaptor3d_HSurface.hxx>
|
||||
#include <Adaptor3d_Surface.hxx>
|
||||
#include <AdvApprox_ApproxAFunction.hxx>
|
||||
#include <AdvApprox_PrefAndRec.hxx>
|
||||
#include <Approx_CurvilinearParameter.hxx>
|
||||
#include <Approx_CurvlinFunc.hxx>
|
||||
#include <CPnts_AbscissaPoint.hxx>
|
||||
#include <GCPnts_AbscissaPoint.hxx>
|
||||
#include <Geom2d_BSplineCurve.hxx>
|
||||
#include <Geom_BSplineCurve.hxx>
|
||||
#include <GeomAbs_Shape.hxx>
|
||||
#include <GeomAdaptor_HCurve.hxx>
|
||||
#include <GeomAdaptor_HSurface.hxx>
|
||||
#include <GeomAdaptor_Curve.hxx>
|
||||
#include <GeomAdaptor_Surface.hxx>
|
||||
#include <gp_Pnt.hxx>
|
||||
#include <gp_Pnt2d.hxx>
|
||||
#include <gp_Vec.hxx>
|
||||
@@ -128,7 +127,7 @@ void Approx_CurvilinearParameter_EvalCurv::Evaluate (Standard_Integer * Dimensio
|
||||
Result[i] = Res(i);
|
||||
}
|
||||
|
||||
Approx_CurvilinearParameter::Approx_CurvilinearParameter(const Handle(Adaptor3d_HCurve)& C3D,
|
||||
Approx_CurvilinearParameter::Approx_CurvilinearParameter(const Handle(Adaptor3d_Curve)& C3D,
|
||||
const Standard_Real Tol,
|
||||
const GeomAbs_Shape Order,
|
||||
const Standard_Integer MaxDegree,
|
||||
@@ -267,8 +266,8 @@ void Approx_CurvilinearParameter_EvalCurvOnSurf::Evaluate (Standard_Integer * Di
|
||||
Result[i] = Res(i);
|
||||
}
|
||||
|
||||
Approx_CurvilinearParameter::Approx_CurvilinearParameter(const Handle(Adaptor2d_HCurve2d)& C2D,
|
||||
const Handle(Adaptor3d_HSurface)& Surf,
|
||||
Approx_CurvilinearParameter::Approx_CurvilinearParameter(const Handle(Adaptor2d_Curve2d)& C2D,
|
||||
const Handle(Adaptor3d_Surface)& Surf,
|
||||
const Standard_Real Tol,
|
||||
const GeomAbs_Shape Order,
|
||||
const Standard_Integer MaxDegree,
|
||||
@@ -428,10 +427,10 @@ void Approx_CurvilinearParameter_EvalCurvOn2Surf::Evaluate (Standard_Integer * D
|
||||
Result[i] = Res(i);
|
||||
}
|
||||
|
||||
Approx_CurvilinearParameter::Approx_CurvilinearParameter(const Handle(Adaptor2d_HCurve2d)& C2D1,
|
||||
const Handle(Adaptor3d_HSurface)& Surf1,
|
||||
const Handle(Adaptor2d_HCurve2d)& C2D2,
|
||||
const Handle(Adaptor3d_HSurface)& Surf2,
|
||||
Approx_CurvilinearParameter::Approx_CurvilinearParameter(const Handle(Adaptor2d_Curve2d)& C2D1,
|
||||
const Handle(Adaptor3d_Surface)& Surf1,
|
||||
const Handle(Adaptor2d_Curve2d)& C2D2,
|
||||
const Handle(Adaptor3d_Surface)& Surf2,
|
||||
const Standard_Real Tol,
|
||||
const GeomAbs_Shape Order,
|
||||
const Standard_Integer MaxDegree,
|
||||
@@ -643,8 +642,8 @@ void Approx_CurvilinearParameter::Dump(Standard_OStream& o) const
|
||||
//purpose :
|
||||
//=======================================================================
|
||||
|
||||
void Approx_CurvilinearParameter::ToleranceComputation(const Handle(Adaptor2d_HCurve2d) &C2D,
|
||||
const Handle(Adaptor3d_HSurface) &S,
|
||||
void Approx_CurvilinearParameter::ToleranceComputation(const Handle(Adaptor2d_Curve2d) &C2D,
|
||||
const Handle(Adaptor3d_Surface) &S,
|
||||
const Standard_Integer MaxNumber,
|
||||
const Standard_Real Tol,
|
||||
Standard_Real &TolV, Standard_Real &TolW)
|
||||
|
@@ -17,23 +17,10 @@
|
||||
#ifndef _Approx_CurvilinearParameter_HeaderFile
|
||||
#define _Approx_CurvilinearParameter_HeaderFile
|
||||
|
||||
#include <Standard.hxx>
|
||||
#include <Standard_DefineAlloc.hxx>
|
||||
#include <Standard_Handle.hxx>
|
||||
|
||||
#include <Standard_Integer.hxx>
|
||||
#include <Standard_Boolean.hxx>
|
||||
#include <Standard_Real.hxx>
|
||||
#include <Adaptor2d_Curve2d.hxx>
|
||||
#include <Adaptor3d_Surface.hxx>
|
||||
#include <GeomAbs_Shape.hxx>
|
||||
#include <Standard_OStream.hxx>
|
||||
class Geom_BSplineCurve;
|
||||
class Geom2d_BSplineCurve;
|
||||
class Standard_OutOfRange;
|
||||
class Standard_ConstructionError;
|
||||
class Adaptor3d_HCurve;
|
||||
class Adaptor2d_HCurve2d;
|
||||
class Adaptor3d_HSurface;
|
||||
|
||||
|
||||
//! Approximation of a Curve to make its parameter be its
|
||||
//! curvilinear abscissa
|
||||
@@ -50,13 +37,13 @@ public:
|
||||
|
||||
|
||||
//! case of a free 3D curve
|
||||
Standard_EXPORT Approx_CurvilinearParameter(const Handle(Adaptor3d_HCurve)& C3D, const Standard_Real Tol, const GeomAbs_Shape Order, const Standard_Integer MaxDegree, const Standard_Integer MaxSegments);
|
||||
Standard_EXPORT Approx_CurvilinearParameter(const Handle(Adaptor3d_Curve)& C3D, const Standard_Real Tol, const GeomAbs_Shape Order, const Standard_Integer MaxDegree, const Standard_Integer MaxSegments);
|
||||
|
||||
//! case of a curve on one surface
|
||||
Standard_EXPORT Approx_CurvilinearParameter(const Handle(Adaptor2d_HCurve2d)& C2D, const Handle(Adaptor3d_HSurface)& Surf, const Standard_Real Tol, const GeomAbs_Shape Order, const Standard_Integer MaxDegree, const Standard_Integer MaxSegments);
|
||||
Standard_EXPORT Approx_CurvilinearParameter(const Handle(Adaptor2d_Curve2d)& C2D, const Handle(Adaptor3d_Surface)& Surf, const Standard_Real Tol, const GeomAbs_Shape Order, const Standard_Integer MaxDegree, const Standard_Integer MaxSegments);
|
||||
|
||||
//! case of a curve on two surfaces
|
||||
Standard_EXPORT Approx_CurvilinearParameter(const Handle(Adaptor2d_HCurve2d)& C2D1, const Handle(Adaptor3d_HSurface)& Surf1, const Handle(Adaptor2d_HCurve2d)& C2D2, const Handle(Adaptor3d_HSurface)& Surf2, const Standard_Real Tol, const GeomAbs_Shape Order, const Standard_Integer MaxDegree, const Standard_Integer MaxSegments);
|
||||
Standard_EXPORT Approx_CurvilinearParameter(const Handle(Adaptor2d_Curve2d)& C2D1, const Handle(Adaptor3d_Surface)& Surf1, const Handle(Adaptor2d_Curve2d)& C2D2, const Handle(Adaptor3d_Surface)& Surf2, const Standard_Real Tol, const GeomAbs_Shape Order, const Standard_Integer MaxDegree, const Standard_Integer MaxSegments);
|
||||
|
||||
Standard_EXPORT Standard_Boolean IsDone() const;
|
||||
|
||||
@@ -97,7 +84,7 @@ protected:
|
||||
private:
|
||||
|
||||
|
||||
Standard_EXPORT static void ToleranceComputation (const Handle(Adaptor2d_HCurve2d)& C2D, const Handle(Adaptor3d_HSurface)& S, const Standard_Integer MaxNumber, const Standard_Real Tol, Standard_Real& TolV, Standard_Real& TolW);
|
||||
Standard_EXPORT static void ToleranceComputation (const Handle(Adaptor2d_Curve2d)& C2D, const Handle(Adaptor3d_Surface)& S, const Standard_Integer MaxNumber, const Standard_Real Tol, Standard_Real& TolV, Standard_Real& TolW);
|
||||
|
||||
|
||||
Standard_Integer myCase;
|
||||
|
@@ -14,14 +14,12 @@
|
||||
// Alternatively, this file may be used under the terms of Open CASCADE
|
||||
// commercial license or contractual agreement.
|
||||
|
||||
#include <Approx_CurvlinFunc.hxx>
|
||||
|
||||
#include <Adaptor2d_HCurve2d.hxx>
|
||||
#include <Adaptor2d_Curve2d.hxx>
|
||||
#include <Adaptor3d_Curve.hxx>
|
||||
#include <Adaptor3d_CurveOnSurface.hxx>
|
||||
#include <Adaptor3d_HCurve.hxx>
|
||||
#include <Adaptor3d_HCurveOnSurface.hxx>
|
||||
#include <Adaptor3d_HSurface.hxx>
|
||||
#include <Approx_CurvlinFunc.hxx>
|
||||
#include <Adaptor3d_Surface.hxx>
|
||||
#include <GCPnts_AbscissaPoint.hxx>
|
||||
#include <GeomLib.hxx>
|
||||
#include <Precision.hxx>
|
||||
@@ -114,7 +112,7 @@ static void findfourpoints(const Standard_Real ,
|
||||
}
|
||||
*/
|
||||
|
||||
Approx_CurvlinFunc::Approx_CurvlinFunc(const Handle(Adaptor3d_HCurve)& C, const Standard_Real Tol) : myC3D(C),
|
||||
Approx_CurvlinFunc::Approx_CurvlinFunc(const Handle(Adaptor3d_Curve)& C, const Standard_Real Tol) : myC3D(C),
|
||||
myCase(1),
|
||||
myFirstS(0),
|
||||
myLastS(1),
|
||||
@@ -125,7 +123,7 @@ Approx_CurvlinFunc::Approx_CurvlinFunc(const Handle(Adaptor3d_HCurve)& C, const
|
||||
Init();
|
||||
}
|
||||
|
||||
Approx_CurvlinFunc::Approx_CurvlinFunc(const Handle(Adaptor2d_HCurve2d)& C2D, const Handle(Adaptor3d_HSurface)& S, const Standard_Real Tol) :
|
||||
Approx_CurvlinFunc::Approx_CurvlinFunc(const Handle(Adaptor2d_Curve2d)& C2D, const Handle(Adaptor3d_Surface)& S, const Standard_Real Tol) :
|
||||
myC2D1(C2D),
|
||||
mySurf1(S),
|
||||
myCase(2),
|
||||
@@ -138,7 +136,7 @@ Approx_CurvlinFunc::Approx_CurvlinFunc(const Handle(Adaptor2d_HCurve2d)& C2D, co
|
||||
Init();
|
||||
}
|
||||
|
||||
Approx_CurvlinFunc::Approx_CurvlinFunc(const Handle(Adaptor2d_HCurve2d)& C2D1, const Handle(Adaptor2d_HCurve2d)& C2D2, const Handle(Adaptor3d_HSurface)& S1, const Handle(Adaptor3d_HSurface)& S2, const Standard_Real Tol) :
|
||||
Approx_CurvlinFunc::Approx_CurvlinFunc(const Handle(Adaptor2d_Curve2d)& C2D1, const Handle(Adaptor2d_Curve2d)& C2D2, const Handle(Adaptor3d_Surface)& S1, const Handle(Adaptor3d_Surface)& S2, const Standard_Real Tol) :
|
||||
myC2D1(C2D1),
|
||||
myC2D2(C2D2),
|
||||
mySurf1(S1),
|
||||
@@ -159,7 +157,7 @@ void Approx_CurvlinFunc::Init()
|
||||
|
||||
switch(myCase) {
|
||||
case 1:
|
||||
Init(myC3D->GetCurve(), mySi_1, myUi_1);
|
||||
Init (*myC3D, mySi_1, myUi_1);
|
||||
myFirstU1 = myC3D->FirstParameter();
|
||||
myLastU1 = myC3D->LastParameter();
|
||||
myFirstU2 = myLastU2 = 0;
|
||||
@@ -330,45 +328,45 @@ void Approx_CurvlinFunc::Trim(const Standard_Real First, const Standard_Real Las
|
||||
|
||||
Standard_Real FirstU, LastU;
|
||||
Adaptor3d_CurveOnSurface CurOnSur;
|
||||
Handle(Adaptor3d_HCurve) HCurOnSur;
|
||||
Handle(Adaptor3d_CurveOnSurface) HCurOnSur;
|
||||
|
||||
switch(myCase) {
|
||||
case 1:
|
||||
myC3D = myC3D->Trim(myFirstU1, myLastU1, Tol);
|
||||
FirstU = GetUParameter(myC3D->GetCurve(), First, 1);
|
||||
LastU = GetUParameter(myC3D->GetCurve(), Last, 1);
|
||||
FirstU = GetUParameter(*myC3D, First, 1);
|
||||
LastU = GetUParameter (*myC3D, Last, 1);
|
||||
myC3D = myC3D->Trim(FirstU, LastU, Tol);
|
||||
break;
|
||||
case 3:
|
||||
CurOnSur.Load(myC2D2);
|
||||
CurOnSur.Load(mySurf2);
|
||||
HCurOnSur = CurOnSur.Trim(myFirstU2, myLastU2, Tol);
|
||||
myC2D2 = ((Adaptor3d_CurveOnSurface *)(&(HCurOnSur->Curve())))->GetCurve();
|
||||
mySurf2 = ((Adaptor3d_CurveOnSurface *)(&(HCurOnSur->Curve())))->GetSurface();
|
||||
HCurOnSur = Handle(Adaptor3d_CurveOnSurface)::DownCast (CurOnSur.Trim(myFirstU2, myLastU2, Tol));
|
||||
myC2D2 = HCurOnSur->GetCurve();
|
||||
mySurf2 = HCurOnSur->GetSurface();
|
||||
CurOnSur.Load(myC2D2);
|
||||
CurOnSur.Load(mySurf2);
|
||||
|
||||
FirstU = GetUParameter(CurOnSur, First, 1);
|
||||
LastU = GetUParameter(CurOnSur, Last, 1);
|
||||
HCurOnSur = CurOnSur.Trim(FirstU, LastU, Tol);
|
||||
myC2D2 = ((Adaptor3d_CurveOnSurface *)(&(HCurOnSur->Curve())))->GetCurve();
|
||||
mySurf2 = ((Adaptor3d_CurveOnSurface *)(&(HCurOnSur->Curve())))->GetSurface();
|
||||
HCurOnSur = Handle(Adaptor3d_CurveOnSurface)::DownCast (CurOnSur.Trim(FirstU, LastU, Tol));
|
||||
myC2D2 = HCurOnSur->GetCurve();
|
||||
mySurf2 = HCurOnSur->GetSurface();
|
||||
|
||||
Standard_FALLTHROUGH
|
||||
case 2:
|
||||
CurOnSur.Load(myC2D1);
|
||||
CurOnSur.Load(mySurf1);
|
||||
HCurOnSur = CurOnSur.Trim(myFirstU1, myLastU1, Tol);
|
||||
myC2D1 = ((Adaptor3d_CurveOnSurface *)(&(HCurOnSur->Curve())))->GetCurve();
|
||||
mySurf1 = ((Adaptor3d_CurveOnSurface *)(&(HCurOnSur->Curve())))->GetSurface();
|
||||
HCurOnSur = Handle(Adaptor3d_CurveOnSurface)::DownCast (CurOnSur.Trim(myFirstU1, myLastU1, Tol));
|
||||
myC2D1 = HCurOnSur->GetCurve();
|
||||
mySurf1 = HCurOnSur->GetSurface();
|
||||
CurOnSur.Load(myC2D1);
|
||||
CurOnSur.Load(mySurf1);
|
||||
|
||||
FirstU = GetUParameter(CurOnSur, First, 1);
|
||||
LastU = GetUParameter(CurOnSur, Last, 1);
|
||||
HCurOnSur = CurOnSur.Trim(FirstU, LastU, Tol);
|
||||
myC2D1 = ((Adaptor3d_CurveOnSurface *)(&(HCurOnSur->Curve())))->GetCurve();
|
||||
mySurf1 = ((Adaptor3d_CurveOnSurface *)(&(HCurOnSur->Curve())))->GetSurface();
|
||||
HCurOnSur = Handle(Adaptor3d_CurveOnSurface)::DownCast (CurOnSur.Trim(FirstU, LastU, Tol));
|
||||
myC2D1 = HCurOnSur->GetCurve();
|
||||
mySurf1 = HCurOnSur->GetSurface();
|
||||
}
|
||||
myFirstS = First;
|
||||
myLastS = Last;
|
||||
@@ -383,7 +381,7 @@ void Approx_CurvlinFunc::Length()
|
||||
case 1:
|
||||
FirstU = myC3D->FirstParameter();
|
||||
LastU = myC3D->LastParameter();
|
||||
myLength = Length(myC3D->GetCurve(), FirstU, LastU);
|
||||
myLength = Length (*myC3D, FirstU, LastU);
|
||||
myLength1 = myLength2 = 0;
|
||||
break;
|
||||
case 2:
|
||||
@@ -431,7 +429,7 @@ Standard_Real Approx_CurvlinFunc::GetSParameter(const Standard_Real U) const
|
||||
|
||||
switch (myCase) {
|
||||
case 1:
|
||||
S = GetSParameter(myC3D->GetCurve(), U, myLength);
|
||||
S = GetSParameter (*myC3D, U, myLength);
|
||||
break;
|
||||
case 2:
|
||||
CurOnSur.Load(myC2D1);
|
||||
@@ -534,7 +532,7 @@ Standard_Boolean Approx_CurvlinFunc::EvalCase1(const Standard_Real S, const Stan
|
||||
gp_Vec dC_dU, dC_dS, d2C_dU2, d2C_dS2;
|
||||
Standard_Real U, Mag, dU_dS, d2U_dS2;
|
||||
|
||||
U = GetUParameter(myC3D->GetCurve(), S, 1);
|
||||
U = GetUParameter (*myC3D, S, 1);
|
||||
|
||||
switch(Order) {
|
||||
|
||||
@@ -610,8 +608,8 @@ Standard_Boolean Approx_CurvlinFunc::EvalCase3(const Standard_Real S, const Stan
|
||||
|
||||
Standard_Boolean Approx_CurvlinFunc::EvalCurOnSur(const Standard_Real S, const Standard_Integer Order, TColStd_Array1OfReal& Result, const Standard_Integer NumberOfCurve) const
|
||||
{
|
||||
Handle(Adaptor2d_HCurve2d) Cur2D;
|
||||
Handle(Adaptor3d_HSurface) Surf;
|
||||
Handle(Adaptor2d_Curve2d) Cur2D;
|
||||
Handle(Adaptor3d_Surface) Surf;
|
||||
Standard_Real U=0, Length=0;
|
||||
|
||||
if (NumberOfCurve == 1) {
|
||||
|
@@ -17,26 +17,13 @@
|
||||
#ifndef _Approx_CurvlinFunc_HeaderFile
|
||||
#define _Approx_CurvlinFunc_HeaderFile
|
||||
|
||||
#include <Standard.hxx>
|
||||
#include <Standard_Type.hxx>
|
||||
|
||||
#include <Standard_Integer.hxx>
|
||||
#include <Standard_Real.hxx>
|
||||
#include <TColStd_HArray1OfReal.hxx>
|
||||
#include <Standard_Transient.hxx>
|
||||
#include <Adaptor2d_Curve2d.hxx>
|
||||
#include <Adaptor3d_Curve.hxx>
|
||||
#include <Adaptor3d_Surface.hxx>
|
||||
#include <GeomAbs_Shape.hxx>
|
||||
#include <TColStd_Array1OfReal.hxx>
|
||||
#include <Standard_Boolean.hxx>
|
||||
class Adaptor3d_HCurve;
|
||||
class Adaptor2d_HCurve2d;
|
||||
class Adaptor3d_HSurface;
|
||||
class Standard_OutOfRange;
|
||||
class Standard_DomainError;
|
||||
class Standard_ConstructionError;
|
||||
class Adaptor3d_Curve;
|
||||
#include <TColStd_HArray1OfReal.hxx>
|
||||
|
||||
|
||||
class Approx_CurvlinFunc;
|
||||
DEFINE_STANDARD_HANDLE(Approx_CurvlinFunc, Standard_Transient)
|
||||
|
||||
//! defines an abstract curve with
|
||||
@@ -47,11 +34,11 @@ class Approx_CurvlinFunc : public Standard_Transient
|
||||
public:
|
||||
|
||||
|
||||
Standard_EXPORT Approx_CurvlinFunc(const Handle(Adaptor3d_HCurve)& C, const Standard_Real Tol);
|
||||
Standard_EXPORT Approx_CurvlinFunc(const Handle(Adaptor3d_Curve)& C, const Standard_Real Tol);
|
||||
|
||||
Standard_EXPORT Approx_CurvlinFunc(const Handle(Adaptor2d_HCurve2d)& C2D, const Handle(Adaptor3d_HSurface)& S, const Standard_Real Tol);
|
||||
Standard_EXPORT Approx_CurvlinFunc(const Handle(Adaptor2d_Curve2d)& C2D, const Handle(Adaptor3d_Surface)& S, const Standard_Real Tol);
|
||||
|
||||
Standard_EXPORT Approx_CurvlinFunc(const Handle(Adaptor2d_HCurve2d)& C2D1, const Handle(Adaptor2d_HCurve2d)& C2D2, const Handle(Adaptor3d_HSurface)& S1, const Handle(Adaptor3d_HSurface)& S2, const Standard_Real Tol);
|
||||
Standard_EXPORT Approx_CurvlinFunc(const Handle(Adaptor2d_Curve2d)& C2D1, const Handle(Adaptor2d_Curve2d)& C2D2, const Handle(Adaptor3d_Surface)& S1, const Handle(Adaptor3d_Surface)& S2, const Standard_Real Tol);
|
||||
|
||||
//! ---Purpose Update the tolerance to used
|
||||
Standard_EXPORT void SetTol (const Standard_Real Tol);
|
||||
@@ -121,11 +108,11 @@ private:
|
||||
|
||||
Standard_EXPORT Standard_Boolean EvalCurOnSur (const Standard_Real S, const Standard_Integer Order, TColStd_Array1OfReal& Result, const Standard_Integer NumberOfCurve) const;
|
||||
|
||||
Handle(Adaptor3d_HCurve) myC3D;
|
||||
Handle(Adaptor2d_HCurve2d) myC2D1;
|
||||
Handle(Adaptor2d_HCurve2d) myC2D2;
|
||||
Handle(Adaptor3d_HSurface) mySurf1;
|
||||
Handle(Adaptor3d_HSurface) mySurf2;
|
||||
Handle(Adaptor3d_Curve) myC3D;
|
||||
Handle(Adaptor2d_Curve2d) myC2D1;
|
||||
Handle(Adaptor2d_Curve2d) myC2D2;
|
||||
Handle(Adaptor3d_Surface) mySurf1;
|
||||
Handle(Adaptor3d_Surface) mySurf2;
|
||||
Standard_Integer myCase;
|
||||
Standard_Real myFirstS;
|
||||
Standard_Real myLastS;
|
||||
|
@@ -17,7 +17,7 @@
|
||||
#ifndef Approx_HArray1OfAdHSurface_HeaderFile
|
||||
#define Approx_HArray1OfAdHSurface_HeaderFile
|
||||
|
||||
#include <Adaptor3d_HSurface.hxx>
|
||||
#include <Adaptor3d_Surface.hxx>
|
||||
#include <Approx_Array1OfAdHSurface.hxx>
|
||||
#include <NCollection_DefineHArray1.hxx>
|
||||
|
||||
|
@@ -14,24 +14,24 @@
|
||||
// Alternatively, this file may be used under the terms of Open CASCADE
|
||||
// commercial license or contractual agreement.
|
||||
|
||||
|
||||
#include <Adaptor2d_HCurve2d.hxx>
|
||||
#include <Adaptor3d_CurveOnSurface.hxx>
|
||||
#include <Adaptor3d_HCurve.hxx>
|
||||
#include <Adaptor3d_HSurface.hxx>
|
||||
#include <AdvApprox_ApproxAFunction.hxx>
|
||||
#include <Approx_SameParameter.hxx>
|
||||
|
||||
#include <Adaptor2d_Curve2d.hxx>
|
||||
#include <Adaptor3d_CurveOnSurface.hxx>
|
||||
#include <Adaptor3d_Curve.hxx>
|
||||
#include <Adaptor3d_Surface.hxx>
|
||||
#include <AdvApprox_ApproxAFunction.hxx>
|
||||
#include <BSplCLib.hxx>
|
||||
#include <Extrema_ExtPC.hxx>
|
||||
#include <Extrema_LocateExtPC.hxx>
|
||||
#include <Geom2d_BSplineCurve.hxx>
|
||||
#include <Geom2d_Curve.hxx>
|
||||
#include <Geom2dAdaptor_Curve.hxx>
|
||||
#include <Geom2dAdaptor_HCurve.hxx>
|
||||
#include <Geom2dAdaptor_Curve.hxx>
|
||||
#include <Geom_Curve.hxx>
|
||||
#include <Geom_Surface.hxx>
|
||||
#include <GeomAdaptor_HCurve.hxx>
|
||||
#include <GeomAdaptor_HSurface.hxx>
|
||||
#include <GeomAdaptor_Curve.hxx>
|
||||
#include <GeomAdaptor_Surface.hxx>
|
||||
#include <GeomLib_MakeCurvefromApprox.hxx>
|
||||
#include <Precision.hxx>
|
||||
#include <Standard_ConstructionError.hxx>
|
||||
@@ -48,7 +48,7 @@ class Approx_SameParameter_Evaluator : public AdvApprox_EvaluatorFunction
|
||||
public:
|
||||
Approx_SameParameter_Evaluator (const TColStd_Array1OfReal& theFlatKnots,
|
||||
const TColStd_Array1OfReal& thePoles,
|
||||
const Handle(Adaptor2d_HCurve2d)& theHCurve2d)
|
||||
const Handle(Adaptor2d_Curve2d)& theHCurve2d)
|
||||
: FlatKnots(theFlatKnots),
|
||||
Poles(thePoles),
|
||||
HCurve2d(theHCurve2d) {}
|
||||
@@ -63,7 +63,7 @@ public:
|
||||
private:
|
||||
const TColStd_Array1OfReal& FlatKnots;
|
||||
const TColStd_Array1OfReal& Poles;
|
||||
Handle(Adaptor2d_HCurve2d) HCurve2d;
|
||||
Handle(Adaptor2d_Curve2d) HCurve2d;
|
||||
};
|
||||
|
||||
//=======================================================================
|
||||
@@ -162,7 +162,7 @@ static void ProjectPointOnCurve(const Standard_Real InitValue,
|
||||
//function : ComputeTolReached
|
||||
//purpose :
|
||||
//=======================================================================
|
||||
static Standard_Real ComputeTolReached(const Handle(Adaptor3d_HCurve)& c3d,
|
||||
static Standard_Real ComputeTolReached(const Handle(Adaptor3d_Curve)& c3d,
|
||||
const Adaptor3d_CurveOnSurface& cons,
|
||||
const Standard_Integer nbp)
|
||||
{
|
||||
@@ -199,7 +199,7 @@ static Standard_Boolean Check(const TColStd_Array1OfReal& FlatKnots,
|
||||
const TColStd_Array1OfReal& Poles,
|
||||
const Standard_Integer nbp,
|
||||
const Standard_Real *pc3d,
|
||||
const Handle(Adaptor3d_HCurve)& c3d,
|
||||
const Handle(Adaptor3d_Curve)& c3d,
|
||||
const Adaptor3d_CurveOnSurface& cons,
|
||||
Standard_Real& tol,
|
||||
const Standard_Real oldtol)
|
||||
@@ -276,9 +276,9 @@ Approx_SameParameter::Approx_SameParameter(const Handle(Geom_Curve)& C3D,
|
||||
mySameParameter(Standard_True),
|
||||
myDone(Standard_False)
|
||||
{
|
||||
myHCurve2d = new Geom2dAdaptor_HCurve(C2D);
|
||||
myC3d = new GeomAdaptor_HCurve(C3D);
|
||||
mySurf = new GeomAdaptor_HSurface(S);
|
||||
myHCurve2d = new Geom2dAdaptor_Curve(C2D);
|
||||
myC3d = new GeomAdaptor_Curve(C3D);
|
||||
mySurf = new GeomAdaptor_Surface(S);
|
||||
Build(Tol);
|
||||
}
|
||||
|
||||
@@ -286,9 +286,9 @@ Approx_SameParameter::Approx_SameParameter(const Handle(Geom_Curve)& C3D,
|
||||
//function : Approx_SameParameter
|
||||
//purpose :
|
||||
//=======================================================================
|
||||
Approx_SameParameter::Approx_SameParameter(const Handle(Adaptor3d_HCurve)& C3D,
|
||||
Approx_SameParameter::Approx_SameParameter(const Handle(Adaptor3d_Curve)& C3D,
|
||||
const Handle(Geom2d_Curve)& C2D,
|
||||
const Handle(Adaptor3d_HSurface)& S,
|
||||
const Handle(Adaptor3d_Surface)& S,
|
||||
const Standard_Real Tol)
|
||||
: myDeltaMin(Precision::PConfusion()),
|
||||
mySameParameter(Standard_True),
|
||||
@@ -296,7 +296,7 @@ Approx_SameParameter::Approx_SameParameter(const Handle(Adaptor3d_HCurve)& C3D
|
||||
{
|
||||
myC3d = C3D;
|
||||
mySurf = S;
|
||||
myHCurve2d = new Geom2dAdaptor_HCurve(C2D);
|
||||
myHCurve2d = new Geom2dAdaptor_Curve(C2D);
|
||||
Build(Tol);
|
||||
}
|
||||
|
||||
@@ -304,9 +304,9 @@ Approx_SameParameter::Approx_SameParameter(const Handle(Adaptor3d_HCurve)& C3D
|
||||
//function : Approx_SameParameter
|
||||
//purpose :
|
||||
//=======================================================================
|
||||
Approx_SameParameter::Approx_SameParameter(const Handle(Adaptor3d_HCurve)& C3D,
|
||||
const Handle(Adaptor2d_HCurve2d)& C2D,
|
||||
const Handle(Adaptor3d_HSurface)& S,
|
||||
Approx_SameParameter::Approx_SameParameter(const Handle(Adaptor3d_Curve)& C3D,
|
||||
const Handle(Adaptor2d_Curve2d)& C2D,
|
||||
const Handle(Adaptor3d_Surface)& S,
|
||||
const Standard_Real Tol)
|
||||
: myDeltaMin(Precision::PConfusion()),
|
||||
mySameParameter(Standard_True),
|
||||
@@ -374,7 +374,7 @@ void Approx_SameParameter::Build(const Standard_Real Tolerance)
|
||||
if(aData.myNbPnt < aNbPnt )
|
||||
{
|
||||
myTolReached = ComputeTolReached(myC3d,aData.myCOnS, 2 * myNbSamples);
|
||||
myCurve2d = Geom2dAdaptor::MakeCurve(myHCurve2d->Curve2d());
|
||||
myCurve2d = Geom2dAdaptor::MakeCurve (*myHCurve2d);
|
||||
myDone = Standard_False;
|
||||
return;
|
||||
}
|
||||
@@ -445,7 +445,7 @@ void Approx_SameParameter::Build(const Standard_Real Tolerance)
|
||||
Adaptor3d_CurveOnSurface ACS = aData.myCOnS;
|
||||
GeomLib_MakeCurvefromApprox aCurveBuilder(anApproximator);
|
||||
Handle(Geom2d_BSplineCurve) aC2d = aCurveBuilder.Curve2dFromTwo1d(1,2);
|
||||
Handle(Adaptor2d_HCurve2d) aHCurve2d = new Geom2dAdaptor_HCurve(aC2d);
|
||||
Handle(Adaptor2d_Curve2d) aHCurve2d = new Geom2dAdaptor_Curve(aC2d);
|
||||
aData.myCOnS.Load(aHCurve2d);
|
||||
myTolReached = ComputeTolReached(myC3d,aData.myCOnS, 2 * myNbSamples);
|
||||
|
||||
@@ -482,7 +482,7 @@ void Approx_SameParameter::Build(const Standard_Real Tolerance)
|
||||
// Original 2d curve.
|
||||
aData.myCOnS.Load(myHCurve2d);
|
||||
myTolReached = ComputeTolReached(myC3d,aData.myCOnS, 2 * myNbSamples);
|
||||
myCurve2d = Geom2dAdaptor::MakeCurve(myHCurve2d->Curve2d());
|
||||
myCurve2d = Geom2dAdaptor::MakeCurve (*myHCurve2d);
|
||||
|
||||
// Approximation curve.
|
||||
Standard_Integer num_knots = aData.myNbPnt + 7;
|
||||
@@ -512,7 +512,7 @@ void Approx_SameParameter::Build(const Standard_Real Tolerance)
|
||||
|
||||
GeomLib_MakeCurvefromApprox aCurveBuilder(anApproximator);
|
||||
Handle(Geom2d_BSplineCurve) aC2d = aCurveBuilder.Curve2dFromTwo1d(1,2);
|
||||
Handle(Adaptor2d_HCurve2d) aHCurve2d = new Geom2dAdaptor_HCurve(aC2d);
|
||||
Handle(Adaptor2d_Curve2d) aHCurve2d = new Geom2dAdaptor_Curve(aC2d);
|
||||
aData.myCOnS.Load(aHCurve2d);
|
||||
|
||||
Standard_Real anApproxTol = ComputeTolReached(myC3d,aData.myCOnS,2 * myNbSamples);
|
||||
@@ -650,7 +650,7 @@ Standard_Boolean Approx_SameParameter::CheckSameParameter(Approx_SameParameter_D
|
||||
dmax2 = Max(dmax2, dist2);
|
||||
|
||||
Extrema_LocateExtPC Projector;
|
||||
Projector.Initialize(myC3d->Curve(), theData.myC3dPF, theData.myC3dPL, theData.myTol);
|
||||
Projector.Initialize (*myC3d, theData.myC3dPF, theData.myC3dPL, theData.myTol);
|
||||
|
||||
Standard_Integer count = 1;
|
||||
Standard_Real previousp = theData.myC3dPF, initp=0, curp;
|
||||
@@ -688,7 +688,7 @@ Standard_Boolean Approx_SameParameter::CheckSameParameter(Approx_SameParameter_D
|
||||
}
|
||||
else
|
||||
{
|
||||
ProjectPointOnCurve(initp,Pcons,theData.myTol,30,myC3d->Curve(),isProjOk,curp);
|
||||
ProjectPointOnCurve(initp,Pcons,theData.myTol,30, *myC3d,isProjOk,curp);
|
||||
}
|
||||
isProjOk = isProjOk && // Good projection.
|
||||
curp > previousp + myDeltaMin && // Point is separated from previous.
|
||||
@@ -702,7 +702,7 @@ Standard_Boolean Approx_SameParameter::CheckSameParameter(Approx_SameParameter_D
|
||||
}
|
||||
|
||||
// Whole parameter space search using general extrema.
|
||||
Extrema_ExtPC PR(Pcons,myC3d->Curve(),theData.myC3dPF, theData.myC3dPL,theData.myTol);
|
||||
Extrema_ExtPC PR(Pcons, *myC3d, theData.myC3dPF, theData.myC3dPL, theData.myTol);
|
||||
if (!PR.IsDone() || PR.NbExt() == 0) // Lazy evaluation is used.
|
||||
continue;
|
||||
|
||||
@@ -830,7 +830,7 @@ Standard_Boolean Approx_SameParameter::IncreaseNbPoles(const TColStd_Array1OfRea
|
||||
Standard_Real &theBestSqTol) const
|
||||
{
|
||||
Extrema_LocateExtPC Projector;
|
||||
Projector.Initialize(myC3d->Curve(), myC3d->FirstParameter(), myC3d->LastParameter(), theData.myTol);
|
||||
Projector.Initialize (*myC3d, myC3d->FirstParameter(), myC3d->LastParameter(), theData.myTol);
|
||||
Standard_Real curp = 0.0;
|
||||
Standard_Boolean projok = Standard_False;
|
||||
|
||||
@@ -869,7 +869,7 @@ Standard_Boolean Approx_SameParameter::IncreaseNbPoles(const TColStd_Array1OfRea
|
||||
}
|
||||
else
|
||||
{
|
||||
ProjectPointOnCurve(uc3d,Pcons,theData.myTol,30,myC3d->Curve(),projok,curp);
|
||||
ProjectPointOnCurve(uc3d,Pcons,theData.myTol,30, *myC3d,projok,curp);
|
||||
}
|
||||
if(projok)
|
||||
{
|
||||
@@ -917,7 +917,7 @@ Standard_Boolean Approx_SameParameter::IncreaseNbPoles(const TColStd_Array1OfRea
|
||||
}
|
||||
else
|
||||
{
|
||||
ProjectPointOnCurve(uc3d,Pcons,theData.myTol,30,myC3d->Curve(),projok,curp);
|
||||
ProjectPointOnCurve(uc3d,Pcons,theData.myTol,30, *myC3d,projok,curp);
|
||||
}
|
||||
if(projok)
|
||||
{
|
||||
|
@@ -17,15 +17,9 @@
|
||||
#ifndef _Approx_SameParameter_HeaderFile
|
||||
#define _Approx_SameParameter_HeaderFile
|
||||
|
||||
#include <Standard.hxx>
|
||||
#include <Standard_DefineAlloc.hxx>
|
||||
#include <Standard_Handle.hxx>
|
||||
#include <Adaptor3d_CurveOnSurface.hxx>
|
||||
#include <Standard_Boolean.hxx>
|
||||
#include <Standard_Real.hxx>
|
||||
class Adaptor2d_HCurve2d;
|
||||
class Adaptor3d_HCurve;
|
||||
class Adaptor3d_HSurface;
|
||||
#include <Adaptor3d_Surface.hxx>
|
||||
|
||||
class Geom_Curve;
|
||||
class Geom2d_Curve;
|
||||
class Geom_Surface;
|
||||
@@ -46,15 +40,15 @@ public:
|
||||
const Standard_Real Tol);
|
||||
|
||||
//! Warning: the C3D and C2D must have the same parametric domain.
|
||||
Standard_EXPORT Approx_SameParameter(const Handle(Adaptor3d_HCurve)& C3D,
|
||||
Standard_EXPORT Approx_SameParameter(const Handle(Adaptor3d_Curve)& C3D,
|
||||
const Handle(Geom2d_Curve)& C2D,
|
||||
const Handle(Adaptor3d_HSurface)& S,
|
||||
const Handle(Adaptor3d_Surface)& S,
|
||||
const Standard_Real Tol);
|
||||
|
||||
//! Warning: the C3D and C2D must have the same parametric domain.
|
||||
Standard_EXPORT Approx_SameParameter(const Handle(Adaptor3d_HCurve)& C3D,
|
||||
const Handle(Adaptor2d_HCurve2d)& C2D,
|
||||
const Handle(Adaptor3d_HSurface)& S,
|
||||
Standard_EXPORT Approx_SameParameter(const Handle(Adaptor3d_Curve)& C3D,
|
||||
const Handle(Adaptor2d_Curve2d)& C2D,
|
||||
const Handle(Adaptor3d_Surface)& S,
|
||||
const Standard_Real Tol);
|
||||
|
||||
//!@Returns .false. if calculations failed,
|
||||
@@ -179,9 +173,9 @@ private:
|
||||
Standard_Boolean myDone;
|
||||
Standard_Real myTolReached;
|
||||
Handle(Geom2d_Curve) myCurve2d;
|
||||
Handle(Adaptor2d_HCurve2d) myHCurve2d;
|
||||
Handle(Adaptor3d_HCurve) myC3d;
|
||||
Handle(Adaptor3d_HSurface) mySurf;
|
||||
Handle(Adaptor2d_Curve2d) myHCurve2d;
|
||||
Handle(Adaptor3d_Curve) myC3d;
|
||||
Handle(Adaptor3d_Surface) mySurf;
|
||||
};
|
||||
|
||||
#endif // _Approx_SameParameter_HeaderFile
|
||||
|
Reference in New Issue
Block a user