// File: GccAna_Circ2d2TanOn_11.cxx // Created: Thu Jan 2 16:00:53 1992 // Author: Remi GILET // //========================================================================= // Creation d un cercle tangent a deux elements : Droite. + // Cercle. + // Point. + // centre sur un troisieme : Droite. + // Cercle. + //========================================================================= #include #include #include #include #include #include #include //========================================================================= // Creation d un cercle Passant par : 2 points Point1 et Point2. + // Centre sur : 1 cercle OnCirc. + // avec une Tolerance de precision : Tolerance. + // + // On cree L1 la droite des points equidistant de Point1 et Point2. + // On cree alors les solutions cirsol telles que : + // cirsol est l ensemble des cercle ayant pour centre une des inter- + // sections de L1 avec OnCirc et de rayon la distance entre Point1 et + // le point ci dessus calcule. + //========================================================================= GccAna_Circ2d2TanOn:: GccAna_Circ2d2TanOn (const gp_Pnt2d& Point1 , const gp_Pnt2d& Point2 , const gp_Circ2d& OnCirc , const Standard_Real Tolerance ): cirsol(1,2) , qualifier1(1,2) , qualifier2(1,2) , TheSame1(1,2) , TheSame2(1,2) , pnttg1sol(1,2) , pnttg2sol(1,2) , pntcen(1,2) , par1sol(1,2) , par2sol(1,2) , pararg1(1,2) , pararg2(1,2) , parcen3(1,2) { TheSame1.Init(0); TheSame2.Init(0); WellDone = Standard_False; NbrSol = 0; gp_Dir2d dirx(1.,0.); Standard_Real Tol = Abs(Tolerance); Standard_Real dist = Point1.Distance(Point2); Standard_Real dp1cen = Point1.Distance(OnCirc.Location()); Standard_Real dp2cen = Point2.Distance(OnCirc.Location()); Standard_Real R = OnCirc.Radius(); gp_Circ2d C1 = OnCirc; if (dist