#include <StdFail_NotDone.hxx>
#include <TColStd_Array1OfReal.hxx>
+static const Standard_Integer aNbSolMAX = 8;
+
//=========================================================================
// Cercle tangent : a un cercle Qualified1 (C1). +
// centre : sur une droite OnLine. +
// Initialisation des champs. +
//=========================================================================
-cirsol(1,8) ,
-qualifier1(1,8) ,
-TheSame1(1,8) ,
-pnttg1sol(1,8) ,
-pntcen3(1,8) ,
-par1sol(1,8) ,
-pararg1(1,8) ,
-parcen3(1,8)
+cirsol(1,aNbSolMAX) ,
+qualifier1(1,aNbSolMAX) ,
+TheSame1(1,aNbSolMAX) ,
+pnttg1sol(1,aNbSolMAX) ,
+pntcen3(1,aNbSolMAX) ,
+par1sol(1,aNbSolMAX) ,
+pararg1(1,aNbSolMAX) ,
+parcen3(1,aNbSolMAX)
{
//=========================================================================
Intp.Perform(OnLine,D1,C2,D2,Tol,Tol);
if (Intp.IsDone()) {
if (!Intp.IsEmpty()) {
- for (Standard_Integer i = 1 ; i <= Intp.NbPoints() ; i++) {
+ for (Standard_Integer i = 1 ; i <= Intp.NbPoints() && NbrSol < aNbSolMAX; i++) {
NbrSol++;
gp_Pnt2d Center(Intp.Point(i).Value());
cirsol(NbrSol) = gp_Circ2d(gp_Ax2d(Center,dirx),Radius);
// Initialisation des champs. +
//=========================================================================
-cirsol(1,8) ,
-qualifier1(1,8) ,
-TheSame1(1,8) ,
-pnttg1sol(1,8) ,
-pntcen3(1,8) ,
-par1sol(1,8) ,
-pararg1(1,8) ,
-parcen3(1,8)
+cirsol(1,aNbSolMAX) ,
+qualifier1(1,aNbSolMAX) ,
+TheSame1(1,aNbSolMAX) ,
+pnttg1sol(1,aNbSolMAX) ,
+pntcen3(1,aNbSolMAX) ,
+par1sol(1,aNbSolMAX) ,
+pararg1(1,aNbSolMAX) ,
+parcen3(1,aNbSolMAX)
{
//=========================================================================
Intp.Perform(OnCirc,D1,C2,D2,Tol,Tol);
if (Intp.IsDone()) {
if (!Intp.IsEmpty()) {
- for (Standard_Integer i = 1 ; i <= Intp.NbPoints() ; i++) {
+ for (Standard_Integer i = 1 ; i <= Intp.NbPoints() && NbrSol < aNbSolMAX; i++) {
NbrSol++;
gp_Pnt2d Center(Intp.Point(i).Value());
cirsol(NbrSol) = gp_Circ2d(gp_Ax2d(Center,dirx),Radius);
// Initialisation des champs. +
//=========================================================================
-cirsol(1,8) ,
-qualifier1(1,8) ,
-TheSame1(1,8) ,
-pnttg1sol(1,8) ,
-pntcen3(1,8) ,
-par1sol(1,8) ,
-pararg1(1,8) ,
-parcen3(1,8)
+cirsol(1,aNbSolMAX) ,
+qualifier1(1,aNbSolMAX) ,
+TheSame1(1,aNbSolMAX) ,
+pnttg1sol(1,aNbSolMAX) ,
+pntcen3(1,aNbSolMAX) ,
+par1sol(1,aNbSolMAX) ,
+pararg1(1,aNbSolMAX) ,
+parcen3(1,aNbSolMAX)
{
//=========================================================================
Intp.Perform(Circ,D1,OnCurv,D2,Tol,Tol);
if (Intp.IsDone()) {
if (!Intp.IsEmpty()) {
- for (Standard_Integer i = 1 ; i <= Intp.NbPoints() ; i++) {
+ for (Standard_Integer i = 1 ; i <= Intp.NbPoints() && NbrSol < aNbSolMAX; i++) {
NbrSol++;
gp_Pnt2d Center(Intp.Point(i).Value());
cirsol(NbrSol) = gp_Circ2d(gp_Ax2d(Center,dirx),Radius);
// Initialisation des champs. +
//=========================================================================
-cirsol(1,8) ,
-qualifier1(1,8) ,
-TheSame1(1,8) ,
-pnttg1sol(1,8) ,
-pntcen3(1,8) ,
-par1sol(1,8) ,
-pararg1(1,8) ,
-parcen3(1,8)
+cirsol(1,aNbSolMAX) ,
+qualifier1(1,aNbSolMAX) ,
+TheSame1(1,aNbSolMAX) ,
+pnttg1sol(1,aNbSolMAX) ,
+pntcen3(1,aNbSolMAX) ,
+par1sol(1,aNbSolMAX) ,
+pararg1(1,aNbSolMAX) ,
+parcen3(1,aNbSolMAX)
{
//=========================================================================
Intp.Perform(Line,D1,OnCurv,D2,Tol,Tol);
if (Intp.IsDone()) {
if (!Intp.IsEmpty()) {
- for (Standard_Integer i = 1 ; i <= Intp.NbPoints() ; i++) {
+ for (Standard_Integer i = 1 ; i <= Intp.NbPoints() && NbrSol < aNbSolMAX; i++) {
NbrSol++;
gp_Pnt2d Center(Intp.Point(i).Value());
cirsol(NbrSol) = gp_Circ2d(gp_Ax2d(Center,dirx),Radius);
// Initialisation des champs. +
//=========================================================================
-cirsol(1,8) ,
-qualifier1(1,8) ,
-TheSame1(1,8) ,
-pnttg1sol(1,8) ,
-pntcen3(1,8) ,
-par1sol(1,8) ,
-pararg1(1,8) ,
-parcen3(1,8)
+cirsol(1,aNbSolMAX) ,
+qualifier1(1,aNbSolMAX) ,
+TheSame1(1,aNbSolMAX) ,
+pnttg1sol(1,aNbSolMAX) ,
+pntcen3(1,aNbSolMAX) ,
+par1sol(1,aNbSolMAX) ,
+pararg1(1,aNbSolMAX) ,
+parcen3(1,aNbSolMAX)
{
//=========================================================================
Intp.Perform(C1,D1,C2,D2,Tol,Tol);
if (Intp.IsDone()) {
if (!Intp.IsEmpty()) {
- for (Standard_Integer i = 1 ; i <= Intp.NbPoints() ; i++) {
+ for (Standard_Integer i = 1 ; i <= Intp.NbPoints() && NbrSol < aNbSolMAX; i++) {
NbrSol++;
gp_Pnt2d Center(Intp.Point(i).Value());
cirsol(NbrSol) = gp_Circ2d(gp_Ax2d(Center,dirx),Radius);
// Initialisation des champs. +
//=========================================================================
-cirsol(1,8) ,
-qualifier1(1,8) ,
-TheSame1(1,8) ,
-pnttg1sol(1,8) ,
-pntcen3(1,8) ,
-par1sol(1,8) ,
-pararg1(1,8) ,
-parcen3(1,8)
+cirsol(1,aNbSolMAX) ,
+qualifier1(1,aNbSolMAX) ,
+TheSame1(1,aNbSolMAX) ,
+pnttg1sol(1,aNbSolMAX) ,
+pntcen3(1,aNbSolMAX) ,
+par1sol(1,aNbSolMAX) ,
+pararg1(1,aNbSolMAX) ,
+parcen3(1,aNbSolMAX)
{
//=========================================================================
Geom2dInt_TheIntConicCurveOfGInter Intp(Circ,D1,OnCurv,D2,Tol,Tol);
if (Intp.IsDone()) {
if (!Intp.IsEmpty()) {
- for (Standard_Integer i = 1 ; i <= Intp.NbPoints() ; i++) {
+ for (Standard_Integer i = 1 ; i <= Intp.NbPoints() && NbrSol < aNbSolMAX; i++) {
NbrSol++;
gp_Pnt2d Center(Intp.Point(i).Value());
cirsol(NbrSol) = gp_Circ2d(gp_Ax2d(Center,dirx),Radius);