// File: Extrema_GLocateExtCC2d.gxx // Created: Wed Jul 6 15:53:42 1994 // Author: Laurent PAINNOT // #include Extrema_ELCC2d_hxx #include Extrema_LocECC2d_hxx #include #include #include #include //======================================================================= //function : Extrema_GLocateExtCC2d //purpose : //======================================================================= Extrema_GLocateExtCC2d::Extrema_GLocateExtCC2d (const Curve1& C1, const Curve2& C2, const Standard_Real U0, const Standard_Real V0) { #ifdef DEB GeomAbs_CurveType type1 = Tool1::GetType(C1); GeomAbs_CurveType type2 = Tool2::GetType(C2); #else Tool1::GetType(C1); Tool2::GetType(C2); #endif Standard_Real TolU = Tool1::Resolution(C1, Precision::Confusion()); Standard_Real TolV = Tool2::Resolution(C2, Precision::Confusion()); Extrema_POnCurv2d P1, P2; // Non implemente pour l instant: l appel a Geom2dExtrema_ExtCC. Extrema_LocECC2d Xtrem(C1, C2, U0, V0, TolU, TolV); // Exploitation myDone = Xtrem.IsDone(); if (Xtrem.IsDone()) { mySqDist = Xtrem.SquareDistance(); Xtrem.Point(P1, P2); myPoint1 = P1; myPoint2 = P2; } } //======================================================================= //function : IsDone //purpose : //======================================================================= Standard_Boolean Extrema_GLocateExtCC2d::IsDone () const { return myDone; } //======================================================================= //function : Value //purpose : //======================================================================= Standard_Real Extrema_GLocateExtCC2d::SquareDistance() const { if (!myDone) { StdFail_NotDone::Raise(); } return mySqDist; } //======================================================================= //function : Point //purpose : //======================================================================= void Extrema_GLocateExtCC2d::Point (Extrema_POnCurv2d& P1, Extrema_POnCurv2d& P2) const { if (!myDone) { StdFail_NotDone::Raise(); } P1 = myPoint1; P2 = myPoint2; }