Replacing french comments by english one
authorbugmaster <>
Thu, 28 Apr 2011 16:28:27 +0000 (16:28 +0000)
committerbugmaster <bugmaster@opencascade.com>
Mon, 5 Mar 2012 15:28:25 +0000 (19:28 +0400)
140 files changed:
src/AIS/AIS_AngleDimension.cxx
src/AIS/AIS_ConcentricRelation.cxx
src/AIS/AIS_ConnectedInteractive.cxx
src/AIS/AIS_ConnectedShape.cxx
src/AIS/AIS_EqualDistanceRelation.cxx
src/AIS/AIS_ExclusionFilter.cxx
src/AIS/AIS_FixRelation.cxx
src/AIS/AIS_IdenticRelation.cxx
src/AIS/AIS_InteractiveContext.cxx
src/AIS/AIS_InteractiveContext_1.cxx
src/AIS/AIS_InteractiveContext_2.cxx
src/AIS/AIS_LengthDimension.cxx
src/AIS/AIS_LocalContext.cxx
src/AIS/AIS_LocalContext_1.cxx
src/AIS/AIS_Plane.cxx
src/AIS/AIS_PlaneTrihedron.cxx
src/AIS/AIS_Selection.cxx
src/AIS/AIS_Shape.cxx
src/AIS/AIS_TangentRelation.cxx
src/AIS/AIS_TexturedShape.cxx
src/AIS/AIS_Trihedron.cxx
src/BOP/BOP_SolidClassifier.cxx
src/BOP/BOP_WireEdgeSet.cxx
src/BRepBlend/BRepBlend.cdl
src/BRepBlend/BRepBlend_AppFuncRoot.cxx
src/BRepBlend/BRepBlend_RstRstConstRad.cxx
src/BRepBlend/BRepBlend_RstRstEvolRad.cxx
src/BRepBlend/BRepBlend_RstRstLineBuilder.cxx
src/BRepBlend/BRepBlend_SurfRstConstRad.cxx
src/BRepBlend/BRepBlend_SurfRstEvolRad.cxx
src/BRepBlend/BRepBlend_SurfRstLineBuilder.cxx
src/BlendFunc/BlendFunc_ConstRad.cxx
src/BlendFunc/BlendFunc_ConstRadInv.cxx
src/BlendFunc/BlendFunc_Corde.cdl
src/BlendFunc/BlendFunc_Corde.cxx
src/BlendFunc/BlendFunc_EvolRad.cxx
src/ChFi2d/ChFi2d_Builder.cxx
src/ChFi3d/ChFi3d.cxx
src/ChFi3d/ChFi3d_Builder.cdl
src/ChFi3d/ChFi3d_Builder.cxx
src/ChFi3d/ChFi3d_Builder_0.cxx
src/ChFi3d/ChFi3d_Builder_1.cxx
src/ChFi3d/ChFi3d_Builder_2.cxx
src/ChFi3d/ChFi3d_Builder_6.cxx
src/ChFi3d/ChFi3d_Builder_C1.cxx
src/ChFi3d/ChFi3d_Builder_C2.cxx
src/ChFi3d/ChFi3d_Builder_CnCrn.cxx
src/ChFi3d/ChFi3d_Builder_SpKP.cxx
src/ChFi3d/ChFi3d_ChBuilder.cxx
src/ChFi3d/ChFi3d_Debug.cxx
src/ChFi3d/ChFi3d_FilBuilder.cxx
src/ChFi3d/ChFi3d_FilBuilder_C2.cxx
src/ChFi3d/ChFi3d_FilBuilder_C3.cxx
src/ChFiDS/ChFiDS_FilSpine.cxx
src/ChFiDS/ChFiDS_Spine.cdl
src/ChFiDS/ChFiDS_Spine.cxx
src/ChFiKPart/ChFiKPart_ComputeData.cxx
src/ChFiKPart/ChFiKPart_ComputeData_ChAsymPlnCon.cxx
src/ChFiKPart/ChFiKPart_ComputeData_ChAsymPlnCyl.cxx
src/ChFiKPart/ChFiKPart_ComputeData_ChPlnCyl.cxx
src/ChFiKPart/ChFiKPart_ComputeData_Fcts.cxx
src/ChFiKPart/ChFiKPart_ComputeData_FilPlnCon.cxx
src/ChFiKPart/ChFiKPart_ComputeData_FilPlnCyl.cxx
src/ChFiKPart/ChFiKPart_ComputeData_Sphere.cxx
src/DsgPrs/DsgPrs_AnglePresentation.cxx
src/DsgPrs/DsgPrs_Chamf2dPresentation.cxx
src/DsgPrs/DsgPrs_DiameterPresentation.cxx
src/DsgPrs/DsgPrs_LengthPresentation.cxx
src/DsgPrs/DsgPrs_ParalPresentation.cxx
src/DsgPrs/DsgPrs_SymmetricPresentation.cxx
src/Dynamic/Dynamic_FuzzyDefinitionsDictionary.cxx
src/Dynamic/Dynamic_MethodDefinitionsDictionary.cxx
src/FilletSurf/FilletSurf_InternalBuilder.cxx
src/Graphic2d/Graphic2d_Buffer.cxx
src/Graphic2d/Graphic2d_Circle.cxx
src/Graphic2d/Graphic2d_Drawer.cxx
src/Graphic2d/Graphic2d_Ellips.cxx
src/Graphic2d/Graphic2d_EllipsMarker.cxx
src/Graphic2d/Graphic2d_FramedText.cxx
src/Graphic2d/Graphic2d_GraphicObject.cxx
src/Graphic2d/Graphic2d_HidingText.cxx
src/Graphic2d/Graphic2d_Image.cxx
src/Graphic2d/Graphic2d_ImageFile.cxx
src/Graphic2d/Graphic2d_Paragraph.cxx
src/Graphic2d/Graphic2d_SetOfPolylines.cxx
src/Graphic2d/Graphic2d_Text.cxx
src/Graphic2d/Graphic2d_View.cxx
src/Graphic3d/Graphic3d_AspectFillArea3d.cxx
src/Graphic3d/Graphic3d_AspectLine3d.cxx
src/Graphic3d/Graphic3d_AspectMarker3d.cxx
src/Graphic3d/Graphic3d_AspectText3d.cxx
src/Graphic3d/Graphic3d_GraphicDevice.cxx
src/Graphic3d/Graphic3d_Group.cdl
src/Graphic3d/Graphic3d_Group.cxx
src/Graphic3d/Graphic3d_Group_2.cxx
src/Graphic3d/Graphic3d_MaterialAspect.cxx
src/Graphic3d/Graphic3d_Structure.cxx
src/Graphic3d/Graphic3d_StructureManager.cxx
src/Graphic3d/Graphic3d_TextureRoot.cxx
src/Graphic3d/Graphic3d_VertexC.cxx
src/Graphic3d/Graphic3d_VertexNC.cxx
src/Graphic3d/Graphic3d_WNTGraphicDevice.cxx
src/IntTools/IntTools_FClass2d.cxx
src/IntTools/IntTools_FaceFace.cxx
src/IntTools/IntTools_LineConstructor.cxx
src/Prs3d/Prs3d_Arrow.cxx
src/PrsMgr/PrsMgr_Presentation3d.cxx
src/Select3D/Select3D_SensitiveCircle.cxx
src/Select3D/Select3D_SensitiveFace.cxx
src/Select3D/Select3D_SensitiveGroup.cxx
src/Select3D/Select3D_SensitiveTriangle.cxx
src/Select3D/Select3D_SensitiveTriangulation.cxx
src/SelectMgr/SelectMgr_SelectionManager.cxx
src/SelectMgr/SelectMgr_ViewerSelector.cxx
src/StdPrs/StdPrs_HLRPolyShape.cxx
src/StdPrs/StdPrs_ShadedPoleSurface.cxx
src/StdPrs/StdPrs_ShadedSurface.cxx
src/StdSelect/StdSelect_BRepHilighter.cxx
src/StdSelect/StdSelect_BRepSelectionTool.cxx
src/StdSelect/StdSelect_FaceFilter.cxx
src/V2d/V2d_DefaultMap.cxx
src/V3d/V3d.cxx
src/V3d/V3d_Camera.cxx
src/V3d/V3d_CircularGrid.cxx
src/V3d/V3d_DirectionalLight.cxx
src/V3d/V3d_Light.cxx
src/V3d/V3d_PositionLight.cxx
src/V3d/V3d_PositionalLight.cxx
src/V3d/V3d_RectangularGrid.cxx
src/V3d/V3d_SpotLight.cxx
src/V3d/V3d_View_1.cxx
src/V3d/V3d_View_4.cxx
src/Visual3d/Visual3d_ContextView.cxx
src/Visual3d/Visual3d_Light.cxx
src/Visual3d/Visual3d_PickDescriptor.cxx
src/Visual3d/Visual3d_PickPath.cxx
src/Visual3d/Visual3d_View.cxx
src/Visual3d/Visual3d_ViewManager.cxx
src/Visual3d/Visual3d_ViewMapping.cxx
src/Visual3d/Visual3d_ViewOrientation.cxx

index d5be231..3379452 100755 (executable)
@@ -805,7 +805,7 @@ void AIS_AngleDimension::ComputeTwoEdgesAngle(const Handle(Prs3d_Presentation)&
     return;
   }
   // Temporary: computation of myVal
-  //  myVal = Abs(geom_lin1->Lin().Angle( geom_lin2->Lin())); // Pb avec les angles JPR
+  //  myVal = Abs(geom_lin1->Lin().Angle( geom_lin2->Lin())); // Pb with angles JPR
 
   if (copyOfMyExtShape != 0) myExtShape = copyOfMyExtShape;  
 
