mirror of
https://git.dev.opencascade.org/repos/occt.git
synced 2025-08-09 13:22:24 +03:00
0022312: Translation of french commentaries in OCCT files
This commit is contained in:
@@ -19,17 +19,15 @@
|
||||
#include <GccAna_Circ2dBisec.hxx>
|
||||
|
||||
//=========================================================================
|
||||
// Cercles tangents a deux cercles C1 et C2 et centres sur une droite. +
|
||||
// Nous commencons par distinguer les differents cas limites que nous +
|
||||
// allons traiter separement. +
|
||||
// Pour le cas general: +
|
||||
// Circles tangent to two circles C1 and C2 and centered on a straight line. +
|
||||
// We start by distinguishing various boundary cases that will be processed separately. +
|
||||
// In the general case: +
|
||||
// ==================== +
|
||||
// Nous calculons les bissectrices aux deux cercles qui nous donnent +
|
||||
// l ensemble des lieux possibles des centres de tous les cercles +
|
||||
// tangents a C1 et C2. +
|
||||
// Nous intersectons ces bissectrices avec la droite OnLine ce qui nous +
|
||||
// donne les points parmis lesquels nous allons choisir les solutions. +
|
||||
// Les choix s effectuent a partir des Qualifieurs qualifiant C1 et C2. +
|
||||
// We calculate bissectrices to two circles that give us +
|
||||
// all possible locations of centers of all circles tangent to C1 and C2. +
|
||||
// We intersect these bissectrices with straight line which gives us +
|
||||
// points among which we are going to find solutions. +
|
||||
// The choices are made basing on Qualifiers of C1 and C2. +
|
||||
//=========================================================================
|
||||
|
||||
GccAna_Circ2d2TanOn::
|
||||
@@ -86,7 +84,7 @@ GccAna_Circ2d2TanOn::
|
||||
Standard_Real d4 = dist2-R2;
|
||||
|
||||
//=========================================================================
|
||||
// Traitement des cas limites. +
|
||||
// Processing of boundary cases. +
|
||||
//=========================================================================
|
||||
|
||||
if (Abs(d3-d4)<Tol &&
|
||||
@@ -172,7 +170,7 @@ GccAna_Circ2d2TanOn::
|
||||
}
|
||||
|
||||
//=========================================================================
|
||||
// Cas general. +
|
||||
// General case. +
|
||||
//=========================================================================
|
||||
|
||||
if (!WellDone) {
|
||||
|
@@ -17,18 +17,17 @@
|
||||
#include <GccEnt_BadQualifier.hxx>
|
||||
|
||||
//=========================================================================
|
||||
// Creation d un cercle tangent a un Cercle C1 et a une Droite L2. +
|
||||
// centre sur une Droite. +
|
||||
// Nous commencons par distinguer les differents cas limites que nous +
|
||||
// allons traiter separement. +
|
||||
// Pour le cas general: +
|
||||
// Creation of a circle tangent to Circle C1 and a straight line L2. +
|
||||
// centered on a straight line. +
|
||||
// We start by making difference between cases that we are going to +
|
||||
// proceess separately. +
|
||||
// In general case: +
|
||||
// ==================== +
|
||||
// Nous calculons les bissectrices a C1 et L2 qui nous donnent +
|
||||
// l ensemble des lieux possibles des centres de tous les cercles +
|
||||
// tangents a C1 et L2. +
|
||||
// Nous intersectons ces bissectrices avec la droite OnLine ce qui nous +
|
||||
// donne les points parmis lesquels nous allons choisir les solutions. +
|
||||
// Les choix s effectuent a partir des Qualifieurs qualifiant C1 et L2. +
|
||||
// We calculate bissectrices to C1 and L2 that give us +
|
||||
// all possibles locations of centers of all circles tangent to C1 and L2+ +
|
||||
// We intersect these bissectrices with straight line OnLine which gives +
|
||||
// us points among which we'll choose the solutions. +
|
||||
// The choices are made basing on Qualifiers of C1 and L2. +
|
||||
//=========================================================================
|
||||
|
||||
GccAna_Circ2d2TanOn::
|
||||
@@ -75,7 +74,7 @@ GccAna_Circ2d2TanOn::
|
||||
gp_Dir2d normL2(-dirL2.Y(),dirL2.X());
|
||||
|
||||
//=========================================================================
|
||||
// Traitement des cas limites. +
|
||||
// Processing of limit cases. +
|
||||
//=========================================================================
|
||||
|
||||
Standard_Real distcl = OnLine.Distance(center1);
|
||||
@@ -151,7 +150,7 @@ GccAna_Circ2d2TanOn::
|
||||
}
|
||||
|
||||
//=========================================================================
|
||||
// Cas general. +
|
||||
// General case. +
|
||||
//=========================================================================
|
||||
|
||||
GccAna_CircLin2dBisec Bis(C1,L2);
|
||||
|
@@ -18,18 +18,18 @@
|
||||
#include <GccEnt_BadQualifier.hxx>
|
||||
|
||||
//=========================================================================
|
||||
// Creation d un cercle tangent a une Droite L1 et a un point Point2. +
|
||||
// centre sur un cercle. +
|
||||
// Nous commencons par distinguer les differents cas limites que nous +
|
||||
// allons traiter separement. +
|
||||
// Pour le cas general: +
|
||||
// Creation of a circle tangent to straight line L1 and a point Point2. +
|
||||
// centered on a circle. +
|
||||
// We start by making difference between boundary cases that will be +
|
||||
// processed separately. +
|
||||
// In general case: +
|
||||
// ==================== +
|
||||
// Nous calculons les bissectrices a L1 et Point2 qui nous donnent +
|
||||
// l ensemble des lieux possibles des centres de tous les cercles +
|
||||
// tangents a L1 et Point2. +
|
||||
// Nous intersectons ces bissectrices avec le cerclee OnCirc ce qui nous +
|
||||
// donne les points parmis lesquels nous allons choisir les solutions. +
|
||||
// Les choix s effectuent a partir des Qualifieurs qualifiant L1. +
|
||||
// We calculate bissectrices to L1 and Point2 that give us all +
|
||||
// all possible locations of centers of all circles +
|
||||
// tangent to L1 and Point2. +
|
||||
// We intersect these bissectrices with circle OnCirc which gives us +
|
||||
// points among which we'll choose the solutions. +
|
||||
// The choice is made using Qualifiers of L1. +
|
||||
//=========================================================================
|
||||
|
||||
GccAna_Circ2d2TanOn::
|
||||
@@ -69,7 +69,7 @@
|
||||
gp_Dir2d normL1(-dirL1.Y(),dirL1.X());
|
||||
|
||||
//=========================================================================
|
||||
// Traitement des cas limites. +
|
||||
// Processing of boundary cases. +
|
||||
//=========================================================================
|
||||
|
||||
Standard_Real Ron = OnCirc.Radius();
|
||||
@@ -120,7 +120,7 @@
|
||||
}
|
||||
|
||||
//=========================================================================
|
||||
// Cas general. +
|
||||
// General case. +
|
||||
//=========================================================================
|
||||
|
||||
GccAna_LinPnt2dBisec Bis(L1,Point2);
|
||||
|
@@ -4,11 +4,11 @@
|
||||
// <reg@topsn3>
|
||||
|
||||
//=========================================================================
|
||||
// Creation d un cercle tangent a deux elements : Droite. +
|
||||
// Cercle. +
|
||||
// Creation of a circle tangent to two elements : Straight line. +
|
||||
// Circle. +
|
||||
// Point. +
|
||||
// centre sur un troisieme : Droite. +
|
||||
// Cercle. +
|
||||
// center on a third : Straight line. +
|
||||
// Circle. +
|
||||
//=========================================================================
|
||||
|
||||
#include <GccAna_Circ2d2TanOn.jxx>
|
||||
@@ -21,15 +21,15 @@
|
||||
#include <GccAna_Lin2dBisec.hxx>
|
||||
|
||||
//=========================================================================
|
||||
// Creation d un cercle Passant par : 2 points Point1 et Point2. +
|
||||
// Centre sur : 1 cercle OnCirc. +
|
||||
// avec une Tolerance de precision : Tolerance. +
|
||||
// Creation of a circle passing by : 2 points Point1 and Point2. +
|
||||
// Center on : 1 circle OnCirc. +
|
||||
// with a Tolerance of 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. +
|
||||
// Create L1 the straight line of points equidistant to Point1 and Point2. +
|
||||
// Create then solutions cirsol so that : +
|
||||
// cirsol is the set of circles with center in one of inter- +
|
||||
// sections of L1 with OnCirc and the radius the distance between Point1 and +
|
||||
// the point calculated below. +
|
||||
//=========================================================================
|
||||
|
||||
GccAna_Circ2d2TanOn::
|
||||
|
@@ -2,8 +2,6 @@
|
||||
// Created: Thu Jan 2 15:52:15 1992
|
||||
// Author: Remi GILET
|
||||
// <reg@topsn3>
|
||||
// JCT 06/07/98 cas des droites confondues (PRO14405)
|
||||
// JCT 16/11/98 tri des solutions apres le calcul (PRO16384)
|
||||
|
||||
#include <GccAna_Circ2d2TanOn.jxx>
|
||||
|
||||
@@ -52,7 +50,7 @@ GccAna_Circ2d2TanOn::
|
||||
gp_Dir2d dirx(1.,0.);
|
||||
Standard_Real Tol = Abs(Tolerance);
|
||||
|
||||
// calcul de la (des) bisectrice(s) de L1 et L2
|
||||
// calculation of bisectrices of L1 and L2
|
||||
gp_Lin2d L1(Qualified1.Qualified());
|
||||
gp_Lin2d L2(Qualified2.Qualified());
|
||||
gp_Pnt2d originL1(L1.Location());
|
||||
@@ -62,25 +60,25 @@ GccAna_Circ2d2TanOn::
|
||||
if (Bis.IsDone()) {
|
||||
|
||||
if (Bis.NbSolutions() == 1 || Bis.NbSolutions() == 2) {
|
||||
// si 1 bisectrice, L1 et L2 sont paralleles
|
||||
// si 2 bisectrices, L1 et L2 sont secantes
|
||||
// if 1 bisectrice, L1 and L2 are parallel
|
||||
// if 2 bisectrices, L1 and L2 are intersected
|
||||
|
||||
for (Standard_Integer k = 1 ; k <= Bis.NbSolutions() ; k++) {
|
||||
IntAna2d_AnaIntersection Intp(Bis.ThisSolution(k),OnLine);
|
||||
if (Intp.IsDone()) {
|
||||
WellDone = Standard_True;
|
||||
// pour les cas degeneres, pas de solution acceptable
|
||||
// (OnLine et bisectrice paralleles strictement ou pas)
|
||||
// for degenerated cases, no acceptable solution
|
||||
// (OnLine and bisectrice strictly parallel or not)
|
||||
if (!Intp.IdenticalElements()
|
||||
&& !Intp.ParallelElements()
|
||||
&& !Intp.IsEmpty()) {
|
||||
// au maximum 1 point d'intersection !
|
||||
// at maximum 1 point of intersection !
|
||||
for (Standard_Integer l = 1 ; l <= Intp.NbPoints() ; l++) {
|
||||
gp_Pnt2d pt(Intp.Point(l).Value());
|
||||
gp_Ax2d axe(pt,dirx);
|
||||
Standard_Real Radius = L1.Distance(pt);
|
||||
if (!L1.Contains(pt,Tol) && Radius<1.0/Tol && NbrSol<2) {
|
||||
// solution acceptable : le rayon est correct
|
||||
// acceptable solution : the radius is correct
|
||||
NbrSol++;
|
||||
cirsol(NbrSol) = gp_Circ2d(axe,Radius);
|
||||
}
|
||||
@@ -93,7 +91,7 @@ GccAna_Circ2d2TanOn::
|
||||
|
||||
}
|
||||
|
||||
// tri selon les qualifiers des NbrSol solutions acceptables
|
||||
// parce following the qualifiers NbrSol acceptable solutions
|
||||
|
||||
for (Standard_Integer i=1 ; i <= NbrSol ; i++) {
|
||||
|
||||
@@ -101,7 +99,7 @@ GccAna_Circ2d2TanOn::
|
||||
Standard_Real Radius = cirsol(i).Radius();
|
||||
Standard_Boolean ok = Standard_False;
|
||||
|
||||
// solution Outside ou Enclosed / L1
|
||||
// solution Outside or Enclosed / L1
|
||||
gp_Dir2d dc1(originL1.XY()-pbid.XY());
|
||||
Standard_Real sign1 = dc1.Dot(gp_Dir2d(-L1.Direction().Y(),
|
||||
L1.Direction().X()));
|
||||
@@ -110,7 +108,7 @@ GccAna_Circ2d2TanOn::
|
||||
else ok = (Qualified1.IsUnqualified()
|
||||
|| Qualified1.IsEnclosed());
|
||||
|
||||
// solution Outside ou Enclosed / L2
|
||||
// solution Outside or Enclosed / L2
|
||||
gp_Dir2d dc2(originL2.XY()-pbid.XY());
|
||||
Standard_Real sign2 = dc2.Dot(gp_Dir2d(-L2.Direction().Y(),
|
||||
L2.Direction().X()));
|
||||
@@ -120,7 +118,7 @@ GccAna_Circ2d2TanOn::
|
||||
|| Qualified2.IsEnclosed());
|
||||
|
||||
if (ok) {
|
||||
// solution a garder
|
||||
// solution to be preserved
|
||||
dc1 = gp_Dir2d(sign1*gp_XY(-L1.Direction().Y(),
|
||||
L1.Direction().X()));
|
||||
pnttg1sol(i) = gp_Pnt2d(pbid.XY()+Radius*dc1.XY());
|
||||
@@ -139,7 +137,7 @@ GccAna_Circ2d2TanOn::
|
||||
parcen3(i)=ElCLib::Parameter(OnLine,pntcen(i));
|
||||
}
|
||||
else {
|
||||
// solution a jeter
|
||||
// solution to be rejected
|
||||
if (i==NbrSol) NbrSol--;
|
||||
else {
|
||||
for (Standard_Integer k = i+1 ; k <= NbrSol ; k++) {
|
||||
|
@@ -20,18 +20,18 @@
|
||||
#include <GccEnt_BadQualifier.hxx>
|
||||
|
||||
//=========================================================================
|
||||
// Cercles tangents un cercle C1, passant par un point Point2 et centres +
|
||||
// sur une droite OnLine. +
|
||||
// Nous commencons par distinguer les differents cas limites que nous +
|
||||
// allons traiter separement. +
|
||||
// Pour le cas general: +
|
||||
// Circles tangent to circle C1, passing by point Point2 and centers +
|
||||
// on a straight line OnLine. +
|
||||
// We start by making difference with boundary cases that will be +
|
||||
// processed separately. +
|
||||
// For the general case: +
|
||||
// ==================== +
|
||||
// Nous calculons les bissectrices a C1 et Point2 qui nous donnent +
|
||||
// l ensemble des lieux possibles des centres de tous les cercles +
|
||||
// tangents a C1 et passant par Point2. +
|
||||
// Nous intersectons ces bissectrices avec la droite OnLine ce qui nous +
|
||||
// donne les points parmis lesquels nous allons choisir les solutions. +
|
||||
// Les choix s effectuent a partir des Qualifieurs qualifiant C1 et C2. +
|
||||
// We calculate bissectrices to C1 and Point2 that give us all +
|
||||
// possible locations of centers of all circles +
|
||||
// tangent to C1 and passing by Point2. +
|
||||
// We intersect these bissectrices with the straight line OnLine which +
|
||||
// gives us the points among which we'll choose the solutions. +
|
||||
// The choices are made using Qualifiers of C1 and C2. +
|
||||
//=========================================================================
|
||||
|
||||
GccAna_Circ2d2TanOn::
|
||||
@@ -70,7 +70,7 @@ GccAna_Circ2d2TanOn::
|
||||
gp_Pnt2d center1(C1.Location());
|
||||
|
||||
//=========================================================================
|
||||
// Traitement des cas limites. +
|
||||
// Processing of boundary cases. +
|
||||
//=========================================================================
|
||||
|
||||
Standard_Real dp2l = OnLine.Distance(Point2);
|
||||
@@ -122,7 +122,7 @@ GccAna_Circ2d2TanOn::
|
||||
}
|
||||
|
||||
//=========================================================================
|
||||
// cas general. +
|
||||
// General case. +
|
||||
//=========================================================================
|
||||
|
||||
GccAna_CircPnt2dBisec Bis(C1,Point2);
|
||||
|
@@ -19,21 +19,21 @@
|
||||
#include <GccEnt_BadQualifier.hxx>
|
||||
#include <Precision.hxx>
|
||||
//=========================================================================
|
||||
// Creation d un cercle Tangent a : 1 droite L1. +
|
||||
// Passant par : 1 point Point2. +
|
||||
// Centre sur : 1 droite OnLine. +
|
||||
// avec une Tolerance de precision : Tolerance. +
|
||||
// Creation of a circle Tangent to : 1 straight line L1. +
|
||||
// Passing by : 1 point Point2. +
|
||||
// Centered on : 1 straight line OnLine. +
|
||||
// with a Tolerance of precision : Tolerance. +
|
||||
// +
|
||||
// Nous commencons par distinguer les differents cas limites que nous +
|
||||
// allons traiter separement. +
|
||||
// Pour le cas general: +
|
||||
// We start by making difference with various boundary cases that will be +
|
||||
// processed separately. +
|
||||
// For the general case: +
|
||||
// ==================== +
|
||||
// Nous calculons les bissectrices a L1 et Point2 qui nous donnent +
|
||||
// l ensemble des lieux possibles des centres de tous les cercles +
|
||||
// tangents a L1 et passant par Point2. +
|
||||
// Nous intersectons ces bissectrices avec la droite OnLine ce qui nous +
|
||||
// donne les points parmis lesquels nous allons choisir les solutions. +
|
||||
// Les choix s effectuent a partir des Qualifieurs qualifiant L1. +
|
||||
// We calculate bissectrices to L1 and Point2 that give us +
|
||||
// all possible locations of centers of all circles +
|
||||
// tangent to L1 and passing through Point2. +
|
||||
// We intersect these bissectrices with straight line OnLine which gives us +
|
||||
// the points among which we'll choose the solutions. +
|
||||
// The choices are made basing on Qualifieurs of L1. +
|
||||
//=========================================================================
|
||||
|
||||
GccAna_Circ2d2TanOn::
|
||||
@@ -72,12 +72,12 @@ GccAna_Circ2d2TanOn::
|
||||
gp_Dir2d normal(-dirL1.Y(),dirL1.X());
|
||||
|
||||
//=========================================================================
|
||||
// Traitement des cas limites. +
|
||||
// Processing of boundary cases. +
|
||||
//=========================================================================
|
||||
|
||||
if (dirL1.IsEqual(OnLine.Direction(),Precision::Confusion()) &&
|
||||
OnLine.Distance(originL1)<Precision::Confusion()) {
|
||||
// POP : l2s 2 droites sont identiques : pas de Sol
|
||||
// POP : l2s 2 straight line are identic : no Sol
|
||||
NbrSol = 0;
|
||||
return ;
|
||||
}
|
||||
@@ -128,7 +128,7 @@ GccAna_Circ2d2TanOn::
|
||||
}
|
||||
|
||||
//=========================================================================
|
||||
// cas general. +
|
||||
// General case. +
|
||||
//=========================================================================
|
||||
|
||||
GccAna_LinPnt2dBisec Bis(L1,Point2);
|
||||
|
@@ -12,15 +12,15 @@
|
||||
#include <IntAna2d_IntPoint.hxx>
|
||||
|
||||
//=========================================================================
|
||||
// Creation d un cercle Passant par : 2 points Point1 et Point2. +
|
||||
// Centre sur : 1 droite OnLine. +
|
||||
// avec une Tolerance de precision : Tolerance. +
|
||||
// Creation of a circle passing by : 2 points Point1 and Point2. +
|
||||
// Centered on : 1 straight line OnLine. +
|
||||
// with a Tolerance of precision : Tolerance. +
|
||||
// +
|
||||
// On cree L1 la droite des points equidistant de Point1 et Point2. +
|
||||
// On cree alors la solutions cirsol telle que : +
|
||||
// cirsol est l ensemble des cercle ayant pour centre l intersections +
|
||||
// de L1 avec OnLine et de rayon la distance entre Point1 et le point +
|
||||
// ci dessus calcule. +
|
||||
// Create L1 straight line of points equidistant from Point1 and Point2. +
|
||||
// Then create solutions cirsol such as : +
|
||||
// cirsol is all circle with center at the intersections of +
|
||||
// L1 with OnLine and the radius the distance between Point1 and the point +
|
||||
// calculated above. +
|
||||
//=========================================================================
|
||||
|
||||
GccAna_Circ2d2TanOn::
|
||||
|
@@ -19,18 +19,17 @@
|
||||
#include <GccEnt_BadQualifier.hxx>
|
||||
|
||||
//=========================================================================
|
||||
// Creation d un cercle tangent a deux cercle C1 et C2. +
|
||||
// centre sur un cercle. +
|
||||
// Nous commencons par distinguer les differents cas limites que nous +
|
||||
// allons traiter separement. +
|
||||
// Pour le cas general: +
|
||||
// Creation of a circle tangent to two circles C1 and C2. +
|
||||
// centered on a circle. +
|
||||
// We start with distinguishing various boundary cases that will be +
|
||||
// processed separately. +
|
||||
// In the general case: +
|
||||
// ==================== +
|
||||
// Nous calculons les bissectrices a C1 et C2 qui nous donnent +
|
||||
// l ensemble des lieux possibles des centres de tous les cercles +
|
||||
// tangents aC1 et C2. +
|
||||
// Nous intersectons ces bissectrices avec le cercle OnCirc ce qui nous +
|
||||
// donne les points parmis lesquels nous allons choisir les solutions. +
|
||||
// Les choix s effectuent a partir des Qualifieurs qualifiant C1 et C2. +
|
||||
// We calculate bissectrices to C1 and C2 that give us all +
|
||||
// possible locations of centers of all circles tangent to C1 and C2. +
|
||||
// We intersect these bissectrices with circle OnCirc which gives us +
|
||||
// points among which we choose the solutions. +
|
||||
// The choice is made basing in Qualifiers of C1 and C2. +
|
||||
//=========================================================================
|
||||
|
||||
GccAna_Circ2d2TanOn::
|
||||
@@ -80,7 +79,7 @@ GccAna_Circ2d2TanOn::
|
||||
Standard_Real R2 = C2.Radius();
|
||||
|
||||
//=========================================================================
|
||||
// Traitement des cas limites. +
|
||||
// Processing of boundary cases. +
|
||||
//=========================================================================
|
||||
|
||||
Standard_Integer nbsol1 = 1;
|
||||
@@ -178,7 +177,7 @@ GccAna_Circ2d2TanOn::
|
||||
}
|
||||
|
||||
//=========================================================================
|
||||
// Cas general. +
|
||||
// General case. +
|
||||
//=========================================================================
|
||||
|
||||
GccAna_Circ2dBisec Bis(C1,C2);
|
||||
|
@@ -58,7 +58,7 @@ GccAna_Circ2d2TanOn::
|
||||
gp_Dir2d normL2(-dirL2.Y(),dirL2.X());
|
||||
|
||||
//=========================================================================
|
||||
// Traitement des cas limites. +
|
||||
// Processing of boundary cases. +
|
||||
//=========================================================================
|
||||
|
||||
Standard_Real Tol = Abs(Tolerance);
|
||||
@@ -143,7 +143,7 @@ GccAna_Circ2d2TanOn::
|
||||
}
|
||||
|
||||
//=========================================================================
|
||||
// Cas general. +
|
||||
// General case. +
|
||||
//=========================================================================
|
||||
|
||||
GccAna_CircLin2dBisec Bis(C1,L2);
|
||||
|
@@ -4,11 +4,11 @@
|
||||
// <reg@topsn3>
|
||||
|
||||
//=========================================================================
|
||||
// Creation d un cercle tangent a deux elements : Droite. +
|
||||
// Cercle. +
|
||||
// Creation of a circle tangent to two elements : Straight line. +
|
||||
// Circle. +
|
||||
// Point. +
|
||||
// centre sur un troisieme : Droite. +
|
||||
// Cercle. +
|
||||
// center on a third : Straight line. +
|
||||
// Circle. +
|
||||
//=========================================================================
|
||||
|
||||
#include <GccAna_Circ2d2TanOn.jxx>
|
||||
@@ -64,7 +64,7 @@ GccAna_Circ2d2TanOn::
|
||||
gp_Pnt2d center1(C1.Location());
|
||||
|
||||
//=========================================================================
|
||||
// Traitement des cas limites. +
|
||||
// Processing of boundary cases. +
|
||||
//=========================================================================
|
||||
|
||||
Standard_Integer nbsol1 = 1;
|
||||
@@ -140,7 +140,7 @@ GccAna_Circ2d2TanOn::
|
||||
}
|
||||
|
||||
//=========================================================================
|
||||
// cas general. +
|
||||
// General case. +
|
||||
//=========================================================================
|
||||
|
||||
GccAna_CircPnt2dBisec Bis(C1,Point2);
|
||||
@@ -196,7 +196,7 @@ GccAna_Circ2d2TanOn::
|
||||
if (ok) {
|
||||
for (Standard_Integer k = 1 ; k <= nbsol ; k++) {
|
||||
|
||||
// pop : protection contre le cas center1 == Center
|
||||
// pop : protection against case center1 == Center
|
||||
if (center1.IsEqual(Center,Precision::Confusion())) {
|
||||
continue;
|
||||
}
|
||||
|
@@ -1,12 +1,6 @@
|
||||
// File GccAna_Circ2d2TanRad.cxx, REG 08/07/91
|
||||
// Modified: Thu Dec 5 09:46:23 1996
|
||||
// by: Joelle CHAUVET
|
||||
// Indice de boucle pour par1sol,par2sol,pararg1,pararg2
|
||||
// (PRO6126)
|
||||
// Modified: Mon May 11 10:42:16 1998
|
||||
// Author: Joelle CHAUVET
|
||||
// Permutation pnttg1sol<->pnttg2sol oubliee dans certains cas
|
||||
// (CTS20080)
|
||||
|
||||
|
||||
|
||||
#include <GccAna_Circ2d2TanRad.ixx>
|
||||
|
||||
@@ -22,19 +16,19 @@
|
||||
#include <GccEnt_BadQualifier.hxx>
|
||||
#include <Precision.hxx>
|
||||
|
||||
// circulaire tangent a deux cercles et de rayon donne
|
||||
// circular tangent to two cercles and given radius
|
||||
//====================================================
|
||||
//========================================================================
|
||||
// On initialise WellDone a false. +
|
||||
// On recupere le cercle C1 et le cercle C2. +
|
||||
// On sort en erreur dans les cas ou la construction est impossible. +
|
||||
// On distingue les cas limites pour les triater separement. +
|
||||
// On fait la parallele a C1 dans le bon sens. +
|
||||
// On fait la parallele a C2 dans le bon sens. +
|
||||
// On intersecte les paralleles ==> point de centre de la solution. +
|
||||
// On cree la solution qu on ajoute aux solutions deja trouvees. +
|
||||
// On remplit les champs. +
|
||||
//========================================================================
|
||||
//==================================================================
|
||||
// Initialize WellDone to false. +
|
||||
// Return circle C1 and circle C2. +
|
||||
// Leave with error if the construction is impossible. +
|
||||
// Distinguish boundary cases to process them separately. +
|
||||
// Create parallel to C1 in the proper direction. +
|
||||
// Create parallel to C2 in the proper direction. +
|
||||
// Intersect parallels ==> center point of the solution. +
|
||||
// Create the solution to be added to already found solutions. +
|
||||
// Fill the fields. +
|
||||
//==================================================================
|
||||
|
||||
GccAna_Circ2d2TanRad::
|
||||
GccAna_Circ2d2TanRad (const GccEnt_QualifiedCirc& Qualified1 ,
|
||||
@@ -142,7 +136,7 @@ GccAna_Circ2d2TanRad::
|
||||
center1 = center2;
|
||||
center2 = center3;
|
||||
dir1.Reverse();
|
||||
// il faudra permuter les points de tangence resultats
|
||||
// it is necessary to swap the resulting tangency points
|
||||
invers = Standard_True;
|
||||
}
|
||||
if ((R2-Radius>Tol) || (Tol<Radius-R1) || (Tol>R1-dist-R2) ||
|
||||
@@ -210,7 +204,7 @@ GccAna_Circ2d2TanRad::
|
||||
center1 = center2;
|
||||
center2 = center3;
|
||||
dir1.Reverse();
|
||||
// il faudra permuter les points de tangence resultats
|
||||
// it is necessary to swap the resulting tangency points
|
||||
invers = Standard_True;
|
||||
}
|
||||
if ((Radius-R1>Tol)||(dist-R2-R1>Tol)||
|
||||
@@ -270,7 +264,7 @@ GccAna_Circ2d2TanRad::
|
||||
center1 = center2;
|
||||
center2 = center3;
|
||||
dir1.Reverse();
|
||||
// il faudra permuter les points de tangence resultats
|
||||
// it is necessary to swap the resulting tangency points
|
||||
invers = Standard_True;
|
||||
}
|
||||
if ((Radius-R1 > Tol) || (dist-R2-R1 > Tol)) { WellDone = Standard_True; }
|
||||
@@ -372,7 +366,7 @@ GccAna_Circ2d2TanRad::
|
||||
center1 = center2;
|
||||
center2 = center3;
|
||||
dir1.Reverse();
|
||||
// il faudra permuter les point de tangence resultats
|
||||
// it is necessary to swap the resulting tangency points
|
||||
invers = Standard_True;
|
||||
}
|
||||
if ((R1-Radius > Tol) || (Tol < R1+R2-dist) ||
|
||||
@@ -506,7 +500,7 @@ GccAna_Circ2d2TanRad::
|
||||
center1 = center2;
|
||||
center2 = center3;
|
||||
dir1.Reverse();
|
||||
// il faudra permuter les points de tangence resultats
|
||||
// it is necessary to swap the resulting tangency points
|
||||
invers = Standard_True;
|
||||
}
|
||||
if (Tol < R1-dist-R2) { WellDone = Standard_True; }
|
||||
@@ -637,7 +631,7 @@ GccAna_Circ2d2TanRad::
|
||||
}
|
||||
}
|
||||
}
|
||||
// permutation des points de tangence resultats si necessaire
|
||||
// swapping of resulting tangency points if necessary
|
||||
if (invers) {
|
||||
gp_Pnt2d Psav;
|
||||
for (Standard_Integer i = 1 ; i <= NbrSol ; i++) {
|
||||
@@ -646,7 +640,7 @@ GccAna_Circ2d2TanRad::
|
||||
pnttg2sol(i) = Psav;
|
||||
}
|
||||
}
|
||||
// calcul des parametres des points de tangence
|
||||
// calculation of parameters of tangency points
|
||||
for (Standard_Integer i = 1 ; i <= NbrSol ; i++) {
|
||||
par1sol(i)=ElCLib::Parameter(cirsol(i),pnttg1sol(i));
|
||||
if (TheSame1(i) == 0) {
|
||||
|
@@ -15,17 +15,17 @@
|
||||
#include <Standard_NegativeValue.hxx>
|
||||
#include <GccEnt_BadQualifier.hxx>
|
||||
|
||||
// circulaire tangent a un cercle et une ligne et de rayon donne
|
||||
// circular tangent to a circle, a line and a given radius
|
||||
//==============================================================
|
||||
//========================================================================
|
||||
// On initialise WellDone a false. +
|
||||
// On recupere le cercle C1 et la droite L2. +
|
||||
// On sort en erreur dans les cas ou la construction est impossible. +
|
||||
// On fait la parallele a C1 dans le bon sens. +
|
||||
// On fait la parallele a L2 dans le bon sens. +
|
||||
// On intersecte les paralleles ==> point de centre de la solution. +
|
||||
// On cree la solution qu on ajoute aux solutions deja trouvees. +
|
||||
// On remplit les champs. +
|
||||
// Initialize WellDone to false. +
|
||||
// Return circle C1 and straight line L2. +
|
||||
// Leave with error if the construction is impossible. +
|
||||
// Create parallel to C1 in the proper direction. +
|
||||
// Create parallel to L2 in the proper direction. +
|
||||
// Intersect parallels ==> center point of the solution. +
|
||||
// Create the solution and add it to already found ones. +
|
||||
// Fill the fields. +
|
||||
//========================================================================
|
||||
|
||||
GccAna_Circ2d2TanRad::
|
||||
|
@@ -14,19 +14,19 @@
|
||||
#include <Standard_NegativeValue.hxx>
|
||||
#include <GccEnt_BadQualifier.hxx>
|
||||
|
||||
// circulaire tangent a un cercle et un point et de rayon donne
|
||||
// circulare tangent to a circle a point and a given radius
|
||||
//=============================================================
|
||||
|
||||
//========================================================================
|
||||
// On initialise WellDone a false. +
|
||||
// On recupere le cercle C1. +
|
||||
// On sort en erreur dans les cas ou la construction est impossible. +
|
||||
// On fait la parallele a C1 dans le bon sens. +
|
||||
// On fait le cercle centre en Point1 de rayon Radius. +
|
||||
// On intersecte la parallele et le cercle. +
|
||||
// ==> Le point de centre de la solution. +
|
||||
// On cree la solution qu on ajoute aux solutions deja trouvees. +
|
||||
// On remplit les champs. +
|
||||
// Initialize WellDone to false. +
|
||||
// Return circle C1. +
|
||||
// Leave with error if the construction is impossible. +
|
||||
// Create parallel to C1 in the proper direction. +
|
||||
// Create circle with center in Point1 of radius Radius. +
|
||||
// Intersect the parallel and the circle. +
|
||||
// ==> The center point of the solution. +
|
||||
// Create the solution that will be added to already found solutions. +
|
||||
// Fill the fields. +
|
||||
//========================================================================
|
||||
|
||||
GccAna_Circ2d2TanRad::
|
||||
|
@@ -18,18 +18,18 @@
|
||||
#include <Standard_NegativeValue.hxx>
|
||||
#include <GccEnt_BadQualifier.hxx>
|
||||
|
||||
// circulaire tangent a une ligne et un point et de rayon donne
|
||||
// circular tangent to a line and a point and a given radius
|
||||
//=============================================================
|
||||
//========================================================================
|
||||
// On initialise WellDone a false. +
|
||||
// On recupere la ligne L1. +
|
||||
// On sort en erreur dans les cas ou la construction est impossible. +
|
||||
// On fait la parallele a L1 dans le bon sens. +
|
||||
// On fait le cercle centre en Point1 de rayon Radius. +
|
||||
// On intersecte la parallele et le cercle. +
|
||||
// ==> Le point de centre de la solution. +
|
||||
// On cree la solution qu on ajoute aux solutions deja trouvees. +
|
||||
// On remplit les champs. +
|
||||
// Initialize WellDone to false. +
|
||||
// Return line L1. +
|
||||
// Leave with error if the construction is impossible. +
|
||||
// Create parallel to L1 in the proper direction. +
|
||||
// Create the circle with center at Point1 of radius Radius. +
|
||||
// Intersect the parallel and the circle. +
|
||||
// ==> The center point of the solution. +
|
||||
// Create the solution to be added to already found solutions. +
|
||||
// Fill the fields. +
|
||||
//========================================================================
|
||||
|
||||
GccAna_Circ2d2TanRad::
|
||||
@@ -138,9 +138,8 @@ GccAna_Circ2d2TanRad::
|
||||
|
||||
if (nbsol == 1) {
|
||||
if (displ1<1.e-10) {
|
||||
// cas particulier ou Point2 est sur la ligne
|
||||
// pas la peine de passer par les intersections
|
||||
// on construit les deux solutions directement
|
||||
// particular case when Point2 is on the line
|
||||
// construct two solutions directly
|
||||
for (Standard_Integer jcote = 1 ; jcote <= nbcote ; jcote++) {
|
||||
NbrSol++;
|
||||
gp_Pnt2d Center(cxloc-cote(jcote)*ydir*Radius,
|
||||
|
@@ -18,16 +18,16 @@
|
||||
|
||||
#include <Precision.hxx>
|
||||
|
||||
// circulaire tangent a deux ligne de rayon donne
|
||||
// circular tangent to two lines of given radius
|
||||
//===============================================
|
||||
//========================================================================
|
||||
// On initialise WellDone a false. +
|
||||
// On recupere les deux lignes L1 et L2. +
|
||||
// On sort en erreur dans les cas ou la construction est impossible. +
|
||||
// On fait les paralleles a L1 et L2 dans le bon sens. +
|
||||
// On intersecte les paralleles ==> Le point de centre de la solution. +
|
||||
// On cree la solution qu on ajoute aux solutions deja trouvees. +
|
||||
// On remplit les champs. +
|
||||
// Initialize WellDone to false. +
|
||||
// Return two lines L1 and L2. +
|
||||
// Leave with error if the construction is impossible. +
|
||||
// Create parallel lines to L1 and L2 in the proper direction. +
|
||||
// Intersect parallels ==> The center point of the solution. +
|
||||
// Create the solution to be added to the already found solutions. +
|
||||
// Fill the fields. +
|
||||
//========================================================================
|
||||
|
||||
GccAna_Circ2d2TanRad::
|
||||
|
@@ -14,13 +14,13 @@
|
||||
#include <Standard_NegativeValue.hxx>
|
||||
#include <GccEnt_BadQualifier.hxx>
|
||||
|
||||
// Cercle passant par deux points de rayon donne.
|
||||
// Circle passing by two points of given radius.
|
||||
// ==============================================
|
||||
|
||||
//=========================================================================
|
||||
// Resolution de l equation du second degre indiquant que le centre du +
|
||||
// cercle est equidistant des deux points. +
|
||||
//=========================================================================
|
||||
//==============================================================================
|
||||
// Solution of the equation of second degree showing that the center of the +
|
||||
// circle is equidistant from two points. +
|
||||
//==============================================================================
|
||||
|
||||
GccAna_Circ2d2TanRad::
|
||||
GccAna_Circ2d2TanRad (const gp_Pnt2d& Point1 ,
|
||||
|
@@ -21,7 +21,7 @@
|
||||
#include <math_DirectPolynomialRoots.hxx>
|
||||
|
||||
//=========================================================================
|
||||
// Creation d un cercle tangent a trois cercles. +
|
||||
// Creation of a circle tangent to three circles. +
|
||||
//=========================================================================
|
||||
|
||||
GccAna_Circ2d3Tan::
|
||||
@@ -31,7 +31,7 @@ GccAna_Circ2d3Tan::
|
||||
const Standard_Real Tolerance ):
|
||||
|
||||
//=========================================================================
|
||||
// Initialisation des champs. +
|
||||
// Initialization of fields. +
|
||||
//=========================================================================
|
||||
|
||||
cirsol(1,16) ,
|
||||
@@ -67,7 +67,7 @@ GccAna_Circ2d3Tan::
|
||||
}
|
||||
|
||||
//=========================================================================
|
||||
// Traitement. +
|
||||
// Processing. +
|
||||
//=========================================================================
|
||||
|
||||
gp_Circ2d Cir1 = Qualified1.Qualified();
|
||||
|
@@ -19,7 +19,7 @@
|
||||
#include <Precision.hxx>
|
||||
|
||||
//=========================================================================
|
||||
// Creation d un cercle tangent a deux cercles et a une droite. +
|
||||
// Creation of a circle tangent to two circles and a straight line. +
|
||||
//=========================================================================
|
||||
|
||||
GccAna_Circ2d3Tan::
|
||||
@@ -29,7 +29,7 @@ GccAna_Circ2d3Tan::
|
||||
const Standard_Real Tolerance ):
|
||||
|
||||
//=========================================================================
|
||||
// Initialisation des champs. +
|
||||
// Initialization of fields. +
|
||||
//=========================================================================
|
||||
|
||||
cirsol(1,16) ,
|
||||
@@ -65,7 +65,7 @@ GccAna_Circ2d3Tan::
|
||||
}
|
||||
|
||||
//=========================================================================
|
||||
// Traitement. +
|
||||
// Processing. +
|
||||
//=========================================================================
|
||||
|
||||
gp_Circ2d C1 = Qualified1.Qualified();
|
||||
@@ -118,7 +118,7 @@ GccAna_Circ2d3Tan::
|
||||
Standard_Real Rradius=0;
|
||||
gp_Pnt2d Center(Intp.Point(j).Value());
|
||||
|
||||
// pop : si les coordonnes sont trop grandes ( qu'est trop grand : avoir ) pas de creation
|
||||
// pop : if the coordinates are too great, no creation
|
||||
if (Center.X() > 1e10 ||
|
||||
Center.Y() > 1e10 ) break;
|
||||
|
||||
@@ -126,7 +126,7 @@ GccAna_Circ2d3Tan::
|
||||
Standard_Real dist2 = Center.Distance(C2.Location());
|
||||
Standard_Real dist3 = L3.Distance(Center);
|
||||
|
||||
// pop : si les coordonnes sont trop grandes ( qu'est trop grand : avoir ) pas de creation
|
||||
// pop : if the coordinates are too great, no creation
|
||||
if (dist3 > 1e10 ) break;
|
||||
|
||||
Standard_Integer nbsol1 = 0;
|
||||
@@ -271,13 +271,13 @@ GccAna_Circ2d3Tan::
|
||||
TheSame1(NbrSol) = 0;
|
||||
gp_Dir2d dc(C1.Location().XY()-Center.XY());
|
||||
pnttg1sol(NbrSol)=gp_Pnt2d(Center.XY()+Radius(ind3)*dc.XY());
|
||||
// POP pour portection dans le cas ou cirsol(NbrSol).Location == pnttg1sol(NbrSol)
|
||||
// POP for protection if cirsol(NbrSol).Location == pnttg1sol(NbrSol)
|
||||
if (cirsol(NbrSol).Location().IsEqual(pnttg1sol(NbrSol),Precision::Confusion()))
|
||||
par1sol(NbrSol)=1;
|
||||
else
|
||||
par1sol(NbrSol)=ElCLib::Parameter(cirsol(NbrSol),
|
||||
pnttg1sol(NbrSol));
|
||||
// POP pour portection dans le cas ou C1.Location == pnttg1sol(NbrSol)
|
||||
// POP for protection if C1.Location == pnttg1sol(NbrSol)
|
||||
if (C1.Location().IsEqual(pnttg1sol(NbrSol),Precision::Confusion()))
|
||||
pararg1(NbrSol)=1;
|
||||
else
|
||||
@@ -291,13 +291,13 @@ GccAna_Circ2d3Tan::
|
||||
TheSame2(NbrSol) = 0;
|
||||
gp_Dir2d dc(C2.Location().XY()-Center.XY());
|
||||
pnttg2sol(NbrSol)=gp_Pnt2d(Center.XY()+Radius(ind3)*dc.XY());
|
||||
// POP pour portection dans le cas ou cirsol(NbrSol).Location == pnttg1sol(NbrSol)
|
||||
// POP for protection if cirsol(NbrSol).Location == pnttg1sol(NbrSol)
|
||||
if (cirsol(NbrSol).Location().IsEqual(pnttg1sol(NbrSol),Precision::Confusion()))
|
||||
par1sol(NbrSol)=1;
|
||||
else
|
||||
par2sol(NbrSol)=ElCLib::Parameter(cirsol(NbrSol),
|
||||
pnttg2sol(NbrSol));
|
||||
// POP pour portection dans le cas ou C2.Location == pnttg2sol(NbrSol)
|
||||
// POP for protection if C2.Location == pnttg2sol(NbrSol)
|
||||
if (C2.Location().IsEqual(pnttg2sol(NbrSol),Precision::Confusion()))
|
||||
pararg2(NbrSol)=1;
|
||||
else
|
||||
|
@@ -18,7 +18,7 @@
|
||||
#include <GccEnt_BadQualifier.hxx>
|
||||
|
||||
//=========================================================================
|
||||
// Creation d un cercle tangent a un cercle et a deux droites. +
|
||||
// Creation of a circle tangent to a circle and two straight lines. +
|
||||
//=========================================================================
|
||||
|
||||
GccAna_Circ2d3Tan::GccAna_Circ2d3Tan (const GccEnt_QualifiedCirc& Qualified1 ,
|
||||
@@ -27,7 +27,7 @@ GccAna_Circ2d3Tan::GccAna_Circ2d3Tan (const GccEnt_QualifiedCirc& Qualified1 ,
|
||||
const Standard_Real Tolerance )
|
||||
|
||||
//=========================================================================
|
||||
// Initialisation des champs. +
|
||||
// Initialisation of fields. +
|
||||
//=========================================================================
|
||||
|
||||
:cirsol(1,8) ,
|
||||
@@ -65,7 +65,7 @@ pararg3(1,8)
|
||||
}
|
||||
|
||||
//=========================================================================
|
||||
// Traitement. +
|
||||
// Processing. +
|
||||
//=========================================================================
|
||||
|
||||
gp_Circ2d C1 = Qualified1.Qualified();
|
||||
|
@@ -12,13 +12,13 @@
|
||||
#include <GccEnt_BadQualifier.hxx>
|
||||
|
||||
//=========================================================================
|
||||
// Creation d un cercle tangent a trois droites. +
|
||||
// On cree les Bissectrices a Qualified1 et Qualified2 et +
|
||||
// les Bissectrices a Qualified1 et Qualified3. +
|
||||
// On intersecte les bissectrices ainsi calculees ==> Points de centre. +
|
||||
// On Choisit le point de centre qui correspond aux qualifieurs et on +
|
||||
// construit la solution de rayon egal a la distance entre le point de +
|
||||
// centre choisi et la droite Qualified1. +
|
||||
// Creation of a circle tangent to three straight lines. +
|
||||
// Create Bissectrices at Qualified1 and Qualified2 and +
|
||||
// Bissectrices at Qualified1 and Qualified3. +
|
||||
// Intersect bissectrices calculated in this way ==> Center points +
|
||||
// Choose the center point that corresponds to qualifiers and +
|
||||
// construct the solution of radius equal to the distance between the +
|
||||
// chosen center point and straight line Qualified1. +
|
||||
//=========================================================================
|
||||
|
||||
GccAna_Circ2d3Tan::
|
||||
@@ -32,7 +32,7 @@ GccAna_Circ2d3Tan::
|
||||
):
|
||||
|
||||
//=========================================================================
|
||||
// Initialisation des champs. +
|
||||
// Initialization of fields. +
|
||||
//=========================================================================
|
||||
|
||||
cirsol(1,4) ,
|
||||
@@ -73,7 +73,7 @@ GccAna_Circ2d3Tan::
|
||||
}
|
||||
|
||||
//=========================================================================
|
||||
// Traitement. +
|
||||
// Processing. +
|
||||
//=========================================================================
|
||||
|
||||
gp_Lin2d L1(Qualified1.Qualified());
|
||||
|
@@ -21,7 +21,7 @@
|
||||
|
||||
static Standard_Integer MaxSol = 20;
|
||||
//=========================================================================
|
||||
// Creation d un cercle tangent a deux cercles et a un point. +
|
||||
// Creation of a circle tangent to two circles and a point. +
|
||||
//=========================================================================
|
||||
|
||||
GccAna_Circ2d3Tan::
|
||||
@@ -31,7 +31,7 @@ GccAna_Circ2d3Tan::
|
||||
const Standard_Real Tolerance ):
|
||||
|
||||
//=========================================================================
|
||||
// Initialisation des champs. +
|
||||
// Initialization of fields. +
|
||||
//=========================================================================
|
||||
|
||||
cirsol(1,MaxSol) ,
|
||||
@@ -65,7 +65,7 @@ GccAna_Circ2d3Tan::
|
||||
}
|
||||
|
||||
//=========================================================================
|
||||
// Traitement. +
|
||||
// Processing. +
|
||||
//=========================================================================
|
||||
|
||||
gp_Circ2d C1(Qualified1.Qualified());
|
||||
@@ -289,8 +289,8 @@ GccAna_Circ2d3Tan::
|
||||
else {
|
||||
TheSame2(NbrSol) = 0;
|
||||
gp_Dir2d dc(center2.XY()-Center.XY());
|
||||
// cas des cercles concentriques :
|
||||
// le 2eme point de tangence est de l'autre cote du cercle solution
|
||||
// case of concentric circles :
|
||||
// 2nd tangency point is at the other side of the circle solution
|
||||
Standard_Real alpha = 1.;
|
||||
if (center1.Distance(center2)<=Tolerance) alpha = -1;
|
||||
pnttg2sol(NbrSol)=gp_Pnt2d(Center.XY()+alpha*Radius(k1)*dc.XY());
|
||||
@@ -318,7 +318,7 @@ GccAna_Circ2d3Tan::
|
||||
}
|
||||
}
|
||||
|
||||
// Debug grossier pour que le point soit sur les cercles solutions.
|
||||
// Debug to create the point on the solution circles.
|
||||
|
||||
Standard_Integer kk ;
|
||||
for ( kk = 1; kk <= NbrSol; kk++) {
|
||||
@@ -329,8 +329,8 @@ GccAna_Circ2d3Tan::
|
||||
}
|
||||
}
|
||||
|
||||
// Debug grossier pour eliminer solution multiple.
|
||||
// ca arrive dans le cas d intersection ligne hyperbole.
|
||||
// Debug to eliminate multiple solution.
|
||||
// this happens in case of intersection line hyperbola.
|
||||
Standard_Real Tol2 = Tol*Tol;
|
||||
for (kk = 1; kk <NbrSol; kk++) {
|
||||
gp_Pnt2d PK = cirsol(kk).Location();
|
||||
|
@@ -18,9 +18,9 @@
|
||||
#include <IntAna2d_Conic.hxx>
|
||||
#include <GccEnt_BadQualifier.hxx>
|
||||
|
||||
//=========================================================================
|
||||
// Creation d un cercle tangent a un cercle, une droite et un point. +
|
||||
//=========================================================================
|
||||
//===========================================================================
|
||||
// Creation of a circle tangent to a circle, a straight line and a point. +
|
||||
//===========================================================================
|
||||
|
||||
GccAna_Circ2d3Tan::
|
||||
GccAna_Circ2d3Tan (const GccEnt_QualifiedCirc& Qualified1 ,
|
||||
@@ -29,7 +29,7 @@ GccAna_Circ2d3Tan::
|
||||
const Standard_Real Tolerance ):
|
||||
|
||||
//=========================================================================
|
||||
// Initialisation des champs. +
|
||||
// Initialization of fields. +
|
||||
//=========================================================================
|
||||
|
||||
cirsol(1,4) ,
|
||||
@@ -64,7 +64,7 @@ GccAna_Circ2d3Tan::
|
||||
}
|
||||
|
||||
//=========================================================================
|
||||
// Traitement. +
|
||||
// Processing. +
|
||||
//=========================================================================
|
||||
|
||||
gp_Circ2d C1(Qualified1.Qualified());
|
||||
@@ -179,7 +179,7 @@ GccAna_Circ2d3Tan::
|
||||
for (Standard_Integer k = 1 ; k <= nbsol3 ; k++) {
|
||||
if (NbrSol==4)
|
||||
break;
|
||||
// pop : si le rayon est trop grand ( qu'est trop grand : avoir ) pas de creation
|
||||
// pop : if the radius is too great - no creation
|
||||
if (Radius(k) > MaxRad) break;
|
||||
if (Abs(Radius(k)) < MinRad) break;
|
||||
|
||||
|
@@ -17,7 +17,7 @@
|
||||
#include <GccEnt_BadQualifier.hxx>
|
||||
|
||||
//=========================================================================
|
||||
// Creation d un cercle tangent a deux droites et a un point. +
|
||||
// Creation of a circle tangent to two straight lines and a point. +
|
||||
//=========================================================================
|
||||
|
||||
GccAna_Circ2d3Tan::
|
||||
@@ -59,7 +59,7 @@ GccAna_Circ2d3Tan::
|
||||
pnttg3sol.Init(Point3);
|
||||
|
||||
//=========================================================================
|
||||
// Traitement. +
|
||||
// Processing. +
|
||||
//=========================================================================
|
||||
|
||||
gp_Lin2d L1 = Qualified1.Qualified();
|
||||
|
@@ -20,9 +20,9 @@
|
||||
#include <GccEnt_BadQualifier.hxx>
|
||||
#include <Precision.hxx>
|
||||
|
||||
//=========================================================================
|
||||
// Creation d un cercle tangent a un cercle et a deux points. +
|
||||
//=========================================================================
|
||||
//=======================================================================
|
||||
// Creation of a circle tangent to a circle and two points. +
|
||||
//=======================================================================
|
||||
|
||||
GccAna_Circ2d3Tan::
|
||||
GccAna_Circ2d3Tan (const GccEnt_QualifiedCirc& Qualified1 ,
|
||||
@@ -59,7 +59,7 @@ GccAna_Circ2d3Tan::
|
||||
}
|
||||
|
||||
//=========================================================================
|
||||
// Traitement. +
|
||||
// Processing. +
|
||||
//=========================================================================
|
||||
|
||||
gp_Circ2d C1 = Qualified1.Qualified();
|
||||
|
@@ -18,7 +18,7 @@
|
||||
#include <GccEnt_BadQualifier.hxx>
|
||||
#include <Precision.hxx>
|
||||
//=========================================================================
|
||||
// Creation d un cercle tangent a une droite et a deux points. +
|
||||
// Creation of a circle tangent to a straight line and two points. +
|
||||
//=========================================================================
|
||||
|
||||
GccAna_Circ2d3Tan::
|
||||
@@ -56,7 +56,7 @@ GccAna_Circ2d3Tan::
|
||||
}
|
||||
|
||||
//=========================================================================
|
||||
// Traitement. +
|
||||
// Processing. +
|
||||
//=========================================================================
|
||||
|
||||
gp_Lin2d L1 = Qualified1.Qualified();
|
||||
|
@@ -12,18 +12,18 @@
|
||||
#include <GccEnt_BadQualifier.hxx>
|
||||
|
||||
//=========================================================================
|
||||
// Creation d un cercle passant par trois points. +
|
||||
// Trois cas de figures : +
|
||||
// 1/ Les trois points sont confondus. +
|
||||
// Creation of a circle passing by three points. +
|
||||
// Three cases : +
|
||||
// 1/ Three points coincide. +
|
||||
// ----------------------------------- +
|
||||
// Le resultat est le cercle centre en Point1 de rayon zero. +
|
||||
// 2/ Deux des trois points sont confondus. +
|
||||
// The result is the circle with center in Point1 with zero radius. +
|
||||
// 2/ Two of three points coincide. +
|
||||
// ---------------------------------------- +
|
||||
// On cree la mediatrice a deux points non confondus ainsi que la +
|
||||
// droite passant par ces deux points. +
|
||||
// La solution a pour centre l intersection de ces deux droite et +
|
||||
// pour rayon la distance entre ce centre et l un des trois points. +
|
||||
// 3/ Les trois points sont distinct. +
|
||||
// Create the medium line between two non-coinciding points and +
|
||||
// the straight line passing by these two points. +
|
||||
// The center of the solution is the intersection of two straight lines and the +
|
||||
// radius is the distance between this center and one of three points. +
|
||||
// 3/ The three points are distinct. +
|
||||
// ---------------------------------- +
|
||||
//
|
||||
//=========================================================================
|
||||
@@ -35,7 +35,7 @@ GccAna_Circ2d3Tan::
|
||||
const Standard_Real Tolerance ):
|
||||
|
||||
//=========================================================================
|
||||
// Initialisation des champs. +
|
||||
// Initialization of fields. +
|
||||
//=========================================================================
|
||||
|
||||
cirsol(1,1) ,
|
||||
@@ -61,7 +61,7 @@ GccAna_Circ2d3Tan::
|
||||
NbrSol = 0;
|
||||
|
||||
//=========================================================================
|
||||
// Traitement. +
|
||||
// Processing. +
|
||||
//=========================================================================
|
||||
|
||||
Standard_Real dist1 = Point1.Distance(Point2);
|
||||
|
@@ -5,7 +5,7 @@
|
||||
|
||||
|
||||
//=========================================================================
|
||||
// CREATION DE LA BISSECTICE ENTRE DEUX CERCLES. +
|
||||
// CREATION of the BISSECTICE between two CIRCLES. +
|
||||
//=========================================================================
|
||||
|
||||
#include <GccAna_Circ2dBisec.ixx>
|
||||
@@ -34,15 +34,15 @@ GccAna_Circ2dBisec::
|
||||
const gp_Circ2d& Circ2 ) {
|
||||
|
||||
//=========================================================================
|
||||
// Initialisation des champs : +
|
||||
// - circle1 (Cercle : premier argument.) +
|
||||
// - circle2 (Ligne : deuxieme argument.) +
|
||||
// - intersection (Entier indiquant la position du plus petit +
|
||||
// des deux cercles par rapport a l autre.) +
|
||||
// - sameradius (Booleen indiquant si les deux cercles ont +
|
||||
// meme rayon ou non.) +
|
||||
// - NbrSol (Entier indiquant le nombre de solutions.) +
|
||||
// - WellDone (Booleen indiquant le succes ou non de l algo.). +
|
||||
// Initialization of fields : +
|
||||
// - circle1 (Circle : first argument.) +
|
||||
// - circle2 (Line : second argument.) +
|
||||
// - intersection (Integer showing the smallest position +
|
||||
// of two circles correspondingly to each other.) +
|
||||
// - sameradius (Booleen showing if the two circles have +
|
||||
// the same radius or not.) +
|
||||
// - NbrSol (Integer showing the number of solutions.) +
|
||||
// - WellDone (Boolean showing succes or failure of the algo.). +
|
||||
//=========================================================================
|
||||
|
||||
WellDone = Standard_False;
|
||||
@@ -115,10 +115,10 @@ GccAna_Circ2dBisec::
|
||||
}
|
||||
|
||||
//=========================================================================
|
||||
// Traitement. +
|
||||
// On recupere les coordonees des centres des cercles circle1 et circle2 +
|
||||
// Processing. +
|
||||
// Return the coordinates of centers of circles circle1 and circle2 +
|
||||
// (xcencir1, ycencir1, xcencir2, ycencir2). +
|
||||
// On recupere aussi les rayons des deux cercles R1 et R2. +
|
||||
// Also return the radiuses of two circles R1 and R2. +
|
||||
//=========================================================================
|
||||
|
||||
Handle(GccInt_Bisec) GccAna_Circ2dBisec::
|
||||
|
@@ -1,9 +1,9 @@
|
||||
// File GccAna_Circ2dTanCen.cxx, REG 08/07/91
|
||||
|
||||
|
||||
//========================================================================
|
||||
// Creation d'un cercle tangent a un element et centre en un point +
|
||||
//========================================================================
|
||||
//================================================================================
|
||||
// Creation of a circle tangent to an element and having center in a point +
|
||||
//================================================================================
|
||||
|
||||
#include <GccAna_Circ2dTanCen.ixx>
|
||||
|
||||
@@ -17,16 +17,15 @@
|
||||
#include <GccEnt_BadQualifier.hxx>
|
||||
|
||||
//========================================================================
|
||||
// Creation d'un cercle tangent a un cercle centre en un point. +
|
||||
// - On calcule la distance entre le centre du cercle et le point de +
|
||||
// centre : dist +
|
||||
// - On verifie que cette distance est compatible avec le qualifieur +
|
||||
// du cercle. +
|
||||
// Si oui le rayon de la solution sera : +
|
||||
// C1.Radius()-dist si le qualifieur est Enclosed. +
|
||||
// C1.Radius()+dist si le qualifieur est Enclosing. +
|
||||
// dist-C1.Radius() si le qualifieur est Outside. +
|
||||
// un melange de ces valeurs si le qualifieur est Unqualified. +
|
||||
// Creation of a circle tangent to a circle with center in a point. +
|
||||
// - Calculate the distance between the center of the circle and the point of +
|
||||
// center : dist +
|
||||
// - Check that this distance is compatible with the qualifier of the circle. +
|
||||
// Si yes, the radius of the solution will be : +
|
||||
// C1.Radius()-dist if the qualifier is Enclosed. +
|
||||
// C1.Radius()+dist if the qualifier is Enclosing. +
|
||||
// dist-C1.Radius() if the qualifier is Outside. +
|
||||
// a mix of these values if the qualifier is Unqualified. +
|
||||
//========================================================================
|
||||
|
||||
|
||||
@@ -36,7 +35,7 @@ GccAna_Circ2dTanCen::
|
||||
const Standard_Real Tolerance ):
|
||||
|
||||
//========================================================================
|
||||
// Initialisation des champs. +
|
||||
// Initialization of fields. +
|
||||
//========================================================================
|
||||
|
||||
cirsol(1,2) ,
|
||||
@@ -151,9 +150,9 @@ GccAna_Circ2dTanCen::
|
||||
}
|
||||
|
||||
//=========================================================================
|
||||
// Cercle tangent a une ligne Linetan et centre en un point Pcenter. +
|
||||
// On calcule la distance du point a la ligne ==> Rayon. +
|
||||
// On cree le cercle de centre Pcenter de rayon Rayon. +
|
||||
// Circle tangent to line Linetan and center in a point Pcenter. +
|
||||
// Calculate the distance from the point to the line ==> Radius. +
|
||||
// Create the circle with center Pcenter of radius Radius. +
|
||||
//=========================================================================
|
||||
|
||||
GccAna_Circ2dTanCen::
|
||||
@@ -161,7 +160,7 @@ GccAna_Circ2dTanCen::
|
||||
const gp_Pnt2d& Pcenter ):
|
||||
|
||||
//=========================================================================
|
||||
// Initialisation des champs. +
|
||||
// Initialisation of fields. +
|
||||
//=========================================================================
|
||||
|
||||
cirsol(1,1) ,
|
||||
@@ -199,9 +198,9 @@ GccAna_Circ2dTanCen::
|
||||
}
|
||||
|
||||
//=========================================================================
|
||||
// Cercle tangent a un point Point1 et centre en un point Pcenter. +
|
||||
// On calcule la distance de Pcenter a Point1 ==> Rayon. +
|
||||
// On cree le cercle de centre Pcenter de rayon Rayon. +
|
||||
// Circle tangent to point Point1 and centered in a point Pcenter. +
|
||||
// Calculate the distance from Pcenter to Point1 ==> Radius. +
|
||||
// Create the circle with center Pcenter of radius Radius. +
|
||||
//=========================================================================
|
||||
|
||||
GccAna_Circ2dTanCen::
|
||||
@@ -209,7 +208,7 @@ GccAna_Circ2dTanCen::
|
||||
const gp_Pnt2d& Pcenter ):
|
||||
|
||||
//=========================================================================
|
||||
// Initialisation des champs. +
|
||||
// Initialisation of fields. +
|
||||
//=========================================================================
|
||||
|
||||
cirsol(1,1) ,
|
||||
|
@@ -2,12 +2,12 @@
|
||||
// PRO12736 : bug quand OnLine // Ox, JCT 20/03/98
|
||||
|
||||
//========================================================================
|
||||
// circulaire tangent a un element de type : - Cercle. +
|
||||
// - Ligne. +
|
||||
// circular tangent to element of type : - Circle. +
|
||||
// - Line. +
|
||||
// - Point. +
|
||||
// centre sur un deuxieme element de type : - Cercle. +
|
||||
// - Ligne. +
|
||||
// de rayon donne : Radius. +
|
||||
// center on second element of type : - Circle. +
|
||||
// - Line. +
|
||||
// of given radius : Radius. +
|
||||
//========================================================================
|
||||
|
||||
#include <GccAna_Circ2dTanOnRad.ixx>
|
||||
@@ -24,20 +24,18 @@
|
||||
typedef math_DirectPolynomialRoots Roots;
|
||||
|
||||
//=========================================================================
|
||||
// Cercle tangent : a un cercle Qualified1 (C1). +
|
||||
// centre : sur une droite OnLine. +
|
||||
// de rayon : Radius. +
|
||||
// Circle tangent : to circle Qualified1 (C1). +
|
||||
// center : on straight line OnLine. +
|
||||
// of radius : Radius. +
|
||||
// +
|
||||
// On initialise le tableau de solutions cirsol ainsi que tous les +
|
||||
// champs. +
|
||||
// On elimine en fonction du qualifieur les cas ne presentant pas de +
|
||||
// solutions. +
|
||||
// On resoud l equation du second degre indiquant que le point de centre +
|
||||
// recherche (xc,yc) est a une distance Radius du cercle C1 et +
|
||||
// sur la droite OnLine. +
|
||||
// Les solutions sont representees par les cercles : +
|
||||
// - de centre Pntcen(xc,yc) +
|
||||
// - de rayon Radius. +
|
||||
// Initialise the table of solutions cirsol and all fields. +
|
||||
// Eliminate depending on the qualifier the cases not being solutions. +
|
||||
// Solve the equation of the second degree indicating that the found center +
|
||||
// point (xc,yc) is at a distance Radius from circle C1 and +
|
||||
// on straight line OnLine. +
|
||||
// The solutions aret represented by circles : +
|
||||
// - with center Pntcen(xc,yc) +
|
||||
// - with radius Radius. +
|
||||
//=========================================================================
|
||||
|
||||
GccAna_Circ2dTanOnRad::
|
||||
|
@@ -12,20 +12,18 @@
|
||||
#include <GccEnt_BadQualifier.hxx>
|
||||
|
||||
//=========================================================================
|
||||
// Cercle tangent a une droite Qualified1 (L1) +
|
||||
// centre sur une droite OnLine +
|
||||
// de rayon Radius. +
|
||||
// Circle tangent to straight line Qualified1 (L1) +
|
||||
// center on straight line OnLine +
|
||||
// of radius Radius. +
|
||||
// +
|
||||
// On initialise le tableau de solutions cirsol ainsi que tous les +
|
||||
// champs. +
|
||||
// On elimine en fonction du qualifieur les cas ne presentant pas de +
|
||||
// solutions. +
|
||||
// On cree L1para : la parallele a L1 dans le sens voulu par le +
|
||||
// qualifieur a une distance Radius. +
|
||||
// Le point P d intersection entre L1para et OnLine donnera le point de +
|
||||
// centre de la solution. +
|
||||
// On cree les solutions cirsol de centre P et de rayon Radius. +
|
||||
// On remplit les champs. +
|
||||
// Initialize the table of solutions cirsol and all fields. +
|
||||
// Elimine depending on the qualifier the cases not being solutions. +
|
||||
// Create L1para : parallel to L1 in the direction required by the +
|
||||
// qualifier at distance Radius. +
|
||||
// Point P of intersection between L1para and OnLine will give the center point +
|
||||
// of the solution. +
|
||||
// Create solutions cirsol with center P and radius Radius. +
|
||||
// Fill the fields. +
|
||||
//=========================================================================
|
||||
|
||||
GccAna_Circ2dTanOnRad::
|
||||
|
@@ -9,25 +9,23 @@
|
||||
#include <gp_Dir2d.hxx>
|
||||
|
||||
//=========================================================================
|
||||
// typedef des objets manipules : +
|
||||
// typedef of handled objects : +
|
||||
//=========================================================================
|
||||
|
||||
typedef math_DirectPolynomialRoots Roots;
|
||||
|
||||
//=========================================================================
|
||||
// Cercle tangent a un point Point1. +
|
||||
// centre sur une droite OnLine. +
|
||||
// de rayon Radius. +
|
||||
// Circle tangent to a point Point1. +
|
||||
// center on straight line OnLine. +
|
||||
// radius Radius. +
|
||||
// +
|
||||
// On initialise le tableau de solutions cirsol ainsi que tous les +
|
||||
// champs. +
|
||||
// On elimine les cas ne presentant pas de solution. +
|
||||
// On resoud l equation du second degre indiquant que le point de centre +
|
||||
// recherche (xc,yc) est a une distance Radius du point Point1 et +
|
||||
// sur la droite OnLine. +
|
||||
// Les solutions sont representees par les cercles : +
|
||||
// - de centre Pntcen(xc,yc) +
|
||||
// - de rayon Radius. +
|
||||
// Initialize the table of solutions cirsol and all fields. +
|
||||
// Eliminate cases not being the solution. +
|
||||
// Solve the equation of second degree showing that the found center point +
|
||||
// (xc,yc) is at distance Radius from point Point1 and on the straight line OnLine. +
|
||||
// The solutions are represented by circles : +
|
||||
// - of center Pntcen(xc,yc) +
|
||||
// - of radius Radius. +
|
||||
//=========================================================================
|
||||
|
||||
GccAna_Circ2dTanOnRad::
|
||||
|
@@ -12,17 +12,16 @@
|
||||
#include <GccEnt_BadQualifier.hxx>
|
||||
|
||||
//=========================================================================
|
||||
// Cercle tangent a un cercle Qualified1 (C1). +
|
||||
// centre sur un cercle OnCirc. +
|
||||
// de rayon Radius. +
|
||||
// Circle tangent to a circle Qualified1 (C1). +
|
||||
// center on a circle OnCirc. +
|
||||
// of radius Radius. +
|
||||
// +
|
||||
// On initialise le tableau de solutions cirsol ainsi que tous les +
|
||||
// champs. +
|
||||
// On elimine les cas ne presentant pas de solution. +
|
||||
// On cree la (les) parallele(s) a C1 dans le (les) sens voulu(s). +
|
||||
// On intersecte cette (ces) parallele(s) avec OnCirc et on obtient le +
|
||||
// (les) point(s) de centre de la (des) solution(s) recherchee(s). +
|
||||
// On cree cette (ces) solution(s) cirsol. +
|
||||
// Initialize the table of solutions cirsol and all fields. +
|
||||
// Eliminate cases not being the solution. +
|
||||
// Create parallel(s) to C1 in the required direction(s). +
|
||||
// Intersect parallel(s) with OnCirc and obtain the +
|
||||
// center point(s) of found solution(s). +
|
||||
// Create solution(s) cirsol. +
|
||||
//=========================================================================
|
||||
|
||||
GccAna_Circ2dTanOnRad::
|
||||
|
@@ -11,17 +11,16 @@
|
||||
#include <GccEnt_BadQualifier.hxx>
|
||||
|
||||
//=========================================================================
|
||||
// Cercle tangent a une droite Qualified1 (L1). +
|
||||
// centre sur un cercle OnCirc. +
|
||||
// de rayon Radius. +
|
||||
// Circle tangent to straight line Qualified1 (L1). +
|
||||
// center on circle OnCirc. +
|
||||
// with radius Radius. +
|
||||
// +
|
||||
// On initialise le tableau de solutions cirsol ainsi que tous les +
|
||||
// champs. +
|
||||
// On elimine les cas ne presentant pas de solution. +
|
||||
// On cree la (les) parallele(s) a L1 dans le (les) sens voulu(s). +
|
||||
// On intersecte cette (ces) parallele(s) avec OnCirc et on obtient les +
|
||||
// points de centre des solutions recherchees. +
|
||||
// On cree ces solutions cirsol. +
|
||||
// Initialize table of solutions cirsol and all fields. +
|
||||
// Eliminate cases not being the solution. +
|
||||
// Create parallel line(s) to L1 in the required direction(s). +
|
||||
// Intersect parallel line(s) with OnCirc and obtain +
|
||||
// center points of found solutions. +
|
||||
// Create solutions cirsol. +
|
||||
//=========================================================================
|
||||
|
||||
GccAna_Circ2dTanOnRad::
|
||||
@@ -31,7 +30,7 @@ GccAna_Circ2dTanOnRad::
|
||||
const Standard_Real Tolerance ):
|
||||
|
||||
//=========================================================================
|
||||
// Initialisation des champs. +
|
||||
// Initialization of fields. +
|
||||
//=========================================================================
|
||||
|
||||
cirsol(1,4) ,
|
||||
@@ -56,7 +55,7 @@ GccAna_Circ2dTanOnRad::
|
||||
}
|
||||
|
||||
//=========================================================================
|
||||
// Initialisation de diverses variables. +
|
||||
// Initialisation of various variables. +
|
||||
//=========================================================================
|
||||
|
||||
Standard_Integer nbsol = 0;
|
||||
@@ -69,7 +68,7 @@ GccAna_Circ2dTanOnRad::
|
||||
Standard_Real dist2 = L1.Distance(OnCirc.Location())+OnCirc.Radius();
|
||||
|
||||
//=========================================================================
|
||||
// Traitement. +
|
||||
// Processing. +
|
||||
//=========================================================================
|
||||
|
||||
if (Radius < 0.0) { Standard_NegativeValue::Raise(); }
|
||||
@@ -78,7 +77,7 @@ GccAna_Circ2dTanOnRad::
|
||||
if ((dist1-Radius>Tol) || (Tol<Radius-dist2)) { WellDone=Standard_True; }
|
||||
else {
|
||||
|
||||
// a modifier ulterieurement.
|
||||
// to modify later
|
||||
|
||||
if (dist1-Radius > 0.0) { dist1 = Radius; }
|
||||
else if (dist2-Radius < 0.0) { dist2 = Radius; }
|
||||
|
@@ -9,17 +9,16 @@
|
||||
#include <gp_Dir2d.hxx>
|
||||
|
||||
//=========================================================================
|
||||
// Cercle tangent a un point Point1. +
|
||||
// centre sur un cercle OnCirc. +
|
||||
// de rayon Radius. +
|
||||
// Circle tangent to a point Point1. +
|
||||
// center on circle OnCirc. +
|
||||
// radius Radius. +
|
||||
// +
|
||||
// On initialise le tableau de solutions cirsol ainsi que tous les +
|
||||
// champs. +
|
||||
// On elimine les cas ne presentant pas de solution. +
|
||||
// On cree le cercle centre en Point1 de rayon Radius. +
|
||||
// On intersecte ce cercle avec OnCirc et on obtient les points de +
|
||||
// centre des solutions recherchees. +
|
||||
// On cree ces solutions cirsol. +
|
||||
// Initialize the table of solutions cirsol and all fields. +
|
||||
// Eliminate cases not being the solution. +
|
||||
// Create the circle with center in Point1 of radius Radius. +
|
||||
// Intersect this circle with OnCirc and obtain the center points +
|
||||
// of found solutions. +
|
||||
// Create solutions cirsol. +
|
||||
//=========================================================================
|
||||
|
||||
GccAna_Circ2dTanOnRad::
|
||||
|
@@ -4,7 +4,7 @@
|
||||
// <reg@topsn3>
|
||||
|
||||
//=========================================================================
|
||||
// CREATION DE LA BISSECTICE ENTRE UN CERCLE ET UNE DROITE. +
|
||||
// CREATION of the BISSECTICE between a CIRCLE and a STRAIGHT LINE. +
|
||||
//=========================================================================
|
||||
|
||||
#include <GccAna_CircLin2dBisec.ixx>
|
||||
@@ -29,11 +29,11 @@ GccAna_CircLin2dBisec::
|
||||
{
|
||||
|
||||
//=========================================================================
|
||||
// Initialisation des champs : +
|
||||
// - circle (Le cercle.) +
|
||||
// - line (la droite.) +
|
||||
// - NbrSol (nombre de solution.) +
|
||||
// - WellDone (Booleen indiquant le succes ou non de l algo.). +
|
||||
// Initialization of fields : +
|
||||
// - circle +
|
||||
// - line (straight line.) +
|
||||
// - NbrSol (number of solution.) +
|
||||
// - WellDone (Booleen showing success or failure of algorithm). +
|
||||
//=========================================================================
|
||||
|
||||
NbrSol = 2;
|
||||
@@ -41,15 +41,15 @@ GccAna_CircLin2dBisec::
|
||||
}
|
||||
|
||||
//=========================================================================
|
||||
// Traitement. +
|
||||
// On recupere les coordonees des origines de la droite (xloc,yloc) et +
|
||||
// du cercle (xcencir, ycencir). +
|
||||
// On recupere aussi les coordonees dela direction de la droite (xdir, +
|
||||
// ydir) et le rayon du cercle R1. +
|
||||
// On regarde de quel cote de la droite se trouve le centre du cercle +
|
||||
// pour orienter la parabole (signe). +
|
||||
// On cree l axe de chacune des paraboles (axeparab1, axeparb2), puis +
|
||||
// les deux paraboles (biscirlin1, biscirlin1). +
|
||||
// Processing. +
|
||||
// Return coordinates of origins of the straight line (xloc,yloc) and the +
|
||||
// circle (xcencir, ycencir). +
|
||||
// Also return the coordinates of the direction of the straight line (xdir, +
|
||||
// ydir) and the radius of circle R1. +
|
||||
// Check at which side of the straight line is found the center of the circle +
|
||||
// to orientate the parabola (sign). +
|
||||
// Create axis of each parabola (axeparab1, axeparb2), then +
|
||||
// two parabolas (biscirlin1, biscirlin1). +
|
||||
//=========================================================================
|
||||
|
||||
Handle(GccInt_Bisec) GccAna_CircLin2dBisec::
|
||||
|
@@ -4,7 +4,7 @@
|
||||
// <reg@topsn3>
|
||||
|
||||
//=========================================================================
|
||||
// CREATION DE LA BISSECTICE ENTRE UN CERCLE ET UN POINT. +
|
||||
// CREATION of the BISSECTICE between a CIRCLE and a POINT. +
|
||||
//=========================================================================
|
||||
|
||||
#include <GccAna_CircPnt2dBisec.ixx>
|
||||
@@ -31,13 +31,13 @@ GccAna_CircPnt2dBisec::
|
||||
point(Point) {
|
||||
|
||||
//=========================================================================
|
||||
// Initialisation des champs : +
|
||||
// - circle (Cercle : premier argument.) +
|
||||
// - line (Ligne : deuxieme argument.) +
|
||||
// - theposition (Entier indiquant la position de Point par +
|
||||
// rapport a Circle.) +
|
||||
// - NbrSol (Entier indiquant le nombre de solutions.) +
|
||||
// - WellDone (Booleen indiquant le succes ou non de l algo.). +
|
||||
// Initialization of fields : +
|
||||
// - circle ( first argument.) +
|
||||
// - line ( second argument.) +
|
||||
// - theposition (Integer showing the position of Point +
|
||||
// correspondingly to Circle.) +
|
||||
// - NbrSol (Integer showing the number of solutions.) +
|
||||
// - WellDone (Booleen showing the success or failure of the algorithm). +
|
||||
//=========================================================================
|
||||
|
||||
Standard_Real dist = Circle.Radius()-Point.Distance(Circle.Location());
|
||||
@@ -60,15 +60,15 @@ GccAna_CircPnt2dBisec::
|
||||
}
|
||||
|
||||
//=========================================================================
|
||||
// Traitement. +
|
||||
// On recupere les coordonees des origines de la droite (xloc,yloc) et +
|
||||
// du cercle (xcencirc, ycencirc). +
|
||||
// On recupere aussi les coordonees dela direction de la droite (xdir, +
|
||||
// ydir) et le rayon du cercle R1. +
|
||||
// On regarde de quel cote de la droite se trouve le centre du cercle +
|
||||
// pour orienter la parabole (signe). +
|
||||
// On cree l axe de chacune des paraboles (axeparab1, axeparb2), puis +
|
||||
// les deux paraboles (biscirPnt1, biscirPnt1). +
|
||||
// Processing. +
|
||||
// Return the coordinates of origins of the straight line (xloc,yloc) and+
|
||||
// of the circle (xcencirc, ycencirc). +
|
||||
// Also return the coordinates of the direction of the straight line (xdir, +
|
||||
// ydir) and the radius of circle R1. +
|
||||
// Check at which side of the straight line is found the center of circle +
|
||||
// to orientate the parabola (sign). +
|
||||
// Create axis of each parabola (axeparab1, axeparb2), then +
|
||||
// two parabolas (biscirPnt1, biscirPnt1). +
|
||||
//=========================================================================
|
||||
|
||||
Handle(GccInt_Bisec) GccAna_CircPnt2dBisec::
|
||||
@@ -100,7 +100,7 @@ Handle(GccInt_Bisec) GccAna_CircPnt2dBisec::
|
||||
gp_Ax2d majax(center,gp_Dir2d(xpoint-xcencir,ypoint-ycencir));
|
||||
|
||||
//=========================================================================
|
||||
// Le point est a l interieur du cercle. +
|
||||
// The point is inside the circle. +
|
||||
//=========================================================================
|
||||
|
||||
if (theposition == -1) {
|
||||
@@ -110,9 +110,9 @@ Handle(GccInt_Bisec) GccAna_CircPnt2dBisec::
|
||||
}
|
||||
|
||||
//=========================================================================
|
||||
// Le point est sur le cercle. +
|
||||
// Il y a une seule solution : la droite passant par point et le centre +
|
||||
// du cercle. +
|
||||
// The point is on the circle. +
|
||||
// There is only one solution : straight line passing through point and the center +
|
||||
// of the circle. +
|
||||
//=========================================================================
|
||||
|
||||
else if (theposition == 0) {
|
||||
@@ -126,8 +126,8 @@ Handle(GccInt_Bisec) GccAna_CircPnt2dBisec::
|
||||
}
|
||||
|
||||
//=========================================================================
|
||||
// Le point est a l exterieur du cercle. +
|
||||
// Il y a deux solutions : les deux branches principales de l hyperbole.+
|
||||
// The point is outside of the circle. +
|
||||
// There are two solutions : two main branches of the hyperbola.+
|
||||
//=========================================================================
|
||||
|
||||
else {
|
||||
|
@@ -1,8 +1,8 @@
|
||||
// File GccAna_Lin2d2Tan.cxx, REG 08/07/91
|
||||
|
||||
//=========================================================================
|
||||
// Droite tangente a deux cercles ou tangente a un cercle et passant +
|
||||
// par un point. +
|
||||
// Straight line tangent to two circles or tangent to a circle and passing +
|
||||
// through point. +
|
||||
//=========================================================================
|
||||
|
||||
#include <GccAna_Lin2d2Tan.ixx>
|
||||
@@ -17,7 +17,7 @@
|
||||
#include <GccEnt_BadQualifier.hxx>
|
||||
|
||||
//=========================================================================
|
||||
// Droite passant par deux points. +
|
||||
// Straight line passing through two points. +
|
||||
// =============================== +
|
||||
//=========================================================================
|
||||
|
||||
@@ -58,14 +58,13 @@ GccAna_Lin2d2Tan::
|
||||
}
|
||||
|
||||
//=========================================================================
|
||||
// Droite tangente a un cercle passant par un point. +
|
||||
// Straight line tangent to a circle passing by a point. +
|
||||
// ================================================= +
|
||||
// Suivant le qualifieur attache au cercle Qualified1 (C1) on definit +
|
||||
// la direction de la tangente a calculer. +
|
||||
// Cette tangente aura comme point d attache le point P1 (point de tan- +
|
||||
// gence avec le cercle. +
|
||||
// Elle fera un angle A (de sinus R1/dist ou -R1/dist) avec la droite +
|
||||
// passant par le centre du cercle et ThePoint. +
|
||||
// Basing on the qualifier attached to circle Qualified1 (C1) define +
|
||||
// the direction of the tangent to be calculated. +
|
||||
// This tangent will have connection point P1 (point of tangency with the circle. +
|
||||
// It has angle A (sinus R1/dist or -R1/dist) with straight line +
|
||||
// passing by the center of the circle and ThePoint. +
|
||||
//=========================================================================
|
||||
|
||||
GccAna_Lin2d2Tan::
|
||||
@@ -152,21 +151,21 @@ GccAna_Lin2d2Tan::
|
||||
}
|
||||
|
||||
//=========================================================================
|
||||
// Droite tangente a deux cercles. +
|
||||
// =============================== +
|
||||
// Dans le cas limite (les deux cercles tangents interieurs l un a +
|
||||
// l autre) on prend la droite orthogonale a la droite reliant les deux +
|
||||
// cercles. +
|
||||
// Dans les autres cas on fait subir au centre de C1 (Qualified1) ou de +
|
||||
// C2 (Qualified2), suivant que R1 est plus grand ou non que R2, une +
|
||||
// rotation d angle A avec sinus(A) = (R1+R2)/dist ou +
|
||||
// sinus(A) = (R1-R2)/dist ou +
|
||||
// sinus(A) = (R2-R1)/dist ou +
|
||||
// sinus(A) = (-R1-R2)/dist +
|
||||
// Le point ainsi determine est P1 ou P2. +
|
||||
// la direction de la droite a calculer est celle de la droite passant +
|
||||
// par le centre de la rotation (centre de C1 ou de C2) et P1 ou P2. +
|
||||
// On translate ensuite la droite pour la rendre tangente a C1. +
|
||||
// Straight line tangent to two circles. +
|
||||
// ==================================== +
|
||||
// In the boundary cas (two interior circles are tangent to each other) +
|
||||
// take the straight line orthogonal to the straight line connecting +
|
||||
// two circles. +
|
||||
// In other cases subject the center of C1 (Qualified1) or of +
|
||||
// C2 (Qualified2), provided that R1 is greater than R2, to a +
|
||||
// rotation of angle A with sinus(A) = (R1+R2)/dist or +
|
||||
// sinus(A) = (R1-R2)/dist or +
|
||||
// sinus(A) = (R2-R1)/dist or +
|
||||
// sinus(A) = (-R1-R2)/dist +
|
||||
// The point found this way is P1 or P2. +
|
||||
// The direction of the straight line to be calculated should pass by +
|
||||
// the center of rotation (center of C1 or of C2) and P1 or P2. +
|
||||
// Then translate the straight line to make it tangent to C1. +
|
||||
//=========================================================================
|
||||
|
||||
GccAna_Lin2d2Tan::
|
||||
|
@@ -1,8 +1,6 @@
|
||||
// File GccAna_Lin2dBisec.cxx, REG 08/07/91
|
||||
// JCT 06/07/98 on se fie a IntAna2d_AnaIntersection pour savoir si
|
||||
// les droites sont paralleles (PRO14405)
|
||||
//=========================================================================
|
||||
// CREATION DE LA BISSECTICE ENTRE DEUX DROITES. +
|
||||
// CREATION of the BISSECTICE between two STRAIGHT LINES. +
|
||||
//=========================================================================
|
||||
|
||||
#include <GccAna_Lin2dBisec.ixx>
|
||||
@@ -19,11 +17,11 @@
|
||||
#include <IntAna2d_IntPoint.hxx>
|
||||
|
||||
//=========================================================================
|
||||
// La premiere bissectrice calculee est la bisectrice interieure, la +
|
||||
// seconde est la bissectrice exterieure. +
|
||||
// la direction de la premiere bissectrice est telle que son produit +
|
||||
// scalaire avec la direction de Lin1 est toujours positif. +
|
||||
// La seconde bissectrice est tournee dans le sens positif. +
|
||||
// The first calculated bissectrice is the interior bisectrice, the +
|
||||
// second is the exterior bissectrice. +
|
||||
// the direction of the first bissectrice is such that its scalar product +
|
||||
// with direction of Lin1 is always positive. +
|
||||
// The second bissectrice is turned in the positive direction. +
|
||||
//=========================================================================
|
||||
|
||||
GccAna_Lin2dBisec::
|
||||
@@ -50,9 +48,9 @@ GccAna_Lin2dBisec::
|
||||
linsol(NbrSol) = gp_Lin2d(Lin1);
|
||||
}
|
||||
else {
|
||||
// Attention : ne pas utiliser dist = Lin1.Distance(Lin2);
|
||||
// car les droites sont peut-etre concourrentes pour gp_Lin2d
|
||||
// d'ou dist = 0.0 (test sur l'angle trop severe ?)
|
||||
// Attention : do not use dist = Lin1.Distance(Lin2);
|
||||
// as straight lines can be concurrent for gp_Lin2d
|
||||
// so dist = 0.0 (test of the angle too strict ?)
|
||||
Standard_Real dist = Lin1.Distance(Lin2.Location())/2.0;
|
||||
Standard_Real cross =
|
||||
gp_Vec2d ( -Lin2.Direction().Y() , Lin2.Direction().X() )
|
||||
|
@@ -1,8 +1,8 @@
|
||||
//File GccAna_Lin2dTanObl.cxx, REG 08/07/91
|
||||
|
||||
//=========================================================================
|
||||
// CREATION D UNE DROITE TANGENTE A UN CERCLE OU PASSANT PAR UN POINT +
|
||||
// ET FAISANT UN ANGLE A AVEC UNE DROITE. +
|
||||
// CREATION of a STRAIGHT LINE TANGENT to a CIRCLE or PASSING by a POINT +
|
||||
// and MAKING ANGLE A with a STRAIGHT LINE. +
|
||||
//=========================================================================
|
||||
|
||||
#include <GccAna_Lin2dTanObl.ixx>
|
||||
@@ -19,12 +19,12 @@
|
||||
#include <GccEnt_BadQualifier.hxx>
|
||||
|
||||
//=========================================================================
|
||||
// Creation d une droite passant par un point : ThePoint +
|
||||
// faisant un angle : TheAngle +
|
||||
// avec une droite : TheLine. +
|
||||
// On fait subir a la droite (ThePoint,TheLine.Location()) une rotation +
|
||||
// d angle TheAngle ==> D1. +
|
||||
// on cree la droite passant par ThePoint de direction D1. +
|
||||
// Creation of a straight line passing by a point : ThePoint +
|
||||
// making an angle : TheAngle +
|
||||
// with straight line : TheLine. +
|
||||
// Subject the straight line (ThePoint,TheLine.Location()) to a rotation +
|
||||
// by angle TheAngle ==> D1. +
|
||||
// create straight line passing through ThePoint of direction D1. +
|
||||
//=========================================================================
|
||||
|
||||
GccAna_Lin2dTanObl::
|
||||
@@ -72,12 +72,12 @@ GccAna_Lin2dTanObl::
|
||||
}
|
||||
|
||||
//=========================================================================
|
||||
// Creation d une droite tangent a un cercle : Qualified1 (C1) +
|
||||
// faisant un angle : TheAngle +
|
||||
// avec une droite : TheLine. +
|
||||
// On fait subir a la droite (C1.Location,TheLine.Location()) une +
|
||||
// rotation d angle TheAngle ou -TheAngle ==> D1. +
|
||||
// on cree la droite passant par C1 de direction D1. +
|
||||
// Creation of a straight line tangent to a circle : Qualified1 (C1) +
|
||||
// making angle : TheAngle +
|
||||
// with a straight line : TheLine. +
|
||||
// Subject the straight line (C1.Location,TheLine.Location()) to a +
|
||||
// rotation by angle TheAngle or -TheAngle ==> D1. +
|
||||
// create the straight line passing by C1 of direction D1. +
|
||||
//=========================================================================
|
||||
|
||||
GccAna_Lin2dTanObl::
|
||||
|
@@ -1,8 +1,8 @@
|
||||
// File GccAna_Lin2dTanPar.cxx, REG 08/07/91
|
||||
|
||||
//========================================================================
|
||||
// CREATION D UNE LIGNE TANGENTE A UN CERCLE OU PASSANT PAR UN POINT +
|
||||
// ET PARALLELE A UNE DROITE. +
|
||||
// CREATION of a LINE TANGENT to a CIRCLE or PASSING by a POINT +
|
||||
// and PARALLEL to a STRAIGHT DROITE. +
|
||||
//========================================================================
|
||||
|
||||
#include <GccAna_Lin2dTanPar.ixx>
|
||||
@@ -17,9 +17,9 @@
|
||||
#include <GccEnt_BadQualifier.hxx>
|
||||
|
||||
//========================================================================
|
||||
// Passant par un point : +
|
||||
// On cree la droite d origine ThePoint et +
|
||||
// de direction Lin1.Direction(). +
|
||||
// Passing by a point : +
|
||||
// Create the straight line with origin ThePoint and +
|
||||
// direction Lin1.Direction(). +
|
||||
//========================================================================
|
||||
|
||||
GccAna_Lin2dTanPar::
|
||||
@@ -43,14 +43,14 @@ GccAna_Lin2dTanPar::
|
||||
}
|
||||
|
||||
//========================================================================
|
||||
// Tangent a un cercle : +
|
||||
// On cree suivant le qualifieur la droite +
|
||||
// - d origine P1 (P1 est un point d intersection entre C1 et +
|
||||
// une droite passant par le centre de C1 et de +
|
||||
// direction la normale a Lin1). +
|
||||
// le choix du point d intersection est fonction +
|
||||
// du qualifieur. +
|
||||
// - de direction la direction de Lin1. +
|
||||
// Tangent to a circle : +
|
||||
// Create following the qualifier the straight line +
|
||||
// - with origin P1 (P1 is a point of intersection between C1 and +
|
||||
// a straight line passing by the center of C1 and +
|
||||
// direction the normal to Lin1). +
|
||||
// the choice of the point of intersection depends +
|
||||
// on the qualifier. +
|
||||
// - with direction the direction of Lin1. +
|
||||
//========================================================================
|
||||
|
||||
GccAna_Lin2dTanPar::
|
||||
|
@@ -1,8 +1,8 @@
|
||||
// File GccAna_Lin2dTanPer.cxx, REG 08/07/91
|
||||
|
||||
//=========================================================================
|
||||
// CREATION D UNE DROITE TANGENTE A UN CERCLE OU PASSANT PAR UN POINT +
|
||||
// ET ORTHOGONALE A UNE DROITE. +
|
||||
// CREATION of a STRAIGHT LINE TANGENT to a CIRCLE or PASSING by a POINT +
|
||||
// and ORTHOGONAL to a STRAIGHT LINE. +
|
||||
//=========================================================================
|
||||
|
||||
#include <GccAna_Lin2dTanPer.ixx>
|
||||
@@ -19,10 +19,10 @@
|
||||
#include <IntAna2d_IntPoint.hxx>
|
||||
|
||||
//=========================================================================
|
||||
// Droite passant par un point : ThePoint et +
|
||||
// orthogonale a une droite : TheLin. +
|
||||
// On cree la droite d origine : ThePoint +
|
||||
// et de direction : TheLin.Direction() tournee de 90 +
|
||||
// Straight line passing by point : ThePoint and +
|
||||
// orthogonal to straight line : TheLin. +
|
||||
// Create the straight line of origin : ThePoint +
|
||||
// and direction : TheLin.Direction() turned by 90 +
|
||||
//=========================================================================
|
||||
|
||||
GccAna_Lin2dTanPer::
|
||||
@@ -60,10 +60,10 @@ GccAna_Lin2dTanPer::
|
||||
}
|
||||
|
||||
//=========================================================================
|
||||
// Droite passant par un point : ThePnt +
|
||||
// et orthogonale a un cercle : TheCircle. +
|
||||
// On cree la droite d origine : ThePoint +
|
||||
// et de direction : (TheCircle.Location(),ThePnt). +
|
||||
// Straight line passing by point : ThePnt +
|
||||
// and orthogonal to circle : TheCircle. +
|
||||
// Create the straight line of origin : ThePoint +
|
||||
// and direction : (TheCircle.Location(),ThePnt). +
|
||||
//=========================================================================
|
||||
|
||||
GccAna_Lin2dTanPer::
|
||||
@@ -104,10 +104,10 @@ GccAna_Lin2dTanPer::
|
||||
}
|
||||
|
||||
//=========================================================================
|
||||
// Droite tangente a un cercle : Qualified1 (C1) +
|
||||
// et orthogonale a une droite : TheLin. +
|
||||
// On cree la droite d origine : P1 (sur C1) +
|
||||
// et de direction : TheLin.Direction() tournee de 90` +
|
||||
// Straight line tangent to circle : Qualified1 (C1) +
|
||||
// and orthogonal to straight line : TheLin. +
|
||||
// Create straight line of origin : P1 (on C1) +
|
||||
// and direction : TheLin.Direction() turned by 90` +
|
||||
//=========================================================================
|
||||
|
||||
GccAna_Lin2dTanPer::
|
||||
@@ -175,10 +175,10 @@ GccAna_Lin2dTanPer::
|
||||
}
|
||||
|
||||
//=========================================================================
|
||||
// Droite tangente a un cercle : Qualified1 (C1) +
|
||||
// et orthogonale a un cercle : TheCircle. +
|
||||
// On cree la droite d origine : P1 (sur C1) +
|
||||
// et de direction : TheLin.Direction() tournee de 90` +
|
||||
// Straight line tangent to circle : Qualified1 (C1) +
|
||||
// and orthogonal to circle : TheCircle. +
|
||||
// Create straight line of origin : P1 (on C1) +
|
||||
// and direction : TheLin.Direction() turned by 90` +
|
||||
//=========================================================================
|
||||
|
||||
GccAna_Lin2dTanPer::
|
||||
|
@@ -5,7 +5,7 @@
|
||||
|
||||
|
||||
//=========================================================================
|
||||
// CREATION DE LA BISSECTRICE ENTRE UNE DROITE ET UN POINTS. +
|
||||
// CREATION of the BISSECTRICE between a DROITE and POINTS. +
|
||||
//=========================================================================
|
||||
|
||||
#include <GccAna_LinPnt2dBisec.ixx>
|
||||
|
@@ -5,7 +5,7 @@
|
||||
|
||||
|
||||
//=========================================================================
|
||||
// CREATION DE LA BISSECTRICE ENTRE DEUX POINTS. +
|
||||
// CREATION of the BISSECTRICE between two POINTS. +
|
||||
//=========================================================================
|
||||
|
||||
#include <GccAna_Pnt2dBisec.ixx>
|
||||
|
Reference in New Issue
Block a user