@@ -833,7 +833,7 @@ void AIS_AngleDimension::ComputeTwoEdgesAngle(const Handle(Prs3d_Presentation)&
 #endif
 
 
-  // Traitement du cas ou les 2 droites sont paralleles
+  // Processing in  case of 2 parallel straight lines
   if (lin1_2d->Lin2d().Direction()
       .IsParallel(lin2_2d->Lin2d().Direction(),Precision::Angular())) {    
     ComputeTwoEdgesNullAngle(aPresentation,
@@ -844,7 +844,7 @@ void AIS_AngleDimension::ComputeTwoEdgesAngle(const Handle(Prs3d_Presentation)&
                             isInfinite1,isInfinite2);
   }
   
-  // Traitement du cas ou les 2 droites ne sont pas paralleles
+  // Processing in case of 2 non-parallel straight lines
   else {
     ComputeTwoEdgesNotNullAngle(aPresentation,
                                geom_lin1,
@@ -1035,7 +1035,7 @@ void AIS_AngleDimension::ComputeTwoEdgesNotNullAngle(const Handle(Prs3d_Presenta
     Standard_Real par = ElCLib::Parameter(circle,curpos);
     curpos = ElCLib::Value(par,circle);    
 
-    // un petit offset comme LengthDimension
+    // small offset like in LengthDimension
     gp_Vec transl(myCenter, curpos);
     transl*= 0.3;
     curpos.Translate(transl);
@@ -1048,7 +1048,7 @@ void AIS_AngleDimension::ComputeTwoEdgesNotNullAngle(const Handle(Prs3d_Presenta
   }
 
   else {
-  // on projette le point dans le plan
+  // point is projected on the plane
     gp_Pnt2d pointOnPln(ProjLib::Project(myPlane->Pln(),myPosition));
     myPosition = BRepAdaptor_Surface(BRepBuilderAPI_MakeFace(myPlane->Pln()).Face()).Value(pointOnPln.X(),pointOnPln.Y());
     curpos = myPosition;
@@ -1058,10 +1058,10 @@ void AIS_AngleDimension::ComputeTwoEdgesNotNullAngle(const Handle(Prs3d_Presenta
       curpos.SetXYZ(curpos.XYZ()+delta);
       dist = curpos.Distance(myCenter);
     }
-    // Pour savoir si on doit prendre la distance -dist ou non
-    // il faut savoir si on est dans le secteur oppose a l'angle
-    // ou non : on est dans le secteur oppose si les coordonnees
-    // de curpos dans le repere (d1,d2) sont negatives
+    // To learn if it is necessary to take distance -dist or not
+    // it is necessary to know if we are in the sector opposite to the angle
+    // if not : we are in the opposite sector if the coordinates
+    // of curpos in point (d1,d2) are negative
     gp_Ax2 ax(myCenter,myFDir.Crossed(mySDir),myFDir);
     gp_Circ circle(ax,dist);
 #ifdef DEB
@@ -1075,7 +1075,7 @@ void AIS_AngleDimension::ComputeTwoEdgesNotNullAngle(const Handle(Prs3d_Presenta
     Standard_Real ufin = uc2;
     if (uco > ufin) {
       if (Abs(myVal)<PI) {
-       // test si uco est dans le secteur oppose 
+       // test if uco is in the opposite sector 
        if (uco > udeb+PI && uco < ufin+PI){
          dist = -dist;
        }
@@ -1172,14 +1172,14 @@ void AIS_AngleDimension::ComputeTwoEdgesNullAngle(const Handle(Prs3d_Presentatio
   gp_Lin gpl2 = l2->Lin();
 
   //------------------------------------------------------------
-  //                Calcul de myCenter
-  // -> Point situe sur la ligne mediane des 2 droites,
-  //    calcule comme etant le milieu des 2 points les plus
-  //    proches de chaque droite.
+  //                Computation of myCenter
+  // -> Point located on the median of 2 straight lines,
+  //    is calculated as located between 2 closest points 
+  //    of each straight line.
   //-----------------------------------------------------------
-     //   theLength : rayon du futur cercle
+     //   theLength : radius of the future circle
   Standard_Real theLength = gpl1.Distance(gpl2.Location());
-  // traitement du cas particulier ou les 2 droites sont confondues
+  // processing of the particular case when 2 straight lines are coincident
   Standard_Boolean SameLines(Standard_False);
   if ( theLength <= Precision::Confusion()) {
     SameLines = Standard_True;
@@ -1247,9 +1247,9 @@ void AIS_AngleDimension::ComputeTwoEdgesNullAngle(const Handle(Prs3d_Presentatio
     if ( V1.CrossMagnitude(V2) < 0 ) theaxis.Reverse();
   }
 
-  gp_Pnt curpos; // position du curseur
+  gp_Pnt curpos; // cursor position
   TColStd_Array1OfReal tabdist(1,4);
-  gp_Pnt P1, P2; // points d'intersection du cercle avec les 2 droites
+  gp_Pnt P1, P2; // points at intersection of the circle with 2 straight lines
  
   if (myAutomaticPosition) {
     if (!isInfinite1) {
@@ -1279,9 +1279,9 @@ void AIS_AngleDimension::ComputeTwoEdgesNullAngle(const Handle(Prs3d_Presentatio
 
       myCenter.Translate(gp_Vec(d1)*theLength);
 
-      // calcul des points d'attache de la cote 
-      //  -> ils sont != des points d'intersection si les 
-      //     intersection sont en dehors des limites des edges
+      // calculate attachments of the face 
+      //  -> they are points of intersection if  
+      //     intersection is outside of the edges
       Standard_Real pparam = ElCLib::Parameter(gpl1,myFAttach);
       Standard_Real pparam1 = ElCLib::Parameter(gpl1,ptat11);
       Standard_Real pparam2 = ElCLib::Parameter(gpl1,ptat12);
@@ -1315,8 +1315,8 @@ void AIS_AngleDimension::ComputeTwoEdgesNullAngle(const Handle(Prs3d_Presentatio
       Handle(Geom_Circle)  circle = new Geom_Circle(AX,theLength);
       Handle(Geom2d_Curve) geoCurve = GeomAPI::To2d(circle,myPlane->Pln());
       Handle(Geom2d_Circle) c2d = *((Handle(Geom2d_Circle)*)& geoCurve);
-      // calcul du point d'intersection du cercle avec l1
-      Standard_Real pparam; // parametre du point d'intersection sur l1
+      // calculate the intersection of circle with l1
+      Standard_Real pparam; // parameter of the point of intersection on l1
       IntAna2d_AnaIntersection inter(l1_2d->Lin2d(),c2d->Circ2d());
       gp_Pnt2d pint1(inter.Point(1).Value());
       gp_Pnt2d pint2(inter.Point(2).Value());
@@ -1382,18 +1382,18 @@ void AIS_AngleDimension::ComputeTwoEdgesNullAngle(const Handle(Prs3d_Presentatio
     gp_Lin Media(myCenter, gpl1.Direction());
     Standard_Real pcurpos = ElCLib::Parameter(Media, curpos);
     myCenter =  ElCLib::Value(pcurpos, Media);
-    // on translate le centre de facon a avoir un rayon constant!
+    // the centre is translated to avoid a constant radius!
     myCenter.Translate(-theLength*gp_Vec(gpl1.Direction()));
     gp_Ax2 AX(myCenter,theaxis,gpl1.Direction());
     Handle(Geom_Circle)  circle = new Geom_Circle(AX,theLength);
 
-    // remise a jour de curpos
+    // re-update curpos
     pcurpos = ElCLib::Parameter(circle->Circ(), curpos);
     curpos = ElCLib::Value(pcurpos, circle->Circ());
 
     Handle(Geom2d_Curve) geoCurve = GeomAPI::To2d(circle,myPlane->Pln());
     Handle(Geom2d_Circle) c2d = *((Handle(Geom2d_Circle)*)& geoCurve);
-    // calcul du point d'intersection du cercle avec l1
+    // calculate the point of intersection of circle with l1
     IntAna2d_AnaIntersection inter(l1_2d->Lin2d(),c2d->Circ2d());
     gp_Pnt2d pint1(inter.Point(1).Value());
     gp_Pnt2d pint2(inter.Point(2).Value());
@@ -1403,9 +1403,9 @@ void AIS_AngleDimension::ComputeTwoEdgesNullAngle(const Handle(Prs3d_Presentatio
     else myFAttach = Int2;
     P1 = myFAttach;
     
-    // calcul du point d'intersection du cercle avec l2
-    // -> c'est la projection car le cercle a son centre
-    //    au milieu de l1 et l2
+    // calculate the point of intersection of circle with l2
+    // -> this is the projection because the centre of circle
+    //    is in the middle of l1 and l2
     Standard_Real pparam = ElCLib::Parameter(gpl2,myFAttach);
     mySAttach = ElCLib::Value(pparam, gpl2);
 
@@ -1598,9 +1598,8 @@ void AIS_AngleDimension::Compute3DSelection( const Handle( SelectMgr_Selection )
 
 //=======================================================================
 //function : Compute2DSelection
-//purpose  : calcule les zones de selection sur une cote d'angle entre 2
-//           edges
-//            Traitement particulier pour les angles nuls!
+//purpose  : compute zones of selection on a side of angle between 2 edges
+//           Special processing of zero angles!
 //=======================================================================
 
 void AIS_AngleDimension::Compute2DSelection(const Handle(SelectMgr_Selection)& aSelection)
@@ -1636,7 +1635,7 @@ void AIS_AngleDimension::Compute2DSelection(const Handle(SelectMgr_Selection)& a
   }
   
   //----------------------------------------------------------
-  //  Cas classique ( angle != 0 )
+  //  Classic case  ( angle != 0 )
   else {
 
     if (myFDir.IsParallel(mySDir,Precision::Angular())) {
@@ -1679,7 +1678,7 @@ void AIS_AngleDimension::Compute2DSelection(const Handle(SelectMgr_Selection)& a
       
       if (uco > ufin) {
        if (Abs(myVal)<PI) {
-         // test si uco est dans le secteur oppose 
+         // test if uco is in the opposing sector 
          if (uco > udeb+PI && uco < ufin+PI){
            udeb = udeb + PI;
          ufin = ufin + PI;
@@ -1695,7 +1694,7 @@ void AIS_AngleDimension::Compute2DSelection(const Handle(SelectMgr_Selection)& a
       p1   = ElCLib::Value(udeb,cer);
       p2   = ElCLib::Value(ufin,cer);
       
-      //Creation des 2 owners pour chaque partie de la fleche
+      //Create 2 owners for each part of the arrow
       Handle(AIS_DimensionOwner) own1 = new AIS_DimensionOwner(this,7);
       Handle(AIS_DimensionOwner) own2 = new AIS_DimensionOwner(this,7);
       if (myExtShape != 0) {
@@ -1772,7 +1771,7 @@ void AIS_AngleDimension::ComputeNull2DSelection(
 
   if (uco > ufin) {
     if (Abs(myVal)<PI) {
-      // test si uco est dans le secteur oppose 
+      // test if uco is in the opposing sector 
       if (uco > udeb+PI && uco < ufin+PI){
        udeb = udeb + PI;
        ufin = ufin + PI;
@@ -1791,7 +1790,7 @@ void AIS_AngleDimension::ComputeNull2DSelection(
     }
   }
 
-  //Creation des 2 owners pour chaque partie de la fleche
+  //Create 2 owners for each part of the arrow
   Handle(AIS_DimensionOwner) own1 = new AIS_DimensionOwner(this,7);
   Handle(AIS_DimensionOwner) own2 = new AIS_DimensionOwner(this,7);
   if (myExtShape != 0) {
@@ -1821,7 +1820,7 @@ void AIS_AngleDimension::ComputeNull2DSelection(
     aSelection->Add(scurv);
   }
   else {
-    // on trace un bout de segment pour permettre la selection
+    // find end of segment to allow selection
     gp_Vec VTrans(myFDir.Crossed(Norm));
     Handle(Select3D_SensitiveSegment) seg1;
     seg1 = new Select3D_SensitiveSegment(own1, 
index 723d9e8..83fa5da 100755 (executable)
@@ -173,8 +173,8 @@ void AIS_ConcentricRelation::ComputeTwoEdgesConcentric(const Handle(Prs3d_Presen
   
   myCenter = gcirc1->Location();
   
-  // on choisit le rayon egal a 1/5 ieme du rayon du plus petit des
-  // 2 cercles. On impose une borne sup au rayon( 0.02 au hasard)
+  // choose the radius equal to 1/5 of the smallest radius of 
+  // 2 circles. Limit is imposed ( 0.02 by chance)
   Standard_Real rad1 = gcirc1->Radius();
   Standard_Real rad2 = gcirc2->Radius();
   myRad = (rad1 > rad2 ) ? rad2 : rad1;
@@ -182,7 +182,7 @@ void AIS_ConcentricRelation::ComputeTwoEdgesConcentric(const Handle(Prs3d_Presen
   if (myRad > 15.) myRad =15.;
   
   
-  //Calcul d'un point du cercle de rayon myRad
+  //Calculate a point of circle of radius myRad
   gp_Dir vec(ptat11.XYZ() - myCenter.XYZ() );
   gp_Vec vectrans(vec);
   myPnt = myCenter.Translated(vectrans.Multiplied(myRad));
@@ -243,21 +243,21 @@ void AIS_ConcentricRelation::ComputeSelection(const Handle(SelectMgr_Selection)&
 {
   Handle(SelectMgr_EntityOwner) own = new SelectMgr_EntityOwner(this,7);
   
-  //Creation de 2 sensitives cercles
-     // le plus grand
+  //Creation of 2 sensitive circles
+     // the greater
   gp_Ax2 ax(myCenter, myDir);
   Handle(Geom_Circle) Circ = new Geom_Circle(ax, myRad) ;
   Handle(Select3D_SensitiveCircle) 
     sensit = new Select3D_SensitiveCircle (own,
                                           Circ);
   aSelection->Add(sensit);
-     // le plus petit
+     // the smaller
   Circ->SetRadius(myRad/2);
   sensit = new Select3D_SensitiveCircle (own,
                                         Circ);
   aSelection->Add(sensit);
 
-  //Creation de 2 segments sensitifs pour la croix
+  //Creation of 2 segments sensitive for the cross
   Handle(Select3D_SensitiveSegment) seg;
   gp_Pnt otherPnt = myPnt.Mirrored(myCenter);
   seg = new Select3D_SensitiveSegment(own,
index fef9168..71e3280 100755 (executable)
@@ -46,8 +46,8 @@ Standard_Integer AIS_ConnectedInteractive::Signature() const
 void AIS_ConnectedInteractive::
 Connect(const Handle(AIS_InteractiveObject)& anotherIObj)
 {
-  // Pour Avoir le temps de faire le Disconnect en dessous, 
-  // on garde l'ancien un peu. SMO. 
+  // To have the time to Disconnect below, 
+  // the old is kept for a while. 
   if(myReference==anotherIObj) return;
   myOldReference = myReference;
 //Disconnect();
@@ -65,7 +65,7 @@ Connect(const Handle(AIS_InteractiveObject)& anotherIobj,
   if(myLocation!=aLocation)
     myLocation = aLocation;
   if(myReference!=anotherIobj) {
-    myOldReference = myReference; // necessaire pour pouvoir faire le disconnect en dessous..
+    myOldReference = myReference; // necessary to disconnect below..
 //  Disconnect();
     myReference = anotherIobj;}
   
index 26eb89c..4575599 100755 (executable)
@@ -128,7 +128,7 @@ void AIS_ConnectedShape::Compute(const Handle(Prs3d_Projector)& aProjector,
       Aspect_TypeOfDeflection prevdef = defdrawer->TypeOfDeflection();
       defdrawer->SetTypeOfDeflection(Aspect_TOD_RELATIVE);
 
-      // traitement HLRAngle et HLRDeviationCoefficient()
+      // process HLRAngle and HLRDeviationCoefficient()
       Standard_Real prevangl = myDrawer->HLRAngle();
       Standard_Real newangl = defdrawer->HLRAngle();
       if (Abs(newangl- prevangl) > Precision::Angular()) {
@@ -182,8 +182,8 @@ void AIS_ConnectedShape::ComputeSelection (const Handle(SelectMgr_Selection)& aS
 {
   UpdateShape();
   aSelection->Clear();
-  // On regarde s'il n'y a pas des choses a faire sur la reference,
-  // du type mise a jour...
+  // It is checked if there is nothing to do with the reference
+  // of type update...
   
   if(!myReference->HasSelection(aMode))
     myReference->UpdateSelection(aMode);
@@ -193,8 +193,8 @@ void AIS_ConnectedShape::ComputeSelection (const Handle(SelectMgr_Selection)& aS
   if(RefSel->UpdateStatus()==SelectMgr_TOU_Full)
     myReference->UpdateSelection(aMode);
 
-  //suivant le type de decomposition, on deduit les primitives connectees.
-  // il faut suivre l'ordre de creation de StdSelect_BRepSelectionTool...
+  // depending on the type of decomposition, connected primitives are subtracted
+  // it is necessary to follow the order of creation of StdSelect_BRepSelectionTool...
   
   TopAbs_ShapeEnum TheType = AIS_Shape::SelectionType(aMode);
   Handle(StdSelect_BRepOwner) OWNR;
@@ -235,8 +235,8 @@ void AIS_ConnectedShape::ComputeSelection (const Handle(SelectMgr_Selection)& aS
   case TopAbs_SHAPE:
   default:
     {
-      // Dans ce cas on n'a qu'un seul proprietaire pour l'ensemble des
-      // primitives sensibles...
+      // In case if there is only one owner of the set of
+      // sensible primitives...
       OWNR = new StdSelect_BRepOwner(myOwnSh,this);
       Standard_Boolean FirstIncr(Standard_True);
       for(RefSel->Init();RefSel->More();RefSel->Next()){
@@ -286,7 +286,7 @@ void AIS_ConnectedShape::UpdateShape(const Standard_Boolean WithTheLocation)
 {
   if(myReference.IsNull()) return;
 
-  // attention grosse ligne...
+  // attention great line...
   if(myReference->Type()!=AIS_KOI_Shape) return;
 
   Standard_Integer Sig = myReference->Signature();
index 7ec038f..53962d4 100755 (executable)
@@ -455,7 +455,7 @@ void AIS_EqualDistanceRelation::ComputeTwoEdgesLength( const Handle( Prs3d_Prese
     Position = AIS::ProjectPointOnPlane( Position, Plane->Pln() );
   }
 
-  // recherche points attache
+  // find attach points
   if (!isInfinite1) {
     if (Position.Distance(ptat11) > Position.Distance(ptat12)) FirstAttach = ptat12;
     else FirstAttach = ptat11;
@@ -823,8 +823,8 @@ void AIS_EqualDistanceRelation::ComputeOneEdgeOneVertexLength( const Handle( Prs
   // computation of Val
   Val = FirstAttach.Distance(SecondAttach);
   
-  //Display des morceaux de raccordement vers la curve si elle
-  // n'est pas dans le WP
+  //Display the pieces of attached to the curve if it is not 
+  // in the WP
   if (!isOnPlanEdge) { // add presentation of projection of the edge in WP
       AIS::ComputeProjEdgePresentation(aPresentation,aDrawer,theedge,aCurve,ptonedge1,ptonedge2);
       }
index d8751ed..009c388 100755 (executable)
@@ -175,13 +175,13 @@ Standard_Boolean AIS_ExclusionFilter::IsOk(const Handle(SelectMgr_EntityOwner)&
   if(IO.IsNull()) 
     return Standard_False;
 
-  // le type de l'ais n'est pas dans la map...
+  // type of AIS is not in the map...
   if(!myStoredTypes.IsBound(IO->Type()))
     return myIsExclusionFlagOn ;
-  // le type de l'ais est dans la map et il n'y a pas de signature precisee
+  // type of AIS is not in the map and there is no signature indicated
   if(myStoredTypes(IO->Type()).IsEmpty())
     return !myIsExclusionFlagOn ;
-  // il y a une ou des signatures precisees...
+  // one or several signatures are indicated...
   if(IsSignatureIn(IO->Type(),IO->Signature()))
     return !myIsExclusionFlagOn;
   
index 6c985fb..04d1fc3 100755 (executable)
@@ -180,8 +180,8 @@ void AIS_FixRelation::Compute(const Handle(PrsMgr_PresentationManager3d)&,
 {
   aPresentation->Clear();
 
-  // Calcul du point de positionnement du symbole et du
-  // point d'attache du segment de raccord sur la shape
+  // Calculate position of the symbol and
+  // point of attach of the segment on the shape
   gp_Pnt curpos;
   if (myFShape.ShapeType() == TopAbs_VERTEX)
     ComputeVertex(TopoDS::Vertex(myFShape), curpos);
@@ -191,14 +191,14 @@ void AIS_FixRelation::Compute(const Handle(PrsMgr_PresentationManager3d)&,
   const gp_Dir& nor = myPlane->Axis().Direction();
 
   
-  // calcul de la presentation
-  //definition de la taille du symbole
+  // calculate presentation
+  // definition of the symbol size
 #ifdef BUC60915
   if( !myArrowSizeIsDefined )
 #endif
     myArrowSize = 5.;
 
-    //creation du presentable
+    //creation of the presentation
   DsgPrs_FixPresentation::Add(aPresentation,
                              myDrawer,
                              myPntAttach,
@@ -255,15 +255,15 @@ void AIS_FixRelation::ComputeSelection(const Handle(SelectMgr_Selection)& aSelec
 {
   Handle(SelectMgr_EntityOwner) own = new SelectMgr_EntityOwner(this,7);
 
-  // creation d'un segment sensible pour le segment de raccordement 
-  // de la shape fixe au symbole 'Fix'
+  // creation of segment sensible for the linked segment  
+  // of the shape fixed to symbol 'Fix'
   Handle(Select3D_SensitiveSegment) seg;
   seg = new Select3D_SensitiveSegment(own,
                                      myPntAttach,
                                      myPosition);
   aSelection->Add(seg);
   
-  // Creation de la zone sensible du symbole 'Fix'
+  // Creation of the sensible zone of symbol 'Fix'
   gp_Dir norm = myPlane->Axis().Direction();
     
   gp_Vec dirac(myPntAttach,myPosition);
@@ -343,7 +343,7 @@ gp_Pnt AIS_FixRelation::ComputePosition(const Handle(Geom_Curve)& curv1,
                                        const gp_Pnt& lastp2) const 
 {
   //---------------------------------------------------------
-  // calcul du point d'attache
+  // calculate the point of attach
   //---------------------------------------------------------
   gp_Pnt curpos;
 
@@ -391,7 +391,7 @@ gp_Pnt AIS_FixRelation::ComputePosition(const Handle(Geom_Curve)& curv,
                                        const gp_Pnt& lastp) const 
 {
   //---------------------------------------------------------
-  // calcul du point d'attache
+  // calculate the point of attach
   //---------------------------------------------------------
   gp_Pnt curpos;
 
@@ -435,7 +435,7 @@ void AIS_FixRelation::ComputeEdge(const TopoDS_Edge& FixEdge, gp_Pnt& curpos)
   //---------------------------------------------------------
   // calcul du point de positionnement du symbole 'fix'
   //---------------------------------------------------------
-        //--> Dans le cas d'une droite
+        //--> In case of a straight line
   if (curEdge->IsKind(STANDARD_TYPE(Geom_Line))){
     gp_Lin glin = Handle(Geom_Line)::DownCast(curEdge)->Lin();
     Standard_Real pfirst(ElCLib::Parameter(glin,ptbeg));
@@ -443,7 +443,7 @@ void AIS_FixRelation::ComputeEdge(const TopoDS_Edge& FixEdge, gp_Pnt& curpos)
     ComputeLinePosition(glin, curpos, pfirst, plast);
   }
   
-        //--> Dans le cas d'un cercle
+        //--> In case of a circle
   else if (curEdge->IsKind(STANDARD_TYPE(Geom_Circle))) {
     gp_Circ  gcirc = Handle(Geom_Circle)::DownCast(curEdge)->Circ();
     Standard_Real pfirst, plast;
@@ -471,7 +471,7 @@ void AIS_FixRelation::ComputeLinePosition(const gp_Lin& glin,
                                          Standard_Real& plast)
 {
   if (myAutomaticPosition) {
-    // le point d'attache est choisi comme milieu du segment
+    // point of attach is chosen as middle of the segment
     myPntAttach = ElCLib::Value((pfirst+ plast)/2, glin);
     
     gp_Dir norm = myPlane ->Axis().Direction();
@@ -485,14 +485,14 @@ void AIS_FixRelation::ComputeLinePosition(const gp_Lin& glin,
     pos = myPosition;
     Standard_Real linparam = ElCLib::Parameter(glin, pos);
 
-    //cas ou la projection de position se situe entre les 2 vertex
+    // case if the projection of position is located between 2 vertices
     // de l'edge
     if ( (linparam >= pfirst) && (linparam <= plast) )
       myPntAttach = ElCLib::Value(linparam,glin);
     
-    // cas ou la projection de Position est en dehors des limites
-    // de l'edge : alors on choisit comme point d'attache le point
-    // le plus proche de la projection
+    // case if the projection of Position is outside of the limits
+    // of the edge : the point closest to the projection is chosen 
+    // as the attach point
     else {
       Standard_Real pOnLin;
       if (linparam > plast)
@@ -525,7 +525,7 @@ void AIS_FixRelation::ComputeCirclePosition(
        Standard_Real& pfirst, 
        Standard_Real& plast)
 {
-  // reajustement des parametres sur le cercle
+  // readjust parametres on the circle
   if (plast > 2*PI ) {
     Standard_Real nbtours = Floor(plast / (2*PI));
     plast -= nbtours*2*PI;
@@ -533,8 +533,8 @@ void AIS_FixRelation::ComputeCirclePosition(
   }
 
   if (myAutomaticPosition) {
-    // le point d'attache est le "milieu" du segment (par rapport
-    // aux parametres des vertex de debut et de fin de l'edge
+    // the point attach is the "middle" of the segment (relatively
+    // to the parametres of start and end vertices of the edge
     
     Standard_Real circparam = (pfirst + plast)/2.;
 
@@ -555,9 +555,9 @@ void AIS_FixRelation::ComputeCirclePosition(
   } // if (myAutomaticPosition)
 
   else {
-    // cas ou la projection de myPosition est en dehors des 2
-    // vertex de l'edge. Dans ce cas on reajuste le parametre
-    // dans la portion valable du cercle
+    // case if the projection of myPosition is outside of 2
+    // vertices of the edge. In this case the parameter is readjusted
+    // in the valid part of the circle
     pos = myPosition;
 
     Standard_Real circparam = ElCLib::Parameter(gcirc, pos);
index 9378ce0..9c5b3d8 100755 (executable)
@@ -387,7 +387,7 @@ void AIS_IdenticRelation::Compute(const Handle_Prs3d_Projector& aProjector, cons
 //           "identic" presentation
 // note    : if we are in the case of lines, we create a segment between
 //           myFAttach and mySAttach. In the case of Circles, we create
-//           an arc of circle between the sames points.We Add a segment
+//           an arc of circle between the sames points. We Add a segment
 //           to link Position to its projection on the curve described
 //           before.
 //=======================================================================
@@ -452,7 +452,7 @@ void AIS_IdenticRelation::ComputeSelection(const Handle(SelectMgr_Selection)& aS
              seg = new Select3D_SensitiveSegment(own, myFAttach, mySAttach);
              aSelection->Add(seg);
              
-             //attach = projection de Position() sur la curve;
+             //attach = projection of Position() on the curve;
              gp_Vec v1 (myFAttach, mySAttach);
              gp_Vec v2 (myFAttach, myPosition);
              if ( v1.IsParallel(v2, Precision::Angular()) )
@@ -521,7 +521,7 @@ void AIS_IdenticRelation::ComputeTwoEdgesPresentation(const Handle(Prs3d_Present
   //  Treatement of the case of circles
   else if ( curv1->IsInstance(STANDARD_TYPE(Geom_Circle)) && curv2->IsInstance(STANDARD_TYPE(Geom_Circle)) ) {
     //gp_Pnt curpos;
-    isCircle = Standard_True; // usefull for ComputeSelection
+    isCircle = Standard_True; // useful for ComputeSelection
     const Handle(Geom_Circle)& thecirc = (Handle(Geom_Circle)&) curv1;
     ComputeTwoCirclesPresentation(aPrs, thecirc, firstp1, lastp1, firstp2, lastp2);
   }
@@ -537,7 +537,7 @@ void AIS_IdenticRelation::ComputeTwoEdgesPresentation(const Handle(Prs3d_Present
   else
     return;
 
- // Calcul de la presentation des edges projettees
+ // Calculate presentation of projected edges
  if ( (myExtShape != 0) &&  !extCurv.IsNull()) {
    if (myExtShape == 1 )
      ComputeProjEdgePresentation(aPrs, TopoDS::Edge(myFShape), curv1, firstp1, lastp1);
@@ -1529,7 +1529,7 @@ void AIS_IdenticRelation::ComputeTwoVerticesPresentation(const Handle(Prs3d_Pres
                                  vals,
                                  myFAttach,
                                  curpos);
-  // Calcul de la projection du vertex
+  // Calculate the projection of vertex
   if ( myExtShape == 1)
     ComputeProjVertexPresentation(aPrs,FVertex,myFAttach);
   else if ( myExtShape == 2)
@@ -1551,7 +1551,7 @@ Standard_Real AIS_IdenticRelation::ComputeSegSize() const
 //function : ComputeDirection
 //purpose  : Compute a direction according to the different geometric
 //           elements connected to the vertex <VERT>, in way to not have
-//            overlap between the symbol and them.
+//           overlap between the symbol and them.
 //=======================================================================
 Standard_Boolean AIS_IdenticRelation::ComputeDirection(const TopoDS_Wire& aWire, 
                                                       const TopoDS_Vertex& VERT, 
@@ -1665,12 +1665,12 @@ void AIS_IdenticRelation::ComputeOneEdgeOVertexPresentation(const Handle(Prs3d_P
   if (myFShape.ShapeType() == TopAbs_VERTEX) {
     V = TopoDS::Vertex(myFShape);
     E = TopoDS::Edge(mySShape);
-    numedge = 2;// edge = 2 iem shape
+    numedge = 2;// edge = 2nd shape
   }
   else {
     V = TopoDS::Vertex(mySShape);
     E   = TopoDS::Edge(myFShape);
-    numedge = 1;  // edge = 1 ere shape
+    numedge = 1;  // edge = 1st shape
   }
   gp_Pnt ptonedge1,ptonedge2;
   Handle(Geom_Curve) aCurve;
@@ -1682,7 +1682,7 @@ void AIS_IdenticRelation::ComputeOneEdgeOVertexPresentation(const Handle(Prs3d_P
   aPrs->SetInfiniteState(isInfinite);
   AIS::ComputeGeometry(V, myFAttach, myPlane, isOnPlanVertex);
 
-  // on considere que seule la courbe peut etre projetee 
+  // only the curve can be projected 
   if (!isOnPlanEdge && !isOnPlanVertex) return;
 
   if (!isOnPlanEdge) {
@@ -1736,7 +1736,7 @@ void AIS_IdenticRelation::ComputeOneEdgeOVertexPresentation(const Handle(Prs3d_P
                                  myFAttach,
                                  curpos);
   if (myExtShape != 0) {
-    if (!extCurv.IsNull()) { // c'est l'edge qui n'est pas dans le WP
+    if (!extCurv.IsNull()) { // the edge is not in the WP
      ComputeProjEdgePresentation(aPrs,E,(Handle(Geom_Line)&) aCurve,ptonedge1,ptonedge2);
     }
   }
index 1255173..53c278b 100755 (executable)
@@ -860,8 +860,8 @@ Standard_Boolean AIS_InteractiveContext::KeepTemporary(const Handle(AIS_Interact
   if(myObjects.IsBound(anIObj)) return Standard_False;
   if(WhichContext!=-1 && !myLocalContexts.IsBound(WhichContext)) return Standard_False;
   
-  // Protection : si on essaye de conserver un objet temporaire
-  // qui n'est pas dans le contexte local actif... rob 11-06-97
+  // Protection : if one tries to preserve a temporary object
+  // which is not in the local active context... rob 11-06-97
 
   Standard_Integer IsItInLocal = myCurLocalIndex;
   Standard_Boolean Found(Standard_False);
@@ -1798,8 +1798,8 @@ void AIS_InteractiveContext::SetDisplayMode(const Handle(AIS_InteractiveObject)&
       Handle(AIS_GlobalStatus) STATUS = myObjects(anIObj);
       // ENDCLE
 #ifndef OCC4373      
-      // l'objet interactif n'avait pas de mode propre : OldMode = Mode Session
-      //                    avait deja un mode propre  : OldMode = ancien mode Propre
+      // the interactive object has no mode : OldMode = Mode Session
+      //                    already has a mode : OldMode = old mode Propre
 
       Standard_Integer OldMode = anIObj->HasDisplayMode() ?  anIObj->DisplayMode(): myDisplayMode;
       
@@ -2004,7 +2004,7 @@ void AIS_InteractiveContext::SetDeviationCoefficient(
   if(!anIObj->HasInteractiveContext())
     anIObj->SetContext(this);
 
-  // A Modifier apres descente des methodes concernees de AIS_Shape dans InteractiveObject
+  // To be modified after the related methods of AIS_Shape are passed to InteractiveObject
   if(anIObj->Type()!=AIS_KOI_Object && anIObj->Type()!=AIS_KOI_Shape) return;
   if(anIObj->Signature()!=0) return;
   (*((Handle(AIS_Shape)*)&anIObj))->SetOwnDeviationCoefficient(aCoefficient);
@@ -2047,7 +2047,7 @@ void AIS_InteractiveContext::SetHLRDeviationCoefficient(
  
   if(!anIObj->HasInteractiveContext())
     anIObj->SetContext(this);
-  // A Modifier apres descente des methodes concernees de AIS_Shape dans InteractiveObject
+  // To be modified after the related methods of AIS_Shape are passed to InteractiveObject
   if(anIObj->Type()!=AIS_KOI_Object && anIObj->Type()!=AIS_KOI_Shape) return;
   if(anIObj->Signature()!=0) return;
   (*((Handle(AIS_Shape)*)&anIObj))->SetOwnHLRDeviationCoefficient(aCoefficient);
@@ -2092,7 +2092,7 @@ void AIS_InteractiveContext::SetDeviationAngle(
  
   if(!anIObj->HasInteractiveContext())
     anIObj->SetContext(this);
-  // A Modifier apres descente des methodes concernees de AIS_Shape dans InteractiveObject
+// To be modified after the related methods of AIS_Shape are passed to InteractiveObject
   if(anIObj->Type()!=AIS_KOI_Shape) return;
   if(anIObj->Signature()!=0) return;
   (*((Handle(AIS_Shape)*)&anIObj))->SetOwnDeviationAngle(anAngle);
@@ -2134,7 +2134,7 @@ void AIS_InteractiveContext::SetAngleAndDeviation(
   if(!anIObj->HasInteractiveContext())
     anIObj->SetContext(this);
 
-    // A Modifier apres descente des methodes concernees de AIS_Shape dans InteractiveObject
+// To be modified after the related methods of AIS_Shape are passed to InteractiveObject
   if(anIObj->Type()!=AIS_KOI_Shape) return;
   if(anIObj->Signature()!=0) return;
   (*((Handle(AIS_Shape)*)&anIObj))->SetAngleAndDeviation(anAngle);
@@ -2162,7 +2162,7 @@ void AIS_InteractiveContext::SetHLRAngleAndDeviation(
    if(!anIObj->HasInteractiveContext())
     anIObj->SetContext(this);
 
-    // A Modifier apres descente des methodes concernees de AIS_Shape dans InteractiveObject
+// To be modified after the related methods of AIS_Shape are passed to InteractiveObject
   if(anIObj->Type()!=AIS_KOI_Shape) return;
   if(anIObj->Signature()!=0) return;
   (*((Handle(AIS_Shape)*)&anIObj))->SetHLRAngleAndDeviation(anAngle);
@@ -2205,7 +2205,7 @@ void AIS_InteractiveContext::SetHLRDeviationAngle(
  
   if(!anIObj->HasInteractiveContext())
     anIObj->SetContext(this);
-    // A Modifier apres descente des methodes concernees de AIS_Shape dans InteractiveObject
+// To be modified after the related methods of AIS_Shape are passed to InteractiveObject
   if( anIObj->Type()!=AIS_KOI_Shape) return;
   if(anIObj->Signature()!=0) return;
   (*((Handle(AIS_Shape)*)&anIObj))->SetOwnHLRDeviationAngle(anAngle);
@@ -3004,7 +3004,7 @@ Standard_Boolean AIS_InteractiveContext::IsInLocal(const Handle_AIS_InteractiveO
                                                    Standard_Integer& TheIndex) const 
 {
   if(anIObj.IsNull()) return Standard_False;
-  // s'il existe au point neutre on retourne l'index 0
+  // if it exists at neutral point 0 index is returned
   if(myObjects.IsBound(anIObj)) {
     TheIndex = 0;
     return Standard_False;
@@ -3048,7 +3048,7 @@ void AIS_InteractiveContext::InitAttributes()
   HLA->SetWidth(1);
   HLA->SetTypeOfLine(Aspect_TOL_DASH);
 
-  // tolerance a 4 pixels...
+  // tolerance to 4 pixels...
 #ifdef BUC60688
   SetSensitivity();
 #else
index 6203049..c4674d5 100755 (executable)
@@ -198,12 +198,11 @@ AIS_StatusOfDetection AIS_InteractiveContext::MoveTo(const Standard_Integer XPix
         if ( !myLocalContexts( myCurLocalIndex )->Filter()->IsOk( selector->OnePicked() ) )
           return AIS_SOD_AllBad;
     
-    // si c'est le meme qu'au coup precedent -> fin
     // Does nothing if previously detected object is equal to the current one
     if ( selector->OnePicked()->Selectable() == myLastPicked )
       return AIS_SOD_OnlyOneDetected;
-    //si le precedent est un objet courant, on ne le desilighte pas, sinon si
-    
     // Previously detected object is unhilighted if it is not selected or hilighted 
     // with selection color if it is selected. Such highlighting with selection color 
     // is needed only if myToHilightSelected flag is true. In this case previously detected
@@ -233,7 +232,6 @@ AIS_StatusOfDetection AIS_InteractiveContext::MoveTo(const Standard_Integer XPix
       myLastinMain = myLastPicked;
     else 
       myLastinColl = myLastPicked;
-    // si l'objet detecte n'est pas courant, on le hilighte...
 #ifdef IMP191001
     // Highlight detected object if it is not selected or myToHilightSelected flag is true
     if ( !myLastPicked.IsNull() && 
@@ -297,8 +295,8 @@ AIS_StatusOfPick AIS_InteractiveContext::Select(const Standard_Integer XPMin,
                                                const Handle(V3d_View)& aView,
                                                const Standard_Boolean updateviewer)
 {
-  // on prend  tous les objets detectes par le selecteur, on vide les precedents objets courants,
-  // on met les nouveaux...
+  // all objects detected by the selector are taken, previous current objects are emptied,
+  // new objects are put...
 
   if(HasOpenedContext())
     return myLocalContexts(myCurLocalIndex)->Select(XPMin,YPMin,XPMax,YPMax,aView,updateviewer);
@@ -367,8 +365,8 @@ AIS_StatusOfPick AIS_InteractiveContext::Select(const TColgp_Array1OfPnt2d& aPol
                                                const Handle(V3d_View)& aView,
                                                const Standard_Boolean updateviewer)
 {
-  // on prend  tous les objets detectes par le selecteur, on vide les precedents objets courants,
-  // on met les nouveaux...
+  // all objects detected by the selector are taken, previous current objects are emptied,
+  // new objects are put...
 
   if(HasOpenedContext())
     return myLocalContexts(myCurLocalIndex)->Select(aPolyline,aView,updateviewer);
@@ -439,7 +437,7 @@ AIS_StatusOfPick AIS_InteractiveContext::Select(const Standard_Boolean updatevie
     if(myWasLastMain)
       return myLocalContexts(myCurLocalIndex)->Select(updateviewer);
     else
-      // on a picke dans le collecteur, il faut faire un traitement special...
+      // picking was done in the collector, special processing is required...
       {
        myLocalContexts(myCurLocalIndex)->SetSelected(myLastPicked,updateviewer);
        return AIS_SOP_OneSelected;
@@ -624,7 +622,7 @@ AIS_StatusOfPick AIS_InteractiveContext::ShiftSelect( const TColgp_Array1OfPnt2d
 void AIS_InteractiveContext::SetCurrentObject(const Handle(AIS_InteractiveObject)& anIObj,
                                              const Standard_Boolean updateviewer)
 {
-  // traitement d'un cas singulier...
+  // single case processing...
   if(NbCurrents()==1 && anIObj->State()==1){
     Quantity_NameOfColor HiCol;
     Standard_Boolean HasHiCol;
@@ -660,7 +658,7 @@ void AIS_InteractiveContext::SetCurrentObject(const Handle(AIS_InteractiveObject
       sel->Next();
     }
     
-    // ajout pour ne pas faire d'updateviewer intempestif...
+    // added to avoid untimely viewer update...
     AIS_Selection::ClearAndSelect(anIObj);
     anIObj->State(1);
     Quantity_NameOfColor HiCol;
index 559133b..0823bc0 100755 (executable)
@@ -20,6 +20,8 @@
 #include <Graphic3d_MapIteratorOfMapOfStructure.hxx>
 #include <AIS_Selection.hxx>
 
+
+static TColStd_ListIteratorOfListOfInteger ItL;
 //=======================================================================
 //function : OpenLocalContext
 //purpose  : 
@@ -32,8 +34,7 @@ OpenLocalContext(const Standard_Boolean UseDisplayedObjects,
                  const Standard_Boolean /*BothViewers*/)
 {
 
-  // on dehilighte les eventuelles entitees detectees juste avant l'ouverture
-  // du contexte...
+  // the entities eventually detected just before the context was opened are unhighlighted...
   if(!IsCurrent(myLastPicked)){
     if(!myLastPicked.IsNull()){
       Standard_Integer HiMod = myLastPicked->HasHilightMode()?myLastPicked->HilightMode():0;
@@ -45,7 +46,7 @@ OpenLocalContext(const Standard_Boolean UseDisplayedObjects,
       myLocalContexts(myCurLocalIndex)->UnhilightLastDetected(mylastmoveview);
   }
   
-  // on met a 0 les entites liees a la selection dynamique au point neutre.
+  // entities connected to dynamic selection at neutral point are set to 0.
   
   myLastinMain.Nullify();
   myLastinColl.Nullify();
@@ -62,14 +63,22 @@ OpenLocalContext(const Standard_Boolean UseDisplayedObjects,
                                                           UseDisplayedObjects,
                                                           AllowShapeDecomposition,
                                                           AcceptEraseOfTemporary);
-  NewLocal->MainSelector()->Set ((myLocalContexts.Extent() > 0)
-    ? myLocalContexts (untilnow)->MainSelector()->Projector()
-    : myMainSel->Projector());
-
+  
+  // rob 16/04/97 Problems of asynchronous orders
+  if(myLocalContexts.Extent()>0){
+    const Select3D_Projector& Prj = myLocalContexts(untilnow)->MainSelector()->Projector();
+    NewLocal->MainSelector()->Set(Prj);
+  }
+  else{
+    const Select3D_Projector& Prj = myMainSel->Projector();
+    NewLocal->MainSelector()->Set(Prj);
+  }
+  
   NewLocal->MainSelector()->UpdateConversion();
-
+  
   myLocalContexts.Bind(myCurLocalIndex,NewLocal);
 
+
 #ifdef DEB
   cout<<"\tOpen Local Context No "<<myCurLocalIndex<<endl;
   if(UseDisplayedObjects){
@@ -83,6 +92,7 @@ OpenLocalContext(const Standard_Boolean UseDisplayedObjects,
     cout<<"\t\tNo Objects Were Loaded "<<endl;
 #endif
   return myCurLocalIndex;
+  
 }
 
 //=======================================================================
@@ -111,7 +121,7 @@ void AIS_InteractiveContext::CloseLocalContext(const Standard_Integer Index,
    return;
  }
  
- // On va fermer le seul contexte local ouvert...
+ // the only open local context is closed...
  if(myLocalContexts.Extent()==1 && GoodIndex == myCurLocalIndex){
    
    Standard_Boolean updateproj = !(myLocalContexts(myCurLocalIndex)->HasSameProjector(myMainSel->Projector()));
@@ -130,12 +140,12 @@ void AIS_InteractiveContext::CloseLocalContext(const Standard_Integer Index,
      cout<<"No More Opened Local Context "<<endl;
  }
  
- // Sinon on aura encore un contexte local d'ouvert apres la fermeture du courant
+ // Otherwise the local context will be still open after the current is closed
  else{
    Handle(StdSelect_ViewerSelector3d) VS = myLocalContexts(GoodIndex)->MainSelector();
    myLocalContexts(GoodIndex)->Terminate();
    myLocalContexts.UnBind(GoodIndex);
-   // on ferme le courant...
+   // the current is closed...
    if(GoodIndex==myCurLocalIndex){
      myCurLocalIndex = HighestIndex();
      const Handle(AIS_LocalContext)& LocCtx = myLocalContexts(myCurLocalIndex);
@@ -257,7 +267,6 @@ Deactivate(const Handle(AIS_InteractiveObject)& anIObj)
 {
   if(!HasOpenedContext()){
     if(!myObjects.IsBound(anIObj)) return;
-    TColStd_ListIteratorOfListOfInteger ItL;
     for(ItL.Initialize(myObjects(anIObj)->SelectionModes());
         ItL.More();
         ItL.Next()){
@@ -302,9 +311,9 @@ void AIS_InteractiveContext::
 ActivatedModes(const Handle(AIS_InteractiveObject)& anIObj, 
                TColStd_ListOfInteger& theList) const 
 {
-  TColStd_ListIteratorOfListOfInteger ItL;
   if(!HasOpenedContext()){
     if(myObjects.IsBound(anIObj)){
+      //ItL is a static variable... 
       for(ItL.Initialize(myObjects(anIObj)->SelectionModes());
           ItL.More();
           ItL.Next())
@@ -383,7 +392,6 @@ SubIntensityOn(const Handle(AIS_InteractiveObject)& anIObj,
     if(myObjects.IsBound(anIObj)){
       const Handle(AIS_GlobalStatus)& STAT = myObjects(anIObj);
       STAT->SubIntensityOn();
-      TColStd_ListIteratorOfListOfInteger ItL;
       for (ItL.Initialize(STAT->DisplayedModes());ItL.More();ItL.Next())
         myMainPM->Color(anIObj,mySubIntensity,ItL.Value());
     }
@@ -437,7 +445,6 @@ SubIntensityOff(const Handle(AIS_InteractiveObject)& anIObj,
     if(myObjects.IsBound(anIObj)){
       const Handle(AIS_GlobalStatus)& STAT = myObjects(anIObj);
       STAT->SubIntensityOff();
-      TColStd_ListIteratorOfListOfInteger ItL;
       for (ItL.Initialize(STAT->DisplayedModes());ItL.More();ItL.Next())
         myMainPM->Unhighlight(anIObj,ItL.Value());
       if(STAT->IsHilighted())
@@ -481,10 +488,11 @@ void AIS_InteractiveContext::SubIntensityOn(const Standard_Boolean updateviewer)
 //=======================================================================
 void AIS_InteractiveContext::SubIntensityOff(const Standard_Boolean updateviewer)
 {
+  
   if(!HasOpenedContext()) return;
-
+  
   AIS_DataMapIteratorOfDataMapOfIOStatus It (myObjects);
-  TColStd_ListIteratorOfListOfInteger ItL;
+  
   for(;It.More();It.Next()){
     const Handle(AIS_GlobalStatus)& STAT = It.Value();
     if(STAT->IsSubIntensityOn())
@@ -492,7 +500,7 @@ void AIS_InteractiveContext::SubIntensityOff(const Standard_Boolean updateviewer
     for(ItL.Initialize(STAT->DisplayedModes());ItL.More();ItL.Next())
       myMainPM->Unhighlight(It.Key());
   }
-
+  
   if(updateviewer) myMainVwr->Update();
 }
 
@@ -768,7 +776,7 @@ Standard_Integer AIS_InteractiveContext::PurgeViewer(const Handle(V3d_Viewer)& V
     Standard_Address Add = G->Owner();
     if(Add==NULL){
       G->Erase();
-      G->Clear();// ca veut dire qu'elle n'est pas reference comme une presentation d'un InterfactiveObject...
+      G->Clear();// it means that it is not referenced as a presentation of InterfactiveObject...
       NbCleared++;
     }
     Handle(AIS_InteractiveObject) IO = (AIS_InteractiveObject*)Add;
@@ -868,7 +876,7 @@ void AIS_InteractiveContext::ResetOriginalState(const Standard_Boolean updatevie
 {
   Standard_Boolean upd_main(Standard_False),upd_col(Standard_False);
   TColStd_ListIteratorOfListOfInteger itl;
-
+  
   for (AIS_DataMapIteratorOfDataMapOfIOStatus it(myObjects);it.More();it.Next()){
     const Handle(AIS_InteractiveObject)& iobj = it.Key();
     const Handle(AIS_GlobalStatus)& STAT = it.Value();
@@ -876,7 +884,7 @@ void AIS_InteractiveContext::ResetOriginalState(const Standard_Boolean updatevie
     case AIS_DS_Displayed:{
       upd_main = Standard_True;
       
-      // partie display...
+      // part display...
       for(itl.Initialize(STAT->DisplayedModes());itl.More();itl.Next())
         myMainPM->Display(iobj,itl.Value());
       if(STAT->IsHilighted()){
@@ -885,7 +893,7 @@ void AIS_InteractiveContext::ResetOriginalState(const Standard_Boolean updatevie
         else
           Hilight(iobj,Standard_False);
       }
-      //partie selection
+      //part selection
       for(itl.Initialize(STAT->SelectionModes());itl.More();itl.Next()){
         if(itl.Value()!=-1)
           mgrSelector->Activate(iobj,itl.Value(),myMainSel);
index 6b369d6..8845051 100755 (executable)
@@ -97,7 +97,7 @@ AIS_LengthDimension::AIS_LengthDimension (const TopoDS_Face&  aFirstFace,
 
 //=======================================================================
 //function : Constructor
-//purpose  : TwoFacesLength dimension  (avec position et texte)
+//purpose  : TwoFacesLength dimension  (with position and text)
 //=======================================================================
 
 AIS_LengthDimension::AIS_LengthDimension(const TopoDS_Face& aFirstFace,
@@ -129,8 +129,7 @@ AIS_LengthDimension::AIS_LengthDimension(const TopoDS_Face& aFirstFace,
 
 //=======================================================================
 //function : AIS_LengthDimension
-//purpose  : Distance Face - Edge pour chamfrein 3D
-//           Ajout Jean-Claude Vauthier le 17/06/98
+//purpose  : Distance Face - Edge for chamfer 3D
 //=======================================================================
 
 AIS_LengthDimension::AIS_LengthDimension (const TopoDS_Face& Face,const TopoDS_Edge& Edge,const Standard_Real Val,const TCollection_ExtendedString& Text)
@@ -223,13 +222,13 @@ void AIS_LengthDimension::Compute(const Handle(PrsMgr_PresentationManager3d)&,
     switch (myFShape.ShapeType()) {
     case TopAbs_FACE:
       {
-        // cas longueur sur une face
+        // case length on a face
         ComputeOneFaceLength(aPresentation);
       }
       break;
     case TopAbs_EDGE:
       {
-        // cas longueur d'un edge
+        // case length of an edge
         ComputeOneEdgeLength(aPresentation);
       }
       break;
@@ -242,7 +241,7 @@ void AIS_LengthDimension::Compute(const Handle(PrsMgr_PresentationManager3d)&,
     case TopAbs_FACE:
       {
        if (mySShape.ShapeType () == TopAbs_FACE) {
-         // cas longueur entre deux faces
+         // case length between two faces
          ComputeTwoFacesLength(aPresentation);
        }
        else if (mySShape.ShapeType () == TopAbs_EDGE) {
@@ -276,7 +275,7 @@ void AIS_LengthDimension::Compute(const Handle(PrsMgr_PresentationManager3d)&,
                                        mySymbolPrs );
         }
         else if (mySShape.ShapeType() == TopAbs_EDGE) {
-          // cas longueur entre deux edges
+          // case length between two edges
 #ifdef BUC60915
          if( !myArrowSizeIsDefined ) 
 #endif
@@ -471,7 +470,7 @@ void AIS_LengthDimension::ComputeTwoFacesLength( const Handle( Prs3d_Presentatio
       myDrawer->LengthAspect()->Arrow1Aspect()->SetLength( myArrowSize );
       myDrawer->LengthAspect()->Arrow2Aspect()->SetLength( myArrowSize );
 
-      // Recherche du texte de la cote
+      // Find text of the face
 
       DsgPrs_LengthPresentation::Add( aPresentation,
                                      myDrawer,
@@ -676,18 +675,18 @@ void AIS_LengthDimension::ComputeTwoEdgesLength( const Handle( Prs3d_Presentatio
     else {
       curpos.SetXYZ((l1.Location().XYZ()+l2.Location().XYZ())/2.);
     }
-    // offset pour eviter confusion Edge et Dimension
+    // offset to avoid confusion Edge and Dimension
     gp_Vec offset(DirAttach);
     offset = offset*ArrowSize*(-10.);
     curpos.Translate(offset);
     Position = curpos;
   }
-  else {    // on projette le point dans le plan
+  else {    // the point is projected in the plane
     // it is patch!
     Position = AIS::ProjectPointOnPlane( Position, Plane->Pln() );
   }
 
-  // recherche points attache
+  // find attachment points 
   if (!isInfinite1) {
     if (Position.Distance(ptat11) > Position.Distance(ptat12)) FirstAttach = ptat12;
     else FirstAttach = ptat11;
@@ -780,12 +779,12 @@ void AIS_LengthDimension::ComputeOneEdgeOneVertexLength( const Handle( Prs3d_Pre
   if (FirstShape.ShapeType() == TopAbs_VERTEX) {
     thevertex = TopoDS::Vertex(FirstShape);
     theedge   = TopoDS::Edge(SecondShape);
-    numedge = 2;// edge = 2 iem shape
+    numedge = 2;// edge = 2nd shape
   }
   else {
     thevertex = TopoDS::Vertex(SecondShape);
     theedge   = TopoDS::Edge(FirstShape);
-    numedge = 1;  // edge = 1 ere shape
+    numedge = 1;  // edge = 1st shape
   }
 
   gp_Pnt ptonedge1,ptonedge2;
@@ -798,7 +797,7 @@ void AIS_LengthDimension::ComputeOneEdgeOneVertexLength( const Handle( Prs3d_Pre
   aPresentation->SetInfiniteState(isInfinite);
   AIS::ComputeGeometry(thevertex, FirstAttach, Plane, isOnPlanVertex);
 
-  // on considere que seule la courbe peut etre projetee 
+  // take into consideration that only the curve can be projected 
   if (!isOnPlanEdge && !isOnPlanVertex)
     return;
 
@@ -826,13 +825,13 @@ void AIS_LengthDimension::ComputeOneEdgeOneVertexLength( const Handle( Prs3d_Pre
   if (AutomaticPos) {
     gp_Pnt p = ElCLib::Value(ElCLib::Parameter(l,FirstAttach),l);
     gp_Pnt curpos((FirstAttach.XYZ()+p.XYZ())/2.);
-    // offset pour eviter confusion Edge et Dimension
+    // offset to avoid confusion Edge and Dimension
     gp_Vec offset(DirAttach);
     offset = offset*ArrowSize*(-10.);
     curpos.Translate(offset);
     Position = curpos;
   }
-  else {    // on projette le point dans le plan
+  else {    // the point is projected in the plane
     // it is patch!
     Position = AIS::ProjectPointOnPlane( Position, Plane->Pln() );
 
@@ -943,7 +942,7 @@ void AIS_LengthDimension::ComputeTwoVerticesLength( const Handle( Prs3d_Presenta
   if (AutomaticPos) {
    if (!samePoint) {
      gp_Pnt curpos((FirstAttach.XYZ()+SecondAttach.XYZ())/2.);
-     // offset pour eviter confusion Edge et Dimension
+     // offset to avoid confusion Edge and Dimension
      gp_Vec offset(DirAttach);
      offset = offset*ArrowSize*(-10.);
      curpos.Translate(offset);
@@ -968,7 +967,7 @@ void AIS_LengthDimension::ComputeTwoVerticesLength( const Handle( Prs3d_Presenta
   arr = la->Arrow2Aspect();
   arr->SetLength(ArrowSize);
 
-  // Type des fleches
+  // Type of arrows
   if ( ExtShape == 1) SymbolPrs = DsgPrs_AS_FIRSTPT_LASTAR;
   else if (ExtShape == 2) SymbolPrs = DsgPrs_AS_FIRSTAR_LASTPT;
 
@@ -984,7 +983,7 @@ void AIS_LengthDimension::ComputeTwoVerticesLength( const Handle( Prs3d_Presenta
                                  Position,
                                  SymbolPrs);
 
-  // Calcul de la projection du vertex
+  // Calculate the projection of the vertex
   if ( ExtShape == 1)
     AIS::ComputeProjVertexPresentation(aPresentation, aDrawer, FirstVertex, FirstAttach);
   else if ( ExtShape == 2)
@@ -1117,10 +1116,10 @@ void AIS_LengthDimension::ComputeFaceSelection( const Handle( SelectMgr_Selectio
 void AIS_LengthDimension::ComputeEdgeVertexSelection(const Handle(SelectMgr_Selection)& aSelection)
 {
   //  ********** NB ->
-  // dans le cas d'une contrainte par rapport au bord d'une face 
-  // seule la shape de ce contour est valide
+  // in the case of a constraint relatively to the border of a face 
+  // only the shape of this contour is valid
 
-  // Creation de 2 owner pour permettre l'edition de contraintes  
+  // Create 2 owner for edition of constraints  
   Handle(AIS_DimensionOwner) own1 = new AIS_DimensionOwner(this,7);
   Handle(AIS_DimensionOwner) own2 = new AIS_DimensionOwner(this,7);  
 
@@ -1150,8 +1149,8 @@ void AIS_LengthDimension::ComputeEdgeVertexSelection(const Handle(SelectMgr_Sele
 
   if (!Proj1.IsEqual(Proj2,confusion)) L3 = gce_MakeLin(Proj1,Proj2);
   else { 
-    // cas ou la dimension est nulle
-    // on choisit le own1 par defaut
+    // cas of zero dimension
+    // own1 is chosen by default
     L3 = gce_MakeLin(Proj1,myDirAttach);
     Standard_Real size(Min(myVal/100.+1.e-6,myArrowSize+1.e-6));
     Handle(Select3D_SensitiveBox) box = new Select3D_SensitiveBox(own1,myPosition.X(),myPosition.Y(),myPosition.Z(),
index a6be221..21c06ce 100755 (executable)
@@ -164,7 +164,7 @@ Standard_Boolean AIS_LocalContext::Display(const Handle(AIS_InteractiveObject)&
       Att->SetDecomposition(Standard_True);
     else 
       Att->SetDecomposition(Standard_False);
-    // statut temporaire ou non
+    // status temporary or not
     if(myCTX->DisplayStatus(anInteractive) == AIS_DS_None ||
        myCTX->DisplayStatus(anInteractive) == AIS_DS_Temporary)
       Att->SetTemporary(Standard_True);
@@ -429,23 +429,23 @@ Standard_Boolean AIS_LocalContext::Remove(const Handle(AIS_InteractiveObject)& a
   
   TColStd_ListIteratorOfListOfInteger It;
   Standard_Boolean jobdone(Standard_False);
-  // on regarde quel etaient ses attributs temporaires et on
-  // remet tout a 0
+  // it is checked which were the temporary attributes 
+  // and they are set to 0
 
-  // desactiver les modes stantard
+  // desactivate standard modes
   if(Att->Decomposed()){
     for(It.Initialize(myListOfStandardMode);It.More();It.Next()){
       mySM->Deactivate(aSelectable,It.Value(),myMainVS);
     }
   }
   
-  // si objet ou presentations temporaires...
+  // if object or temporary presentations...
   if(Att->IsTemporary())
     {
       if(Att->IsSubIntensityOn())
        myMainPM->Unhighlight(aSelectable,Att->HilightMode());
       
-      // enlever quand bug sur clear corrige...
+      // remove if bug on clear correct...
       myMainPM->Erase(aSelectable,Att->DisplayMode());
       myMainPM->Clear(aSelectable,Att->DisplayMode());
       if(myMainPM->IsDisplayed(aSelectable,Att->HilightMode()))
@@ -453,18 +453,16 @@ Standard_Boolean AIS_LocalContext::Remove(const Handle(AIS_InteractiveObject)& a
       //       myMainPM->Clear(aSelectable,Att->HilightMode());
       jobdone = Standard_True;
     }
-  // si sous intensite
+  // if below intensity
   else
     {
       if(Att->IsSubIntensityOn())
        myCTX->SubIntensityOff(aSelectable);
     }
-  // desactiver les modes propres stockes
+  // desactivate stored proper modes
   for(It.Initialize(Att->SelectionModes());It.More();It.Next()){
     mySM->Deactivate(aSelectable,It.Value(),myMainVS);
   }
-// pop : si je laisses cela plantes dans les elements de construction  
-//       alors a toi de jouer ROB
 //  RemoveSelected(aSelectable);
 
   if(IsSelected(aSelectable))
@@ -544,17 +542,16 @@ Standard_Boolean AIS_LocalContext::Remove(const Handle(AIS_InteractiveObject)& a
 void AIS_LocalContext::ActivateStandardMode(const TopAbs_ShapeEnum aType)
 {
   
-  //on verifie qu'il n'esiste pas deja dans la liste
+  //check if it is not in the list
   TColStd_ListIteratorOfListOfInteger It(myListOfStandardMode);
   for(;It.More();It.Next())
     if(It.Value()==aType)  return;
   Standard_Integer IMode = AIS_Shape::SelectionMode(aType);
   
 
-  // on cree de facon cachee un filtre repondant ok au type 
-  //sauf :
-  // si le type est shape...
-  // si des filtres agissent deja sur le  type <aType>
+  // create a hidden filter answering ok to the type except for :
+  // if the type is shape...
+  // if the filters already impact at the type <aType>
   if(aType != TopAbs_SHAPE){
     if(myStdFilters[IMode].IsNull())
       myStdFilters[IMode] = new StdSelect_ShapeTypeFilter(aType);
@@ -562,8 +559,8 @@ void AIS_LocalContext::ActivateStandardMode(const TopAbs_ShapeEnum aType)
       myFilters->Add(myStdFilters[IMode]);
   }
   
-  // on active le mode pour tous les objets de type Shape 
-  // acceptant la decomposition en mode standard.
+  // the mode is activated for all objects of type Shape 
+  // accepting the decomposition in standard mode.
   myListOfStandardMode.Append(IMode);
   
   AIS_DataMapIteratorOfDataMapOfSelStat ItM(myActiveObjects);
@@ -620,8 +617,8 @@ void AIS_LocalContext::DeactivateStandardMode(const TopAbs_ShapeEnum aType)
 
 void AIS_LocalContext::AddFilter(const Handle(SelectMgr_Filter)& aFilter)
 {
-  // on regarde si le filtre agit sur un type de sous shape 
-  // active pour lequel on aurait deja mis un filtre de type...
+  // it is checked if the filter impacts at the type of active sub-shape 
+  // for which a filter of type has been already implemented...
 
   TColStd_ListIteratorOfListOfInteger It(myListOfStandardMode);
   
@@ -642,12 +639,11 @@ void AIS_LocalContext::RemoveFilter(const Handle(SelectMgr_Filter)& aFilter)
 {
   if(myFilters->IsIn(aFilter)) myFilters->Remove(aFilter);
   
-  // on regarde si le filtre concernait un type standard active.
-  // si oui , on regarde s'il en existe de semblables encore
-  //      parmi les filtres restant..
-  //     s'il n'en reste pas , on remet le filtre standard
-  //     permettant de continuer a selectionner les modes
-  //     actifs...
+  // it is checked if the filter for type standard is active.
+  // if yes, it is checked there are still similarities among the
+  // remaining filters...
+  //     otherwise, the standard filter is restored to
+  //     continu selecting active modes...
   TColStd_ListIteratorOfListOfInteger It(myListOfStandardMode);
   TopAbs_ShapeEnum SE;
   for(;It.More();It.Next()){
@@ -660,25 +656,22 @@ void AIS_LocalContext::RemoveFilter(const Handle(SelectMgr_Filter)& aFilter)
 
 
 
-Standard_Boolean AIS_LocalContext::HasSameProjector(const Handle(Select3D_Projector)& thePrj) const
+Standard_Boolean AIS_LocalContext::HasSameProjector(const Select3D_Projector& aPrj) const
 {
-  const Handle(Select3D_Projector)& aCurPrj = myMainVS->Projector();
-  if (aCurPrj->Perspective() != thePrj->Perspective())
-    return Standard_False;  
-  if (aCurPrj->Perspective() && aCurPrj->Focus() != thePrj->Focus())
-    return Standard_False;
-  const gp_GTrsf& aCurTrsf = aCurPrj->Transformation();
-  const gp_GTrsf& aPrjTrsf = thePrj->Transformation();
-
-  for (Standard_Integer i = 1; i <= 3; ++i)
-  {
-    for (Standard_Integer j = 1; j <= 3 ; ++j)
-    {
-      if (aCurTrsf.Value (i, j) != aPrjTrsf.Value (i, j))
-        return Standard_False;
+  const Select3D_Projector& CurPrj = myMainVS->Projector();
+  if(CurPrj.Perspective()!=aPrj.Perspective()) return Standard_False;  
+  if(CurPrj.Perspective())
+    if(CurPrj.Focus()!=aPrj.Focus()) return Standard_False;
+  gp_GTrsf CurTrsf(CurPrj.Transformation());
+  gp_GTrsf PrjTrsf(aPrj.Transformation());
+  
+  for(Standard_Integer i=1;i<=3;i++){
+    for(Standard_Integer j=1;j<=3;j++){
+      if(CurTrsf.Value(i,j)!=PrjTrsf.Value(i,j)) 
+       return Standard_False;
     }
   }
-
+  
   return Standard_True;
 }
 
@@ -695,7 +688,7 @@ void AIS_LocalContext::Terminate( const Standard_Boolean updateviewer )
   myMapOfOwner.Clear();
   
   mylastindex=0;
-  // nettoyons le selecteur...
+  // clear the selector...
   myMainVS->Clear();
   myCTX->SelectionManager()->Remove(myMainVS);
   
@@ -815,7 +808,7 @@ void AIS_LocalContext::Unhilight(const Handle(AIS_InteractiveObject)& anObject)
 {
   if(!myActiveObjects.IsBound(anObject)) return;
   
-  // pour voir si d'aventure l'objet est quelque part ailleurs...
+  // chieck if by hazard the object is somewhere else...
   Standard_Integer Indx;
   Standard_Boolean IsSomeWhereElse  = 
     myCTX->IsInLocal(anObject,Indx) && Indx != myCTX->IndexOfCurrentLocal();
@@ -1071,7 +1064,7 @@ void AIS_LocalContext::ClearObjects()
       
       const Handle(AIS_LocalStatus)& CurAtt = It.Value();
       //TColStd_ListIteratorOfListOfInteger ItL;
-      // si objet temporaire on efface ses presentations geree par myMainPM
+      // if object is temporary the presentations managed by myMainPM are removed
       AIS_DisplayStatus TheDS = myCTX->DisplayStatus(SO);
       
       if(TheDS != AIS_DS_Displayed){
index d1c9261..4e47fe7 100755 (executable)
@@ -110,7 +110,7 @@ AIS_StatusOfDetection AIS_LocalContext::MoveTo(const Standard_Integer Xpix,
                                               const Standard_Integer Ypix,
                                               const Handle(V3d_View)& aview)
 {
-  // d'abord voir ce que le ViewerSelector donne 
+  // check that ViewerSelector gives 
   if(aview->Viewer()== myCTX->CurrentViewer()) {
 #ifdef IMP160701
     //Nullify class members storing information about detected AIS objects.
@@ -128,7 +128,7 @@ AIS_StatusOfDetection AIS_LocalContext::MoveTo(const Standard_Integer Xpix,
       EO = myMainVS->Picked(i_detect);
       if(!EO.IsNull()){
        if(myFilters->IsOk(EO)) {
-         myDetectedSeq.Append(i_detect); // normalement ils sont deja ranges dans le bon ordre...
+         myDetectedSeq.Append(i_detect); // normallly they are already arranged in correct order...
 #ifdef IMP160701
         Handle(AIS_InteractiveObject) anObj = Handle(AIS_InteractiveObject)::DownCast(EO->Selectable());
         if(!Handle(AIS_Shape)::DownCast(anObj).IsNull())
@@ -138,7 +138,7 @@ AIS_StatusOfDetection AIS_LocalContext::MoveTo(const Standard_Integer Xpix,
     }
     }
     
-    //resultat des courses..
+    //result of  courses..
     if(had_nothing || myDetectedSeq.IsEmpty()){
       if(mylastindex !=0 && mylastindex <= myMapOfOwner.Extent()){
 
@@ -153,9 +153,8 @@ AIS_StatusOfDetection AIS_LocalContext::MoveTo(const Standard_Integer Xpix,
       return (had_nothing ? AIS_SOD_Nothing : AIS_SOD_AllBad);
     }
     
-    // quelque chose...
-    // on passe tous les proprietaires detectes par le selecteur 
-    // aux filtres et on garde les bons..
+    // all owners detected by the selector are passed to the 
+    // filters and correct ones are preserved...
     myCurDetected = 1;
     EO = myMainVS->Picked(myDetectedSeq(myCurDetected));
     
@@ -270,7 +269,7 @@ AIS_StatusOfPick AIS_LocalContext::Select(const Standard_Integer XPMin,
     for(myMainVS->Init();myMainVS->More();myMainVS->Next()){
       const Handle(SelectMgr_EntityOwner)& OWNR = myMainVS->Picked();
       if(myFilters->IsOk(OWNR)){
-       // rangeons ce proprietaire au chaud, il pourrait servir...
+       // it can be helpfil to classify this owner immediately...
 #ifdef BUC60569
          Standard_Integer state = OWNR->State();
          if( state < 1 ){
@@ -365,8 +364,8 @@ AIS_StatusOfPick AIS_LocalContext::ShiftSelect(const Standard_Boolean updateview
   return AIS_SOP_Error;
 }
 //==================================================
-// Function: les objets deja selectionnes sont deselectionnes
-// Purpose : les autres sont selectionnes.
+// Function: the already selected objects are unselected
+// Purpose : others are selected.
 //==================================================
 AIS_StatusOfPick AIS_LocalContext::ShiftSelect(const Standard_Integer XPMin,
                                   const Standard_Integer YPMin,
@@ -386,7 +385,7 @@ AIS_StatusOfPick AIS_LocalContext::ShiftSelect(const Standard_Integer XPMin,
 #ifdef BUC60774
       return LastExt == 0 ? AIS_SOP_NothingSelected:AIS_SOP_Removed;
 #else
-      return AIS_SOP_NothingSelected; // aucun effet si on a clique dans le vide
+      return AIS_SOP_NothingSelected; // no effet if click on empty space
 #endif
 
     AIS_Selection::SetCurrentSelection(mySelName.ToCString());
@@ -448,7 +447,7 @@ AIS_StatusOfPick AIS_LocalContext::Select(const TColgp_Array1OfPnt2d& aPolyline,
     for(myMainVS->Init();myMainVS->More();myMainVS->Next()){
       const Handle(SelectMgr_EntityOwner)& OWNR = myMainVS->Picked();
       if(myFilters->IsOk(OWNR)){
-       // rangeons ce proprietaire au chaud, il pourrait servir...
+       // it can be helpfil to classify this owner immediately...
 #ifdef BUC60953
         Standard_Integer state = OWNR->State();
         if( state < 1 ){
@@ -590,7 +589,7 @@ void AIS_LocalContext::HilightPicked(const Standard_Boolean updateviewer)
   Handle (PrsMgr_PresentationManager3d) PM = myMainPM;
   SelectMgr_DataMapOfObjectOwners aMap;
   
-  // pour eviter les Pbs quand on est dans une boucle de recherche des objets selectionnes....
+  // to avoid problems when there is a loop searching for selected objects...
 #if !defined OCC189 && !defined USE_MAP
   const TColStd_Array1OfTransient& Obj = Sel->Objects()->Array1();
   for(Standard_Integer i =Obj.Lower();i<=Sel->NbStored();i++)
@@ -876,7 +875,7 @@ SelectedApplicative() const
 
 //=======================================================================
 //function : UpdateSelection
-//purpose  : devrait disparaitre ...
+//purpose  : should disappear...
 //=======================================================================
 void AIS_LocalContext::UpdateSelected(const Standard_Boolean updateviewer)
 {
@@ -955,15 +954,15 @@ void AIS_LocalContext::SetSelected(const Handle(AIS_InteractiveObject)& anIObj,
   if(!IsValidForSelection(anIObj)) return;
   UnhilightPicked(Standard_False);
   
-  //1er cas , on trouve un proprietaire qui a deja <anIObj> comme proprietaire 
-  // et qui ne soit pas decompose...
+  //1st case, owner already <anIObj> as owner  
+  // and not separated is found...
 
   Handle(AIS_Selection) sel = AIS_Selection::Selection(mySelName.ToCString());
   //Standard_Boolean found(Standard_False);
   Handle(Standard_Transient) Tr;
   Handle(SelectMgr_EntityOwner) EO = FindSelectedOwnerFromIO(anIObj);
   if(EO.IsNull()){
-    //regardons s'il a dans sa selection numero 0 un proprietaire qu'on pourrait triturer...
+    //check if in selection number 0 there is an owner that can be triturated...
     if(anIObj->HasSelection(0)){
       const Handle(SelectMgr_Selection)& SIOBJ = anIObj->Selection(0);
       SIOBJ->Init();
@@ -997,7 +996,7 @@ void AIS_LocalContext::AddOrRemoveSelected(const Handle(AIS_InteractiveObject)&
 {
   if(!IsValidForSelection(anIObj)) return;
   UnhilightPicked(Standard_False);
-  // d'abord regardons s'il est selectionne...
+  // first check if it is selected...
   Handle(SelectMgr_EntityOwner) EO;
 
   EO = FindSelectedOwnerFromIO(anIObj);
@@ -1042,7 +1041,7 @@ void AIS_LocalContext::AddOrRemoveSelected(const Handle(AIS_InteractiveObject)&
 
 //=======================================================================
 //function : AddOrRemoveSelected
-//purpose  :  A revoir...
+//purpose  : To check...
 //=======================================================================
 void AIS_LocalContext::AddOrRemoveSelected(const TopoDS_Shape& Sh,
                                           const Standard_Boolean updateviewer)
@@ -1103,21 +1102,21 @@ void AIS_LocalContext::ManageDetected(const Handle(SelectMgr_EntityOwner)& aPick
   // OK...
   if(okStatus){
     //=======================================================================================================
-    // 2 cas : a- l'objet est dans la map des pickes:
-    //             1. c'est le meme index que le dernier detecte: ->On ne fait rien
-    //             2. sinon :
-    //                  - si lastindex = 0 (aucun objet detecte au dernier move)
-    //                    on hilighte la prs de l'objet et on met lastindex = index(objet)
-    //                  - sinon : 
-    //                           on "desighlighte" la prs de l'objet correspondant a lastindex
-    //                           voire on l'efface si l'objet n'est pas visualise mais juste actif
-    //                           puis on hilighte la Prs de l'objet detecte ici et on met lastindex = index(objet)
-    //         b- l'objet n'est pas dans la map des objets pickes
-    //                  - si lastindex != 0 (objet detecte au dernier move) on desighlighte ...
-    //            si l'objet a ete decompose, on cree une prs pour la shape detectee et on ajoute
-    //            le couple (Proprietaire,Prs) dans la map.
-    //           sinon on met dans la map le couple(proprietaire, NullPrs) et on hilighte l'objet interactif
-    //           lui meme.
+    // 2 cases : a- object is in the map of picks:
+    //             1. this is the same index as the last detected: -> Do nothing
+    //             2. otherwise :
+    //                  - if lastindex = 0 (no object was detected at the last step)
+    //                    the object presentation is highlighted and lastindex = index(objet)
+    //                  - othrwise : 
+    //                           the presentation of the object corresponding to lastindex is "unhighlighted" 
+    //                           it is removed if the object is not visualized but only active
+    //                           then the presentation of the detected object is highlighted and lastindex = index(objet)
+    //         b- the object is not in the map of picked objects
+    //                  - if lastindex != 0 (object detected at the last step) it is unhighlighted ...
+    //            if the object was decomposed, presentation is created for the detected shape and the couple
+    //             (Proprietaire,Prs)is added in the map.
+    //           otherwise the couple(proprietaire, NullPrs) is placed in the map and the interactive object 
+    //           itself is highlighted.
     //                              
     //=======================================================================================================
 
@@ -1237,7 +1236,7 @@ Standard_Boolean AIS_LocalContext::ComesFromDecomposition(const Standard_Integer
 {
   const Handle(SelectMgr_EntityOwner)& OWN = myMapOfOwner.FindKey(PickedIndex);
   Handle(SelectMgr_SelectableObject) aSel  = OWN->Selectable();
-  if (myActiveObjects.IsBound (aSel)) { // debug de jmi
+  if (myActiveObjects.IsBound (aSel)) { // debug of jmi
     const Handle(AIS_LocalStatus)& Stat      = myActiveObjects(aSel);    
     return Stat->Decomposed();
   }
@@ -1319,7 +1318,7 @@ Standard_Boolean AIS_LocalContext::IsValidForSelection(const Handle(AIS_Interact
 
 Standard_Integer AIS_LocalContext::HilightNextDetected(const Handle(V3d_View)& V)
 {
-  // on va jusqu'au prochain proprietaire
+  // go to the next owner
 
   if(myDetectedSeq.IsEmpty()) return Standard_False;
   Standard_Integer L = myDetectedSeq.Length();
@@ -1452,8 +1451,7 @@ void AIS_LocalContext::HilightTriangle(const Standard_Integer Rank,
 
 //=======================================================================
 //function : FindSelectedOwnerFromIO
-//purpose  : on regarde si l''un des proprietaires selectionnes represente
-//           effectivement IObj
+//purpose  : it is checked if one of the selected owners really presents IObj
 //=======================================================================
 Handle(SelectMgr_EntityOwner) AIS_LocalContext::FindSelectedOwnerFromIO
                           (const Handle(AIS_InteractiveObject)& anIObj) const 
@@ -1499,7 +1497,7 @@ Handle(SelectMgr_EntityOwner) AIS_LocalContext::FindSelectedOwnerFromIO
 
 //=======================================================================
 //function : FindSelectedOwnerFromShape
-//purpose  : on regarde si l''un des proprietaires selectionnes represente effectivement IObj
+//purpose  : it is checked if one of the selected owners really presents IObj
 //=======================================================================
 Handle(SelectMgr_EntityOwner) AIS_LocalContext::FindSelectedOwnerFromShape(const TopoDS_Shape& sh) const 
 {
index c67e215..63e6e8c 100755 (executable)
@@ -249,7 +249,6 @@ void AIS_Plane::Compute(const Handle(PrsMgr_PresentationManager3d)& ,
   else if (aMode == 1){
     if (!myIsXYZPlane){
       ComputeFrame();
-      // a mettre ailleurs sans doute...
       Handle(Prs3d_PlaneAspect) theaspect = myDrawer->PlaneAspect();
       Handle(Graphic3d_Group) TheGroup = Prs3d_Root::CurrentGroup(aPresentation);
       gp_Pnt p1;
@@ -341,8 +340,8 @@ void AIS_Plane::SetSize(const Standard_Real aLength)
 void AIS_Plane::SetSize(const Standard_Real aXLength,
                        const Standard_Real aYLength)
 {
-  //si le plan a deja une couleur ou une taille propre, 
-  //il y a deja un PlaneAspect et un DatumAspect specifique 
+  //if the plane already has a proper color or size, 
+  //there is already a specific PlaneAspect and DatumAspect 
     
   Handle(Prs3d_PlaneAspect) PA; 
   Handle(Prs3d_DatumAspect) DA;
@@ -376,7 +375,7 @@ void AIS_Plane::SetSize(const Standard_Real aXLength,
 
 //=======================================================================
 //function : UnsetSize
-//purpose  : S'il ya une couleur, on recupere la taille du drawer du context...
+//purpose  : If there is a color, the size is restaured from the drawer of the context...
 //=======================================================================
 void AIS_Plane::UnsetSize()
 {
@@ -430,7 +429,7 @@ void AIS_Plane::SetColor(const Quantity_NameOfColor aCol)
 void AIS_Plane::SetColor(const Quantity_Color &aCol)
 #endif
 {
-  // si le plan a deja sa propre taille, il y a un deja planeaspect cree
+  // if the plane already has its proper size, there is an already created planeaspect 
 //  Standard_Boolean yenadeja = hasOwnColor || myHasOwnSize;
   Handle(Prs3d_PlaneAspect) PA; 
   Handle(Prs3d_DatumAspect) DA;
index 73cf9d7..7325825 100755 (executable)
@@ -64,7 +64,7 @@ AIS_PlaneTrihedron::AIS_PlaneTrihedron(const Handle(Geom_Plane)& aPlane)
   DA->SecondAxisAspect()->SetColor(col);
   DA->SetDrawFirstAndSecondAxis(Standard_True);
   DA->SetDrawThirdAxis(Standard_False);
-  myDrawer->SetDatumAspect(DA); // odl - on en cree un specifique puisqu'on le modifie
+  myDrawer->SetDatumAspect(DA); // odl - specific is created because it is modified
   myShapes[0] = Position();
   myShapes[1] = XAxis();
   myShapes[2] = YAxis();
index bf909e6..a3db9b7 100755 (executable)
@@ -33,7 +33,6 @@
 #define MaxSizeOfResult 100000
 #endif
 
-// beurk mais moins qu''avant.... rob
 static void AIS_Sel_CurrentSelection (Handle(AIS_Selection)& InputSel)     
 {
   static Handle(AIS_Selection) theCurrentSelection;
@@ -120,7 +119,7 @@ Standard_Boolean AIS_Selection::Find(const Standard_CString aName)
 //=======================================================================
 Standard_Boolean AIS_Selection::SetCurrentSelection (const Standard_CString aName) 
 {  
-  AIS_Selection::CreateSelection(aName); // juste pour voir... ?????????????
+  AIS_Selection::CreateSelection(aName); 
 
 
   Handle(AIS_Selection) anAISSelection = AIS_Selection::Selection(aName) ;
@@ -193,7 +192,7 @@ AIS_SelectStatus AIS_Selection::Select(const Handle(Standard_Transient)& anObjec
     if(arr(i)==anObject)
       Found=i;
   }
-  // Il n''est pas dedans, on le rajoute....
+  // If it is not inside, it is added...
 
 #ifdef BUC60953
   if ( !selected || Found == -1 ) {
@@ -202,7 +201,6 @@ AIS_SelectStatus AIS_Selection::Select(const Handle(Standard_Transient)& anObjec
 #endif  
     if((S->myNb)+1>arr.Length()){
       Handle(TColStd_HArray1OfTransient) NiouTab = new TColStd_HArray1OfTransient(1,arr.Length()+MaxSizeOfResult);
-      // oui bon, mais...
       for(i=arr.Lower();i<=S->myNb;i++){
        const Handle(Standard_Transient)& T = S->myresult->Value(i);
        NiouTab->SetValue(i,T);
@@ -215,7 +213,7 @@ AIS_SelectStatus AIS_Selection::Select(const Handle(Standard_Transient)& anObjec
     S->myresult->SetValue(S->myNb,anObject);
     return AIS_SS_Added;
   }
-  // il etait dedans on l''enleve...
+  // it was inside and it is removed...
   for(i=Found;i<=S->myNb;i++)
     arr(i)=arr(i+1);
   S->myNb--;
@@ -288,7 +286,6 @@ AIS_SelectStatus AIS_Selection::AddSelect(const Handle(Standard_Transient)& anOb
   Standard_Integer i;
   if((S->myNb)+1>arr.Length()){
       Handle(TColStd_HArray1OfTransient) NiouTab = new TColStd_HArray1OfTransient(1,arr.Length()+MaxSizeOfResult);
-      // oui bon, mais...
       for(i=arr.Lower();i<=S->myNb;i++){
        const Handle(Standard_Transient)& T = S->myresult->Value(i);
        NiouTab->SetValue(i,T);
index 74376f5..7c3f35f 100755 (executable)
@@ -2,12 +2,6 @@
 // Created:    Fri Dec 20 17:18:37 1996
 // Author:     Robert COUBLANC
 //             <rob@robox.paris1.matra-dtv.fr>
-// Modified:    Christiane ARMAND: 5/05/97: dans le compute on prend en 
-//              compte le cas des objets infinis     
-//              ROB : introduction des primitives connectees
-//                    Pour le calcul des faces sensibles...
-//   oct-03-97  ROB : en fonction du type de shapes, on change les coeffs de polygonisation...
-//                    (correction du Pb des cercles pas assez discretises...)
 
 #define BUC60577       //GG_191099 Draw correct bounding box and Menage ...
 
@@ -241,7 +235,7 @@ void AIS_Shape::Compute(const Handle(PrsMgr_PresentationManager3d)& /*aPresentat
   }
   
   
-  if (IsInfinite()) aPrs->SetInfiniteState(Standard_True); //pas de prise en compte lors du FITALL
+  if (IsInfinite()) aPrs->SetInfiniteState(Standard_True); //not taken in account duting FITALL
   switch (aMode) {
   case 0:{
     try { OCC_CATCH_SIGNALS  StdPrs_WFDeflectionShape::Add(aPrs,myshape,myDrawer); }
@@ -250,7 +244,7 @@ void AIS_Shape::Compute(const Handle(PrsMgr_PresentationManager3d)& /*aPresentat
       cout << "AIS_Shape::Compute()  failed"<< endl;
 #endif
       cout << "a Shape should be incorrect : No Compute can be maked on it  "<< endl;     
-// on calcule une presentation de la boite englobante
+// presentation of the bounding box is calculated
 //      Compute(aPresentationManager,aPrs,2);
     }
     break;
@@ -275,7 +269,7 @@ void AIS_Shape::Compute(const Handle(PrsMgr_PresentationManager3d)& /*aPresentat
          BRepTools::Clean(myshape);
        }
       
-      //shading seulement a partir de face...
+      //shading only on face...
       if ((Standard_Integer) myshape.ShapeType()>4)
        StdPrs_WFDeflectionShape::Add(aPrs,myshape,myDrawer);
       else {
@@ -306,7 +300,7 @@ void AIS_Shape::Compute(const Handle(PrsMgr_PresentationManager3d)& /*aPresentat
     }
   case 2:
     {
-      // boite englobante
+      // bounding box
       if (IsInfinite()) StdPrs_WFDeflectionShape::Add(aPrs,myshape,myDrawer);
       else DisplayBox(aPrs,BoundingBox(),myDrawer);
     }
@@ -379,7 +373,7 @@ void AIS_Shape::Compute(const Handle(Prs3d_Projector)& aProjector,
   Aspect_TypeOfDeflection prevdef = defdrawer->TypeOfDeflection();
   defdrawer->SetTypeOfDeflection(Aspect_TOD_RELATIVE);
 
-// coefficients pour le calcul
+// coefficients for calculation
 
   Standard_Real prevangle, newangle ,prevcoeff,newcoeff ; 
   if (OwnHLRDeviationAngle(newangle,prevangle) || OwnHLRDeviationCoefficient(newcoeff, prevcoeff))
@@ -486,7 +480,7 @@ void AIS_Shape::ComputeSelection(const Handle(SelectMgr_Selection)& aSelection,
 #else
     TopExp_Explorer anExplor (myshape, TopAbs_VERTEX);
 #endif
-    if (!anExplor.More()) // Shape vide -> Assemblage vide.
+    if (!anExplor.More()) // empty Shape -> empty Assembly.
       return;
   }
 
@@ -500,12 +494,12 @@ void AIS_Shape::ComputeSelection(const Handle(SelectMgr_Selection)& aSelection,
   }
 #endif
 
-// POP on protege contre un plantage dans les couches basses
+// POP protection against crash in low layers
 
   Standard_Real aDeflection = myDrawer->MaximalChordialDeviation();
   if (myDrawer->TypeOfDeflection() == Aspect_TOD_RELATIVE)
   {
-    // On calcule la fleche en fonction des min max globaux de la piece:
+    // Vector is calculated depending on global min max of the part:
     Bnd_Box aBndBox; //= BoundingBox(); ?
     BRepBndLib::Add (shape, aBndBox);
     if (!aBndBox.IsVoid())
@@ -583,7 +577,7 @@ void AIS_Shape::SetColor(const Quantity_Color &aCol)
   myOwnColor  = aCol; 
   if(!myDrawer->HasShadingAspect()){
     Handle(Prs3d_ShadingAspect) asp = new Prs3d_ShadingAspect();
-// recuperons le materiau reference...
+// retrieve the reference materials...
     if(myDrawer->HasLink()){
       const Handle(Prs3d_Drawer)& refdr = myDrawer->Link();
       Graphic3d_MaterialAspect theRefMat = 
@@ -611,7 +605,7 @@ void AIS_Shape::SetColor(const Quantity_Color &aCol)
   myDrawer->SetUnFreeBoundaryAspect(new Prs3d_LineAspect(aCol,Aspect_TOL_SOLID,WW));
   myDrawer->SetSeenLineAspect(new Prs3d_LineAspect(aCol,Aspect_TOL_SOLID,WW));
 
-  // modif du shading rapide...
+  // fast shading modification...
   if(!GetContext().IsNull()){
     if( GetContext()->MainPrsMgr()->HasPresentation(this,1)){
       Handle(Prs3d_Presentation) P = GetContext()->MainPrsMgr()->CastPresentation(this,1)->Presentation();
@@ -623,13 +617,6 @@ void AIS_Shape::SetColor(const Quantity_Color &aCol)
 #else
       a4bis->SetInteriorColor(Quantity_Color(aCol)); // Already done above in SetColor(...)    
 
-//***test rob : pour avoir la vraie couleur demandee en shading ***
-// mais du coup, le shading est "plat" ...****
-//      Graphic3d_MaterialAspect FMAT = a4bis->FrontMaterial();
-//      FMAT.SetColor(Quantity_Color(aCol));
-//      a4bis->SetFrontMaterial(FMAT);
-//******
-
       P->SetPrimitivesAspect(myDrawer->ShadingAspect()->Aspect());
       G->SetGroupPrimitivesAspect(myDrawer->ShadingAspect()->Aspect());
 #endif
@@ -646,7 +633,6 @@ void AIS_Shape::SetColor(const Quantity_Color &aCol)
 
 void AIS_Shape::UnsetColor()
 {
-  // Evitons les stupidites...
   if(!HasColor() ){  myToRecomputeModes.Clear();
                     return;}
   
@@ -757,8 +743,8 @@ void AIS_Shape::SetWidth(const Standard_Real W)
 #endif    
   }
   myOwnWidth = W;
-  LoadRecomputable(0); // signifier qu'il faut recalculer uniquement le wireframe....
-  LoadRecomputable(2); // et la boite englobante...
+  LoadRecomputable(0); // means that it is necessary to recompute only the wireframe....
+  LoadRecomputable(2); // and the bounding box...
   
 }
 
@@ -817,7 +803,7 @@ void AIS_Shape::SetMaterial(const Graphic3d_NameOfMaterial aMat)
       G->SetGroupPrimitivesAspect(a4bis);
     }
   }
-  myRecomputeEveryPrs =Standard_False; // aucun mode a recalculer :uniquement update viewer
+  myRecomputeEveryPrs =Standard_False; // no mode to recalculate :only viewer update
   myToRecomputeModes.Clear();  
 }
 //=======================================================================
@@ -845,7 +831,7 @@ void AIS_Shape::SetMaterial(const Graphic3d_MaterialAspect& aMat)
     G->SetGroupPrimitivesAspect(a4bis);
   }
 }
-  myRecomputeEveryPrs =Standard_False; // aucun mode a recalculer :uniquement update viewer
+  myRecomputeEveryPrs =Standard_False; // no mode to recalculate  :only viewer update
   myToRecomputeModes.Clear();  
 }
 
@@ -887,7 +873,7 @@ void AIS_Shape::UnsetMaterial()
       G->SetGroupPrimitivesAspect(a4bis);
     }
   }
-  myRecomputeEveryPrs =Standard_False; // aucun mode a recalculer :uniquement update viewer
+  myRecomputeEveryPrs =Standard_False; // no mode to recalculate :only viewer update
   myToRecomputeModes.Clear();  
   
 }
@@ -920,7 +906,7 @@ void AIS_Shape::SetTransparency(const Standard_Real AValue)
       G->SetGroupPrimitivesAspect(a4bis);
     }
   }
-  myRecomputeEveryPrs =Standard_False; // aucun mode a recalculer :uniquement update viewer
+  myRecomputeEveryPrs =Standard_False; // no mode to recalculate :only viewer update
   myToRecomputeModes.Clear();  
   
 }
@@ -956,7 +942,7 @@ void AIS_Shape::UnsetTransparency()
 #endif
     }
   }
-  myRecomputeEveryPrs =Standard_False; // aucun mode a recalculer :uniquement update viewer
+  myRecomputeEveryPrs =Standard_False; // no mode to recalculate :only viewer update
   myToRecomputeModes.Clear();  
 }
 
@@ -983,7 +969,7 @@ const Bnd_Box& AIS_Shape::BoundingBox()
 #else
     TopExp_Explorer anExplor (myshape, TopAbs_VERTEX);
 #endif
-    if (!anExplor.More()) { // Shape vide -> Assemblage vide.
+    if (!anExplor.More()) { // empty Shape  -> empty Assembly.
       myBB.SetVoid();      
       return myBB;
     }
index b13c8a5..6106d5a 100755 (executable)
@@ -318,8 +318,8 @@ void AIS_TangentRelation::ComputeTwoEdgesTangent(const Handle(Prs3d_Presentation
     }
 
   gp_Vec theVector;
-  gp_Pnt pint3d; // le point de tangence
-  gp_Dir theDir; // la direction de la tangente
+  gp_Pnt pint3d; // tangency point
+  gp_Dir theDir; // tangency direction
   Standard_Real par_inter = 0.0; // parameter of tangency point
 
   if (found)
@@ -327,18 +327,18 @@ void AIS_TangentRelation::ComputeTwoEdgesTangent(const Handle(Prs3d_Presentation
       pint3d = BRep_Tool::Pnt(VCom);
     }
 
-  //Sinon, on le cherche comme si on savait que les 2 curves
-  // sont tangentes ( ce qui dooit etre le cas, tant pis pour les autres)
+  // Otherwise it is found as if it was known that 2 curves
+  // are tangents (which must be the cases)
   switch (typArg)
     {
-    case 12: // line circle
-      {
+    case 12: // circle line      
+       {
        const Handle(Geom_Line)& line = (Handle(Geom_Line)&) copy1;
        const Handle(Geom_Circle)& circle = (Handle(Geom_Circle)&) copy2;
 
        if ( !found )
          {
-           // il suffit de projeter le centre du cercle sur la droite
+           // it is enough to project the circus  center on the straight line 
            par_inter = ElCLib::Parameter(line->Lin(), circle->Location());
            pint3d = ElCLib::Value(par_inter, line->Lin());
          }
@@ -360,7 +360,7 @@ void AIS_TangentRelation::ComputeTwoEdgesTangent(const Handle(Prs3d_Presentation
       
        if (!found)
          {
-           // il suffit de projeter le centre du cercle sur la droite
+           // it is enough to project the circus  center on the straight line 
            par_inter = ElCLib::Parameter(line->Lin(), circle->Location());
            pint3d = ElCLib::Value(par_inter, line->Lin());
          }
index 80d1dad..eff32ca 100755 (executable)
@@ -342,10 +342,8 @@ void AIS_TexturedShape::Compute(const Handle(PrsMgr_PresentationManager3d)& /*aP
        BRepTools::Update(myshape);
 
        Handle(Graphic3d_StructureManager) aStrucMana = GetContext()->MainPrsMgr()->StructureManager();
-         {  
-           Handle(Prs3d_ShadingAspect) aPrs3d_ShadingAspect = new Prs3d_ShadingAspect;
-           myAspect = aPrs3d_ShadingAspect->Aspect();
-         }
+
+       myAspect = (new Prs3d_ShadingAspect())->Aspect();
        if (!DoMapTexture)
          {
            myAspect->SetTextureMapOff();
@@ -423,21 +421,21 @@ void AIS_TexturedShape::Compute(const Handle(PrsMgr_PresentationManager3d)& /*aP
            dVmax = (Vmax - Vmin);
            Handle(Graphic3d_Group) mygroup = Prs3d_Root::CurrentGroup(aPrs);
 
-           Standard_Integer nnn = myT->NbTriangles();                                  // nnn : nombre de triangles
-           Standard_Integer nt, n1, n2, n3 = 0;                                                // nt  : triangle courant
-           // ni  : sommet i du triangle courant
+           Standard_Integer nnn = myT->NbTriangles();                                  // nnn : number of triangles
+           Standard_Integer nt, n1, n2, n3 = 0;                                                // nt  : current triangle
+           // ni  : top i of the current triangle
            for (nt = 1; nt <= nnn; nt++)                                       
              {
 #ifdef DEBUG
                cout << "On traite actuellement le triangle : "<< nt <<"\n";
 #endif                                         
-               if (SST.Orientation(myFace) == TopAbs_REVERSED)                 // si la face est "reversed"
-                 triangles(nt).Get(n1,n3,n2);                                          // le triangle est n1,n3,n2
+               if (SST.Orientation(myFace) == TopAbs_REVERSED)                 // if the face is "reversed"
+                 triangles(nt).Get(n1,n3,n2);                                          // the triangle is n1,n3,n2
                else 
-                 triangles(nt).Get(n1,n2,n3);                                          // le triangle est n1,n2,n3
+                 triangles(nt).Get(n1,n2,n3);                                          // the triangle is n1,n2,n3
 
                if (TriangleIsValid (Nodes(n1),Nodes(n2),Nodes(n3)) )
-                 {     // Associates a vertexNT to each node
+                 {     // Associates vertexNT to each node
                    Graphic3d_Array1OfVertexNT Points(1,3);
                    Aspect_Array1OfEdge aretes(1,3);
 
index f1d2d72..03c08ca 100755 (executable)
@@ -100,8 +100,8 @@ void AIS_Trihedron::SetSize(const Standard_Real aValue)
 
 //=======================================================================
 //function : UnsetSize
-//purpose  : si l'objet a 1 couleur, on reprend la taille
-//           du drawer par defaut. sinon on nullifie le DatumAspect
+//purpose  : if the object has 1 color, the default size of the 
+//           drawer is reproduced, otherwise DatumAspect becomes null
 //=======================================================================
 
 void AIS_Trihedron::UnsetSize()
@@ -232,7 +232,6 @@ void AIS_Trihedron::Compute(
 {
   aPresentation->Clear();
 
-  //CTS16254 : pas de prise en compte des axes lors du FITALL (fpo 18/07)
   aPresentation->SetInfiniteState (Standard_True);
   switch(aMode){
   case 0: 
@@ -266,14 +265,14 @@ void AIS_Trihedron::Compute(const Handle_Prs3d_Projector& aProjector,
 void AIS_Trihedron::ComputeSelection(const Handle(SelectMgr_Selection)& aSelection,
                                      const Standard_Integer aMode)
 {
-  // recuperation des points extremites du triedre.
+  // retrieve the tops of the trihedron.
   Standard_Integer Prior;
   Handle(SelectMgr_EntityOwner) eown;
   TColgp_Array1OfPnt PP(1,4),PO(1,4);
   ExtremityPoints(PP);
   switch (aMode) {
   case 0:
-    {   // triedre complet 1 seul proprietaire : this... priorite 5 (meme que faces)
+    {   // complete triedron only 1 owner : this... priority 5 (same as faces)
       Prior = 5;
       eown = new SelectMgr_EntityOwner(this,Prior);
       for (Standard_Integer i=1; i<=3;i++)
@@ -281,7 +280,7 @@ void AIS_Trihedron::ComputeSelection(const Handle(SelectMgr_Selection)& aSelecti
       break;
     }
   case 1:
-    {  //origine : 
+    {  //origin : 
       Prior = 8;
       eown= new SelectMgr_EntityOwner(myShapes[0],Prior);
       
@@ -290,7 +289,7 @@ void AIS_Trihedron::ComputeSelection(const Handle(SelectMgr_Selection)& aSelecti
       break;
     }
   case 2:
-    {  //axes ... priorite 7
+    {  //axes ... priority 7
       Prior = 7;
       for (Standard_Integer i=1; i<=3;i++){
        eown= new SelectMgr_EntityOwner(myShapes[i],Prior);
@@ -301,7 +300,7 @@ void AIS_Trihedron::ComputeSelection(const Handle(SelectMgr_Selection)& aSelecti
     }
     
   case 3:
-    {  // plans principaux priorite 6
+    {  // main planes priority 6
 //      PO(1) = PP(1);
 //      PO(4) = PP(1);
       Prior =5;
index 4a0d97a..6c255c8 100755 (executable)
@@ -66,9 +66,9 @@
   myState = myPClassifier->State();
   const TopoDS_Shape& fres = myPClassifier->Face();
   if (fres.IsNull()) {
-    // NYI : en cas d'elimination des faces EXTERNAL et INTERNAL par le
-    // classifier BRepClass3d_SolidClassifier, traiter quand meme ces faces
-    // pour generer l'etat ON/Solid quand le point est IN/face INTERNAL ou EXTERNAL 
+    // NYI : in case of removal of EXTERNAL and INTERNAL faces by the
+    // classifier BRepClass3d_SolidClassifier, process these faces
+    // to generate state ON/Solid when the point is IN/face INTERNAL or EXTERNAL 
     return myState;
   }
   
index 0eab5fa..0d2dd9f 100755 (executable)
@@ -146,7 +146,7 @@ static void GetOrientationVOnE(const TopoDS_Shape& V,
 
 //=======================================================================
 //function : MakeNeighboursList
-//purpose  : recherche des edges connexes a Earg par Varg 
+//purpose  : find edges connected to Earg by Varg 
 //=======================================================================
   const TopTools_ListOfShape & BOP_WireEdgeSet::MakeNeighboursList(const TopoDS_Shape& Earg,
                                                                   const TopoDS_Shape& Varg)
@@ -176,10 +176,10 @@ static void GetOrientationVOnE(const TopoDS_Shape& V,
     if (newn >= 2 ) {
 
       const TopoDS_Face& F = myFace;
-      // plusieurs aretes de couture connexes a E par V et telles que :
-      // orientation de V dans E # orientation de V dans ces aretes.
-      // on ne garde,parmi les aretes de couture connexes,
-      // que l'arete A qui verifie tg(E) ^ tg(A) > 0
+      // several sewing edges connected to E by V such as :
+      // orientation of V in E # orientation of V in its edges.
+      // one leaves among the connected sewing edges,
+      // only edge A that checks tg(E) ^ tg(A) > 0
 
       TopAbs_Orientation Eori;
       gp_Vec2d d1E; gp_Pnt2d pE;
@@ -244,11 +244,11 @@ static void GetOrientationVOnE(const TopoDS_Shape& V,
                              ( (cross < 0) && oVE == TopAbs_FORWARD );
 
        if ( t2 ) { //-- t1
-         // c'est la bonne IsClosed,on ne garde qu'elle parmi les IsClosed 
+         // this is proper IsClosed, only it is preserved among IsClosed 
          lclo.Next();
        }
        else {
-         // on vire l'arete IsClosed 
+         // edge IsClosed is suspended
          myCurrentShapeNeighbours.Remove(lclo);
        }
       }// end of while (lclo.More())
@@ -327,11 +327,11 @@ static void GetOrientationVOnE(const TopoDS_Shape& V,
   Standard_Boolean resu = Standard_False;
   TopAbs_Orientation o1,o2;
 
-  // SSCONNEX = False ==> on selectionne E2 de facon a creer ulterieurement
-  // (defaut)             autant de faces que de composantes connexes en UV.
-  // SSCONNEX = True ==> on prend toute arete E2 qui partage V avec E1
-  //                     et telle que orientation(V/E1) # orientation(V/E2)
-  //                     ==> face de part et d'autre des coutures
+  // SSCONNEX = False ==> E2 is  selected to create as many 
+  // (default)           faces as there are components connected in UV.
+  // SSCONNEX = True ==> the entire edge E2 sharing V with E1 is taken
+  //                     so that orientation(V/E1) # orientation(V/E2)
+  //                     ==> face of part and other sewings
   if ((c1 && c2)) {
     Standard_Boolean u1 = c1 ? IsUClosed(E1) : Standard_False; 
     Standard_Boolean v1 = c1 ? IsVClosed(E1) : Standard_False; 
@@ -345,8 +345,8 @@ static void GetOrientationVOnE(const TopoDS_Shape& V,
     resu = VertexConnectsEdges(V,E1,E2,o1,o2);
   }
   else { 
-    // cto 012 O2 arete de couture de face cylindrique
-    // chainage des composantes splitees ON et OUT de meme orientation
+    // cto 012 O2 sewing edge of cylindric face
+    // chain of components split ON and OUT of the same orientation
     TopAbs_Orientation oe1 = E1.Orientation();
     TopAbs_Orientation oe2 = E2.Orientation();
     Standard_Boolean iseq = E1.IsEqual(E2);
index fe3564d..9e93952 100755 (executable)
@@ -138,54 +138,52 @@ is
     --          Edge/Face  and  evolutif  radius        
 
     class SurfRstConstRad;
-    ---Purpose:  Copie de CSConstRad mais avec une pcurve sur surface 
-    --           comme support. 
+    ---Purpose: Copy of CSConstRad with pcurve on surface 
+    --          as support. 
 
     class RstRstEvolRad;
     ---Purpose: Function  to approximate by AppSurface  for  
     --          Edge/Edge  and  evolutif  radius
     --          
     class RstRstConstRad;
-    ---Purpose:  Copie de CSConstRad mais avec une pcurve sur surface 
-    --           comme support. 
+    ---Purpose: Copy of CSConstRad with a pcurve on surface 
+    --          as support. 
 
     class SurfPointConstRadInv;
-    ---Purpose: Fonction de recadrage entre  un  point et une surface.
+    ---Purpose: Function of reframing between a point and a surface.
 
     class SurfCurvConstRadInv;
-    ---Purpose: Fonction de recadrage entre une restriction surface de
-    --          la surface et une courbe.
+    ---Purpose: Function of reframing between a restriction surface of the
+    --          surface and a curve.
 
     class SurfPointEvolRadInv;
-    ---Purpose: Fonction de recadrage entre  un  point et une surface.
+    ---Purpose: Fonction of reframing between a point and a surface.
 
     class CurvPointRadInv;
-    ---Purpose: Fonction de recadrage entre  un  point et une courbe.
-    --          valable dans les cas rsyon constant et rayon evolutif
+    ---Purpose: Function of reframing between a point and a curve.
+    --          valid in cases of constant and progressive radius
     class SurfCurvEvolRadInv;
-    ---Purpose: Fonction de recadrage entre une restriction surface de
-    --          la surface et une courbe.
+    ---Purpose: Function of reframing between a surface restriction 
+    --          of the surface and a curve.
 
     class SurfRstLineBuilder;
-    ---Purpose: Construction d'une BRepBlend_Line entre une surface et
-    --          une   pcurve sur surface a  partir   d'une solution de
-    --          depart approchee.   Les entrees sorties  de ce builder
-    --          sont  de  meme     nature  que  celle  d'un    walking
-    --          traditionnel, mais les  exigences sur la Line  ne sont
-    --          pas    les   memes.   Si l'on   garanti    toujours la
-    --          determination du  range de  validite,  on ne  respecte
-    --          plus les criteres de bonne repartition des sections en
-    --          vue d'un lissage. En  resume la Line resultat est f(t)
-    --          oriented.
+    ---Purpose: Construction of a BRepBlend_Line between a surface and
+    --          a pcurve on surface from an approached
+    --          starting solution. The output entries of this builder
+    --          are of the same nature as of the traditional walking
+    --          but the requirements on the Line are not the same
+    --          If the determination of validity range is always
+    --          guaranteed, the criteria of correct repartition of sections 
+    --          before smoothing are not respected. The resulting Line
+    --          is f(t) oriented.
 
     class RstRstLineBuilder;
-    ---Purpose: Construction d'une BRepBlend_Line entre deux pcurves a
-    --           partir d'une   solution de  depart  approchee.    Les
-    --          entrees sorties de ce builder sont  de meme nature que
-    --          celle d'un  walking  traditionnel, mais les  exigences
-    --          sur la Line  ne sont pas  les memes.  Si l'on  garanti
-    --          toujours la determination du range  de validite, on ne
-    --          respecte plus les criteres   de bonne repartition  des
-    --          sections  en  vue  d'un  lissage. En  resume  la  Line
-    --          resultat est f(t) oriented.
+    ---Purpose: Construction of a BRepBlend_Line between two pcurves
+    --          from an approached starting solution. The output
+    --          entries of this builder are of the same nature 
+    --          as of a traditional walking, but the requirements 
+    --          to the Line are not the same. If the determination of validity range is always
+    --          guaranteed, the criteria of correct repartition of sections 
+    --          before smoothing are not respected. The resulting Line
+    --          is f(t) oriented.          
 end BRepBlend;
index 8bba669..fb42ada 100755 (executable)
@@ -42,10 +42,10 @@ BRepBlend_AppFuncRoot::BRepBlend_AppFuncRoot(Handle(BRepBlend_Line)& Line,
     if (myTolerance(ii)>Tol2d) { myTolerance(ii) = Tol2d;}
   }
   
-  //  Tableaux
+  //  Tables
   Func.GetShape( NbPoles, NbKnots, Degree, NbPoles2d);
   
-  // Calcul du BaryCentre (cas rationnel).
+  // Calculation of BaryCentre (rationnal case).
   if (Func.IsRational()) {
     Standard_Real Xmax =-1.e100, Xmin = 1.e100, 
     Ymax =-1.e100, Ymin = 1.e100, 
@@ -68,8 +68,8 @@ BRepBlend_AppFuncRoot::BRepBlend_AppFuncRoot(Handle(BRepBlend_Line)& Line,
 
 //================================================================================ 
 // Function: D0
-// Purpose : Calcul de la section pour v = Param, si le calcul echoue on rend
-//           Standard_False. 
+// Purpose : Calculation of section for v = Param, if calculation fails
+//           Standard_False is raised. 
 //================================================================================
 Standard_Boolean BRepBlend_AppFuncRoot::D0(const Standard_Real Param,
                                           const Standard_Real First,
@@ -89,8 +89,8 @@ Standard_Boolean BRepBlend_AppFuncRoot::D0(const Standard_Real Param,
 
 //================================================================================ 
 // Function: D1
-// Purpose : Calcul de la derive partiel de la section par rapport a v
-//           pour v = Param, si le calcul echoue on rend Standard_False.
+// Purpose : Calculation of the partial derivative of the section corresponding to v
+//           for v = Param, if the calculation fails Standard_False is raised.
 //================================================================================ 
 Standard_Boolean BRepBlend_AppFuncRoot::D1(const Standard_Real Param,
                                           const Standard_Real First,
@@ -119,9 +119,9 @@ Standard_Boolean BRepBlend_AppFuncRoot::D1(const Standard_Real Param,
 
 //=========================================================================== 
 // Function: D2
-// Purpose : Calcul de la derive et seconde partiel de la 
-//           section par rapport a v.
-//           Pour v = Param, si le calcul echoue on rend Standard_False.  
+// Purpose : Calculation of the derivative and second partial of the 
+//           section corresponding to v.
+//           For v = Param, if the calculation fails Standard_False is raised.  
 //=========================================================================== 
 Standard_Boolean BRepBlend_AppFuncRoot::D2(const Standard_Real Param,
                                           const Standard_Real First,
@@ -257,15 +257,15 @@ void BRepBlend_AppFuncRoot::GetMinimalWeight(TColStd_Array1OfReal& Weigths) cons
 //
 // Function : SearchPoint
 //
-// Purpose : Recherche du point solution au parametre Param (sur 2 Surfaces)
+// Purpose : Find point solution with parameter Param (on 2 Surfaces)
 //
-// Algorithme : 
-//     1) On recheche une solution approximative a partir des Points dejas calcules
-//     2) On Converge par une methode de type Newton
+// Algorithm : 
+//     1) Approximative solution is found from already calculated Points
+//     2) Convergence is done by a method of type Newton
 // 
-// Causes possibles d'echecs : 
-//        - Singularite sur les surfaces.
-//        - Manquent d'information dans la "line"issue du cheminement. 
+// Possible causes of fails : 
+//        - Singularity on surfaces.
+//        - no information oin the "line" resulting from processing. 
 //            
 //================================================================================  
 
@@ -275,24 +275,24 @@ Standard_Boolean BRepBlend_AppFuncRoot::SearchPoint(Blend_AppFunction& Func,
 {
   Standard_Boolean Trouve;
   Standard_Integer dim = Func.NbVariables();
-  // (1) Recherche d'un point d'init
+  // (1) Find a point of init
   Standard_Integer I1=1, I2=myLine->NbPoints(), Index;
   Standard_Real t1, t2;
   
-  //  (1.a) On verifie que c'est a l'interieur
+  //  (1.a) It is checked if it is inside
   if (Param < myLine->Point(I1).Parameter()) {return Standard_False;}
   if (Param > myLine->Point(I2).Parameter()) {return Standard_False;}
   
-  //  (1.b) On recheche l'intervalle
+  //  (1.b) Find the interval
   Trouve = SearchLocation(Param, I1, I2, Index);
   
-  //  (1.c) Si le point est dejas calcule on le recupere
+  //  (1.c) If the point is already calculated it is returned
   if (Trouve) {
     Pnt = myLine->Point(Index);
     Vec(XInit,Pnt);
   }
   else {
-    //  (1.d) Intialisation par interpolation lineaire
+    //  (1.d) Intialisation by linear interpolation
     Pnt = myLine->Point(Index);
     Vec(X1,Pnt);
     t1 = Pnt.Parameter();
@@ -308,7 +308,7 @@ Standard_Boolean BRepBlend_AppFuncRoot::SearchPoint(Blend_AppFunction& Func,
     }
   }
 
-  // (2) Calcul effectif de la solution ------------------------
+  // (2) Calculation of the solution ------------------------
   Func.Set(Param);
   Func.GetBounds(X1, X2);
   math_FunctionSetRoot rsnld(Func, myTolerance, 30);
@@ -323,13 +323,13 @@ Standard_Boolean BRepBlend_AppFuncRoot::SearchPoint(Blend_AppFunction& Func,
   }
   rsnld.Root(Sol);
   
-  // (3) Stockage du point
+  // (3) Storage of the point
   Point(Func,Param,Sol,Pnt);
 
-  // (4) Insertion du point si le cacul semble long.
+  // (4) Insertion of the point if the calculation seems long.
   if ((!Trouve)&&(rsnld.NbIterations()>3)) {
 #ifdef DEB
-    cout << "Evaluation en t = " <<  Param << "donne" << endl;
+    cout << "Evaluation in t = " <<  Param << "given" << endl;
     rsnld.Dump(cout);
 #endif
     myLine->InsertBefore(Index+1, Pnt);
@@ -342,11 +342,11 @@ Standard_Boolean BRepBlend_AppFuncRoot::SearchPoint(Blend_AppFunction& Func,
 //
 // Function : SearchLocation
 //
-// Purpose : Recherche dichotomiqique du rang de l'intervalle parametrique contenant
-//           Param dans la liste de points calcule (myline)
-//           si le point de parametre Param est deja stocker dans la liste on rend
-//           True et ParamIndex correspond au rang du Point.
-//           La complexite de cet algorithme est de log(n)/log(2)
+// Purpose : Binary search of the line of the parametric interval containing
+//           Param in the list of calculated points (myline)
+//           if the point of parameter Param is already stored in the list
+//           True is raised and ParamIndex corresponds to line of Point.
+//           Complexity of this algorithm is log(n)/log(2)
 //================================================================================ 
 Standard_Boolean BRepBlend_AppFuncRoot::SearchLocation(const Standard_Real Param,
                                                       const Standard_Integer FirstIndex,
index 28849f0..1d56a46 100755 (executable)
@@ -220,7 +220,7 @@ Standard_Boolean BRepBlend_RstRstConstRad::IsSolution(const math_Vector&  Sol,
   if (Abs(valsol(1)) <= Tol &&
       Abs(valsol(2)) <= Tol ) {
     
-    // Calcul des tangentes
+    // Calculation of tangents
     prmrst1  = Sol(1);    
     pt2drst1 = rst1->Value(prmrst1);
     prmrst2  = Sol(2);
@@ -286,7 +286,7 @@ Standard_Boolean BRepBlend_RstRstConstRad::IsSolution(const math_Vector&  Sol,
     Sina = nplan.Dot(n1.Crossed(n2));
 
     if (choix%2 != 0) {
-      Sina = -Sina;  //nplan est change en -nplan
+      Sina = -Sina;  //nplan is changed into -nplan
     }
     
     Angle = ACos(Cosa);
@@ -446,11 +446,11 @@ Blend_DecrochStatus BRepBlend_RstRstConstRad::Decroch(const math_Vector& Sol,
 
   rstref1->Value(Sol(1)).Coord(u, v);
   surfref1->D1(u, v,PtTmp1,d1u,d1v);
-  // Normale a la surface de reference 1
+  // Normal to the reference surface 1
   NRst1     = d1u.Crossed(d1v);  
   rstref2->Value(Sol(2)).Coord(u, v);
   surfref2->D1(u, v, PtTmp2, d1u, d1v);
-  // Normale a la surface de reference 2
+  // Normal to the reference surface 2
   NRst2     = d1u.Crossed(d1v);
 
   Standard_Boolean IsCenter;
@@ -483,7 +483,7 @@ Blend_DecrochStatus BRepBlend_RstRstConstRad::Decroch(const math_Vector& Sol,
     TgRst2.Reverse();
   }
 
-  // On retourne les vecteurs 
+  // The vectors are returned 
   if (NRst1InPlane.Dot(TgRst1) > -1.e-10) {
     if (NRst2InPlane.Dot(TgRst2) < 1.e-10) {
       return Blend_DecrochBoth;
@@ -530,7 +530,7 @@ void BRepBlend_RstRstConstRad::Set(const BlendFunc_SectionShape TypeSection)
 
 //=======================================================================
 //function : CenterCircleRst1Rst2
-//purpose  : Calculer le centre du cercle passant par les deux points des restrictions
+//purpose  : Calculate the center of the circle passing by two points of restrictions
 //=======================================================================
 Standard_Boolean  BRepBlend_RstRstConstRad::CenterCircleRst1Rst2(const gp_Pnt&       PtRst1,
                                                                 const gp_Pnt&       PtRst2,
@@ -540,11 +540,11 @@ Standard_Boolean  BRepBlend_RstRstConstRad::CenterCircleRst1Rst2(const gp_Pnt&
 {  
   
   gp_Vec rst1rst2(PtRst1, PtRst2);
-  gp_Vec   vdmedNor; //,NRst1;    vdmedNor  vecteur directeur de la Mediatrice  
+  gp_Vec   vdmedNor; //,NRst1;    vdmedNor directong vector of the perpendicular bisector  
   Standard_Real norm2;
-  Standard_Real Dist;// distance entre le milieu de PtRst1,PtRst2 et Center
+  Standard_Real Dist;// distance between the middle of PtRst1,PtRst2 and Center
 
-  // Calcul du centre du cercle 
+  // Calculate the center of the circle 
   VdMed = rst1rst2.Crossed(np); 
   norm2 = rst1rst2.SquareMagnitude();
   Dist  = ray * ray - 0.25 * norm2;
@@ -609,7 +609,7 @@ void BRepBlend_RstRstConstRad::Section(const Standard_Real Param,
   Pdeb = 0; //ElCLib::Parameter(C, pts);
   Pfin = ElCLib::Parameter(C, ptrst2);
 
-  // Test des angles negatif et quasi null : Cas Singulier
+  // Test of angles negative and almost null : Special Case
   if (Pfin > 1.5 * PI) {
     np.Reverse();
     C.SetPosition(gp_Ax2(Center, np, ns));
@@ -646,7 +646,7 @@ Standard_Real BRepBlend_RstRstConstRad::GetSectionSize() const
 void BRepBlend_RstRstConstRad::GetMinimalWeight(TColStd_Array1OfReal& Weights) const 
 {
   BlendFunc::GetMinimalWeights(mySShape, myTConv, minang, maxang, Weights );
-  // On suppose que cela ne depend pas du Rayon! 
+  // It is supposed that it does not depend on the Radius! 
 }
 
 //=======================================================================
@@ -686,7 +686,7 @@ void BRepBlend_RstRstConstRad::GetShape (Standard_Integer& NbPoles,
 
 //=======================================================================
 //function : GetTolerance
-//purpose  : Determine les Tolerance a utiliser dans les approximations.
+//purpose  : Determine Tolerances to be used in approximations.
 //=======================================================================
 
 void BRepBlend_RstRstConstRad::GetTolerance(const Standard_Real BoundTol, 
@@ -759,7 +759,7 @@ void BRepBlend_RstRstConstRad::Section(const Blend_Point& P,
   Poles2d(Poles2d.Lower()).SetCoord(pt2d1.X(),pt2d1.Y());
   Poles2d(Poles2d.Upper()).SetCoord(pt2d2.X(),pt2d2.Y());
   
-  // Cas Linear
+  // Linear case
   if (mySShape == BlendFunc_Linear) {
     Poles(low)   = ptrst1;
     Poles(upp)   = ptrst2;
@@ -768,11 +768,11 @@ void BRepBlend_RstRstConstRad::Section(const Blend_Point& P,
     return;
   }
 
-  // Calcul du centre du cercle
+  // Calculate the center of the circle
   Standard_Boolean IsCenter;
   IsCenter = CenterCircleRst1Rst2(ptrst1, ptrst2, nplan, Center, NotUsed);
 
-  // normales a la section aux points 
+  // normals to the section with points 
   ns  = gp_Vec(Center, ptrst1).Normalized();  
   ns2 = gp_Vec(Center, ptrst2).Normalized();
 
@@ -873,8 +873,8 @@ Standard_Boolean BRepBlend_RstRstConstRad::Section(const Blend_Point& P,
   n2.Normalize();
 
   if (!istgt) {
-    // secmember contient les derivees des parametres sur les courbes
-    // par rapport a t  
+    // secmember contains derivatives of parameters on curves
+    // compared to t  
     tgrst1 = secmember(1) * d11;
     tgrst2 = secmember(2) * d21;
 
@@ -887,7 +887,7 @@ Standard_Boolean BRepBlend_RstRstConstRad::Section(const Blend_Point& P,
     if (Dist >  1.E-07) { 
       gp_Vec d1P1P2CrosNp, dmed;
       d1P1P2CrosNp = d1rst1rst2.Crossed(nplan) + rst1rst2.Crossed(dnplan);
-      // derivee de la mediatrice
+      // derivative of the perpendicular bisector
       dmed = d1P1P2CrosNp - med.Dot(d1P1P2CrosNp) * med;
       dmed /= normmed; 
       Dist = sqrt(Dist);
@@ -897,26 +897,26 @@ Standard_Boolean BRepBlend_RstRstConstRad::Section(const Blend_Point& P,
         dmed.Reverse();
       }
 
-      // on met dans dmed la derivee du coefficient Dist
+      // the derivative of coefficient Dist is located in dmed
       dmed.SetLinearForm(Dist, dmed, d1Dist, med);
       d1rst1rst2 *= 0.5;   
-      // derivee de la Normale a la courbe en P1    
+      // derivative of the Normal to the curve in P1    
       d1n1 = - (dmed + d1rst1rst2) / ray;
 
-      // derivee de la Normale a la courbe en P2
+      // derivative of the Normal to the curve in P2
       d1n2 = (d1rst1rst2 - dmed) / ray; 
     }
     else {
       d1rst1rst2 *= 0.5;
-      // Normale a la courbe en P1    
+      // Normal to the curve in P1    
       d1n1 = - d1rst1rst2 / ray;
 
-      // Normale a la courbe en P2
+      // Normal to the curve in P2
       d1n2 = d1rst1rst2 / ray;       
     }   
   }
   
-  // Les poles 2d
+  // Tops 2d
   
   Poles2d(Poles2d.Lower()).SetCoord(pt2drst1.X(), pt2drst1.Y());
   Poles2d(Poles2d.Upper()).SetCoord(pt2drst2.X(), pt2drst2.Y());
@@ -931,7 +931,7 @@ Standard_Boolean BRepBlend_RstRstConstRad::Section(const Blend_Point& P,
     DPoles2d(Poles2d.Upper()).SetCoord(a, b);
   }
   
-  // Cas Linear
+  // Linear case
   if (mySShape == BlendFunc_Linear) {
     Poles(low)   = ptrst1;
     Poles(upp)   = ptrst2;
@@ -946,8 +946,8 @@ Standard_Boolean BRepBlend_RstRstConstRad::Section(const Blend_Point& P,
     return (!istgt);
   }
   
-  // Cas du cercle
-  // tangente au centre du cercle
+  // Case of the circle
+  // tangent to the center of the circle
   if (!istgt) {
     tgct.SetLinearForm(-ray, d1n1, tgrst1);
   }
index b331b59..0200511 100755 (executable)
@@ -43,39 +43,39 @@ static void FusionneIntervalles(const TColStd_Array1OfReal& I1,
 {
   Standard_Integer ind1=1, ind2=1;
   Standard_Real    Epspar = Precision::PConfusion()*0.99;
-  // en suposant que le positionement fonctionne a PConfusion()/2
+  // supposed that the positioning works with PConfusion()/2
   Standard_Real    v1, v2;
-// Initialisations : les IND1 et IND2 pointent sur le 1er element
-// de chacune des 2 tables a traiter.INDS pointe sur le dernier
-// element cree de TABSOR
+// Initialisations : IND1 and IND2 point the 1st element
+// of each of 2 tables to be processed. INDS points at the last
+// created element of TABSOR
 
 
-//--- On remplit TABSOR en parcourant TABLE1 et TABLE2 simultanement ---
-//------------------ en eliminant les occurrences multiples ------------
+//--- TABSOR is filled by parsing TABLE1 and TABLE2 simultaneously ---
+//------------------ and removing multiple occurrencies ------------
 
  while ((ind1<=I1.Upper()) && (ind2<=I2.Upper())) {
       v1 = I1(ind1);
       v2 = I2(ind2);
       if (Abs(v1-v2)<= Epspar) {
-// Ici les elements de I1 et I2 conviennent .
+// elements of I1 and I2 fit here
          Seq.Append((v1+v2)/2);
         ind1++;
          ind2++;
        }
       else if (v1 < v2) {
-       // Ici l' element de I1 convient.
+       // element of I1 fits here.
          Seq.Append(v1);
          ind1++;
        }
       else {
-// Ici l' element de TABLE2 convient.
+// element of TABLE2 fits here.
         Seq.Append(v2);
         ind2++;
        }
     }
 
   if (ind1>I1.Upper()) { 
-//----- Ici I1 est epuise, on complete avec la fin de TABLE2 -------
+//----- Here I1 is exhausted, completed using the end of TABLE2 -------
 
     for (; ind2<=I2.Upper(); ind2++) {
       Seq.Append(I2(ind2));
@@ -83,7 +83,7 @@ static void FusionneIntervalles(const TColStd_Array1OfReal& I1,
   }
 
   if (ind2>I2.Upper()) { 
-//----- Ici I2 est epuise, on complete avec la fin de I1 -------
+//----- Here I2 is exhausted, completed using the end of I1 -------
 
     for (; ind1<=I1.Upper(); ind1++) {
       Seq.Append(I1(ind1));
@@ -291,7 +291,7 @@ Standard_Boolean BRepBlend_RstRstEvolRad::IsSolution(const math_Vector&  Sol,
   if (Abs(valsol(1)) <= Tol &&
       Abs(valsol(2)) <= Tol ) {
     
-    // Calcul des tangentes
+    // Calculation of tangents
     prmrst1  = Sol(1);    
     pt2drst1 = rst1->Value(prmrst1);
     prmrst2  = Sol(2);
@@ -517,11 +517,11 @@ Blend_DecrochStatus BRepBlend_RstRstEvolRad::Decroch(const math_Vector& Sol,
 
   rstref1->Value(Sol(1)).Coord(u, v);
   surfref1->D1(u, v,PtTmp1,d1u,d1v);
-  // Normale a la surface de reference 1
+  // Normal to the reference surface 1
   NRst1     = d1u.Crossed(d1v);  
   rstref2->Value(Sol(2)).Coord(u, v);
   surfref2->D1(u, v, PtTmp2, d1u, d1v);
-  // Normale a la surface de reference 2
+  // Normal to the reference surface 2
   NRst2     = d1u.Crossed(d1v);
 
   Standard_Boolean IsCenter;
@@ -554,7 +554,7 @@ Blend_DecrochStatus BRepBlend_RstRstEvolRad::Decroch(const math_Vector& Sol,
     TgRst2.Reverse();
   }
 
-  // On retourne les vecteurs 
+  // Vectors are returned 
   if (NRst1InPlane.Dot(TgRst1) > -1.e-10) {
     if (NRst2InPlane.Dot(TgRst2) < 1.e-10) {
       return Blend_DecrochBoth;
@@ -598,7 +598,7 @@ void BRepBlend_RstRstEvolRad::Set(const BlendFunc_SectionShape TypeSection)
 
 //=======================================================================
 //function : CenterCircleRst1Rst2
-//purpose  : Calculer le centre du cercle passant par les deux points des restrictions
+//purpose  : Calculate the center of circle passing by two points of restrictions
 //=======================================================================
 Standard_Boolean  BRepBlend_RstRstEvolRad::CenterCircleRst1Rst2(const gp_Pnt&       PtRst1,
                                                                const gp_Pnt&       PtRst2,
@@ -608,11 +608,11 @@ Standard_Boolean  BRepBlend_RstRstEvolRad::CenterCircleRst1Rst2(const gp_Pnt&
 {  
   
   gp_Vec rst1rst2(PtRst1, PtRst2);
-  gp_Vec   vdmedNor; //,NRst1;  vdmedNor  vecteur directeur de la Mediatrice  
+  gp_Vec   vdmedNor; //,NRst1;  vdmedNor  vector director of the perpendicular bisector  
   Standard_Real norm2;
-  Standard_Real Dist;// distance entre le milieu de PtRst1,PtRst2 et Center
+  Standard_Real Dist;// distance between the middle of PtRst1,PtRst2 and Center
 
-  // Calcul du centre du cercle 
+  // Calculate the center of the circle 
   VdMed = rst1rst2.Crossed(np); 
   norm2  = rst1rst2.SquareMagnitude();
   Dist  = ray * ray - 0.25 * norm2;
@@ -678,7 +678,7 @@ void BRepBlend_RstRstEvolRad::Section(const Standard_Real Param,
   Pdeb = 0; //ElCLib::Parameter(C, pts);
   Pfin = ElCLib::Parameter(C, ptrst2);
 
-  // Test des angles negatif et quasi null : Cas Singulier
+  // Test negative and quasi null angles: Special case
   if (Pfin > 1.5 * PI) {
     np.Reverse();
     C.SetPosition(gp_Ax2(Center, np, ns));
@@ -715,7 +715,7 @@ Standard_Real BRepBlend_RstRstEvolRad::GetSectionSize() const
 void BRepBlend_RstRstEvolRad::GetMinimalWeight(TColStd_Array1OfReal& Weights) const 
 {
   BlendFunc::GetMinimalWeights(mySShape, myTConv, minang, maxang, Weights );
-  // On suppose que cela ne depend pas du Rayon! 
+  // It is supposed that it does not depend on the Radius! 
 }
 
 //=======================================================================
@@ -788,7 +788,7 @@ void BRepBlend_RstRstEvolRad::GetShape (Standard_Integer& NbPoles,
 
 //=======================================================================
 //function : GetTolerance
-//purpose  : Determine les Tolerance a utiliser dans les approximations.
+//purpose  : Determine the Tolerance to be used in approximations.
 //=======================================================================
 
 void BRepBlend_RstRstEvolRad::GetTolerance(const Standard_Real BoundTol, 
@@ -862,7 +862,7 @@ void BRepBlend_RstRstEvolRad::Section(const Blend_Point& P,
   Poles2d(Poles2d.Lower()).SetCoord(pt2d1.X(),pt2d1.Y());
   Poles2d(Poles2d.Upper()).SetCoord(pt2d2.X(),pt2d2.Y());
   
-  // Cas Linear
+  // Linear Case
   if (mySShape == BlendFunc_Linear) {
     Poles(low)   = ptrst1;
     Poles(upp)   = ptrst2;
@@ -871,11 +871,11 @@ void BRepBlend_RstRstEvolRad::Section(const Blend_Point& P,
     return;
   }
 
-  // Calcul du centre du cercle
+  // Calculate the center of the circle
   Standard_Boolean IsCenter;
   IsCenter = CenterCircleRst1Rst2(ptrst1, ptrst2, nplan, Center, NotUsed);
 
-  // normales a la section aux points 
+  // normals to the section with points 
   n1  = gp_Vec(Center, ptrst1).Normalized();  
   n2  = gp_Vec(Center, ptrst2).Normalized();
 
@@ -975,8 +975,8 @@ Standard_Boolean BRepBlend_RstRstEvolRad::Section(const Blend_Point& P,
   gp_Vec n1(Center, ptrst1), n2(Center, ptrst2);
 
   if (!istgt) {
-    // secmember contient les derivees des parametres sur les courbes
-    // par rapport a t  
+    // secmember contains derivatives of parameters on curves
+    // corresponding to t  
     tgrst1 = secmember(1) * d11;
     tgrst2 = secmember(2) * d21;
 
@@ -990,7 +990,7 @@ Standard_Boolean BRepBlend_RstRstEvolRad::Section(const Blend_Point& P,
     if (Dist >  1.E-07) { 
       gp_Vec d1P1P2CrosNp, dmed;
       d1P1P2CrosNp = d1rst1rst2.Crossed(nplan) + rst1rst2.Crossed(dnplan);
-      // derivee de la mediatrice
+      // derivative of the bisector 
       dmed = d1P1P2CrosNp - med.Dot(d1P1P2CrosNp) * med;
       dmed /= normmed; 
       Dist = sqrt(Dist);
@@ -1002,13 +1002,13 @@ Standard_Boolean BRepBlend_RstRstEvolRad::Section(const Blend_Point& P,
         dmed.Reverse();
       }
 
-      // on met dans dmed la derivee du coefficient Dist
+      // derivative of the coefficient Dist is located in dmed
       dmed.SetLinearForm(Dist, dmed, d1Dist, med);
       d1rst1rst2 *= 0.5;   
-      // derivee de la Normale a la courbe en P1    
+      // derivative of the Normal to the curve in P1    
       d1n1 = - (d1rst1rst2 + dmed + Invdray * n1) / ray;
 
-      // derivee de la Normale a la courbe en P2
+      // derivative of the Normal to the curve in P2
       d1n2 = (d1rst1rst2 - dmed - Invdray * n2) / ray; 
     }
     else {
@@ -1024,7 +1024,7 @@ Standard_Boolean BRepBlend_RstRstEvolRad::Section(const Blend_Point& P,
   n1.Normalize();
   n2.Normalize();
   
-  // Les poles 2d
+  // Tops 2D
   
   Poles2d(Poles2d.Lower()).SetCoord(pt2drst1.X(), pt2drst1.Y());
   Poles2d(Poles2d.Upper()).SetCoord(pt2drst2.X(), pt2drst2.Y());
@@ -1039,7 +1039,7 @@ Standard_Boolean BRepBlend_RstRstEvolRad::Section(const Blend_Point& P,
     DPoles2d(Poles2d.Upper()).SetCoord(a, b);
   }
   
-  // Cas Linear
+  // Linear Case
   if (mySShape == BlendFunc_Linear) {
     Poles(low)   = ptrst1;
     Poles(upp)   = ptrst2;
@@ -1054,8 +1054,8 @@ Standard_Boolean BRepBlend_RstRstEvolRad::Section(const Blend_Point& P,
     return (!istgt);
   }
   
-  // Cas du cercle
-  // tangente au centre du cercle
+  // Case of the circle
+  // tangent to the center of the circle
   if (!istgt) {
     tgct.SetLinearForm(-ray, d1n1, -dray, n1, tgrst1);
   }
index 604e574..8bf9c13 100755 (executable)
@@ -31,7 +31,7 @@ static Standard_Integer IndexOfSection = 0;
 extern Standard_Boolean Blend_GettraceDRAWSECT(); 
 
 //-----------------------------------------------------
-// Pour debug : visualisation de la section
+// For debug : visualisation of the section
 static Standard_Boolean BBPP(const Standard_Real param,
                             Blend_RstRstFunction& Func,
                             const math_Vector& sol,
@@ -80,27 +80,27 @@ static void tracederiv(Blend_RstRstFunction& Func,
   Standard_Real scal = 1./ (param1 - param2);
 
   cout<<endl;
-  cout<<"controle des derivees au point : "<<param1<<endl;
+  cout<<"control of derivatives at point : "<<param1<<endl;
 
   for(i = 1; i <= hp; i++){
     cout<<endl;
     cout<<"point : "<<i<<endl;
-    cout<<"dx calcule : "<<TDP1(i).X()<<endl;
-    cout<<"dx estime  : "<<scal*(TP1(i).X()-TP2(i).X())<<endl;
-    cout<<"dy calcule : "<<TDP1(i).Y()<<endl;
-    cout<<"dy estime  : "<<scal*(TP1(i).Y()-TP2(i).Y())<<endl;
-    cout<<"dz calcule : "<<TDP1(i).Z()<<endl;
-    cout<<"dz estime  : "<<scal*(TP1(i).Z()-TP2(i).Z())<<endl;
-    cout<<"dw calcule : "<<TDW1(i)<<endl;
-    cout<<"dw estime  : "<<scal*(TW1(i)-TW2(i))<<endl;
+    cout<<"dx calculated : "<<TDP1(i).X()<<endl;
+    cout<<"dx estimated  : "<<scal*(TP1(i).X()-TP2(i).X())<<endl;
+    cout<<"dy calculated : "<<TDP1(i).Y()<<endl;
+    cout<<"dy estimated  : "<<scal*(TP1(i).Y()-TP2(i).Y())<<endl;
+    cout<<"dz calculated : "<<TDP1(i).Z()<<endl;
+    cout<<"dz estimated  : "<<scal*(TP1(i).Z()-TP2(i).Z())<<endl;
+    cout<<"dw calculated : "<<TDW1(i)<<endl;
+    cout<<"dw estimated  : "<<scal*(TW1(i)-TW2(i))<<endl;
   }
   for(i = 1; i <= hp2d; i++){
     cout<<endl;
     cout<<"point 2d : "<<i<<endl;
-    cout<<"dx calcule : "<<TDP2d1(i).X()<<endl;
-    cout<<"dx estime  : "<<scal*(TP2d1(i).X()-TP2d2(i).X())<<endl;
-    cout<<"dy calcule : "<<TDP2d1(i).Y()<<endl;
-    cout<<"dy estime  : "<<scal*(TP2d1(i).Y()-TP2d2(i).Y())<<endl;
+    cout<<"dx calculated : "<<TDP2d1(i).X()<<endl;
+    cout<<"dx estimated  : "<<scal*(TP2d1(i).X()-TP2d2(i).X())<<endl;
+    cout<<"dy calculated : "<<TDP2d1(i).Y()<<endl;
+    cout<<"dy estimated  : "<<scal*(TP2d1(i).Y()-TP2d2(i).Y())<<endl;
   }
 }
 
@@ -159,7 +159,7 @@ BRepBlend_RstRstLineBuilder::BRepBlend_RstRstLineBuilder
 
 //=======================================================================
 //function : Perform
-//purpose  : lance le processus de cheminement
+//purpose  : launch the processing
 //=======================================================================
 
 void BRepBlend_RstRstLineBuilder::Perform(Blend_RstRstFunction&   Func,
@@ -229,7 +229,7 @@ void BRepBlend_RstRstLineBuilder::Perform(Blend_RstRstFunction&   Func,
     Drawsect(param, Func);
   }
 #endif
-  // Mettre a jour la ligne.
+  // Update the line.
   line->Append(previousP);
   Standard_Real U, V;
   U = previousP.ParameterOnC1();
@@ -256,7 +256,7 @@ void BRepBlend_RstRstLineBuilder::Perform(Blend_RstRstFunction&   Func,
 
 //=======================================================================
 //function : PerformFirstSection
-//purpose  : Creation de la premiere section
+//purpose  : Creation of the first section
 //=======================================================================
 
 Standard_Boolean BRepBlend_RstRstLineBuilder::PerformFirstSection
@@ -340,9 +340,9 @@ Standard_Boolean BRepBlend_RstRstLineBuilder::PerformFirstSection
   if (!recadrst1 && !recadp1 && !recadrst2 && !recadp2) return Standard_False;
 
 
-  // on regarde si on a decroche ou sorti du domaine 1
+  // it is checked if the contact was lost or domain 1 was left
   if (recadp1 && recadrst1) {
-    if (sens * (wrst1 - wp1) > tolgui){ //on sort du domaine d abord
+    if (sens * (wrst1 - wp1) > tolgui){ //at first one leaves the domain
       wrst1     = wp1;
       trst12    = solinvp1(2);
       trst11    = BRepBlend_BlendTool::Parameter(Vtxp1, rst1);
@@ -350,7 +350,7 @@ Standard_Boolean BRepBlend_RstRstLineBuilder::PerformFirstSection
       Vtxrst2   = Vtxp1;
       recadrst1 = Standard_False;
     }
-    else { // on a decroche
+    else { // the contact is lost
       trst11  = solinvrst1(3);
       trst12  = solinvrst1(2);
       recadp1 = Standard_False;
@@ -368,9 +368,9 @@ Standard_Boolean BRepBlend_RstRstLineBuilder::PerformFirstSection
     trst12  = solinvrst1(2);
   }
 
-  // on regarde si on a decrocher ou sortie du domaine 2
+  // it is checked if the contact was lost or domain 2 was left
   if (recadp2 && recadrst2) {
-    if (sens * (wrst2 - wp2) > tolgui) { //on sort du domaine d abord
+    if (sens * (wrst2 - wp2) > tolgui) { //at first one leaves the domain
       wrst2     = wp2;
       trst21    = solinvp2(2);
       trst22    = BRepBlend_BlendTool::Parameter(Vtxp2, rst2);
@@ -396,7 +396,7 @@ Standard_Boolean BRepBlend_RstRstLineBuilder::PerformFirstSection
     trst21  = solinvrst2(2);
   }
 
-  // on regarde sur laquelle des courbes on decroche en premier
+  // it is checked on which curve the contact is lost earlier
   if (recadrst1 && recadrst2) {
     if (Abs(wrst1 - wrst2) < tolgui) {
       State    = Blend_OnRst12;
@@ -405,14 +405,14 @@ Standard_Boolean BRepBlend_RstRstLineBuilder::PerformFirstSection
       sol(2)   = trst22;
     }
     else if (sens * (wrst1 - wrst2) < 0) {
-      // on decroche sur Rst1
+      // contact lost on Rst1
       State   = Blend_OnRst1;
       param   = wrst1;
       sol(1)  = trst11;
       sol(2)  = trst12;
     }
     else {
-      // on decroche sur rst2
+      // contact lost on rst2
       State   = Blend_OnRst2;
       param   = wrst2;
       sol(1)  = trst21;
@@ -421,7 +421,7 @@ Standard_Boolean BRepBlend_RstRstLineBuilder::PerformFirstSection
   Func.Set(param);
   }
   else if (recadrst1) {
-    // sol sur rst1
+    // ground on rst1
     State   = Blend_OnRst1;
     param   = wrst1;
     sol(1)  = trst11;
@@ -429,14 +429,14 @@ Standard_Boolean BRepBlend_RstRstLineBuilder::PerformFirstSection
     Func.Set(param);
   }
   else if (recadrst2) {
-    // sol sur rst2
+    // ground on rst2
     State   = Blend_OnRst2;
     param   = wrst2;
     sol(1)  = trst21;
     sol(2)  = trst22;
     Func.Set(param);
   }
-  // on regarde sur laquelle des courbes on sort en premier
+  // it is checked on which curves one leaves first
   else if (recadp1 && recadp2) {
     if (Abs(wrst1 - wrst2) < tolgui) {
       State  = Blend_OnRst12;
@@ -445,14 +445,14 @@ Standard_Boolean BRepBlend_RstRstLineBuilder::PerformFirstSection
       sol(2) = trst22;
     }
     else if (sens * (wrst1 - wrst2) < 0) {
-      // sol sur Rst1
+      // sol on Rst1
       State  = Blend_OnRst1;
       param  = wrst1;
       sol(1) = trst11;
       sol(2) = trst12;
     }
     else {
-      // sol sur rst2
+      // ground on rst2
       State  = Blend_OnRst2;
       param  = wrst2;
       sol(1) = trst21;
@@ -461,7 +461,7 @@ Standard_Boolean BRepBlend_RstRstLineBuilder::PerformFirstSection
     Func.Set(param);
   }
   else if (recadp1) {
-    // sol sur rst1
+    // ground on rst1
     State  = Blend_OnRst1;
     param  = wrst1;
     sol(1) = trst11;
@@ -469,7 +469,7 @@ Standard_Boolean BRepBlend_RstRstLineBuilder::PerformFirstSection
     Func.Set(param);
   }
   else if (recadp2) {
-    // sol sur rst2
+    // ground on rst2
     State  = Blend_OnRst2;
     param  = wrst2;
     sol(1) = trst21;
@@ -515,7 +515,7 @@ Standard_Boolean BRepBlend_RstRstLineBuilder::Complete(Blend_RstRstFunction&   F
 
 //=======================================================================
 //function : InternalPerform
-//purpose  : algorithme de cheminement sauf aux extremites
+//purpose  : algorithm of processing without extremities
 //=======================================================================
 
 void BRepBlend_RstRstLineBuilder::InternalPerform(Blend_RstRstFunction&   Func,
@@ -527,7 +527,7 @@ void BRepBlend_RstRstLineBuilder::InternalPerform(Blend_RstRstFunction&   Func,
 {
   Standard_Real stepw  = pasmax;
   Standard_Integer nbp = line->NbPoints();
-  if(nbp >= 2){ //On reprend le dernier step s il n est pas trop petit.
+  if(nbp >= 2){ //The last step is redone if it is not too small.
     if(sens < 0.){
       stepw = (line->Point(2).Parameter() - line->Point(1).Parameter());
     }
@@ -616,7 +616,7 @@ void BRepBlend_RstRstLineBuilder::InternalPerform(Blend_RstRstFunction&   Func,
       recadp1 = recadp2 = recadrst1 = recadrst2 = Standard_False;
       echecrecad = Standard_False;
       if (situonc1 != TopAbs_IN) {
-       // pb inverse rst/rst
+       // pb inversion rst/rst
        recadp1 = Recadre1(FinvP1, solinvp1, IsVtxp1, Vtxp1);
        if (recadp1) {
          wp1 = solinvp1(1);
@@ -627,7 +627,7 @@ void BRepBlend_RstRstLineBuilder::InternalPerform(Blend_RstRstFunction&   Func,
       }
 
       if (situonc2 != TopAbs_IN) {
-       // pb inverse point/surf
+       // pb inversion point/surf
        recadp2 = Recadre2(FinvP2, solinvp2, IsVtxp2, Vtxp2);
        if (recadp2) {
          wp2 = solinvp2(1);
@@ -638,7 +638,7 @@ void BRepBlend_RstRstLineBuilder::InternalPerform(Blend_RstRstFunction&   Func,
       }
 
       if (decroch == Blend_DecrochRst1 || decroch == Blend_DecrochBoth) {
-       // pb inverse rst1/surf1
+       // pb inversion rst1/surf1
        recadrst1 = Recadre1(Func, Finv1, solinvrst1, IsVtxrst1, Vtxrst1);
        if (recadrst1) {
          wrst1 = solinvrst1(1);
@@ -663,9 +663,9 @@ void BRepBlend_RstRstLineBuilder::InternalPerform(Blend_RstRstFunction&   Func,
       if (recadp1 || recadp2 || recadrst1 || recadrst2) echecrecad = Standard_False;
  
       if (!echecrecad) {
-        // on regarde si on a decroche ou sorti du domaine 1
+        // it is checked if the contact was lost or domain 1 was left
         if (recadp1 && recadrst1) {
-          if (sens * (wrst1 - wp1) > tolgui){ //on sort du domaine d abord
+          if (sens * (wrst1 - wp1) > tolgui){ //first one leaves the domain
             wrst1     = wp1;
            trst12    = solinvp1(2);
            trst11    = BRepBlend_BlendTool::Parameter(Vtxp1, rst1);
@@ -673,7 +673,7 @@ void BRepBlend_RstRstLineBuilder::InternalPerform(Blend_RstRstFunction&   Func,
            Vtxrst2   = Vtxp1;
             recadrst1 = Standard_False;
          }
-         else { // on a decroche
+         else { // contact is lost
            trst11  = solinvrst1(3);
            trst12  = solinvrst1(2);
             recadp1 = Standard_False;
@@ -691,9 +691,9 @@ void BRepBlend_RstRstLineBuilder::InternalPerform(Blend_RstRstFunction&   Func,
          trst12  = solinvrst1(2);
        }
 
-       // on regarde si on a decrocher ou sortie du domaine 2
+       // it is checked if the contact was lost or domain 2 was left
        if (recadp2 && recadrst2) {
-         if (sens * (wrst2 - wp2) > tolgui) { //on sort du domaine d abord
+         if (sens * (wrst2 - wp2) > tolgui) { //first one leaves the domain
            wrst2     = wp2;
            trst21    = solinvp2(2);
            trst22    = BRepBlend_BlendTool::Parameter(Vtxp2, rst2);
@@ -719,7 +719,7 @@ void BRepBlend_RstRstLineBuilder::InternalPerform(Blend_RstRstFunction&   Func,
          trst21  = solinvrst2(2);
        }
 
-        // on regarde sur laquelle des courbes on decroche en premier
+        // it is checked on which curve the contact is lost earlier
        if (recadrst1 && recadrst2) {
          if (Abs(wrst1 - wrst2) < tolgui) {
             State    = Blend_OnRst12;
@@ -729,7 +729,7 @@ void BRepBlend_RstRstLineBuilder::InternalPerform(Blend_RstRstFunction&   Func,
            sol(2)   = trst22;
          }
          else if (sens * (wrst1 - wrst2) < 0) {
-           // on decroche sur Rst1
+           // contact is lost on Rst1
             State   = Blend_OnRst1;
            decroch = Blend_DecrochRst1; 
            param   = wrst1;
@@ -737,7 +737,7 @@ void BRepBlend_RstRstLineBuilder::InternalPerform(Blend_RstRstFunction&   Func,
            sol(2)  = trst12;
          }
          else {
-           // on decroche sur rst2
+           // contact is lost on rst2
             State   = Blend_OnRst2;
            decroch = Blend_DecrochRst2;
            param   = wrst2;
@@ -747,7 +747,7 @@ void BRepBlend_RstRstLineBuilder::InternalPerform(Blend_RstRstFunction&   Func,
          Func.Set(param);
        }
        else if (recadrst1) {
-         // sol sur rst1
+         // ground on rst1
          State   = Blend_OnRst1;
           decroch = Blend_DecrochRst1;
          param   = wrst1;
@@ -756,7 +756,7 @@ void BRepBlend_RstRstLineBuilder::InternalPerform(Blend_RstRstFunction&   Func,
          Func.Set(param);
        }
        else if (recadrst2) {
-         // sol sur rst2
+         // ground on rst2
          State   = Blend_OnRst2;
           decroch = Blend_DecrochRst2;
          param   = wrst2;
@@ -764,7 +764,7 @@ void BRepBlend_RstRstLineBuilder::InternalPerform(Blend_RstRstFunction&   Func,
          sol(2)  = trst22;
          Func.Set(param);
        }
-       // on regarde sur laquelle des courbes on sort en premier
+       //  it is checked on which curve the contact is lost earlier
        else if (recadp1 && recadp2) {
          if (Abs(wrst1 - wrst2) < tolgui) {
            State  = Blend_OnRst12;
@@ -773,14 +773,14 @@ void BRepBlend_RstRstLineBuilder::InternalPerform(Blend_RstRstFunction&   Func,
            sol(2) = trst22;
          }
          else if (sens * (wrst1 - wrst2) < 0) {
-           // sol sur Rst1
+           // ground on Rst1
            State  = Blend_OnRst1;
            param  = wrst1;
            sol(1) = trst11;
            sol(2) = trst12;
          }
          else {
-           // sol sur rst2
+           // ground on rst2
            State  = Blend_OnRst2;
            param  = wrst2;
            sol(1) = trst21;
@@ -789,7 +789,7 @@ void BRepBlend_RstRstLineBuilder::InternalPerform(Blend_RstRstFunction&   Func,
          Func.Set(param);
        }
        else if (recadp1) {
-         // sol sur rst1
+         // ground on rst1
          State  = Blend_OnRst1;
          param  = wrst1;
          sol(1) = trst11;
@@ -797,7 +797,7 @@ void BRepBlend_RstRstLineBuilder::InternalPerform(Blend_RstRstFunction&   Func,
          Func.Set(param);
        }
        else if (recadp2) {
-         // sol sur rst2
+         // ground on rst2
          State  = Blend_OnRst2;
          param  = wrst2;
          sol(1) = trst21;
@@ -811,8 +811,8 @@ void BRepBlend_RstRstLineBuilder::InternalPerform(Blend_RstRstFunction&   Func,
        State = TestArret(Func, Standard_True, State);
       }
       else{
-       // echec recadrage. On sort avec PointsConfondus
-       cout<<"echec recadrage"<<endl;
+       // reframing failed. Leave with PointsConfondus
+       cout<<"reframing failed"<<endl;
        State = Blend_SamePoints;
       }
     }
@@ -825,7 +825,7 @@ void BRepBlend_RstRstLineBuilder::InternalPerform(Blend_RstRstFunction&   Func,
          Drawsect(param, Func);
        }
 #endif
-       // Mettre a jour la ligne.
+       // Update the line.
        if (sens > 0.) {
          line->Append(previousP);
        }
@@ -841,7 +841,7 @@ void BRepBlend_RstRstLineBuilder::InternalPerform(Blend_RstRstFunction&   Func,
                           previousP.ParameterOnC1(),
                           previousP.Parameter(), tolesp);
          MakeExtremity(Extrst2, Standard_False, rst2, sol(2), IsVtxrst2, Vtxrst2);
-         // Indiquer que fin sur Bound.
+         // Show that end is on Bound.
        }
        else {
          param = param + sens * stepw;
@@ -864,12 +864,12 @@ void BRepBlend_RstRstLineBuilder::InternalPerform(Blend_RstRstFunction&   Func,
                           previousP.Parameter(), tolesp);
          Arrive = Standard_True;
          if (line->NbPoints()>=2) {
-           // Indiquer qu on s arrete en cours de cheminement
-           cout<<"On n avance plus dans le cheminement"<<endl;
+           // Show that there is a stop during processing 
+           cout<<"No more advancement in the processing"<<endl;
          }
        }
        else {
-         param = parprec + sens * stepw;  // on ne risque pas de depasser Bound.
+         param = parprec + sens * stepw;  // there is no risk to exceed Bound.
        }
       }
       break;
@@ -881,7 +881,7 @@ void BRepBlend_RstRstLineBuilder::InternalPerform(Blend_RstRstFunction&   Func,
          Drawsect(param,Func);
        }
 #endif
-       // Mettre a jour la ligne.
+       // Update the line.
        if (sens > 0.) {
          line->Append(previousP);
        }
@@ -898,7 +898,7 @@ void BRepBlend_RstRstLineBuilder::InternalPerform(Blend_RstRstFunction&   Func,
                           previousP.ParameterOnC1(),
                           previousP.Parameter(), tolesp);
          MakeExtremity(Extrst2, Standard_False, rst2, sol(2), IsVtxrst2, Vtxrst2);
-         // Indiquer que fin sur Bound.
+         // Indicate that end is on Bound.
        }
        else {
          param = param + sens * stepw;
@@ -970,8 +970,8 @@ void BRepBlend_RstRstLineBuilder::InternalPerform(Blend_RstRstFunction&   Func,
       
     case Blend_SamePoints :
       {
-       // On arrete
-       cout << " Points confondus dans le cheminement" << endl;
+       // Stop
+       cout << " Mixed points in the processing" << endl;
        Extrst1.SetValue(previousP.PointOnC1(),
                         previousP.ParameterOnC1(),
                         previousP.Parameter(), tolesp);
@@ -1002,7 +1002,7 @@ void BRepBlend_RstRstLineBuilder::InternalPerform(Blend_RstRstFunction&   Func,
 
 //=======================================================================
 //function : Recadre1
-//purpose  : On a decroche en 1
+//purpose  : Contact lost on 1
 //=======================================================================
 
 Standard_Boolean BRepBlend_RstRstLineBuilder::Recadre1(Blend_RstRstFunction&    Func,
@@ -1018,7 +1018,7 @@ Standard_Boolean BRepBlend_RstRstLineBuilder::Recadre1(Blend_RstRstFunction&
   Solinv(2) = sol(2);
   Solinv(3) = sol(1);
  
-  // On recherche le point de non decrochement
+  // The point where contact is not lost is found
   math_FunctionSetRoot rsnld(Finv, toler, 30);
   rsnld.Perform(Finv, Solinv, infb, supb);
   if (!rsnld.IsDone()) {
@@ -1028,8 +1028,8 @@ Standard_Boolean BRepBlend_RstRstLineBuilder::Recadre1(Blend_RstRstFunction&
 
   rsnld.Root(Solinv);
 
-  // On doit verifier la valeur de la fonction est bien
-  //  sur la seconde restriction
+  // It is necessary to check if the function value meets the
+  // second restriction
   if (Finv.IsSolution(Solinv, tolesp)) {
     Standard_Real w = Solinv(2);
     if(w < rst2->FirstParameter() - toler(2)||
@@ -1037,7 +1037,7 @@ Standard_Boolean BRepBlend_RstRstLineBuilder::Recadre1(Blend_RstRstFunction&
       return Standard_False;
     }
  
-    // on regarde si on n est pas sur un Vertex
+    // it is checked if it is on a Vertex
     domain1->Initialize(rst1);
     domain1->InitVertexIterator();
     IsVtx = !domain1->MoreVertex();
@@ -1055,8 +1055,8 @@ Standard_Boolean BRepBlend_RstRstLineBuilder::Recadre1(Blend_RstRstFunction&
     if (!domain1->MoreVertex()) {
       IsVtx = Standard_False;
     }
-    // On recalcule la section par resolution directe, sinon, on se recupere 
-    // des incoherences entre le parametre et sol dues au baillement.
+    // The section is recalculated by direct solution, otherwise return 
+    // incoherences between the parameter and the ground caused by yawn.
 
     math_Vector infbound(1, 2), supbound(1, 2);
     math_Vector parinit(1, 2), tolerance(1, 2);
@@ -1083,7 +1083,7 @@ Standard_Boolean BRepBlend_RstRstLineBuilder::Recadre1(Blend_RstRstFunction&
 
 //=======================================================================
 //function : Recadre2
-//purpose  : On a decroche sur Rst2
+//purpose  : Contact lost on Rst2
 //=======================================================================
 
 Standard_Boolean BRepBlend_RstRstLineBuilder::Recadre2(Blend_RstRstFunction&    Func,
@@ -1108,7 +1108,7 @@ Standard_Boolean BRepBlend_RstRstLineBuilder::Recadre2(Blend_RstRstFunction&
 
   rsnld.Root(Solinv);
 
-  // On doit verifier la valeur de la fonction
+  // It is necessary to check the value of the function
   if (Finv.IsSolution(Solinv, tolesp)) {
     Standard_Real w = Solinv(2);
     if(w < rst1->FirstParameter() - toler(2)||
@@ -1133,9 +1133,9 @@ Standard_Boolean BRepBlend_RstRstLineBuilder::Recadre2(Blend_RstRstFunction&
     if (!domain2->MoreVertex()) {
       IsVtx = Standard_False;
     }
-    // On recalcule la section par resolution directe, sinon, on se recupere 
-    // des incoherences entre le parametre et sol dues au baillement.
-
+    // The section is recalculated by direct solution, otherwise return 
+    // incoherences between the parameter and the ground caused by yawn.
+   
     math_Vector infbound(1, 2), supbound(1, 2);
     math_Vector parinit(1,2), tolerance(1,2);
     Func.GetTolerance(tolerance, tolesp);
@@ -1157,7 +1157,7 @@ Standard_Boolean BRepBlend_RstRstLineBuilder::Recadre2(Blend_RstRstFunction&
 
 //=======================================================================
 //function : Recadre
-//purpose  : On est en fin de la courbe rst1
+//purpose  : This is the end of curve rst1
 //=======================================================================
 
 Standard_Boolean BRepBlend_RstRstLineBuilder::Recadre1(Blend_CurvPointFuncInv&  FinvP,
@@ -1165,8 +1165,8 @@ Standard_Boolean BRepBlend_RstRstLineBuilder::Recadre1(Blend_CurvPointFuncInv&
                                                       Standard_Boolean&        IsVtx,
                                                       Handle(Adaptor3d_HVertex)& Vtx) 
 {
-  // On se place sur le dernier ou le premier point, suivant le
-  // sens de cheminement.
+  // One is located on the last or the first point, following the
+  // direction of processing.
   gp_Pnt2d p2drst1;
   Standard_Real firstrst1 = rst1->FirstParameter();
   Standard_Real lastrst1  = rst1->LastParameter();
@@ -1223,7 +1223,7 @@ Standard_Boolean BRepBlend_RstRstLineBuilder::Recadre1(Blend_CurvPointFuncInv&
 
 //=======================================================================
 //function : Recadre2
-//purpose  : On est en fin de la courbe rst2
+//purpose  : This is the end of curve rst2
 //=======================================================================
 
 Standard_Boolean BRepBlend_RstRstLineBuilder::Recadre2(Blend_CurvPointFuncInv&  FinvP,
@@ -1231,8 +1231,8 @@ Standard_Boolean BRepBlend_RstRstLineBuilder::Recadre2(Blend_CurvPointFuncInv&
                                                       Standard_Boolean&        IsVtx,
                                                       Handle(Adaptor3d_HVertex)& Vtx) 
 {
-  // On se place sur le dernier ou le premier point, suivant le
-  // sens de cheminement.
+  // One is located on the last or the first point, following the 
+  // direction of processing.
   gp_Pnt2d p2drst2;
   Standard_Real firstrst2 = rst2->FirstParameter();
   Standard_Real lastrst2  = rst2->LastParameter();
@@ -1337,7 +1337,7 @@ void BRepBlend_RstRstLineBuilder::Transition(const Standard_Boolean          OnF
 
 //=======================================================================
 //function : MakeExtremity
-//purpose  : fabrique l extremite d une courbe
+//purpose  : produce the extremity of a curve
 //=======================================================================
 
 void BRepBlend_RstRstLineBuilder::MakeExtremity(BRepBlend_Extremity&            Extrem,
@@ -1408,9 +1408,9 @@ void BRepBlend_RstRstLineBuilder::MakeExtremity(BRepBlend_Extremity&
 
 Blend_Status BRepBlend_RstRstLineBuilder::CheckDeflectionOnRst1(const Blend_Point& CurPoint)
 {
-  //Controles 3d du Blend_CSWalking.
+  //Controls 3d of Blend_CSWalking.
 
-  // regle par tests dans U4 correspond a 11.478 d
+  // rule by tests in U4 corresponds to 11.478 
   const Standard_Real CosRef3D = 0.98;
   Standard_Real Cosi, Cosi2;
   Standard_Boolean curpointistangent  = CurPoint.IsTangencyPoint();
@@ -1438,7 +1438,7 @@ Blend_Status BRepBlend_RstRstLineBuilder::CheckDeflectionOnRst1(const Blend_Poin
   if (!prevpointistangent) prevNorme = prevTg.SquareMagnitude();
 
   if (Norme <= tolesp * tolesp) {
-    // il faudra peut etre  forcer meme point
+    // it can be necessary to force the same point
     return Blend_SamePoints;
   }
   if(!prevpointistangent){
@@ -1446,7 +1446,7 @@ Blend_Status BRepBlend_RstRstLineBuilder::CheckDeflectionOnRst1(const Blend_Poin
       return Blend_SamePoints;
     }
     Cosi = sens * Corde * prevTg;
-    if (Cosi < 0.) { // angle 3d>pi/2. --> retour arriere
+    if (Cosi < 0.) { // angle 3d>pi/2. --> return back
       return Blend_Backward;
     }
     
@@ -1457,7 +1457,7 @@ Blend_Status BRepBlend_RstRstLineBuilder::CheckDeflectionOnRst1(const Blend_Poin
   }
   
   if(!curpointistangent){
-    // Voir s il faut faire le controle sur le signe de prevtg*Tgsurf
+    // Check if it is necessary to control the sign of prevtg*Tgsurf
     Cosi = sens * Corde * Tgsurf;
     Cosi2 = Cosi * Cosi / Tgsurf.SquareMagnitude() / Norme;
     if (Cosi2 < CosRef3D || Cosi < 0.) { 
@@ -1466,7 +1466,7 @@ Blend_Status BRepBlend_RstRstLineBuilder::CheckDeflectionOnRst1(const Blend_Poin
   }  
 
   if (!curpointistangent && !prevpointistangent) {
-    // Estimation de la fleche courante
+    // Estimation of the current arrow
     Standard_Real FlecheCourante = 
       (prevTg.Normalized().XYZ() - Tgsurf.Normalized().XYZ()).SquareModulus() * Norme / 64.;
     
@@ -1474,7 +1474,7 @@ Blend_Status BRepBlend_RstRstLineBuilder::CheckDeflectionOnRst1(const Blend_Poin
       return Blend_StepTooSmall;
     }
     if (FlecheCourante > fleche * fleche) {
-      // pas trop grand : commentaire interessant
+      // not too great
       return Blend_StepTooLarge;
     }
   }
@@ -1489,9 +1489,9 @@ Blend_Status BRepBlend_RstRstLineBuilder::CheckDeflectionOnRst1(const Blend_Poin
 
 Blend_Status BRepBlend_RstRstLineBuilder::CheckDeflectionOnRst2(const Blend_Point& CurPoint)
 {
-  //Controles 3d du Blend_CSWalking.
+  //3D Controls of Blend_CSWalking.
 
-  // regle par tests dans U4 correspond a 11.478 d
+  // rule by tests in U4 corresponding to 11.478 d
   const Standard_Real CosRef3D = 0.98;
   Standard_Real Cosi, Cosi2;
   Standard_Boolean curpointistangent  = CurPoint.IsTangencyPoint();
@@ -1520,7 +1520,7 @@ Blend_Status BRepBlend_RstRstLineBuilder::CheckDeflectionOnRst2(const Blend_Poin
   if (!prevpointistangent) prevNorme = prevTg.SquareMagnitude();
 
   if (Norme <= tolesp * tolesp){
-    // il faudra peut etre  forcer meme point
+    // it can be necessary to force the same point
     return Blend_SamePoints;
   }
   if (!prevpointistangent) {
@@ -1528,7 +1528,7 @@ Blend_Status BRepBlend_RstRstLineBuilder::CheckDeflectionOnRst2(const Blend_Poin
       return Blend_SamePoints;
     }
     Cosi = sens * Corde * prevTg;
-    if (Cosi < 0.) { // angle 3d>pi/2. --> retour arriere
+    if (Cosi < 0.) { // angle 3d>pi/2. --> return back
       return Blend_Backward;
     }
     
@@ -1539,7 +1539,7 @@ Blend_Status BRepBlend_RstRstLineBuilder::CheckDeflectionOnRst2(const Blend_Poin
   }
   
   if (!curpointistangent) {
-    // Voir s il faut faire le controle sur le signe de prevtg*Tgsurf
+    // Check if it is necessary to control the sign of prevtg*Tgsurf
     Cosi  = sens * Corde * Tgsurf;
     Cosi2 = Cosi * Cosi / Tgsurf.SquareMagnitude() / Norme;
     if (Cosi2 < CosRef3D || Cosi < 0.) { 
@@ -1548,7 +1548,7 @@ Blend_Status BRepBlend_RstRstLineBuilder::CheckDeflectionOnRst2(const Blend_Poin
   }  
 
   if(!curpointistangent && !prevpointistangent){
-    // Estimation de la fleche courante
+    // Estimation of the current arrow
     Standard_Real FlecheCourante = 
       (prevTg.Normalized().XYZ() - Tgsurf.Normalized().XYZ()).SquareModulus() * Norme/64.;
     
@@ -1556,7 +1556,7 @@ Blend_Status BRepBlend_RstRstLineBuilder::CheckDeflectionOnRst2(const Blend_Poin
       return Blend_StepTooSmall;
     }
     if (FlecheCourante > fleche * fleche) {
-      // pas trop grand : commentaire interessant
+      // not too great
       return Blend_StepTooLarge;
     }
   }
@@ -1700,7 +1700,7 @@ Standard_Boolean BRepBlend_RstRstLineBuilder::CheckInside(Blend_RstRstFunction&
   math_Vector tolerance(1, 2);
   Func.GetTolerance(tolerance, tolesp);
 
-  //cote pcurve 1.
+  //face pcurve 1.
   Standard_Real v = sol(1);
   if(v < rst1->FirstParameter() - tolerance(2)||
      v > rst1->LastParameter() + tolerance(2)){
@@ -1712,7 +1712,7 @@ Standard_Boolean BRepBlend_RstRstLineBuilder::CheckInside(Blend_RstRstFunction&
   }
   else SituOnC1 = TopAbs_ON;
 
-  //cote pcurve 2.
+  //face pcurve 2.
   v = sol(2);
   if(v < rst2->FirstParameter() - tolerance(2)||
      v > rst2->LastParameter() + tolerance(2)){
@@ -1725,7 +1725,7 @@ Standard_Boolean BRepBlend_RstRstLineBuilder::CheckInside(Blend_RstRstFunction&
   else SituOnC2 = TopAbs_ON;
 
 
-  //decrochage
+  //lost contact
   gp_Vec tgrst1, norst1, tgrst2, norst2;
   Decroch = Func.Decroch(sol,tgrst1, norst1, tgrst2, norst2);
 
index 8fdec1a..461e9f0 100755 (executable)
@@ -132,7 +132,7 @@ Standard_Boolean BRepBlend_SurfRstConstRad::Derivatives(const math_Vector& X,
   vref.Divide(norm);
   vref.SetLinearForm(ray,vref,gp_Vec(ptrst,pts));
   
-  // Derivee par rapport a u1
+  // Derivative by u1
   temp = d2u1.Crossed(d1v1).Added(d1u1.Crossed(d2uv1));
   grosterme = ncrossns.Dot(nplan.Crossed(temp))/norm/norm;
   resul.SetLinearForm(-ray/norm*(grosterme*ndotns-nplan.Dot(temp)),nplan,
@@ -144,7 +144,7 @@ Standard_Boolean BRepBlend_SurfRstConstRad::Derivatives(const math_Vector& X,
   D(3,1) = D(3,1) * 2.;
   
   
-  // Derivee par rapport a v1
+  // Derivative by v1
   temp = d2uv1.Crossed(d1v1).Added(d1u1.Crossed(d2v1));
   grosterme = ncrossns.Dot(nplan.Crossed(temp))/norm/norm;
   resul.SetLinearForm(-ray/norm*(grosterme*ndotns-nplan.Dot(temp)),nplan,
@@ -201,9 +201,9 @@ Standard_Boolean BRepBlend_SurfRstConstRad::Values(const math_Vector& X,
   
   temp = vref/ray;
 //  F(3) = vref.SquareMagnitude() - ray*ray;
-  F(3) = (temp.SquareMagnitude() - 1)*ray*ray; // plus stable numeriquement
+  F(3) = (temp.SquareMagnitude() - 1)*ray*ray; // more stable numerically
   
-  // Derivee par rapport a u1
+  // Derivative by u1
   temp = d2u1.Crossed(d1v1).Added(d1u1.Crossed(d2uv1));
   grosterme = ncrossns.Dot(nplan.Crossed(temp))/norm/norm;
   resul.SetLinearForm(-ray/norm*(grosterme*ndotns-nplan.Dot(temp)),nplan,
@@ -216,7 +216,7 @@ Standard_Boolean BRepBlend_SurfRstConstRad::Values(const math_Vector& X,
 
   
   
-  // Derivee par rapport a v1
+  // Derivative by v1
   temp = d2uv1.Crossed(d1v1).Added(d1u1.Crossed(d2v1));
   grosterme = ncrossns.Dot(nplan.Crossed(temp))/norm/norm;
   resul.SetLinearForm(-ray/norm*(grosterme*ndotns-nplan.Dot(temp)),nplan,
@@ -339,7 +339,7 @@ Standard_Boolean BRepBlend_SurfRstConstRad::IsSolution(const math_Vector&  Sol,
       Abs(valsol(2)) <= Tol &&
       Abs(valsol(3)) <= 2*Tol*Abs(ray) ) {
     
-    // Calcul des tangentes
+    // Calculation of tangents
     
     pt2ds  = gp_Pnt2d(Sol(1),Sol(2));
     prmrst = Sol(3);
@@ -395,14 +395,14 @@ Standard_Boolean BRepBlend_SurfRstConstRad::IsSolution(const math_Vector&  Sol,
       tg2drst.SetCoord(a,b);
     }
 
-    // mise a jour de maxang
+    // update of maxang
     if(ray>0.) ns.Reverse();
     ns2 = -resul.Normalized();
     
     Cosa = ns.Dot(ns2);
     Sina = nplan.Dot(ns.Crossed(ns2));
     if (choix%2 != 0) {
-      Sina = -Sina;  //nplan est change en -nplan
+      Sina = -Sina;  //nplan is changed to -nplan
     }
     
     Angle = ACos(Cosa);
@@ -578,7 +578,7 @@ Standard_Boolean BRepBlend_SurfRstConstRad::Decroch(const math_Vector& Sol,
   Standard_Real dot, NT = NRstInPlane.Magnitude();
   NT *= TgRst.Magnitude();
   if (Abs(NT) < 1.e-7) {
-    return Standard_False; // Singularite ou Incoherence.
+    return Standard_False; // Singularity or Incoherence.
   }
   dot = NRstInPlane.Dot(TgRst);
   dot /= NT;
@@ -663,7 +663,7 @@ void BRepBlend_SurfRstConstRad::Section(const Standard_Real Param,
   Pdeb = 0; //ElCLib::Parameter(C,pts);
   Pfin = ElCLib::Parameter(C,ptrst);
 
-  // Test des angles negatif et quasi null : Cas Singulier
+  // Test negative and almost null angles : Special case
   if (Pfin>1.5*PI) {
     np.Reverse();
     C.SetPosition(gp_Ax2(Center,np,ns));
@@ -700,7 +700,7 @@ Standard_Real BRepBlend_SurfRstConstRad::GetSectionSize() const
 void BRepBlend_SurfRstConstRad::GetMinimalWeight(TColStd_Array1OfReal& Weights) const 
 {
   BlendFunc::GetMinimalWeights(mySShape, myTConv, minang, maxang, Weights );
-  // On suppose que cela ne depend pas du Rayon! 
+  // It is supposed that it does not depend on the Radius! 
 }
 
 //=======================================================================
@@ -740,7 +740,7 @@ void BRepBlend_SurfRstConstRad::GetShape (Standard_Integer& NbPoles,
 
 //=======================================================================
 //function : GetTolerance
-//purpose  : Determine les Tolerance a utiliser dans les approximations.
+//purpose  : Find Tolerance to be used in approximations.
 //=======================================================================
 
 void BRepBlend_SurfRstConstRad::GetTolerance(const Standard_Real BoundTol, 
@@ -803,7 +803,7 @@ void BRepBlend_SurfRstConstRad::Section(const Blend_Point& P,
   nplan  = d1gui.Normalized();
   
   P.ParametersOnS(u1,v1);
-  w = P.ParameterOnC(); //jlr : point sur courbe pas sur surface
+  w = P.ParameterOnC(); //jlr : point on curve not on surface
   gp_Pnt2d  pt2d = rst->Value(w);
 
   surf->D1(u1,v1,pts,d1u1,d1v1);
@@ -813,7 +813,7 @@ void BRepBlend_SurfRstConstRad::Section(const Blend_Point& P,
   Poles2d(Poles2d.Lower()).SetCoord(u1,v1);
   Poles2d(Poles2d.Upper()).SetCoord(pt2d.X(),pt2d.Y());
   
-  // Cas Linear
+  // Linear Case
   if (mySShape == BlendFunc_Linear) {
     Poles(low) = pts;
     Poles(upp) = ptrst;
@@ -903,13 +903,13 @@ Standard_Boolean BRepBlend_SurfRstConstRad::Section
   ndotns = nplan.Dot(ns);
   norm = ncrossns.Magnitude();
   if (norm < Eps)  {
-    norm = 1; // Insufisant, mais il ne faut pas planter
+    norm = 1; // Not enough, but it is not necessary to stop
 #if DEB
-    cout << " SurfRstConstRad : Surface singuliere " << endl;
+    cout << " SurfRstConstRad : Singular Surface " << endl;
 #endif
   }  
   
-  // Derivee de n1 par rapport a w
+  // Derivative of n1 corresponding to w
   
   grosterme = ncrossns.Dot(dnplan.Crossed(ns))/norm/norm;
   dnw.SetLinearForm((dnplan.Dot(ns)-grosterme*ndotns)/norm,nplan,
@@ -918,8 +918,8 @@ Standard_Boolean BRepBlend_SurfRstConstRad::Section
   
   temp.SetLinearForm(ndotns/norm,nplan, -1./norm,ns);
   resul.SetLinearForm(ray,temp,gp_Vec(ptrst,pts));
-  secmember(3) = dnw.Dot(resul); // jag 950105 il manquait ray
-  secmember(3) = -2.*ray*secmember(3); // jag 950105 il manquait ray
+  secmember(3) = dnw.Dot(resul); 
+  secmember(3) = -2.*ray*secmember(3);
   
   math_Gauss Resol(gradsol, 1.e-9);
 
@@ -943,14 +943,14 @@ Standard_Boolean BRepBlend_SurfRstConstRad::Section
     tgs.SetLinearForm(secmember(1),d1u1,secmember(2),d1v1);
     tgrst = secmember(3)*d1;
     
-    // Derivee de n1 par rapport a u1
+    // Derivative of n1 corresponding to u1
     temp = d2u1.Crossed(d1v1).Added(d1u1.Crossed(d2uv1));
     grosterme = ncrossns.Dot(nplan.Crossed(temp))/norm/norm;
     resulu.SetLinearForm(-(grosterme*ndotns-nplan.Dot(temp))/norm,nplan,
                         grosterme/norm,ns,
                         -1./norm,temp);
     
-    // Derivee de n1 par rapport a v1
+    // Derivative of n1 corresponding to v1
     temp = d2uv1.Crossed(d1v1).Added(d1u1.Crossed(d2v1));
     grosterme = ncrossns.Dot(nplan.Crossed(temp))/norm/norm;
     resulv.SetLinearForm(-(grosterme*ndotns-nplan.Dot(temp))/norm,nplan,
@@ -972,7 +972,7 @@ Standard_Boolean BRepBlend_SurfRstConstRad::Section
     ns2 = -resul.Normalized();
   }
   
-  // Les poles 2d
+  // Tops 2D
   
   Poles2d(Poles2d.Lower()).SetCoord(sol(1),sol(2));
   Poles2d(Poles2d.Upper()).SetCoord(pt2drst.X(),pt2drst.Y());
@@ -984,7 +984,7 @@ Standard_Boolean BRepBlend_SurfRstConstRad::Section
     DPoles2d(Poles2d.Upper()).SetCoord(a,b);
   }
   
-  // Cas Linear
+  // Linear Case
   if (mySShape == BlendFunc_Linear) {
     Poles(low) = pts;
     Poles(upp) = ptrst;
@@ -999,7 +999,7 @@ Standard_Boolean BRepBlend_SurfRstConstRad::Section
     return (!istgt);
   }
   
-  // Cas du cercle
+  // Case of the circle
   Center.SetXYZ(pts.XYZ()+ray*ns.XYZ());
   if (!istgt) {
     tgct = tgs.Added(ray*dnw);
index 19fb5d0..8d6db06 100755 (executable)
@@ -41,39 +41,39 @@ static void FusionneIntervalles(const TColStd_Array1OfReal& I1,
 {
   Standard_Integer ind1=1, ind2=1;
   Standard_Real    Epspar = Precision::PConfusion()*0.99;
-  // en suposant que le positionement fonctionne a PConfusion()/2
+  // it is supposed that positioning works with PConfusion()/2
   Standard_Real    v1, v2;
-// Initialisations : les IND1 et IND2 pointent sur le 1er element
-// de chacune des 2 tables a traiter.INDS pointe sur le dernier
-// element cree de TABSOR
+// Initialisation : IND1 and IND2 point at the first element
+// of each of 2 tables to be processed. INDS points at the last
+// element created by TABSOR
 
 
-//--- On remplit TABSOR en parcourant TABLE1 et TABLE2 simultanement ---
-//------------------ en eliminant les occurrences multiples ------------
+//--- TABSOR is filled by parsing TABLE1 and TABLE2 simultaneously ---
+//------------------ and eliminating multiple occurrencies ------------
 
  while ((ind1<=I1.Upper()) && (ind2<=I2.Upper())) {
       v1 = I1(ind1);
       v2 = I2(ind2);
       if (Abs(v1-v2)<= Epspar) {
-// Ici les elements de I1 et I2 conviennent .
+// Here the elements of I1 and I2 fit.
          Seq.Append((v1+v2)/2);
         ind1++;
          ind2++;
        }
       else if (v1 < v2) {
-       // Ici l' element de I1 convient.
+       // Here the element of I1 fits.
          Seq.Append(v1);
          ind1++;
        }
       else {
-// Ici l' element de TABLE2 convient.
+// Here the element of TABLE2 fits.
         Seq.Append(v2);
         ind2++;
        }
     }
 
   if (ind1>I1.Upper()) { 
-//----- Ici I1 est epuise, on complete avec la fin de TABLE2 -------
+//----- Here I1 is exhausted, completed with the end of TABLE2 -------
 
     for (; ind2<=I2.Upper(); ind2++) {
       Seq.Append(I2(ind2));
@@ -81,7 +81,7 @@ static void FusionneIntervalles(const TColStd_Array1OfReal& I1,
   }
 
   if (ind2>I2.Upper()) { 
-//----- Ici I2 est epuise, on complete avec la fin de I1 -------
+//----- Here I2 is exhausted, completed with the end of I1 -------
 
     for (; ind1<=I1.Upper(); ind1++) {
       Seq.Append(I1(ind1));
@@ -91,7 +91,7 @@ static void FusionneIntervalles(const TColStd_Array1OfReal& I1,
 
 //=======================================================================
 //function : BRepBlend_SurfRstEvolRad
-//purpose  : Contructeur
+//purpose  : Contructor
 //=======================================================================
 BRepBlend_SurfRstEvolRad::BRepBlend_SurfRstEvolRad
 (const Handle(Adaptor3d_HSurface)& Surf,
@@ -188,7 +188,7 @@ Standard_Boolean BRepBlend_SurfRstEvolRad::Derivatives
   vref.Divide(norm);
   vref.SetLinearForm(ray,vref,gp_Vec(ptrst,pts));
   
-  // Derivee par rapport a u1
+  // Derivative corresponding to u1
   temp = d2u1.Crossed(d1v1).Added(d1u1.Crossed(d2uv1));
   grosterme = ncrossns.Dot(nplan.Crossed(temp))/norm/norm;
   resul.SetLinearForm(-ray/norm*(grosterme*ndotns-nplan.Dot(temp)),nplan,
@@ -199,7 +199,7 @@ Standard_Boolean BRepBlend_SurfRstEvolRad::Derivatives
   D(3,1) = 2.*(resul.Dot(vref));
   
   
-  // Derivee par rapport a v1
+  // Derivative corresponding to v1
   temp = d2uv1.Crossed(d1v1).Added(d1u1.Crossed(d2v1));
   grosterme = ncrossns.Dot(nplan.Crossed(temp))/norm/norm;
   resul.SetLinearForm(-ray/norm*(grosterme*ndotns-nplan.Dot(temp)),nplan,
@@ -257,7 +257,7 @@ Standard_Boolean BRepBlend_SurfRstEvolRad::Values
   F(3) = vref.SquareMagnitude() - ray*ray;
   
   
-  // Derivee par rapport a u1
+  // Derivative corresponding to u1
   temp = d2u1.Crossed(d1v1).Added(d1u1.Crossed(d2uv1));
   grosterme = ncrossns.Dot(nplan.Crossed(temp))/norm/norm;
   resul.SetLinearForm(-ray/norm*(grosterme*ndotns-nplan.Dot(temp)),nplan,
@@ -268,7 +268,7 @@ Standard_Boolean BRepBlend_SurfRstEvolRad::Values
   D(3,1) = 2.*(resul.Dot(vref));
   
   
-  // Derivee par rapport a v1
+  // Derivative corresponding to v1
   temp = d2uv1.Crossed(d1v1).Added(d1u1.Crossed(d2v1));
   grosterme = ncrossns.Dot(nplan.Crossed(temp))/norm/norm;
   resul.SetLinearForm(-ray/norm*(grosterme*ndotns-nplan.Dot(temp)),nplan,
@@ -317,8 +317,8 @@ void BRepBlend_SurfRstEvolRad::Set(const Standard_Real Param)
 
 //=======================================================================
 //function : 
-//purpose  : Segmente la courbe a sa partie utile.
-//           La precision est prise arbitrairement petite !?
+//purpose  : Segments the curve in its useful part.
+//           Precision is taken arbitrary small !?
 //=======================================================================
  void BRepBlend_SurfRstEvolRad::Set
 (const Standard_Real First,
@@ -391,7 +391,7 @@ const Standard_Real Tol)
       Abs(valsol(2)) <= Tol &&
       Abs(valsol(3)) <= 2*Tol*Abs(ray) ) {
     
-    // Calcul des tangentes
+    // Calculation of tangents
     
     pt2ds  = gp_Pnt2d(Sol(1),Sol(2));
     prmrst = Sol(3);
@@ -451,14 +451,14 @@ const Standard_Real Tol)
     else {
       istangent = Standard_True;
     }
-    // mise a jour de maxang
+    // update of maxang
     if(ray>0.) ns.Reverse();
     ns2 = -resul.Normalized();
     
     Cosa = ns.Dot(ns2);
     Sina = nplan.Dot(ns.Crossed(ns2));
     if (choix%2 != 0) {
-      Sina = -Sina;  //nplan est change en -nplan
+      Sina = -Sina;  //nplan is changed into -nplan
     }
     
     Angle = ACos(Cosa);
@@ -625,7 +625,7 @@ gp_Vec& TgS) const
   Standard_Real dot, NT = NRstInPlane.Magnitude();
   NT *= TgRst.Magnitude();
   if (Abs(NT) < 1.e-7) {
-    return Standard_False; // Singularite ou Incoherence.
+    return Standard_False; // Singularity or Incoherence.
   }
   dot = NRstInPlane.Dot(TgRst);
   dot /= NT;
@@ -707,7 +707,7 @@ gp_Circ& C)
   Pdeb = 0.; //ElCLib::Parameter(C,pts);
   Pfin = ElCLib::Parameter(C,ptrst);
 
-  // Test des angles negatif et quasi null : Cas Singulier
+  // Test negative and almost null angles : Single Case
   if (Pfin>1.5*PI) {
     np.Reverse();
     C.SetPosition(gp_Ax2(Center,np,ns));
@@ -741,7 +741,7 @@ gp_Circ& C)
  void BRepBlend_SurfRstEvolRad::GetMinimalWeight(TColStd_Array1OfReal& Weigths) const
 {
   BlendFunc::GetMinimalWeights(mySShape, myTConv, minang, maxang, Weigths );
-  // On suppose que cela ne depend pas du Rayon! 
+  // It is supposed that it does not depend on the Radius! 
 }
 
 //=======================================================================
@@ -914,13 +914,13 @@ TColStd_Array1OfReal& DWeigths)
   ndotns = nplan.Dot(ns);
   norm = ncrossns.Magnitude();
   if (norm < Eps)  {
-    norm = 1; // Insufisant, mais il ne faut pas planter
+    norm = 1; // Not enough, but it is not necessary to stop
 #if DEB
-    cout << " SurfRstEvolRad : Surface singuliere " << endl;
+    cout << " SurfRstEvolRad : Surface single " << endl;
 #endif
   }
   
-  // Derivee de n1 par rapport a w
+  // Derivative of n1 corresponding to w
   
   grosterme = ncrossns.Dot(dnplan.Crossed(ns))/norm/norm;
   dnw.SetLinearForm((dnplan.Dot(ns)-grosterme*ndotns)/norm,nplan,
@@ -953,14 +953,14 @@ TColStd_Array1OfReal& DWeigths)
 
     tgs.SetLinearForm(secmember(1),d1u1,secmember(2),d1v1);
     tgrst = secmember(3)*d1;
-    // Derivee de n1 par rapport a u1
+    // Derivative of n1 corresponding to u1
     temp = d2u1.Crossed(d1v1).Added(d1u1.Crossed(d2uv1));
     grosterme = ncrossns.Dot(nplan.Crossed(temp))/norm/norm;
     resulu.SetLinearForm(-(grosterme*ndotns-nplan.Dot(temp))/norm,nplan,
                         grosterme/norm,ns,
                         -1./norm,temp);
     
-    // Derivee de n1 par rapport a v1
+    // Derivative of n1 corresponding to v1
     temp = d2uv1.Crossed(d1v1).Added(d1u1.Crossed(d2v1));
     grosterme = ncrossns.Dot(nplan.Crossed(temp))/norm/norm;
     resulv.SetLinearForm(-(grosterme*ndotns-nplan.Dot(temp))/norm,nplan,
@@ -986,7 +986,7 @@ TColStd_Array1OfReal& DWeigths)
     istgt = Standard_True;
   }
   
-  // Les poles 2d
+  // Tops 2D
   
   Poles2d(Poles2d.Lower()).SetCoord(sol(1),sol(2));
   Poles2d(Poles2d.Upper()).SetCoord(pt2drst.X(),pt2drst.Y());
@@ -998,7 +998,7 @@ TColStd_Array1OfReal& DWeigths)
     DPoles2d(Poles2d.Upper()).SetCoord(a,b);
   }
   
-  // Cas Linear
+  // Linear Case
   if (mySShape == BlendFunc_Linear) {
     Poles(low) = pts;
     Poles(upp) = ptrst;
@@ -1013,7 +1013,7 @@ TColStd_Array1OfReal& DWeigths)
     return (!istgt);
   }
   
-  // Cas du cercle
+  // Case of the circle
   Center.SetXYZ(pts.XYZ()+ray*ns.XYZ());
   if (!istgt) {
     tgct.SetLinearForm(ray,dnw,dray,ns,tgs);
@@ -1030,7 +1030,7 @@ TColStd_Array1OfReal& DWeigths)
     dnplan.Reverse();
   }
   if (!istgt) {
-    if (ray < 0.) { // pour eviter la connerie Abs(dray) qques lignes plus bas
+    if (ray < 0.) { // to avoid Abs(dray) some lines below
       rayprim = -dray;
     }
     else rayprim = dray;
@@ -1103,7 +1103,7 @@ TColStd_Array1OfReal& Weigths)
   nplan  = d1gui.Normalized();
   
   P.ParametersOnS(u1,v1);
-  w = P.ParameterOnC(); //jlr : point sur courbe pas sur surface
+  w = P.ParameterOnC(); //jlr : point on curve not on surface
   gp_Pnt2d  pt2d = rst->Value(w);
 
   surf->D1(u1,v1,pts,d1u1,d1v1);
@@ -1114,7 +1114,7 @@ TColStd_Array1OfReal& Weigths)
   Poles2d(Poles2d.Lower()).SetCoord(u1,v1);
   Poles2d(Poles2d.Upper()).SetCoord(pt2d.X(),pt2d.Y());
   
-  // Cas Linear
+  // Linear case
   if (mySShape == BlendFunc_Linear) {
     Poles(low) = pts;
     Poles(upp) = ptrst;
index 6bb9454..c167c58 100755 (executable)
@@ -29,7 +29,7 @@
 #endif
 static Standard_Integer IndexOfSection = 0;
 extern Standard_Boolean Blend_GettraceDRAWSECT(); 
-// Pour debug : visualisation de la section
+// for debug : visualisation of the section
 static Standard_Boolean BBPP(const Standard_Real param,
                             Blend_SurfRstFunction& Func,
                             const math_Vector& sol,
@@ -74,27 +74,27 @@ static void tracederiv(Blend_SurfRstFunction& Func,
   Standard_Real scal = 1./(param1-param2);
 
   cout<<endl;
-  cout<<"controle des derivees au point : "<<param1<<endl;
+  cout<<"control derivatives at point : "<<param1<<endl;
 
   for(i = 1; i <= hp; i++){
     cout<<endl;
     cout<<"point : "<<i<<endl;
-    cout<<"dx calcule : "<<TDP1(i).X()<<endl;
-    cout<<"dx estime  : "<<scal*(TP1(i).X()-TP2(i).X())<<endl;
-    cout<<"dy calcule : "<<TDP1(i).Y()<<endl;
-    cout<<"dy estime  : "<<scal*(TP1(i).Y()-TP2(i).Y())<<endl;
-    cout<<"dz calcule : "<<TDP1(i).Z()<<endl;
-    cout<<"dz estime  : "<<scal*(TP1(i).Z()-TP2(i).Z())<<endl;
-    cout<<"dw calcule : "<<TDW1(i)<<endl;
-    cout<<"dw estime  : "<<scal*(TW1(i)-TW2(i))<<endl;
+    cout<<"dx calculated : "<<TDP1(i).X()<<endl;
+    cout<<"dx estimated  : "<<scal*(TP1(i).X()-TP2(i).X())<<endl;
+    cout<<"dy calculated : "<<TDP1(i).Y()<<endl;
+    cout<<"dy estimated  : "<<scal*(TP1(i).Y()-TP2(i).Y())<<endl;
+    cout<<"dz calculated : "<<TDP1(i).Z()<<endl;
+    cout<<"dz estimated  : "<<scal*(TP1(i).Z()-TP2(i).Z())<<endl;
+    cout<<"dw calculated : "<<TDW1(i)<<endl;
+    cout<<"dw estimated  : "<<scal*(TW1(i)-TW2(i))<<endl;
   }
   for(i = 1; i <= hp2d; i++){
     cout<<endl;
     cout<<"point 2d : "<<i<<endl;
-    cout<<"dx calcule : "<<TDP2d1(i).X()<<endl;
-    cout<<"dx estime  : "<<scal*(TP2d1(i).X()-TP2d2(i).X())<<endl;
-    cout<<"dy calcule : "<<TDP2d1(i).Y()<<endl;
-    cout<<"dy estime  : "<<scal*(TP2d1(i).Y()-TP2d2(i).Y())<<endl;
+    cout<<"dx calculated : "<<TDP2d1(i).X()<<endl;
+    cout<<"dx estimated  : "<<scal*(TP2d1(i).X()-TP2d2(i).X())<<endl;
+    cout<<"dy calculated : "<<TDP2d1(i).Y()<<endl;
+    cout<<"dy estimated  : "<<scal*(TP2d1(i).Y()-TP2d2(i).Y())<<endl;
   }
 }
 
@@ -133,8 +133,8 @@ static void Drawsect(const Standard_Real param,
 
 //=======================================================================
 //function :  ArcToRecadre
-//purpose  : Cherche un arc candidat
-//           PrevIndex est utilise pour rejeter un arc deja teste
+//purpose  : Find a suitable arc
+//           PrevIndex is used to reject an already tested arc
 //=======================================================================
 
 Standard_Integer BRepBlend_SurfRstLineBuilder::
@@ -265,7 +265,7 @@ void BRepBlend_SurfRstLineBuilder::Perform(Blend_SurfRstFunction&  Func,
     Drawsect(param,Func);
   }
 #endif
-  // Mettre a jour la ligne.
+  // Update the line.
   line->Append(previousP);
   Standard_Real U,V;
   previousP.ParametersOnS(U,V);
@@ -365,7 +365,7 @@ Standard_Boolean BRepBlend_SurfRstLineBuilder::PerformFirstSection
   }
   if (!recads && !recadp && !recadrst) return Standard_False;
   if (recadp && recadrst) {
-    if(sens*(wrst-wp) > tolgui){ //on sort du domaine d abord
+    if(sens*(wrst-wp) > tolgui){ //first one leaves the domain
       wrst = wp;
       U = solinvp(2);
       V = solinvp(3);
@@ -402,7 +402,7 @@ Standard_Boolean BRepBlend_SurfRstLineBuilder::PerformFirstSection
       sol(3) = solinvs(2);
     }
     else if(sens*(ws-wrst)<0){
-      // sol sur surf
+      // ground on surf
       State = Blend_OnRst1;
       param = ws;
       Arc->Value(solinvs(3)).Coord(U,V);
@@ -411,7 +411,7 @@ Standard_Boolean BRepBlend_SurfRstLineBuilder::PerformFirstSection
       sol(3) = solinvs(2);
     }
     else{
-      // sol sur rst
+      // ground on rst
       State = Blend_OnRst2;
       param = wrst;
       sol(1) = U;
@@ -421,7 +421,7 @@ Standard_Boolean BRepBlend_SurfRstLineBuilder::PerformFirstSection
     Func.Set(param);
   }
   else if(recads){
-    // sol sur surf
+    // ground on surf
     State = Blend_OnRst1;
     param = ws;
     Arc->Value(solinvs(3)).Coord(U,V);
@@ -431,7 +431,7 @@ Standard_Boolean BRepBlend_SurfRstLineBuilder::PerformFirstSection
     Func.Set(param);
   }
   else if(recadrst){
-    // sol sur rst
+    // ground on rst
     State = Blend_OnRst2;
     param = wrst;
     sol(1) = U;
@@ -487,7 +487,7 @@ void BRepBlend_SurfRstLineBuilder::InternalPerform(Blend_SurfRstFunction&  Func,
 {
   Standard_Real stepw = pasmax;
   Standard_Integer nbp = line->NbPoints();
-  if(nbp >= 2){ //On reprend le dernier step s il n est pas trop petit.
+  if(nbp >= 2){ //The last step is reproduced if it is not too small.
     if(sens < 0.){
       stepw = (line->Point(2).Parameter() - line->Point(1).Parameter());
     }
@@ -585,7 +585,7 @@ void BRepBlend_SurfRstLineBuilder::InternalPerform(Blend_SurfRstFunction&  Func,
        recads = Recadre(FinvC,solinvs,Arc,IsVtxs,Vtxs);
        if (recads) {
          ws = solinvs(1);
-         // Il faut reevaluer le decrochage (BUC60360)
+         // It is necessary to reevaluate the deviation (BUC60360)
          gp_Vec t, n;
          Func.Set(ws);
          Arc->Value(solinvs(3)).Coord(U,V);
@@ -622,7 +622,7 @@ void BRepBlend_SurfRstLineBuilder::InternalPerform(Blend_SurfRstFunction&  Func,
       if(recadp || recads || recadrst) echecrecad = Standard_False; 
       if (!echecrecad) {
        if (recadp && recadrst) {
-         if(sens*(wrst-wp) > tolgui){ //on sort du domaine d abord
+         if(sens*(wrst-wp) > tolgui){ //first one leaves the domain
            wrst = wp;
            U = solinvp(2);
            V = solinvp(3);
@@ -661,7 +661,7 @@ void BRepBlend_SurfRstLineBuilder::InternalPerform(Blend_SurfRstFunction&  Func,
            sol(3) = solinvs(3);
          }
          else if(sens*(ws-wrst)<0){
-           // sol sur surf
+           // ground on surf
            decroch = 0;
            State = Blend_OnRst1;
            param = ws;
@@ -671,7 +671,7 @@ void BRepBlend_SurfRstLineBuilder::InternalPerform(Blend_SurfRstFunction&  Func,
            sol(3) = solinvs(2);
          }
          else{
-           // sol sur rst
+           // ground on rst
            State = Blend_OnRst2;
            param = wrst;
            sol(1) = U;
@@ -681,7 +681,7 @@ void BRepBlend_SurfRstLineBuilder::InternalPerform(Blend_SurfRstFunction&  Func,
          Func.Set(param);
        }
        else if(recads){
-         // sol sur surf
+         // ground on surf
          State = Blend_OnRst1;
          param = ws;
          Arc->Value(solinvs(3)).Coord(U,V);
@@ -691,7 +691,7 @@ void BRepBlend_SurfRstLineBuilder::InternalPerform(Blend_SurfRstFunction&  Func,
          Func.Set(param);
        }
        else if(recadrst){
-         // sol sur rst
+         // ground on rst
          State = Blend_OnRst2;
          param = wrst;
          sol(1) = U;
@@ -705,9 +705,9 @@ void BRepBlend_SurfRstLineBuilder::InternalPerform(Blend_SurfRstFunction&  Func,
        State = TestArret(Func,Standard_True,State);
       }
       else{
-       // echec recadrage. On sort avec PointsConfondus
+       // Failed reframing. Leave with PointsConfondus
 #if DEB
-       cout<<"SurfRstLineBuilder : echec recadrage"<<endl;
+       cout<<"SurfRstLineBuilder : failed reframing"<<endl;
 #endif
        State = Blend_SamePoints;
       }
@@ -721,7 +721,7 @@ void BRepBlend_SurfRstLineBuilder::InternalPerform(Blend_SurfRstFunction&  Func,
          Drawsect(param,Func);
        }
 #endif
-       // Mettre a jour la ligne.
+       // Update the line.
        if (sens>0.) {
          line->Append(previousP);
        }
@@ -737,7 +737,7 @@ void BRepBlend_SurfRstLineBuilder::InternalPerform(Blend_SurfRstFunction&  Func,
                        sol(1),sol(2),
                        previousP.Parameter(),tolesp);
          MakeExtremity(Extrst,Standard_False,rst,sol(3),IsVtxrst,Vtxrst);
-         // Indiquer que fin sur Bound.
+         // Indicate end on Bound.
        }
        else {
          param = param + sens*stepw;
@@ -760,14 +760,14 @@ void BRepBlend_SurfRstLineBuilder::InternalPerform(Blend_SurfRstFunction&  Func,
                          previousP.Parameter(),tolesp);
          Arrive = Standard_True;
          if (line->NbPoints()>=2) {
-           // Indiquer qu on s arrete en cours de cheminement
+           // Indicate that one stops during the processing
 #if DEB
-           cout<<"SurfRstLineBuilder :On n avance plus dans le cheminement"<<endl;
+           cout<<"SurfRstLineBuilder : No advancement in the processing"<<endl;
 #endif
          }
        }
        else {
-         param = parprec + sens*stepw;  // on ne risque pas de depasser Bound.
+         param = parprec + sens*stepw;  // no risk to exceed Bound.
        }
       }
       break;
@@ -779,7 +779,7 @@ void BRepBlend_SurfRstLineBuilder::InternalPerform(Blend_SurfRstFunction&  Func,
          Drawsect(param,Func);
        }
 #endif
-       // Mettre a jour la ligne.
+       // Update the line.
        if (sens>0.) {
          line->Append(previousP);
        }
@@ -795,7 +795,7 @@ void BRepBlend_SurfRstLineBuilder::InternalPerform(Blend_SurfRstFunction&  Func,
          Exts.SetValue(previousP.PointOnS(),sol(1),sol(2),
                        previousP.Parameter(),tolesp);
          MakeExtremity(Extrst,Standard_False,rst,sol(3),IsVtxrst,Vtxrst);
-         // Indiquer que fin sur Bound.
+         // Indicate end on Bound.
        }
        else {
          param = param + sens*stepw;
@@ -866,9 +866,9 @@ void BRepBlend_SurfRstLineBuilder::InternalPerform(Blend_SurfRstFunction&  Func,
       
     case Blend_SamePoints :
       {
-       // On arrete
+       // Stop
 #if DEB
-       cout << "SurfRstLineBuilder Points confondus dans le cheminement" << endl;
+       cout << "SurfRstLineBuilder Points mixed in the processing" << endl;
 #endif
        previousP.ParametersOnS(U,V);
        Exts.SetValue(previousP.PointOnS(),U,V,
@@ -899,7 +899,7 @@ void BRepBlend_SurfRstLineBuilder::InternalPerform(Blend_SurfRstFunction&  Func,
 
 //=======================================================================
 //function : Recadre
-//purpose  : Recadre une section Surface / Restriction
+//purpose  : Reframe section Surface / Restriction
 //=======================================================================
 
 Standard_Boolean BRepBlend_SurfRstLineBuilder::Recadre(Blend_SurfCurvFuncInv&    FinvC,
@@ -949,19 +949,19 @@ Standard_Boolean BRepBlend_SurfRstLineBuilder::Recadre(Blend_SurfCurvFuncInv&
 #endif
   }
   else {
-      // On doit verifier la valeur de la fonction
+      // It is necessary to check the value of the function
     rsnld.Root(Solinv);
     recadre = FinvC.IsSolution(Solinv,tolesp);
   }
 
-  // En cas d'echecs, on regarde si un autre arc 
-  // peut faire l'affaire (cas des sorties a proximite d'un vertex)
+  // In case of fail, it is checked if another arc 
+  // can be useful (case of output at the proximity of a vertex)
   if (!recadre) {
 
     IndexSol =  ArcToRecadre(sol, IndexSol, 
                             lastpt2d, pt2d, pmin);
     if (IndexSol == 0) {
-      return Standard_False; // Pas d'autre solution
+      return Standard_False; // No other solution
     }
 
     domain1->Init();
@@ -988,7 +988,7 @@ Standard_Boolean BRepBlend_SurfRstLineBuilder::Recadre(Blend_SurfCurvFuncInv&
 #endif
     }
     else {
-      // On doit verifier la valeur de la fonction
+      // It is necessary to check the value of the function
       rsnld.Root(Solinv);
       recadre = FinvC.IsSolution(Solinv,tolesp);
     }
@@ -1074,8 +1074,8 @@ Standard_Boolean BRepBlend_SurfRstLineBuilder::Recadre(Blend_SurfRstFunction&
     if (!domain2->MoreVertex()) {
       IsVtx = Standard_False;
     }
-    // On recalcule la section par resolution directe, sinon, on se recupere 
-    // des incoherences entre le parametre et sol dues au baillement.
+    // The section is recalculated by direct resolution, otherwise 
+    // incoherences between the parameter and the ground caused by yawn are returned.
 
     math_Vector infbound(1,3),supbound(1,3);
     math_Vector parinit(1,3),tolerance(1,3);
@@ -1285,9 +1285,9 @@ void BRepBlend_SurfRstLineBuilder::MakeExtremity(BRepBlend_Extremity&
 
 Blend_Status BRepBlend_SurfRstLineBuilder::CheckDeflectionOnSurf(const Blend_Point& CurPoint)
 {
-  //Controles 3d du Blend_CSWalking.
+  //Controls 3d of Blend_CSWalking.
 
-  // regle par tests dans U4 correspond a 11.478 d
+  // rule by tests in U4 corresponds to 11.478 d
   const Standard_Real CosRef3D = 0.98;
   Standard_Real Cosi=0, Cosi2=0;
   Standard_Boolean curpointistangent = CurPoint.IsTangencyPoint();
@@ -1314,7 +1314,7 @@ Blend_Status BRepBlend_SurfRstLineBuilder::CheckDeflectionOnSurf(const Blend_Poi
   if(!prevpointistangent) prevNorme = prevTg.SquareMagnitude();
 
   if (Norme <= tolesp*tolesp){
-    // il faudra peut etre  forcer meme point
+    // it can be necessary to force same point
     return Blend_SamePoints;
   }
   if(!prevpointistangent){
@@ -1322,7 +1322,7 @@ Blend_Status BRepBlend_SurfRstLineBuilder::CheckDeflectionOnSurf(const Blend_Poi
       return Blend_SamePoints;
     }
     Cosi = sens*Corde*prevTg;
-    if (Cosi <0.) { // angle 3d>pi/2. --> retour arriere
+    if (Cosi <0.) { // angle 3d>pi/2. --> return back
       return Blend_Backward;
     }
     
@@ -1333,7 +1333,7 @@ Blend_Status BRepBlend_SurfRstLineBuilder::CheckDeflectionOnSurf(const Blend_Poi
   }
   
   if(!curpointistangent){
-    // Voir s il faut faire le controle sur le signe de prevtg*Tgsurf
+    // Check if it is necessary to control the sign of prevtg*Tgsurf
     Cosi = sens*Corde*Tgsurf;
     Cosi2 = Cosi * Cosi / Tgsurf.SquareMagnitude() / Norme;
     if (Cosi2 < CosRef3D || Cosi < 0.) { 
@@ -1342,7 +1342,7 @@ Blend_Status BRepBlend_SurfRstLineBuilder::CheckDeflectionOnSurf(const Blend_Poi
   }  
 
   if(!curpointistangent && !prevpointistangent){
-    // Estimation de la fleche courante
+    // Estimation of the current arrow
     Standard_Real FlecheCourante = 
       (prevTg.Normalized().XYZ()-Tgsurf.Normalized().XYZ()).SquareModulus()*Norme/64.;
     
@@ -1350,7 +1350,7 @@ Blend_Status BRepBlend_SurfRstLineBuilder::CheckDeflectionOnSurf(const Blend_Poi
       return Blend_StepTooSmall;
     }
     if (FlecheCourante > fleche*fleche) {
-      // pas trop grand : commentaire interessant
+      // not too great : 
       return Blend_StepTooLarge;
     }
   }
@@ -1365,9 +1365,9 @@ Blend_Status BRepBlend_SurfRstLineBuilder::CheckDeflectionOnSurf(const Blend_Poi
 
 Blend_Status BRepBlend_SurfRstLineBuilder::CheckDeflectionOnRst(const Blend_Point& CurPoint)
 {
-  //Controles 3d du Blend_CSWalking.
+  //Controls 3D of Blend_CSWalking.
 
-  // regle par tests dans U4 correspond a 11.478 d
+  // rule by tests in U4 corresponds to 11.478 d
   const Standard_Real CosRef3D = 0.98;
   Standard_Real Cosi, Cosi2;
   Standard_Boolean curpointistangent = CurPoint.IsTangencyPoint();
@@ -1394,7 +1394,7 @@ Blend_Status BRepBlend_SurfRstLineBuilder::CheckDeflectionOnRst(const Blend_Poin
   if(!prevpointistangent) prevNorme = prevTg.SquareMagnitude();
 
   if (Norme <= tolesp*tolesp){
-    // il faudra peut etre  forcer meme point
+    // it can be necessary to force same point
     return Blend_SamePoints;
   }
   if(!prevpointistangent){
@@ -1402,7 +1402,7 @@ Blend_Status BRepBlend_SurfRstLineBuilder::CheckDeflectionOnRst(const Blend_Poin
       return Blend_SamePoints;
     }
     Cosi = sens*Corde*prevTg;
-    if (Cosi <0.) { // angle 3d>pi/2. --> retour arriere
+    if (Cosi <0.) { // angle 3d>pi/2. --> return back
       return Blend_Backward;
     }
     
@@ -1413,7 +1413,7 @@ Blend_Status BRepBlend_SurfRstLineBuilder::CheckDeflectionOnRst(const Blend_Poin
   }
   
   if(!curpointistangent){
-    // Voir s il faut faire le controle sur le signe de prevtg*Tgsurf
+    // Check if it is necessary to control the sign of prevtg*Tgsurf
     Cosi = sens*Corde*Tgsurf;
     Cosi2 = Cosi * Cosi / Tgsurf.SquareMagnitude() / Norme;
     if (Cosi2 < CosRef3D || Cosi < 0.) { 
@@ -1422,7 +1422,7 @@ Blend_Status BRepBlend_SurfRstLineBuilder::CheckDeflectionOnRst(const Blend_Poin
   }  
 
   if(!curpointistangent && !prevpointistangent){
-    // Estimation de la fleche courante
+    // Estimation of the current arrow
     Standard_Real FlecheCourante = 
       (prevTg.Normalized().XYZ()-Tgsurf.Normalized().XYZ()).SquareModulus()*Norme/64.;
     
@@ -1430,7 +1430,7 @@ Blend_Status BRepBlend_SurfRstLineBuilder::CheckDeflectionOnRst(const Blend_Poin
       return Blend_StepTooSmall;
     }
     if (FlecheCourante > fleche*fleche) {
-      // pas trop grand : commentaire interessant
+      // not too great
       return Blend_StepTooLarge;
     }
   }
@@ -1568,7 +1568,7 @@ Standard_Boolean BRepBlend_SurfRstLineBuilder::CheckInside(Blend_SurfRstFunction
 {
   math_Vector tolerance(1,3);
   Func.GetTolerance(tolerance,tolesp);
-  //cote pcurve.
+  //face pcurve.
   Standard_Real w = sol(3);
   if(w < rst->FirstParameter() - tolerance(3)||
      w > rst->LastParameter() + tolerance(3)){
@@ -1580,11 +1580,11 @@ Standard_Boolean BRepBlend_SurfRstLineBuilder::CheckInside(Blend_SurfRstFunction
   }
   else SituOnC = TopAbs_ON;
 
-  //cote surface
+  //face surface
   gp_Pnt2d p2d(sol(1),sol(2));
   SituOnS = domain1->Classify(p2d,Min(tolerance(1),tolerance(2)),0);
 
-  //decrochage
+  //lost contact
   gp_Vec tgs,nors;
   Decroch = Func.Decroch(sol,tgs,nors);
 
index 0b89646..1e8b0d1 100755 (executable)
@@ -3,9 +3,9 @@
 // Author:    Jacques GOUSSARD
 // Copyright: OPEN CASCADE 1993
 
-// Modified 09/09/1996 PMN Ajout de Nb(Intervalls), IsRationnal
-//                         Optimisation, utilisation de GetCircle
-// Modified 20/02/1998 PMN Gestion des surfaces singulieres
+// Modified 09/09/1996 PMN Adde Nb(Intervalls), IsRationnal
+//                         Optimisation, use of GetCircle
+// Modified 20/02/1998 PMN Singular surfaces management
 
 #include <BlendFunc_ConstRad.ixx>
 
@@ -43,7 +43,7 @@ BlendFunc_ConstRad::BlendFunc_ConstRad(const Handle(Adaptor3d_HSurface)& S1,
                                  distmin(RealLast()),
                                  mySShape(BlendFunc_Rational)
 { 
-// Initialisaton des variables de controle du cache.
+// Initialisaton of cash control variables.
   tval = -9.876e100;
   xval.Init(-9.876e100);
   myXOrder = -1;
@@ -116,11 +116,11 @@ void BlendFunc_ConstRad::Set(const BlendFunc_SectionShape TypeSection)
 
 //=======================================================================
 //function : ComputeValues
-//purpose  : Passage OBLIGATOIRE pour tous les calculs
-//           Cette methode gere les positionemment sur Surfaces et Courbe
-//           Calcul les equation et leurs derives partielle
-//           Stock certains resultat intermediaire dans les champs pour etre
-//           utiliser dans d'autre methodes.
+//purpose  : OBLIGATORY passage for all calculations
+//           This method manages positioning on Surfaces and Curves
+//           Calculate the equations and their partial derivates
+//           Stock certain intermediate results in fields to 
+//           use in other methods.
 //=======================================================================
 
 Standard_Boolean BlendFunc_ConstRad::ComputeValues(const math_Vector& X,
@@ -128,7 +128,7 @@ Standard_Boolean BlendFunc_ConstRad::ComputeValues(const math_Vector& X,
                                                    const Standard_Boolean byParam,
                                                    const Standard_Real Param)
 {
- // declaration statique afin d'eviter la realloc systematique
+ // static declaration to avoid systematic reallocation
  
  static gp_Vec d3u1,d3v1,d3uuv1,d3uvv1,d3u2,d3v2,d3uuv2,d3uvv2; 
  static gp_Vec d1gui, d2gui, d3gui;
@@ -136,10 +136,10 @@ Standard_Boolean BlendFunc_ConstRad::ComputeValues(const math_Vector& X,
  static Standard_Real invnormtg, dinvnormtg;
  Standard_Real T =  Param, aux;
 
- // Cas du parametre implicite
+ // Case of implicite parameter
  if ( !byParam) { T = param;}
 
- // Le travail est il dejas fait ?
+ // Is the work already done ?
  Standard_Boolean myX_OK = (Order<=myXOrder) ;
  for (Standard_Integer ii=1; ((ii<=X.Length()) && myX_OK); ii++) {
    myX_OK = ( X(ii) == xval(ii) );
@@ -152,12 +152,12 @@ Standard_Boolean BlendFunc_ConstRad::ComputeValues(const math_Vector& X,
    return Standard_True;
  }
 
- // Traitement de t
+ // Processing of t
  if (!t_OK) {
    tval = T;
    if (byParam) { myTOrder = Order;}
    else         { myTOrder = 0;}
-   //----- Positionement sur la courbe ----------------
+   //----- Positioning on the curve ----------------
    switch (myTOrder) {
    case 0 :
      {
@@ -196,11 +196,11 @@ Standard_Boolean BlendFunc_ConstRad::ComputeValues(const math_Vector& X,
    }
  }
 
- // Traitement de X
+ // Processing of X
  if (!myX_OK) {
    xval = X;
    myXOrder = Order;
-   //-------------- Positionement sur les surfaces -----------------
+   //-------------- Positioning on surfaces -----------------
    switch (myXOrder) {
    case 0 :
      {
@@ -238,7 +238,7 @@ Standard_Boolean BlendFunc_ConstRad::ComputeValues(const math_Vector& X,
    default:
      return Standard_False;
    }
-   // Cas des surfaces degeneree
+   // Case of degenerated surfaces
    if (nsurf1.Magnitude() < Eps ) {
      //gp_Vec normal;
      gp_Pnt2d P(X(1), X(2)); 
@@ -253,7 +253,7 @@ Standard_Boolean BlendFunc_ConstRad::ComputeValues(const math_Vector& X,
    }
  }
 
- // -------------------- Positionement a l'ordre 0 ---------------------
+ // -------------------- Positioning of order 0 ---------------------
  Standard_Real invnorm1, invnorm2, ndotns1, ndotns2, theD;
  gp_Vec ncrossns1,ncrossns2,resul,temp;
 
@@ -271,14 +271,14 @@ Standard_Boolean BlendFunc_ConstRad::ComputeValues(const math_Vector& X,
 
  if (invnorm1 > Eps) invnorm1 = ((Standard_Real) 1) /invnorm1;
  else {
-   invnorm1 = 1; // Insufisant, mais il ne faut pas planter
+   invnorm1 = 1; // Unsatisfactory, but it is not necessary to crash
 #if DEB
    cout << " ConstRad : Surface singuliere " << endl;
 #endif
  }
  if (invnorm2 > Eps) invnorm2 = ((Standard_Real) 1) /invnorm2;
  else {
-   invnorm2 = 1; // Insufisant, mais il ne faut pas planter
+   invnorm2 = 1; //  Unsatisfactory, but it is not necessary to crash
 #if DEB
    cout << " ConstRad : Surface singuliere " << endl;
 #endif
@@ -299,7 +299,7 @@ Standard_Boolean BlendFunc_ConstRad::ComputeValues(const math_Vector& X,
  E(3) = resul.Y();
  E(4) = resul.Z();
 
- // -------------------- Positionement a l'ordre 1 ---------------------
+ // -------------------- Positioning of order 1 ---------------------
  if (Order >= 1) {
    Standard_Real  grosterme, cube, carre;
   
@@ -310,7 +310,7 @@ Standard_Boolean BlendFunc_ConstRad::ComputeValues(const math_Vector& X,
    DEDX(1,4) = nplan.Dot(d1v2)/2;
 
    cube =invnorm1*invnorm1*invnorm1;
-   // Derivee par rapport a u1
+   // Derived in relation to u1
    grosterme = - ncrossns1.Dot(nplan.Crossed(dns1u1))*cube;
    dndu1.SetLinearForm( grosterme*ndotns1
                      + invnorm1*nplan.Dot(dns1u1), nplan,
@@ -322,7 +322,7 @@ Standard_Boolean BlendFunc_ConstRad::ComputeValues(const math_Vector& X,
    DEDX(3,1) = resul.Y();
    DEDX(4,1) = resul.Z();
 
-   // Derivee par rapport a v1
+   // Derived in relation to v1
 
    grosterme = - ncrossns1.Dot(nplan.Crossed(dns1v1))*cube;
    dndv1.SetLinearForm( grosterme*ndotns1
@@ -336,7 +336,7 @@ Standard_Boolean BlendFunc_ConstRad::ComputeValues(const math_Vector& X,
    DEDX(4,2) = resul.Z();
 
    cube = invnorm2*invnorm2*invnorm2;
-   // Derivee par rapport a u2
+   // Derived in relation to u2
    grosterme = - ncrossns2.Dot(nplan.Crossed(dns1u2))*cube;
    dndu2.SetLinearForm( grosterme*ndotns2
                       +invnorm2*nplan.Dot(dns1u2), nplan,
@@ -348,7 +348,7 @@ Standard_Boolean BlendFunc_ConstRad::ComputeValues(const math_Vector& X,
    DEDX(3,3) = resul.Y();
    DEDX(4,3) = resul.Z();
 
-   // Derivee par rapport a v2
+   // Derived in relation to v2
    grosterme = -ncrossns2.Dot(nplan.Crossed(dns1v2))*cube;
    dndv2.SetLinearForm( grosterme*ndotns2
                       +invnorm2*nplan.Dot(dns1v2), nplan,
@@ -362,13 +362,13 @@ Standard_Boolean BlendFunc_ConstRad::ComputeValues(const math_Vector& X,
 
    if (byParam) {
      temp.SetXYZ( (pts1.XYZ()+pts2.XYZ())/2 - ptgui.XYZ());
-     // Derivee de n1 par rapport a w     
+     // Derived from n1 in relation to w     
      grosterme = ncrossns1.Dot(dnplan.Crossed(nsurf1))*invnorm1*invnorm1;
      dn1w.SetLinearForm((dnplan.Dot(nsurf1)-grosterme*ndotns1)*invnorm1, nplan,
                         ndotns1*invnorm1,dnplan,
                         grosterme*invnorm1,nsurf1);
   
-     // Derivee de n2 par rapport a w
+     // Derivee from n2 in relation to w
      grosterme = ncrossns2.Dot(dnplan.Crossed(nsurf2))*invnorm2*invnorm2;
      dn2w.SetLinearForm((dnplan.Dot(nsurf2)-grosterme*ndotns2)*invnorm2,nplan,
                        ndotns2*invnorm2,dnplan,
@@ -380,7 +380,7 @@ Standard_Boolean BlendFunc_ConstRad::ComputeValues(const math_Vector& X,
      DEDT(3) =  ray1*dn1w.Y() - ray2*dn2w.Y();
      DEDT(4) =  ray1*dn1w.Z() - ray2*dn2w.Z();
    }
-   // ------   Positionemement a l'ordre 2  -----------------------------
+   // ------   Positioning of order 2  -----------------------------
    if (Order == 2) {
 //     gp_Vec d2ndu1,  d2ndu2, d2ndv1, d2ndv2, d2nduv1, d2nduv2;
      gp_Vec d2ns1u1,  d2ns1u2, d2ns1v1, d2ns1v2, d2ns1uv1, d2ns1uv2;
@@ -400,8 +400,8 @@ Standard_Boolean BlendFunc_ConstRad::ComputeValues(const math_Vector& X,
                                // ================
      carre = invnorm1*invnorm1;
      cube  = carre*invnorm1;
-     // Derivee double par rapport a u1       
-       // Derivation de la norme
+     // Derived double compared to u1       
+       // Derived from the norm
      d2ns1u1.SetLinearForm(1, d3u1.Crossed(d1v1),
                           2, d2u1.Crossed(d2uv1),
                           1, d1u1.Crossed(d3uuv1));
@@ -425,8 +425,8 @@ Standard_Boolean BlendFunc_ConstRad::ComputeValues(const math_Vector& X,
      D2EDX2(3,1,1) = resul.Y();
      D2EDX2(4,1,1) = resul.Z();
 
-     // Derivee double par rapport a u1, v1       
-       // Derivation de la norme
+     // Derived double compared to u1, v1       
+       // Derived from the norm
      d2ns1uv1 =  (d3uuv1.Crossed(d1v1))
               +  (d2u1  .Crossed(d2v1))
              +  (d1u1  .Crossed(d3uvv1));
@@ -435,7 +435,7 @@ Standard_Boolean BlendFunc_ConstRad::ComputeValues(const math_Vector& X,
      DSecn = (nplan.Crossed(dns1v1)).Dot(nplan.Crossed(dns1u1))
            +  ncrossns1.Dot(nplan.Crossed(d2ns1uv1));
      grosterme  = (3*uterm*vterm*carre-DSecn)*cube;
-     uterm *= -cube; //et seulement maintenant
+     uterm *= -cube; //and only now
      vterm *= -cube;
        
      p1 = nplan.Dot(dns1u1);
@@ -456,8 +456,8 @@ Standard_Boolean BlendFunc_ConstRad::ComputeValues(const math_Vector& X,
      D2EDX2(3,2,1) = D2EDX2(3,1,2) = resul.Y();
      D2EDX2(4,2,1) = D2EDX2(4,1,2) = resul.Z();    
 
-     // Derivee double par rapport a v1       
-       // Derivation de la norme
+     // Derived double compared to v1       
+       // Derived from the norm
      d2ns1v1.SetLinearForm(1, d1u1.Crossed(d3v1),
                           2, d2uv1.Crossed(d2v1),
                           1, d3uvv1.Crossed(d1v1));
@@ -486,8 +486,8 @@ Standard_Boolean BlendFunc_ConstRad::ComputeValues(const math_Vector& X,
                                // ================
      carre = invnorm2*invnorm2;
      cube  = carre*invnorm2;
-     // Derivee double par rapport a u2       
-       // Derivation de la norme
+     // Derived double compared to u2       
+       // Derived from the norm
      d2ns1u2.SetLinearForm(1, d3u2.Crossed(d1v2),
                           2, d2u2.Crossed(d2uv2),
                           1, d1u2.Crossed(d3uuv2));
@@ -511,8 +511,8 @@ Standard_Boolean BlendFunc_ConstRad::ComputeValues(const math_Vector& X,
      D2EDX2(3,3,3) = resul.Y();
      D2EDX2(4,3,3) = resul.Z();
 
-     // Derivee double par rapport a u2, v2       
-       // Derivation de la norme
+     // Derived double compared to u2, v2       
+       // Derived from the norm
      d2ns1uv2 =  (d3uuv2.Crossed(d1v2))
               +  (d2u2  .Crossed(d2v2))
              +  (d1u2  .Crossed(d3uvv2));
@@ -521,7 +521,7 @@ Standard_Boolean BlendFunc_ConstRad::ComputeValues(const math_Vector& X,
      DSecn = (nplan.Crossed(dns1v2)).Dot(nplan.Crossed(dns1u2))
            +  ncrossns2.Dot(nplan.Crossed(d2ns1uv2));
      grosterme  = (3*uterm*vterm*carre-DSecn)*cube;
-     uterm *= -cube; //et seulement maintenant
+     uterm *= -cube; //and only now
      vterm *= -cube;
        
      p1 = nplan.Dot(dns1u2);
@@ -542,8 +542,8 @@ Standard_Boolean BlendFunc_ConstRad::ComputeValues(const math_Vector& X,
      D2EDX2(3,4,3) = D2EDX2(3,3,4) = resul.Y();
      D2EDX2(4,4,3) = D2EDX2(4,3,4) = resul.Z();    
 
-     // Derivee double par rapport a v2       
-       // Derivation de la norme
+     // Derived double compared to v2       
+       // Derived from the norm
      d2ns1v2.SetLinearForm(1, d1u2.Crossed(d3v2),
                           2, d2uv2.Crossed(d2v2),
                           1, d3uvv2.Crossed(d1v2));
@@ -570,7 +570,7 @@ Standard_Boolean BlendFunc_ConstRad::ComputeValues(const math_Vector& X,
 
      if (byParam) {
        Standard_Real tterm;
-        //  ---------- Derivation double en t, X --------------------------
+        //  ---------- Derivation double in t, X --------------------------
        D2EDXDT(1,1) = dnplan.Dot(d1u1)/2;
        D2EDXDT(1,2) = dnplan.Dot(d1v1)/2;
        D2EDXDT(1,3) = dnplan.Dot(d1u2)/2;
@@ -578,10 +578,10 @@ Standard_Boolean BlendFunc_ConstRad::ComputeValues(const math_Vector& X,
 
        carre = invnorm1*invnorm1;
        cube = carre*invnorm1;
-       //--> Derivee par rapport a u1 et t
+       //--> Derived compared to u1 and t
        tterm =  ncrossns1.Dot(dnplan.Crossed(nsurf1));
        smallterm  = - tterm*cube;
-       // Derivation de la norme
+       // Derived from the norm
        uterm =  ncrossns1.Dot(nplan. Crossed(dns1u1));
        DSecn = (nplan.Crossed(dns1u1)).Dot(dnplan.Crossed(nsurf1))
              + ncrossns1.Dot(dnplan.Crossed(dns1u1));
@@ -606,8 +606,8 @@ Standard_Boolean BlendFunc_ConstRad::ComputeValues(const math_Vector& X,
        D2EDXDT(3,1) = resul.Y();
        D2EDXDT(4,1) = resul.Z();
 
-       //--> Derivee par rapport a v1 et t
-       // Derivation de la norme
+       //--> Derived compared to v1 and t
+       // Derived from the norm
        uterm =  ncrossns1.Dot(nplan. Crossed(dns1v1));
        DSecn = (nplan. Crossed(dns1v1)).Dot(dnplan.Crossed(nsurf1))
              + ncrossns1.Dot(dnplan.Crossed(dns1v1));
@@ -633,10 +633,10 @@ Standard_Boolean BlendFunc_ConstRad::ComputeValues(const math_Vector& X,
 
        carre = invnorm2*invnorm2;
        cube = carre*invnorm2;
-       //--> Derivee par rapport a u2 et t
+       //--> Derived compared to u2 and t
        tterm =  ncrossns2.Dot(dnplan.Crossed(nsurf2));
        smallterm = -tterm*cube;
-       // Derivation de la norme
+       // Derived from the norm
        uterm =  ncrossns2.Dot(nplan. Crossed(dns1u2));
        DSecn = (nplan. Crossed(dns1u2)).Dot(dnplan.Crossed(nsurf2))
             + ncrossns2.Dot(dnplan.Crossed(dns1u2));
@@ -661,8 +661,8 @@ Standard_Boolean BlendFunc_ConstRad::ComputeValues(const math_Vector& X,
        D2EDXDT(3,3) = resul.Y();
        D2EDXDT(4,3) = resul.Z();
 
-       //--> Derivee par rapport a v2 et t
-       // Derivation de la norme
+       //--> Derived compared to v2 and t
+       // Derived from the norm
        uterm =  ncrossns2.Dot(nplan. Crossed(dns1v2));
        DSecn = (nplan.Crossed(dns1v2)).Dot(dnplan.Crossed(nsurf2))
             +  ncrossns2.Dot(dnplan.Crossed(dns1v2)); 
@@ -688,11 +688,11 @@ Standard_Boolean BlendFunc_ConstRad::ComputeValues(const math_Vector& X,
        D2EDXDT(4,4) = resul.Z();     
 
 
-        //  ---------- Derivation double en t -----------------------------
-    // Derivee de n1 par rapport a w
+        //  ---------- Derivation double in t -----------------------------
+    // Derived from n1 compared to w
        carre = invnorm1*invnorm1;
        cube = carre*invnorm1;
-       // Derivation de la norme
+       // Derived from the norm
        DPrim =  ncrossns1.Dot(dnplan.Crossed(nsurf1));
        smallterm = - 2*DPrim*cube;
        DSecn     = (dnplan.Crossed(nsurf1)).SquareMagnitude()
@@ -711,10 +711,10 @@ Standard_Boolean BlendFunc_ConstRad::ComputeValues(const math_Vector& X,
                             ndotns1*invnorm1,   d2nplan);
        d2n1w += temp;
   
-     // Derivee de n2 par rapport a w
+     // Derived from n2 compared to w
        carre = invnorm2*invnorm2;
        cube = carre*invnorm2;
-       // Derivation de la norme
+       // Derived from the norm
        DPrim =  ncrossns2.Dot(dnplan.Crossed(nsurf2));
        smallterm = - 2*DPrim*cube;
        DSecn     = (dnplan.Crossed(nsurf2)).SquareMagnitude()
@@ -756,8 +756,8 @@ void BlendFunc_ConstRad::Set(const Standard_Real Param)
 
 //=======================================================================
 //function : Set
-//purpose  : Segmente la courbe a sa partie utile.
-//           La prcision est prise arbitrairement petite !?
+//purpose  : Segmentation of the useful part of the curve
+//           Precision is taken at random and small !?
 //=======================================================================
 
 void BlendFunc_ConstRad::Set(const Standard_Real First, const Standard_Real Last)
@@ -821,7 +821,7 @@ Standard_Boolean BlendFunc_ConstRad::IsSolution(const math_Vector& Sol, const St
   if (Abs(E(1)) <= Tol &&
       E(2)*E(2) + E(3)*E(3) +  E(4)*E(4) <= Tol*Tol) { 
 
-    // on recopie localement ns1, ns2, np afin de ne pas ecraser les champs !
+    // ns1, ns2 and  np are copied locally to avoid crushing the fields !
     gp_Vec ns1,ns2,np;
     ns1 = nsurf1;
     ns2 = nsurf2;
@@ -829,13 +829,13 @@ Standard_Boolean BlendFunc_ConstRad::IsSolution(const math_Vector& Sol, const St
   
     norm = nplan.Crossed(ns1).Magnitude();
     if (norm < Eps)  {
-      norm = 1; // Insufisant, mais il ne faut pas planter
+      norm = 1; // Unsatisfactory, but it is not necessary to stop
     }
     ns1.SetLinearForm(nplan.Dot(ns1)/norm,nplan, -1./norm, ns1);
 
     norm = nplan.Crossed(ns2).Magnitude();
     if (norm < Eps)  {
-      norm = 1; // Insufisant, mais il ne faut pas planter
+      norm = 1; // Unsatisfactory, but it is not necessary to stop
     }
     ns2.SetLinearForm(nplan.Dot(ns2)/norm,nplan, -1./norm, ns2);   
 
@@ -882,7 +882,7 @@ Standard_Boolean BlendFunc_ConstRad::IsSolution(const math_Vector& Sol, const St
       tg22d.SetCoord(solution(3),solution(4));
     }
  
-  // mise a jour de maxang
+  // update of maxang
 
     if (ray1 > 0.) {
       ns1.Reverse();
@@ -893,13 +893,13 @@ Standard_Boolean BlendFunc_ConstRad::IsSolution(const math_Vector& Sol, const St
     Cosa = ns1.Dot(ns2);
     Sina = np.Dot(ns1.Crossed(ns2));
     if (choix%2 != 0) {
-      Sina = -Sina;  //nplan est change en -nplan
+      Sina = -Sina;  //nplan is changed in -nplan
     }
 
     if(Cosa > 1.) {Cosa = 1.; Sina = 0.;}
     Angle = ACos(Cosa);
 
- // Recadrage sur ]-pi/2, 3pi/2]
+ // Reframing on  ]-pi/2, 3pi/2]
     if (Sina <0.) {
       if (Cosa > 0.) Angle = -Angle;
       else           Angle =  2.*PI - Angle;
@@ -1158,12 +1158,12 @@ void BlendFunc_ConstRad::Section(const Standard_Real Param,
   Standard_Real  norm1;
   norm1 = nplan.Crossed(ns1).Magnitude();
   if (norm1 < Eps)  {
-    norm1 = 1; // Insufisant, mais il ne faut pas planter
+    norm1 = 1; // Unsatisfactory, but it is not necessary to stop
   }   
   ns1.SetLinearForm(nplan.Dot(ns1)/norm1,nplan, -1./norm1,ns1);
   Center.SetXYZ(pts1.XYZ()+ray1*ns1.XYZ());
 
-// on oriente ns1 du centre vers pts1,
+// ns1 is oriented from the center to pts1,
 
   if (ray1 > 0.) {
     ns1.Reverse();
@@ -1175,7 +1175,7 @@ void BlendFunc_ConstRad::Section(const Standard_Real Param,
   C.SetPosition(gp_Ax2(Center,np,ns1));
   Pdeb = 0.;
   Pfin = ElCLib::Parameter(C,pts2);
-  // Test des angles negatif et quasi null : Cas Singulier
+  // Test negative and almost null angles : Singular Case
   if (Pfin>1.5*PI) {
     np.Reverse();
     C.SetPosition(gp_Ax2(Center,np,ns1));
@@ -1210,7 +1210,7 @@ Standard_Real BlendFunc_ConstRad::GetSectionSize() const
 void BlendFunc_ConstRad::GetMinimalWeight(TColStd_Array1OfReal& Weigths) const 
 {
   BlendFunc::GetMinimalWeights(mySShape, myTConv, minang, maxang, Weigths );
-  // On suppose que cela ne depend pas du Rayon!
+  // It is supposed that it does not depend on the Radius!
 }
 
 //=======================================================================
@@ -1251,7 +1251,7 @@ void BlendFunc_ConstRad::GetShape (Standard_Integer& NbPoles,
 
 //=======================================================================
 //function : GetTolerance
-//purpose  : Determine les Tolerances a utiliser dans les approximations.
+//purpose  : Determine Tolerances used for approximations.
 //=======================================================================
 void BlendFunc_ConstRad::GetTolerance(const Standard_Real BoundTol, 
                                      const Standard_Real SurfTol, 
@@ -1318,7 +1318,7 @@ void BlendFunc_ConstRad::Section(const Blend_Point& P,
   Ok = ComputeValues(X, 0, Standard_True, prm);
   distmin = Min (distmin, pts1.Distance(pts2));
 
-  // on recopie localement ns1, ns2, np afin de ne pas ecraser les champs !
+  // ns1, ns2, np are copied locally to avoid crushing the fields !
   ns1 = nsurf1;
   ns2 = nsurf2;
   np = nplan;
@@ -1339,13 +1339,13 @@ void BlendFunc_ConstRad::Section(const Blend_Point& P,
   norm1 = nplan.Crossed(ns1).Magnitude();
   norm2 = nplan.Crossed(ns2).Magnitude();
   if (norm1 < Eps)  {
-    norm1 = 1; // Insufisant, mais il ne faut pas planter
+    norm1 = 1; // Unsatisfactory, but it is not necessary to stop
 //#if DEB
 //    cout << " ConstRad : Surface singuliere " << endl;
 //#endif
   }
   if (norm2 < Eps) {
-    norm2 = 1; // Insufisant, mais il ne faut pas planter
+    norm2 = 1; // Unsatisfactory, but it is not necessary to stop
 //#if DEB
 //    cout << " ConstRad : Surface singuliere " << endl;
 //#endif
@@ -1356,8 +1356,8 @@ void BlendFunc_ConstRad::Section(const Blend_Point& P,
 
   Center.SetXYZ(pts1.XYZ()+ray1*ns1.XYZ());
 
-// on oriente ns1 (resp. ns2) du centre vers pts1 (resp. pts2),
-// et on rend direct le triedre ns1,ns2,nplan.
+// ns1 (resp. ns2) is oriented from center to pts1 (resp. pts2),
+// and the triedron ns1,ns2,nplan is made direct.
 
   if (ray1 > 0.) {
     ns1.Reverse();
@@ -1405,11 +1405,11 @@ Standard_Boolean BlendFunc_ConstRad::Section
   P.ParametersOnS1(sol(1),sol(2));
   P.ParametersOnS2(sol(3),sol(4));
 
-  // Calculs des equations
+  // Calculation of equations
   ComputeValues(sol, 1, Standard_True, prm);
   distmin = Min (distmin, pts1.Distance(pts2));
 
-  // on recopie localement ns1, ns2, np afin de ne pas ecraser les champs !
+  // ns1, ns2, np are copied locally to avoid crushing the fields !
   ns1 = nsurf1;
   ns2 = nsurf2;
   np = nplan;
@@ -1417,7 +1417,7 @@ Standard_Boolean BlendFunc_ConstRad::Section
 
   if ( ! pts1.IsEqual(pts2, 1.e-4)) {
 
-    // Calcul des derives Traitement Normal
+    // Calculation of derivates Processing Normal
     math_Gauss Resol(DEDX, 1.e-9);
 
     if (Resol.IsDone()) {  
@@ -1443,7 +1443,7 @@ Standard_Boolean BlendFunc_ConstRad::Section
   }
 
 
-  // Les poles 2d  
+  // Tops 2d  
   Poles2d(Poles2d.Lower()).SetCoord(sol(1),sol(2));
   Poles2d(Poles2d.Upper()).SetCoord(sol(3),sol(4));
   if (!istgt) {
@@ -1451,7 +1451,7 @@ Standard_Boolean BlendFunc_ConstRad::Section
     DPoles2d(Poles2d.Upper()).SetCoord(secmember(3),secmember(4));
   }
 
-  // on traite le cas linear...
+  // the linear case is processed...
   if (mySShape == BlendFunc_Linear) {
     Poles(low) = pts1;
     Poles(upp) = pts2;
@@ -1466,17 +1466,17 @@ Standard_Boolean BlendFunc_ConstRad::Section
     return (!istgt);
   }
 
-  // Cas du cercle
+  // Case of the circle
   norm1 = nplan.Crossed(ns1).Magnitude();
   norm2 = nplan.Crossed(ns2).Magnitude();
   if (norm1 < Eps) {
-    norm1 = 1; // Insufisant, mais il ne faut pas planter
+    norm1 = 1; // Unsatisfactory, but it is not necessary to stop
 #if DEB
     cout << " ConstRad : Surface singuliere " << endl;
 #endif
   }
   if (norm2 < Eps) {
-   norm2 = 1; // Insufisant, mais il ne faut pas planter
+   norm2 = 1; // Unsatisfactory, but it is not necessary to stop
 #if DEB
    cout << " ConstRad : Surface singuliere " << endl;
 #endif
@@ -1490,8 +1490,8 @@ Standard_Boolean BlendFunc_ConstRad::Section
     tgc.SetLinearForm(ray1,dnorm1w,tg1); //  = tg1.Added(ray1*dn1w);
   }
 
-  // On oriente ns1 du centre vers pts1, et ns2 du centre vers pts2
-  // et on rend le triedre ns1,ns2,nplan direct
+  // ns1 is oriented from the center to pts1, and ns2 from the center to pts2
+  // and the trihedron ns1,ns2,nplan is made direct
 
   if (ray1 > 0.) {
     ns1.Reverse();
@@ -1609,7 +1609,7 @@ Standard_Boolean BlendFunc_ConstRad::Section
 # endif 
 */
 
-  // Calculs des equations
+  // Calculation of equations
   ComputeValues(X, 2, Standard_True, prm);
   distmin = Min (distmin, pts1.Distance(pts2));
 
@@ -1707,19 +1707,19 @@ Standard_Boolean BlendFunc_ConstRad::Section
 
 #endif
 */
-  // on recopie localement ns1, ns2, np afin de ne pas ecraser les champs !
+  // ns1, ns2, np are copied locally to avois crushing the fields !
   ns1 = nsurf1;
   ns2 = nsurf2;
   np  = nplan;
   dnp = dnplan;
   d2np = d2nplan;
 
-  // Calcul des derives
+  // Calculation of derivatives
 
 
   if ( ! pts1.IsEqual(pts2, 1.e-4)) {
-    math_Gauss Resol(DEDX, 1.e-9); // !Tol a affiner !!!!! 
-    // Calcul des derives Traitement Normal
+    math_Gauss Resol(DEDX, 1.e-9); // Precise tolerance !!!!! 
+    // Calculation of derivatives Processing Normal
     if (Resol.IsDone()) {  
       Resol.Solve(-DEDT, sol);
       D2EDX2.Multiply(sol, D2DXdSdt);    
@@ -1779,7 +1779,7 @@ Standard_Boolean BlendFunc_ConstRad::Section
     d2norm2w.SetLinearForm(secmember(3),dndu2, secmember(4),dndv2, temp);
   }
 
-  // Les poles 2d  
+  // Tops 2d  
   Poles2d(Poles2d.Lower()).SetCoord(X(1),X(2));
   Poles2d(Poles2d.Upper()).SetCoord(X(3),X(4));
   if (!istgt) {
@@ -1789,7 +1789,7 @@ Standard_Boolean BlendFunc_ConstRad::Section
     D2Poles2d(Poles2d.Upper()).SetCoord(secmember(3), secmember(4));    
   }
 
-  // on traite le cas linear...
+  // linear case is processed...
   if (mySShape == BlendFunc_Linear) {
     Poles(low) = pts1;
     Poles(upp) = pts2;
@@ -1808,17 +1808,17 @@ Standard_Boolean BlendFunc_ConstRad::Section
     return (!istgt);
   }
 
-  // Cas du cercle
+  // Case of circle
   norm1 = nplan.Crossed(ns1).Magnitude();
   norm2 = nplan.Crossed(ns2).Magnitude();
   if (norm1 < Eps) {
-    norm1 = 1; // Insufisant, mais il ne faut pas planter
+    norm1 = 1; // Unsatisfactory, but it is not necessary to stop
 #if DEB
     cout << " ConstRad : Surface singuliere " << endl;
 #endif
   }
   if (norm2 < Eps) {
-    norm2 = 1; // Insufisant, mais il ne faut pas planter
+    norm2 = 1; // Unsatisfactory, but it is not necessary to stop
 #if DEB
     cout << " ConstRad : Surface singuliere " << endl;
 #endif
@@ -1833,8 +1833,8 @@ Standard_Boolean BlendFunc_ConstRad::Section
     dtgc.SetLinearForm(ray1, d2norm1w, dtg1);
   }
 
-  // On oriente ns1 du centre vers pts1, et ns2 du centre vers pts2
-  // et on rend le triedre ns1,ns2,nplan direct
+  // ns1 is oriented from the center to pts1 and ns2 from the center to pts2
+  // trihedron ns1,ns2,nplan is made direct
 
   if (ray1 > 0.) {
     ns1.Reverse();
@@ -1908,7 +1908,7 @@ gp_Ax1 BlendFunc_ConstRad::AxeRot (const Standard_Real Prm)
     axrot.SetDirection(dirax);
   }
   else {
-    axrot.SetDirection(np);  // Pour ne pas planter
+    axrot.SetDirection(np);  // To avoid stop
   }
   if (dnp.Magnitude() >= gp::Resolution()) {
     oriax.SetXYZ(ptgui.XYZ()+
index 18413e7..788909e 100755 (executable)
@@ -202,7 +202,7 @@ Standard_Boolean BlendFunc_ConstRadInv::Value(const math_Vector& X,
 //#endif
   }
   if (norm2 < Eps)  {
-    norm2 = 1; // Insufisant, mais il ne faut pas planter
+    norm2 = 1; // Unsatisfactory, but it is not necessary to stop
 //#if DEB
 //    cout << " ConstRadInv : Surface singuliere " << endl;
 //#endif
@@ -288,13 +288,13 @@ Standard_Boolean BlendFunc_ConstRadInv::Derivatives(const math_Vector& X,
   norm1 = ncrossns1.Magnitude();
   norm2 = ncrossns2.Magnitude();
   if (norm1 < Eps)  {
-    norm1 = 1; // Insufisant, mais il ne faut pas planter
+    norm1 = 1; // Unsatisfactory, but it is not necessary to stop
 #if DEB
     cout << " ConstRadInv : Surface singuliere " << endl;
 #endif
   }
   if (norm2 < Eps)  {
-    norm2 = 1; // Insufisant, mais il ne faut pas planter
+    norm2 = 1; // Unsatisfactory, but it is not necessary to stop
 #if DEB
     cout << " ConstRadInv : Surface singuliere " << endl;
 #endif
@@ -303,7 +303,7 @@ Standard_Boolean BlendFunc_ConstRadInv::Derivatives(const math_Vector& X,
   ndotns1 = nplan.Dot(ns1);
   ndotns2 = nplan.Dot(ns2);
 
-  // Derivee par rapport a u1
+  // Derived compared to u1
 
   temp = d2u1.Crossed(d1v1).Added(d1u1.Crossed(d2uv1));
   grosterme = ncrossns1.Dot(nplan.Crossed(temp))/norm1/norm1;
@@ -313,7 +313,7 @@ Standard_Boolean BlendFunc_ConstRadInv::Derivatives(const math_Vector& X,
                       d1u1);
 
 
-  // Derivee par rapport a v1
+  // Derived compared to v1
 
   temp = d2uv1.Crossed(d1v1).Added(d1u1.Crossed(d2v1));
   grosterme = ncrossns1.Dot(nplan.Crossed(temp))/norm1/norm1;
@@ -338,8 +338,8 @@ Standard_Boolean BlendFunc_ConstRadInv::Derivatives(const math_Vector& X,
   }
 
 
-  // derivee par rapport a w (parametre sur ligne guide)
-  // On considere ici que le rayon est constant
+  // derived compared to w (parameter on guideline)
+  // It is assumed that the radius is constant
 
   grosterme = ncrossns1.Dot(dnplan.Crossed(ns1))/norm1/norm1;
   resul1.SetLinearForm(-ray1/norm1*(grosterme*ndotns1-dnplan.Dot(ns1)),nplan,
@@ -359,7 +359,7 @@ Standard_Boolean BlendFunc_ConstRadInv::Derivatives(const math_Vector& X,
 
 
 
-  // Derivee par rapport a u2
+  // Derived compared to u2
   temp = d2u2.Crossed(d1v2).Added(d1u2.Crossed(d2uv2));
   grosterme = ncrossns2.Dot(nplan.Crossed(temp))/norm2/norm2;
   resul1.SetLinearForm(ray2/norm2*(grosterme*ndotns2-nplan.Dot(temp)),nplan,
@@ -367,7 +367,7 @@ Standard_Boolean BlendFunc_ConstRadInv::Derivatives(const math_Vector& X,
                       ray2/norm2,temp);
   resul1.Subtract(d1u2);
 
-  // Derivee par rapport a v2
+  // Derived compared to v2
   temp = d2uv2.Crossed(d1v2).Added(d1u2.Crossed(d2v2));
   grosterme = ncrossns2.Dot(nplan.Crossed(temp))/norm2/norm2;
   resul2.SetLinearForm(ray2/norm2*(grosterme*ndotns2-nplan.Dot(temp)),nplan,
@@ -469,13 +469,13 @@ Standard_Boolean BlendFunc_ConstRadInv::Values(const math_Vector& X,
   norm1 = ncrossns1.Magnitude();
   norm2 = ncrossns2.Magnitude();
   if (norm1 < Eps)  {
-    norm1 = 1; // Insufisant, mais il ne faut pas planter
+    norm1 = 1; // Unsatisfactory, but it is not necessary to stop
 #if DEB
     cout << " ConstRadInv : Surface singuliere " << endl;
 #endif
   }
   if (norm2 < Eps)  {
-    norm2 = 1; // Insufisant, mais il ne faut pas planter
+    norm2 = 1; // Unsatisfactory, but it is not necessary to stop
 #if DEB
     cout << " ConstRadInv : Surface singuliere " << endl;
 #endif
@@ -493,7 +493,7 @@ Standard_Boolean BlendFunc_ConstRadInv::Values(const math_Vector& X,
   F(3) = resul1.Y();
   F(4) = resul1.Z();
 
-  // Derivee par rapport a u1
+  // Derived compared to u1
 
   temp = d2u1.Crossed(d1v1).Added(d1u1.Crossed(d2uv1));
   grosterme = ncrossns1.Dot(nplan.Crossed(temp))/norm1/norm1;
@@ -503,7 +503,7 @@ Standard_Boolean BlendFunc_ConstRadInv::Values(const math_Vector& X,
                       d1u1);
 
 
-  // Derivee par rapport a v1
+  // Derived compared to v1
 
   temp = d2uv1.Crossed(d1v1).Added(d1u1.Crossed(d2v1));
   grosterme = ncrossns1.Dot(nplan.Crossed(temp))/norm1/norm1;
@@ -527,8 +527,8 @@ Standard_Boolean BlendFunc_ConstRadInv::Values(const math_Vector& X,
     D(4,4) = resul2.Z();
   }
 
-  // derivee par rapport a w (parametre sur ligne guide)
-  // On considere ici que le rayon est constant
+  // derived compared to w (parameter on guideline)
+  // It is assumed that the raduis is constant
 
   grosterme = ncrossns1.Dot(dnplan.Crossed(ns1))/norm1/norm1;
   resul1.SetLinearForm(-ray1/norm1*(grosterme*ndotns1-dnplan.Dot(ns1)),nplan,
@@ -548,7 +548,7 @@ Standard_Boolean BlendFunc_ConstRadInv::Values(const math_Vector& X,
 
 
 
-  // Derivee par rapport a u2
+  // Derived compared to u2
   temp = d2u2.Crossed(d1v2).Added(d1u2.Crossed(d2uv2));
   grosterme = ncrossns2.Dot(nplan.Crossed(temp))/norm2/norm2;
   resul1.SetLinearForm(ray2/norm2*(grosterme*ndotns2-nplan.Dot(temp)),nplan,
@@ -556,7 +556,7 @@ Standard_Boolean BlendFunc_ConstRadInv::Values(const math_Vector& X,
                       ray2/norm2,temp);
   resul1.Subtract(d1u2);
 
-  // Derivee par rapport a v2
+  // Derived compared to v2
   temp = d2uv2.Crossed(d1v2).Added(d1u2.Crossed(d2v2));
   grosterme = ncrossns2.Dot(nplan.Crossed(temp))/norm2/norm2;
   resul2.SetLinearForm(ray2/norm2*(grosterme*ndotns2-nplan.Dot(temp)),nplan,
index 2726d66..1e873d3 100755 (executable)
@@ -6,11 +6,11 @@
 
 class Corde from BlendFunc
 
-       ---Purpose: Cette fonction calcule le point pts sur la courbe intersection
-       --          entre la normale  a  une courbe (guide) en un parametre choisi
-       --          et une surface  (surf), tel que pts soit a une distance
-       --          donnee de guide.
-       --          X(1),X(2) sont les parametres U,V de pts sur surf.
+       ---Purpose: This function calculates point (pts) on the curve of
+       --          intersection between the normal to a curve (guide)
+       --          in a chosen parameter and a surface  (surf), so
+       --          that pts was at a given distance from the guide.
+       --          X(1),X(2) are the parameters U,V of pts on surf.
 
  
 uses Vector   from math,
@@ -110,8 +110,8 @@ is
 
            
     DerFguide(me: in out; Sol : Vector from math; DerF : out Vec2d from gp);
-       ---Purpose: Derivee de la fonction par rapport au parametre 
-       --          de la ligne guide
+       ---Purpose: Derived of the function compared to the parameter
+       -- of the guideline
                        
                        
     IsSolution(me : in out;
index 017760d..2321c44 100755 (executable)
@@ -199,7 +199,7 @@ Standard_Boolean BlendFunc_Corde::IsSolution(const math_Vector& Sol, const Stand
     secmember(2) = 2.*d1gui.Dot(temp);
 
 //  gradsol*der = secmember
-//  avec der(1) = dU/dW, der(2) = dU/dW, W est le parametre de guide
+//  with  der(1) = dU/dW, der(2) = dU/dW, W is the guide parameter
 
     math_Gauss Resol(gradsol);
     if (Resol.IsDone()) {
index 1faf834..f686fff 100755 (executable)
@@ -3,11 +3,6 @@
 // Author:    Jacques GOUSSARD
 // Copyright: OPEN CASCADE 1993
 
-// Modified 10/09/1996 PMN Ajout de (Nb)Intervalles, IsRationnal 
-//                         + Optimisation.
-// Modified 26/04/1997 PMN Traitement des Singularites
-// Modified 23/06/1997 PMN Pb de division par 0
-// Modified 20/02/1998 PMN Gestion des surfaces singulieres
 
 #include <BlendFunc_EvolRad.ixx>
 
@@ -35,39 +30,39 @@ static void FusionneIntervalles(const TColStd_Array1OfReal& I1,
 {
   Standard_Integer ind1=1, ind2=1;
   Standard_Real    Epspar = Precision::PConfusion()*0.99;
-  // en suposant que le positionement fonctionne a PConfusion()/2
+// supposed that positioning works with PConfusion()/2
   Standard_Real    v1, v2;
-// Initialisations : les IND1 et IND2 pointent sur le 1er element
-// de chacune des 2 tables a traiter.INDS pointe sur le dernier
-// element cree de TABSOR
+// Initialisation : IND1 and IND2 point at the 1st element
+// of each of 2 tables to be processed. INDS points at the last
+// element of TABSOR
 
 
-//--- On remplit TABSOR en parcourant TABLE1 et TABLE2 simultanement ---
-//------------------ en eliminant les occurrences multiples ------------
+//--- TABSOR is filled by parsing TABLE1 and TABLE2 simultaneously ---
+//------------------ by removing multiple occurrencies ------------
 
  while ((ind1<=I1.Upper()) && (ind2<=I2.Upper())) {
       v1 = I1(ind1);
       v2 = I2(ind2);
       if (Abs(v1-v2)<= Epspar) {
-// Ici les elements de I1 et I2 conviennent .
+// Here elements of I1 and I2 are suitable.
          Seq.Append((v1+v2)/2);
         ind1++;
          ind2++;
        }
       else if (v1 < v2) {
-       // Ici l' element de I1 convient.
+       // Here the element of I1 is suitable.
          Seq.Append(v1);
          ind1++;
        }
       else {
-// Ici l' element de TABLE2 convient.
+// Here the element of TABLE2 is suitable.
         Seq.Append(v2);
         ind2++;
        }
     }
 
   if (ind1>I1.Upper()) { 
-//----- Ici I1 est epuise, on complete avec la fin de TABLE2 -------
+//----- Here I1 is empty, to be completed with the end of TABLE2 -------
 
     for (; ind2<=I2.Upper(); ind2++) {
       Seq.Append(I2(ind2));
@@ -75,7 +70,7 @@ static void FusionneIntervalles(const TColStd_Array1OfReal& I1,
   }
 
   if (ind2>I2.Upper()) { 
-//----- Ici I2 est epuise, on complete avec la fin de I1 -------
+//----- Here I2 is empty, to be completed with the end of I1 -------
 
     for (; ind1<=I1.Upper(); ind1++) {
       Seq.Append(I1(ind1));
@@ -110,7 +105,7 @@ BlendFunc_EvolRad::BlendFunc_EvolRad(const Handle(Adaptor3d_HSurface)& S1,
   fevol = Law;
   tevol = Law;
 
-// Initialisaton des variables de controle du cache.
+// Initialisaton of cash control variables.
   tval = -9.876e100;
   xval.Init(-9.876e100);
   myXOrder = -1;
@@ -183,11 +178,11 @@ void BlendFunc_EvolRad::Set(const BlendFunc_SectionShape TypeSection)
 
 //=======================================================================
 //function : ComputeValues
-//purpose  : Passage OBLIGATOIRE pour tous les calculs
-//           Cette methode gere les positionemment sur Surfaces et Courbe
-//           Calcul les equation et leurs derives partielle
-//           Stock certains resultat intermediaire dans les champs pour etre
-//           utiliser dans d'autre methodes.
+//purpose  : OBLIGATORY passage for all computations
+//           This method manages the positioning on Surfaces and Curves
+//           Partial calculation of equations and their derivatives
+//           Storage of some intermediary results in fields to be 
+//           used in other methods.
 //=======================================================================
 
 Standard_Boolean BlendFunc_EvolRad::ComputeValues(const math_Vector& X,
@@ -195,7 +190,7 @@ Standard_Boolean BlendFunc_EvolRad::ComputeValues(const math_Vector& X,
                                                   const Standard_Boolean byParam,
                                                   const Standard_Real Param)
 {
- // declaration statique afin d'eviter la realloc systematique
+ // static declaration to avoid systematic realloc 
  
  static gp_Vec d3u1,d3v1,d3uuv1,d3uvv1,d3u2,d3v2,d3uuv2,d3uvv2; 
  static gp_Vec d1gui, d2gui, d3gui;
@@ -203,10 +198,10 @@ Standard_Boolean BlendFunc_EvolRad::ComputeValues(const math_Vector& X,
  static Standard_Real invnormtg, dinvnormtg;
  Standard_Real T =  Param, aux;
 
- // Cas du parametre implicite
+ // Case of implicit parameter
  if ( !byParam) { T = param;}
 
- // Le travail est il dejas fait ?
+ // The work is done already?
  Standard_Boolean lX_OK =  (Order<=myXOrder);
  Standard_Integer ii;
  for (ii=1; ((ii<=X.Length()) && lX_OK); ii++) {
@@ -220,12 +215,12 @@ Standard_Boolean BlendFunc_EvolRad::ComputeValues(const math_Vector& X,
    return Standard_True;
  }
 
- // Traitement de t
+ // Processing of t
  if (!t_OK) {
    tval = T;
    if (byParam) { myTOrder = Order;}
    else         { myTOrder = 0;}
-   //----- Positionement sur la courbe et la loi----------------
+   //----- Positioning on the curve and the law----------------
    switch (myTOrder) {
    case 0 :
      {
@@ -269,11 +264,11 @@ Standard_Boolean BlendFunc_EvolRad::ComputeValues(const math_Vector& X,
    }
  }
 
- // Traitement de X
+ // Processing of X
  if (!lX_OK) {
    xval = X;
    myXOrder = Order;
-   //-------------- Positionement sur les surfaces -----------------
+   //-------------- Positioning on surfaces -----------------
    switch (myXOrder) {
    case 0 :
      {
@@ -308,7 +303,7 @@ Standard_Boolean BlendFunc_EvolRad::ComputeValues(const math_Vector& X,
    default:
      return Standard_False;
    }
-   // Cas des surfaces degeneree
+   // Case of degenerated surfaces 
    if (nsurf1.Magnitude() < Eps ) {
 //     gp_Vec normal;
      gp_Pnt2d P(X(1), X(2)); 
@@ -323,7 +318,7 @@ Standard_Boolean BlendFunc_EvolRad::ComputeValues(const math_Vector& X,
    }
  }
  
- // -------------------- Positionement a l'ordre 0 ---------------------
+ // -------------------- Positioning of order 0 ---------------------
  Standard_Real invnorm1, invnorm2, ndotns1, ndotns2, theD;
  Standard_Real ray1 = sg1*ray;
  Standard_Real ray2 = sg2*ray;
@@ -342,14 +337,14 @@ Standard_Boolean BlendFunc_EvolRad::ComputeValues(const math_Vector& X,
 
  if (invnorm1 > Eps) invnorm1 = ((Standard_Real) 1) /invnorm1;
   else {
-    invnorm1 = 1; // Insufisant, mais il ne faut pas planter
+    invnorm1 = 1; // Unsatisfactory, but it is not necessary to stop
 #if DEB
     cout << " EvolRad : Surface singuliere " << endl;
 #endif
   }
   if (invnorm2 > Eps) invnorm2 = ((Standard_Real) 1) /invnorm2;
   else {
-    invnorm2 = 1; // Insufisant, mais il ne faut pas planter
+    invnorm2 = 1; // Unsatisfactory, but it is not necessary to stop
 #if DEB
     cout << " EvolRad : Surface singuliere " << endl;
 #endif
@@ -371,7 +366,7 @@ Standard_Boolean BlendFunc_EvolRad::ComputeValues(const math_Vector& X,
  E(3) = resul.Y();
  E(4) = resul.Z();
 
- // -------------------- Positionement a l'ordre 1 ---------------------
+ // -------------------- Positioning of order 1 ---------------------
  if (Order >= 1) {
    Standard_Real  grosterme, cube, carre;  
 
@@ -381,7 +376,7 @@ Standard_Boolean BlendFunc_EvolRad::ComputeValues(const math_Vector& X,
    DEDX(1,4) = nplan.Dot(d1v2)/2;
 
    cube =invnorm1*invnorm1*invnorm1;
-   // Derivee par rapport a u1
+   // Derived compared to u1
    grosterme = - ncrossns1.Dot(nplan.Crossed(dns1u1))*cube;
    dndu1.SetLinearForm( grosterme*ndotns1
                      + invnorm1*nplan.Dot(dns1u1), nplan,
@@ -393,7 +388,7 @@ Standard_Boolean BlendFunc_EvolRad::ComputeValues(const math_Vector& X,
    DEDX(3,1) = resul.Y();
    DEDX(4,1) = resul.Z();
 
-   // Derivee par rapport a v1
+   // Derived compared to v1
    grosterme = - ncrossns1.Dot(nplan.Crossed(dns1v1))*cube;
    dndv1.SetLinearForm( grosterme*ndotns1
                       +invnorm1*nplan.Dot(dns1v1), nplan,
@@ -418,7 +413,7 @@ Standard_Boolean BlendFunc_EvolRad::ComputeValues(const math_Vector& X,
    DEDX(3,3) = resul.Y();
    DEDX(4,3) = resul.Z();
 
-   // Derivee par rapport a v2
+   // Derived compared to v2
    grosterme = -ncrossns2.Dot(nplan.Crossed(dns1v2))*cube;
    dndv2.SetLinearForm( grosterme*ndotns2
                       +invnorm2*nplan.Dot(dns1v2), nplan,
@@ -432,13 +427,13 @@ Standard_Boolean BlendFunc_EvolRad::ComputeValues(const math_Vector& X,
 
    if (byParam) {
      temp.SetXYZ( (pts1.XYZ()+pts2.XYZ())/2 - ptgui.XYZ());
-     // Derivee de n1 par rapport a w     
+     // Derived from n1 compared to w     
      grosterme = ncrossns1.Dot(dnplan.Crossed(nsurf1))*invnorm1*invnorm1;
      dn1w.SetLinearForm((dnplan.Dot(nsurf1)-grosterme*ndotns1)*invnorm1, nplan,
                         ndotns1*invnorm1,dnplan,
                         grosterme*invnorm1,nsurf1);
   
-     // Derivee de n2 par rapport a w
+     // Derived from n2 compared to w
      grosterme = ncrossns2.Dot(dnplan.Crossed(nsurf2))*invnorm2*invnorm2;
      dn2w.SetLinearForm((dnplan.Dot(nsurf2)-grosterme*ndotns2)*invnorm2,nplan,
                        ndotns2*invnorm2,dnplan,
@@ -454,7 +449,7 @@ Standard_Boolean BlendFunc_EvolRad::ComputeValues(const math_Vector& X,
      DEDT(3) = resul.Y(); 
      DEDT(4) = resul.Z();
    }
-   // ------   Positionemement a l'ordre 2  -----------------------------
+   // ------   Positioning of order 2  -----------------------------
    if (Order == 2) {
 //     gp_Vec d2ndu1,  d2ndu2, d2ndv1, d2ndv2, d2nduv1, d2nduv2;
      gp_Vec d2ns1u1,  d2ns1u2, d2ns1v1, d2ns1v2, d2ns1uv1, d2ns1uv2;
@@ -474,8 +469,8 @@ Standard_Boolean BlendFunc_EvolRad::ComputeValues(const math_Vector& X,
                                // ================
      carre = invnorm1*invnorm1;
      cube  = carre*invnorm1;
-     // Derivee double par rapport a u1       
-       // Derivation de la norme
+     // Derived double compared to u1       
+       // Derived from the norm
      d2ns1u1.SetLinearForm(1, d3u1.Crossed(d1v1),
                           2, d2u1.Crossed(d2uv1),
                           1, d1u1.Crossed(d3uuv1));
@@ -499,8 +494,8 @@ Standard_Boolean BlendFunc_EvolRad::ComputeValues(const math_Vector& X,
      D2EDX2(3,1,1) = resul.Y();
      D2EDX2(4,1,1) = resul.Z();
 
-     // Derivee double par rapport a u1, v1       
-       // Derivation de la norme
+     // Derived double compared to u1, v1       
+       // Derived from the norm
      d2ns1uv1 =  (d3uuv1.Crossed(d1v1))
               +  (d2u1  .Crossed(d2v1))
              +  (d1u1  .Crossed(d3uvv1));
@@ -509,7 +504,7 @@ Standard_Boolean BlendFunc_EvolRad::ComputeValues(const math_Vector& X,
      DSecn = (nplan.Crossed(dns1v1)).Dot(nplan.Crossed(dns1u1))
            +  ncrossns1.Dot(nplan.Crossed(d2ns1uv1));
      grosterme  = (3*uterm*vterm*carre-DSecn)*cube;
-     uterm *= -cube; //et seulement maintenant
+     uterm *= -cube; //and only now
      vterm *= -cube;
        
      p1 = nplan.Dot(dns1u1);
@@ -530,8 +525,8 @@ Standard_Boolean BlendFunc_EvolRad::ComputeValues(const math_Vector& X,
      D2EDX2(3,2,1) = D2EDX2(3,1,2) = resul.Y();
      D2EDX2(4,2,1) = D2EDX2(4,1,2) = resul.Z();    
 
-     // Derivee double par rapport a v1       
-       // Derivation de la norme
+     // Derived double compared to v1       
+       // Derived from the norm
      d2ns1v1.SetLinearForm(1, d1u1.Crossed(d3v1),
                           2, d2uv1.Crossed(d2v1),
                           1, d3uvv1.Crossed(d1v1));
@@ -560,8 +555,8 @@ Standard_Boolean BlendFunc_EvolRad::ComputeValues(const math_Vector& X,
                                // ================
      carre = invnorm2*invnorm2;
      cube  = carre*invnorm2;
-     // Derivee double par rapport a u2       
-       // Derivation de la norme
+     // Derived double compared to u2       
+     // Derived from the norm
      d2ns1u2.SetLinearForm(1, d3u2.Crossed(d1v2),
                           2, d2u2.Crossed(d2uv2),
                           1, d1u2.Crossed(d3uuv2));
@@ -585,8 +580,8 @@ Standard_Boolean BlendFunc_EvolRad::ComputeValues(const math_Vector& X,
      D2EDX2(3,3,3) = resul.Y();
      D2EDX2(4,3,3) = resul.Z();
 
-     // Derivee double par rapport a u2, v2       
-       // Derivation de la norme
+     // Derived double compared to u2, v2       
+     // Derived from the norm
      d2ns1uv2 =  (d3uuv2.Crossed(d1v2))
               +  (d2u2  .Crossed(d2v2))
              +  (d1u2  .Crossed(d3uvv2));
@@ -595,7 +590,7 @@ Standard_Boolean BlendFunc_EvolRad::ComputeValues(const math_Vector& X,
      DSecn = (nplan.Crossed(dns1v2)).Dot(nplan.Crossed(dns1u2))
            +  ncrossns2.Dot(nplan.Crossed(d2ns1uv2));
      grosterme  = (3*uterm*vterm*carre-DSecn)*cube;
-     uterm *= -cube; //et seulement maintenant
+     uterm *= -cube; //and only now
      vterm *= -cube;
        
      p1 = nplan.Dot(dns1u2);
@@ -616,8 +611,8 @@ Standard_Boolean BlendFunc_EvolRad::ComputeValues(const math_Vector& X,
      D2EDX2(3,4,3) = D2EDX2(3,3,4) = resul.Y();
      D2EDX2(4,4,3) = D2EDX2(4,3,4) = resul.Z();    
 
-     // Derivee double par rapport a v2       
-       // Derivation de la norme
+     // Derived double compared to v2       
+       // Derived from the norm
      d2ns1v2.SetLinearForm(1, d1u2.Crossed(d3v2),
                           2, d2uv2.Crossed(d2v2),
                           1, d3uvv2.Crossed(d1v2));
@@ -644,7 +639,7 @@ Standard_Boolean BlendFunc_EvolRad::ComputeValues(const math_Vector& X,
 
      if (byParam) {
        Standard_Real tterm;
-        //  ---------- Derivation double en t, X --------------------------
+        //  ---------- Double Derivation on t, X --------------------------
        D2EDXDT(1,1) = dnplan.Dot(d1u1)/2;
        D2EDXDT(1,2) = dnplan.Dot(d1v1)/2;
        D2EDXDT(1,3) = dnplan.Dot(d1u2)/2;
@@ -652,10 +647,10 @@ Standard_Boolean BlendFunc_EvolRad::ComputeValues(const math_Vector& X,
 
        carre = invnorm1*invnorm1;
        cube = carre*invnorm1;
-       //--> Derivee par rapport a u1 et t
+       //--> Derived compared to u1 and t
        tterm =  ncrossns1.Dot(dnplan.Crossed(nsurf1));
        smallterm  = - tterm*cube;
-       // Derivation de la norme
+       // Derived from the norm
        uterm =  ncrossns1.Dot(nplan. Crossed(dns1u1));
        DSecn = (nplan.Crossed(dns1u1)).Dot(dnplan.Crossed(nsurf1))
              + ncrossns1.Dot(dnplan.Crossed(dns1u1));
@@ -680,8 +675,8 @@ Standard_Boolean BlendFunc_EvolRad::ComputeValues(const math_Vector& X,
        D2EDXDT(3,1) = resul.Y();
        D2EDXDT(4,1) = resul.Z();
 
-       //--> Derivee par rapport a v1 et t
-       // Derivation de la norme
+       //--> Derived compared to v1 and t
+       // Derived from the norm
        uterm =  ncrossns1.Dot(nplan. Crossed(dns1v1));
        DSecn = (nplan. Crossed(dns1v1)).Dot(dnplan.Crossed(nsurf1))
              + ncrossns1.Dot(dnplan.Crossed(dns1v1));
@@ -707,10 +702,10 @@ Standard_Boolean BlendFunc_EvolRad::ComputeValues(const math_Vector& X,
 
        carre = invnorm2*invnorm2;
        cube = carre*invnorm2;
-       //--> Derivee par rapport a u2 et t
+       //--> Derived compared to u2 and t
        tterm =  ncrossns2.Dot(dnplan.Crossed(nsurf2));
        smallterm = -tterm*cube;
-       // Derivation de la norme
+       // Derived from the norm
        uterm =  ncrossns2.Dot(nplan. Crossed(dns1u2));
        DSecn = (nplan. Crossed(dns1u2)).Dot(dnplan.Crossed(nsurf2))
             + ncrossns2.Dot(dnplan.Crossed(dns1u2));
@@ -735,8 +730,8 @@ Standard_Boolean BlendFunc_EvolRad::ComputeValues(const math_Vector& X,
        D2EDXDT(3,3) = resul.Y();
        D2EDXDT(4,3) = resul.Z();
 
-       //--> Derivee par rapport a v2 et t
-       // Derivation de la norme
+       //--> Derived compared to v2 and t
+       // Derived from the norm
        uterm =  ncrossns2.Dot(nplan. Crossed(dns1v2));
        DSecn = (nplan.Crossed(dns1v2)).Dot(dnplan.Crossed(nsurf2))
             +  ncrossns2.Dot(dnplan.Crossed(dns1v2)); 
@@ -762,11 +757,11 @@ Standard_Boolean BlendFunc_EvolRad::ComputeValues(const math_Vector& X,
        D2EDXDT(4,4) = resul.Z();     
 
 
-        //  ---------- Derivation double en t -----------------------------
-    // Derivee de n1 par rapport a w
+        //  ---------- Double derivation on t -----------------------------
+    // Derived from n1 compared to w
        carre = invnorm1*invnorm1;
        cube = carre*invnorm1;
-       // Derivation de la norme
+       // Derived from the norm
        DPrim =  ncrossns1.Dot(dnplan.Crossed(nsurf1));
        smallterm = - 2*DPrim*cube;
        DSecn     = (dnplan.Crossed(nsurf1)).SquareMagnitude()
@@ -785,10 +780,10 @@ Standard_Boolean BlendFunc_EvolRad::ComputeValues(const math_Vector& X,
                             ndotns1*invnorm1,   d2nplan);
        d2n1w += temp;
   
-     // Derivee de n2 par rapport a w
+     // Derived from n2 compared to w
        carre = invnorm2*invnorm2;
        cube = carre*invnorm2;
-       // Derivation de la norme
+       // Derived from the norm
        DPrim =  ncrossns2.Dot(dnplan.Crossed(nsurf2));
        smallterm = - 2*DPrim*cube;
        DSecn     = (dnplan.Crossed(nsurf2)).SquareMagnitude()
@@ -840,8 +835,8 @@ void BlendFunc_EvolRad::Set(const Standard_Real Param)
 
 //=======================================================================
 //function : Set
-//purpose  : Segmente la courbe a sa partie utile.
-//           La precision est prise arbitrairement petite !?
+//purpose  : Segments curve in its useful part.
+//           Small precision is taken at random
 //=======================================================================
 
 void BlendFunc_EvolRad::Set(const Standard_Real First,
@@ -912,7 +907,7 @@ Standard_Boolean BlendFunc_EvolRad::IsSolution(const math_Vector& Sol,
   if (Abs(E(1)) <= Tol &&
       E(2)*E(2) + E(3)*E(3) +  E(4)*E(4) <= Tol*Tol) { 
 
-    // on recopie localement ns1, ns2, np afin de ne pas ecraser les champs !
+    // ns1, ns2, np are copied locally to avoid crushing the fields !
     gp_Vec ns1, ns2, np;
     ns1 = nsurf1;
     ns2 = nsurf2;
@@ -920,13 +915,13 @@ Standard_Boolean BlendFunc_EvolRad::IsSolution(const math_Vector& Sol,
 
     norm = nplan.Crossed(ns1).Magnitude();
     if (norm < Eps)  {
-      norm = 1; // Insufisant, mais il ne faut pas planter
+      norm = 1; // Unsatisfactory, but it is not necessary to stop
     }    
     ns1.SetLinearForm(nplan.Dot(ns1)/norm,nplan, -1./norm, ns1);
 
     norm = nplan.Crossed(ns2).Magnitude();
     if (norm < Eps)  {
-      norm = 1; // Insufisant, mais il ne faut pas planter
+      norm = 1; // Unsatisfactory, but it is not necessary to stop
     }
     ns2.SetLinearForm(nplan.Dot(ns2)/norm,nplan, -1./norm, ns2);     
 
@@ -957,7 +952,7 @@ Standard_Boolean BlendFunc_EvolRad::IsSolution(const math_Vector& Sol,
     else {
       istangent = Standard_True;
     }
-    // mise a jour de maxang
+    // update of maxang
 
     if (sg1 > 0.) { // sg1*ray
       ns1.Reverse();
@@ -968,12 +963,12 @@ Standard_Boolean BlendFunc_EvolRad::IsSolution(const math_Vector& Sol,
     Cosa = ns1.Dot(ns2);
     Sina = nplan.Dot(ns1.Crossed(ns2));
     if (choix%2 != 0) {
-      Sina = -Sina;  //nplan est change en -nplan
+      Sina = -Sina;  //nplan is changed into -nplan
     }
 
     if(Cosa > 1.) {Cosa = 1.; Sina = 0.;}
     Angle = ACos(Cosa);
-    // Recadrage sur ]-pi/2, 3pi/2]
+    // Reframing on ]-pi/2, 3pi/2]
     if (Sina <0.) {
       if (Cosa > 0.) Angle = -Angle;
       else           Angle =  2.*PI - Angle;
@@ -1147,13 +1142,13 @@ void BlendFunc_EvolRad::Section(const Standard_Real Param,
   Standard_Real  norm1;
   norm1 = nplan.Crossed(ns1).Magnitude();
   if (norm1 < Eps)  {
-    norm1 = 1; // Insufisant, mais il ne faut pas planter
+    norm1 = 1; // Unsatisfactory, but it is not necessary to stop
   }  
   ns1.SetLinearForm(nplan.Dot(ns1)/norm1,nplan, -1./norm1,ns1);
 
   Center.SetXYZ(pts1.XYZ()+sg1*ray*ns1.XYZ());
 
-// on oriente ns1 du centre vers pts1 
+// ns1 is oriented from the center to pts1 
   if (sg1 > 0.) {
     ns1.Reverse();
   }
@@ -1164,7 +1159,7 @@ void BlendFunc_EvolRad::Section(const Standard_Real Param,
   C.SetPosition(gp_Ax2(Center,np,ns1));
   Pdeb = 0.;
   Pfin = ElCLib::Parameter(C,pts2);
-  // Test des angles negatif et quasi null : Cas Singulier
+  // Test of negative and almost null angles : Single Case
   if (Pfin>1.5*PI) {
     np.Reverse();
     C.SetPosition(gp_Ax2(Center,np,ns1));
@@ -1353,7 +1348,7 @@ void BlendFunc_EvolRad::GetShape (Standard_Integer& NbPoles,
 
 //=======================================================================
 //function : GetTolerance
-//purpose  : Determine les Tolerance a utiliser dans les approximations.
+//purpose  : Determine the Tolerance to be used in approximations.
 //=======================================================================
 void BlendFunc_EvolRad::GetTolerance(const Standard_Real BoundTol, 
                                      const Standard_Real SurfTol, 
@@ -1362,7 +1357,7 @@ void BlendFunc_EvolRad::GetTolerance(const Standard_Real BoundTol,
                                      math_Vector& Tol1d) const
 {
  Standard_Integer low = Tol3d.Lower() , up=Tol3d.Upper();
- Standard_Real rayon = lengthmin/maxang; // on deduit un rayon
+ Standard_Real rayon = lengthmin/maxang; // a radius is subtracted
  Standard_Real Tol;
  Tol= GeomFill::GetTolerance(myTConv, maxang, rayon,
                              AngleTol, SurfTol);
@@ -1418,11 +1413,11 @@ void BlendFunc_EvolRad::Section(const Blend_Point& P,
   P.ParametersOnS1(X(1), X(2));
   P.ParametersOnS2(X(3), X(4));
 
-  // Calcul et stokage de la distmin
+  // Calculation and storage of distmin
   Ok = ComputeValues(X, 0, Standard_True, prm);
   distmin = Min (distmin, pts1.Distance(pts2));
 
-  // on recopie localement ns1, ns2, np afin de ne pas ecraser les champs !
+  // ns1, ns2, np are copied locally to avoid crashing the fields !
   ns1 = nsurf1;
   ns2 = nsurf2;
   np = nplan;
@@ -1443,13 +1438,13 @@ void BlendFunc_EvolRad::Section(const Blend_Point& P,
   norm1 = nplan.Crossed(ns1).Magnitude();
   norm2 = nplan.Crossed(ns2).Magnitude();
   if (norm1 < Eps) {
-    norm1 = 1; // Insufisant, mais il ne faut pas planter
+    norm1 = 1; // Unsatisfactory, but it is not necessary to stop
 #if DEB
     cout << " EvolRad : Surface singuliere " << endl;
 #endif
   }
   if (norm2 < Eps) {
-    norm2 = 1; // Insufisant, mais il ne faut pas planter
+    norm2 = 1; // Unsatisfactory, but it is not necessary to stop
 #if DEB
     cout << " EvolRad : Surface singuliere " << endl;
 #endif
@@ -1461,8 +1456,8 @@ void BlendFunc_EvolRad::Section(const Blend_Point& P,
   Center.SetXYZ(pts1.XYZ()+sg1*ray*ns1.XYZ());
 
 
-// on oriente ns1 (resp. ns2) du centre vers pts1 (resp. pts2),
-// et on rend direct le triedre ns1,ns2,nplan.
+// ns1 (resp. ns2) is oriented from center to pts1 (resp. pts2),
+// and the trihedron ns1,ns2,nplan is made direct.
 
   if (sg1 > 0.) {
     ns1.Reverse();
@@ -1509,11 +1504,11 @@ Standard_Boolean BlendFunc_EvolRad::Section
   P.ParametersOnS1(sol(1),sol(2));
   P.ParametersOnS2(sol(3),sol(4));
 
-  // Calculs des equations
+  // Calculation of equations
   ComputeValues(sol, 1, Standard_True, prm);
   distmin = Min (distmin, pts1.Distance(pts2));
 
-  // on recopie localement ns1, ns2, np afin de ne pas ecraser les champs !
+  // ns1, ns2, np are copied locally to avoid crashing fields !
   ns1 = nsurf1;
   ns2 = nsurf2;
   np = nplan;
@@ -1521,7 +1516,7 @@ Standard_Boolean BlendFunc_EvolRad::Section
   rayprim = dray;
 
   if ( ! pts1.IsEqual(pts2, 1.e-4)) {  
-    // Calcul des derives  Traitement Normal
+    // Calculation of derived  Normal processing
     math_Gauss Resol(DEDX, 1.e-9);
 
     if (Resol.IsDone()) {    
@@ -1549,7 +1544,7 @@ Standard_Boolean BlendFunc_EvolRad::Section
   }
 
 
-  // Les poles 2d  
+  // Tops 2D  
   Poles2d(Poles2d.Lower()).SetCoord(sol(1),sol(2));
   Poles2d(Poles2d.Upper()).SetCoord(sol(3),sol(4));
   if (!istgt) {
@@ -1557,7 +1552,7 @@ Standard_Boolean BlendFunc_EvolRad::Section
     DPoles2d(Poles2d.Upper()).SetCoord(secmember(3),secmember(4));
   }
 
-  // on traite le cas linear...
+  // the linear case is processed...
   if (mySShape == BlendFunc_Linear) {
     Poles(low) = pts1;
     Poles(upp) = pts2;
@@ -1572,17 +1567,17 @@ Standard_Boolean BlendFunc_EvolRad::Section
     return (!istgt);
   }
 
-  // Cas du cercle
+  // Case of the circle
   norm1 = nplan.Crossed(ns1).Magnitude();
   norm2 = nplan.Crossed(ns2).Magnitude();
   if (norm1 < Eps)  {
-    norm1 = 1; // Insufisant, mais il ne faut pas planter
+    norm1 = 1; // Unsatisfactory, but it is not necessary to stop
 #if DEB
     cout << " EvolRad : Surface singuliere " << endl;
 #endif
   }
   if (norm2 < Eps) {
-    norm2 = 1; // Insufisant, mais il ne faut pas planter
+    norm2 = 1; // Unsatisfactory, but it is not necessary to stop
 #if DEB
     cout << " EvolRad : Surface singuliere " << endl;
 #endif
@@ -1598,8 +1593,8 @@ Standard_Boolean BlendFunc_EvolRad::Section
                      tg1);
   }
 
-  // On oriente ns1 du centre vers pts1, et ns2 du centre vers pts2
-  // et on rend le triedre ns1,ns2,nplan direct
+  // ns1 is oriented from center to pts1, and  ns2 from center to pts2
+  // and the trihedron ns1,ns2,nplan is made direct
 
   if (sg1 > 0.) {
     ns1.Reverse();
@@ -1618,7 +1613,7 @@ Standard_Boolean BlendFunc_EvolRad::Section
     dnp.Reverse();
   }
   
-  if (ray < 0.) { // pour eviter la connerie Abs(dray) qques lignes plus bas
+  if (ray < 0.) { // to avoid Abs(dray) some lines below
     rayprim = -rayprim;
   }
 
@@ -1818,7 +1813,7 @@ Standard_Boolean BlendFunc_EvolRad::Section
 #endif
 */
 
-  // on recopie localement ns1, ns2, np afin de ne pas ecraser les champs !
+  // ns1, ns2, np are copied locally to avoid crashing the fields
   ns1 = nsurf1;
   ns2 = nsurf2;
   np  = nplan;
@@ -1828,8 +1823,8 @@ Standard_Boolean BlendFunc_EvolRad::Section
   raysecn = d2ray;
 
   if ( ! pts1.IsEqual(pts2, 1.e-4)) {
-    math_Gauss Resol(DEDX, 1.e-9); // !Tol a affiner !!!!! 
-    // Calcul des derives Traitement Normal
+    math_Gauss Resol(DEDX, 1.e-9); // Tolerance to precise 
+    // Calculation of derived Normal Processing
     if (Resol.IsDone()) {  
       Resol.Solve(-DEDT, sol);
       D2EDX2.Multiply(sol, D2DXdSdt);    
@@ -1889,7 +1884,7 @@ Standard_Boolean BlendFunc_EvolRad::Section
     d2norm2w.SetLinearForm(secmember(3),dndu2, secmember(4),dndv2, temp);
   }
 
-  // Les poles 2d  
+  // Tops 2d  
   Poles2d(Poles2d.Lower()).SetCoord(X(1),X(2));
   Poles2d(Poles2d.Upper()).SetCoord(X(3),X(4));
   if (!istgt) {
@@ -1899,7 +1894,7 @@ Standard_Boolean BlendFunc_EvolRad::Section
     D2Poles2d(Poles2d.Upper()).SetCoord(secmember(3), secmember(4));    
   }
 
-  // on traite le cas linear...
+  // the linear is processed...
   if (mySShape == BlendFunc_Linear) {
     Poles(low) = pts1;
     Poles(upp) = pts2;
@@ -1918,17 +1913,17 @@ Standard_Boolean BlendFunc_EvolRad::Section
     return (!istgt);
   }
 
-  // Cas du cercle
+  // Case of the circle
   norm1 = nplan.Crossed(ns1).Magnitude();
   norm2 = nplan.Crossed(ns2).Magnitude();
   if (norm1 < Eps)  {
-    norm1 = 1; // Insufisant, mais il ne faut pas planter
+    norm1 = 1; // Unsatisfactory, but it is not necessary to stop
 #if DEB
     cout << " EvolRad : Surface singuliere " << endl;
 #endif
   }
   if (norm2 < Eps)  {
-    norm2 = 1; // Insufisant, mais il ne faut pas planter
+    norm2 = 1; // Unsatisfactory, but it is not necessary to stop
 #if DEB
     cout << " EvolRad : Surface singuliere " << endl;
 #endif
@@ -1948,8 +1943,8 @@ Standard_Boolean BlendFunc_EvolRad::Section
     dtgc += dtg1;
   }
 
-  // On oriente ns1 du centre vers pts1, et ns2 du centre vers pts2
-  // et on rend le triedre ns1,ns2,nplan direct
+  // ns1 is oriented from the center to pts1, and ns2 from the center to pts2
+  // and the trihedron ns1,ns2,nplan is made direct
 
   if (sg1 > 0.) {
     ns1.Reverse();
@@ -1971,7 +1966,7 @@ Standard_Boolean BlendFunc_EvolRad::Section
     d2np.Reverse();
   }
    
-  if (ray < 0.) { // pour eviter la connerie Abs(dray) qques lignes plus bas
+  if (ray < 0.) { // to avoid Abs(dray) several lines below
     rayprim = -rayprim;
     raysecn = -raysecn;
   }
index a7ceba6..05d3088 100755 (executable)
@@ -372,7 +372,7 @@ TopoDS_Vertex ChFi2d_Builder::RemoveFillet(const TopoDS_Edge& Fillet)
   if (status == ChFi2d_ConnexionError) return commonVertex;
 
   TopoDS_Edge basisEdge1, basisEdge2, E1, E2;
-  // E1 and E2 are the adjacentes edges to Fillet
+  // E1 and E2 are the adjacent edges to Fillet
 
   if (adjEdge1.IsSame(Fillet)) E1 = adjEdge2;
   else E1 = adjEdge1;
@@ -429,7 +429,7 @@ TopoDS_Vertex ChFi2d_Builder::RemoveFillet(const TopoDS_Edge& Fillet)
       newEdge1.Location(E1.Location());
     } // if (firstVertex ...
     else if (lastVertex.IsSame(connectionE1Fillet)) { 
-//  syntaxe invalide sur NT
+//  syntax wrong on NT
 //      const Handle(Geom_Curve)& curve = 
 //     BRep_Tool::Curve(E1, loc, first, last);   
       Handle(Geom_Curve) curve = BRep_Tool::Curve(E1, loc, first, last);   
@@ -452,7 +452,7 @@ TopoDS_Vertex ChFi2d_Builder::RemoveFillet(const TopoDS_Edge& Fillet)
   else {
     // It means the edge support one fillet on each end.
     if (firstVertex.IsSame(connectionE2Fillet)) {
-//  syntaxe invalide sur NT
+//  syntax wrong on NT
 //      const Handle(Geom_Curve)& curve = 
 //     BRep_Tool::Curve(E2, loc, first, last);   
       Handle(Geom_Curve) curve = BRep_Tool::Curve(E2, loc, first, last);
@@ -462,7 +462,7 @@ TopoDS_Vertex ChFi2d_Builder::RemoveFillet(const TopoDS_Edge& Fillet)
       newEdge2.Location(E2.Location());
     } // if (firstVertex ...
     else if (lastVertex.IsSame(connectionE2Fillet)) {
-//  syntaxe invalide sur NT
+//  syntax wrong on NT
 //      const Handle(Geom_Curve)& curve = 
 //     BRep_Tool::Curve(E2, loc, first, last);   
       Handle(Geom_Curve) curve = BRep_Tool::Curve(E2, loc, first, last);
@@ -650,7 +650,7 @@ TopoDS_Edge ChFi2d_Builder::BuildNewEdge(const TopoDS_Edge& E1,
   gp_Pnt Pnew = BRep_Tool::Pnt(NewExtr);
   Standard_Boolean PonctualEdge = Standard_False;
   Standard_Real Tol = Precision::Confusion();
-//  syntaxe invalide sur NT
+//  syntax wrong on NT
 //      const Handle(Geom_Curve)& curve = 
 //     BRep_Tool::Curve(E1, first, last);   
   Handle(Geom_Curve) curve = BRep_Tool::Curve(E1, first, last);   
@@ -765,7 +765,7 @@ TopoDS_Edge ChFi2d_Builder::BuildFilletEdge(const TopoDS_Vertex& V,
   TopoDS_Vertex V4 = TopExp::LastVertex(E2);
 
   //========================================================================
-  //    On a trouve un premier arc.                                        +
+  //    The first arc is found.                                        +
   //========================================================================
 
   TopAbs_Orientation O1,O2;
@@ -783,7 +783,7 @@ TopoDS_Edge ChFi2d_Builder::BuildFilletEdge(const TopoDS_Vertex& V,
   Standard_Real param1,param2,param3,param4;
   
   //========================================================================
-  //    Sauvegarde des parties non modifiees sur les aretes touchees.      +
+  //    Save non-modified parts of edges concerned.      +
   //========================================================================
 
   if (V1.IsSame(V)) {
@@ -808,7 +808,7 @@ TopoDS_Edge ChFi2d_Builder::BuildFilletEdge(const TopoDS_Vertex& V,
   }
   
   //========================================================================
-  //    Recuperation des supports geometriques.                            +
+  //    Restore geometric supports.                            +
   //========================================================================
 
   Handle(Geom2d_Curve) C1,C2; 
@@ -818,7 +818,7 @@ TopoDS_Edge ChFi2d_Builder::BuildFilletEdge(const TopoDS_Vertex& V,
   C2 = BRep_Tool::CurveOnSurface(E2,newFace,ufirst2,ulast2);
 
   //========================================================================
-  //   Determination du cote pour le conge.                                +
+  //   Determination of the face for fillet.                                +
   //========================================================================
 
   gp_Pnt2d p;
@@ -865,9 +865,9 @@ TopoDS_Edge ChFi2d_Builder::BuildFilletEdge(const TopoDS_Vertex& V,
   Ve3 = Ve1;
   Ve4 = Ve2;
 
-  // traitement des point de tangence ou de rebroussement
+  // processing of tangency or downcast point 
   if (Ve1.IsParallel(Ve2,Precision::Angular())) {
-    // Ve1 et Ve2 sont paralleles : on met cross a 0
+    // Ve1 and Ve2 are parallel : cross at 0
     cross = 0.;
     if (param1<param2) {
       Ve3 = -Ve1;
@@ -877,11 +877,11 @@ TopoDS_Edge ChFi2d_Builder::BuildFilletEdge(const TopoDS_Vertex& V,
     }
 
     if (! Ve4.IsOpposite(Ve3,Precision::Angular())) {
-      // Il y a un vrai point de tangence, on arrete
+      // There is a true tangency point and the calculation is stopped
       status = ChFi2d_TangencyError;
       return filletEdge;
     }
-      // Sinon, c'est un point de rebroussement, on continue
+      // Otherwise this is a downcast point, and the calculation is continued
   }
 
   GccEnt_Position Qual1,Qual2;
@@ -973,7 +973,7 @@ TopoDS_Edge ChFi2d_Builder::BuildFilletEdge(const TopoDS_Vertex& V,
        Fillet.Tangency2(nsol,PPU1,PPU2,Ptg2);
         dist = Ptg2.Distance(p);
         inside = (PPU2<param3 && PPU2>param4) || (PPU2<param4 && PPU2>param3);
-        //  cas de l'arc de cercle passant sur la couture
+        //  case of arc of circle passing on the sewing
         if ( ( basisC2->DynamicType() == STANDARD_TYPE(Geom2d_Circle) ) && 
             ( (2*PI<param3 && 2*PI>param4) || (2*PI<param4 && 2*PI>param3) ) ) {
         //  cas param3<param4
@@ -999,14 +999,14 @@ TopoDS_Edge ChFi2d_Builder::BuildFilletEdge(const TopoDS_Vertex& V,
     Fillet.Tangency1(numsol,U1,U2,Ptg1);
     Fillet.Tangency2(numsol,Vv1,Vv2,Ptg2);
 
-    // verification de la validite des parametres
+    // check the validity of parameters
     inside = (U2<param1 && U2>param2) || (U2<param2 && U2>param1);
     if ( (basisC1->DynamicType() == STANDARD_TYPE(Geom2d_Circle))
       &&  ( (2*PI<param1 && 2*PI>param2) || (2*PI<param2 && 2*PI>param1) ) ) {
-      // arc de cercle contenant l'origine du cercle
-      //  cas param1<param2
+      // arc of circle containing the circle origin
+      //  case param1<param2
       inside = (param1<U2 && U2<2*PI) || (0<=U2 && U2<param2-2*PI);
-      //  cas param2<param1
+      //  case param2<param1
       inside = inside || (param2<U2 && U2<2*PI) || (0<=U2 && U2<param1-2*PI);
     }
     if (!inside) {
@@ -1017,7 +1017,7 @@ TopoDS_Edge ChFi2d_Builder::BuildFilletEdge(const TopoDS_Vertex& V,
     inside = (Vv2<param3 && Vv2>param4) || (Vv2<param4 && Vv2>param3);
     if ( (basisC2->DynamicType() == STANDARD_TYPE(Geom2d_Circle))
       &&  ( (2*PI<param3 && 2*PI>param4) || (2*PI<param4 && 2*PI>param3) ) ) {
-      // arc de cercle contenant l'origine du cercle
+    // arc of circle containing the circle origin
       //  cas param3<param4
       inside = (param3<Vv2 && Vv2<2*PI) || (0<=Vv2 && Vv2<param4-2*PI);
       //  cas param4<param3
@@ -1049,7 +1049,7 @@ TopoDS_Edge ChFi2d_Builder::BuildFilletEdge(const TopoDS_Vertex& V,
     }
 
     //=======================================================================
-    //   Mise a jour des sommets du conge.                                  +
+    //   Update tops of the fillet.                                  +
     //=======================================================================
     gp_Pnt Pntbid;
     gp_Pnt2d sommet;
index cd03940..668ab72 100755 (executable)
@@ -22,8 +22,8 @@
 
 //=======================================================================
 //function : ConcaveSide
-//purpose  : calcule le cote concave au voisinage de la frontiere
-//           de 2 faces.
+//purpose  : calculate the concave face at the neighborhood of the border of
+//           2 faces.
 //=======================================================================
 
 Standard_Integer ChFi3d::ConcaveSide(const BRepAdaptor_Surface& S1, 
@@ -111,9 +111,9 @@ Standard_Integer ChFi3d::ConcaveSide(const BRepAdaptor_Surface& S1,
     }
   }
   else { 
-    //les faces sont localement tangentes on bidouille!!
+    //the faces are locally tangent - this is fake!
     if(dint1.Dot(dint2) < 0.){
-      //ici c'est une regularite oubliee
+      //This is a forgotten regularity
       gp_Vec DDU, DDV, DDUV;
       S1.D2(p2d1.X(),p2d1.Y(),pt1,DU1,DV1,DDU,DDV,DDUV);
       DU1 += ( DU1 * dint1 < 0) ? -DDU : DDU;
@@ -143,15 +143,15 @@ Standard_Integer ChFi3d::ConcaveSide(const BRepAdaptor_Surface& S1,
       }
       else {
 #ifdef DEB
-        cout<<"ConcaveSide : pas de cote concave"<<endl;
+        cout<<"ConcaveSide : no concave face"<<endl;
 #endif
-       //ce 10 montre que la face en bout est dans le prolongement de l'une des deux faces d'appui
+       //This 10 shows that the face at end is in the extension of one of two base faces
        return 10;
       }
     }
     else {
-      //ici ca rebrousse, on prend des points dans les faces
-      //ni trop pres ni trop loin, comme on peut.
+      //here it turns back, the points are taken in faces
+      //neither too close nor too far as much as possible.
       Standard_Real u,v;
 #ifdef DEB
 //      Standard_Real deport = 1000*BRep_Tool::Tolerance(E);
index 39dbc04..0c92d32 100755 (executable)
@@ -66,7 +66,7 @@ raises
 
 is
 
-    -- Construction et donnees generales.
+    -- Construction and general data.
     -------------------------------------
 
     Delete(me:out) is virtual;
@@ -84,7 +84,7 @@ is
                  AngularTolerance   : Real);
 
 
-    -- Acquisition et interrogation concernant les trajets.
+    -- Acquisition and questioning on trajectories.
     -------------------------------------------------------
 
     Remove(me : in out; E : Edge from TopoDS) 
@@ -166,20 +166,19 @@ is
     is static; 
     
     
-    -- Le calcul et la recuperation des resultats.
+    -- Calculation and the restoration of results.
     ----------------------------------------------
 
     Compute(me : in out)
-    ---Purpose: calculation general 
-    --          -geometrie sur l ensemble des aretes,
-    --          -reconstruction topologique
+    ---Purpose: general calculation of geometry on all edges,
+    --          topologic reconstruction.
     is static;
 
     IsDone(me) returns Boolean from Standard is static;
     ---Purpose: returns True if the computation  is  success
     
     Shape(me) returns Shape from TopoDS 
-    ---Purpose: if (Isdone()) rend le resultat.
+    ---Purpose: if (Isdone()) makes the result.
     raises NoSuchObject from Standard
     ---Purpose: if (!Isdone())
     is static;
@@ -486,9 +485,9 @@ is
                Intf,Intl   : in out Boolean from Standard)
 
     returns Boolean from Standard is static;   
-    ---Purpose: Methode, implementee dans les heritants, calculant
-    --          les elements de construction de la surface (conge
-    --          ou chanfrein). 
+    ---Purpose: Method, implemented in the inheritants, calculates
+    --          the elements of construction of the surface (fillet or
+    --          chamfer). 
   
     CallPerformSurf(me          : in out;  
                Stripe          : in out Stripe from ChFiDS;
@@ -535,9 +534,9 @@ is
                 Intf,Intl       : in out Boolean from Standard)
     returns  Boolean
     is deferred protected;     
-    ---Purpose: Methode, implementee dans les heritants, calculant
-    --          les elements de construction de la surface (conge
-    --          ou chanfrein).  
+    ---Purpose: Method, implemented in the inheritants, calculating
+    --          elements of construction of the surface (fillet or
+    --          chamfer).  
 
     PerformSurf(me                   : in out; 
                 Data                 : out SequenceOfSurfData from ChFiDS;
@@ -856,7 +855,7 @@ is
                Forward          : Boolean from Standard;
                 RecP1, RecRst1   : Boolean from Standard;
                 RecP2, RecRst2   : Boolean from Standard)
-    ---Purpose: Calculated a Line of contact edge/edge.
+    ---Purpose: Calculates a Line of contact edge/edge.
     returns Boolean from Standard is static protected;
 
 
@@ -917,57 +916,57 @@ is
 
 fields
 
--- La piece d entree
+-- Input part
 myShape        : Shape from TopoDS;
 
--- Donnees numeriques (tolerances) REMARQUE : il faut virer les tol2d!!!
-angular        : Real from Standard;              -- tangence entre aretes
-tolappangle    : Real from Standard is protected; -- approx angulaire      
+-- Numeric data (tolerances) NOTE : suspend tol2d!!!
+angular        : Real from Standard;              -- tangency of edges
+tolappangle    : Real from Standard is protected; -- angular approximation      
 tolesp         : Real from Standard is protected; -- confusion 3d          : def 1.e-4
 tol2d          : Real from Standard is protected; -- confusion 2d          : def 1.e-5
 tolapp3d       : Real from Standard is protected; -- approx 3d             : def 1.e-4
 tolapp2d       : Real from Standard is protected; -- approx 2d             : def 1.e-5
-fleche         : Real from Standard is protected; -- fleche du walking     : def 1.e-6
+fleche         : Real from Standard is protected; -- vector of walking     : def 1.e-6
 
--- Continuite pour la geometrie approximee
+-- Continuity for the approximated geometry
 myConti        : Shape from GeomAbs is protected;
 
--- Maps de pointeurs arrieres pour travailler
+-- Maps of back-pointers to work
 myEFMap        : Map from ChFiDS is protected;
 myESoMap       : Map from ChFiDS is protected;
 myEShMap       : Map from ChFiDS is protected;
 myVFMap        : Map from C