]> OCCT Git - occt-copy.git/commitdiff
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 d5be231255f6d99a70f22bf009196ef56dd4e3f8..33794528c5425cd87f737ce9ea544614b124c968 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 cot
-      //  -> ils sont != des points d'intersection si les 
-      //     intersection sont en dehors des limites des edges
+      // calculate attachments of the fac
+      //  -> 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 723d9e8315269517f14d87baaa5683a94ed85a6a..83fa5dacb12c9221549f03066bc32dea11995602 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 fef91683fb7c8b0da66f1a4de6bb9fd3fe36adc7..71e3280e66518f0f734d10e1bd98e739003ae8db 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 26eb89c444d39f2bb16d0455e5f0d85562fcb569..4575599c94a317ec162492471a430ffa6e400bad 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 7ec038f9e9cda2fa14132f2836e174931012d25e..53962d471bf1eb2aa5a85a305138a5c132ac88f9 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 d8751ed453d5615daddd054e7f1b5e0fc8bb8cd7..009c3882622a6650d9298247a7742dc0c01f8f99 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 6c985fb7873fdbd7e300597e246f9fee9148ebad..04d1fc326258ff8b9181f72ab931080b9a930c7e 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 9378ce0935278c848d07a8f5aed2a37c25a9c8f2..9c5b3d8113e39511087a15017471cb0cb3ca304f 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 1255173dba311e63e12c59e68089969346b64a36..53c278b999a24a2a10d94f2074490c68767f0571 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 6203049fe0c0f847ee853691c3e71ce481f1122e..c4674d5b8599af7d28705c4bef67d613fdfb6dc6 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 559133b13aef727ad1dcbcbaada057c17f8b6dd1..0823bc05ec99d9079ccbdfa52168bd4b231ac53d 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 6b369d6d9762cb0d0400e8f0f072c1d1bc89cdef..8845051a6d0abe128b5f893dcd2989b9c06bab01 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 a6be2218c1801cb028584d1aeda6bf96517ff554..21c06ce5bbb9700f4c91eb849c99a683180fda1f 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 d1c926122896592e9892fe17c72eee683ed5badb..4e47fe794f3d4aec70ea4a52ad608e67208cbc89 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 c67e2154fb911671ed37caf5a8c02b67d56a22fe..63e6e8c5f42ee2883a704f6f152eefa8e714382b 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 73cf9d7c5b011c1bf53c7fdfaaed93296827be18..73258252da043422ca41d48d849f38b125b39703 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 bf909e68f570630dc9f9d7c1e05916facf62f2a8..a3db9b78ca99a71d06873f1c95f16ca44db6e55c 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 74376f50ccff9b7d26381b2f1cc5d07bd6e5baf3..7c3f35f3f8289eaa47aa014510c350e942dedb3a 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 b13c8a5700a15b2da15f538151629fb1d8016243..6106d5a4d12fb29cdaf6765f9f2c1f1109ffb2ec 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 80d1dadcdc2a208dc4eca8dfe52ac7b23c0b26b9..eff32ca614f1802ed88c75a0d6dbfb221e48fd45 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 vertexNT to each node
+                 {     // Associates vertexNT to each node
                    Graphic3d_Array1OfVertexNT Points(1,3);
                    Aspect_Array1OfEdge aretes(1,3);
 
index f1d2d727b9d8fd871eb7ea538a4acaeec75a6930..03c08ca4367a1b0864d71d393d67557ff7d75583 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 4a0d97a771d2f95d5560d996c5d30d8e52cb8cfc..6c255c89ac8cd8e8e8195284da4d8bfab8682dea 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 0eab5fa979b302b46c94fddfe417c2057164d591..0d2dd9fbb9feb3401710ce5cad56e8fba2e602f6 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 fe3564dd037908a31b992f198f0be545590d5c31..9e939529a3cc5e8adbc6677fffcb2c62a4150472 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 8bba669028639f3723e2a8f33a536d1e0b0f049d..fb42adaffe89d83917b3e0f7fb65a0b414d54530 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 28849f0c28d04b12f3bb9672e27946f8aadf697c..1d56a46d648b0e9f7666656a3f112a2a1e41044b 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 b331b594fd2b775ae1bfee8a74d6b83fce1c5c87..0200511224bd8dd4065427f53005b32362a3b7ba 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 604e574e7d72f89ce192d7b24e1ae8257b8a5cb1..8bf9c13ac144134558125cff1b302828ae72d59c 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 8fdec1aa98881fe6a8c97669e8599c30ba458442..461e9f0d49167fb5b48820c23de105f6c8a43d3a 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 19fb5d02e788bc4054b8a3c2039ea6d0a3f18371..8d6db066df77f1a58037a2d5713a0141956a951a 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 6bb9454bccf736202febabc54752b8a28df49003..c167c5869f7e98c4412433736445fc07e568a320 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 recuper
-    // des incoherences entre le parametre et sol dues au baillement.
+    // The section is recalculated by direct resolution, otherwis
+    // 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 0b89646cd4e74915c166db1ea645ade2d2e82fb2..1e8b0d193b65e018a3ab9157382d0a23151c590f 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 18413e7aeed942ad5fca88e419f37673a4201896..788909e2964e37642f47caf5bef17c7274cc3054 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 2726d6677d49c6b57b449f7ad9b6f09ad367261e..1e873d31bed05abe96c8c890a677b7d578e3bd8a 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 017760d0c3f610cf4d9859643a60c725b3ae5029..2321c44f7bdd9e514b8d6b51dc02f7dbce837cb0 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 1faf8348eee991462eeb2830cb1cec17b89c72e1..f686fffebca15c3ea8ca26894f6e3ec57dd58fd2 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 a7ceba64b71d29f3bf17eb8be03cde4b089f98bd..05d3088585aeaedd568c1bcf8bfa20c540a851cd 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 cd03940c6f11e9fac38449cb9470e6f2e458bf64..668ab722e44f365bdf2834f36fb1330b527ca11b 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 39dbc04b9884979e5688a29cf0b9fd43d5e78fa8..0c92d323d5e4234f1d0f64a4b2399993df79a7dd 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 ChFiDS is protected;
 myVEMap        : Map from ChFiDS is protected;
 
--- Les outils de stockage et de reconstruction
+-- Tools of storage and reconstruction
 myDS           : HDataStructure from TopOpeBRepDS is protected;
 myCoup         : HBuilder from TopOpeBRepBuild is protected;
 
--- Les outils de stockage interne
+-- Tools of internal storage
 myListStripe   : ListOfStripe from ChFiDS is protected;
 myVDataMap     : StripeMap from ChFiDS is protected;
 myRegul        : Regularities from ChFiDS is protected;
 
--- Les stripes dont le calcul a plante
+-- Stripes the calculation which of hangs
 badstripes     : ListOfStripe from ChFiDS is protected;
 
--- Les vertex au voisinage desquels la finition a plante
+-- Vertexes in the neighborhood which of the finition hangs
 badvertices    : ListOfShape from TopTools is protected;
 
--- donnees calculees pendant le compute pour l historique 
+-- Data calculated during the computation for the history 
 myGenerated    : ListOfShape from TopTools;
 myEVIMap       : DataMapOfShapeListOfInteger from TopTools is protected;
 
--- flag si tout s est bien passe
+-- flag if all has passed well
 done           : Boolean from Standard is protected;
 
--- le resultat
+-- result
 myShapeResult  : Shape from TopoDS;
 
--- flag si il y a un resultat partiel(badshape)
+-- flag there is partial result (badshape)
 hasresult      : Boolean from Standard is protected;
 
--- resultat partiel eventuel
+-- eventual partial result
 badShape       : Shape from TopoDS;
 
 
index b730f8b24ce10ffac0c2cca2e7de47c42703c57a..39892b33cf65db199e35583a537eb8b698df4fc5 100755 (executable)
@@ -57,7 +57,7 @@
 #ifdef DEB
 #include <OSD_Chronometer.hxx>
 
-// variables pour les performances 
+// variables for performances 
 
 
 OSD_Chronometer cl_total,cl_extent,cl_perfsetofsurf,cl_perffilletonvertex,
@@ -208,7 +208,7 @@ void  ChFi3d_Builder::Compute()
   TestTopOpe::Shapes(myShape,bids);
 #endif
   
-  // remplissage de myVDatatMap
+  // filling of myVDatatMap
   ChFiDS_ListIteratorOfListOfStripe itel;
   
   for (itel.Initialize(myListStripe);itel.More(); itel.Next()) {
@@ -221,7 +221,7 @@ void  ChFi3d_Builder::Compute()
     else if (itel.Value()->Spine()->LastStatus() == ChFiDS_FreeBoundary)
       ExtentOneCorner(itel.Value()->Spine()->LastVertex(),itel.Value());
   }
-  // preanalyse pour  evaluer les prolongements.
+  // preanalysis to evaluate the extensions.
   ExtentAnalyse();
   
   
@@ -230,7 +230,7 @@ void  ChFi3d_Builder::Compute()
   ChFi3d_InitChron(cl_perfsetofsurf);
 #endif
   
-  // Construction de la bande de conge sur chaque stripe.
+  // Construction of the stripe of fillet on each stripe.
   for (itel.Initialize(myListStripe);itel.More(); itel.Next()) {
     itel.Value()->Spine()->SetErrorStatus(ChFiDS_Ok);
     try {
@@ -257,7 +257,7 @@ void  ChFi3d_Builder::Compute()
   ChFi3d_InitChron(cl_perffilletonvertex);
 #endif 
   
-  //construire les conges sur chaque vertex +alimenter la Ds
+  //construct fillets on each vertex + feed the Ds
   if (done) {
    //Standard_Integer nbresult=0;
 //    for (Standard_Integer j=1;j<=myVDataMap.Extent();j++) {
@@ -351,8 +351,8 @@ void  ChFi3d_Builder::Compute()
     if (done) {
       BRep_Builder B1;
       CompleteDS(DStr,myShape);
-      //Update des tolerances sur vertex au max des aretes adjacentes ou
-      //Update des tolerances sur arete degeneree au max des vertex adjacents.
+      //Update tolerances on vertex to max adjacent edges or
+      //Update tolerances on degenerated edge to max of adjacent vertexes.
       TopOpeBRepDS_CurveExplorer cex(DStr);
       for(;cex.More();cex.Next()){
        TopOpeBRepDS_Curve& c = *((TopOpeBRepDS_Curve*)(void*)&(cex.Curve()));
@@ -421,7 +421,8 @@ void  ChFi3d_Builder::Compute()
          its = myCoup->Merged(curshape,TopAbs_IN);
        if(!its.More()) B1.Add(myShapeResult,curshape);
        else {
-         //Si l'ancien type est du Shape est un Shell, on mettre un Shell et non un Solid, Il reste neanmoins un pbleme pour compound de Shell ouvert.
+         //If the old type of Shape is Shell, Shell is placed instead of Solid, 
+          //However there is a problem for compound of open Shell.
          while (its.More()) {
            const TopAbs_ShapeEnum letype = curshape.ShapeType();
            if (letype == TopAbs_SHELL){
@@ -461,7 +462,7 @@ void  ChFi3d_Builder::Compute()
       ChFi3d_InitChron(cl_setregul);
 #endif
       
-      // On code les regularites apres coup.
+      // Regularities are coded after cutting.
       SetRegul();
       
       
@@ -475,7 +476,7 @@ void  ChFi3d_Builder::Compute()
 #endif
       
   
-  // affichage des temps pour les perfs 
+  // display of time for perfs 
   
 #ifdef DEB  
   cout<<endl; 
@@ -546,7 +547,7 @@ void  ChFi3d_Builder::Compute()
 
 //=======================================================================
 //function : PerformSingularCorner
-//purpose  : Charge le vertex et les aretes degeneree.
+//purpose  : Load vertex and degenerated edges.
 //=======================================================================
 
 void ChFi3d_Builder::PerformSingularCorner
@@ -565,17 +566,17 @@ void ChFi3d_Builder::PerformSingularCorner
 #endif
   for (It.Initialize(myVDataMap(Index)), i=0; It.More(); It.Next(),i++){
     stripe = It.Value(); 
-    // la SurfData en cause et ses CommonPoints,
+    // SurfData concerned and its CommonPoints,
     Standard_Integer sens = 0;
     Standard_Integer num = ChFi3d_IndexOfSurfData(Vtx,stripe,sens);
     Standard_Boolean isfirst = (sens == 1);
     Fd =  stripe->SetOfSurfData()->Sequence().Value(num);
     const ChFiDS_CommonPoint& CV1 = Fd->Vertex(isfirst,1);
     const ChFiDS_CommonPoint& CV2 = Fd->Vertex(isfirst,2);
-    // Est ce toujours degenere ?
+    // Is it always degenerated ?
     if ( CV1.Point().IsEqual( CV2.Point(), 0) ) { 
-      // si oui on stoke le vertex dans la stripe
-      // et on fabrique l'arete en bout
+      // if yes the vertex is stored in the stripe
+      // and the edge at end is created
       if (i==0) Ivtx = ChFi3d_IndexPointInDS(CV1, DStr);
       Standard_Real tolreached;
       Standard_Real Pardeb, Parfin; 
@@ -638,14 +639,14 @@ void ChFi3d_Builder::PerformFilletOnVertex
   for (It.Initialize(myVDataMap(Index)), i=0; It.More(); It.Next(),i++){
     stripe = It.Value(); 
     sp = stripe->Spine();
-    // la SurfData en cause et ses CommonPoints,
+    // SurfData and its CommonPoints,
     Standard_Integer sens = 0;
     Standard_Integer num = ChFi3d_IndexOfSurfData(Vtx,stripe,sens);
     isfirst = (sens == 1);
     Fd =  stripe->SetOfSurfData()->Sequence().Value(num);
     const ChFiDS_CommonPoint& CV1 = Fd->Vertex(isfirst,1);
     const ChFiDS_CommonPoint& CV2 = Fd->Vertex(isfirst,2);
-    // Est ce toujours degenere ?
+    // Is it always degenerated ?
     if ( CV1.Point().IsEqual( CV2.Point(), 0) )  
       nondegenere = Standard_False;
     else  toujoursdegenere = Standard_False;
@@ -671,7 +672,7 @@ void ChFi3d_Builder::PerformFilletOnVertex
   nba=nba/2;*/
   Standard_Integer nba = ChFi3d_NumberOfEdges(Vtx, myVEMap);
 
-  if (nondegenere) { // Traitement normal
+  if (nondegenere) { // Normal processing
     switch (i) {
     case 1 : 
       {
@@ -753,9 +754,9 @@ void ChFi3d_Builder::PerformFilletOnVertex
       }
     }
   }
-  else { // Traitement des cas singulier
+  else { // Single case processing
     if (toujoursdegenere) PerformSingularCorner(Index);
-    else                  PerformMoreThreeCorner(Index, i);//Derniere chance...
+    else                  PerformMoreThreeCorner(Index, i);//Last chance...
   }              
 }
 
index c32b57d1b401ef5cdd74cab65a6292a6ae92da8a..f7ed9a74527328f5909ee8bbef2c3456ed3b9b87 100755 (executable)
 
 #include <ChFi3d_Builder_0.hxx>
 
+//#define DRAW
+#ifdef DRAW
+#include <Draw_Appli.hxx>
+#include <Draw.hxx>
+#include <Draw_Marker3D.hxx>
+#include <Draw_Marker2D.hxx>
+#include <DrawTrSurf.hxx>
+#include <DBRep.hxx>
+static Standard_Integer NbSp = 1;
+static Standard_Integer NbelFa = 1;
+#endif
+
 #ifdef DEB
 #include <OSD_Chronometer.hxx>
 extern Standard_Boolean ChFi3d_GetcontextFORCEBLEND(); 
@@ -164,10 +176,6 @@ extern void ChFi3d_ResultChron(OSD_Chronometer & ch,Standard_Real& time);
 #include <GeomAdaptor_HCurve.hxx>
 #include <BRepAdaptor_HSurface.hxx>
 
-//=======================================================================
-//function : ChFi3d_InPeriod
-//purpose  : 
-//=======================================================================
 Standard_Real ChFi3d_InPeriod(const Standard_Real U, 
                               const Standard_Real UFirst, 
                               const Standard_Real ULast,
@@ -180,10 +188,12 @@ Standard_Real ChFi3d_InPeriod(const Standard_Real U,
   if ( u < UFirst) u = UFirst;
   return u;
 }
+
 //=======================================================================
-//function : Boite 
-//purpose  : Calcul des min/max uv du conge a intersecter.
+//function : Box 
+//purpose  : Calculation of min/max uv of the fillet to intersect.
 //=======================================================================
+
 void ChFi3d_Boite(const gp_Pnt2d& p1,const gp_Pnt2d& p2,
                   Standard_Real& mu,Standard_Real& Mu,
                   Standard_Real& mv,Standard_Real& Mv)
@@ -191,10 +201,12 @@ void ChFi3d_Boite(const gp_Pnt2d& p1,const gp_Pnt2d& p2,
   mu = Min(p1.X(),p2.X()); Mu = Max(p1.X(),p2.X());
   mv = Min(p1.Y(),p2.Y()); Mv = Max(p1.Y(),p2.Y());
 }
+
 //=======================================================================
-//function : Boite 
-//purpose  : Calcul des min/max uv du conge a intersecter.
+//function : Box
+//purpose  : Calculation of min/max uv of the fillet to intersect.
 //=======================================================================
+
 void ChFi3d_Boite(const gp_Pnt2d& p1,const gp_Pnt2d& p2,
                   const gp_Pnt2d& p3,const gp_Pnt2d& p4,
                   Standard_Real& Du,Standard_Real& Dv,
@@ -209,10 +221,12 @@ void ChFi3d_Boite(const gp_Pnt2d& p1,const gp_Pnt2d& p2,
   Du = Mu - mu;
   Dv = Mv - mv;
 }
+
 //=======================================================================
-//function : EnlargeBox et ses amis.
+//function : EnlargeBox and its friends.
 //purpose  : 
 //=======================================================================
+
 static Handle(Adaptor3d_HSurface) Geometry(TopOpeBRepDS_DataStructure& DStr,
                                            const Standard_Integer      ind)
 {
@@ -230,10 +244,7 @@ static Handle(Adaptor3d_HSurface) Geometry(TopOpeBRepDS_DataStructure& DStr,
     return new GeomAdaptor_HSurface(S);
   }
 }
-//=======================================================================
-//function : ChFi3d_SetPointTolerance
-//purpose  : 
-//=======================================================================
+
 void ChFi3d_SetPointTolerance(TopOpeBRepDS_DataStructure& DStr,
                               const Bnd_Box&              box,
                               const Standard_Integer      IP)
@@ -242,13 +253,10 @@ void ChFi3d_SetPointTolerance(TopOpeBRepDS_DataStructure& DStr,
   box.Get(a,b,c,d,e,f); 
   d-=a; e-=b; f-=c; 
   d*=d; e*=e; f*=f;
-  vtol = sqrt(d + e + f) * 1.5;// on prend un petit rab.
+  vtol = sqrt(d + e + f) * 1.5;
   DStr.ChangePoint(IP).Tolerance(vtol);
 }
-//=======================================================================
-//function : ChFi3d_EnlargeBox
-//purpose  : 
-//=======================================================================
+
 void ChFi3d_EnlargeBox(const Handle(Geom_Curve)& C,
                        const Standard_Real       wd,
                        const Standard_Real       wf,
@@ -258,10 +266,7 @@ void ChFi3d_EnlargeBox(const Handle(Geom_Curve)& C,
   box1.Add(C->Value(wd));
   box2.Add(C->Value(wf));
 }
-//=======================================================================
-//function : ChFi3d_EnlargeBox
-//purpose  : 
-//=======================================================================
+
 void ChFi3d_EnlargeBox(const Handle(Adaptor3d_HSurface)& S,
                        const Handle(Geom2d_Curve)&     PC,
                        const Standard_Real             wd,
@@ -275,10 +280,7 @@ void ChFi3d_EnlargeBox(const Handle(Adaptor3d_HSurface)& S,
   PC->Value(wf).Coord(u,v);
   box2.Add(S->Value(u,v));
 }
-//=======================================================================
-//function : ChFi3d_EnlargeBox
-//purpose  : 
-//=======================================================================
+
 void ChFi3d_EnlargeBox(const TopoDS_Edge&           E,
                        const TopTools_ListOfShape&  LF,
                        const Standard_Real          w,
@@ -296,10 +298,7 @@ void ChFi3d_EnlargeBox(const TopoDS_Edge&           E,
     }
   }
 }
-//=======================================================================
-//function : ChFi3d_EnlargeBox
-//purpose  : 
-//=======================================================================
+
 void ChFi3d_EnlargeBox(TopOpeBRepDS_DataStructure&    DStr,
                        const Handle(ChFiDS_Stripe)&   st, 
                        const Handle(ChFiDS_SurfData)& sd,
@@ -364,10 +363,12 @@ void ChFi3d_EnlargeBox(TopOpeBRepDS_DataStructure&    DStr,
     }
   }
 }
+
 //=======================================================================
 //function : conexfaces
 //purpose  : 
 //=======================================================================
+
 void ChFi3d_conexfaces(const TopoDS_Edge& E,
                        TopoDS_Face&       F1,
                        TopoDS_Face&       F2,
@@ -389,10 +390,12 @@ void ChFi3d_conexfaces(const TopoDS_Edge& E,
     }
   }  
 }
+
 //=======================================================================
 //function : EdgeState
-//purpose  : examun des concavites pour les sommets a 3 aretes.
+//purpose  : check concavities for the tops with 3 edges.
 //=======================================================================
+
 ChFiDS_State ChFi3d_EdgeState(TopoDS_Edge* E,
                               const ChFiDS_Map&  EFMap)
 {
@@ -440,12 +443,13 @@ ChFiDS_State ChFi3d_EdgeState(TopoDS_Edge* E,
   }
   return sst;
 }
+
 //=======================================================================
 //function : evalconti
-//purpose  : Methode tres rapide, a la limite de l imposture pour
-//           coder les regularites CN. Il faudra affiner le traitement
-//           quand le bug reviendra.
+//purpose  : Method very fast to code regularities CN. It is necessary to 
+//           refine the processing.
 //=======================================================================
+
 GeomAbs_Shape ChFi3d_evalconti(const TopoDS_Edge& /*E*/,
                                const TopoDS_Face& F1,
                                const TopoDS_Face& F2)
@@ -461,87 +465,153 @@ GeomAbs_Shape ChFi3d_evalconti(const TopoDS_Edge& /*E*/,
      typ != GeomAbs_Torus) return cont;
   return GeomAbs_CN;
 }
-//modified by NIZNHY-PKV Wed Dec 15 11:22:35 2010f
+
 //=======================================================================
 //function : KParticular
 //purpose  : 
 //=======================================================================
-Standard_Boolean ChFi3d_KParticular (const Handle(ChFiDS_Spine)& Spine,
-                                    const Standard_Integer      IE,
-                                    const BRepAdaptor_Surface&  S1,
-                                    const BRepAdaptor_Surface&  S2)
+
+Standard_Boolean ChFi3d_KParticular
+(const Handle(ChFiDS_Spine)& Spine,
+ const Standard_Integer      IE,
+ const BRepAdaptor_Surface&  S1,
+ const BRepAdaptor_Surface&  S2)
 {
-  Standard_Boolean bRet;
-  //
-  bRet=Standard_True;
-  //
+#ifdef DEB
+  if(ChFi3d_GetcontextFORCEBLEND()) return Standard_False; 
+#endif
   Handle(ChFiDS_FilSpine) fs = Handle(ChFiDS_FilSpine)::DownCast(Spine);
-  if(!fs.IsNull() && !fs->IsConstant(IE)) {
-    return !bRet;
-  }
-  //
-  Standard_Boolean bIsPlane1, bIsPlane2;
-  Standard_Real aPA;
-  GeomAbs_CurveType aCT;
-  GeomAbs_SurfaceType aST1, aST2;
-  //
-  aST1=S1.GetType();
-  aST2=S2.GetType();
-  bIsPlane1=(aST1==GeomAbs_Plane);
-  bIsPlane2=(aST2==GeomAbs_Plane);
-  if (!(bIsPlane1 || bIsPlane2)) {
-    return !bRet;
-  }
-  //
-  const BRepAdaptor_Surface& aS1=(bIsPlane1)? S1 : S2;
-  const BRepAdaptor_Surface& aS2=(bIsPlane1)? S2 : S1;
-  aST1=aS1.GetType();
-  aST2=aS2.GetType();
-  //
-  if (!(aST2==GeomAbs_Plane || aST2==GeomAbs_Cylinder || aST2==GeomAbs_Cone)) {
-    return !bRet;
-  } 
-  //
+  if(!fs.IsNull() && !fs->IsConstant(IE)) return Standard_False;
   const BRepAdaptor_Curve& bc = Spine->CurrentElementarySpine(IE);
-  aCT = bc.GetType();
-  if (!(aCT==GeomAbs_Line || aCT==GeomAbs_Circle)) {
-    return !bRet;
-  }
-  //
-  aPA=Precision::Angular();
-  //
-  if (aST2==GeomAbs_Plane){
-    if (aCT==GeomAbs_Line) { 
-      return bRet;
+  GeomAbs_CurveType ctyp = bc.GetType();
+  
+  switch (S1.GetType()) {
+    
+  case GeomAbs_Plane :
+    
+    switch(S2.GetType()) {
+      
+    case GeomAbs_Plane :
+      
+      if (ctyp == GeomAbs_Line) return Standard_True;
+      else return Standard_False;
+      
+    case GeomAbs_Cylinder :
+      
+      if (ctyp == GeomAbs_Line && 
+         (S1.Plane().Axis().Direction().
+          IsNormal(S2.Cylinder().Axis().Direction(),
+                   Precision::Angular())))
+       return Standard_True;
+      else if (ctyp == GeomAbs_Circle && 
+              (S1.Plane().Axis().Direction().
+               IsParallel(S2.Cylinder().Axis().Direction(),
+                          Precision::Angular())))
+       return Standard_True;
+      else return Standard_False;
+      
+    case GeomAbs_Cone :
+      
+      if (ctyp != GeomAbs_Circle) return Standard_False;
+      else if (S1.Plane().Axis().Direction().
+              IsParallel(S2.Cone().Axis().Direction(),
+                         Precision::Angular()))
+       return Standard_True;
+      else return Standard_False;
+      
+    case GeomAbs_Sphere :
+      /*
+        if (!Constant) return Standard_False;
+        else if (S1.Plane().Axis().Direction().
+        IsParallel(S2.Sphere().Position().Axis().Direction(),
+        Precision::Angular()))
+        return Standard_True;
+        else return Standard_False;
+        */
+      return Standard_False;
+    case GeomAbs_Torus :
+      /*
+        if (!Constant) return Standard_False;
+        else if (S1.Plane().Axis().Direction().
+        IsParallel(S2.Torus().Axis().Direction(),
+        Precision::Angular()))
+        return Standard_True;
+        else return Standard_False;;
+        */
+      return Standard_False;;
+    default:
+      
+      return Standard_False;
     }
-  }
-  else if (aST2==GeomAbs_Cylinder) {
-    const gp_Dir& aD1=aS1.Plane().Axis().Direction();
-    const gp_Dir& aD2=aS2.Cylinder().Axis().Direction();
-    //
-    if (aCT==GeomAbs_Line && aD1.IsNormal(aD2, aPA)) {
-      return bRet;
+  case GeomAbs_Cylinder :
+    
+    if (S2.GetType() == GeomAbs_Plane) {
+      if (ctyp == GeomAbs_Line && 
+         (S2.Plane().Axis().Direction().
+          IsNormal(S1.Cylinder().Axis().Direction(),
+                   Precision::Angular())))
+       return Standard_True;
+      else if (ctyp == GeomAbs_Circle && 
+              (S2.Plane().Axis().Direction().
+               IsParallel(S1.Cylinder().Axis().Direction(),
+                          Precision::Angular())))
+       return Standard_True;
+      else return Standard_False;
     }
-    else if (aCT==GeomAbs_Circle && aD1.IsParallel(aD2, aPA)) {
-      return bRet;
+    else return Standard_False;
+    
+  case GeomAbs_Cone :
+    
+    if (S2.GetType() == GeomAbs_Plane) {
+      if (ctyp != GeomAbs_Circle) return Standard_False;
+      else if (S2.Plane().Axis().Direction().
+              IsParallel(S1.Cone().Axis().Direction(),
+                         Precision::Angular()))
+       return Standard_True;
+      else return Standard_False;
+      
     }
+    else return Standard_False;
+    
+  case GeomAbs_Sphere :
+    /*
+       if (S2.GetType() == GeomAbs_Plane) {
+       if (!Constant) return Standard_False;
+       else if (S2.Plane().Axis().Direction().
+       IsParallel(S1.Sphere().Position().Axis().Direction(),
+       Precision::Angular()))
+       return Standard_True;
+       else return Standard_False;
+       }
+       else return Standard_False;
+       */
+    return Standard_False;
+  case GeomAbs_Torus :
+    /*
+       if (S2.GetType() == GeomAbs_Plane) {
+       if (!Constant) return Standard_False;
+       else if (S2.Plane().Axis().Direction().
+       IsParallel(S1.Torus().Axis().Direction(),
+       Precision::Angular()))
+       return Standard_True;
+       else return Standard_False;
+       }
+       else return Standard_False;
+       */
+    return Standard_False;
+  default:
+    return Standard_False;
   }
-  else if(aST2==GeomAbs_Cone) {
-    const gp_Dir& aD1=aS1.Plane().Axis().Direction();
-    const gp_Dir& aD2=aS2.Cone().Axis().Direction();
-    if (aCT == GeomAbs_Circle && aD1.IsParallel(aD2, aPA)) {
-      return bRet;
-    }
-  }  
-  return !bRet;    
+  return Standard_False;
 }
-//modified by NIZNHY-PKV Wed Dec 15 11:22:43 2010t
+
+
 //=======================================================================
 //function : BoundFac
-//purpose  : Resize les bornes d une surface au voisinage de la boite 
-//           donnee. Utile pour les intersections dont on connait les
-//           extremites. 
+//purpose  : Resize the limits of surface adjacent to the given box 
+//           Useful for intersections with known extremities. 
 //=======================================================================
+
 void ChFi3d_BoundFac(BRepAdaptor_Surface& S,
                      const Standard_Real uumin,
                      const Standard_Real uumax,
@@ -553,10 +623,10 @@ void ChFi3d_BoundFac(BRepAdaptor_Surface& S,
 }
 //=======================================================================
 //function : ChFi3d_BoundSrf
-//purpose  : Resize les bornes d une surface au voisinage de la boite 
-//           donnee. Utile pour les intersections dont on connait les
-//           extremites. 
+//purpose  : Resize the limits of surface adjacent to the given box 
+//           Useful for intersections with known extremities.
 //=======================================================================
+
 void ChFi3d_BoundSrf(GeomAdaptor_Surface& S,
                      const Standard_Real uumin,
                      const Standard_Real uumax,
@@ -574,15 +644,23 @@ void ChFi3d_BoundSrf(GeomAdaptor_Surface& S,
   Standard_Real peru=0, perv=0;
   if(surface->IsUPeriodic()) {
     peru = surface->UPeriod();
+//     if((umax - umin) > (0.5 * peru)) {
+//       umin = uumax - peru;
+//       umax = peru - (uumax - uumin);
+//     }
   }
   if(surface->IsVPeriodic()) {
     perv = surface->VPeriod();
+//     if((vmax - vmin) > (0.5 * perv)) {
+//       vmin = vvmax - perv;
+//       vmax = perv - (vvmax - vvmin);
+//     }
   }
   Standard_Real Stepu = umax - umin;
   Standard_Real Stepv = vmax - vmin;
 
-  //On table sur le fait que la boite uv est non nulle dans
-  //une des directions au moins.
+  //It is supposed that box uv is not null in at least 
+  //one direction.
   Standard_Real scalu = S.UResolution(1.);
   Standard_Real scalv = S.VResolution(1.);
 
@@ -605,10 +683,12 @@ void ChFi3d_BoundSrf(GeomAdaptor_Surface& S,
   }
   S.Load(surface,uu1,uu2,vv1,vv2);
 }
+
 //=======================================================================
 //function : ChFi3d_InterPlaneEdge
 //purpose  : 
 //=======================================================================
+
 Standard_Boolean  ChFi3d_InterPlaneEdge (Handle(Adaptor3d_HSurface)& Plan,
                                          Handle(Adaptor3d_HCurve)&  C,
                                          Standard_Real& W,
@@ -633,12 +713,8 @@ Standard_Boolean  ChFi3d_InterPlaneEdge (Handle(Adaptor3d_HSurface)& Plan,
          isol = iip; W = CW;
        }
        else {
-         if      ( Sens && CW < W) {
-           W = CW; isol = iip;
-         }
-         else if (!Sens && CW > W) {
-           W = CW; isol = iip;
-         }
+         if      ( Sens && CW < W) {W = CW; isol = iip;}
+         else if (!Sens && CW > W) {W = CW; isol = iip;}
        }
       }
     }
@@ -646,10 +722,12 @@ Standard_Boolean  ChFi3d_InterPlaneEdge (Handle(Adaptor3d_HSurface)& Plan,
   if(isol == 0) return Standard_False;
   return Standard_True;
 }
+
 //=======================================================================
 //function : ExtrSpineCarac
 //purpose  : 
 //=======================================================================
+
 void ChFi3d_ExtrSpineCarac(const TopOpeBRepDS_DataStructure& DStr,
                           const Handle(ChFiDS_Stripe)& cd,
                           const Standard_Integer i,
@@ -658,12 +736,11 @@ void ChFi3d_ExtrSpineCarac(const TopOpeBRepDS_DataStructure& DStr,
                           const Standard_Integer sens,
                           gp_Pnt& P,
                           gp_Vec& V,
-                          Standard_Real& R) 
-     //voir s il ne faudrait pas rajouter D1,D2 et DR
+                          Standard_Real& R) //check if it is necessary to add D1,D2 and DR
 {
-  // Attention pour les surfaces approximees on assume que
-  // le parametrage de la pcurve est le meme que celui de 
-  // l elspine qui a servi a la construction.
+  // Attention for approximated surfaces it is assumed that e
+  // the parameters of the pcurve are the same as of  
+  // elspine used for its construction.
   const Handle(Geom_Surface)& fffil = 
     DStr.Surface(cd->SetOfSurfData()->Value(i)->Surf()).Surface();
   gp_Pnt2d pp = cd->SetOfSurfData()->Value(i)->Interference(jf).
@@ -703,11 +780,12 @@ void ChFi3d_ExtrSpineCarac(const TopOpeBRepDS_DataStructure& DStr,
   V.Normalize();
   if(sens == 1) V.Reverse();
 }
+
 //=======================================================================
 //function : ChFi3d_CircularSpine
-//purpose  : Calcule une ligne guide ciculaire pour le du coin a partir 
-//           des points et vecteurs tangents calcules aux extremites des
-//           lignes guides des conges deb et fin.
+//purpose  : Calculate a cicular guideline for the corner created from  
+//           tangent points and vectors calculated at the extremities 
+//           of guidelines of start and end fillets.
 //=======================================================================
 Handle(Geom_Circle) ChFi3d_CircularSpine(Standard_Real&      WFirst,
                                         Standard_Real&      WLast,
@@ -740,15 +818,21 @@ Handle(Geom_Circle) ChFi3d_CircularSpine(Standard_Real&      WFirst,
     WLast = dddeb.Angle(ddfin);
     return new Geom_Circle(ccc);
   }
-
+#ifdef DEB
+  else {
+    cout <<"Construction de la ligne guide du coin impossible"<<endl;
+  }
+#endif
   return Handle(Geom_Circle)();
 }
+
 //=======================================================================
 //function : ChFi3d_Spine
-//purpose  : Calcule les poles de la ligne guide du coin a partir des
-//           points et vecteurs tangents calcules aux extremites des
-//           lignes guides des conges deb et fin.
+//purpose  : Calculates the poles of the guideline for the corner from
+//           tangent points and vectors calculated at the extremities of
+//           guidelines of start and end fillets.
 //=======================================================================
+
 Handle(Geom_BezierCurve) ChFi3d_Spine(const gp_Pnt&       pd,
                                       gp_Vec&             vd,
                                       const gp_Pnt&       pf,
@@ -765,10 +849,12 @@ Handle(Geom_BezierCurve) ChFi3d_Spine(const gp_Pnt&       pd,
   pol(3).SetCoord(pf.X()+vf.X(),pf.Y()+vf.Y(),pf.Z()+vf.Z());
   return new Geom_BezierCurve(pol);
 }
+
 //=======================================================================
 //function : IsInFront
-//purpose  : regarde si les surfdata i1 et i2 sont en vis a vis
+//purpose  : Checks if surfdata i1 and i2 are face to face
 //=======================================================================
+
 Standard_Boolean ChFi3d_IsInFront(TopOpeBRepDS_DataStructure& DStr,
                                   const Handle(ChFiDS_Stripe)& cd1, 
                                   const Handle(ChFiDS_Stripe)& cd2,
@@ -806,7 +892,7 @@ Standard_Boolean ChFi3d_IsInFront(TopOpeBRepDS_DataStructure& DStr,
     OrFace2 = DStr.Shape(fd2->Index(jf2)).Orientation();
     visavis = Standard_True;
     sameside = ChFi3d::SameSide(Or,OrSave1,OrSave2,OrFace1,OrFace2);
-    // On ne detrompe plus a l'aide des parametres de l'autre cote ca posait des problemes.
+    // The parameters of the other side are not used for orientation. This would raise problems
     Standard_Integer kf1 = jf1, kf2 = jf2;
     Standard_Real pref1 = fd1->Interference(kf1).Parameter(isf1);
     Standard_Real pref2 = fd2->Interference(kf2).Parameter(isf2);
@@ -827,7 +913,7 @@ Standard_Boolean ChFi3d_IsInFront(TopOpeBRepDS_DataStructure& DStr,
     OrFace2 = DStr.Shape(fd2->Index(jf2)).Orientation();
     visavis = Standard_True;
     sameside = ChFi3d::SameSide(Or,OrSave1,OrSave2,OrFace1,OrFace2);
-    // On ne detrompe plus a l'aide des parametres de l'autre cote ca posait des problemes.
+    // The parameters of the other side are not used for orientation. This would raise problems
     Standard_Integer kf1 = jf1, kf2 = jf2;
     Standard_Real pref1 = fd1->Interference(kf1).Parameter(isf1);
     Standard_Real pref2 = fd2->Interference(kf2).Parameter(isf2);
@@ -846,7 +932,7 @@ Standard_Boolean ChFi3d_IsInFront(TopOpeBRepDS_DataStructure& DStr,
        u1 = p1; u2 = p2; ss = sameside; j1 = jf1; j2 = jf2; ff = face;
       }
     }
-    //on rajoute ces re-initialisations au cas ou p1,... auraient pris des valeurs fausses
+    //the re-initialization is added in case p1,... take wrong values
     else if (ok) {
       p1 = u1; p2 = u2; sameside = ss; jf1 = j1; jf2 = j2; face = ff;
     }
@@ -860,7 +946,7 @@ Standard_Boolean ChFi3d_IsInFront(TopOpeBRepDS_DataStructure& DStr,
     OrFace2 = DStr.Shape(fd2->Index(jf2)).Orientation();
     visavis = Standard_True;
     sameside = ChFi3d::SameSide(Or,OrSave1,OrSave2,OrFace1,OrFace2);
-    // On ne detrompe plus a l'aide des parametres de l'autre cote.
+    // The parameters of the other side are not used for orientation.
     Standard_Integer kf1 = jf1, kf2 = jf2;
     Standard_Real pref1 = fd1->Interference(kf1).Parameter(isf1);
     Standard_Real pref2 = fd2->Interference(kf2).Parameter(isf2);
@@ -879,7 +965,7 @@ Standard_Boolean ChFi3d_IsInFront(TopOpeBRepDS_DataStructure& DStr,
        u1 = p1; u2 = p2; ss = sameside; j1 = jf1; j2 = jf2; ff = face;
       }
     }
-    //on rajoute ces re-initialisations au cas ou p1,... auraient pris des valeurs fausses
+    //the re-initialization is added in case p1,... take wrong values
     else if (ok) {
       p1 = u1; p2 = u2; sameside = ss; jf1 = j1; jf2 = j2; face = ff;
     }
@@ -893,7 +979,7 @@ Standard_Boolean ChFi3d_IsInFront(TopOpeBRepDS_DataStructure& DStr,
     OrFace2 = DStr.Shape(fd2->Index(jf2)).Orientation();
     visavis = Standard_True;
     sameside = ChFi3d::SameSide(Or,OrSave1,OrSave2,OrFace1,OrFace2);
-    // On ne detrompe plus a l'aide des parametres de l'autre cote.
+    // The parameters of the other side are not used for orientation.
     Standard_Integer kf1 = jf1, kf2 = jf2;
     Standard_Real pref1 = fd1->Interference(kf1).Parameter(isf1);
     Standard_Real pref2 = fd2->Interference(kf2).Parameter(isf2);
@@ -912,17 +998,15 @@ Standard_Boolean ChFi3d_IsInFront(TopOpeBRepDS_DataStructure& DStr,
        u1 = p1; u2 = p2; ss = sameside; j1 = jf1; j2 = jf2; ff = face;
       }
     }
-    //on rajoute ces re-initialisations au cas ou p1,... auraient pris des valeurs fausses
+    //the re-initialization is added in case p1,... take wrong values
     else if (ok) {
       p1 = u1; p2 = u2; sameside = ss; jf1 = j1; jf2 = j2; face = ff;
     }
   }
   return ok;
+
 }
-//=======================================================================
-//function : recadre
-//purpose  : 
-//=======================================================================
+
 static Standard_Real recadre(const Standard_Real p,
                              const Standard_Real ref,
                              const Standard_Integer sens,
@@ -932,10 +1016,7 @@ static Standard_Real recadre(const Standard_Real p,
   const Standard_Real pp = p + (sens > 0 ? (first - last) : (last - first));
   return ((Abs(pp - ref) < Abs(p - ref))? pp : p);
 }
-//=======================================================================
-//function : ChFi3d_IntTraces
-//purpose  : 
-//=======================================================================
+
 Standard_Boolean ChFi3d_IntTraces(const Handle(ChFiDS_SurfData)& fd1,
                                  const Standard_Real            pref1,
                                  Standard_Real&                 p1,
@@ -952,9 +1033,9 @@ Standard_Boolean ChFi3d_IntTraces(const Handle(ChFiDS_SurfData)& fd1,
 {
   Geom2dAdaptor_Curve C1;
   Geom2dAdaptor_Curve C2;
-  // on aggrandit les pcurves pour etre sur qu'il y a intersection
-  // par ailleurs on prend la totalite des courbes periodiques, on
-  // triera les points sur celles-ci avec un critere specifique.
+  // pcurves are enlarged to be sure that there is intersection
+  // additionally all periodic curves are taken and points on 
+  // them are filtered using a specific criterion.
 
   Standard_Real first,last,delta = 0.;
   first = fd1->Interference(jf1).FirstParameter();
@@ -1007,15 +1088,18 @@ Standard_Boolean ChFi3d_IntTraces(const Handle(ChFiDS_SurfData)& fd1,
     if (!Intersection.IsEmpty()) {
       nbseg = Intersection.NbSegments();
       if ( nbseg > 0 ) { 
+#ifdef DEB
+       cout<< "segments of intersection on restrictions"<<endl; 
+#endif
       }
       nbpt = Intersection.NbPoints();
       if ( nbpt >= 1 ) {
-       // On manque de billes pour trier les points trouves de facon
-        // rigoureuse. On adopte donc deux criteres differents un peu
-        // arbitraires :
-       // - courbes periodiques : le plus proche de la borne.
-       // - courbes non periodiques : le plus a gauche sur les 2 courbes
-       //                             modulo sens1 et sens2
+       // The criteria sets to filter the found points in a strict way 
+        // are missing. Two different criterions chosen somewhat randomly 
+        // are used :
+       // - periodic curves : closest to the border.
+       // - non-periodic curves : the closest to the left of 2 curves
+       //                             modulo sens1 and sens2
        int2d = Intersection.Point(1);
        p2d = int2d.Value();
        p1 = int2d.ParamOnFirst();
@@ -1032,7 +1116,7 @@ Standard_Boolean ChFi3d_IntTraces(const Handle(ChFiDS_SurfData)& fd1,
              p2 = int2d.ParamOnSecond();
              p2d = int2d.Value();
            }
-           //  Modified by skv - Mon Jun 16 15:51:21 2003 OCC615 Begin
+//  Modified by skv - Mon Jun 16 15:51:21 2003 OCC615 Begin
            else if (Check2dDistance &&
                     RefP2d.Distance(int2d.Value()) < RefP2d.Distance(p2d)) {
              Standard_Real pp2 = int2d.ParamOnSecond();
@@ -1044,7 +1128,7 @@ Standard_Boolean ChFi3d_IntTraces(const Handle(ChFiDS_SurfData)& fd1,
              p2  = pp2;
              p2d = int2d.Value();
            }
-           //  Modified by skv - Mon Jun 16 15:51:22 2003 OCC615 End
+//  Modified by skv - Mon Jun 16 15:51:22 2003 OCC615 End
          }
          else if(isper2) {
            Standard_Real pp2 = int2d.ParamOnSecond();
@@ -1054,7 +1138,7 @@ Standard_Boolean ChFi3d_IntTraces(const Handle(ChFiDS_SurfData)& fd1,
              p1 = int2d.ParamOnFirst();
              p2d = int2d.Value();
            }
-           //  Modified by skv - Mon Jun 16 15:51:21 2003 OCC615 Begin
+//  Modified by skv - Mon Jun 16 15:51:21 2003 OCC615 Begin
            else if (Check2dDistance &&
                     RefP2d.Distance(int2d.Value()) < RefP2d.Distance(p2d)) {
              Standard_Real pp1 = int2d.ParamOnFirst();
@@ -1066,7 +1150,7 @@ Standard_Boolean ChFi3d_IntTraces(const Handle(ChFiDS_SurfData)& fd1,
              p2  = pp2;
              p2d = int2d.Value();
            }
-           //  Modified by skv - Mon Jun 16 15:51:22 2003 OCC615 End
+//  Modified by skv - Mon Jun 16 15:51:22 2003 OCC615 End
          }
          else if(((int2d.ParamOnFirst() - p1)*sens1 < 0.) &&
                  ((int2d.ParamOnSecond() - p2)*sens2 < 0.)) {
@@ -1095,6 +1179,7 @@ Standard_Boolean ChFi3d_IntTraces(const Handle(ChFiDS_SurfData)& fd1,
   }
   else { return Standard_False; }
 } 
+
 //=======================================================================
 //function : Coefficient
 //purpose  : 
@@ -1114,11 +1199,13 @@ void ChFi3d_Coefficient(const gp_Vec& V3d,
   DU = (DD*CC-EE*BB)/Delta;
   DV = (AA*EE-BB*DD)/Delta;
 }
+
 //=======================================================================
 //function : ReparamPcurv
 //purpose  : Dans le cas ou la pcurve est une BSpline on verifie 
 //           ses parametres et on la reparametre eventuellement.
 //=======================================================================
+
 void ChFi3d_ReparamPcurv(const Standard_Real Uf, 
                          const Standard_Real Ul, 
                          Handle(Geom2d_Curve)& Pcurv) 
@@ -1149,11 +1236,13 @@ void ChFi3d_ReparamPcurv(const Standard_Real Uf,
   }
   Pcurv = pc;
 }
+
 //=======================================================================
 //function : ProjectPCurv
-//purpose  : Calcul la pcurve correspondant a une ligne d intersection
-//           3d. Ne doit etre appele que dans les cas analytiques.
+//purpose  : Calculation of the pcurve corresponding to a line of intersection
+//           3d. Should be called only in analytic cases.
 //=======================================================================
+
 void ChFi3d_ProjectPCurv(const Handle(Adaptor3d_HCurve)&   HCg, 
                         const Handle(Adaptor3d_HSurface)& HSg, 
                         Handle(Geom2d_Curve)&           Pcurv,
@@ -1206,15 +1295,18 @@ void ChFi3d_ProjectPCurv(const Handle(Adaptor3d_HCurve)&   HCg,
     }
   }
 }
+
 //=======================================================================
 //function : CheckSameParameter
-//purpose  : Controle a posteriori que sameparameter a bien fait son boulot
+//purpose  : Controls a posteriori that sameparameter worked well
 //=======================================================================
-Standard_Boolean ChFi3d_CheckSameParameter (const Handle(Adaptor3d_HCurve)&   C3d,
-                                           Handle(Geom2d_Curve)&           Pcurv,
-                                           const Handle(Adaptor3d_HSurface)& S,
-                                           const Standard_Real             tol3d,
-                                           Standard_Real&                  tolreached)
+
+Standard_Boolean ChFi3d_CheckSameParameter 
+(const Handle(Adaptor3d_HCurve)&   C3d,
+ Handle(Geom2d_Curve)&           Pcurv,
+ const Handle(Adaptor3d_HSurface)& S,
+ const Standard_Real             tol3d,
+ Standard_Real&                  tolreached)
 {
   tolreached = 0.;
   Standard_Real f = C3d->FirstParameter();
@@ -1240,10 +1332,12 @@ Standard_Boolean ChFi3d_CheckSameParameter (const Handle(Adaptor3d_HCurve)&   C3
   tolreached = Max(tolreached,Precision::Confusion());
   return Standard_True;
 }
+
 //=======================================================================
 //function : SameParameter
-//purpose  : Encapsulation de Sameparameter
+//purpose  : Encapsulation of Sameparameter
 //=======================================================================
+
 Standard_Boolean ChFi3d_SameParameter(const Handle(Adaptor3d_HCurve)&   C3d,
                                       Handle(Geom2d_Curve)&           Pcurv,
                                       const Handle(Adaptor3d_HSurface)& S,
@@ -1254,15 +1348,26 @@ Standard_Boolean ChFi3d_SameParameter(const Handle(Adaptor3d_HCurve)&   C3d,
   Approx_SameParameter sp(C3d,Pcurv,S,tol3d);
   if(sp.IsDone() && !sp.IsSameParameter()) Pcurv = sp.Curve2d();
   else if(!sp.IsDone() && !sp.IsSameParameter()) {
+#ifdef DEB
+    cout<<"echec SameParameter"<<endl;
+#endif  
     return Standard_False;
   }
   tolreached = sp.TolReached();
+  if(tolreached > 1.1*tol3d) {
+#ifdef DEB
+    cout<<"SameParameter : Tol non atteinte!!!"<<endl;
+    cout<<"tol visee : "<<tol3d<<" tol obtenue : "<<tolreached<<endl;
+#endif  
+  }
   return Standard_True;
 }
+  
 //=======================================================================
 //function : SameParameter
 //purpose  : Encapsulation de Sameparameter
 //=======================================================================
+
 Standard_Boolean ChFi3d_SameParameter(const Handle(Geom_Curve)&   C3d,
                                       Handle(Geom2d_Curve)&       Pcurv,
                                       const Handle(Geom_Surface)& S,
@@ -1275,12 +1380,14 @@ Standard_Boolean ChFi3d_SameParameter(const Handle(Geom_Curve)&   C3d,
   /*szv:static*/ Handle(GeomAdaptor_HCurve) hc(new GeomAdaptor_HCurve(C3d,Pardeb,Parfin));
   return ChFi3d_SameParameter(hc,Pcurv,hs,tol3d,tolreached);
 }
+
 //=======================================================================
 //function : ComputePCurv 
-//purpose  : Calcule une droite eventuellement sous forme de BSpline 
-//           pour garantir le range et le parametrage identique
-//           a une courbe 3d de reference.
+//purpose  : Calculates a straight line in form of BSpline 
+//           to guarantee the same range and parameters as of the 
+//           reference 3D curve.
 //=======================================================================
+
 void ChFi3d_ComputePCurv(const Handle(Adaptor3d_HCurve)&   C3d,
                         const gp_Pnt2d&                 UV1,
                         const gp_Pnt2d&                 UV2,
@@ -1293,14 +1400,27 @@ void ChFi3d_ComputePCurv(const Handle(Adaptor3d_HCurve)&   C3d,
                         const Standard_Boolean          reverse)
 {
   ChFi3d_ComputePCurv(UV1,UV2,Pcurv,Pardeb,Parfin,reverse);
+
+#ifdef DEB   
+  OSD_Chronometer ch;
+  ChFi3d_InitChron(ch);//initial improvement for ChFi3d_SameParameter 
+#endif
+
   ChFi3d_SameParameter(C3d,Pcurv,S,tol3d,tolreached);
+
+#ifdef DEB    
+  ChFi3d_ResultChron(ch ,t_sameparam); // resulting improvement for ChFi3d_SameParameter
+#endif 
 }
+
 //=======================================================================
 //function : ComputePCurv 
-//purpose  : Calcule une droite eventuellement sous forme de BSpline 
-//           pour garantir le range et le parametrage identique
-//           a une courbe 3d de reference.
+//purpose  : Calculates a straight line in form of BSpline 
+//           to guarantee the same range and parameters as of the 
+//           reference 3D curve.
 //=======================================================================
+
 void ChFi3d_ComputePCurv(const Handle(Geom_Curve)&   C3d,
                          const gp_Pnt2d&             UV1,
                          const gp_Pnt2d&             UV2,
@@ -1316,11 +1436,13 @@ void ChFi3d_ComputePCurv(const Handle(Geom_Curve)&   C3d,
   /*szv:static*/ Handle(GeomAdaptor_HCurve) hc(new GeomAdaptor_HCurve(C3d,Pardeb,Parfin));
   ChFi3d_ComputePCurv(hc,UV1,UV2,Pcurv,hs,Pardeb,Parfin,tol3d,tolreached,reverse);
 }
+
 //=======================================================================
 //function : ComputePCurv 
-//purpose  : Calcule une droite eventuellement sous forme de BSpline 
-//           pour garantir le range.
+//purpose  : Calculates a straight line in form of BSpline 
+//           to guarantee the same range.
 //=======================================================================
+
 void ChFi3d_ComputePCurv(const gp_Pnt2d& UV1,
                          const gp_Pnt2d& UV2,
                          Handle(Geom2d_Curve)& Pcurv,
@@ -1372,10 +1494,7 @@ void ChFi3d_ComputePCurv(const gp_Pnt2d& UV1,
   }
   Pcurv = new Geom2d_TrimmedCurve(Pcurv,Pardeb,Parfin);
 }
-//=======================================================================
-//function : ChFi3d_mkbound
-//purpose  : 
-//=======================================================================
+
 Handle(GeomFill_Boundary) ChFi3d_mkbound(const Handle(Adaptor3d_HSurface)& Fac,
                                          Handle(Geom2d_Curve)& curv, 
                                          const Standard_Integer sens1,
@@ -1394,10 +1513,7 @@ Handle(GeomFill_Boundary) ChFi3d_mkbound(const Handle(Adaptor3d_HSurface)& Fac,
   curv = ChFi3d_BuildPCurve(Fac,pfac1,v1,pfac2,v2,Standard_False);
   return ChFi3d_mkbound(Fac,curv,t3d,ta);
 }
-//=======================================================================
-//function : ChFi3d_mkbound
-//purpose  : 
-//=======================================================================
+
 Handle(GeomFill_Boundary) ChFi3d_mkbound(const Handle(Adaptor3d_HSurface)& Surf,
                                          Handle(Geom2d_Curve)& curv,
                                          const Standard_Integer sens1,
@@ -1414,10 +1530,7 @@ Handle(GeomFill_Boundary) ChFi3d_mkbound(const Handle(Adaptor3d_HSurface)& Surf,
   curv = ChFi3d_BuildPCurve(Surf,p1,v1,p2,v2);
   return ChFi3d_mkbound(Surf,curv,t3d,ta);
 }
-//=======================================================================
-//function : ChFi3d_mkbound
-//purpose  : 
-//=======================================================================
+
 Handle(GeomFill_Boundary) ChFi3d_mkbound(const Handle(Geom_Surface)& s,
                                          const gp_Pnt2d& p1,
                                          const gp_Pnt2d& p2,
@@ -1428,10 +1541,7 @@ Handle(GeomFill_Boundary) ChFi3d_mkbound(const Handle(Geom_Surface)& s,
   Handle(GeomAdaptor_HSurface) HS = new GeomAdaptor_HSurface(s);
   return ChFi3d_mkbound(HS,p1,p2,t3d,ta,isfreeboundary);
 }
-//=======================================================================
-//function : ChFi3d_mkbound
-//purpose  : 
-//=======================================================================
+
 Handle(GeomFill_Boundary) ChFi3d_mkbound(const Handle(Adaptor3d_HSurface)& HS,
                                          const gp_Pnt2d& p1,
                                          const gp_Pnt2d& p2,
@@ -1445,10 +1555,7 @@ Handle(GeomFill_Boundary) ChFi3d_mkbound(const Handle(Adaptor3d_HSurface)& HS,
   Handle(Geom2d_Curve) curv = new Geom2d_BezierCurve(pol);
   return ChFi3d_mkbound(HS,curv,t3d,ta,isfreeboundary);
 }
-//=======================================================================
-//function : ChFi3d_mkbound
-//purpose  : 
-//=======================================================================
+
 Handle(GeomFill_Boundary) ChFi3d_mkbound(const Handle(Adaptor3d_HSurface)& HS,
                                          const Handle(Geom2d_Curve)& curv,
                                          const Standard_Real t3d,
@@ -1463,10 +1570,7 @@ Handle(GeomFill_Boundary) ChFi3d_mkbound(const Handle(Adaptor3d_HSurface)& HS,
   }
   return new GeomFill_BoundWithSurf(COnS,t3d,ta);
 }
-//=======================================================================
-//function : ChFi3d_mkbound
-//purpose  : 
-//=======================================================================
+
 Handle(GeomFill_Boundary) ChFi3d_mkbound(const Handle(Adaptor3d_HSurface)& Fac,
                                          Handle(Geom2d_Curve)& curv, 
                                          const gp_Pnt2d& p1,
@@ -1481,10 +1585,7 @@ Handle(GeomFill_Boundary) ChFi3d_mkbound(const Handle(Adaptor3d_HSurface)& Fac,
   curv = new Geom2d_BezierCurve(pol);
   return ChFi3d_mkbound(Fac,curv,t3d,ta,isfreeboundary);
 }
-//=======================================================================
-//function : ChFi3d_BuildPCurve
-//purpose  : 
-//=======================================================================
+
 Handle(Geom2d_Curve) ChFi3d_BuildPCurve(const gp_Pnt2d& p1,
                                        gp_Dir2d& d1,
                                        const gp_Pnt2d& p2,
@@ -1509,11 +1610,55 @@ Handle(Geom2d_Curve) ChFi3d_BuildPCurve(const gp_Pnt2d& p1,
   Lambda2 = Max(0.5*mref*Lambda2,1.e-5);
   pol(3)=gp_Pnt2d(p2.XY()+Lambda2*d2.XY());
   return new Geom2d_BezierCurve(pol);
+
+/*
+  //essai avec batten
+  Standard_Real h =  0.005*mref;
+  Standard_Real ang1,ang2;
+  ang1=dref.Angle(d1);
+  if (dref.Angle(d2) > 0) ang2=PI-dref.Angle(d2);
+  else ang2=-PI-dref.Angle(d2);
+  Standard_Real angmax = 0.5*PI;
+  if((Abs(ang1)>angmax)||(Abs(ang2)>angmax)) {
+    //On fait une cubique a la mords moi le noeud
+    TColgp_Array1OfPnt2d pol(1,4);
+    pol(1)=p1;
+    pol(4)=p2;
+    Standard_Real Lambda1 = Max(Abs(d2.Dot(d1)),Abs(dref.Dot(d1)));
+    Lambda1 = Max(0.5*mref*Lambda1,1.e-5);
+    pol(2) = gp_Pnt2d(p1.XY()+Lambda1*d1.XY());
+    Standard_Real Lambda2 = Max(Abs(d1.Dot(d2)),Abs(dref.Dot(d2)));
+    Lambda2 = Max(0.5*mref*Lambda2,1.e-5);
+    pol(3)=gp_Pnt2d(p2.XY()+Lambda2*d2.XY());
+    return new Geom2d_BezierCurve(pol);
+  }
+  else{
+    //On lance un Batten
+#ifdef DEB
+    OSD_Chronometer ch;
+    ChFi3d_InitChron(ch);// init performances pour les batten  
+#endif  
+    FairCurve_Batten Bat(p1,p2,h);
+    Bat.SetFreeSliding (Standard_True);
+    Bat.SetAngle1(ang1);
+    Bat.SetAngle2(ang2);
+    FairCurve_AnalysisCode Iana; 
+    Standard_Real tol = 1.e-3;
+    Standard_Integer nbit;
+    Standard_Boolean ok;
+//    nbit = 5;
+//    ok = Bat.Compute(Iana,nbit,tol);
+    nbit = 25;
+    ok = Bat.Compute(Iana,nbit,tol);
+#ifdef DEB
+    ChFi3d_ResultChron( ch,t_batten);  // result performances pour les batten 
+#endif
+    if(!ok) Standard_Failure::Raise("Echec Batten"); 
+    return Bat.Curve();
+  } 
+*/
 }
-//=======================================================================
-//function : ChFi3d_BuildPCurve
-//purpose  : 
-//=======================================================================
+
 Handle(Geom2d_Curve) ChFi3d_BuildPCurve(const Handle(Adaptor3d_HSurface)& Surf,
                                        const gp_Pnt2d&                 p1,
                                        const gp_Vec2d&                 v1,
@@ -1542,10 +1687,7 @@ Handle(Geom2d_Curve) ChFi3d_BuildPCurve(const Handle(Adaptor3d_HSurface)& Surf,
   }
   return pc;
 }
-//=======================================================================
-//function : ChFi3d_BuildPCurve
-//purpose  : 
-//=======================================================================
+
 Handle(Geom2d_Curve) ChFi3d_BuildPCurve(const Handle(Adaptor3d_HSurface)& Surf,
                                        const gp_Pnt2d&                 p1,
                                        const gp_Vec&                   v1,
@@ -1569,22 +1711,24 @@ Handle(Geom2d_Curve) ChFi3d_BuildPCurve(const Handle(Adaptor3d_HSurface)& Surf,
   }
   return ChFi3d_BuildPCurve(Surf,p1,vv1,p2,vv2,0);
 }
+
 //=======================================================================
 //function : ComputeArete
 //purpose  : 
-// pour les remplissages en s.d. un conge avec ces pcurves est construit ainsi
-// firstpoint sur S1 -------------edge:courbe3d/pcurves--->lastpoint sur S1
+// to fill with s.d. a fillet with pcurves constructed as follows
+// firstpoint on S1 -------------edge:curve3d/pcurves--->lastpoint on S1
 //  |                                                              |
 //  |                                                              |
 //  |                                                              |
-// edge:courbe 3d/pcurves           conge                        edge
-//  |         attention il faut tester l orientation du conge avant|
-//  |         de determiner les transitions pcurves/conge          |
+// edge:curve 3d/pcurves           fillet                         edge
+//  |         attention it is necessary to test orientation of the fillet before|
+//  |         determining the transitions pcurves/fillet           |
 //  |                                                              |
 //  \/                                                             \/
 // firstpoint sur S2 -------------edge:courbe3d/pcurves--->lastpoint sur S2
 //
 //=======================================================================
+
 void  ChFi3d_ComputeArete(const ChFiDS_CommonPoint&   P1,
                          const gp_Pnt2d&             UV1,
                          const ChFiDS_CommonPoint&   P2,
@@ -1666,8 +1810,8 @@ void  ChFi3d_ComputeArete(const ChFiDS_CommonPoint&   P1,
   else if (IFlag == 0) {
 
     if (P1.IsVertex() || P2.IsVertex() || !P1.IsOnArc() || !P2.IsOnArc()) {
-    // On construit une droite pour ne pas se tromper 
-    // d'arc et donc de tangente.
+    // A straight line is constructed to avoid  
+    // arc and tangent.
       TColgp_Array1OfPnt2d qoles(1,2);
       qoles(1)=UV1;
       qoles(2)=UV2;
@@ -1683,11 +1827,11 @@ void  ChFi3d_ComputeArete(const ChFiDS_CommonPoint&   P1,
       C1.D1(P2.ParameterOnArc(),Pp,Vv2);
       hs->ChangeSurface().Load(Surf);
       Pcurv = ChFi3d_BuildPCurve(hs,UV1,Vv1,UV2,Vv2,Standard_True); 
-      // Il y a des cas ou la PCurve ainsi construite sort de la 
-      // surface, en particulier lorsque celle-ci provient d u
-      // prolongement. On fait donc un controle a posteriori et
-      // si ca sort on la remplace par la droite UV1 UV2, tant
-      // pis pour la tangence avec les arcs voisins!!!
+      // There are some cases when PCurve constructed in this way  
+      // leaves the surface, in particular if it results from a
+      // extension. A posteriori checking is required and if
+      // the curve leaves the surface it is replaced by straight line UV1 UV2
+      // non regarding the tangency with neighboring arcs!
       Bnd_Box2d bs;
       Standard_Real umin,umax,vmin,vmax;
       Surf->Bounds(umin,umax,vmin,vmax);
@@ -1726,10 +1870,13 @@ void  ChFi3d_ComputeArete(const ChFiDS_CommonPoint&   P1,
     }
   }
 }
+
 //=======================================================================
 //function : FilCurveInDS
 //purpose  : 
 //=======================================================================
+
+
 Handle(TopOpeBRepDS_SurfaceCurveInterference)  ChFi3d_FilCurveInDS
 (const Standard_Integer Icurv,
  const Standard_Integer Isurf,
@@ -1743,6 +1890,7 @@ Handle(TopOpeBRepDS_SurfaceCurveInterference)  ChFi3d_FilCurveInDS
                                                  Pcurv);
   return SC1;
 }
+
 //=======================================================================
 //function : TrsfTrans
 //purpose  : 
@@ -1750,17 +1898,20 @@ Handle(TopOpeBRepDS_SurfaceCurveInterference)  ChFi3d_FilCurveInDS
 //=======================================================================
 TopAbs_Orientation ChFi3d_TrsfTrans(const IntSurf_TypeTrans T1) 
 {
-  switch (T1)  {
+  switch (T1)
+  {
     case IntSurf_In:  return TopAbs_FORWARD;
     case IntSurf_Out: return TopAbs_REVERSED;
   }
   return TopAbs_INTERNAL;
 }
+
 //=======================================================================
 //function : FilCommonPoint
-//purpose  : Chargement du common point
-//           gestion du fait que l'on est deja sur un vertex existant
+//purpose  : Loading of the common point
+//           management of the case when it happens on already existing vertex.
 //=======================================================================
+
 Standard_EXPORT void ChFi3d_FilCommonPoint(const BRepBlend_Extremity& SP,
                                           const IntSurf_TypeTrans TransLine,
                                           const Standard_Boolean Start,
@@ -1770,20 +1921,20 @@ Standard_EXPORT void ChFi3d_FilCommonPoint(const BRepBlend_Extremity& SP,
 //  BRep_Tool Outil;
   Standard_Real Dist, maxtol = Max(Tol,CP.Tolerance());
 
-  CP.SetPoint(SP.Value()); // On commence par le point, le vecteur
+  CP.SetPoint(SP.Value()); // One starts with the point and the vector
   if (SP.HasTangent()) {
     if (Start) {
-      CP.SetVector(SP.Tangent().Reversed()); // On oriente la tangente vers la sortie
+      CP.SetVector(SP.Tangent().Reversed()); // The tangent is oriented to the exit
     }
     else {
       CP.SetVector(SP.Tangent());
     }
   }
   
-  CP.SetParameter(SP.ParameterOnGuide()); //et le parametre de la spine
+  CP.SetParameter(SP.ParameterOnGuide()); // and the parameter of the spine
 
-  if (SP.IsVertex()) { // On charge le Vertex si besoin est
-                       // (A l'interieur d'une face)
+  if (SP.IsVertex()) { // the Vertex is loaded if required
+                       // (inside of a face)
     TopoDS_Vertex V =  
       Handle(BRepTopAdaptor_HVertex)::DownCast(SP.Vertex())->Vertex();
   
@@ -1795,12 +1946,11 @@ Standard_EXPORT void ChFi3d_FilCommonPoint(const BRepBlend_Extremity& SP,
     //////////////////////////////////////////////
     CP.SetPoint(BRep_Tool::Pnt(V));
     
-    //la sequence d arcs l information est connu par le vertex (ancestor)
-    //dans ce cas on ne calculera pas les transitions c est a ce programme
-    //de le faire
+    //the sequence of arcs the information is known by thee vertex (ancestor)
+    //in this case the transitions are not computed, it is done by this program
   }
   
-  if (SP.NbPointOnRst() != 0) { //  On charge un arc, et/ou un vertex
+  if (SP.NbPointOnRst() != 0) { //  An arc, and/or a vertex is loaded
 
     const BRepBlend_PointOnRst& PR = SP.PointOnRst(1);
     Handle(BRepAdaptor_HCurve2d) 
@@ -1822,8 +1972,8 @@ Standard_EXPORT void ChFi3d_FilCommonPoint(const BRepBlend_Extremity& SP,
                         Dist = DistL; }
 
       if (Dist <= maxtol + BRep_Tool::Tolerance(V[Index_min]) ) { 
-       // On tombe sur un vertex prexistant
-        CP.SetVertex(V[Index_min]); //On Charge l'ancien vertex
+       // a prexisting vertex has been met
+        CP.SetVertex(V[Index_min]); //the old vertex is loaded
          CP.SetPoint( BRep_Tool::Pnt(V[Index_min]) );
          maxtol = Max(BRep_Tool::Tolerance(V[Index_min]),maxtol);
         //// modified by jgv, 18.09.02 for OCC571 ////
@@ -1832,13 +1982,13 @@ Standard_EXPORT void ChFi3d_FilCommonPoint(const BRepBlend_Extremity& SP,
         //////////////////////////////////////////////
          LeParamAmoi = BRep_Tool::Parameter(V[Index_min], E);    
       }
-      else {   // Creation d'un arc seul
+      else {   // Creation of an arc only
        maxtol = Max(BRep_Tool::Tolerance(E),maxtol);
        maxtol = Max(SP.Tolerance(),maxtol);
        LeParamAmoi = PR.ParameterOnArc();
       }
 
-      // Definition de l'arc
+      // Definition of the arc
       TopAbs_Orientation Tr;
       TopAbs_Orientation Or = E.Orientation();
       if (Start) {
@@ -1850,13 +2000,14 @@ Standard_EXPORT void ChFi3d_FilCommonPoint(const BRepBlend_Extremity& SP,
       CP.SetArc(maxtol, E, LeParamAmoi, Tr);
     }
   }
-  CP.SetTolerance(maxtol); // On finit par la tolerance.
+  CP.SetTolerance(maxtol); // Finally, the tolerance.
 }
 
 //=======================================================================
 //function : SolidIndex
 //purpose  : 
 //=======================================================================
+
 Standard_Integer ChFi3d_SolidIndex(const Handle(ChFiDS_Spine)&  sp,
                                   TopOpeBRepDS_DataStructure&  DStr,
                                   ChFiDS_Map&                  MapESo,
@@ -1871,33 +2022,37 @@ Standard_Integer ChFi3d_SolidIndex(const Handle(ChFiDS_Spine)&  sp,
   const Standard_Integer solidindex = DStr.AddShape(shellousolid);
   return solidindex;
 }
+
 //=======================================================================
 //function : IndexPointInDS
 //purpose  : 
 //=======================================================================
+
 Standard_Integer  ChFi3d_IndexPointInDS(const ChFiDS_CommonPoint& P1,
                                        TopOpeBRepDS_DataStructure& DStr) 
 {
   if (P1.IsVertex()) {
     // --------------------------------->  !*!*!* 
-    // Attention : On se permet d'ecrabouiller la tolerance
-    // il faudrait prevoir un mecanimse propre.
+    // Attention : it is necessary ti implement a mechanism 
+    // controlling tolerance.
     BRep_Builder B;
     B.UpdateVertex(P1.Vertex(), P1.Point(), P1.Tolerance());
     return DStr.AddShape(P1.Vertex());
   }
   return DStr.AddPoint(TopOpeBRepDS_Point(P1.Point(),P1.Tolerance()));
 }
+
 //=======================================================================
 //function : FilPointInDS
 //purpose  : 
 //=======================================================================
-Handle(TopOpeBRepDS_CurvePointInterference) 
-     ChFi3d_FilPointInDS(const TopAbs_Orientation Et,
-                        const Standard_Integer Ic,
-                        const Standard_Integer Ip,
-                        const Standard_Real Par,
-                        const Standard_Boolean IsVertex)
+
+Handle(TopOpeBRepDS_CurvePointInterference) ChFi3d_FilPointInDS
+(const TopAbs_Orientation Et,
+ const Standard_Integer Ic,
+ const Standard_Integer Ip,
+ const Standard_Real Par,
+ const Standard_Boolean IsVertex)
 {
   Handle(TopOpeBRepDS_CurvePointInterference) CP1;
   if (IsVertex)    
@@ -1910,15 +2065,17 @@ Handle(TopOpeBRepDS_CurvePointInterference)
                                                   TopOpeBRepDS_POINT,Ip,Par);
   return CP1;
 }
+
 //=======================================================================
 //function : FilVertexInDS
 //purpose  : 
 //=======================================================================
-Handle(TopOpeBRepDS_CurvePointInterference) 
-     ChFi3d_FilVertexInDS(const TopAbs_Orientation Et,
-                         const Standard_Integer Ic,
-                         const Standard_Integer Ip,
-                         const Standard_Real Par)
+
+Handle(TopOpeBRepDS_CurvePointInterference) ChFi3d_FilVertexInDS
+(const TopAbs_Orientation Et,
+ const Standard_Integer Ic,
+ const Standard_Integer Ip,
+ const Standard_Real Par)
 {
   
   Handle(TopOpeBRepDS_CurvePointInterference) CP1 = new
@@ -1927,22 +2084,23 @@ Handle(TopOpeBRepDS_CurvePointInterference)
                                         TopOpeBRepDS_VERTEX,Ip,Par);
   return CP1;
 }
+
 //=======================================================================
 //function : Orientation
-//purpose  : retourne l'orientation d'une interference (la premiere trouvee
-//           dans la liste).
+//purpose  : returns the orientation of the interference (the first found
+//           in the list).
 //=======================================================================
 
-static Standard_Boolean
-  ChFi3d_Orientation(const TopOpeBRepDS_ListOfInterference& LI,
                   const Standard_Integer                 igros,
                   const Standard_Integer                 ipetit,
                   TopAbs_Orientation&                    Or,
                   const Standard_Boolean                 isvertex = Standard_False,
                   const Standard_Boolean                 aprendre = Standard_False)
+static Standard_Boolean ChFi3d_Orientation
+(const TopOpeBRepDS_ListOfInterference& LI,
+ const Standard_Integer                 igros,
+ const Standard_Integer                 ipetit,
+ TopAbs_Orientation&                    Or,
+ const Standard_Boolean                 isvertex = Standard_False,
+ const Standard_Boolean                 aprendre = Standard_False)
 {
-  //Dans le cas, ou on veux inserer un point/vertex, on desire savoir
-  // si c'est un point ou un vertex, car leur index peuvent etre les memes.
+  //In case, when it is necessary to insert a point/vertex, it should be 
+  //known if this is a point or a vertex, because their index can be the same.
   TopOpeBRepDS_Kind typepetit;
   if (isvertex)
     typepetit =  TopOpeBRepDS_VERTEX;
@@ -1972,29 +2130,28 @@ static Standard_Boolean
   return Standard_False;
 }
 
-//=======================================================================
+//====================================================================
 //function : Contains
-//purpose  : Verifie qu une interference n existe pas deja.
-//=======================================================================
-static Standard_Boolean 
-  ChFi3d_Contains(const TopOpeBRepDS_ListOfInterference& LI,
-                 const Standard_Integer                 igros,
-                 const Standard_Integer                 ipetit,
-                 const Standard_Boolean                 isvertex = Standard_False,
-                 const Standard_Boolean                 aprendre = Standard_False)                             
+//purpose  : Check if the interference does not already exist.
+//====================================================================
+
+static Standard_Boolean ChFi3d_Contains
+(const TopOpeBRepDS_ListOfInterference& LI,
+ const Standard_Integer                 igros,
+ const Standard_Integer                 ipetit,
+ const Standard_Boolean                 isvertex = Standard_False,
+ const Standard_Boolean                 aprendre = Standard_False)                             
 {
   TopAbs_Orientation bidOr;
   return ChFi3d_Orientation(LI,igros,ipetit,bidOr,isvertex,aprendre);
 }
-//=======================================================================
-//function : QueryAddVertexInEdge
-//purpose  : 
-//=======================================================================
-static void QueryAddVertexInEdge(TopOpeBRepDS_ListOfInterference& LI,
-                                const Standard_Integer                 IC,
-                                const Standard_Integer                 IV,
-                                const Standard_Real                    par,
-                                const TopAbs_Orientation               Or)
+
+static void QueryAddVertexInEdge
+(      TopOpeBRepDS_ListOfInterference& LI,
+ const Standard_Integer                 IC,
+ const Standard_Integer                 IV,
+ const Standard_Real                    par,
+ const TopAbs_Orientation               Or)
 {
   TopOpeBRepDS_ListIteratorOfListOfInterference it(LI);
   for (; it.More(); it.Next() ) {
@@ -2017,14 +2174,10 @@ static void QueryAddVertexInEdge(TopOpeBRepDS_ListOfInterference& LI,
   LI.Append(interf);
 }
 
-//=======================================================================
-//function : CutEdge
-//purpose  : 
-//=======================================================================
 static void CutEdge(const TopoDS_Vertex&           V,
                    const Handle(ChFiDS_SurfData)& SD,
                    TopOpeBRepDS_DataStructure&    DStr,
-                   const Standard_Boolean         ,
+                   const Standard_Boolean         /*isfirst*/,
                    const Standard_Integer         ons)
 {
   if(!SD->IsOnCurve(ons)) return;
@@ -2035,8 +2188,7 @@ static void CutEdge(const TopoDS_Vertex&           V,
   E.Orientation(TopAbs_FORWARD);
   TopExp_Explorer ex;
 
-  // les traiter tous en verifiant que ce n est pas 
-  // deja fait.
+  // process them checking that it has not been done already.
   for(ex.Init(E,TopAbs_VERTEX);ex.More();ex.Next()) {
     const TopoDS_Vertex& vv = TopoDS::Vertex(ex.Current());
     if(vv.IsSame(V)) {
@@ -2046,16 +2198,17 @@ static void CutEdge(const TopoDS_Vertex&           V,
     }
   }
 }
+
 //=======================================================================
 //function : findIndexPoint
 //purpose  : returns in <ipon> index of point bounding a courve interfering
 //           with <Fd> and coinciding with last common point on <OnS> face
 //=======================================================================
-static Standard_Boolean 
-  findIndexPoint(const TopOpeBRepDS_DataStructure& DStr,
-                const Handle(ChFiDS_SurfData)&    Fd,
-                const Standard_Integer            OnS,
-                Standard_Integer&                 ipoin)
+
+static Standard_Boolean findIndexPoint(const TopOpeBRepDS_DataStructure& DStr,
+                                      const Handle(ChFiDS_SurfData)&    Fd,
+                                      const Standard_Integer            OnS,
+                                      Standard_Integer&                 ipoin)
 {
   ipoin = 0;
   gp_Pnt P = Fd->Vertex(Standard_False,OnS).Point();
@@ -2082,10 +2235,13 @@ static Standard_Boolean
   }
   return Standard_False;
 }
+// *******************************************************************
 //=======================================================================
 //function : FilDS
 //purpose  : 
 //=======================================================================
+// *******************************************************************
+
 void  ChFi3d_FilDS(const Standard_Integer       SolidIndex,
                   const Handle(ChFiDS_Stripe)& CorDat,
                   TopOpeBRepDS_DataStructure&  DStr,
@@ -2125,8 +2281,8 @@ void  ChFi3d_FilDS(const Standard_Integer       SolidIndex,
   TopOpeBRepDS_ListOfInterference& SolidInterfs = 
     DStr.ChangeShapeInterferences(SolidIndex);
 
-  ChFiDS_Regul regcout; // pour les CD closed and tangent
-  ChFiDS_Regul regfilfil; // pour les joints Surf/Surf
+  ChFiDS_Regul regcout; // for closed and tangent CD
+  ChFiDS_Regul regfilfil; // for connections Surf/Surf
 
   ChFiDS_CommonPoint V3;
   ChFiDS_CommonPoint V4;
@@ -2145,7 +2301,9 @@ void  ChFi3d_FilDS(const Standard_Integer       SolidIndex,
        if (FiLen > Precision::PConfusion()) continue;
        TopOpeBRepDS_Curve& cc = DStr.ChangeCurve(IcFil1);
        cc.ChangeCurve().Nullify();
-
+#ifdef DEB
+       cout << "Nullify degenerated FI of SurfData " << j <<" on S" << onS << endl;
+#endif
        // care of CommonPoint, eap occ354
        if (j!=1 && j!=SeqFil.Length()) continue;
        Standard_Boolean isfirst = (j==1);
@@ -2182,7 +2340,7 @@ void  ChFi3d_FilDS(const Standard_Integer       SolidIndex,
       isInDS1 = isInDS1 || SeqFil.Length()-j+1 < CorDat->IsInDS(Standard_False);
     }
     
-    // creation de la SolidSurfaceInterference
+    // creation of SolidSurfaceInterference
     
     Handle(TopOpeBRepDS_SolidSurfaceInterference) 
       SSI = new TopOpeBRepDS_SolidSurfaceInterference
@@ -2199,10 +2357,10 @@ void  ChFi3d_FilDS(const Standard_Integer       SolidIndex,
     const ChFiDS_CommonPoint& V1 = Fd->VertexFirstOnS1();
     const ChFiDS_CommonPoint& V2 = Fd->VertexFirstOnS2();
 
-    // Un petit traitement pour gerer les interference doubles
+    // Processing to manage double interferences
     if (j>1) {
       if (V1.IsOnArc() && V3.IsOnArc() && V1.Arc().IsSame(V3.Arc())) {
-       //on initialise Iarc1
+       //Iarc1 is initialized
        //Iarc1 = DStr.AddShape(V1.Arc());
        if (ChFi3d_Contains(DStr.ShapeInterferences(Iarc1),Iarc1,Ipoin1) && 
            (V1.TransitionOnArc() != V3.TransitionOnArc()) ) {
@@ -2213,7 +2371,7 @@ void  ChFi3d_FilDS(const Standard_Integer       SolidIndex,
       }
 
       if (V2.IsOnArc() && V4.IsOnArc() && V2.Arc().IsSame(V4.Arc())) {
-       //on initialise Iarc2
+       //Iarc2 is initialized
        //Iarc2 = DStr.AddShape(V2.Arc());
        if ( ChFi3d_Contains(DStr.ShapeInterferences(Iarc2),Iarc2,Ipoin2)  && 
            (V2.TransitionOnArc() != V4.TransitionOnArc()) ) {
@@ -2252,8 +2410,8 @@ void  ChFi3d_FilDS(const Standard_Integer       SolidIndex,
     
     ET1 = TopAbs::Reverse(trafil1);
     
-    // Un petit paragraphe pour traiter les contacts aretes qui touchent 
-    // un vertex de l'obstacle.
+    // A small paragraph to process contacts of edges, which touch 
+    // a vertex of the obstacle.
     if(V1.IsVertex() && Fd->IsOnCurve1()) {
       const TopoDS_Vertex& vv1 = V1.Vertex();
       CutEdge(vv1,Fd,DStr,1,1);
@@ -2277,20 +2435,23 @@ void  ChFi3d_FilDS(const Standard_Integer       SolidIndex,
       Singulier_en_Bout =  (V1.Point().IsEqual(V2.Point(), 0));
       
       if (Singulier_en_Bout) {
-         // Queue de Billard
          if ((!V1.IsVertex()) || (!V2.IsVertex())) {
-
+#if DEB
+          cout << "Singularity at end out of vertex " << endl;
+#endif
         }
         else {
-          isVertex1 = isVertex2 = Standard_True; //precaution...
-          // On elimine l'arete de la spine debouchant sur ce vertex.
+          isVertex1 = isVertex2 = Standard_True; //caution...
+          // The edge is removed from spine starting on this vertex.
           TopoDS_Edge Arcspine = spine->Edges(1);
           BoutdeVtx = V1.Vertex();
           Standard_Integer IArcspine = DStr.AddShape(Arcspine);
           Standard_Integer IVtx = CorDat->IndexFirstPointOnS1();
-
-          TopAbs_Orientation OVtx = TopAbs_FORWARD;;
-
+#ifndef DEB
+          TopAbs_Orientation OVtx = TopAbs_FORWARD;
+#else
+          TopAbs_Orientation OVtx;
+#endif
           for(ex.Init(Arcspine.Oriented(TopAbs_FORWARD),TopAbs_VERTEX); 
               ex.More(); ex.Next()) {
             if(BoutdeVtx.IsSame(ex.Current())) {
@@ -2361,19 +2522,23 @@ void  ChFi3d_FilDS(const Standard_Integer       SolidIndex,
          TCurv.SetSCI(Interfc1,bidinterf);         
        }
       }
-    } // Fin du Traitement Initial (j==1)
+    } // End of the Initial Processing (j==1)
     else {
-      // ---- Interference entre Conges ------
+      // ---- Interference between Fillets ------
       
       if (!isInDS1) {// eap, Apr 29 2002, occ 293 
        
         if (Degene && isVertex1) {
-          // On elimine l'arete de la spine debouchant sur ce vertex.
-          NumEdge++; // On a dejas trouve l'arete precedente du vertex
+          // The edge is removed from the spine starting on this vertex.
+          NumEdge++; // The previous edge of the vertex has already been found.
           TopoDS_Edge Arcspine = spine->Edges(NumEdge);
           Standard_Integer IArcspine = DStr.AddShape(Arcspine);
           Standard_Integer IVtx = DStr.AddShape(BoutdeVtx);
+#ifndef DEB
           TopAbs_Orientation OVtx = TopAbs_FORWARD;
+#else
+          TopAbs_Orientation OVtx;
+#endif
           for(ex.Init(Arcspine.Oriented(TopAbs_FORWARD),TopAbs_VERTEX); 
               ex.More(); ex.Next()) {
             if(BoutdeVtx.IsSame(ex.Current())) {
@@ -2386,7 +2551,7 @@ void  ChFi3d_FilDS(const Standard_Integer       SolidIndex,
           Handle(TopOpeBRepDS_CurvePointInterference) 
             interfv = ChFi3d_FilVertexInDS(OVtx,IArcspine,IVtx,parVtx);
           DStr.ChangeShapeInterferences(IArcspine).Append(interfv);
-        } // Fin de l'elimination
+        } // End of the removal
 
         gp_Pnt2d UV1 = Fd->InterferenceOnS1().PCurveOnSurf()->
           Value(Fd->InterferenceOnS1().FirstParameter());
@@ -2394,7 +2559,7 @@ void  ChFi3d_FilDS(const Standard_Integer       SolidIndex,
           Value(Fd->InterferenceOnS2().FirstParameter());
         TopOpeBRepDS_Curve& TCurv = DStr.ChangeCurve(Icurv);
         if (Degene) {
-          // on associe la pcurve via la SCI a la TopOpeBRepDSCurve.
+          // pcurve is associated via SCI to TopOpeBRepDSCurve.
           ChFi3d_ComputePCurv(UV1,UV2,PCurv,Pardeb,Parfin);       
           Interfc1= ChFi3d_FilCurveInDS (Icurv,Isurf,PCurv,ET1);
           DStr.ChangeSurfaceInterferences(Isurf).Append(Interfc1);
@@ -2414,9 +2579,9 @@ void  ChFi3d_FilDS(const Standard_Integer       SolidIndex,
           DStr.ChangeSurfaceInterferences(Isurf).Append(Interfc1);
         }
       }
-    } // Fin Interference entre conge
+    } // End of Interference between fillet
    
-    // ---- Interference Conges / Faces
+    // ---- Interference Fillets / Faces
     IcFil1 = Fi1.LineIndex();
     
     if (IcFil1!=0 ) {
@@ -2424,8 +2589,8 @@ void  ChFi3d_FilDS(const Standard_Integer       SolidIndex,
                                     Fi1.PCurveOnSurf(),trafil1);
       DStr.ChangeSurfaceInterferences(Isurf).Append(Interfc3);
       Ishape1 = Fd->IndexOfS1();
-      // Cas d arete degeneree : on associe la pcurve via la SCI 
-      // a la TopOpeBRepDSCurve.
+      // Case of degenerated edge : pcurve is associated via SCI 
+      // to TopOpeBRepDSCurve.
       TopOpeBRepDS_Curve& cc = DStr.ChangeCurve(IcFil1);
       if(cc.Curve().IsNull()) {
        Handle(TopOpeBRepDS_Interference) bidinterf;
@@ -2450,7 +2615,7 @@ void  ChFi3d_FilDS(const Standard_Integer       SolidIndex,
        }
        reglist.Append(regon1);
       }
-      // Indice et type du point en Fin
+      // Indice and type of the point at End
       Standard_Integer ipoin;
       Standard_Boolean isVertex = Fd->VertexLastOnS1().IsVertex();
       if (j == SeqFil.Length()) ipoin = CorDat->IndexLastPointOnS1();
@@ -2474,17 +2639,22 @@ void  ChFi3d_FilDS(const Standard_Integer       SolidIndex,
                  SeqFil(1)->VertexFirstOnS1().Point(), 1.e-7)) ||
                  (Fd->VertexLastOnS1().Point().IsEqual(
                  SeqFil(SeqFil.Length())->VertexLastOnS1().Point(), 1.e-7))) )
-       // Cas des SurfData coupe de facon "Triangulaire"   
+       // Case of SurfData cut in "Triangular" way.   
        ipoin=CorDat->IndexLastPointOnS1();
 
       // eap, Apr 29 2002, occ 293
       else if (isInDS2 && findIndexPoint(DStr, Fd, 1, ipoin)) {
-
+#ifdef DEB
+       cout << "ChFi3d_FilDS: point " << ipoin <<" is found in DS" << endl;
+#endif
       }
       else ipoin = ChFi3d_IndexPointInDS(Fd->VertexLastOnS1(),DStr);
       
       TopOpeBRepDS_ListOfInterference& Li = DStr.ChangeCurveInterferences(IcFil1);
-
+#ifdef DEB
+      if (!Li.IsEmpty()) 
+       cout<<"FilDS : Tangency line on several SurfData"<< endl;
+#endif
       if (!ChFi3d_Contains(Li,IcFil1,Ipoin1)) { 
        
        Interfp1 = ChFi3d_FilPointInDS(TopAbs_FORWARD,IcFil1,Ipoin1,
@@ -2506,8 +2676,8 @@ void  ChFi3d_FilDS(const Standard_Integer       SolidIndex,
                                   Fi2.PCurveOnSurf(),trafil2);
       DStr.ChangeSurfaceInterferences(Isurf).Append(Interfc4);
       Ishape2 = Fd->IndexOfS2();
-      // Cas d arete degeneree : on associe la pcurve via la SCI 
-      // a la TopOpeBRepDSCurve.
+      // Case of degenerated edge : pcurve is associated via SCI 
+      // to TopOpeBRepDSCurve.
       TopOpeBRepDS_Curve& cc = DStr.ChangeCurve(IcFil2);
       if(cc.Curve().IsNull()) {
        Handle(TopOpeBRepDS_Interference) bidinterf;
@@ -2532,7 +2702,7 @@ void  ChFi3d_FilDS(const Standard_Integer       SolidIndex,
        }
        reglist.Append(regon2);
       }
-      // Indice et type du point en Fin
+      // Indice and type of the point in End
       Standard_Integer ipoin;
       Standard_Boolean isVertex = Fd->VertexLastOnS2().IsVertex();
       if (j == SeqFil.Length() ) ipoin = CorDat->IndexLastPointOnS2();
@@ -2552,7 +2722,7 @@ void  ChFi3d_FilDS(const Standard_Integer       SolidIndex,
        isVertex = isVertex2;
       }
       else if(Fd->VertexLastOnS2().Point().IsEqual(
-             Fd->VertexLastOnS1().Point(), 0) ) {  //Pincement !!
+             Fd->VertexLastOnS1().Point(), 0) ) {  //Pinch !!
        ipoin = Ipoin1;
        isVertex = isVertex1;
       }
@@ -2561,17 +2731,22 @@ void  ChFi3d_FilDS(const Standard_Integer       SolidIndex,
                  SeqFil(1)->VertexFirstOnS2().Point(), 1.e-7)) ||
                  (Fd->VertexLastOnS2().Point().IsEqual(
                  SeqFil(SeqFil.Length())->VertexLastOnS2().Point(), 1.e-7))) )
-       // Cas des SurfData coupe de facon "Triangulaire"    
+       // Case of SurfData cut in "Triangular" way.   
        ipoin=CorDat->IndexLastPointOnS2();
 
       // eap, Apr 29 2002, occ 293
       else if (isInDS2 && findIndexPoint(DStr, Fd, 2, ipoin)) {
-
+#ifdef DEB
+       cout << "ChFi3d_FilDS: point " << ipoin <<" is found in DS" << endl;
+#endif
       }
       else ipoin = ChFi3d_IndexPointInDS(Fd->VertexLastOnS2(),DStr);
       
       TopOpeBRepDS_ListOfInterference& Li = DStr.ChangeCurveInterferences(IcFil2);
-
+#ifdef DEB
+      if (!Li.IsEmpty()) 
+       cout<<"FilDS : Tangency line on several SurfData"<< endl;
+#endif
       if (!ChFi3d_Contains(Li,IcFil2,Ipoin2)) { 
        Interfp2 = ChFi3d_FilPointInDS(TopAbs_FORWARD,IcFil2,Ipoin2,
                                       Fi2.FirstParameter(), isVertex2);
@@ -2658,18 +2833,25 @@ void  ChFi3d_FilDS(const Standard_Integer       SolidIndex,
    
     Degene = V3.Point().IsEqual(V4.Point(), 0);
 
-    // Traitement des cas degenere     
+    // Processing of degenerated case     
     if (Degene) {
-      // Queue de Billard
       Standard_Boolean Vertex = (V3.IsVertex()) && (V4.IsVertex());
       if (!Vertex) {
-
+#if DEB
+       if (j == SeqFil.Length()) {
+         cout << " Singularity at the end is out of vertex " << endl;
+       }
+#endif
       }
       else {
-       // On elimine l'arete de la spine debouchant sur ce vertex.
+       // The edge of the spine starting on this vertex is removed.
        Standard_Boolean Trouve = Standard_False;
        TopoDS_Edge Arcspine;
+#ifndef DEB
        TopAbs_Orientation OVtx = TopAbs_FORWARD;
+#else
+       TopAbs_Orientation OVtx;
+#endif
        BoutdeVtx = V3.Vertex();
            
        while (NumEdge<= spine->NbEdges() && !Trouve) { 
@@ -2683,7 +2865,7 @@ void  ChFi3d_FilDS(const Standard_Integer       SolidIndex,
               else Trouve = Standard_True;
            }
          }
-         if (!Trouve) NumEdge++; // On passe a l'arete suivante
+         if (!Trouve) NumEdge++; // Go to the next edge
        }
        Standard_Integer IArcspine = DStr.AddShape(Arcspine);
        Standard_Integer IVtx;
@@ -2697,9 +2879,9 @@ void  ChFi3d_FilDS(const Standard_Integer       SolidIndex,
          interfv = ChFi3d_FilVertexInDS(OVtx,IArcspine,IVtx,parVtx);
        DStr.ChangeShapeInterferences(IArcspine).Append(interfv);
       }
-    } // fin du cas Degene
+    } // end of degenerated case
     else if (!(Closed && j == SeqFil.Length())) {
-      // Traitement des interference Point / Edges
+      // Processing of interference Point / Edges
       if (V3.IsOnArc()) {
        if(!(V3.IsVertex() && Fd->IsOnCurve1())) {
          Iarc1 = DStr.AddShape(V3.Arc());
@@ -2726,6 +2908,7 @@ void  ChFi3d_FilDS(const Standard_Integer       SolidIndex,
     }
   }
 }
+
 //=======================================================================
 //function : StripeEdgeInter
 //purpose  : This function examines two stripes for an intersection 
@@ -2735,6 +2918,7 @@ void  ChFi3d_FilDS(const Standard_Integer       SolidIndex,
 //           this function will become useless.
 //author   : akm, 06/02/02. Against bug OCC119.
 //=======================================================================
+
 void ChFi3d_StripeEdgeInter (const Handle(ChFiDS_Stripe)& theStripe1,
                             const Handle(ChFiDS_Stripe)& theStripe2,
                             TopOpeBRepDS_DataStructure&  /*DStr*/,
@@ -2824,6 +3008,7 @@ void ChFi3d_StripeEdgeInter (const Handle(ChFiDS_Stripe)& theStripe1,
 //function : IndexOfSurfData
 //purpose  : 
 //=======================================================================
+
 Standard_Integer ChFi3d_IndexOfSurfData(const TopoDS_Vertex& V1,
                                        const Handle(ChFiDS_Stripe)& CD,
                                        Standard_Integer& sens)
@@ -2847,6 +3032,7 @@ Standard_Integer ChFi3d_IndexOfSurfData(const TopoDS_Vertex& V1,
   }
   return Index; 
 }  
+
 //=======================================================================
 //function : EdgeFromV1
 //purpose  : 
@@ -2874,9 +3060,49 @@ TopoDS_Edge ChFi3d_EdgeFromV1(const TopoDS_Vertex& V1,
     }
   return E;
 }
+
+#ifdef DRAW
+//=======================================================================
+//function : drawline
+//purpose  : 
+//=======================================================================
+
+static void drawline(const Handle(IntSurf_LineOn2S)& lin)
+{
+  Handle(Draw_Marker3D) p3d;
+  Handle(Draw_Marker2D) p2d;
+  Handle(Draw_Marker2D) p2d2;
+  
+  for(Standard_Integer i = 1; i <= lin->NbPoints(); i++) {
+    const IntSurf_PntOn2S& pt = lin->Value(i);
+    gp_Pnt point = pt.Value();
+    Standard_Real u,v,uu,vv;
+    pt.ParametersOnS1(u,v);
+    gp_Pnt2d point2d(u,v);
+    pt.ParametersOnS2(uu,vv);
+    gp_Pnt2d point2d2(uu,vv);
+    if(i == 1 || i == lin->NbPoints()) {
+      p3d = new Draw_Marker3D(point,Draw_Square,Draw_rouge);
+      p2d = new Draw_Marker2D(point2d,Draw_Square,Draw_rouge);
+      p2d2 = new Draw_Marker2D(point2d2,Draw_Square,Draw_rouge);
+    }
+    else {
+      p3d = new Draw_Marker3D(point,Draw_Square,Draw_jaune);
+      p2d = new Draw_Marker2D(point2d,Draw_Square,Draw_jaune);
+      p2d2 = new Draw_Marker2D(point2d2,Draw_Square,Draw_jaune);
+    }
+    dout<<p3d;
+    dout<<p2d;
+    dout<<p2d2;
+    
+    dout.Flush();
+  }
+}
+#endif
+
 //=======================================================================
 //function : ConvTol2dToTol3d
-//purpose  : Comme son nom l indique.
+//purpose  : 
 //=======================================================================
 
 Standard_Real ChFi3d_ConvTol2dToTol3d(const Handle(Adaptor3d_HSurface)& S,
@@ -2888,10 +3114,11 @@ Standard_Real ChFi3d_ConvTol2dToTol3d(const Handle(Adaptor3d_HSurface)& S,
   Standard_Real vresto3d = 1.e-7*tol2d/vres;
   return Max(uresto3d,vresto3d);
 }
+
 //=======================================================================
 //function : EvalTolReached
-//purpose  : Comme son nom l indique la fonction ci dessus etant trop
-//           dure lorsque le parametrage des surfaces n est pas homogene.
+//purpose  : The function above is too hard because 
+//           parametrization of surfaces is not homogenous.
 //=======================================================================
 
 Standard_Real ChFi3d_EvalTolReached(const Handle(Adaptor3d_HSurface)& S1,
@@ -2931,10 +3158,10 @@ Standard_Real ChFi3d_EvalTolReached(const Handle(Adaptor3d_HSurface)& S1,
 //function : trsfsurf
 //purpose  : 
 //=======================================================================
+
 Handle(Geom_Surface) trsfsurf(const Handle(Adaptor3d_HSurface)& HS,
                              Handle(Adaptor3d_TopolTool)&      /*dom*/)
 {
-  //Pour l utilisation des domaines voir avec BUBUCH!!
   Handle(Geom_Surface) res;
   Handle(BRepAdaptor_HSurface) hbs = Handle(BRepAdaptor_HSurface)::DownCast(HS);
   Handle(GeomAdaptor_HSurface) hgs = Handle(GeomAdaptor_HSurface)::DownCast(HS);
@@ -2953,7 +3180,7 @@ Handle(Geom_Surface) trsfsurf(const Handle(Adaptor3d_HSurface)& HS,
   Standard_Real U1 = HS->FirstUParameter(), U2 = HS->LastUParameter();
   Standard_Real V1 = HS->FirstVParameter(), V2 = HS->LastVParameter();
   if(!res.IsNull()) {
-  // Blindage contre les Construction Error intempestifs
+  // Protection against Construction Errors
     Standard_Real u1, u2, v1, v2;
     res->Bounds( u1, u2, v1, v2);
     if (!res->IsUPeriodic()) {
@@ -2970,10 +3197,11 @@ Handle(Geom_Surface) trsfsurf(const Handle(Adaptor3d_HSurface)& HS,
 //  dom = new Adaptor3d_TopolTool(temp);
   return res;
 }
+
 //=======================================================================
 //function : CurveCleaner
-//purpose  : Rend une BSpline le plus continue possible
-//           a une tolerance donne
+//purpose  : Makes a BSpline as much continued as possible
+//           at a given tolerance
 //=======================================================================
 static void CurveCleaner(Handle(Geom_BSplineCurve)& BS, 
                         const Standard_Real Tol,
@@ -2985,24 +3213,26 @@ static void CurveCleaner(Handle(Geom_BSplineCurve)& BS,
   const Standard_Integer NbK=BS->NbKnots();
   
   for (Mult = BS->Degree(); Mult > MultMin; Mult--) {
-    tol *= 0.5; // Reduction progressive
+    tol *= 0.5; // Progressive reduction
     for (ii=NbK; ii>1; ii--) {
       if (BS->Multiplicity(ii) == Mult)
         BS->RemoveKnot(ii, Mult-1, tol);
     }
   }
 }
+
 //=======================================================================
 //function : ComputeCurves
-//purpose  : Calcule une intersection bornee entre deux HSurfaces.
-//           Il faut connaitre les extremites de l intersection et 
-//           les surfaces doivent avoir ete retouchees en entree 
-//           pour encadrer au mieux (ni trop pres ni trop loin) les
-//           points de debut et fin de l intersection.
-//           Les intersections analytiques sont traitees a part.
-//           <wholeCurv> means that resulting curve is restricted by
+//purpose  : Calculates intersection between two HSurfaces.
+//           It is necessary to know the extremities of intersection and  
+//           the surfaces should be processed at input 
+//           to fit as good as possible (neither too close nor too far) 
+//           the points of beginning and end of the intersection.
+//           The analytic intersections are processed separately.
+//           <wholeCurv> means that the resulting curve is restricted by
 //           boundaries of input surfaces (eap 30 May occ354)
 //=======================================================================
+
 Standard_Boolean ChFi3d_ComputeCurves(Handle(Adaptor3d_HSurface)&   S1,
                                      Handle(Adaptor3d_HSurface)&   S2,
                                      const TColStd_Array1OfReal& Pardeb,
@@ -3022,8 +3252,8 @@ Standard_Boolean ChFi3d_ComputeCurves(Handle(Adaptor3d_HSurface)&   S1,
   gp_Pnt pdeb2 = S2->Value(Pardeb(3),Pardeb(4));
   gp_Pnt pfin2 = S2->Value(Parfin(3),Parfin(4));
 
-  Standard_Real distrefdeb = pdeb1.Distance(pdeb2);//mesure la solidite
-  Standard_Real distreffin = pfin1.Distance(pfin2);//des donnees d entree
+  Standard_Real distrefdeb = pdeb1.Distance(pdeb2);//checks the worthiness 
+  Standard_Real distreffin = pfin1.Distance(pfin2);//of input data
   if(distrefdeb < tol3d) distrefdeb = tol3d;
   if(distreffin < tol3d) distreffin = tol3d;
 
@@ -3035,10 +3265,10 @@ Standard_Boolean ChFi3d_ComputeCurves(Handle(Adaptor3d_HSurface)&   S1,
   if(distref < distrefdeb) distref = distrefdeb;
   if(distref < distreffin) distref = distreffin;
 
-  //On traite a part quelques cas analytiques.
-  //Pour reorienter eventuellement le resultat de l intersection
-  //analytique, on postule que la tangente en debut doit etre dans
-  //le sens de la corde deb/fin.
+  //Some analytic cases are processed separately.
+  //To reorientate the result of the analythic intersection,
+  //it is stated that the beginning of the tangent should be
+  //in the direction of the start/end line.
   gp_Vec Vint, Vref(pdeb,pfin);
   gp_Pnt Pbid;
   Standard_Real Udeb,Ufin;
@@ -3155,8 +3385,7 @@ Standard_Boolean ChFi3d_ComputeCurves(Handle(Adaptor3d_HSurface)&   S1,
     }
   }
   else {
-    // ici on attaque GeomInt.
-    //Pour l utilisation des domaines voir avec BUBUCH!!
+    // here GeomInt is approached.
     Handle(Adaptor3d_TopolTool) dom1,dom2;
     Handle(Geom_Surface) gs1 = trsfsurf(S1,dom1);
     Handle(Geom_Surface) gs2 = trsfsurf(S2,dom2);
@@ -3174,17 +3403,17 @@ Standard_Boolean ChFi3d_ComputeCurves(Handle(Adaptor3d_HSurface)&   S1,
 #if defined(IRIX) || defined(__sgi)
         if(nbl==0) {
 
-//  solution de rattrapage pour SGI 
-//  si l'intersection de gs1 avec gs2 ne marche pas alors on  tent
-// l'intersection de gs2 avec gs1 
+//  solution of adjustment for SGI 
+//  if the intersection of gs1 with gs2 doesnot work
+//  then the intersection of gs2 with gs1 is attempted.
 
           inter.Perform(gs2,gs1,tolap,1,1,1);
 //          inter.Perform(gs2,dom2,gs1,dom1,tolap,1,1,1);
           if(!inter.IsDone()) return Standard_False; 
          nbl = inter.NbLines(); 
 
-//  si GeomInt ne rend pas d'intersection on ne tente pas la solution de 
-//  rattrapage 
+//  if GeomInt does not make the intersection the solution of adjustment 
+//  is not attempted 
             if (nbl==0) return Standard_False;
         }
 #endif
@@ -3253,7 +3482,7 @@ Standard_Boolean ChFi3d_ComputeCurves(Handle(Adaptor3d_HSurface)&   S1,
            C3d = new Geom_TrimmedCurve(C3d,Uf,Ul);
            Pc1 = new Geom2d_TrimmedCurve(Pc1,Uf,Ul);
            Pc2 = new Geom2d_TrimmedCurve(Pc2,Uf,Ul);
-           //faut il renverser ?
+           //is it necesary to invert ?
            Standard_Real distdeb = ptestdeb.Distance(pdeb);
            Standard_Real distfin = ptestfin.Distance(pfin);
            if(distdeb > distref || distfin > distref) {
@@ -3287,23 +3516,25 @@ Standard_Boolean ChFi3d_ComputeCurves(Handle(Adaptor3d_HSurface)&   S1,
       }
     }
   }
+#ifdef DEB
+  cout<<"fail intersection surf/surf adjustment at the main is attempted"<<endl;
+#endif
   
-  // A ce stade : 
-  // les intersections classiques ont echouees on attaque le
-  // cheminement du desespoir.
+  // At this stage : 
+  // classic intersections have failed, the path is approached in vain.
 //  Standard_Real Step = 0.1;
   while(1) {
-    //Attention les parametres de fleche pour le cheminement et 
-    //de tolerance pour l'approx ne peuvent etre pris comme ceux 
-    //du Builder, on les reestime donc comme on peut.
+    //Attention the parameters of arrow for the path and
+    //the tolerance for the approximation can't be taken as those of the  
+    //Builder, so they are reestimated as much as possible.
     Standard_Real fleche = 1.e-3 * pdeb.Distance(pfin);
     Standard_Real tolap = 1.e-7;
     IntPatch_ThePWalkingInter
       IntKK(S1,S2,tol3d,tol3d,fleche,Step);
     
-    //On connait les extremites de l intersection (Pardeb,Parfin),
-    //on essaye de trouver un point de depart franchement au
-    //milieu pour ne pas embrouiller le cheminement.
+    //The extremities of the intersection (Pardeb,Parfin) are known,
+    //one tries to find the start point at the 
+    //middle to avoid obstacles on the path.
     Standard_Boolean depok = Standard_False;
     IntSurf_PntOn2S pintdep;
     TColStd_Array1OfReal depart(1,4);
@@ -3317,6 +3548,9 @@ Standard_Boolean ChFi3d_ComputeCurves(Handle(Adaptor3d_HSurface)&   S1,
       depok = IntKK.PerformFirstPoint(depart,pintdep);
     } 
     if(!depok) {
+#ifdef DEB 
+      cout<<"intersection surf/surf : failed to compute the start point"<<endl;
+#endif
       return Standard_False;
     }
     pintdep.Parameters(depart(1),depart(2),depart(3),depart(4));
@@ -3325,15 +3559,17 @@ Standard_Boolean ChFi3d_ComputeCurves(Handle(Adaptor3d_HSurface)&   S1,
     if (IntKK.NbPoints() <= 30) {
       Step *= 0.5;
       if (Step <= 0.0001) {
+#ifdef DEB 
+       cout<<"intersection surf/surf : not enough points"<<endl;
+#endif
        return Standard_False;
       }
     }
     else{
-      // A ce stade on a une LineOn2S presentable, on la tronque entre les 
-      // points les plus proches des extremites connues on en fait une 
-      // WLine et on lance l approx.
-      // On retouche ensuite le resultat pour avoir les bons points debut 
-      // et fin.
+      // At this stage there is a presentable LineOn2S, it is truncated  
+      // between the points closest to known  extremites 
+      // in fact there is a WLine and the approximation is launched.
+      // Then the result is corrected to get proper start and end points.
       const Handle(IntSurf_LineOn2S)& L2S = IntKK.Line();
       
       gp_Pnt codeb1 = S1->Value(Pardeb(1),Pardeb(2));
@@ -3352,7 +3588,11 @@ Standard_Boolean ChFi3d_ComputeCurves(Handle(Adaptor3d_HSurface)&   S1,
       Standard_Real ddeb = Precision::Infinite(); 
       Standard_Real dfin = Precision::Infinite();
       Standard_Real dd;
+#ifndef DEB
       Standard_Integer indd = 0, indf = 0;
+#else
+      Standard_Integer indd, indf;
+#endif
       for(i = 1; i <= nbp; i++) {
        dd = L2S->Value(i).Value().Distance(pntd);
        if(dd < ddeb) { ddeb = dd; indd = i;}
@@ -3368,8 +3608,8 @@ Standard_Boolean ChFi3d_ComputeCurves(Handle(Adaptor3d_HSurface)&   S1,
       for (i = indf + 1; i <= nbp; i++) { L2S->RemovePoint(indf + 1); }
       nbp = indf;
       if(nbp==1) return Standard_False;
-      //On insere les extremites dans la ligne si les points extremites de
-      //celle-ci en sont trop eloignes et si pardeb et parfin sont bons.
+      //The extremities are inserted in the line if the extremity points on it 
+      //are too far and if pardeb and parfin are good.
       if(ddeb >= tol3d && bondeb) {
        IntSurf_PntOn2S p1 = L2S->Value(1);
        IntSurf_PntOn2S p2 = L2S->Value(2);
@@ -3417,12 +3657,16 @@ Standard_Boolean ChFi3d_ComputeCurves(Handle(Adaptor3d_HSurface)&   S1,
        }
        dfin = 0.;
       }      
-      //
-      Handle(IntPatch_WLine)   WL = new IntPatch_WLine(L2S,Standard_False);
+#ifdef DRAW
+      ChFi3d_SettraceDRAWINT(Standard_True);
+      if(ChFi3d_GettraceDRAWINT()) drawline(L2S);
+#endif
+      Handle(IntPatch_WLine) 
+       WL = new IntPatch_WLine(L2S,Standard_False);
       
       GeomInt_WLApprox approx;
       approx.SetParameters(tolap,tol2d,4,8,0,1);
-      // gerer ici les approx inutiles sur les plans!!!!!!!!!!!
+      // manage here the approximations that are not useful on planes!
       approx.Perform(S1,S2,WL,
                     Standard_True,Standard_True,Standard_True,
                     1,nbp);
@@ -3439,7 +3683,7 @@ Standard_Boolean ChFi3d_ComputeCurves(Handle(Adaptor3d_HSurface)&   S1,
       mbs.Curve(2,pol2d1);
       TColgp_Array1OfPnt2d pol2d2(1,nbpol);
       mbs.Curve(3,pol2d2);
-      // On recale les extremites de l intersection sur les points connus.
+      // The extremities of the intersection are reset on known points.
       if(ddeb >= tol1) {
        pol3d(1) = pntd;
        pol2d1(1).SetCoord(Pardeb(1),Pardeb(2));
@@ -3467,7 +3711,7 @@ Standard_Boolean ChFi3d_ComputeCurves(Handle(Adaptor3d_HSurface)&   S1,
 
 //=======================================================================
 //function : IntCS
-//purpose  : Calcul rapide de l intersection courbe surface.
+//purpose  : Fast calculation of the intersection curve surface.
 //
 //=======================================================================
 
@@ -3484,7 +3728,11 @@ Standard_Boolean ChFi3d_IntCS(Handle(Adaptor3d_HSurface)& S,
   IntCurveSurface_IntersectionPoint pint;
   Intersection.Perform(C,S);
   Standard_Boolean keepfirst = (wc < -1.e100), keeplast = (wc > 1.e100);
+#ifndef DEB
   Standard_Real temp = 0.;
+#else
+  Standard_Real temp;
+#endif
   if(keepfirst) temp = 1.e100;
   if(keeplast) temp = -1.e100;
   Standard_Real dist = 2.e100;
@@ -3528,8 +3776,8 @@ Standard_Boolean ChFi3d_IntCS(Handle(Adaptor3d_HSurface)& S,
 
 //=======================================================================
 //function : ComputesIntPC
-//purpose  : Intersection de deux PCurves de type FaceInterference
-//           les parametres sur les pcurves du point solution sont 
+//purpose  : Intersection of two PCurves of type FaceInterference
+//           the parameters of the pcurves at the solution point are 
 //           UInt1,UInt2
 //=======================================================================
 
@@ -3544,10 +3792,6 @@ void ChFi3d_ComputesIntPC (const ChFiDS_FaceInterference&      Fi1,
   ChFi3d_ComputesIntPC(Fi1,Fi2,HS1,HS2,UInt1,UInt2,bid);
 }
 
-//=======================================================================
-//function : ChFi3d_ComputesIntPC
-//purpose  : 
-//=======================================================================
 void ChFi3d_ComputesIntPC (const ChFiDS_FaceInterference&      Fi1,
                           const ChFiDS_FaceInterference&      Fi2,
                           const Handle(GeomAdaptor_HSurface)& HS1,
@@ -3556,9 +3800,9 @@ void ChFi3d_ComputesIntPC (const ChFiDS_FaceInterference&      Fi1,
                           Standard_Real&                      UInt2,
                           gp_Pnt&                             P)
 {    
-  // Une seule intersection a realiser, on prend tout de meme
-  // le soin de valider les extremites par un extrema c3d/c3d
-  // realise sur les pcurveonsurf des conges.
+  // Only one intersection to be carried out, however, the effort
+  // is taken to check the extremities by an extrema c3d/c3d
+  // created on pcurveonsurf of fillets.
   
   Standard_Real x,y,distref2;
   Fi1.PCurveOnSurf()->Value(UInt1).Coord(x,y);
@@ -3567,7 +3811,7 @@ void ChFi3d_ComputesIntPC (const ChFiDS_FaceInterference&      Fi1,
   gp_Pnt p3d2 = HS2->Value(x,y);
   distref2 = p3d1.SquareDistance(p3d2);
   P.SetXYZ(0.5*(p3d1.XYZ() + p3d2.XYZ()));
-  // recalcul de l'extrema
+  // recalculation of the extremums
   Standard_Real delt1 = 
     Min(0.1,0.05*(Fi1.LastParameter() - Fi1.FirstParameter()));
   Handle(Geom2dAdaptor_HCurve) hc2d1 = 
@@ -3599,15 +3843,16 @@ void ChFi3d_ComputesIntPC (const ChFiDS_FaceInterference&      Fi1,
 //           SurfData Fd1 and trims it to allow the intersection computation
 
 //=======================================================================
+
 Handle(GeomAdaptor_HSurface) ChFi3d_BoundSurf(TopOpeBRepDS_DataStructure&    DStr,
                                              const Handle(ChFiDS_SurfData)& Fd1,
                                              const Standard_Integer&        IFaCo1,
                                              const Standard_Integer&        IFaArc1)
 {
-  //rmq : comme en fait les 2 interferences de Fd1 ne servent qu'a donner le
-  //      bornes, les indices  IFaCo1 et IFaArc1 sont inutiles.
-  //      On les garde ici en option au cas ou il faudrait borner de facon plus
-  //      restrictive (avec des points d'intersection en argument en plus).
+  //rmq : as in fact 2 interferences of Fd1 serve only to set limit
+  //      indexes IFaCo1 and IFaArc1 are not useful.
+  //      They are preserver here as an option in case it will be necessary to set 
+  //      more restrictive limits (with intersection points as additional argument).
   
   Handle(GeomAdaptor_HSurface) HS1 = new GeomAdaptor_HSurface();
   GeomAdaptor_Surface& S1 = HS1->ChangeSurface();
@@ -3634,7 +3879,7 @@ Handle(GeomAdaptor_HSurface) ChFi3d_BoundSurf(TopOpeBRepDS_DataStructure&    DSt
     S1.Load(DStr.Surface(Fd1->Surf()).Surface(),
            mu,Mu,mv-Dv,Mv+Dv);
   }
-  //Dans le cas d'un tore ou cone, il ne faut pas que l'agrandissement des bounds engendrent une surface avec une periode plus grande que 2PI. lvt
+  //In the case of a torus or cone, it is not necessary that the bounds create a surface with period more than 2PI. 
   else if (styp == GeomAbs_Torus ||
           styp == GeomAbs_Cone) {
     Du = Min(PI-0.5*Du,0.1*Du);
@@ -3650,6 +3895,9 @@ Handle(GeomAdaptor_HSurface) ChFi3d_BoundSurf(TopOpeBRepDS_DataStructure&    DSt
   }
   return HS1;
 }
+
+
+
 //=======================================================================
 //function : SearchPivot
 //purpose  : 
@@ -3658,14 +3906,14 @@ Standard_Integer ChFi3d_SearchPivot(Standard_Integer* s,
                                    Standard_Real u[3][3],
                                    const Standard_Real t)
 {
-  //Cette fonction recherche comme pivot une cd dont les sections 
-  //ne se croisent pas sur la face opposee. 
-  //         - il y aura peut etre des cas suffisamment asymetriques
-  //           pour qu aucun des trois conges ne convienne!! A VOIR.
-  //         - dans le cas ou plusieurs conviennent on prend l
-  //           premier qui n est pas forcement le meilleur, prevoir 
-  //           d affiner cela en comparant les parametres sur les
-  //           lignes guide et (/ou) les rayons.
+  //           This function finds as pivot a cd the sections which of
+  //           do not cross on the opposite face. 
+  //         - probably there will be cases asymmetric to the point that
+  //           none of tree fillets will match! To be SEEN.
+  //         - in case when several fillets match th
+  //           first one taken is not inevitably the best 
+  //           it should be refined by comparing the parameters on 
+  //           guide lines and (/or) radiuses.
   
   Standard_Boolean bondeb,bonfin;
   for(Standard_Integer i = 0; i <= 2; i++) {
@@ -3800,7 +4048,11 @@ void ChFi3d_TrimCurve(const Handle(Geom_Curve)& gc,
                      const gp_Pnt& LastP,
                      Handle(Geom_TrimmedCurve)& gtc)
 {
+#ifndef DEB
   Standard_Real uf = 0.,ul = 0.;
+#else
+  Standard_Real uf,ul;
+#endif
   GeomAdaptor_Curve gac(gc);
   switch ( gac.GetType() ) {
   case GeomAbs_Line :
@@ -3850,12 +4102,11 @@ void ChFi3d_TrimCurve(const Handle(Geom_Curve)& gc,
   gtc = new Geom_TrimmedCurve(gc,uf,ul);
 }
 
-
-
 //=======================================================================
-//function : GoodExt
+//function : PerformElSpine
 //purpose  : 
 //=======================================================================
+
 static Standard_Boolean GoodExt(const Handle(Geom_Curve)& C,
                                const gp_Vec&             V,
                                const Standard_Real       f,
@@ -3872,39 +4123,26 @@ static Standard_Boolean GoodExt(const Handle(Geom_Curve)& C,
   }
   return Standard_True;
 }
-//=======================================================================
-//function : PerformElSpine
-//purpose  : 
-//=======================================================================
-Standard_EXPORT 
-  void ChFi3d_PerformElSpine(Handle(ChFiDS_HElSpine)& HES,
-                            Handle(ChFiDS_Spine)&    Spine,
-                            const GeomAbs_Shape      continuity,
-                            const Standard_Real      tol) 
+
+Standard_EXPORT void ChFi3d_PerformElSpine(Handle(ChFiDS_HElSpine)& HES,
+                                          Handle(ChFiDS_Spine)&    Spine,
+                                          const GeomAbs_Shape      continuity,
+                                          const Standard_Real      tol) 
 {
-  
-  Standard_Boolean periodic, Bof, checkdeb, cepadur,bIsSmooth;
-  Standard_Integer IEdge,IF,IL,nbed, iToApproxByC2;
-  Standard_Real WF, WL, Wrefdeb, Wreffin,nwf,nwl,period,pared,tolpared;
-  Standard_Real First, Last, epsV, urefdeb, tolrac;
-  GeomAbs_Shape aContinuity;
-  gp_Pnt PDeb, PFin, Bout;
-  gp_Vec VrefDeb, VrefFin;
-  Handle(Geom_Curve) Cv;
-  Handle(Geom_BoundedCurve) TC;
-  Handle(Geom_BSplineCurve) BS, BSpline;
-  TopoDS_Edge E, Eold;
-  TopoDS_Vertex V;
-    //
   ChFiDS_ElSpine& ES = HES->ChangeCurve();
-  WF = ES.FirstParameter();
-  WL = ES.LastParameter();
-  Wrefdeb = WF;
-  Wreffin = WL;
-  nwf = WF;
-  nwl = WL;
-  nbed = Spine->NbEdges();
-  periodic = Spine->IsPeriodic();
+  
+  Standard_Real WF = ES.FirstParameter();
+  Standard_Real WL = ES.LastParameter();
+  Standard_Real Wrefdeb = WF;
+  Standard_Real Wreffin = WL;
+  Standard_Integer IF,IL;
+  Standard_Boolean periodic = Spine->IsPeriodic();
+  Standard_Real nwf = WF, nwl = WL,period;
+  Standard_Integer nbed = Spine->NbEdges();
+  Standard_Real pared,tolpared;
+  Handle(Geom_BSplineCurve) BSpline;
+  Handle(Geom_BezierCurve) Bezier;
+  
   if(periodic) {
     period = Spine->Period();
     nwf = ElCLib::InPeriod(WF,-tol,period-tol);
@@ -3919,43 +4157,43 @@ Standard_EXPORT
     Wrefdeb = Max(Spine->FirstParameter(IF),WF);
     Wreffin = Min(Spine->LastParameter(IL),WL);
   }
-  //
+  
+  gp_Pnt PDeb, PFin, Bout;
+  gp_Vec VrefDeb, VrefFin;
   Spine->D1(WF,PDeb,VrefDeb);
   Spine->D1(WL,PFin,VrefFin);
   VrefDeb.Normalize();
   VrefFin.Normalize();
-  //
+  
+  Standard_Boolean   Bof;
+  Standard_Integer IEdge;
+  
+  Standard_Real  First, Last, epsV;
   TColgp_Array1OfPnt ExtrapPole(1, 5);
   TColgp_Array1OfPnt ExtraCoeffs(1, 5);
   TColgp_Array1OfXYZ Cont(1,5);
-  // Attention on segmente eventuellement la premiere et la
-  // derniere arete.
-  // Traitment de la premiere arete
-  cepadur = 0;
-  E=Spine->Edges(IF);
-  Bof=BRepLib::BuildCurve3d(E);
+  
+  TopoDS_Edge E, Eold;
+  TopoDS_Vertex V;
+  
+  // Attention, the first and the last edge are segmented
+    
+  // Processing of the first edge
+  E = Spine->Edges(IF);
+  Bof = BRepLib::BuildCurve3d(E);
   const BRepAdaptor_Curve& edc = Spine->CurrentElementarySpine(IF);
   tolpared = edc.Resolution(tol);
-  Cv = BRep_Tool::Curve(E, First, Last);
-  urefdeb = Spine->FirstParameter(IF);
-  checkdeb = (nwf > urefdeb);
-  if(checkdeb) {
-    Spine->Parameter(IF,nwf,pared,0);
-  }
-  //
+  Handle(Geom_Curve) Cv = BRep_Tool::Curve(E, First, Last);
+  Standard_Real urefdeb = Spine->FirstParameter(IF);
+  Standard_Boolean checkdeb = (nwf > urefdeb),cepadur = 0;
+  if(checkdeb) Spine->Parameter(IF,nwf,pared,0);
   if(E.Orientation() == TopAbs_REVERSED) {
     Standard_Real sov = First;
     First = Cv->ReversedParameter(Last);
     Last = Cv->ReversedParameter(sov);
-    if(checkdeb) {
-      pared = Cv->ReversedParameter(pared);
-    }
-    else{
-      pared = First;
-    }
-    if(First < pared) {
-      First = pared; 
-    }
+    if(checkdeb) pared = Cv->ReversedParameter(pared);
+    else pared = First;
+    if(First < pared) First = pared; 
     if(IL == IF) {
       Standard_Real ureffin = Spine->LastParameter(IL);
       Standard_Boolean checkfin = (nwl < ureffin);
@@ -3963,43 +4201,27 @@ Standard_EXPORT
        Spine->Parameter(IL,nwl,pared,0);
        pared = Cv->ReversedParameter(pared);
       }
-      else {
-       pared = Last;
-      }
-      if(pared < Last) {
-       Last = pared; 
-      }
+      else pared = Last;
+      if(pared < Last) Last = pared; 
     }
     Cv = Cv->Reversed();
-  }//if(E.Orientation() == TopAbs_REVERSED) 
-  else {//#1
-    if(!checkdeb) {
-      pared = First;
-    }
-    if(First < pared) {
-      First = pared; 
-    }
+  }
+  else{
+    if(!checkdeb) pared = First;
+    if(First < pared) First = pared; 
     if(IL == IF) {
       Standard_Real ureffin = Spine->LastParameter(IL);
       Standard_Boolean checkfin = (nwl < ureffin);
-      if(checkfin) {
-       Spine->Parameter(IL,nwl,pared,0);
-      }
-      else {
-       pared = Last;
-      }
-      if(pared < Last) {
-       Last = pared; 
-      }
+      if(checkfin) Spine->Parameter(IL,nwl,pared,0);
+      else pared = Last;
+      if(pared < Last) Last = pared; 
     }
-  }// else {//#1
-  //
-  if(Abs(Last-First) < tolpared) {
-    cepadur = 1;
   }
-  //
-  //Petite veru pour les cas ou un KPart a bouffe l arete
-  //sans parvenir a terminer. On tire une droite.
+
+  if(Abs(Last-First) < tolpared) cepadur = 1;
+
+  //In case when KPart consumes an edge
+  //and cannot stop. A line is drawn.
   if(cepadur) {
     Handle(Geom_Line) L;
     gp_Pnt ptemp; gp_Vec vtemp;
@@ -4019,132 +4241,109 @@ Standard_EXPORT
       L = new Geom_Line(olin,d);
       ES.SetCurve(L);
     }
-    return;// => 
+#ifdef DRAW
+    ChFi3d_SettraceDRAWSPINE(1);
+    if (ChFi3d_GettraceDRAWSPINE()) {
+//      POP for NT
+//      char name[100];
+      char* name = new char[100];
+      sprintf(name,"elspine_%d",NbSp++);
+      Handle(Geom_Curve) bid = new Geom_TrimmedCurve(L,WF,WL);
+      DrawTrSurf::Set(name,bid);
+    }
+#endif
+    return;
   }
-  //
-  TC = new (Geom_TrimmedCurve)(Cv, First, Last);
-  BS=GeomConvert::CurveToBSplineCurve(TC);
+  Handle(Geom_BoundedCurve) TC = new (Geom_TrimmedCurve)(Cv, First, Last);
+  Handle(Geom_BSplineCurve) BS;
+  BS = GeomConvert::CurveToBSplineCurve(TC);
   CurveCleaner(BS, Abs(WL-WF)*1.e-4, 0);
-  //
   //Smoothing of the curve
-  iToApproxByC2=0;
-  aContinuity=TC->Continuity();
-  bIsSmooth=ChFi3d_IsSmooth(TC);
-  if (aContinuity < GeomAbs_C2 && !bIsSmooth) {
-    ++iToApproxByC2;
-    BS = ChFi3d_ApproxByC2(TC);
-    TC=BS;
-  }
-  //
-  //  Concatenation des aretes suivantes
+  if (TC->Continuity() < GeomAbs_C2 && !ChFi3d_IsSmooth( TC ))
+    {
+      BS = ChFi3d_ApproxByC2( TC );
+      TC = BS;
+    }
+
+  //  Concatenation of following edges
   GeomConvert_CompCurveToBSplineCurve Concat( TC, Convert_QuasiAngular );
-  //
   Eold = E;
-  for (IEdge=IF+1; IEdge<=IL; ++IEdge) {
+  
+  for (IEdge=IF+1; IEdge<=IL; IEdge++) {
     Standard_Integer iloc = IEdge;
-    if(periodic) {
-      iloc = (IEdge - 1)%nbed + 1;
-    }
-    //
+    if(periodic) iloc = (IEdge - 1)%nbed + 1;
     E = Spine->Edges(iloc);
-    if (BRep_Tool::Degenerated(E)) {
-      continue;
-    }
-    //  
-    epsV = tol;
-    Bof = TopExp::CommonVertex(Eold, E, V);
-    if (Bof) {
-      epsV = BRep_Tool::Tolerance(V);
-    }
-    //
-    Bof = BRepLib::BuildCurve3d(E);
-    if (!Bof) {
-      Standard_ConstructionError::Raise("PerformElSpine : BuildCurve3d error");
-    }
-    //
-    Cv = BRep_Tool::Curve(E, First, Last);
-    if(IEdge == IL) {
-      Standard_Real ureffin = Spine->LastParameter(iloc);
-      Standard_Boolean checkfin = (nwl < ureffin);
-      if(checkfin) {
-       Spine->Parameter(iloc,nwl,pared,0);
-      }
-      else {
-       pared = Last;
-      }
-      if(E.Orientation() == TopAbs_REVERSED) {
-       Standard_Real sov = First;
-       First = Cv->ReversedParameter(Last);
-       Last = Cv->ReversedParameter(sov);
-       if(checkfin) {
-         pared = Cv->ReversedParameter(pared);
+    if (! BRep_Tool::Degenerated(E)) {
+      Bof = TopExp::CommonVertex(Eold, E, V);
+      if (Bof) {epsV = BRep_Tool::Tolerance(V);}
+      else {epsV = tol;}
+      Bof = BRepLib::BuildCurve3d(E);
+      if (!Bof) {Standard_ConstructionError::
+                  Raise("PerformElSpine : BuildCurve3d error");}
+      Cv = BRep_Tool::Curve(E, First, Last);
+      if(IEdge == IL) {
+       Standard_Real ureffin = Spine->LastParameter(iloc);
+       Standard_Boolean checkfin = (nwl < ureffin);
+       if(checkfin) Spine->Parameter(iloc,nwl,pared,0);
+       else pared = Last;
+       if(E.Orientation() == TopAbs_REVERSED) {
+         Standard_Real sov = First;
+         First = Cv->ReversedParameter(Last);
+         Last = Cv->ReversedParameter(sov);
+         if(checkfin) pared = Cv->ReversedParameter(pared);
+         else pared = Last;
+         Cv = Cv->Reversed();
        }
-       else{
-         pared = Last;
-       }
-       Cv = Cv->Reversed();
+       if(pared < Last) Last = pared; 
       }
-      if(pared < Last) {
-       Last = pared; 
+      TC = new (Geom_TrimmedCurve)(Cv, First, Last);
+      BS = GeomConvert::CurveToBSplineCurve(TC);
+      CurveCleaner(BS, Abs(WL-WF)*1.e-4, 0);
+      //Smoothing of the curve
+      if (TC->Continuity() < GeomAbs_C2 && !ChFi3d_IsSmooth( TC ))
+       {
+         BS = ChFi3d_ApproxByC2( TC );
+         TC = BS;
+       }
+      Standard_Real tolrac = Min(tol,epsV);
+      Bof = Concat.Add( TC, 2*tolrac, Standard_True );
+      // if the adding does not go well, it is attempted to increase the tolerance
+      if (!Bof) {
+       Bof = Concat.Add( TC, 2*epsV, Standard_True );
       }
-    }
-    //
-    TC = new (Geom_TrimmedCurve)(Cv, First, Last);
-    BS = GeomConvert::CurveToBSplineCurve(TC);
-    CurveCleaner(BS, Abs(WL-WF)*1.e-4, 0);
-    //
-    //Smoothing of the curve
-    aContinuity=TC->Continuity();
-    bIsSmooth=ChFi3d_IsSmooth(TC);
-    if (aContinuity < GeomAbs_C2 && !bIsSmooth) {
-      ++iToApproxByC2;
-      BS = ChFi3d_ApproxByC2( TC );
-      TC = BS;
-    }
-    //
-    tolrac = Min(tol, epsV);
-    Bof = Concat.Add( TC, 2.*tolrac, Standard_True );
-    // si l'ajout ne s'est pas bien passe on essai d'augmenter la tolerance
-    if (!Bof) {
-      Bof = Concat.Add( TC, 2.*epsV, Standard_True );
-    }
-    if (!Bof) {
-      Bof = Concat.Add( TC, 200.*epsV, Standard_True );
       if (!Bof) {
-       Standard_ConstructionError::Raise("PerformElSpine: spine merged error");
-       }
+       Bof = Concat.Add( TC, 200*epsV, Standard_True );
+#ifdef DEB
+       cout << "Tolerance of chain is not respected" << endl;
+#endif
+       if (!Bof) {Standard_ConstructionError::
+                    Raise("PerformElSpine: spine merged error");}
+      }
     }
     Eold = E;
-  }// for (IEdge=IF+1; IEdge<=IL; ++IEdge) {
-  //
-  // On a la portion d elspine calculee sans prolongements sur la partie 
-  // valide des aretes du chemin.
+  }
+  
+  // The portion of elspine is calculated without extension  
+  // on the valid part of edges of the path.
   BSpline = Concat.BSplineCurve();
-  // On reparametre ici pour coller au mieux a l abscisse des aretes.
+  // There is a reparametrisation to maximally connect the abscissas of edges.
   TColStd_Array1OfReal BSNoeuds (1, BSpline->NbKnots());
   BSpline->Knots(BSNoeuds);
   BSplCLib::Reparametrize (Wrefdeb, Wreffin, BSNoeuds);
   BSpline->SetKnots(BSNoeuds);
-  //
-  // Traitement des Extremites
-  Standard_Integer caredeb, carefin;
-  Standard_Real LocalWL, LocalWF, Angle;
+
+  // Processing of Extremities
+  Standard_Real LocalWL = WL;
+  Standard_Real LocalWF = WF; 
   GeomAdaptor_Curve gacurve;
+  Standard_Integer caredeb = 0, carefin = 0;
   Handle(Geom_BSplineCurve) newc;
-  //
-  caredeb = 0;
-  carefin = 0;
-  Angle = PI*0.75;
-  LocalWL = WL;
-  LocalWF = WF;
+  Standard_Real Angle = PI*0.75;
   if (!ES.IsPeriodic() && !PDeb.IsEqual(BSpline->Pole(1), tol) ) {
-    // Prolongement C3 au debut
-    // afin d'eviter des pts d'inflexions dans la partie utile de la
-    // spine le prolongement se fait jusqu'a un point eloigne.
-    if(BSpline->IsRational()) {
-      caredeb = 1;
-    }
-    //
+    // Extension of C3 at the beginning
+    // to avoid inflexion points in the useful part of the 
+    // spine the extension is done till the distant point.
+    if(BSpline->IsRational()) caredeb = 1;
     Standard_Real rabdist = Wrefdeb - WF;
     Bout = PDeb.Translated(-20*rabdist * VrefDeb);
     Standard_Boolean goodext = 0;
@@ -4158,18 +4357,14 @@ Standard_EXPORT
        goodext = GoodExt(newc,VrefDeb,Wrefdeb,WF,Angle);
       }
     }
-    if(caredeb) {
-      caredeb = newc->NbKnots() - BSpline->NbKnots();
-    }
+    if(caredeb) caredeb = newc->NbKnots() - BSpline->NbKnots();
     BSpline = newc;
     LocalWF = BSpline->FirstParameter();
   }
-  //
+  
   if (!ES.IsPeriodic() && !PFin.IsEqual(BSpline->Pole(BSpline->NbPoles()), tol) ) {
-    // Prolongement C3 en fin
-    if(BSpline->IsRational()) {
-      carefin = 1;
-    }
+    // Extension of C3 at the end
+    if(BSpline->IsRational()) carefin = 1;
     Standard_Real rabdist = WL - Wreffin;
     Bout = PFin.Translated(20*rabdist * VrefFin);
     Standard_Boolean goodext = 0;
@@ -4183,72 +4378,49 @@ Standard_EXPORT
        goodext = GoodExt(newc, VrefFin, Wreffin,WL,Angle);
       }
     }
-    if(carefin) {
-      carefin = newc->NbKnots() - BSpline->NbKnots();
-    }
+    if(carefin) carefin = newc->NbKnots() - BSpline->NbKnots();
     BSpline = newc;
     LocalWL = BSpline->LastParameter(); 
   }
-  //
-  //Reparametrisation et segmentation sur le domaine de la Spine.
-  if(Abs(BSpline->FirstParameter() - WF)<tol) {
-    WF = BSpline->FirstParameter();
-  }
-  if(Abs(BSpline->LastParameter() - WL)<tol) {
-    WL = BSpline->LastParameter();
-  }
-  //
-  if ( (LocalWF<WF) ||  (LocalWL>WL)) {   // pour eviter des pb avec segment!
+  
+  //Reparametrization and segmentation on the domain of the Spine.
+  if(Abs(BSpline->FirstParameter() - WF)<tol) WF = BSpline->FirstParameter();
+  if(Abs(BSpline->LastParameter() - WL)<tol) WL = BSpline->LastParameter();
+  if ( (LocalWF<WF) ||  (LocalWL>WL)) {   // to avoid problems with segment!
     BSpline->Segment(WF, WL);
     ES.FirstParameter(WF);
     ES.LastParameter(WL);
   }
-  //
   if (BSpline->IsRational()) {
     Handle(Geom_BSplineCurve) C1;
     C1 =  Handle(Geom_BSplineCurve)::DownCast(BSpline->Copy());
     GeomConvert::C0BSplineToC1BSplineCurve(C1, tol, 0.1);
-    // Il faut s'assurer que l'origine n'a pas bouge (cts21158)
-    if (C1->FirstParameter() == BSpline->FirstParameter()) {
-      BSpline = C1;
-    }
+    // It is necessary to make sure that the origin didn't move (cts21158)
+    if (C1->FirstParameter() == BSpline->FirstParameter()) BSpline = C1;
     else {
-      //cout << "Attention : Echec de C0BSplineToC1 !" << endl;
+#if DEB
+      cout << "Attention : Fail of C0BSplineToC1 !" << endl;
+#endif
     }
   }
-  //
-  Standard_Integer fk, lk, MultMax, ii;
-  // Deformation eventuelle pour rendre la spine C2.
-  // ou C3 pour des approx C2
-  if((caredeb || carefin) && BSpline->Degree() < 8) {
-    BSpline->IncreaseDegree(8);
-  }
-  //
-  fk = 2;
-  lk = BSpline->NbKnots()-1;
-  if(BSpline->IsPeriodic()) {
-    fk = 1;
-  }
-  if(caredeb) {
-    fk += caredeb;
-  }
-  if(carefin) {
-    lk -= carefin;
-  }
-  //
+  
+  // Deformation eventual to render spine C2
+  // or C3 for approx C2
+  if((caredeb || carefin) && BSpline->Degree() < 8) BSpline->IncreaseDegree(8);
+  Standard_Integer fk = 2, lk = BSpline->NbKnots()-1;
+  if(BSpline->IsPeriodic()) fk = 1;
+  if(caredeb) fk += caredeb;
+  if(carefin) lk -= carefin;
+  Standard_Integer   MultMax, ii; 
   if (continuity == GeomAbs_C3) {
-    if (BSpline->Degree() < 7) {
-      BSpline->IncreaseDegree(7);
-    }
+    if (BSpline->Degree() < 7) BSpline->IncreaseDegree(7);
     MultMax = BSpline->Degree() - 3;
   }
   else {
-    if (BSpline->Degree() < 5) {
-      BSpline->IncreaseDegree(5);
-    }
+    if (BSpline->Degree() < 5) BSpline->IncreaseDegree(5);
     MultMax = BSpline->Degree() - 2;
   }
-  // correction C2 ou C3 (si possible)
+  // correction C2 or C3 (if possible)
   CurveCleaner(BSpline, Abs(WL-WF)*1.e-4, 1);
   CurveCleaner(BSpline, Abs(WL-WF)*1.e-2, MultMax);
   Standard_Integer MultMin = Max(BSpline->Degree() - 4, 1);
@@ -4256,26 +4428,21 @@ Standard_EXPORT
     if( BSpline->Multiplicity(ii) > MultMax ) {
       Bof = BSpline->RemoveKnot(ii, MultMax, Abs(WL-WF)/10);
     }
-    // Voir C4
+    // See C4
     if( BSpline->Multiplicity(ii) > MultMin ) {
       Bof = BSpline->RemoveKnot(ii, MultMin, Abs(WL-WF)*1.e-4);
     }       
   }
-  // elspine periodique => BSpline Periodique
+  // elspine periodic => BSpline Periodic
   if(ES.IsPeriodic()) {
     if(!BSpline->IsPeriodic()) {
       BSpline->SetPeriodic();
-      //modified by NIZNHY-PKV Fri Dec 10 12:20:22 2010ft
-      if (iToApproxByC2) {
-       Bof = BSpline->RemoveKnot(1, MultMax, Abs(WL-WF)/10);
-      }
-      //Bof = BSpline->RemoveKnot(1, MultMax, Abs(WL-WF)/10);
-      //modified by NIZNHY-PKV Mon Dec 13 14:12:54 2010t
+      Bof = BSpline->RemoveKnot(1, MultMax, Abs(WL-WF)/10);
     }
   }
   else { 
-    // Sinon faut il bouger les poles pour les adapter 
-    // aux nouvelles tangentes ?
+    // Otherwise is it necessary to move the poles to adapt 
+    // them to new tangents ?
     Standard_Boolean adjust = Standard_False; 
     gp_Pnt P1, P2;
     gp_Vec V1, V2;
@@ -4284,10 +4451,10 @@ Standard_EXPORT
     ES.FirstPointAndTgt(PDeb,VrefDeb);
     Standard_Real scaldeb = VrefDeb.Dot(V1);
     Standard_Real disdeb = PDeb.Distance(P1);
-    if((Abs(WF-LocalWF) < 1.e-12) && 
-       ((scaldeb <= 0.9999999) || disdeb >= tol)) {   
-      // Oui s'il n'y as pas eu de prolongement et que la tangente n'est pas
-      // la bonne.
+    if((Abs(WF-LocalWF) < 1.e-12) &&
+       ((scaldeb <= 0.9999999) ||
+       disdeb >= tol)) {   
+      // Yes if there was no extension and the tangent is not the good one.
       adjust = Standard_True;
     } 
     BSpline->D1(WL, P2, V2);
@@ -4296,23 +4463,36 @@ Standard_EXPORT
     Standard_Real scalfin = VrefFin.Dot(V2); 
     Standard_Real disfin = PFin.Distance(P2);
     if((Abs(WL-LocalWL) < 1.e-12) && 
-       ((scalfin <= 0.9999999) || disfin >= tol)) {
-      // de meme a la fin
+       ((scalfin <= 0.9999999)||
+       disfin >= tol)) {
+      // the same at the end
       adjust = Standard_True;
     }
-    if(adjust) {
-      GeomLib::AdjustExtremity(BSpline, PDeb, PFin, VrefDeb, VrefFin);
-    }
+    if(adjust) GeomLib::AdjustExtremity(BSpline, PDeb, PFin, VrefDeb, VrefFin);
   }
 
-  // Le Resultat       
+  // The result       
+#if DEB
+  if (! BSpline->IsCN(2)) cout << "Attention Spine non C2 !" << endl;
+#endif
+
   ES.SetCurve(BSpline);
+#ifdef DRAW
+  ChFi3d_SettraceDRAWSPINE(1);
+  if (ChFi3d_GettraceDRAWSPINE()) {
+    char name[100];
+    sprintf(name,"elspine_%d",NbSp++);
+    char* Temp = name;
+    DrawTrSurf::Set(Temp,BSpline);
+//    DrawTrSurf::Set(name,BSpline);
+  }
+#endif
 }
 
 //=======================================================================
 //function : cherche_face1
-//purpose  : cherche la face F differente de F1 dans la map.
-// La map  contient  les deux faces adjacentes a une edge 
+//purpose  : find face F different from F1 in the map.
+// The map contains two faces adjacent to an edge 
 //=======================================================================
 void ChFi3d_cherche_face1 (const TopTools_ListOfShape & map,
                           const TopoDS_Face & F1,
@@ -4329,9 +4509,10 @@ void ChFi3d_cherche_face1 (const TopTools_ListOfShape & map,
 } 
 //=======================================================================
 //function : cherche_element
-//purpose  : cherche l'edge E  de F1 differente de E1 et contenant le vertex V
-// Vtx est l'autre vertex de E 
+//purpose  : find edge E of F1 other than E1 and containing vertex V
+// Vtx is the other vertex of E 
 //=======================================================================
+
 void ChFi3d_cherche_element(const TopoDS_Vertex & V,
                            const TopoDS_Edge & E1,
                            const TopoDS_Face & F1,
@@ -4368,9 +4549,10 @@ void ChFi3d_cherche_element(const TopoDS_Vertex & V,
 } 
 //=======================================================================
 //function : cherche_edge
-//purpose  : cherche l'edge E  de F1 differente de la liste d'edges E1 et
-//            contenant le vertex V  Vtx est l'autre vertex de E 
+//purpose  : find edge E of F1 other than the list of edges E1 and
+//           containing vertex V  Vtx is the other vertex of E. 
 //=======================================================================
 void ChFi3d_cherche_edge(const TopoDS_Vertex & V,
                            const  TopTools_Array1OfShape & E1,
                            const TopoDS_Face & F1,
@@ -4413,7 +4595,7 @@ void ChFi3d_cherche_edge(const TopoDS_Vertex & V,
 
 //=======================================================================
 //function : nbface
-//purpose  : calcule le nombre de faces communes a un vertex
+//purpose  : calculates the number of faces common to a vertex
 //           
 //=======================================================================
 Standard_Integer  ChFi3d_nbface (const TopTools_ListOfShape & mapVF )
@@ -4434,9 +4616,10 @@ Standard_Integer  ChFi3d_nbface (const TopTools_ListOfShape & mapVF )
 
 //=======================================================================
 //function : edge_common_faces 
-//purpose  :  determine les deux faces partageant une edge.
-//            F1 =F2 si on a une arete de couur
+//purpose  :  determines two faces sharing an edge.
+//            F1 = F2 if there is an edge to parc
 //=======================================================================
+
 void ChFi3d_edge_common_faces (const TopTools_ListOfShape & mapEF,
                                TopoDS_Face & F1,
                                TopoDS_Face &  F2)   
@@ -4456,8 +4639,8 @@ void ChFi3d_edge_common_faces (const TopTools_ListOfShape & mapEF,
 }
 
 /***********************************************************/
-// donne l'angle entre les edges E1 et E2 . Vtx est le vertex
-// commun aux edges
+// gives the angle between edges E1 and E2 . Vtx is the 
+// vertex common to the edges
 /************************************************************/
 Standard_Real ChFi3d_AngleEdge (const TopoDS_Vertex & Vtx,
                                   const TopoDS_Edge&  E1,
@@ -4480,9 +4663,9 @@ Standard_Real ChFi3d_AngleEdge (const TopoDS_Vertex & Vtx,
 
 //==================================================================
 // ChercheBordsLibres
-// determine si le vertex V1 a des aretes de bords libres
-// edgelibre1 et edgelibre2 .
-// On suppose qu'un sommet ne peut avoir que 2 aretes de bords libres
+// determines if vertex V1 has edges on free borders 
+// edgelibre1 and edgelibre2 .
+// It is supposed that a top can have only 2 edges on free borders
 //===================================================================
 void ChFi3d_ChercheBordsLibres(const  ChFiDS_Map & myVEMap,
                               const TopoDS_Vertex & V1,
@@ -4528,8 +4711,8 @@ void ChFi3d_ChercheBordsLibres(const  ChFiDS_Map & myVEMap,
 
 //=======================================================================
 //function : NbNotDegeneratedEdges
-//purpose  : calcule le nb d'aretes non degenerees de la Map VEMap(Vtx)
-// Attention les aretes de jointures sont comptees deux fois
+//purpose  : calculate the number of non-degenerated edges of Map VEMap(Vtx)
+// Attention the edges of junctions are taken into account twice
 //=======================================================================
 Standard_Integer ChFi3d_NbNotDegeneratedEdges (const TopoDS_Vertex& Vtx,
                                      const ChFiDS_Map& VEMap)
@@ -4545,8 +4728,8 @@ Standard_Integer ChFi3d_NbNotDegeneratedEdges (const TopoDS_Vertex& Vtx,
 
 //=======================================================================
 //function : NumberOfEdges
-//purpose  : calcule le nombre d'aretes arrivant au sommet Vtx
-// les aretes degenerees ne sont pas comptees
+//purpose  : calculate the number of edges arriving to the top Vtx
+// degenerated edges are not taken into account
 //=======================================================================
 Standard_Integer ChFi3d_NumberOfEdges(const TopoDS_Vertex& Vtx,
                                      const ChFiDS_Map& VEMap)
@@ -4560,11 +4743,11 @@ Standard_Integer ChFi3d_NumberOfEdges(const TopoDS_Vertex& Vtx,
   else  nba=nba/2;
   return nba;
 }
-//=======================================================================
-//function : ChFi3d_cherche_vertex
-//purpose  : function cherche_vertex
-//           cherche le vertex commun entre deux edges 
-//=======================================================================
+//=====================================================
+// function cherche_vertex
+// finds common vertex between two edges 
+//=====================================================
+
 void ChFi3d_cherche_vertex (const TopoDS_Edge & E1,
                            const TopoDS_Edge & E2,
                            TopoDS_Vertex & vertex,
@@ -4589,10 +4772,9 @@ void ChFi3d_cherche_vertex (const TopoDS_Edge & E1,
     }
   }
 }      
-//=======================================================================
-//function : ChFi3d_Couture
-//purpose  : determine si F a une arete de couture
-//=======================================================================
+//============================================================
+// determines if F has an edge of sewing
+//=============================================================
 void ChFi3d_Couture( const TopoDS_Face & F,
                      Standard_Boolean & couture,
                      TopoDS_Edge & edgecouture)
@@ -4613,10 +4795,6 @@ void ChFi3d_Couture( const TopoDS_Face & F,
     }
 }
 
-//=======================================================================
-//function : ChFi3d_CoutureOnVertex
-//purpose  : 
-//=======================================================================
 void ChFi3d_CoutureOnVertex( const TopoDS_Face & F,
                             const TopoDS_Vertex & V,
                             Standard_Boolean & couture,
@@ -4643,12 +4821,9 @@ void ChFi3d_CoutureOnVertex( const TopoDS_Face & F,
       } 
     }
 }
-//=======================================================================
-//function : ChFi3d_IsPseudoSeam
-//purpose  : 
-//=======================================================================
+
 Standard_Boolean ChFi3d_IsPseudoSeam( const TopoDS_Edge& E,
-                                    const TopoDS_Face& F )
+                                     const TopoDS_Face& F )
 {
   if (! BRep_Tool::IsClosed( E, F ))
     return Standard_False;
@@ -4674,10 +4849,6 @@ Standard_Boolean ChFi3d_IsPseudoSeam( const TopoDS_Edge& E,
   return NeighborSeamFound;
 }
 
-//=======================================================================
-//function : ChFi3d_ApproxByC2
-//purpose  : 
-//=======================================================================
 Handle(Geom_BSplineCurve) ChFi3d_ApproxByC2( const Handle(Geom_Curve)& C )
 {
   Standard_Real First = C->FirstParameter(), Last = C->LastParameter();
@@ -4693,10 +4864,7 @@ Handle(Geom_BSplineCurve) ChFi3d_ApproxByC2( const Handle(Geom_Curve)& C )
   Handle(Geom_BSplineCurve) BS = Approx.Curve();
   return BS;
 }
-//=======================================================================
-//function : ChFi3d_IsSmooth
-//purpose  : 
-//=======================================================================
+
 Standard_Boolean ChFi3d_IsSmooth( const Handle(Geom_Curve)& C )
 {
   GeomAdaptor_Curve GAC( C );
@@ -4710,6 +4878,14 @@ Standard_Boolean ChFi3d_IsSmooth( const Handle(Geom_Curve)& C )
   gp_Pnt P1, P2;
   Standard_Integer Discretisation = 30;
   
+//   Standard_Real t = TI(1);
+//   LProp.SetParameter(t);
+//   if (!LProp.IsTangentDefined())
+//     return Standard_False;
+//   C->D0(t, P1);
+//   LProp.CentreOfCurvature(P2);
+//   gp_Vec PrevVec(P1, P2);
+
   gp_Vec PrevVec;
   Standard_Boolean prevVecFound = Standard_False;
   Standard_Integer intrvFound = 0;
index 0ab15f25fe9f19ab30a17e439d8d826ca5fc3cff..877089b3f1315e657fb04bf6b8cce4adb8fc1a77 100755 (executable)
@@ -375,9 +375,9 @@ Handle(TopOpeBRepBuild_HBuilder) ChFi3d_Builder::Builder()const
 
 //=======================================================================
 //function : ChFi3d_FaceTangency
-//purpose  : determiner si les faces en vis a vis des edges sont tangents
-//           pour aller des faces en vis a vis sur e0 vers les faces en vis
-//a vis sur e1 ,considerer l ensemble des faces partant du sommet commun
+//purpose  : determine if the faces opposing to edges are tangent
+//           to go from opposing faces on e0 to opposing faces 
+//           on e1, consider all faces starting at a common top.
 //=======================================================================
 
 Standard_Boolean ChFi3d_Builder::FaceTangency(const TopoDS_Edge& E0,
@@ -389,7 +389,7 @@ Standard_Boolean ChFi3d_Builder::FaceTangency(const TopoDS_Edge& E0,
   Standard_Integer Nbf;
   TopoDS_Face F[2];
 
-  //On verifie qu on ne chaine pas sur une arete de regularite.
+  //It is checked if the connection is not on a regular edge.
   for (It.Initialize(myEFMap(E1)), Nbf= 0 ;It.More();It.Next(), Nbf++) {
     if (Nbf>1) 
       Standard_ConstructionError::Raise("ChFi3d_Builder:only 2 faces");
@@ -430,7 +430,7 @@ Standard_Boolean ChFi3d_Builder::FaceTangency(const TopoDS_Edge& E0,
 
 //=======================================================================
 //function : TangentExtremity
-//purpose  : Test si 2 face sont tangentes en bout d'une edge
+//purpose  : Test if 2 faces are tangent at the end of an edge
 //=======================================================================
 static Standard_Boolean TangentExtremity(const TopoDS_Vertex&                V,
                                         const TopoDS_Edge&                  E,
@@ -461,7 +461,7 @@ static Standard_Boolean TangentExtremity(const TopoDS_Vertex&                V,
     n1.SetXYZ(theProp1.Normal().XYZ());
     if (O1 == TopAbs_REVERSED) n1.Reverse();
   }
-  else return Standard_False; // On ne sait pas ...
+  else return Standard_False; // It is not known...
 
  
   Handle(Geom2d_Curve) pc2 = BRep_Tool::CurveOnSurface(e2,f2,f,l);
@@ -471,14 +471,14 @@ static Standard_Boolean TangentExtremity(const TopoDS_Vertex&                V,
     n2.SetXYZ(theProp2.Normal().XYZ());
     if(O2 == TopAbs_REVERSED) n2.Reverse();
   }
-  else return Standard_False; // On ne sait pas ...
+  else return Standard_False; //  It is not known...
 
   return (n1.Angle(n2) < tang);
 }
 
 //=======================================================================
 //function : TangentOnVertex
-//purpose  : Test si les faces support d'une edge sont tangente en bout.
+//purpose  : Test if support faces of an edge are tangent at end.
 //=======================================================================
 static Standard_Boolean TangentOnVertex(const TopoDS_Vertex&    V,
                                        const TopoDS_Edge&      E,
@@ -495,10 +495,9 @@ static Standard_Boolean TangentOnVertex(const TopoDS_Vertex&    V,
 
 //=======================================================================
 //function : PerformExtremity
-//purpose  : Dans le cas ou PerformElement a renvoye BreakPoint 
-//           a l une ou l autre des extremites, on essaye de raffiner
-//           en fonction des concavite entres les faces voisines du 
-//           sommet.
+//purpose  : In case if PerformElement returned BreakPoint at one or  
+//           another extremity, it is attempted to refine 
+//           depending on concavities between neighbour faces of the top.
 //=======================================================================
 
 void ChFi3d_Builder::PerformExtremity (const Handle(ChFiDS_Spine)& Spine) 
@@ -520,7 +519,7 @@ void ChFi3d_Builder::PerformExtremity (const Handle(ChFiDS_Spine)& Spine)
       E[0] = Spine->Edges(iedge);
       V = Spine->LastVertex();
     }
-    //On verifie avant tout que l on ne meurt pas en tangence.
+    //Before all it is checked if the tangency is not dead.
     E[0] = Spine->Edges(iedge);
     ConexFaces (Spine,iedge,0,hs1,hs2);
     if(TangentExtremity(V,E[0],hs1,hs2,angular)){
@@ -554,7 +553,7 @@ void ChFi3d_Builder::PerformExtremity (const Handle(ChFiDS_Spine)& Spine)
          }
          else{
 #ifdef DEB
-           cout<<"sommet a plus de 3 aretes"<<endl;
+           cout<<"top has more than 3 edges"<<endl;
 #endif
            sommetpourri = Standard_True;
            break;
@@ -570,7 +569,6 @@ void ChFi3d_Builder::PerformExtremity (const Handle(ChFiDS_Spine)& Spine)
     }
   }
   
-  //petite verue pour debug avec MPS.
   if (!Spine->IsPeriodic()) {
     TopTools_ListIteratorOfListOfShape It,Jt;
     Standard_Integer nbf = 0, jf = 0;
@@ -586,7 +584,7 @@ void ChFi3d_Builder::PerformExtremity (const Handle(ChFiDS_Spine)& Spine)
     if(nbf>3) {
       Spine->SetFirstStatus(ChFiDS_BreakPoint);
 #if DEB
-      cout<<"sommet a : "<<nbf<<" faces."<<endl;
+      cout<<"top has : "<<nbf<<" faces."<<endl;
 #endif
     }
     nbf = 0, jf = 0;
@@ -602,7 +600,7 @@ void ChFi3d_Builder::PerformExtremity (const Handle(ChFiDS_Spine)& Spine)
     if(nbf>3) {
       Spine->SetLastStatus(ChFiDS_BreakPoint);
 #if DEB
-      cout<<"sommet a : "<<nbf<<" faces."<<endl;
+      cout<<"top has : "<<nbf<<" faces."<<endl;
 #endif
     }
   }
@@ -610,10 +608,9 @@ void ChFi3d_Builder::PerformExtremity (const Handle(ChFiDS_Spine)& Spine)
 
 //=======================================================================
 //function : PerformElement
-//purpose  :  rechercher l ensemble des edges tangents entre eux ;
-// Chaque edge retenu a 2 faces en vis
-// a vis pour 2 edges adjacents tangents il faut que les faces en vis a vis 
-// soient tangentes
+//purpose  :  find all mutually tangent edges ;
+// Each edge has 2 opposing faces. For 2 adjacent tangent edges it is required that 
+// the opposing faces were tangent.
 //=======================================================================
 
 Standard_Boolean ChFi3d_Builder::PerformElement(const Handle(ChFiDS_Spine)& Spine) 
@@ -629,7 +626,7 @@ Standard_Boolean ChFi3d_Builder::PerformElement(const Handle(ChFiDS_Spine)& Spin
   TopoDS_Vertex Ve1,VStart,FVEc,LVEc,FVEv,LVEv;
   TopoDS_Edge Ev,Ec(Spine->Edges(1));
   if(BRep_Tool::Degenerated(Ec)) return 0;
-  //on controle que l arete est bien une arete de cassure
+  //it is checked if the edge is a cut edge
   TopoDS_Face ff1,ff2;
   ChFi3d_conexfaces(Ec,ff1,ff2,myEFMap);
   if(ff1.IsNull() || ff2.IsNull()) return 0;
@@ -650,7 +647,7 @@ Standard_Boolean ChFi3d_Builder::PerformElement(const Handle(ChFiDS_Spine)& Spin
 #else
   ChFiDS_State CurSt;
 #endif
-  if (VStart.IsSame(LVEc)) {//cas ou un seul edge ferme
+  if (VStart.IsSame(LVEc)) {//case if only one edge is closed
     CEc.Initialize(Ec);
     Wl = BRep_Tool::Parameter(VStart,Ec);
     CEc.D1(Wl,P2,V1);
@@ -670,7 +667,7 @@ Standard_Boolean ChFi3d_Builder::PerformElement(const Handle(ChFiDS_Spine)& Spin
     Spine->SetLastStatus(CurSt);
     Spine->SetFirstStatus(CurSt);
   }
-  else { // Progression aval
+  else { // Downstream progression
     FVEc = VStart;
     TopAbs_Orientation Or1;
     while (!Fini) {
@@ -700,18 +697,18 @@ Standard_Boolean ChFi3d_Builder::PerformElement(const Handle(ChFiDS_Spine)& Spin
          Standard_Boolean rev = (Or1 != curor);    
          Standard_Boolean OnAjoute = Standard_False;
          if (FaceTangency(Ec,Ev,FVEv)) {
-           //il n'y a pas besoin  de tolerance
-           // pour se decider (PRO9486) la regularite suffit.
-            // On verifie quand meme le non rebrousement (PRO9810)
+           // there is no need of tolerance
+           // to make a decision (PRO9486) the regularity is enough.
+            // However, the abcense of turn-back is checked (PRO9810)
            OnAjoute = ((!rev && av1v2 < PI/2) 
                        ||(rev && av1v2 > PI/2));
-            // Il faut faire Attention au cas singulier (cf CTS21610_1)
+            // mate attention to the single case (cf CTS21610_1)
             if (OnAjoute && (degeneOnEc || 
                 TangentOnVertex(LVEc, Ev,myEFMap, ta)) )
              OnAjoute=((!rev && av1v2 < ta) || (rev && (PI - av1v2) < ta));
          }
          if (OnAjoute) {
-           Fini = Standard_False; // Si Si cela peut etre util (Cf PRO14713)
+           Fini = Standard_False; // If this can be useful (Cf PRO14713)
            Ec = Ev; 
 //         Ec = TopoDS::Edge(Ev); 
            Ec.Orientation(Or1);
@@ -733,8 +730,6 @@ Standard_Boolean ChFi3d_Builder::PerformElement(const Handle(ChFiDS_Spine)& Spin
                 Nbface++) {}
            if (Nbface> 1) CurSt = ChFiDS_BreakPoint;
            Fini = ((!rev && av1v2 < ta) || (rev && (PI - av1v2) < ta)); 
-           //attention dans le cas ou sur un vertex il part 3 edges dont l edge courant
-           //+un edge bord libre et un edge cassure le status sera au pif 
          }
        } 
       } 
@@ -744,7 +739,7 @@ Standard_Boolean ChFi3d_Builder::PerformElement(const Handle(ChFiDS_Spine)& Spin
     if (CurSt == ChFiDS_Closed) {
       Spine->SetFirstStatus(CurSt);
     }
-    else {// Progression amont
+    else {// Upstream progression
       Fini = Standard_False;
       Ec = Spine->Edges(1);
       curor = Ec.Orientation();
@@ -797,8 +792,6 @@ Standard_Boolean ChFi3d_Builder::PerformElement(const Handle(ChFiDS_Spine)& Spin
                  Nbface++) {}
              if (Nbface> 1) CurSt = ChFiDS_BreakPoint;
              Fini = ((!rev && av1v2 < ta) || (rev && (PI - av1v2) < ta));
-             //attention dans le cas ou sur un vertex il part 3 edges dont l edge courant
-             //+un edge bord libre et un edge cassure le status sera au pif 
            }
          } 
        } 
index b30955d63f6a1f3af1c6466b19e77b2558d6df7f..17e9a2408af3575559f901670b8fac7b4aac0c27 100755 (executable)
@@ -105,16 +105,15 @@ Standard_Boolean isTangentFaces(const TopoDS_Edge &theEdge,
 //  Modified by Sergey KHROMOV - Fri Dec 21 17:08:19 2001 End
 
 //===================================================================
-//   Finition par un plan   
+//   Definition by a plane   
 //
-// On considere P1 et P2 les points associes aux commonpoints compoint1 et
-// compoint2 ainsi que  E1 et E2 les edges  qui contiennent P1 et P2.
-// On determine (s'il existe) le plan contenant les 
-// trois directions D12 T1 T2  ou  D12 represente la direction formee 
+// It is considered that P1 and P2 are points associated to commonpoints compoint1 and
+// compoint2, while E1 and E2 are edges containing P1 and P2.
+// The plane containing three directions D12 T1 T2  ou  D12 represente la direction formee 
 // par les points P1 et P2, T1 la tangente de E1 en P1 et T2 la tangente de 
-// E2 en P2. 
-// On fait ensuite l'intersection du conge HConge par ce plan 
-// pour determiner la courbe 3d C3d et la courbe 2d associee 
+// E2 en P2 is found (if exists)
+// Then fillet HConge is intersected by this plane 
+// to find associated curve 3d C3d and the curve 2d. 
 // 
 //====================================================================
 static void ChFi3d_CoupeParPlan (const ChFiDS_CommonPoint & compoint1,
@@ -291,7 +290,7 @@ static Standard_Boolean BonVoisin(const gp_Pnt& Point,
 
 //=======================================================================
 //function : Projection
-//purpose  : Projete un point sur une courbe
+//purpose  : Projects a point on a curve
 //=======================================================================
 
 static Standard_Boolean Projection(Extrema_ExtPC&       PExt, 
@@ -303,7 +302,7 @@ static Standard_Boolean Projection(Extrema_ExtPC&       PExt,
   Standard_Real Dist2, daux2;
   Dist2 =  C.Value(W).SquareDistance(P);
 
-  // On verifie que ce n'est pas dejas solution
+  // It is checked if it is not already a solution
   if (Dist2 < Tol * Tol) 
     return Standard_True;
 
@@ -322,7 +321,7 @@ static Standard_Boolean Projection(Extrema_ExtPC&       PExt,
     }  
   }
   
-  // Resolution global
+  // Global resolution
   PExt.Perform(P);
   if ( PExt.IsDone() ) {
     for (Standard_Integer ii=1; ii<= PExt.NbExt(); ii++) {
@@ -361,7 +360,7 @@ static void TgtKP(const Handle(ChFiDS_SurfData)& CD,
 
 //=======================================================================
 //function : IsInput
-//purpose  : Verifie si un vecteur "entre dans une Face
+//purpose  : Checks if a vector belongs to a Face
 //=======================================================================
 
 Standard_Boolean IsInput(const gp_Vec&          Vec,
@@ -377,7 +376,7 @@ Standard_Boolean IsInput(const gp_Vec&          Vec,
   gp_Vec Vec3d[2];
   gp_Pnt Point;
 
-  // Recherche des aretes et calcul des vecteurs 3d
+  // Find edges and compute 3D vectors
   for ( ; (FaceExp.More() && (Trouve<2)); FaceExp.Next()) {
     W = TopoDS::Wire(FaceExp.Current());
     for (Trouve=0, WireExp.Init(W) ; 
@@ -398,10 +397,10 @@ Standard_Boolean IsInput(const gp_Vec&          Vec,
     }
   }
   if (Trouve < 2) return Standard_False;
-  // Calcul de la normal et des angles dans le plan vectoriel asssocie
+  // Calculate the normal and the angles in the asssociated vector plane
   gp_Vec Normal;
   Normal = Vec3d[0] ^ Vec3d[1];
-  if (Normal.SquareMagnitude() < Precision::Confusion()) {//Cas colineaire
+  if (Normal.SquareMagnitude() < Precision::Confusion()) {//Colinear case
     return (Vec.IsParallel(Vec3d[0],Precision::Confusion())); 
   }
 
@@ -413,7 +412,7 @@ Standard_Boolean IsInput(const gp_Vec&          Vec,
   }
   else amin = 0;
 
-  // Projection du vecteur
+  // Projection of the vector
   gp_Ax3 Axe(Point, Normal, Vec3d[0]);  
   gp_Trsf Transf;
   Transf.SetTransformation (Axe);
@@ -424,14 +423,14 @@ Standard_Boolean IsInput(const gp_Vec&          Vec,
   Transf.Transforms(coord);
   gp_Vec theProj(coord); 
 
-  // et enfin ...
+  // and finally...
   Standard_Real Angle = theProj.AngleWithRef(Vec3d[0], Normal);
   return ( (Angle >= amin) && (Angle<=amax));
 } 
 
 //=======================================================================
 //function : IsG1
-//purpose  : Cherche un voisin G1 par une arrete
+//purpose  : Find a neighbor G1 by an edge
 //=======================================================================
 
 Standard_Boolean IsG1(const ChFiDS_Map&         TheMap,
@@ -440,7 +439,7 @@ Standard_Boolean IsG1(const ChFiDS_Map&         TheMap,
                      TopoDS_Face&              FVoi) 
 {
   TopTools_ListIteratorOfListOfShape It;    
-  // On cherche une voisine de E differente de FRef (cas general).
+  // Find a neighbor of E different from FRef (general case).
   for(It.Initialize(TheMap(E));It.More();It.Next()) {
     if (!TopoDS::Face(It.Value()).IsSame(FRef)) {
       FVoi = TopoDS::Face(It.Value());
@@ -452,8 +451,8 @@ Standard_Boolean IsG1(const ChFiDS_Map&         TheMap,
       }
     }
   }
-  // Si on ne l a pas trouvee on regarde si E est un edge de couture,
-  // au quel cas on renvoie FVoi = FRef (cas moins frequent).
+  // If is was not found it is checked if E is a cutting edge,
+  // in which case FVoi = FRef is returned (less frequent case).
   TopExp_Explorer Ex;
   Standard_Boolean orset = Standard_False;
 #ifndef DEB
@@ -483,11 +482,11 @@ Standard_Boolean IsG1(const ChFiDS_Map&         TheMap,
 
 //=======================================================================
 //function : SearchFaceOnV
-//purpose  : Trouve  le(s) face(s) de sortie d'un cheminement par un vertex
-//           Les criteres a respecter sont les suivants
-//         -1 : La face partage une aretes de regularite avec FRef 
-//              (condition trop forte qu'il faudrait revoir
-//         -2 : Le vecteur sortant du CommonPoint "entre" dans la face
+//purpose  : Finds the output face(s) of the path by a vertex
+//           The following criteria should be followed
+//         -1 : The face shares regular edges with FRef 
+//              (too hard condition that should be reconsidered)
+//         -2 : The vector starting in CommonPoint "belongs" to the face
 //========================================================================
 static Standard_Integer SearchFaceOnV(const ChFiDS_CommonPoint&    Pc,
                                      const TopoDS_Face&           FRef,
@@ -496,12 +495,12 @@ static Standard_Integer SearchFaceOnV(const ChFiDS_CommonPoint&    Pc,
                                      TopoDS_Face&                 F1,
                                      TopoDS_Face&                 F2)
 {
-  // on verifie que l'on sort bien de la face courante.
+  // it is checked that it leaves the current face.
   Standard_Boolean FindFace = IsInput(Pc.Vector(), Pc.Vertex(), FRef);
   if (FindFace) {
     FindFace = IsInput(Pc.Vector().Reversed(), Pc.Vertex(), FRef);
   }
-  // Si l'on ne sort pas, c'est fini
+  // If it does not leave, it is finished
   if (FindFace) {
     F1 = FRef;
     return 1;
@@ -534,10 +533,10 @@ static Standard_Integer SearchFaceOnV(const ChFiDS_CommonPoint&    Pc,
 
 //=======================================================================
 //function : ChangeTransition
-//purpose  : Change la transition du second common Point, quand la surface
-//           ne traverse pas l'arc
-//           Comme on suppose que les Faces d'appuis sont les memes, il suffit
-//           de regarder le cas des aretes de coutures
+//purpose  : Changes the transition of the second common Point, when the surface
+//           does not cross the arc
+//           As it is supposed that the support Faces are the same, it is enough
+//           to examine the cas of cutting edges.
 //========================================================================
 static void ChangeTransition(const ChFiDS_CommonPoint&    Precedant,
                             ChFiDS_CommonPoint&          Courant,
@@ -554,7 +553,7 @@ static void ChangeTransition(const ChFiDS_CommonPoint&    Precedant,
   PCurve2 = BRep_Tool::CurveOnSurface(TopoDS::Edge(aLocalShape), F, f, l);
 //  PCurve2 = BRep_Tool::CurveOnSurface(TopoDS::Edge(Arc.Reversed()), F, f, l);
   if (PCurve1 != PCurve2) { 
-    // C'est une arete de couture, on doit faire un petit test Geometrique
+    // This is a cutting edge, it is necessary to make a small Geometric test
     gp_Vec tgarc;
     gp_Pnt P;
     BRepAdaptor_Curve AC(Arc);
@@ -572,7 +571,7 @@ static void ChangeTransition(const ChFiDS_CommonPoint&    Precedant,
 
 //=======================================================================
 //function : CallPerformSurf
-//purpose  : Encapsule l'appel a PerformSurf/SimulSurf
+//purpose  : Encapsulates call to PerformSurf/SimulSurf
 //========================================================================
 
 void ChFi3d_Builder::
@@ -614,7 +613,7 @@ CallPerformSurf(Handle(ChFiDS_Stripe)&              Stripe,
   Handle(BRepAdaptor_HSurface) HSon1, HSon2;
   HSon1 = HS1;
   HSon2 = HS2;
-  // Definition du domaine de cheminement It1, It2
+  // Definition of the domain of path It1, It2
   It1->Initialize(HS1);
   It2->Initialize(HS2);
 
@@ -639,7 +638,7 @@ CallPerformSurf(Handle(ChFiDS_Stripe)&              Stripe,
   else{
        
 #ifdef DEB  
-    ChFi3d_InitChron(ch1);//init perf  pour PerformSurf
+    ChFi3d_InitChron(ch1);//initial perform for PerformSurf
 #endif
        
     isdone = PerformSurf(SeqSD,HGuide,Spine,Choix,HS1,It1,HS2,It2,
@@ -647,11 +646,11 @@ CallPerformSurf(Handle(ChFiDS_Stripe)&              Stripe,
                          First,Last,Inside,Inside,forward,
                          RecOnS1,RecOnS2,Soldep,intf,intl);
 #ifdef DEB   
-    ChFi3d_ResultChron(ch1,t_performsurf);// result perf pour   PerformSurf   
+    ChFi3d_ResultChron(ch1,t_performsurf);// result perf for PerformSurf   
 #endif
   }
 
- // Cas d'echecs
+ // Case of error
  if (!isdone) {
    First = thef;
    Last = thel;
@@ -685,7 +684,7 @@ CallPerformSurf(Handle(ChFiDS_Stripe)&              Stripe,
      else{
        
 #ifdef DEB  
-       ChFi3d_InitChron(ch1);//init perf  pour PerformSurf
+       ChFi3d_InitChron(ch1);//init perf for PerformSurf
 #endif
        
        isdone = PerformSurf(SeqSD,HGuide,Spine,Choix,HSon1,It1,HSon2,It2,
@@ -693,7 +692,7 @@ CallPerformSurf(Handle(ChFiDS_Stripe)&              Stripe,
                             First,Last,Inside,Inside,forward,
                             RecOnS1,RecOnS2,Soldep,intf,intl);
 #ifdef DEB   
-       ChFi3d_ResultChron(ch1,t_performsurf);// result perf pour   PerformSurf   
+       ChFi3d_ResultChron(ch1,t_performsurf);// result perf for PerformSurf   
 #endif
      }
    }
@@ -704,8 +703,8 @@ CallPerformSurf(Handle(ChFiDS_Stripe)&              Stripe,
 
 //=======================================================================
 //function : StripeOrientation
-//purpose  : Calcul des orientations de reference determinant le
-//           cote concave pour la construction du conge.
+//purpose  : Calculates the reference orientation determining the
+//           concave face for construction of the fillet.
 //=======================================================================
 
 Standard_Boolean ChFi3d_Builder::StripeOrientations
@@ -767,12 +766,11 @@ void ChFi3d_Builder::ConexFaces (const Handle(ChFiDS_Spine)&   Spine,
 
 //=======================================================================
 //function : StartSol
-//purpose  : Calcul d une solution de depart approchee :
-//           - on commence par essayer une dizaine de points sur la
-//             spine,
-//           - en cas d'echec on recherche la solution dans les faces
-//             voisines; section plane des aretes de la face adjacente
-//             et identication de la face par connexite a cette arete.
+//purpose  : Calculates a starting solution :
+//           - one starts by parsing about ten points on the spine,
+//           - in case of fail one finds the solution on neighbor faces;
+//             section plane of edges of the adjacent face 
+//             and identication of the face by connection to that edge.
 //=======================================================================
 
 void ChFi3d_Builder::StartSol(const Handle(ChFiDS_Stripe)&      Stripe,
@@ -791,7 +789,6 @@ void ChFi3d_Builder::StartSol(const Handle(ChFiDS_Stripe)&      Stripe,
   Standard_Integer nbessaimax = 3*nbed;
   if (nbessaimax < 10) nbessaimax = 10;
   Standard_Real unsurnbessaimax = 1./nbessaimax;
-  //On bruite un peu les bouts, plus par superstition qu autre chose.
   Standard_Real wf = 0.9981 * Spine->FirstParameter(1) +
     0.0019 * Spine->LastParameter(1);
   Standard_Real wl = 0.9973 * Spine->LastParameter(nbed) +
@@ -853,7 +850,7 @@ void ChFi3d_Builder::StartSol(const Handle(ChFiDS_Stripe)&      Stripe,
     PC = BRep_Tool::CurveOnSurface(cured,f1forward,Uf,Ul);
     I1->Initialize(HS1);
     PC->D1(woned, P1, derive);
-    // On des points sur le bord, on cherche des point internes
+    // There are ponts on the border, and internal points are found
     if (derive.Magnitude() > Precision::PConfusion()) {
       derive.Normalized();
       derive.Rotate(PI/2);
@@ -891,8 +888,8 @@ void ChFi3d_Builder::StartSol(const Handle(ChFiDS_Stripe)&      Stripe,
       return;
     }
   }
-  // On a trouve aucune solution sur les faces adjacentes au trajet
-  // on essaye donc les voisines.
+  // No solution was found for the faces adjacent to the trajectory.
+  // Now one tries the neighbor faces.
   iedge = 0;
   for(nbessai = 0; nbessai <= nbessaimax; nbessai++){
     Standard_Real t = nbessai*unsurnbessaimax;
@@ -1004,7 +1001,7 @@ static void  ChFi3d_BuildPlane (TopOpeBRepDS_DataStructure&    DStr,
       NewF.Orientation(F.Orientation());
       pons.SetCoord(0.,0.);
       HS->ChangeSurface().Initialize(NewF);
-      return; // c'est tout bon !
+      return; // everything is good !
     }
   }
   Standard_Failure::Raise("ChFi3d_BuildPlane : echec .");
@@ -1012,38 +1009,37 @@ static void  ChFi3d_BuildPlane (TopOpeBRepDS_DataStructure&    DStr,
 
 //=======================================================================
 //function : StartSol
-//purpose  : La spec provisoire de StarSol est : lbo 28/03/97
-//           Si le commonpoint n est pas OnArc on renvoie la face
-//              d entree et on met a jour le point 2d,
-//           si il est OnArc
-//              si on decroche on renvoie la face d entree et on met 
-//                 a jour le point 2d,
-//              sinon
-//                 ou bien il y a une face voisine tangente et on la renvoie
-//                         avec le point 2d recalcule
-//                 ou bien il n y en a pas 
-//                         si l Arc reference Vref (extremite de la spine)
-//                            on est en bout et on renvoie la face d entree 
-//                         sinon c est un obstacle et on met a jour HC.
+//purpose  : If the commonpoint is not OnArc the input face
+//           is returned and 2D point is updated,
+//           if it is OnArc
+//              if it is detached  the input face
+//              is returned and 2D point is updated,
+//              otherwise
+//                 either there is a neighbor tangent face and it is returned
+//                         with recalculated 2D point
+//                 or if there is no face 
+//                         if the reference arc is Vref (extremity of the spine)
+//                            this is the end and the input face is returned 
+//                         otherwise this is an obstacle and HC is updated.
 //=======================================================================
 
 Standard_Boolean  
 ChFi3d_Builder::StartSol(const Handle(ChFiDS_Spine)&    Spine,
-                        Handle(BRepAdaptor_HSurface)&  HS, // Nouvelle face
-                        gp_Pnt2d&                      pons,// " Localisation
-                        Handle(BRepAdaptor_HCurve2d)&  HC, // Reprentation de l'obstacle
+                        Handle(BRepAdaptor_HSurface)&  HS, // New face
+                        gp_Pnt2d&                      pons,// " Localization
+                        Handle(BRepAdaptor_HCurve2d)&  HC, // Representation of the obstacle
                         Standard_Real&                 W,
                         const Handle(ChFiDS_SurfData)& SD,
                         const Standard_Boolean         isfirst,
                         const Standard_Integer         ons,
-                        Handle(BRepAdaptor_HSurface)&  HSref, // L'autre representation
-                        Handle(BRepAdaptor_HCurve2d)&  HCref, // de l'obstacle    
+                        Handle(BRepAdaptor_HSurface)&  HSref, // The other representation
+                        Handle(BRepAdaptor_HCurve2d)&  HCref, // of the obstacle          
                         Standard_Boolean&              RecP,
                         Standard_Boolean&              RecS,
                         Standard_Boolean&              RecRst,
                         Standard_Boolean&              c1obstacle,
-                        Handle(BRepAdaptor_HSurface)&  HSBis, // Face de secoure       
-                        gp_Pnt2d&                      PBis,  // et son point
+                        Handle(BRepAdaptor_HSurface)&  HSBis, // Face of support       
+                        gp_Pnt2d&                      PBis,  // and its point
                         const Standard_Boolean         decroch,
                         const TopoDS_Vertex&           Vref) const 
 {
@@ -1064,21 +1060,20 @@ ChFi3d_Builder::StartSol(const Handle(ChFiDS_Spine)&    Spine,
     if (ons == 1)  notons = 2;
     else           notons = 1;
     const ChFiDS_CommonPoint& CPbis = SD->Vertex(isfirst,notons);
-    if (CPbis.IsOnArc()) { // On verifie que l'on est pas dans une zone 
-                  // de prolongement. Car dans ce cas CP n'est pas
-                  // au bout de la surfdata et il ne faut pas en tenir compte
-                  // sauf cas singuliers (ie pointus) ...
-      //ts et tns etaient avant CP.Parameter() et CPbis.Parameter, mais qques fois, ils n'avaient pas de valeurs.
+    if (CPbis.IsOnArc()) { // It is checked if it is not the extension zone 
+                  // In case CP is not at the end of surfdata and it is not necesary to take it into account
+                  // except for separate cases (ie pointus) ...
+      //ts and tns were earlier CP.Parameter() and CPbis.Parameter, but sometimes they had no values.
       Standard_Real ts=SD->Interference(ons).Parameter(isfirst), tns=SD->Interference(notons).Parameter(isfirst);
       Standard_Boolean isExtend;
-      // Test arbitraire (a raffiner)
+      // Arbitrary test (to precise)
       if (isfirst) isExtend = (ts-tns > 100*tolesp); 
       else         isExtend = (tns-ts > 100*tolesp);
       if (isExtend && !CP.Point().IsEqual(CPbis.Point(), 0) ) {
-       //  on garde l'etat et on renvoi False (prolongement par plan attendu).
+       //  the state is preserved and False is returned (extension by the expected plane).
        HS->ChangeSurface().Initialize(F);
        pc = SD->Interference(ons).PCurveOnFace();
-       // Le point 2d est donne par la trace sur la surface support
+       // The 2nd point is given by its trace on the support surface
         RecS = Standard_False;
        pons = pc->Value(tns);
        return Standard_False;
@@ -1087,13 +1082,11 @@ ChFi3d_Builder::StartSol(const Handle(ChFiDS_Spine)&    Spine,
   }  
   
   if (CP.IsVertex() && !HC.IsNull() && !decroch){
-    //On change d'arete et on met a jour le parametre et
-    //eventuellement la face d'appui et(ou) la face de 
-    //reference.
+    //The edge is changed, the parameter is updated and
+    //eventually the support face and(or) the reference face.
     TopoDS_Vertex VCP = CP.Vertex();
     TopoDS_Edge EHC = HC->ChangeCurve2d().Edge();
-    //On commence par chercher dans Fref une autre arete 
-    //referencant VCP.
+    //One starts by searching in Fref another edge referencing VCP.
     TopExp_Explorer ex1,ex2;
     TopoDS_Edge newedge, edgereg;
     TopoDS_Face bidface = Fref, facereg;
@@ -1118,7 +1111,7 @@ ChFi3d_Builder::StartSol(const Handle(ChFiDS_Spine)&    Spine,
       }
     }
     if(newedge.IsNull()){
-      //On regarde si EHC n'est pas un edge ferme.
+      //It is checked if EHC is not a closed edge.
       TopoDS_Vertex V1,V2;
       TopExp::Vertices(EHC,V1,V2);
       if(V1.IsSame(V2)){
@@ -1147,7 +1140,7 @@ ChFi3d_Builder::StartSol(const Handle(ChFiDS_Spine)&    Spine,
        return 1;
       }
       else if(!edgereg.IsNull()){
-       // on change d arete et de face de reference.
+       // the reference edge and face are changed.
        Fref = facereg;
        HSref->ChangeSurface().Initialize(Fref);
        for(ex1.Init(facereg,TopAbs_EDGE); ex1.More() && newedge.IsNull(); ex1.Next()){
@@ -1164,19 +1157,19 @@ ChFi3d_Builder::StartSol(const Handle(ChFiDS_Spine)&    Spine,
        }
       }
     }
-    // il faut ici identifier la nouvelle face d'appui du conge : 
-    // connexe a FRef le long de newedge.
+    // it is necessary to find the new support face of the fillet : 
+    // connected to FRef along the newedge.
     if(newedge.IsNull()) {
       Standard_Failure::Raise
-       ("StartSol : chainage impossible,nouvel obstacle non trouve");
+       ("StartSol : chain is not possible, new obstacle not found");
     }
     if(IsG1(myEFMap,newedge,Fref,Fv)){
       Standard_Failure::Raise
-       ("StartSol : chainage impossible, config non traitee");
+       ("StartSol : chain is not possible, config non processed");
     }
     else if(Fv.IsNull()){
       Standard_Failure::Raise
-       ("StartSol : chainage impossible, nouvel obstacle non trouve");
+       ("StartSol : chain is not possible, new obstacle not found");
     }
     else{
       HS->ChangeSurface().Initialize(Fv);
@@ -1196,10 +1189,10 @@ ChFi3d_Builder::StartSol(const Handle(ChFiDS_Spine)&    Spine,
     }
     RecP = c1obstacle = 1;
     return 1;
-  } // Fin du Cas Vertex && Obstacle 
+  } // End of Case Vertex && Obstacle 
 
   else if (CP.IsOnArc() && !HC.IsNull() && !decroch){
-    //On ne change rien, on met juste a jour le parametre.
+    //Nothing is changed, the parameter is only updated.
     W = CP.ParameterOnArc();
     c1obstacle = 1;
     return 1;
@@ -1221,10 +1214,10 @@ ChFi3d_Builder::StartSol(const Handle(ChFiDS_Spine)&    Spine,
       HS->ChangeSurface().Initialize(Fv);
       RecS = 1;
       if (CP.IsVertex()) { 
-       // On passe directement par le Vertex
+       // One goes directly by the Vertex
        Standard_Integer Nb;
        TopoDS_Face aux;
-        // Et l'on verifie qu'il n'y a pas d'autres candidats
+        // And it is checked that there are no other candidates
        Nb = SearchFaceOnV(CP, F, myVEMap, myEFMap, Fv, aux);
 
        pons = BRep_Tool::Parameters(CP.Vertex(), Fv);
@@ -1235,7 +1228,7 @@ ChFi3d_Builder::StartSol(const Handle(ChFiDS_Spine)&    Spine,
        }
        return 1;
       }
-      // sinon on transite par l'arc...
+      // otherwise one passes by the arc...
       if(!Fv.IsSame(F)){
        Fv.Orientation(TopAbs_FORWARD);
        TopoDS_Edge newedge;
@@ -1247,7 +1240,7 @@ ChFi3d_Builder::StartSol(const Handle(ChFiDS_Spine)&    Spine,
          }
        }
        //gp_Vec Varc, VSurf;
-        // En cas de sortie Tangente, la face courante devient la face de secour
+        // In cas of Tangent output, the current face becomes the support face
        if (SortieTangente(CP, F, SD, ons, 0.1)) { 
          pc = BRep_Tool::CurveOnSurface(CP.Arc(),F,Uf,Ul);
          HSBis = new (BRepAdaptor_HSurface)(F);
@@ -1307,7 +1300,7 @@ ChFi3d_Builder::StartSol(const Handle(ChFiDS_Spine)&    Spine,
        return Standard_False;
       }
     }
-    else{ // il n'y a pas de face Voisine, on garde l'etat et on renvoi False.
+    else{ // there is no neighbor face, the state is preserved and False is returned.
       HS->ChangeSurface().Initialize(F);
       W = CP.ParameterOnArc();
       pc = BRep_Tool::CurveOnSurface(E,F,Uf,Ul);
@@ -1340,37 +1333,36 @@ Standard_Boolean  ChFi3d_Builder::SearchFace
   FVoi.Nullify();
   TopoDS_Edge E;
   if (Pc.IsVertex()){
-    // attention il faut analyser lensemble des faces qui tournent autour du vertex
-    // voir cahier pour les cas a traiter
+    // attention it is necessary to analyze all faces that turn around of the vertex
 #if DEB
-    cout<<"Commonpoint sur vertex on va au carton"<<endl;
+    cout<<"Commonpoint on vertex, the process hangs up"<<endl;
 #endif
-    if (Pc.HasVector()) { //Traitement general
+    if (Pc.HasVector()) { //General processing
       TopoDS_Face Fbis;
       Standard_Integer nb_faces;
       nb_faces = SearchFaceOnV(Pc,  FRef, myVEMap, myEFMap, FVoi, Fbis);
       return ( nb_faces > 0);
     }
-    else { // Traitement utilisant la spine
+    else { // Processing using the spine
       Standard_Boolean  FindFace=Standard_False;
       gp_Pnt Point;
       gp_Vec VecSpine;
       Spine->D1(Pc.Parameter(), Point, VecSpine);
     
-      // on verifie que l'on sort bien de la face courante.
+      // It is checked if one leaves from the current face.
       FindFace = IsInput(VecSpine, Pc.Vertex(), FRef);
       if (FindFace) {
        VecSpine.Reverse();
        FindFace = IsInput(VecSpine, Pc.Vertex(), FRef);
       }
-      // Si l'on ne sort pas, c'est fini
+      // If one does not leave, it is ended
       if (FindFace) {
        FVoi = FRef;
        return Standard_True;
       }
     
-      // Sinon, on cherche la suivante parmis les Faces partages 
-      // par une arete communes G1
+      // Otherwise one finds the next among shared Faces 
+      // by a common edge G1
       TopTools_ListIteratorOfListOfShape ItE, ItF;
       for(ItE.Initialize(myVEMap(Pc.Vertex()));
          ItE.More() && (!FindFace); ItE.Next()) {
@@ -1393,10 +1385,10 @@ Standard_Boolean  ChFi3d_Builder::SearchFace
            return Standard_False;
          }
        
-         // On verifie que la face Selectionnee a bien une des arretes de la spine
-         // contenant le vertex dans sa frontierre
-         // Ce traitement ne devrait marcher que si le Vertex appartient a la spine
-         //  Cas singulier, pour d'autre vertex il faudrait faire autre chose
+         // It is checked if the selected face actually possesses edges of the spine
+         // containing the vertex on its front
+         // This processing should go only if the Vertex belongs to the spine
+         // This is a single case, for other vertexes it is required to do other things
          Trouve=Standard_False;
          for (Standard_Integer IE=1;//, Trouve=Standard_False;                   15.11.99  SVV
               (IE<=Spine->NbEdges()) && (!Trouve); IE++) {
@@ -1425,9 +1417,9 @@ Standard_Boolean  ChFi3d_Builder::SearchFace
 
 //=======================================================================
 //function : ChFi3d_SingularExtremity
-//purpose  : chargement du vertex dans la DS et calcul de la pcurve 
-//           pour une extremite dans le cas freeboundary singulier
-//           ou periodic et singulier a la couture.
+//purpose  : load the vertex in the DS and calculate the pcurve 
+//           for an extremity in case of singular freeboundary 
+//           or periodic and singular at the cut.
 //=======================================================================
 static void ChFi3d_SingularExtremity( Handle(ChFiDS_Stripe)&     stripe,
                                     TopOpeBRepDS_DataStructure& DStr,
@@ -1442,7 +1434,7 @@ static void ChFi3d_SingularExtremity( Handle(ChFiDS_Stripe)&     stripe,
   Handle(Geom_Curve) C3d;
   Handle(Geom2d_Curve) PCurv;
   TopOpeBRepDS_Curve Crv;
-  // la SurfData en cause et ses CommonPoints,
+  // SurfData and its CommonPoints,
   Standard_Integer Ivtx, Icurv;
   Standard_Boolean isfirst;
   
@@ -1459,7 +1451,7 @@ static void ChFi3d_SingularExtremity( Handle(ChFiDS_Stripe)&     stripe,
  
   const ChFiDS_CommonPoint& CV1 = Fd->Vertex(isfirst,1);
   const ChFiDS_CommonPoint& CV2 = Fd->Vertex(isfirst,2);
-  // Est ce toujours degenere ?
+  // Is it always degenerated ?
   if ( CV1.Point().IsEqual( CV2.Point(), 0) ) { 
     Ivtx = ChFi3d_IndexPointInDS(CV1, DStr);
     if (isfirst) {
@@ -1490,9 +1482,9 @@ static void ChFi3d_SingularExtremity( Handle(ChFiDS_Stripe)&     stripe,
     stripe->SetIndexPoint(Ivtx, isfirst, 2);
 
     if (stripe->Spine()->IsPeriodic()) { 
-      // cas periodique : On renouvelle l'operation
-      // on ne partage pas la courbe 3d.
-      // On fabrique 2 aretes degenere confondus en 3d
+      // periodic case : The operation is renewed
+      // the curve 3d is not shared.
+      // 2 degenerated edges coinciding in 3d
       isfirst = Standard_False;
       Fd = stripe->SetOfSurfData()->Sequence().Last();
       VOnS1 = Fd->InterferenceOnS1().PCurveOnSurf()->
@@ -1519,8 +1511,8 @@ static void ChFi3d_SingularExtremity( Handle(ChFiDS_Stripe)&     stripe,
 
 //=======================================================================
 //function : ChFi3d_MakeExtremities
-//purpose  : calcul des Courbes3d et pcurves des extremites dans les
-//           cas periodiques et freeboundary.
+//purpose  : calculate Curves3d and pcurves of extremities in
+//           periodic and freeboundary cases.
 //=======================================================================
 static Standard_Boolean IsFree(const TopoDS_Shape& E,
                               const ChFiDS_Map&   EFMap)
@@ -1603,12 +1595,12 @@ static void ChFi3d_MakeExtremities(Handle(ChFiDS_Stripe)&      Stripe,
        ChFi3d_SetPointTolerance(DStr,b2,Stripe->IndexFirstPointOnS2());
     }
     else {
-      // Cas de l'extremite singuliere
+      // Case of the single extremity
       if (CV1.IsVertex()) { 
        ChFi3d_SingularExtremity(Stripe, DStr, CV1.Vertex(), tol3d, tol2d);
       }
 # if DEB
-      else { cout << "MakeExtremities : Singularite hors Vertex !!" << endl; }
+      else { cout << "MakeExtremities : Singularity out of Vertex !!" << endl; }
 # endif
     }
     return;
@@ -1633,7 +1625,7 @@ static void ChFi3d_MakeExtremities(Handle(ChFiDS_Stripe)&      Stripe,
                          Value(SDdeb->InterferenceOnS1().FirstParameter());     
       UV2=SDdeb->InterferenceOnS2().PCurveOnSurf()->
                          Value(SDdeb->InterferenceOnS2().FirstParameter());
-// On essaie l'intersection du conge par un plan
+// The intersection of the fillet by a plane is attempted
 
       Handle(GeomAdaptor_HSurface) HConge=ChFi3d_BoundSurf(DStr,SDdeb,1,2);
       ChFi3d_CoupeParPlan(cpdeb1,cpdeb2,HConge,UV1,UV2,
@@ -1668,12 +1660,12 @@ static void ChFi3d_MakeExtremities(Handle(ChFiDS_Stripe)&      Stripe,
       if (!cpdeb2.IsVertex())
        ChFi3d_SetPointTolerance(DStr,b2,Stripe->IndexFirstPointOnS2());
     }
-    else { // Cas de l'extremite singuliere
+    else { // Case of a singular extremity
       if (cpdeb1.IsVertex()) { 
        ChFi3d_SingularExtremity(Stripe, DStr, cpdeb1.Vertex(), tol3d, tol2d);
       }
 # if DEB
-      else { cout << "MakeExtremities : Singularite hors Vertex !!" << endl; }
+      else { cout << "MakeExtremities : Singularity out of Vertex !!" << endl; }
 # endif
     }
   }
@@ -1695,7 +1687,7 @@ static void ChFi3d_MakeExtremities(Handle(ChFiDS_Stripe)&      Stripe,
                          Value(SDfin->InterferenceOnS1().LastParameter());     
       UV2=SDfin->InterferenceOnS2().PCurveOnSurf()->
                          Value(SDfin->InterferenceOnS2().LastParameter());
-// On essaie l'intersection du conge par un plan
+// Intersection of the fillet by a plane is attempted
 
       Handle(GeomAdaptor_HSurface) HConge=ChFi3d_BoundSurf(DStr,SDfin,1,2);
       ChFi3d_CoupeParPlan(cpfin1,cpfin2,HConge,UV1,UV2,
@@ -1730,12 +1722,12 @@ static void ChFi3d_MakeExtremities(Handle(ChFiDS_Stripe)&      Stripe,
       if (!cpfin2.IsVertex())
        ChFi3d_SetPointTolerance(DStr,b2,Stripe->IndexLastPointOnS2());
     }
-    else { // Cas de l'extremite singuliere
+    else { // Case of the single extremity
       if (cpfin1.IsVertex()) { 
        ChFi3d_SingularExtremity(Stripe, DStr, cpfin1.Vertex(), tol3d, tol2d);
       }
 # if DEB
-      else { cout << "MakeExtremities : Singularite hors Vertex !!" << endl; }
+      else { cout << "MakeExtremities : Singularity out of Vertex !!" << endl; }
 # endif
     }
   }
@@ -1754,12 +1746,12 @@ static void ChFi3d_Purge (Handle(ChFiDS_Stripe)&    Stripe,
                          Standard_Boolean&         intf,
                          Standard_Boolean&         intl)
 {
-  if (isfirst) intf = 1; else intl = 1; // Fini.
+  if (isfirst) intf = 1; else intl = 1; // End.
   Standard_Integer opp = 3-ons;
   if (!SD->Vertex(isfirst,opp).IsOnArc() || 
       SD->TwistOnS1() || SD->TwistOnS2() ) {
 #ifdef DEB
-    cout<<"ChFi3d_Purge : Pas de sortie sur prolongement."<<endl;
+    cout<<"ChFi3d_Purge : No output on extension."<<endl;
 #endif
     ChFiDS_SequenceOfSurfData& Seq = 
       Stripe->ChangeSetOfSurfData()->ChangeSequence();
@@ -1781,8 +1773,8 @@ static void ChFi3d_Purge (Handle(ChFiDS_Stripe)&    Stripe,
 
 //=======================================================================
 //function : InsertAfter
-//purpose  : insert Item apres ref dans Seq. Si ref est null item est
-//           insere en tete.
+//purpose  : insert Item after ref in Seq. If ref is null, the item is
+//           inserted at the beginning.
 //=======================================================================
 
 static void InsertAfter (Handle(ChFiDS_Stripe)&   Stripe,
@@ -1790,7 +1782,7 @@ static void InsertAfter (Handle(ChFiDS_Stripe)&   Stripe,
                         Handle(ChFiDS_SurfData)& Item)
 {
   if (Ref == Item) 
-    Standard_Failure::Raise("InsertAfter : 2fois la meme surfdata.");
+    Standard_Failure::Raise("InsertAfter : twice the same surfdata.");
   
   ChFiDS_SequenceOfSurfData& Seq = 
     Stripe->ChangeSetOfSurfData()->ChangeSequence();
@@ -1830,8 +1822,8 @@ static void RemoveSD (Handle(ChFiDS_Stripe)&   Stripe,
 
 //=======================================================================
 //function : InsertBefore
-//purpose  : Insert item avant ref dans Seq. Si ref est null item est
-//           insere en queue.
+//purpose  : Insert item before ref in Seq. If ref is null, the item is
+//           inserted in the queue.
 //=======================================================================
 
 static void InsertBefore (Handle(ChFiDS_Stripe)&   Stripe,
@@ -1839,7 +1831,7 @@ static void InsertBefore (Handle(ChFiDS_Stripe)&   Stripe,
                          Handle(ChFiDS_SurfData)& Item)
 {
   if (Ref == Item) 
-    Standard_Failure::Raise("InsertBefore : 2fois la meme surfdata.");
+    Standard_Failure::Raise("InsertBefore : twice the same surfdata.");
   
   ChFiDS_SequenceOfSurfData& Seq = 
     Stripe->ChangeSetOfSurfData()->ChangeSequence();
@@ -1877,8 +1869,7 @@ void ChFi3d_Builder::PerformSetOfSurfOnElSpine
   Standard_Real wl = Guide.LastParameter();
   Standard_Real locfleche = (wl - wf) * fleche;
   Standard_Real wfsav = wf, wlsav = wl;
-  //Maintenant on elargit artificiellement l ElSpine 
-  //pour aider rsnld.
+  //Now the ElSpine is artificially extended to help rsnld.
   Standard_Real prab = 0.01;
   Guide.FirstParameter(wf-prab*(wl-wf));
   Guide.LastParameter (wl+prab*(wl-wf));
@@ -1910,34 +1901,34 @@ void ChFi3d_Builder::PerformSetOfSurfOnElSpine
   math_Vector SoldepCS(1,3);
   math_Vector SoldepCC(1,2);
   
-  // Recuperation d un KPart voisin.
-  // Si pas de voisin calcul point de depart. 
+  // Restore a neighboring KPart.
+  // If no neighbor calculation start point. 
   Standard_Boolean forward = Standard_True;
   Standard_Boolean Inside  = Standard_False;
   Standard_Real    First   = wf;
   Standard_Real    Last    = wl;
   Standard_Boolean Ok1 = 1,Ok2 = 1;
-  // Recuperation du KPart suivant si il existe
+  // Restore the next KPart if it exists
   TopoDS_Vertex Vref;
   if(ref.IsNull() && raf.IsNull()){
     //sinon solution approchee.
     Inside = Standard_True;
     
 #ifdef DEB  
-    ChFi3d_InitChron(ch1);// init perf pour  StartSol 
+    ChFi3d_InitChron(ch1);// init perf for StartSol 
 #endif
     
     StartSol(Stripe,HGuide,HS1,HS2,It1,It2,pp1,pp2,First);
     
 #ifdef DEB 
-    ChFi3d_ResultChron(ch1,t_startsol); // result perf pour  StartSol  
+    ChFi3d_ResultChron(ch1,t_startsol); // result perf for StartSol  
 #endif 
     
     Last = wf;
     if(Guide.IsPeriodic()) {
       Last = First - Guide.Period();
       Guide.FirstParameter(Last);
-      Guide.LastParameter (First * 1.1);//Extension pour aider rsnld.
+      Guide.LastParameter (First * 1.1);//Extension to help rsnld.
     }
   }
   else{
@@ -1954,7 +1945,7 @@ void ChFi3d_Builder::PerformSetOfSurfOnElSpine
     }
     
 #ifdef DEB  
-    ChFi3d_InitChron(ch1);// init perf pour   startsol 
+    ChFi3d_InitChron(ch1);// init perf for startsol 
 #endif
     
     
@@ -1968,7 +1959,7 @@ void ChFi3d_Builder::PerformSetOfSurfOnElSpine
     HC2.Nullify();
     
 #ifdef DEB   
-    ChFi3d_ResultChron(ch1,t_startsol); // result perf pour startsol  
+    ChFi3d_ResultChron(ch1,t_startsol); // result perf for startsol  
 #endif
     
     
@@ -1985,14 +1976,14 @@ void ChFi3d_Builder::PerformSetOfSurfOnElSpine
     if(Spine->IsPeriodic() && (indl < indf)) indl += nbed;
     nbed = indl-indf+1;
   }
-  // Pas Max a la louche : 20 points par arete en moyenne en prenant soin 
-  // de ne pas comptabiliser les prolongements.
+  // No Max at the touch : 20 points by edge at average without  
+  // counting the extensions.
 
   Standard_Real bidf = wf, bidl = wl;
   if(!Spine->IsPeriodic()) {
     bidf = Max(0.,wf);
     bidl = Min(wl,Spine->LastParameter(Spine->NbEdges()));
-    // PMN 20/07/98 : Attention au cas ou il n'y a que du prolongement
+    // PMN 20/07/98 : Attention in case if there is only extension
     if  ((bidl-bidf) < 0.01 * Spine->LastParameter(Spine->NbEdges())) {
        bidf = wf;
        bidl = wl;
@@ -2006,7 +1997,7 @@ void ChFi3d_Builder::PerformSetOfSurfOnElSpine
 #endif
   Standard_Boolean      intf = 0, intl = 0;
   while(!fini){
-    // sont-ce les bouts (pas de prolongement sur les periodiques).
+    // are these the ends (no extension on periodic).
     Ok1 = 1,Ok2 = 1;
     if(!Spine->IsPeriodic()){
       if(wf < tolesp && (complete == Inside)){
@@ -2031,7 +2022,7 @@ void ChFi3d_Builder::PerformSetOfSurfOnElSpine
     if(!ref.IsNull()){
       
 #ifdef DEB  
-      ChFi3d_InitChron(ch1);// init perf pour StartSol 
+      ChFi3d_InitChron(ch1);// init perf for StartSol 
 #endif
       
       Ok1 = StartSol(Spine,HS1,pp1,HC1,w1,ref,!forward,1,
@@ -2042,13 +2033,13 @@ void ChFi3d_Builder::PerformSetOfSurfOnElSpine
                     HS4,pp4,decroch2,Vref);
       
 #ifdef DEB   
-      ChFi3d_ResultChron(ch1,t_startsol); // result perf pour StartSol  
+      ChFi3d_ResultChron(ch1,t_startsol); // result perf for StartSol  
 #endif 
       
     }
     
-    // Plus de face connexe. Construction du plan tangent pour continuer le cheminement 
-    // jusqu a sortie sur l autre face.
+    // No more connected faces. Construction of the tangent plane to continue the path 
+    // till the output on the other face.
     if ((!Ok1 && HC1.IsNull()) || (!Ok2 && HC2.IsNull())) {
       if ((intf && !forward) || (intl && forward)) {
        if (!Ok1) ChFi3d_BuildPlane (DStr,HS1,pp1,ref,!forward,1);
@@ -2058,14 +2049,14 @@ void ChFi3d_Builder::PerformSetOfSurfOnElSpine
        if(forward) Guide.FirstParameter(wf);
        else Guide.LastParameter(wl);
       }
-      else Standard_Failure::Raise("PerformSetOfSurfOnElSpine : Chainage impossible.");
+      else Standard_Failure::Raise("PerformSetOfSurfOnElSpine : Chaining is impossible.");
     }
     
-    // Definition du domaine de cheminement It1, It2
+    // Definition of the domain of path It1, It2
     It1->Initialize(HS1);
     It2->Initialize(HS2);
     
-    // Calcul d'une (plusieur si singularite) SurfaData
+    // Calculate one (several if singularity) SurfaData
     SD = new ChFiDS_SurfData();
     ChFiDS_SequenceOfSurfData SeqSD;
     SeqSD.Append(SD);
@@ -2079,7 +2070,7 @@ void ChFi3d_Builder::PerformSetOfSurfOnElSpine
                                                Stripe->Choix());
 
 
-      // Calcul du critere de Choix arete / arete
+      // Calculate the criterion of Choice edge / edge
       if (Choix%2 == 0) Choix = 4;
       else Choix = 1;
 
@@ -2093,7 +2084,7 @@ void ChFi3d_Builder::PerformSetOfSurfOnElSpine
       }
       else{
 #ifdef DEB   
-       ChFi3d_InitChron(ch1); // init perf pour  PerformSurf 
+       ChFi3d_InitChron(ch1); // init perf for PerformSurf 
 #endif
        PerformSurf(SeqSD,HGuide,Spine,Choix,
                    HS1,It1,HC1,HSref1,HCref1,decroch1,Or1,
@@ -2101,7 +2092,7 @@ void ChFi3d_Builder::PerformSetOfSurfOnElSpine
                    MaxStep,locfleche,tolesp,First,Last,Inside,Inside,forward,
                    RecP1,RecRst1,RecP2,RecRst2,SoldepCC);
 #ifdef DEB  
-       ChFi3d_ResultChron(ch1,t_performsurf); //result  perf pour  PerformSurf 
+       ChFi3d_ResultChron(ch1,t_performsurf); //result  perf for PerformSurf 
 #endif 
       }
       SD->ChangeIndexOfS1(DStr.AddShape(HS1->ChangeSurface().Face()));
@@ -2124,13 +2115,13 @@ void ChFi3d_Builder::PerformSetOfSurfOnElSpine
       }
       else{
 #ifdef DEB  
-       ChFi3d_InitChron(ch1); // init perf pour  PerformSurf
+       ChFi3d_InitChron(ch1); // init perf for PerformSurf
 #endif
        PerformSurf(SeqSD,HGuide,Spine,Choix,HS1,It1,HC1,HSref1,HCref1,decroch1,
                    HS2,It2,Or2,MaxStep,locfleche,tolesp,First,Last,
                    Inside,Inside,forward,RecP1,RecS2,RecRst1,SoldepCS);
 #ifdef DEB  
-       ChFi3d_ResultChron(ch1,t_performsurf);//result  perf pour  PerformSurf  
+       ChFi3d_ResultChron(ch1,t_performsurf);//result  perf for PerformSurf  
 #endif 
       }
       SD->ChangeIndexOfS1(DStr.AddShape(HS1->ChangeSurface().Face()));
@@ -2152,13 +2143,13 @@ void ChFi3d_Builder::PerformSetOfSurfOnElSpine
       }
       else{
 #ifdef DEB   
-       ChFi3d_InitChron(ch1); // init perf pour  PerformSurf 
+       ChFi3d_InitChron(ch1); // init perf for PerformSurf 
 #endif
        PerformSurf(SeqSD,HGuide,Spine,Choix,HS1,It1,Or1,
                    HS2,It2,HC2,HSref2,HCref2,decroch2,MaxStep,locfleche,tolesp,
                    First,Last,Inside,Inside,forward,RecP2,RecS1,RecRst2,SoldepCS);
 #ifdef DEB  
-       ChFi3d_ResultChron(ch1,t_performsurf); //result  perf pour  PerformSurf 
+       ChFi3d_ResultChron(ch1,t_performsurf); //result  perf for PerformSurf 
 #endif 
       }
       SD->ChangeIndexOfS1(DStr.AddShape(HS1->ChangeSurface().Face()));
@@ -2177,18 +2168,18 @@ void ChFi3d_Builder::PerformSetOfSurfOnElSpine
       decroch1 = decroch2 = 0;
     }
 
-    if(!done) { // Cas d'echec
+    if(!done) { // Case of fail
       if ((!Ok1 && !obstacleon1) || (!Ok2 && !obstacleon2)) {
-       //Echec dans une partie de prolongement ce n'est pas grave
-       //On s'arrete la.
+       //Fail in a part of extension is not serious
+       //Here one stops.
        done = Standard_True;
        Inside = Standard_False;
        if (forward) intl = 1;
        else         intf = 1;
       }
-      else { // Sinon invalidation de la stripe.
+      else { // Otherwise invalidation of the stripe.
         Spine->SetErrorStatus(ChFiDS_WalkingFailure);
-       Standard_Failure::Raise("CallPerformSurf : Echec cheminement!");
+       Standard_Failure::Raise("CallPerformSurf : Path failed!");
       }
     }
     
@@ -2218,18 +2209,18 @@ void ChFi3d_Builder::PerformSetOfSurfOnElSpine
       } 
     
       if (!Ok1 && !obstacleon1) 
-       // nettoyage des infos sur le plan de prolongement.
+       // clean infos on the plane of extension.
        ChFi3d_Purge (Stripe,SD,ref->Vertex(!forward,1),!forward,1,intf,intl);
       
       if (!Ok2 && !obstacleon2) 
-       // nettoyage des infos sur le plan de prolongement.
+       // clean infos on the plane of extension.
        ChFi3d_Purge (Stripe,SD,ref->Vertex(!forward,2),!forward,2,intf,intl);
     
-      // C'est fini on change la reference       
+      // The end. The reference is changed.      
       ref = refbis;  
     }  
     
-    if(Inside){// on a des solutions de depart pour les suivants.
+    if(Inside){// There are starting solutions for the next.
       Inside = Standard_False;
       Firstsov = First;
       if(Guide.IsPeriodic()) {
@@ -2240,12 +2231,12 @@ void ChFi3d_Builder::PerformSetOfSurfOnElSpine
     }
     if(forward){
       fini = ((wl - Last) <= 10.*tolesp || 
-             (intl && !(obstacleon1 || obstacleon2))); //Cas general
+             (intl && !(obstacleon1 || obstacleon2))); //General case
 
       if (!fini && Guide.IsPeriodic() && 
          ((wl - Last)< Guide.Period()*1.e-3)) {
-       // On test si les recadrage extremes se font sur la meme edge
-        // Condition de bouclage
+       // It is tested if reframing of extremes is done at the same edge
+        // Loop Condition
        Handle(ChFiDS_SurfData) thefirst, thelast;
        thefirst = Stripe->SetOfSurfData()->Sequence().First();
        thelast =  Stripe->SetOfSurfData()->Sequence().Last();
@@ -2261,11 +2252,11 @@ void ChFi3d_Builder::PerformSetOfSurfOnElSpine
            (thelast->VertexLastOnS2().Arc());
 
        if (fini) 
-         return; //C'est fini !!
+         return; //It is ended!
       }
 
       if(fini && complete) {
-       // on repart dans l autre sens.
+       // restart in the opposite direction.
        ref  = Stripe->SetOfSurfData()->Sequence().First();
        forward = Standard_False;
        fini = Standard_False;
@@ -2283,7 +2274,7 @@ void ChFi3d_Builder::PerformSetOfSurfOnElSpine
       Last = wf;
     }
   }
-  // On remet l etat dans les wc ou on l a trouve.
+  // The initial state is restored
   if(!Guide.IsPeriodic()){
     Guide.FirstParameter(wfsav);
     Guide.LastParameter (wlsav);
@@ -2305,7 +2296,7 @@ void ChFi3d_Builder::PerformSetOfKPart(Handle(ChFiDS_Stripe)& Stripe,
   TopAbs_Orientation           Or1,Or2,RefOr1,RefOr2;
   Standard_Integer             Choix,RefChoix;
   
-  // initialisation du stripe.
+  // initialization of the stripe.
   Stripe->Reset();
   Handle(ChFiDS_HData)&  HData  = Stripe->ChangeSetOfSurfData();
   HData =  new ChFiDS_HData();
@@ -2336,7 +2327,7 @@ void ChFi3d_Builder::PerformSetOfKPart(Handle(ChFiDS_Stripe)& Stripe,
   Standard_Real WEndPeriodic = Spine->LastParameter(Spine->NbEdges());
   Spine->D1(WEndPeriodic,PEndPeriodic,TEndPeriodic);
   
-  // Construction des cas particuliers.
+  // Construction of particular cases.
   
   for (Standard_Integer iedge = 1; iedge <= Spine->NbEdges(); iedge++){
     
@@ -2356,17 +2347,17 @@ void ChFi3d_Builder::PerformSetOfKPart(Handle(ChFiDS_Stripe)& Stripe,
       
       if(!ChFiKPart_ComputeData::Compute(DStr,SD,HS1,HS2,Or1,Or2,Spine,iedge)){
 #ifdef DEB
-       cout<<"echec calcul KPart"<<endl;
+       cout<<"failed calculation KPart"<<endl;
 #endif
       }
       else if(!SplitKPart(SD,LSD,Spine,iedge,HS1,It1,HS2,It2,intf,intl)){
 #ifdef DEB
-       cout<<"echec calcul KPart"<<endl;
+       cout<<"failed calculation KPart"<<endl;
 #endif
        LSD.Clear();
       }
       else iedgelastkpart = iedge;
-      if(Spine->IsPeriodic()){//debug provisoire pour les SD qui arrivent dans le desordre.
+      if(Spine->IsPeriodic()){//debug provisory for SD that arrive in desorder.
        Standard_Integer nbsd = LSD.Length();
        Standard_Real period = Spine->Period();
        Standard_Real wfp = WStartPeriodic, wlp = WEndPeriodic;
@@ -2414,7 +2405,7 @@ void ChFi3d_Builder::PerformSetOfKPart(Handle(ChFiDS_Stripe)& Stripe,
        TgtKP(LSD.Value(j),Spine,iedge,1,PFirst,TFirst);
        TgtKP(LSD.Value(j),Spine,iedge,0,PLast,TLast);
        
-       // Determination des portions a approximer
+       // Determine the sections to approximate
        if(!YaKPart){
          if(Spine->IsPeriodic()){
            WStartPeriodic = WFirst;
@@ -2427,8 +2418,8 @@ void ChFi3d_Builder::PerformSetOfKPart(Handle(ChFiDS_Stripe)& Stripe,
            Spine->SetLastParameter(WEndPeriodic);
          }
          else if(!intf || (iedge > 1)){
-           // portion debut -> premier KPart
-           // mise a jour du prolongement.
+           // start section -> first KPart
+           // update of extension.
            Spine->SetFirstTgt(Min(0.,WFirst));
            CurrentHE->ChangeCurve().LastParameter (WFirst);
            CurrentHE->ChangeCurve().SetLastPointAndTgt(PFirst,TFirst);
@@ -2443,7 +2434,7 @@ void ChFi3d_Builder::PerformSetOfKPart(Handle(ChFiDS_Stripe)& Stripe,
        }
        else {
          if (WFirst - CurrentHE->FirstParameter() > tolesp) {
-           // portion entre deux KPart
+           // section between two KPart
            CurrentHE->ChangeCurve().LastParameter(WFirst);
            CurrentHE->ChangeCurve().SetLastPointAndTgt(PFirst,TFirst);
            Spine->AppendElSpine(CurrentHE);
@@ -2460,8 +2451,8 @@ void ChFi3d_Builder::PerformSetOfKPart(Handle(ChFiDS_Stripe)& Stripe,
   }
   
   if (!intl || (iedgelastkpart < Spine->NbEdges())) {
-    // portion dernier KPart(ou debut du spine) -> Fin du spine.
-    // mise a jour du prolongement.
+    // section last KPart(or start of the spine) -> End of the spine.
+    // update of the extension.
     
     if(Spine->IsPeriodic()){
       if(WEndPeriodic - WLast > tolesp){
@@ -2537,7 +2528,7 @@ void ChFi3d_Builder::PerformSetOfKGen(Handle(ChFiDS_Stripe)& Stripe,
     Standard_Integer last = len, i;
     Standard_Boolean periodic = Spine->IsPeriodic();
     if(periodic) last++;
-    // On essaye de reprendre les carreaux qui vrillent.
+    // It is attempted to reprocess the squares that bore.
     for(i = 1; i <= len; i++){
       Handle(ChFiDS_SurfData)& cursd = SeqSurf.ChangeValue(i);
       Standard_Boolean tw1 = cursd->TwistOnS1();
@@ -2553,13 +2544,12 @@ void ChFi3d_Builder::PerformSetOfKGen(Handle(ChFiDS_Stripe)& Stripe,
        else inext = 0;
       }
 
-      // Pour l instant on ne corrige que les surfaces ou le twist est 
-      // detecte au cheminement, il faudra prevoir un controle plus 
-      // subtile des traces moches ( taille, courbure, inflexion... ) 
+      // For the moment only the surfaces where the twist is 
+      // detected at the path are corrected, it is necessary to control  
+      // more subtly the ugly traces (size, curvature, inflexion... ) 
       if(!tw1 && !tw2) continue;
       
-      // On decide (assez arbitrairement) si la surface incriminee se prete 
-      // a un remplissage.
+      // It is decided (fairly at random) if the extended surface is ready for the filling.
       ChFiDS_FaceInterference& intf1 = cursd->ChangeInterferenceOnS1();
       ChFiDS_FaceInterference& intf2 = cursd->ChangeInterferenceOnS2();
       Standard_Integer cursurf1 = cursd->IndexOfS1();
@@ -2580,10 +2570,10 @@ void ChFi3d_Builder::PerformSetOfKGen(Handle(ChFiDS_Stripe)& Stripe,
       Standard_Boolean possibleon2 = (don2 < 2*(ddeb + dfin));
       if((tw1 && !possibleon1) || (tw2 && !possibleon2)) {
         Spine->SetErrorStatus(ChFiDS_TwistedSurface);
-       Standard_Failure::Raise("rattrapage en retouchant les points non ecrit");
+       Standard_Failure::Raise("adjustment by reprocessing the non-written points");
       }
       
-      // On regarde si il y a des voisins presentables
+      // It is checked if there are presentable neighbors
       Standard_Boolean yaprevon1 = 0, yaprevon2 = 0;
       Standard_Boolean samesurfon1 = 0, samesurfon2 = 0;
       if(iprev){
@@ -2601,7 +2591,7 @@ void ChFi3d_Builder::PerformSetOfKGen(Handle(ChFiDS_Stripe)& Stripe,
        yanexton2 = !nextsd->TwistOnS2();
        if(samesurfon2) samesurfon2 = (nextsd->IndexOfS2() == cursurf2);
       }
-      // On construit un contour de remplissage
+      // A contour of filling is constructed
       Handle(Geom2d_Curve) PC1 = intf1.PCurveOnFace();
       Handle(Geom2d_Curve) PC2 = intf2.PCurveOnFace();
       Handle(BRepAdaptor_HSurface) S1 = new BRepAdaptor_HSurface();
@@ -2616,15 +2606,15 @@ void ChFi3d_Builder::PerformSetOfKGen(Handle(ChFiDS_Stripe)& Stripe,
        if(!yaprevon1 || !yanexton1){
           Spine->SetErrorStatus(ChFiDS_TwistedSurface);
          Standard_Failure::Raise
-           ("rattrapage en retouchant les points non ecrit : pas de voisin");
+           ("adjustment by reprocessing the non-written points: no neighbor");
        }
        ChFiDS_FaceInterference& previntf1 = prevsd->ChangeInterferenceOnS1();
        ChFiDS_FaceInterference& nextintf1 = nextsd->ChangeInterferenceOnS1();
        Standard_Real prevpar1 = previntf1.LastParameter();
        Standard_Real nextpar1 = nextintf1.FirstParameter();
        if(samesurfon1){
-         // On regarde si on peut intersecter les traces des voisins
-         // pour faire un pointu.
+         // It is checked if it is possible to intersect traces of neighbors
+         // to create a sharp end.
          Handle(Geom2d_Curve) pcprev1 = previntf1.PCurveOnFace();
          Handle(Geom2d_Curve) pcnext1 = nextintf1.PCurveOnFace();
          Standard_Real nprevpar1,nnextpar1;
@@ -2651,7 +2641,7 @@ void ChFi3d_Builder::PerformSetOfKGen(Handle(ChFiDS_Stripe)& Stripe,
          }
        }
        else{
-         //ici on se fonde sur les tangentes 3d des voisins.
+         //here the base is on 3D tangents of neighbors.
          const Handle(Geom_Curve)& c3dprev1 = 
            DStr.Curve(previntf1.LineIndex()).Curve();
          const Handle(Geom_Curve)& c3dnext1 = 
@@ -2675,15 +2665,15 @@ void ChFi3d_Builder::PerformSetOfKGen(Handle(ChFiDS_Stripe)& Stripe,
       if(tw2){
        if(!yaprevon2 || !yanexton2){
          Standard_Failure::Raise
-           ("rattrapage en retouchant les points non ecrit : pas de voisin");
+           ("adjustment by reprocessing the non-written points: no neighbor");
        }
        ChFiDS_FaceInterference& previntf2 = prevsd->ChangeInterferenceOnS2();
        ChFiDS_FaceInterference& nextintf2 = nextsd->ChangeInterferenceOnS2();
        Standard_Real prevpar2 = previntf2.LastParameter();
        Standard_Real nextpar2 = nextintf2.FirstParameter();
        if(samesurfon2){
-         // On regarde si on peut intersecter les traces des voisins
-         // pour faire un pointu.
+         // It is checked if it is possible to intersect traces of neighbors
+         // to create a sharp end.
          Handle(Geom2d_Curve) pcprev2 = previntf2.PCurveOnFace();
          Handle(Geom2d_Curve) pcnext2 = nextintf2.PCurveOnFace();
          Standard_Real nprevpar2,nnextpar2;
@@ -2710,7 +2700,7 @@ void ChFi3d_Builder::PerformSetOfKGen(Handle(ChFiDS_Stripe)& Stripe,
          }
        }
        else{
-         //ici on se fonde sur les tangentes 3d des voisins.
+        //here the base is on 3D tangents of neighbors.
          const Handle(Geom_Curve)& c3dprev2 = 
            DStr.Curve(previntf2.LineIndex()).Curve();
          const Handle(Geom_Curve)& c3dnext2 = 
@@ -2731,8 +2721,8 @@ void ChFi3d_Builder::PerformSetOfKGen(Handle(ChFiDS_Stripe)& Stripe,
       else{
        Bon2 = ChFi3d_mkbound(S2,PC2,tolesp,2.e-4);
       }
-      // Les parametres des traces des voisins sont a jour, on tire donc des 
-      // droites uv.
+      // The parameters of neighbor traces are updated, so 
+      // straight lines uv are pulled.
       const Handle(Geom_Surface)& 
        sprev = DStr.Surface(prevsd->Surf()).Surface();
       const Handle(Geom_Surface)& 
@@ -2766,13 +2756,13 @@ void ChFi3d_Builder::PerformSetOfKGen(Handle(ChFiDS_Stripe)& Stripe,
       Handle(Geom_Surface) newsurf = fil.Surface();
 #ifdef DEB
 #ifdef DRAW
-      //POP pour NT
+      //POP for NT
       char* pops = "newsurf";
       DrawTrSurf::Set(pops,newsurf);
 #endif
 #endif
       if(pointuon1) {
-       newsurf->VReverse(); // on se ramene au sens 1 vers 2;
+       newsurf->VReverse(); // we return to direction 1 from  2;
        done = CompleteData(cursd,newsurf,S1,PC1,S2,PC2,
                            F2.Orientation(),0,0,0,0,0);
        cursd->ChangeIndexOfS1(0);
@@ -2791,7 +2781,7 @@ void ChFi3d_Builder::PerformSetOfKGen(Handle(ChFiDS_Stripe)& Stripe,
        nextsd->ChangeVertexFirstOnS2().SetPoint(cpf2.Point());
       }
     }
-    // On met a jour la tolerance des points.
+    // The tolerance of points is updated.
     for(i = 1; i < last; i++){
       Standard_Integer j = i%len + 1;
       Standard_Integer curs1, curs2;
@@ -2816,7 +2806,7 @@ void ChFi3d_Builder::PerformSetOfKGen(Handle(ChFiDS_Stripe)& Stripe,
       if(!curp1.IsOnArc() && nextp1.IsOnArc()){ 
        curp1 = nextp1;
        if ( (curs1 == nexts1) && !nextsd->IsOnCurve1()) 
-         // Cas ou l'on passe par la frontiere sans sortir
+         // Case when it is not possible to pass along the border without leaving
          ChangeTransition(nextp1, curp1, nexts1, myDS);
       }
       else if(curp1.IsOnArc() && !nextp1.IsOnArc()) { 
@@ -2854,7 +2844,7 @@ void ChFi3d_Builder::PerformSetOfKGen(Handle(ChFiDS_Stripe)& Stripe,
       curp1.SetTolerance(tol1); nextp1.SetTolerance(tol1); 
       curp2.SetTolerance(tol2); nextp2.SetTolerance(tol2); 
     }
-    // On met a jour les liens edge/nouvelles faces.
+    // The connections edge/new faces are updated.
     for (ILES.Initialize(ll) ; ILES.More(); ILES.Next()) {
       const Handle(ChFiDS_HElSpine)& curhels = ILES.Value();
       const ChFiDS_ElSpine& curels = curhels->ChangeCurve();
@@ -2877,7 +2867,7 @@ void ChFi3d_Builder::PerformSetOfKGen(Handle(ChFiDS_Stripe)& Stripe,
        IL = Spine->Index(WL,0);
       }
       if(IF == IL) {
-       //traitement rapide
+       //fast processing
        Standard_Integer IFloc = IF;
        if(periodic) IFloc = (IF - 1)%nbed + 1;
        const TopoDS_Edge& Ej = Spine->Edges(IFloc);
@@ -2896,7 +2886,7 @@ void ChFi3d_Builder::PerformSetOfKGen(Handle(ChFiDS_Stripe)& Stripe,
       else if(IF < IL){
        TColStd_Array1OfReal wv(IF,IL - 1);
 #ifdef  DEB
-       cout<<"longueur du trajet : "<<(WL-WF)<<endl;
+       cout<<"length of the trajectory : "<<(WL-WF)<<endl;
 #endif
        for(i = IF; i < IL; i++){
          Standard_Integer iloc = i;
@@ -2916,7 +2906,7 @@ void ChFi3d_Builder::PerformSetOfKGen(Handle(ChFiDS_Stripe)& Stripe,
          }
          else {
 #ifdef DEB
-           cout<<"echec projection vertex ElSpine!!!"<<endl;
+           cout<<"fail of projection vertex ElSpine!!!"<<endl;
 #endif
          }
        }
@@ -2967,7 +2957,7 @@ void ChFi3d_Builder::PerformSetOfSurf(Handle(ChFiDS_Stripe)& Stripe,
   
 #ifdef DEB   
   OSD_Chronometer ch;
-  ChFi3d_InitChron(ch);// init perf pour PerformSetOfKPart
+  ChFi3d_InitChron(ch);// init perf for PerformSetOfKPart
 #endif
   
   const Handle(ChFiDS_Spine)& sp = Stripe->Spine();
@@ -2977,14 +2967,14 @@ void ChFi3d_Builder::PerformSetOfSurf(Handle(ChFiDS_Stripe)& Stripe,
   
 #ifdef DEB   
   ChFi3d_ResultChron(ch ,t_perfsetofkpart); // result perf PerformSetOfKPart(
-  ChFi3d_InitChron(ch); // init perf pour  PerformSetOfKGen
+  ChFi3d_InitChron(ch); // init perf for  PerformSetOfKGen
 #endif
   
   PerformSetOfKGen(Stripe,Simul);
   
 #ifdef DEB   
   ChFi3d_ResultChron(ch, t_perfsetofkgen);//result perf PerformSetOfKGen 
-  ChFi3d_InitChron(ch); // init perf pour ChFi3d_MakeExtremities
+  ChFi3d_InitChron(ch); // init perf for ChFi3d_MakeExtremities
 #endif
   
   if(!Simul) ChFi3d_MakeExtremities(Stripe,DStr,myEFMap,tolesp,tol2d);
index 43a8dfce99cc86a593396ab362b01b263850da28..ddb773f27f82d09832d126f3df427b0c60241d9d 100755 (executable)
@@ -77,7 +77,7 @@
 #include <TopTools_ListIteratorOfListOfShape.hxx>
 
 #ifdef DEB
-// Pour les mesures.
+// For measurements.
 #include <OSD_Chronometer.hxx>
 //static OSD_Chronometer appclock;
 #endif
@@ -251,8 +251,8 @@ static void CompParam(Geom2dAdaptor_Curve  Carc,
                      const Standard_Real  preftg)
 {
   Standard_Boolean found = 0;
-  //(1) On verifie si les paramtres fournies sont bon
-  //    cas ou les pcurves sont paramtres comme la spine.
+  //(1) It is checked if the provided parameters are good 
+  //    if pcurves have the same parameters as the spine.
   gp_Pnt2d point = Carc.Value(prefarc);
   Standard_Real distini = point.Distance(Ctg->Value(preftg));
   if (distini <= Precision::PConfusion()) {
@@ -261,9 +261,9 @@ static void CompParam(Geom2dAdaptor_Curve  Carc,
     found = Standard_True;
   }
   else {
-    //(2) On intersecte
+    //(2) Intersection
 #ifdef DEB
-    cout<< "CompParam : mauvais parametres on intersecte"<<endl; 
+    cout<< "CompParam : bad intersection parameters"<<endl; 
 #endif
     IntRes2d_IntersectionPoint int2d;
     Geom2dInt_GInter Intersection;
@@ -278,7 +278,7 @@ static void CompParam(Geom2dAdaptor_Curve  Carc,
        nbseg = Intersection.NbSegments();
        if ( nbseg > 0 ){ 
 #ifdef DEB
-         cout<< "segments d intersection sur les restrictions"<<endl; 
+         cout<< "segments of intersection on the restrictions"<<endl; 
 #endif  
        }
        nbpt = Intersection.NbPoints();
@@ -298,23 +298,23 @@ static void CompParam(Geom2dAdaptor_Curve  Carc,
   }
   
   if(!found){
-    // (3) On projette...
+    // (3) Projection...
 #ifdef DEB
-    cout<<"CompParam : echec intersection PC, on projette."<<endl;
+    cout<<"CompParam : failed intersection PC, projection is created."<<endl;
 #endif
     parc = prefarc;
     Geom2dAPI_ProjectPointOnCurve projector(point,Ctg);
 
     if(projector.NbPoints() == 0){
-      // Cela arrive parfois dans les cas singuliers ou l'on sort 
-      // en bout de spine sur vertex...
+      // This happens in some cases when there is a vertex 
+      // at the end of spine...
       ptg = preftg; 
 #ifdef DEB
-      cout<<"CompParam :  echec proj p2d/c2d, on prend l'extremite!" <<endl;
+      cout<<"CompParam : failed proj p2d/c2d, the extremity is taken!" <<endl;
 #endif
     }
     else  {
-      // On controle que l'on n'as pas calculer n'importe quoi (EDC402 C2)
+      // It is checked if everything was calculated correctly (EDC402 C2)
       if  (projector.LowerDistance() < distini) 
        ptg = projector.LowerDistanceParameter();
       else  ptg = preftg;
@@ -324,8 +324,8 @@ static void CompParam(Geom2dAdaptor_Curve  Carc,
 
 //=======================================================================
 //function : CompBlendPoint
-//purpose  : fabrique le BlendPoint correspondant a une tangence sur Vertex
-// pmn : 15/10/1997 : renvoi false, si l'on n' a pas de pcurve    
+//purpose  : create BlendPoint corresponding to a tangency on Vertex
+// pmn : 15/10/1997 : returns false, if there is no pcurve    
 //=======================================================================
 
 static Standard_Boolean CompBlendPoint(const TopoDS_Vertex& V,
@@ -355,7 +355,7 @@ static Standard_Boolean CompBlendPoint(const TopoDS_Vertex& V,
 
 //=======================================================================
 //function :  UpdateLine
-//purpose  : Met a jour les extremites apres une invalidation partiel   
+//purpose  : Updates extremities after a partial invalidation   
 //=======================================================================
 
 static void UpdateLine(Handle(BRepBlend_Line)& Line, 
@@ -398,8 +398,8 @@ static void UpdateLine(Handle(BRepBlend_Line)& Line,
 
 //=======================================================================
 //function : CompleteData
-//purpose  : Calcule les courbes et les CommonPoints a partir des donnees
-//           calculees par remplissage.
+//purpose  : Calculates curves and CommonPoints from the data
+//           calculated by filling.
 //=======================================================================
 
 Standard_Boolean ChFi3d_Builder::CompleteData
@@ -436,7 +436,7 @@ Standard_Boolean ChFi3d_Builder::CompleteData
   if(!Gf1) Data->ChangeVertexLastOnS1().SetPoint(Surfcoin->Value(ULast,VFirst));
   if(!Gf2) Data->ChangeVertexLastOnS2().SetPoint(Surfcoin->Value(ULast,VLast));
 
-  //calcul des courbes cote S1
+  //calculate curves side S1
   Handle(Geom_Curve) Crv3d1;
   if(!PC1.IsNull()) Crv3d1= Surfcoin->VIso(VFirst);
   gp_Pnt2d pd1(UFirst,VFirst), pf1(ULast,VFirst);
@@ -466,7 +466,7 @@ Standard_Boolean ChFi3d_Builder::CompleteData
   Fint1.SetFirstParameter(UFirst);
   Fint1.SetLastParameter(ULast);
   Fint1.SetInterference(Index1OfCurve,tra1,c2dtrim,PCurveOnSurf);
-  //calcul des courbes cote S2
+  //calculate curves side S2
   Handle(Geom_Curve) Crv3d2;
   if(!PC2.IsNull()) Crv3d2 = Surfcoin->VIso(VLast);
   gp_Pnt2d pd2(UFirst,VLast), pf2(ULast,VLast);
@@ -499,11 +499,10 @@ Standard_Boolean ChFi3d_Builder::CompleteData
 
 //=======================================================================
 //function : CompleteData
-//purpose  : Calcule la surface les courbes et eventuellement les
-//           CommonPoints a partir des donnees calculees dans 
-//           ComputeData.
+//purpose  : Calculates the surface of curves and eventually 
+//           CommonPoints from the data calculated in ComputeData.
 //
-//  11/08/1996 : Utilisation de F(t)
+//  11/08/1996 : Use of F(t)
 //
 //=======================================================================
 
@@ -543,7 +542,7 @@ Standard_Boolean ChFi3d_Builder::CompleteData
 
 //=======================================================================
 //function : CompleteData
-//purpose  : Nouvelle surcharge pour les fonctions surf/rst
+//purpose  : New overload for functions surf/rst
 // jlr le 28/07/97 branchement F(t)
 //=======================================================================
 
@@ -566,7 +565,7 @@ Standard_Boolean ChFi3d_Builder::CompleteData
                               myConti);  
  if (!approx.IsDone()) {
 #ifdef DEB
-    cout << "Approximation non faite !!!" << endl;
+    cout << "Approximation is not done!" << endl;
 #endif  
     return Standard_False;
   }
@@ -581,7 +580,7 @@ Standard_Boolean ChFi3d_Builder::CompleteData
 
 //=======================================================================
 //function : CompleteData
-//purpose  : Nouvelle surcharge pour les fonctions rst/rst
+//purpose  : New overload for functions rst/rst
 // jlr le 28/07/97 branchement F(t)
 //=======================================================================
 
@@ -619,7 +618,7 @@ Standard_Boolean ChFi3d_Builder::CompleteData
 
 //=======================================================================
 //function : StoreData
-//purpose  : Recopie d un resultat d approx dans une SurfData.
+//purpose  : Copy of an approximation result in SurfData.
 //=======================================================================
 
 Standard_Boolean ChFi3d_Builder::StoreData(Handle(ChFiDS_SurfData)& Data,
@@ -634,7 +633,7 @@ Standard_Boolean ChFi3d_Builder::StoreData(Handle(ChFiDS_SurfData)& Data,
                                           const Standard_Boolean Gf2,
                                           const Standard_Boolean Reversed)
 {
-  // Petits outils pour les controles.
+  // Small control tools.
   static Handle(GeomAdaptor_HCurve) checkcurve;
   if(checkcurve.IsNull()) checkcurve = new GeomAdaptor_HCurve();
   GeomAdaptor_Curve& chc = checkcurve->ChangeCurve();
@@ -653,8 +652,8 @@ Standard_Boolean ChFi3d_Builder::StoreData(Handle(ChFiDS_SurfData)& Data,
   }
 
   TopOpeBRepDS_DataStructure& DStr = myDS->ChangeDS();
-  // On rend l espace parametric de la surface carre a defaut de pouvoir
-  // parametrer en U par # R*teta // a revoir lbo 29/08/97
+  // By default parametric space is created using a square surface
+  // to be able to parameterize in U by # R*teta // a revoir lbo 29/08/97
   const TColStd_Array1OfReal& ku = approx.SurfUKnots();
   const TColStd_Array1OfReal& kv = approx.SurfVKnots();
   Standard_Real larg = (kv(kv.Upper())-kv(kv.Lower()));
@@ -665,7 +664,7 @@ Standard_Boolean ChFi3d_Builder::StoreData(Handle(ChFiDS_SurfData)& Data,
                            kku,kv,
                            approx.SurfUMults(),approx.SurfVMults(),
                            approx.UDegree(),approx.VDegree());
-// prolongement de la surface 
+// extension of the surface 
 
   Standard_Real length1,length2;
   length1=Data->FirstExtensionValue();
@@ -701,7 +700,7 @@ Standard_Boolean ChFi3d_Builder::StoreData(Handle(ChFiDS_SurfData)& Data,
   Standard_Integer ion1 = 1, ion2 = 2;
   if(Reversed) { Uon1 = ULast; Uon2 = UFirst; ion1 = 2; ion2 = 1; }
   
-  // On remplit la SurfData pour ce qui concerne S1,
+  // The SurfData is filled in what concerns S1,
   Handle(Geom_Curve) Crv3d1 = Surf->UIso(Uon1);
   gp_Pnt2d pori1(Uon1,0.);
   gp_Lin2d lfil1(pori1,gp::DY2d());
@@ -718,7 +717,7 @@ Standard_Boolean ChFi3d_Builder::StoreData(Handle(ChFiDS_SurfData)& Data,
    
  if(!ChFi3d_CheckSameParameter(checkcurve,PCurveOnFace,S1,tolC1,tolcheck)){
 #ifdef DEB
-   cout<<"tol approx sous evaluee : "<<tolC1<<" pour "<<tolcheck<<endl;
+   cout<<"aaproximate tolerance under-valued : "<<tolC1<<" for "<<tolcheck<<endl;
 #endif 
     tolC1 = tolcheck;
   }
@@ -758,7 +757,7 @@ Standard_Boolean ChFi3d_Builder::StoreData(Handle(ChFiDS_SurfData)& Data,
   else TraOn1 = ChFi3d_TrsfTrans(lin->TransitionOnS1());
   Fint1.SetInterference(Index1OfCurve,TraOn1,PCurveOnFace,PCurveOnSurf);
   
-  // on remplit la SurfData pour ce qui concerne S2,
+  // SurfData is filled in what concerns S2,
   Handle(Geom_Curve) Crv3d2 = Surf->UIso(Uon2);
   gp_Pnt2d pori2(Uon2,0.);
   gp_Lin2d lfil2(pori2,gp::DY2d());
@@ -771,7 +770,7 @@ Standard_Boolean ChFi3d_Builder::StoreData(Handle(ChFiDS_SurfData)& Data,
     chc.Load(Crv3d2,par1,par2);
    if(!ChFi3d_CheckSameParameter(checkcurve,PCurveOnFace,S2,tolC2,tolcheck)){
 #ifdef DEB
-      cout<<"tol approx sous evaluee : "<<tolC2<<" pour "<<tolcheck<<endl;
+      cout<<"approximate tolerance under-evaluated : "<<tolC2<<" for "<<tolcheck<<endl;
 #endif 
       tolC2 = tolcheck;
     }
@@ -817,7 +816,7 @@ Standard_Boolean ChFi3d_Builder::StoreData(Handle(ChFiDS_SurfData)& Data,
       (Index2OfCurve,TopAbs_FORWARD,bidpc,PCurveOnSurf);
   }
 
-  // on calcule l orientation du conge par rapport aux faces,
+  // the orientation of the fillet in relation to the faces is evaluated,
 
   Handle(Adaptor3d_HSurface) Sref = S1;
   PCurveOnFace = Fint1.PCurveOnFace();
@@ -885,7 +884,7 @@ Standard_Boolean ChFi3d_Builder::StoreData(Handle(ChFiDS_SurfData)& Data,
   if(!Gf2 && !S2.IsNull())
     ChFi3d_FilCommonPoint(lin->EndPointOnSecond(),lin->TransitionOnS2(),
                          Standard_False, Data->ChangeVertex(0,ion2),tolC2);
-  // Les parametres sur l ElSpine
+  // Parameters on ElSpine
   Standard_Integer nbp = lin->NbPoints();
   Data->FirstSpineParam(lin->Point(1).Parameter());
   Data->LastSpineParam(lin->Point(nbp).Parameter());
@@ -896,8 +895,7 @@ Standard_Boolean ChFi3d_Builder::StoreData(Handle(ChFiDS_SurfData)& Data,
 
 //=======================================================================
 //function : ComputeData
-//purpose  : Chapeau du cheminement edge/face pour le contournement
-//           d obstacle.
+//purpose  : Head of the path edge/face for the bypass of obstacle.
 //=======================================================================
 
 Standard_Boolean ChFi3d_Builder::ComputeData
@@ -948,7 +946,7 @@ Standard_Boolean ChFi3d_Builder::ComputeData
 #else
   Standard_Integer Nbpnt;
 #endif
-  // on recadre la solution de depart a la demande.
+  // the initial solution is reframed if necessary.
   math_Vector ParSol(1,3);
   Standard_Real NewFirst = PFirst;
   if(RecP || RecS || RecRst){
@@ -956,7 +954,7 @@ Standard_Boolean ChFi3d_Builder::ComputeData
                                    tolesp,TolGuide,RecRst,RecP,RecS,
                                    NewFirst,ParSol)){
 #ifdef DEB
-      cout<<"ChFi3d_Builder::ComputeData : echec calcul first section"<<endl;
+      cout<<"ChFi3d_Builder::ComputeData : calculation fail first section"<<endl;
 #endif
       return Standard_False;
     }
@@ -971,7 +969,7 @@ Standard_Boolean ChFi3d_Builder::ComputeData
 
     if (!TheWalk.IsDone()) {
 #ifdef DEB
-      cout << "Cheminement non fait" << endl;
+      cout << "Path not created" << endl;
 #endif  
       return Standard_False;
     }
@@ -979,7 +977,7 @@ Standard_Boolean ChFi3d_Builder::ComputeData
     if (reverse) {
       if (!TheWalk.Complete(Func,FInv,FInvP,FInvC,SpLast)) {
 #ifdef DEB
-       cout << "Complement non fait" << endl;
+       cout << "Not completed" << endl;
 #endif
       }
     }  
@@ -990,14 +988,14 @@ Standard_Boolean ChFi3d_Builder::ComputeData
     if (Nbpnt <= 1 && again == 0)  {
       again++;
 #ifdef DEB
-      cout <<"1 seul point de cheminement on essaye MS/50."<<endl;
+      cout <<"one point of the path MS/50 is attempted."<<endl;
 #endif  
       MS = MS/50.; Target = Targetsov;
     }
     else if (Nbpnt<=nbptmin && again == 0)  {
       again++;
 #ifdef DEB
-      cout <<"Nombre de points insuffisant on reduit le pas"<<endl;
+      cout <<"Number of points is too small, the step is reduced"<<endl;
 #endif  
       Standard_Real u1 = Lin->Point(1).Parameter();
       Standard_Real u2 = Lin->Point(Nbpnt).Parameter();
@@ -1007,7 +1005,7 @@ Standard_Boolean ChFi3d_Builder::ComputeData
     }
     else if(Nbpnt<=nbptmin){
 #ifdef DEB
-      cout <<"Nombre de points toujours insuffisant on sort"<<endl;
+      cout <<"Number of points is still too small, quit"<<endl;
 #endif  
       return Standard_False;
     }
@@ -1029,8 +1027,7 @@ Standard_Boolean ChFi3d_Builder::ComputeData
 
 //=======================================================================
 //function : ComputeData
-//purpose  : Chapeau du cheminement edge/edge pour le contournement
-//           d obstacle.
+//purpose  : Heading of the path edge/edge for the bypass of obstacle.
 //=======================================================================
 
 Standard_Boolean ChFi3d_Builder::ComputeData
@@ -1085,7 +1082,7 @@ Standard_Boolean ChFi3d_Builder::ComputeData
 #else
   Standard_Integer Nbpnt;
 #endif
-  // on recadre la solution de depart a la demande.
+  // the initial solution is reframed if necessary.
   math_Vector ParSol(1,2);
   Standard_Real NewFirst = PFirst;
   if (RecP1 || RecRst1 || RecP2 || RecRst2) {
@@ -1093,7 +1090,7 @@ Standard_Boolean ChFi3d_Builder::ComputeData
                                     tolesp, TolGuide, RecRst1, RecP1, RecRst2, RecP2,
                                     NewFirst, ParSol)){
 #ifdef DEB
-      cout<<"ChFi3d_Builder::ComputeData : echec calcul first section"<<endl;
+      cout<<"ChFi3d_Builder::ComputeData : fail calculation first section"<<endl;
 #endif
       return Standard_False;
     }
@@ -1108,7 +1105,7 @@ Standard_Boolean ChFi3d_Builder::ComputeData
 
     if (!TheWalk.IsDone()) {
 #ifdef DEB
-      cout << "Cheminement non fait" << endl;
+      cout << "Path not done" << endl;
 #endif  
       return Standard_False;
     }
@@ -1116,7 +1113,7 @@ Standard_Boolean ChFi3d_Builder::ComputeData
     if (reverse) {
       if (!TheWalk.Complete(Func, FInv1, FInvP1, FInv2, FInvP2, SpLast)) {
 #ifdef DEB
-       cout << "Complement non fait" << endl;
+       cout << "Not completed" << endl;
 #endif
       }
     }  
@@ -1127,14 +1124,14 @@ Standard_Boolean ChFi3d_Builder::ComputeData
     if (Nbpnt <= 1 && again == 0)  {
       again++;
 #ifdef DEB
-      cout <<"1 seul point de cheminement on essaye MS/50."<<endl;
+      cout <<"one point of path MS/50 is attempted."<<endl;
 #endif  
       MS = MS/50.; Target = Targetsov;
     }
     else if (Nbpnt<=nbptmin && again == 0)  {
       again++;
 #ifdef DEB
-      cout <<"Nombre de points insuffisant on reduit le pas"<<endl;
+      cout <<"Number of points is too small, the step is reduced"<<endl;
 #endif  
       Standard_Real u1 = Lin->Point(1).Parameter();
       Standard_Real u2 = Lin->Point(Nbpnt).Parameter();
@@ -1143,7 +1140,7 @@ Standard_Boolean ChFi3d_Builder::ComputeData
     }
     else if(Nbpnt<=nbptmin){
 #ifdef DEB
-      cout <<"Nombre de points toujours insuffisant on sort"<<endl;
+      cout <<"Number of points is still too small, quit"<<endl;
 #endif  
       return Standard_False;
     }
@@ -1171,8 +1168,7 @@ Standard_Boolean ChFi3d_Builder::ComputeData
 
 //=======================================================================
 //function : SimulData
-//purpose  : Chapeau du cheminement edge/face pour le contournement
-//           d obstacle en mode simulation.
+//purpose  : Heading of the path edge/face for the bypass of obstacle in simulation mode.
 //=======================================================================
 
 Standard_Boolean ChFi3d_Builder::SimulData
@@ -1220,7 +1216,7 @@ Standard_Boolean ChFi3d_Builder::SimulData
 #else
   Standard_Integer Nbpnt; 
 #endif
-  // on recadre la solution de depart a la demande.
+  // the starting solution is reframed if needed.
   math_Vector ParSol(1,3);
   Standard_Real NewFirst = PFirst;
   if(RecP || RecS || RecRst){
@@ -1229,7 +1225,7 @@ Standard_Boolean ChFi3d_Builder::SimulData
                                    NewFirst,ParSol)){
 #ifdef DEB
 
-      cout<<"ChFi3d_Builder::SimulData : echec calcul first section"<<endl;
+      cout<<"ChFi3d_Builder::SimulData : fail calculate first section"<<endl;
 #endif
       return Standard_False;
     }
@@ -1243,14 +1239,14 @@ Standard_Boolean ChFi3d_Builder::SimulData
                     MS,TolGuide,ParSol,tolesp,Fleche,Appro);
     if (!TheWalk.IsDone()) {
 #ifdef DEB
-      cout << "Cheminement non fait" << endl;
+      cout << "Path not done" << endl;
 #endif
       return Standard_False;
     }
     if (reverse) {
       if (!TheWalk.Complete(Func,FInv,FInvP,FInvC,SpLast)) {
 #ifdef DEB
-       cout << "Complement non fait" << endl;
+       cout << "Not completed" << endl;
 #endif
       }
     }  
@@ -1259,14 +1255,14 @@ Standard_Boolean ChFi3d_Builder::SimulData
     if (Nbpnt <= 1 && again == 0)  {
       again++;
 #ifdef DEB
-      cout <<"1 seul point de cheminement on essaye MS/50."<<endl;
+      cout <<"one point of path MS/50 is attempted."<<endl;
 #endif
       MS = MS/50.; Target = Targetsov;
     }
     else if (Nbpnt <= NbSecMin && again == 0)  {
       again++;
 #ifdef DEB
-      cout <<"Nombre de points insuffisant on reduit le pas"<<endl;
+      cout <<"Number of points is too small, the step is reduced"<<endl;
 #endif
       Standard_Real u1 = Lin->Point(1).Parameter();
       Standard_Real u2 = Lin->Point(Nbpnt).Parameter();
@@ -1275,7 +1271,7 @@ Standard_Boolean ChFi3d_Builder::SimulData
     }
     else if(Nbpnt<=NbSecMin){
 #ifdef DEB
-      cout <<"Nombre de points toujours insuffisant on sort"<<endl;
+      cout <<"Number of points is still too small, quit"<<endl;
 #endif
       return Standard_False;
     }
@@ -1297,8 +1293,8 @@ Standard_Boolean ChFi3d_Builder::SimulData
 
 //=======================================================================
 //function : SimulData
-//purpose  : Chapeau du cheminement edge/edge pour le contournement
-//           d obstacle en mode simulation.
+//purpose  : Heading of path edge/edge for the bypass
+//           of obstacle in simulation mode.
 //=======================================================================
 
 Standard_Boolean ChFi3d_Builder::SimulData
@@ -1350,7 +1346,7 @@ Standard_Boolean ChFi3d_Builder::SimulData
 #else
   Standard_Integer Nbpnt; 
 #endif
-  // on recadre la solution de depart a la demande.
+  // The initial solution is reframed if necessary.
   math_Vector ParSol(1,2);
   Standard_Real NewFirst = PFirst;
   if (RecP1 || RecRst1 || RecP2 || RecRst2) {
@@ -1359,7 +1355,7 @@ Standard_Boolean ChFi3d_Builder::SimulData
                                    NewFirst,ParSol)){
 #ifdef DEB
 
-      cout<<"ChFi3d_Builder::SimulData : echec calcul first section"<<endl;
+      cout<<"ChFi3d_Builder::SimulData : calculation fail first section"<<endl;
 #endif
       return Standard_False;
     }
@@ -1373,14 +1369,14 @@ Standard_Boolean ChFi3d_Builder::SimulData
                     MS, TolGuide, ParSol, tolesp, Fleche, Appro);
     if (!TheWalk.IsDone()) {
 #ifdef DEB
-      cout << "Cheminement non fait" << endl;
+      cout << "Path not created" << endl;
 #endif
       return Standard_False;
     }
     if (reverse) {
       if (!TheWalk.Complete(Func, FInv1, FInvP1, FInv2, FInvP2, SpLast)) {
 #ifdef DEB
-       cout << "Complement non fait" << endl;
+       cout << "Not completed" << endl;
 #endif
       }
     }  
@@ -1389,14 +1385,14 @@ Standard_Boolean ChFi3d_Builder::SimulData
     if (Nbpnt <= 1 && again == 0)  {
       again++;
 #ifdef DEB
-      cout <<"1 seul point de cheminement on essaye MS/50."<<endl;
+      cout <<"only one point of path MS/50 is attempted."<<endl;
 #endif
       MS = MS/50.; Target = Targetsov;
     }
     else if (Nbpnt <= NbSecMin && again == 0)  {
       again++;
 #ifdef DEB
-      cout <<"Nombre de points insuffisant on reduit le pas"<<endl;
+      cout <<"Number of points is too small, the step is reduced"<<endl;
 #endif
       Standard_Real u1 = Lin->Point(1).Parameter();
       Standard_Real u2 = Lin->Point(Nbpnt).Parameter();
@@ -1405,7 +1401,7 @@ Standard_Boolean ChFi3d_Builder::SimulData
     }
     else if(Nbpnt<=NbSecMin){
 #ifdef DEB
-      cout <<"Nombre de points toujours insuffisant on sort"<<endl;
+      cout <<"Number of points is still too small, quit"<<endl;
 #endif
       return Standard_False;
     }
@@ -1435,7 +1431,7 @@ Standard_Boolean ChFi3d_Builder::SimulData
 
 //=======================================================================
 //function : ComputeData
-//purpose  : Construction d un conge elementaire par cheminement.
+//purpose  : Construction of elementary fillet by path.
 //
 //=======================================================================
 
@@ -1469,27 +1465,27 @@ Standard_Boolean ChFi3d_Builder::ComputeData
  const Standard_Boolean RecOnS1,
  const Standard_Boolean RecOnS2)
 {
-  //Les prolongements en cas de sortie des deux domaines sont faits
-  //de facon directe et non plus par cheminement ( trop hasardeux ).
+  //The extrensions are created in case of output of two domains
+  //directly and not by path ( too hasardous ).
   Data->FirstExtensionValue(0);
   Data-> LastExtensionValue(0);
 
-  //On recupere les faces eventuelles pour les tests de saut d edge.
+  //The eventual faces are restored to test the jump of edge.
   TopoDS_Face F1, F2;
   Handle(BRepAdaptor_HSurface) HS = Handle(BRepAdaptor_HSurface)::DownCast(S1); 
   if(!HS.IsNull()) F1 = HS->ChangeSurface().Face();
   HS = Handle(BRepAdaptor_HSurface)::DownCast(S2); 
   if(!HS.IsNull()) F2 = HS->ChangeSurface().Face();
   
-  // Variables d'encadrement du cheminement
+  // Path framing variables
   Standard_Real TolGuide=tolguide, TolEsp = tolesp;
   Standard_Integer nbptmin = 4;
 
   BRepBlend_Walking TheWalk(S1,S2,I1,I2);
 
-  //Debut du carnage, on eteint les controles 2d du cheminement
-  //qui s'accomodent mal des surfaces a parametrages non homogenes
-  //en u et en v.
+  //Start of removal, 2D path controls 
+  //that qui s'accomodent mal des surfaces a parametrages non homogenes
+  //en u et en v are extinguished.
   TheWalk.Check2d(0);
   
   Standard_Real MS = MaxStep;
@@ -1497,9 +1493,8 @@ Standard_Boolean ChFi3d_Builder::ComputeData
   Standard_Real SpFirst = HGuide->FirstParameter();
   Standard_Real SpLast =  HGuide->LastParameter();
 
-  // Lorsque le point de depart est interne, on chemine 
-  // d abord a gauche afin de determiner le Last pour les
-  // periodiques.
+  // When the start point is inside, the path goes first to the left  
+  // to determine the Last for the periodicals.
   Standard_Boolean reverse = (!Forward || Inside);
   Standard_Real Target;
   if(reverse){
@@ -1511,8 +1506,8 @@ Standard_Boolean ChFi3d_Builder::ComputeData
     if(!intl) Target = Last;
   }
 
-  // Dans le cas de singularite pre-determinee,
-  // on en informe le cheminement
+  // In case if the singularity is pre-determined,
+  // the path is indicated.
   if (!Spine.IsNull()){
     if (Spine->IsTangencyExtremity(Standard_True)) {
       TopoDS_Vertex V = Spine->FirstVertex();
@@ -1546,7 +1541,7 @@ Standard_Boolean ChFi3d_Builder::ComputeData
     }
   }
 
-  //On recadre la solution de depart a la demande.
+  //The starting solution is reframed if necessary.
   //**********************************************//
   math_Vector ParSol(1,4);
   Standard_Real NewFirst = PFirst;
@@ -1555,7 +1550,7 @@ Standard_Boolean ChFi3d_Builder::ComputeData
                                    tolesp,TolGuide,RecOnS1,RecOnS2,
                                    NewFirst,ParSol)){
 #ifdef DEB
-      cout<<"ChFi3d_Builder::ComputeData : echec calcul first section"<<endl;
+      cout<<"ChFi3d_Builder::ComputeData : calculation fail first section"<<endl;
 #endif
       return Standard_False;
     }
@@ -1564,7 +1559,7 @@ Standard_Boolean ChFi3d_Builder::ComputeData
     ParSol = Soldep;
   }
 
-  //On calcule d abord la partie valide, sans souci des prolongements.
+  //First the valid part is calculate, without caring for the extensions.
   //******************************************************************//
   Standard_Integer again = 0;
   Standard_Boolean tchernobyl = 0;
@@ -1574,15 +1569,15 @@ Standard_Boolean ChFi3d_Builder::ComputeData
   Standard_Real u1sov, u2sov;
 #endif
   TopoDS_Face bif;
-  //Un pas max coherent, mais grand, on compte sur la fleche pour detecter
-  //les vrillages.
+  //Max step is relevant, but too great, the vector is required to detect
+  //the twists.
   if( (Abs(Last-First) <= MS * 5.) &&
       (Abs(Last-First) >= 0.01*Abs(NewFirst-Target)) ){ 
     MS = Abs(Last-First)*0.2; 
   }
 
   while(again < 3){
-    //On chemine
+    //Path
     if(!again && (MS < 5*TolGuide)) MS = 5*TolGuide;
     else {
       if (5*TolGuide > MS) TolGuide = MS/5;
@@ -1592,7 +1587,7 @@ Standard_Boolean ChFi3d_Builder::ComputeData
                    ParSol,TolEsp,Fleche,Appro);
     if (!TheWalk.IsDone()) {
 #ifdef DEB
-      cout << "Cheminement non fait" << endl;
+      cout << "Path is not created" << endl;
 #endif
       return Standard_False;
     }
@@ -1608,18 +1603,18 @@ Standard_Boolean ChFi3d_Builder::ComputeData
     if (Inside)  complmnt = TheWalk.Complete(Func,FInv,SpLast);
     if(!complmnt){
 #ifdef DEB
-      cout << "Complement non fait" << endl;
+      cout << "Not completed" << endl;
 #endif
       return Standard_False;
     }
     
-    //On controle le resultat avec deux criteres :
-    //- y a-t-il assez de points,
-    //- est-on alle assez loin.
+    //The result is controlled using two criterions :
+    //- if there is enough points,
+    //- if one has gone far enough.
     Nbpnt = Lin->NbPoints();
     if (Nbpnt == 0){
 #ifdef DEB
-      cout <<"0 point de cheminement on sort."<<endl;
+      cout <<"0 point of path, quit."<<endl;
 #endif
       return Standard_False;
     }
@@ -1640,12 +1635,11 @@ Standard_Boolean ChFi3d_Builder::ComputeData
       okfin = (narc1 > 0 || narc2 > 0 || (Last-lpointpar) < 10*TolGuide);
     }
     if(!okdeb || !okfin || Nbpnt == 1){
-      //Ca frotte, on eteint les controles on espere evaluer un pas max
-      //satisfaisant, et on serre les fesses!!!. Si c est deja fait on
-      //sort.
+      //It drags, the controls are extended, it is  expected to evaluate a
+      //satisfactory maximum step. If it already done, quit.
       if(tchernobyl){
 #ifdef DEB
-       cout <<"Ca frotte meme sans controle, on sort."<<endl;
+       cout <<"If it drags without control, quit."<<endl;
 #endif
        return Standard_False;
       }
@@ -1653,14 +1647,14 @@ Standard_Boolean ChFi3d_Builder::ComputeData
       TheWalk.Check(0);
       if (Nbpnt == 1){
 #ifdef DEB
-       cout <<"1 seul point de cheminement on essaye MS/100"<<endl;
-       cout <<"et on eteint les controles."<<endl;
+       cout <<"only one point of path MS/100 is attempted"<<endl;
+       cout <<"and the controls are extended."<<endl;
 #endif
        MS *= 0.01;
       }
       else{
 #ifdef DEB
-       cout <<"Ca frotte on eteint les controles."<<endl;
+       cout <<"It drags, the controls are extended."<<endl;
 #endif
        MS = (lpointpar-fpointpar)/Nbpnt; //EvalStep(Lin);
       }
@@ -1668,7 +1662,7 @@ Standard_Boolean ChFi3d_Builder::ComputeData
     else if (Nbpnt < nbptmin){
       if(again == 0){
 #ifdef DEB
-       cout <<"Nombre de points insuffisant on reduit le pas"<<endl;
+       cout <<"Number of points is too small, the step is reduced"<<endl;
 #endif
        u1sov = fpointpar;
        u2sov = lpointpar;
@@ -1678,13 +1672,13 @@ Standard_Boolean ChFi3d_Builder::ComputeData
        if(Abs(fpointpar-u1sov)>=TolGuide || 
           Abs(lpointpar-u2sov)>=TolGuide){
 #ifdef DEB
-         cout <<"Nombre de points encore insuffisant on reduit le pas"<<endl;
+         cout <<"Number of points is still too small, the step is reduced"<<endl;
 #endif  
          MS = (lpointpar - fpointpar) * factor;
        }
        else{
 #ifdef DEB
-         cout <<"Nombre de points toujours insuffisant on sort"<<endl;
+         cout <<"Number of points is still too small, quit"<<endl;
 #endif  
          return Standard_False;
        }
@@ -1699,20 +1693,20 @@ Standard_Boolean ChFi3d_Builder::ComputeData
   if(TheWalk.TwistOnS1()){
     Data->TwistOnS1(Standard_True);
 #ifdef DEB
-    cout<<"Cheminement complet mais VRILLE sur S1"<<endl;
+    cout<<"Path completed, but TWIST on S1"<<endl;
 #endif
   }
   if(TheWalk.TwistOnS2()){
     Data->TwistOnS2(Standard_True);
 #ifdef DEB
-    cout<<"Cheminement complet mais VRILLE sur S2"<<endl;
+    cout<<"Parh completed, but TWIST on S2"<<endl;
 #endif
   }
 
 
-  //Ici on a un resultat plus ou moins presentable mais qui recouvre 
-  //la zone minimum visee.
-  //On attaque les prolongements.
+  //Here there is a more or less presentable result 
+  //however it covers a the minimum zone.
+  //The extensions are targeted.
   //*****************************//
 
   Gd1 = Gd2 = Gf1 = Gf2 = Standard_False;
@@ -1743,7 +1737,7 @@ Standard_Boolean ChFi3d_Builder::ComputeData
                            Standard_True, Data->ChangeVertexFirstOnS1(),tolesp);
       debarc1 = Standard_True;
       if(!SearchFace(Spine,Data->VertexFirstOnS1(),F1,bif)){
-       //On regarde si ce n'est pas un obstacle.
+       //It is checked if there is not an obstacle.
        debcas1 = Standard_True;
        if(!Spine.IsNull()){
          if(Spine->IsPeriodic()){
@@ -1761,7 +1755,7 @@ Standard_Boolean ChFi3d_Builder::ComputeData
                            Standard_True, Data->ChangeVertexFirstOnS2(),tolesp);
       debarc2 = Standard_True;
       if(!SearchFace(Spine,Data->VertexFirstOnS2(),F2,bif)){
-       //On regarde si ce n'est pas un obstacle.
+       //It is checked if it is not an obstacle.
        debcas2 = Standard_True;
        if(!Spine.IsNull()){
          if(Spine->IsPeriodic()){
@@ -1782,7 +1776,7 @@ Standard_Boolean ChFi3d_Builder::ComputeData
     if(oncontinue) {
       TheWalk.ClassificationOnS1(!debarc1);
       TheWalk.ClassificationOnS2(!debarc2);
-      TheWalk.Check2d(Standard_True); // Il faut etre severe (PMN)
+      TheWalk.Check2d(Standard_True); // It should be strict (PMN)
       TheWalk.Continu(Func,FInv,Target);
       TheWalk.ClassificationOnS1(Standard_True);
       TheWalk.ClassificationOnS2(Standard_True);
@@ -1798,7 +1792,7 @@ Standard_Boolean ChFi3d_Builder::ComputeData
                                Standard_True, Data->ChangeVertexFirstOnS1(),tolesp);
          debarc1 = Standard_True;
          if(!SearchFace(Spine,Data->VertexFirstOnS1(),F1,bif)){
-           //On regarde si ce n'est pas un obstacle.
+           //It is checked if it is not an obstacle.
            debcas1 = Standard_True;
 //         if(!Spine.IsNull()) {
 //           if(Spine->IsPeriodic()){
@@ -1819,7 +1813,7 @@ Standard_Boolean ChFi3d_Builder::ComputeData
                                 Standard_True, Data->ChangeVertexFirstOnS2(),tolesp);
           debarc2 = Standard_True;
           if(!SearchFace(Spine,Data->VertexFirstOnS2(),F2,bif)){
-            //On regarde si ce n'est pas un obstacle.
+           //It is checked if it is not an obstacle.
             debcas2 = Standard_True;
 //             if(!Spine.IsNull()){
 //               if(Spine->IsPeriodic()){
@@ -1854,7 +1848,7 @@ Standard_Boolean ChFi3d_Builder::ComputeData
                            Standard_False, Data->ChangeVertexLastOnS1(),tolesp);
       finarc1 = Standard_True;
       if(!SearchFace(Spine,Data->VertexLastOnS1(),F1,bif)){
-       //On regarde si ce n'est pas un obstacle.
+             //It is checked if it is not an obstacle.
        fincas1 = Standard_True;
        if(!Spine.IsNull()){
          finobst1 = IsObst(Data->VertexLastOnS1(),
@@ -1867,7 +1861,7 @@ Standard_Boolean ChFi3d_Builder::ComputeData
                            Standard_False, Data->ChangeVertexLastOnS2(),tolesp);
       finarc2 = Standard_True;
       if(!SearchFace(Spine,Data->VertexLastOnS2(),F2,bif)){
-       //On regarde si ce n'est pas un obstacle.
+        //It is checked if it is not an obstacle.
        fincas2 = Standard_True;
        if(!Spine.IsNull()){
          finobst2 = IsObst(Data->VertexLastOnS2(),
@@ -1883,7 +1877,7 @@ Standard_Boolean ChFi3d_Builder::ComputeData
     if(oncontinue){
       TheWalk.ClassificationOnS1(!finarc1);
       TheWalk.ClassificationOnS2(!finarc2);
-      TheWalk.Check2d(Standard_True); // Il faut etre severe (PMN)
+      TheWalk.Check2d(Standard_True); // It should be strict (PMN)
       TheWalk.Continu(Func,FInv,Target);
       TheWalk.ClassificationOnS1(Standard_True);
       TheWalk.ClassificationOnS2(Standard_True);
@@ -1899,7 +1893,7 @@ Standard_Boolean ChFi3d_Builder::ComputeData
                                Standard_False, Data->ChangeVertexLastOnS1(),tolesp);
          finarc1 = Standard_True;
          if(!SearchFace(Spine,Data->VertexLastOnS1(),F1,bif)){
-           //On regarde si ce n'est pas un obstacle.
+             //It is checked if it is not an obstacle.
            fincas1 = Standard_True;
 //         if(!Spine.IsNull()){
 //           finobst1 = IsObst(Data->VertexLastOnS1(),
@@ -1948,8 +1942,8 @@ Standard_Boolean ChFi3d_Builder::ComputeData
     Gd1 = debcas1/* && !debobst1*/; // skv(occ67)
     Gd2 = debcas2/* && !debobst2*/; // skv(occ67)
     if ((debarc1^debarc2) && !unseulsuffitdeb && (First!=SpFirst)) {
-      // Cas de cheminement incomplet, cela finit surement mal : 
-      // on tronque le resultat au lieu de sortie.
+      // Case of incomplete path, of course this ends badly : 
+      // the result is truncated instead of exit.
       Standard_Real sortie;
       Standard_Integer ind;
       if (debarc1)  sortie = Data->VertexFirstOnS1().Parameter();
@@ -1989,7 +1983,7 @@ Standard_Boolean ChFi3d_Builder::ComputeData
       || backwContinueFailed; // eap
     else if (intf && unseulsuffitdeb && (intf<5)) {
       intf = (Gd1 || Gd2);
-      // On controle qu'il n'y pas de nouvelle face.
+      // It is checked if there is no new face.
       if (intf && 
          ((!debcas1 && debarc1) || (!debcas2 && debarc2)) ) intf = 0;  
     }
@@ -2000,8 +1994,8 @@ Standard_Boolean ChFi3d_Builder::ComputeData
     Gf1 = fincas1/* && !finobst1*/; // skv(occ67)
     Gf2 = fincas2/* && !finobst2*/; // skv(occ67)
     if ((finarc1 ^finarc2) && !unseulsuffitfin && (Last!=SpLast)) {
-      // Cas de cheminement incomplet, cela finit surement mal : 
-      // on tronque le resultat au lieu de sortie.
+      // Case of incomplete path, of course, this ends badly : 
+      // the result is truncated instead of exit.
       Standard_Real sortie;
       Standard_Integer ind;
       if (finarc1)  sortie = Data->VertexLastOnS1().Parameter();
@@ -2018,7 +2012,7 @@ Standard_Boolean ChFi3d_Builder::ComputeData
       }
     }
     else if ((intl>=5) && !finarc1 && !finarc2 && (Last!=SpLast) ) {
-      // Idem dans le cas ou toute la "Lin" constitue un prolongement
+      // The same in case when the entire "Lin" is an extension
       Standard_Real sortie = (First+2*Last)/3;
       Standard_Integer ind;
       if (Last - sortie > tolesp) {
@@ -2042,7 +2036,7 @@ Standard_Boolean ChFi3d_Builder::ComputeData
     if (intl && !unseulsuffitfin) intl = (Gf1 && Gf2)//;
       || forwContinueFailed;  // eap
     else if (intl && unseulsuffitfin && (intl<5)) {
-      intl = (Gf1 || Gf2);// On controle qu'il n'y pas de nouvelle face.
+      intl = (Gf1 || Gf2);// It is checked if there is no new face.
       if (intl && 
          ((!fincas1 && finarc1) || (!fincas2 && finarc2)) ) intl = 0;  
     }
@@ -2111,7 +2105,7 @@ Standard_Boolean ChFi3d_Builder::SimulData
                                    tolesp,TolGuide,RecOnS1,RecOnS2,
                                    NewFirst,ParSol)){
 #ifdef DEB
-      cout<<"ChFi3d_Builder::SimulData : echec calcul first section"<<endl;
+      cout<<"ChFi3d_Builder::SimulData : calculation fail first section"<<endl;
 #endif
       return Standard_False;
     }
@@ -2121,9 +2115,8 @@ Standard_Boolean ChFi3d_Builder::SimulData
   }
   Standard_Integer again = 0;
   while(again < 3){
-    // Lorsque le point de depart est interne, on chemine 
-    // d abord a gauche afin de determiner le Last pour les
-    // periodiques.
+     // When the start point is inside, the path goes first to the left  
+     // to determine the Last for the periodicals.
     if(!again && (MS < 5*TolGuide)) MS = 5*TolGuide;
     else  {
       if (5*TolGuide > MS) TolGuide = MS/5;
@@ -2135,7 +2128,7 @@ Standard_Boolean ChFi3d_Builder::SimulData
     
     if (!TheWalk.IsDone()) {
 #ifdef DEB
-      cout << "Cheminement non fait" << endl;
+      cout << "Path not created" << endl;
 #endif
       return Standard_False;
     }
@@ -2151,7 +2144,7 @@ Standard_Boolean ChFi3d_Builder::SimulData
       if (Inside)  complmnt = TheWalk.Complete(Func,FInv,SpLast);
       if(!complmnt){
 #ifdef DEB
-       cout << "Complement non fait" << endl;
+       cout << "Not completed" << endl;
 #endif
        return Standard_False;
       }
@@ -2160,14 +2153,14 @@ Standard_Boolean ChFi3d_Builder::SimulData
     Standard_Real factor =  1./(NbSecMin + 1);
     if (Nbpnt == 0){
 #ifdef DEB
-      cout <<"0 point de cheminement on sort."<<endl;
+      cout <<"0 point of path, quit."<<endl;
 #endif
       return Standard_False;
     }
     else if (Nbpnt == 1 && again == 0)  {
       again++;
 #ifdef DEB
-      cout <<"1 seul point de cheminement on essaye MS/100."<<endl;
+      cout <<"only one point of path, MS/100 is attempted."<<endl;
 #endif
       MS *= 0.01; Target = Targetsov;
       u1sov = u2sov = Lin->Point(1).Parameter();
@@ -2175,7 +2168,7 @@ Standard_Boolean ChFi3d_Builder::SimulData
     else if (Nbpnt< NbSecMin && again == 0)  {
       again++;
 #ifdef DEB
-      cout <<"Nombre de points insuffisant on reduit le pas"<<endl;
+      cout <<"Number of points is too small, the step is reduced"<<endl;
 #endif
       Standard_Real u1 = u1sov = Lin->Point(1).Parameter();
       Standard_Real u2 = u2sov = Lin->Point(Nbpnt).Parameter();
@@ -2188,21 +2181,21 @@ Standard_Boolean ChFi3d_Builder::SimulData
       if(Abs(u1-u1sov)>=TolGuide || Abs(u2-u2sov)>=TolGuide){
        again++;
 #ifdef DEB
-       cout <<"Nombre de points encore insuffisant on reduit le pas"<<endl;
+       cout <<"Number of points is still too small, the step is reduced"<<endl;
 #endif
        MS /= 100;
        Target = Targetsov;
       }
       else{
 #ifdef DEB
-       cout <<"Nombre de points toujours insuffisant on sort"<<endl;
+       cout <<"Number of points is still too small, quit"<<endl;
 #endif
        return Standard_False;
       }
     }
     else if(Nbpnt < NbSecMin){
 #ifdef DEB
-      cout <<"Nombre de points toujours insuffisant on sort"<<endl;
+      cout <<"Number of points is still too small, quit"<<endl;
 #endif
       return Standard_False;
     }
index 5d41b328db4440b1ecccac8e5b917da171ae6163..3ae4c9e21689d74eab05bdc1929b4aee61381df8 100755 (executable)
@@ -159,9 +159,9 @@ static Standard_Real recadre(const Standard_Real p,
 
 //=======================================================================
 //function : Update
-//purpose  : Calcul de l intersection entre la face en bout et la ligne
-//           de tangence pour mise a jour du CommonPoint et de son
-//           parametre dans la FaceInterference.
+//purpose  : Calculate the intersection of the face at the end of 
+//           the tangency line to update CommonPoint and its 
+//           parameter in FaceInterference.
 //=======================================================================
 
 static Standard_Boolean Update(Handle(Adaptor3d_HSurface)& fb,
@@ -215,9 +215,9 @@ static Standard_Boolean Update(Handle(Adaptor3d_HSurface)& fb,
                               Standard_Real&            wop)
 {
   IntCurveSurface_HInter Intersection;
-  //verifier que dans les  KPart les bornes de la ligne de tangence
-  //sont deja en place a ce stade.
-  //Modif de lvt : on recadre les cas periodiques surtout si on a rien trouve.
+  //check if in KPart the limits of the tangency line 
+  //are already in place at this stage.
+  //Modif lvt : the periodic cases are reframed, espercially if nothing was found.
   Standard_Real w,uf = ct->FirstParameter(),ul = ct->LastParameter();
 #ifndef DEB
   Standard_Real  wbis = 0.;
@@ -305,9 +305,9 @@ static Standard_Boolean IntersUpdateOnSame(Handle(GeomAdaptor_HSurface)& HGs,
                                           gp_Pnt2d&                     FprolUV,
                                           Standard_Real&                c3dU)
 {
-  // rajouter ici des criteres plus ou moins restrictifs pour
-  // decider si on fait l intersection avec la face en bout
-  // etendue ou si on aiguille sur bouchon.
+  // add more or less restrictive criterions to
+  // decide if the intersection is done with the face at 
+  // extended end or if the end is sharp.
   Standard_Real uf = FIop.FirstParameter();
   Standard_Real ul = FIop.LastParameter();
   Handle(GeomAdaptor_HCurve) Hc3df;
@@ -330,9 +330,9 @@ static Standard_Boolean IntersUpdateOnSame(Handle(GeomAdaptor_HSurface)& HGs,
 
 //=======================================================================
 //function : Update
-//purpose  : Calcul de l extrema curveonsurf/curveonsurf pour privilegier
-//           les valeurs concernant la trace on surf et la pcurve sur la
-//           face en bout.
+//purpose  : Calculate the extrema curveonsurf/curveonsurf to prefer 
+//           the values concerning the trace on surf and the pcurve on the
+//           face at end.
 //=======================================================================
 
 static Standard_Boolean Update(Handle(Adaptor3d_HSurface)& face,
@@ -419,7 +419,7 @@ static void ChFi3d_ExtendSurface (Handle(Geom_Surface) & S ,
 
 //=======================================================================
 //function : ComputeCurve2d
-//purpose  : calcule le 2d de la courbe Ct sur la face Face
+//purpose  : calculate the 2d of the curve Ct on face Face
 //=======================================================================
 
 static void  ComputeCurve2d (Handle(Geom_Curve )& Ct,
@@ -514,20 +514,19 @@ Standard_Boolean ChFi3d_SelectStripe(ChFiDS_ListIteratorOfListOfStripe & It,
 }
 //=======================================================================
 //function : PerformOneCorner
-//purpose  : Calcul d un coin a trois aretes incidentes et un conge
-//           incident.
-//           3 cas distincts : (22/07/94 seul le 1er est traite)
+//purpose  : Calculate a corner with three edges and a fillet.
+//           3 separate case: (22/07/94 only 1st is implemented)
 //
-//           - meme concavite sur les trois edges, intersection avec la
-//             face en bout,
-//           - concavite des 2 edges de sortie opposee a celle du conge,
-//             si la face en bout s y prete, idem cas 1 sur face etendue,
-//             sinon on fait un petit bouchon avec GeomFill,
-//           - un seul edge de sortie de concavite opposee a celle du
-//             conge et du troisieme edge, on relie le sommet au coin
-//             dans le vide du conge et on bouche, soit en agrandissant
-//             la face en bout si celle ci est plane et orthogonale a
-//             l edge guide, soit par un bouchon type GeomFill.
+//           - same concavity on three edges, intersection with the
+//             face at end,
+//           - concavity of 2 outgoing edges is opposite to the one of the fillet,
+//             if the face at end is ready for that, the same in  case 1 on extended face,
+//             otherwise a small cap is done with GeomFill,
+//           - only one outgoing edge has concavity opposed to the edge of the
+//             fillet and the third edge, the top of the corner is reread
+//             in the empty of the fillet and closed, either by extending the face 
+//             at end if it is plane and orthogonal to the
+//             guiding edge, or by a cap of type GeomFill.
 //
 //           <thePrepareOnSame> means that only needed thing is redefinition
 //           of intersection pameter of OnSame-Stripe with <Arcprol>
@@ -540,11 +539,11 @@ void ChFi3d_Builder::PerformOneCorner(const Standard_Integer Index,
   TopOpeBRepDS_DataStructure& DStr = myDS->ChangeDS();
 
 #ifdef DEB
-  OSD_Chronometer ch;// init perf pour PerformSetOfKPart
+  OSD_Chronometer ch;// init perf for PerformSetOfKPart
 #endif
-  // le sommet,
+  // the top,
   const TopoDS_Vertex& Vtx = myVDataMap.FindKey(Index);
-  // On recupere le conge concerne,
+  // The fillet is returned,
   ChFiDS_ListIteratorOfListOfStripe StrIt;
   StrIt.Initialize(myVDataMap(Index));
   if ( ! ChFi3d_SelectStripe (StrIt, Vtx, thePrepareOnSame)) return;
@@ -552,24 +551,24 @@ void ChFi3d_Builder::PerformOneCorner(const Standard_Integer Index,
   const Handle(ChFiDS_Spine) spine = stripe->Spine();
   ChFiDS_SequenceOfSurfData& SeqFil =
     stripe->ChangeSetOfSurfData()->ChangeSequence();
-  // la SurfData en cause et ses CommonPoints,
+  // SurfData and its CommonPoints,
   Standard_Integer sens = 0;
 
-  // Choisit la bonne SurfData
+  // Choose proper SurfData
   Standard_Integer num = ChFi3d_IndexOfSurfData(Vtx,stripe,sens);
   Standard_Boolean isfirst = (sens == 1);
   if (isfirst) {
     for (; num<SeqFil.Length() && (
         (SeqFil.Value(num)->IndexOfS1()==0) ||
         (SeqFil.Value(num)->IndexOfS2()==0) ); ) {
-      SeqFil.Remove(num); // On elimine le surplus
+      SeqFil.Remove(num); // The surplus is removed
     }
   }
   else {
    for (; num>1 && (
         (SeqFil.Value(num)->IndexOfS1()==0) ||
         (SeqFil.Value(num)->IndexOfS2()==0) ); ) {
-     SeqFil.Remove(num);// On elimine le surplus
+     SeqFil.Remove(num);// The surplus is removed
      num--;
     }
   }
@@ -577,10 +576,10 @@ void ChFi3d_Builder::PerformOneCorner(const Standard_Integer Index,
   Handle(ChFiDS_SurfData)& Fd = SeqFil.ChangeValue(num);
   ChFiDS_CommonPoint& CV1 = Fd->ChangeVertex(isfirst,1);
   ChFiDS_CommonPoint& CV2 = Fd->ChangeVertex(isfirst,2);
-  //Pour evaluer la boule des nouveaux points.
+  //To evaluate the new points.
   Bnd_Box box1,box2;
 
-  // On traite separement les cas bouchon des cas intersection.
+  // The cases of cap and intersection are processed separately.
   // ----------------------------------------------------------
   ChFiDS_State stat;
   if (isfirst) stat = spine->FirstStatus();
@@ -625,9 +624,7 @@ void ChFi3d_Builder::PerformOneCorner(const Standard_Integer Index,
     if (!CV1.IsOnArc() && !CV2.IsOnArc())
       Standard_Failure::Raise("Corner OnSame : no point on arc");
     else if (CV1.IsOnArc() && CV2.IsOnArc()) {
-      // on explore pour detromper les KPart qui seraient sortis
-      // au diable.
-      Standard_Boolean sur1 = 0, sur2 = 0;
+       Standard_Boolean sur1 = 0, sur2 = 0;
       for(ex.Init(CV1.Arc(),TopAbs_VERTEX); ex.More(); ex.Next()) {
        if (Vtx.IsSame(ex.Current())) {
          sur1 = 1;
@@ -654,7 +651,7 @@ void ChFi3d_Builder::PerformOneCorner(const Standard_Integer Index,
     Fad = TopoDS::Face(DStr.Shape(Fd->Index(IFadArc)));
     Fop = TopoDS::Face(DStr.Shape(Fd->Index(IFopArc)));
     TopTools_ListIteratorOfListOfShape It;
-    // On recupere la face en bout sans controle de son unicite.
+    // The face at end is returned without check of its unicity.
     for(It.Initialize(myEFMap(Arcpiv));It.More();It.Next()) {
       if (!Fad.IsSame(It.Value())) {
        Fv = TopoDS::Face(It.Value());
@@ -662,7 +659,7 @@ void ChFi3d_Builder::PerformOneCorner(const Standard_Integer Index,
       }
     }
 
-    // est-ce que la face en bout contient le Vertex ?
+    // Does the face at bout contain the Vertex ?
     Standard_Boolean isinface = Standard_False;
     for (ex.Init(Fv,TopAbs_VERTEX); ex.More(); ex.Next()) {
       if (ex.Current().IsSame(Vtx)) {
@@ -677,7 +674,7 @@ void ChFi3d_Builder::PerformOneCorner(const Standard_Integer Index,
       Fad = TopoDS::Face(DStr.Shape(Fd->Index(IFadArc)));
       Fop = TopoDS::Face(DStr.Shape(Fd->Index(IFopArc)));
       //TopTools_ListIteratorOfListOfShape It;
-      // On recupere la face en bout sans controle de son unicite.
+     // The face at end is returned without check of its unicity.
       for(It.Initialize(myEFMap(Arcpiv));It.More();It.Next()) {
        if (!Fad.IsSame(It.Value())) {
          Fv = TopoDS::Face(It.Value());
@@ -687,13 +684,13 @@ void ChFi3d_Builder::PerformOneCorner(const Standard_Integer Index,
     }
 
     if (Fv.IsNull()) StdFail_NotDone::Raise
-      ("OneCorner : face en bout non trouvee");
+      ("OneCorner : face at end not found");
 
     Fv.Orientation(TopAbs_FORWARD);
     Fad.Orientation(TopAbs_FORWARD);
     Fop.Orientation(TopAbs_FORWARD);
 
-    // On recupere de meme l edge qui sera a prolonger.
+    // The edge that will be extended is returned.
     for(It.Initialize(myVEMap(Vtx));It.More() && Arcprol.IsNull();It.Next()) {
       if (!Arcpiv.IsSame(It.Value())) {
        for(ex.Init(Fv,TopAbs_EDGE); ex.More(); ex.Next()) {
@@ -734,17 +731,16 @@ void ChFi3d_Builder::PerformOneCorner(const Standard_Integer Index,
     Bad.Initialize(Fad);
     Bop.Initialize(Fop);
   }
-  //dans le cas OnSame on va devoir modifier le CommonPoint
-  //dans le vide et son parametre dans la FaceInterference.
-  //On les recupere donc tous deux dans des references
-  //non const. Attention les modifs se font dans le dos
+  //in case of OnSame it is necessary to modify the CommonPoint
+  //in the empty and its parameter in the FaceInterference.
+  //They are both returned in non const references. Attention the modifications are done behind
   //de CV1,CV2,Fi1,Fi2.
   ChFiDS_CommonPoint& CPopArc = Fd->ChangeVertex(isfirst,IFopArc);
   ChFiDS_FaceInterference& FiopArc = Fd->ChangeInterference(IFopArc);
   ChFiDS_CommonPoint& CPadArc = Fd->ChangeVertex(isfirst,IFadArc);
   ChFiDS_FaceInterference& FiadArc = Fd->ChangeInterference(IFadArc);
-  //on initialise le parametre du vertex en l air a la valeur de son
-  //copain d en face (point sur arc).
+  //the parameter of the vertex in the air is initialiced with the value of 
+  //its opposite (point on arc).
   Standard_Real wop = Fd->ChangeInterference(IFadArc).Parameter(isfirst);
   Handle(Geom_Curve) c3df;
   Handle(GeomAdaptor_HSurface)
@@ -855,7 +851,7 @@ void ChFi3d_Builder::PerformOneCorner(const Standard_Integer Index,
     Udeb = Cc->FirstParameter();
     Ufin = Cc->LastParameter();
 
-    // on determine si la courbe a une intersection avec l'arete de couture
+    //  determine if the curve has an intersection with edge of sewing
 
     ChFi3d_Couture(Fv,couture,edgecouture);
 
@@ -947,9 +943,9 @@ void ChFi3d_Builder::PerformOneCorner(const Standard_Integer Index,
   stripe->SetIndexPoint(ChFi3d_IndexPointInDS(CV2,DStr),isfirst,2);
 
   if (!intcouture) {
-// il n'y a pas d'intersection avec l'arete de couture
-// on stocke la courbe Cc dans la stripe
-// le stockage dans la DS se fera par FILDS.
+// there is no intersection with the sewing edge
+// the curve Cc is stored in the stripe
+// the storage in the DS is not done by FILDS.
 
     TopOpeBRepDS_Curve Tc(Cc,tolreached);
     ICurve = DStr.AddCurve(Tc);
@@ -1136,11 +1132,11 @@ void ChFi3d_Builder::PerformOneCorner(const Standard_Integer Index,
     stripe->SetParameters(isfirst,Udeb,Ufin);
   }
   else {
-// on stocke les courbes curv1 et curv2 dans la DS
-// ces courbes ne seront pas reconstruites par FILDS car
-// on met stripe->InDS(isfirst);
+// curves curv1 are curv2 stored in the DS
+// these curves will not be reconstructed by FILDS as
+// one places stripe->InDS(isfirst);
 
-    // interferences de curv1 et curv2 sur Fv
+    // interferences of curv1 and curv2 on Fv
     ComputeCurve2d(curv1,Fv,c2d1);
     Handle(TopOpeBRepDS_SurfaceCurveInterference) InterFv;
     InterFv = ChFi3d_FilCurveInDS(Icurv1,IShape,c2d1,Et);
@@ -1148,7 +1144,7 @@ void ChFi3d_Builder::PerformOneCorner(const Standard_Integer Index,
     ComputeCurve2d(curv2,Fv,c2d2);
     InterFv = ChFi3d_FilCurveInDS(Icurv2,IShape,c2d2,Et);
     DStr.ChangeShapeInterferences(IShape).Append(InterFv);
-     // interferences de curv1 et curv2 sur Isurf
+     // interferences of curv1 and curv2 on Isurf
     if (Fd->Orientation()== Fv.Orientation()) Et=TopAbs::Reverse(Et);
     c2d1=new Geom2d_TrimmedCurve(Ps,Udeb,par2);
     InterFv = ChFi3d_FilCurveInDS(Icurv1,Isurf,c2d1,Et);
@@ -1157,7 +1153,7 @@ void ChFi3d_Builder::PerformOneCorner(const Standard_Integer Index,
        InterFv = ChFi3d_FilCurveInDS(Icurv2,Isurf,c2d2,Et);
     DStr.ChangeSurfaceInterferences(Isurf).Append(InterFv);
 
-      // limitation de l'arete de couture
+      // limitation of the sewing edge
     Standard_Integer Iarc=DStr.AddShape(edgecouture);
     Handle(TopOpeBRepDS_CurvePointInterference) Interfedge;
     TopAbs_Orientation ori;
@@ -1172,7 +1168,7 @@ void ChFi3d_Builder::PerformOneCorner(const Standard_Integer Index,
     Interfedge = ChFi3d_FilPointInDS(ori,Iarc,indpt,par1);
     DStr.ChangeShapeInterferences(Iarc).Append(Interfedge);
 
-    // creation des CurveInterferences de Icurv1 et Icurv2
+    // creation of CurveInterferences from Icurv1 and Icurv2
     stripe->InDS(isfirst);
     Standard_Integer ind1= stripe->IndexPoint(isfirst,1);
     Standard_Integer ind2= stripe->IndexPoint(isfirst,2);
@@ -1192,14 +1188,14 @@ void ChFi3d_Builder::PerformOneCorner(const Standard_Integer Index,
 
   if (onsame && inters) {
     // VARIANT 1:
-    // On rajoute le petit bout de courbe qui manque pour l extension
-    // de la face en bout et la limitation de la face opposee.
+    // A small missing end of curve is added for the extension
+    // of the face at end and the limitation of the opposing face.
 
     //   VARIANT 2 : extend Arcprol, not create new small edge
     //   To do: modify for intcouture
     const Standard_Boolean variant1 = Standard_True;
 
-    // Tout d abord on coupe les ponts avec l arete de la spine.
+    // First of all the ponts are cut with the edge of the spine.
     Standard_Integer IArcspine = DStr.AddShape(Arcspine);
     Standard_Integer IVtx = DStr.AddShape(Vtx);
 #ifndef DEB
@@ -1220,7 +1216,7 @@ void ChFi3d_Builder::PerformOneCorner(const Standard_Integer Index,
       interfv = ChFi3d_FilVertexInDS(OVtx,IArcspine,IVtx,parVtx);
     DStr.ChangeShapeInterferences(IArcspine).Append(interfv);
 
-    // On construit maintenant les courbes qui manquent.
+    // Now the missing curves are constructed.
     TopoDS_Vertex V2;
     for(ex.Init(Arcprol.Oriented(TopAbs_FORWARD),TopAbs_VERTEX);
        ex.More(); ex.Next()) {
@@ -1267,8 +1263,8 @@ void ChFi3d_Builder::PerformOneCorner(const Standard_Integer Index,
     TopOpeBRepDS_Curve Zob(zob3d,tolreached);
     Standard_Integer IZob = DStr.AddCurve(Zob);
 
-// on determine si Fop a une arete de couture
-// on determine si la courbe a une intersection avec l'arete de couture
+// it is determined if Fop has an edge of sewing 
+// it is determined if the curve has an intersection with the edge of sewing
 
     //TopoDS_Edge edgecouture;
     //Standard_Boolean couture;
@@ -1299,7 +1295,7 @@ void ChFi3d_Builder::PerformOneCorner(const Standard_Integer Index,
     }
     if (intcouture) {
 
-// interference de curv1 et curv2 sur Ishape
+// interference of curv1 and curv2 on Ishape
       Et = TopAbs::Reverse(TopAbs::Compose(OVtx,OArcprolv));
       ComputeCurve2d(curv1,Fop,c2d1);
       Handle(TopOpeBRepDS_SurfaceCurveInterference)
@@ -1309,7 +1305,7 @@ void ChFi3d_Builder::PerformOneCorner(const Standard_Integer Index,
       InterFv = ChFi3d_FilCurveInDS(Icurv2,IShape,/*zob2dv*/c2d2,Et);
       DStr.ChangeShapeInterferences(IShape).Append(InterFv);
 
-      // limitation de l'arete de couture
+      // limitation of the sewing edge
       Standard_Integer Iarc=DStr.AddShape(edgecouture);
       Handle(TopOpeBRepDS_CurvePointInterference) Interfedge;
       TopAbs_Orientation ori;
@@ -1324,7 +1320,7 @@ void ChFi3d_Builder::PerformOneCorner(const Standard_Integer Index,
       Interfedge = ChFi3d_FilPointInDS(ori,Iarc,indpt,par1);
       DStr.ChangeShapeInterferences(Iarc).Append(Interfedge);
 
-    //  interference de curv1 et curv2 sur Iop
+    //  interference of curv1 and curv2 on Iop
       Standard_Integer Iop = DStr.AddShape(Fop);
       Et = TopAbs::Reverse(TopAbs::Compose(OVtx,OArcprolop));
       Handle(TopOpeBRepDS_SurfaceCurveInterference)  Interfop;
@@ -1397,8 +1393,8 @@ void ChFi3d_Builder::PerformOneCorner(const Standard_Integer Index,
 
 //=======================================================================
 //function : cherche_face
-//purpose  : recherche  de la face F  appartenant a la map , differente des faces
-//           F1  F2 F3 et contenant l'edge E
+//purpose  : find face F belonging to the map, different from faces
+//           F1  F2 F3 and containing edge E
 //=======================================================================
 
 static void cherche_face (const TopTools_ListOfShape & map,
@@ -1429,7 +1425,7 @@ static void cherche_face (const TopTools_ListOfShape & map,
 
 //=======================================================================
 //function : cherche_edge1
-//purpose  : cherche l'edge commune entre les faces F1 et F2
+//purpose  : find common edge between faces F1 and F2
 //=======================================================================
 
 static void cherche_edge1 (const TopoDS_Face & F1,
@@ -1459,7 +1455,7 @@ static void cherche_edge1 (const TopoDS_Face & F1,
 
 //=======================================================================
 //function : containV
-//purpose  : renvoie vrai si le vertex V appartient a F1
+//purpose  : return true if vertex V belongs to F1
 //=======================================================================
 
 static Standard_Boolean  containV(const TopoDS_Face & F1,
@@ -1483,7 +1479,7 @@ static Standard_Boolean  containV(const TopoDS_Face & F1,
 
 //=======================================================================
 //function : containE
-//purpose  : renvoie vrai si le l'edge  E appartient a F1
+//purpose  : return true if edge E belongs to F1
 //=======================================================================
 
 static Standard_Boolean  containE(const TopoDS_Face & F1,
@@ -1552,11 +1548,11 @@ static Standard_Boolean IsShrink(const Geom2dAdaptor_Curve PC,
 void ChFi3d_Builder::PerformIntersectionAtEnd(const Standard_Integer Index)
 {
 
-  //intersection en bout d'un conge avec au moins deux faces
-  // traite les cas suivants:
-  // - sommet a n (n>3) aretes adjacentes
-  // - sommet a 3 aretes dont le conge sur une des aretes arrive sur plus
-  //   d'une face
+  // intersection at end of fillet with at least two faces
+  // process the following cases:
+  // - top has n (n>3) adjacent edges
+  // - top has 3 edges and fillet on one of edges touches
+  //   more than one face
 
 #ifdef DEB
   OSD_Chronometer ch;// init perf
@@ -1576,7 +1572,7 @@ void ChFi3d_Builder::PerformIntersectionAtEnd(const Standard_Integer Index)
   //Standard_Integer sense;
   TopoDS_Edge edgelibre1,edgelibre2,EdgeSpine;
   Standard_Boolean bordlibre;
-  // determination du nombre de faces et d'aretes
+  // determine the number of faces and edges
   TopTools_Array1OfShape tabedg(0,nn);
   TopoDS_Face F1,F2;
   Standard_Integer nface=ChFi3d_nbface(myVFMap(Vtx));
@@ -1586,8 +1582,7 @@ void ChFi3d_Builder::PerformIntersectionAtEnd(const Standard_Integer Index)
   ChFi3d_ChercheBordsLibres(myVEMap,Vtx,bordlibre,edgelibre1,edgelibre2);
   if (bordlibre) nbarete=(nbarete-2)/2 +2;
   else           nbarete=nbarete/2;
-  // on determine s'il y a une arete de couture, l'arete de couture
-  // et la face qui a une arete de couture
+  // it is determined if there is an edge of sewing and it face
 
   TopoDS_Face facecouture;
   TopoDS_Edge edgecouture;
@@ -1599,7 +1594,7 @@ void ChFi3d_Builder::PerformIntersectionAtEnd(const Standard_Integer Index)
     if (couture)
       facecouture=fcur;
   }
-  // on determine si l'une des aretes adjacente au conge est reguliere
+  // it is determined if one of edges adjacent to the fillet is regular
   Standard_Boolean reg1,reg2;
   TopoDS_Edge Ecur,Eadj1,Eadj2;
   TopoDS_Face Fga,Fdr;
@@ -1639,7 +1634,7 @@ void ChFi3d_Builder::PerformIntersectionAtEnd(const Standard_Integer Index)
     reg2=isTangentFaces(Eadj2,Fga,Fdr);
 //  Modified by Sergey KHROMOV - Fri Dec 21 17:58:24 2001 End
 
-// on cherche les deux faces communes a l'edge
+// two faces common to the edge are found
     if (reg1 || reg2) {
       Standard_Boolean compoint1=Standard_False;
       Standard_Boolean compoint2=Standard_False;
@@ -1660,8 +1655,8 @@ void ChFi3d_Builder::PerformIntersectionAtEnd(const Standard_Integer Index)
       }
     }
   }
-// on a une seule face en bout  si FindFace est vrai et si la face
-// n'est pas la face avec arete de couture
+// there is only one face at end if FindFace is true and if the face
+// is not the face with sewing edge
   TopoDS_Face face;
   Handle(ChFiDS_SurfData) Fd = SeqFil.ChangeValue(num);
   ChFiDS_CommonPoint& CV1 = Fd->ChangeVertex(isfirst,1);
@@ -1699,7 +1694,7 @@ void ChFi3d_Builder::PerformIntersectionAtEnd(const Standard_Integer Index)
     SDprev = SeqFil(num1);
     IsurfPrev = SDprev->Surf();
   }
-  // calcul de l' orientation  orcourbe  des courbes en bout
+  // calculate the orientation of curves at end
 
   Standard_Real tolpt=1.e-4;
   Standard_Real tolreached;
@@ -1789,11 +1784,10 @@ void ChFi3d_Builder::PerformIntersectionAtEnd(const Standard_Integer Index)
   }
 
   /***********************************************************************/
-  //  recherche des faces a intersecter avec le conge et des edges servant
-  // a limiter ces intersections
-  //  nbface est le nb de faces a intersecter, Face[i] contient les faces
-  // a intersecter (i=0.. nbface-1). Edge[i] contient les edges limitant
-  // les intersections (i=0 ..nbface)
+  //  find faces intersecting with the fillet and edges limiting intersections
+  //  nbface is the nb of faces intersected, Face[i] contais the faces
+  // to intersect (i=0.. nbface-1). Edge[i] contains edges limiting
+  // the intersections (i=0 ..nbface)
   /**********************************************************************/
 
   Standard_Integer nb = 1,nbface;
@@ -1820,9 +1814,9 @@ void ChFi3d_Builder::PerformIntersectionAtEnd(const Standard_Integer Index)
   Edge[nbface]=CV2.Arc();
   tabedg.SetValue(0,Edge[0]);
   tabedg.SetValue(nbface,Edge[nbface]);
-  // traitement d'un conge arrivant sur un vertex
-  // l'edge contenue dans CV.Arc n'est pas forcement la bonne
-  // on cherche l'edge concernee par l'intersection
+  // processing of a fillet arriving on a vertex
+  // edge contained in CV.Arc is not inevitably good
+  // the edge concerned by the intersection is found
 
   Standard_Real dist1,dist2;
   if (CV1.IsVertex()) {
@@ -1885,8 +1879,8 @@ void ChFi3d_Builder::PerformIntersectionAtEnd(const Standard_Integer Index)
     }
   }
   if (!onecorner) {
-    // Lorsqu'il y a une arete de regularite les faces adjacentes a l'edge
-    // ne sont pas dans Fd->IndexOfS1 ou Fd->IndexOfS2
+    // If there is a regular edge, the faces adjacent to it 
+    // are not in Fd->IndexOfS1 or Fd->IndexOfS2
 
 //     TopoDS_Face Find1 ,Find2;
 //     if (isfirst)
@@ -1902,9 +1896,9 @@ void ChFi3d_Builder::PerformIntersectionAtEnd(const Standard_Integer Index)
 //       }
 //     }
 
-    // si nface =3 on a un sommet a trois arete avec un conge incident
-    // dont les commons points sont sur des faces differentes
-    // sinon on est dans le cas d'un sommet  a plus de 3 aretes
+    // if nface =3 there is a top with 3 edges and a fillet 
+    // and their common points are on different faces 
+    // otherwise there is a case when a top has more than 3 edges
 
     if (nface==3) {
       if (CV1.IsVertex ()) findonf1=Standard_True;
@@ -1945,10 +1939,9 @@ void ChFi3d_Builder::PerformIntersectionAtEnd(const Standard_Integer Index)
        }
       }
 
-      // findonf1 findonf2 indiquent si F1 et ou F2 sont adajacentes
-      // a plusieurs faces en bout
-      // on determine ces faces en bout ainsi que les edges concernees par
-      // les intersections
+      // findonf1 findonf2 show if F1 and/or F2 are adjacent
+      // to many faces at end
+      // the faces at end and intersected edges are found
 
       if (findonf1 && !isOnSame1) {
        if (CV1.TransitionOnArc()==TopAbs_FORWARD)
@@ -1965,7 +1958,7 @@ void ChFi3d_Builder::PerformIntersectionAtEnd(const Standard_Integer Index)
          cherche_edge1(Face[nb-1],Face[nb],Edge[nb]);
          nb++;
          if (nb>=nn) Standard_Failure::Raise
-           ("IntersectionAtEnd : nb de faces limites atteint");
+           ("IntersectionAtEnd : the max number of faces reached");
        }
        if (!findonf2)  Edge[nb]=CV2.Arc();
       }
@@ -1987,7 +1980,7 @@ void ChFi3d_Builder::PerformIntersectionAtEnd(const Standard_Integer Index)
          cherche_edge1(Face[nb-1],Face[nb],Edge[nb]);
          nb++;
          if (nb>=nn) Standard_Failure::Raise
-           ("IntersectionAtEnd : nb de faces limites atteint");
+           ("IntersectionAtEnd : the max number of faces reached");
        }
        Edge[nb]=CV2.Arc();
       }
@@ -2001,8 +1994,8 @@ void ChFi3d_Builder::PerformIntersectionAtEnd(const Standard_Integer Index)
 
     else {
 
-//  on est dans le cas d'un sommet a plus de trois aretes
-//  on determine les faces et les aretes concernees
+//  this is the case when a top has more than three edges
+//  the faces and edges concerned are found
       Standard_Boolean /*trouve,*/possible1, possible2;
       trouve = possible1 = possible2 = Standard_False;
       TopExp_Explorer ex;
@@ -2034,7 +2027,7 @@ void ChFi3d_Builder::PerformIntersectionAtEnd(const Standard_Integer Index)
        return;
       }
       if (nbarete==4) {
-       // si deux edges consecutives sont G1 on a une seule face d'intersection
+       // if two consecutive edges are G1 there is only one face of intersection
        Standard_Real ang1=0.0;
         TopoDS_Vertex Vcom;
         trouve=Standard_False;
@@ -2106,8 +2099,8 @@ void ChFi3d_Builder::PerformIntersectionAtEnd(const Standard_Integer Index)
   Standard_Boolean extend=Standard_False;
   Handle(Geom_Surface) Sfacemoins1,Sface;
   /***************************************************************************/
-  // calcul de l'intersection  entre le conge et chaque face
-  // et stockage dans la DS
+  // calculate intersection of the fillet and each face
+  // and storage in the DS
   /***************************************************************************/
   for (nb=1;nb<=nbface;nb++) {
     prolface[nb-1]=0;
@@ -2137,10 +2130,10 @@ void ChFi3d_Builder::PerformIntersectionAtEnd(const Standard_Integer Index)
     Handle(Geom_Curve) cint;
     Handle(Geom2d_Curve) C2dint1, C2dint2,cface,cfacemoins1;
 
-    //////////////////////////////////////////////////////////////////////
-    // determination des intersections entre les  edges et le conge
-    // pour trouver les limitations des intersections face - conge
-    //////////////////////////////////////////////////////////////////////
+    ///////////////////////////////////////////////////////
+    // determine intersections of edges and the fillet
+    // to find limitations of intersections face - fillet
+    ///////////////////////////////////////////////////////
 
     if (nb==1) {
       Hc1 = BRep_Tool::CurveOnSurface(Edge[0],Face[0],Ubid,Ubid);
@@ -2174,7 +2167,7 @@ void ChFi3d_Builder::PerformIntersectionAtEnd(const Standard_Integer Index)
       }
       else {
         if (Hc1.IsNull()) {
-          // on a pas  trouve de courbe 2d . On etend Sfacemoins1  et on y projette
+          // curve 2d not found. Sfacemoins1 is extended and projection is done there
           // CV1.Point ()
           ChFi3d_ExtendSurface(Sfacemoins1,prolface[0]);
           if (prolface[0]) {
@@ -2337,8 +2330,7 @@ void ChFi3d_Builder::PerformIntersectionAtEnd(const Standard_Integer Index)
     else {
       Hc2 = BRep_Tool::CurveOnSurface(E2,Face[nbface-1],Ubid,Ubid);
       if (Hc2.IsNull()) {
-        // on a pas trouve de courbe 2d ,  on etend Sfacemoins1
-        // on y projette CV2.Point()
+        // curve 2d is not found,  Sfacemoins1 is extended CV2.Point() is projected there
 
         ChFi3d_ExtendSurface(Sfacemoins1,prolface[0]);
         if (prolface[0]) {
@@ -2403,8 +2395,7 @@ void ChFi3d_Builder::PerformIntersectionAtEnd(const Standard_Integer Index)
     if (prolface[nb-1]) Bs.Initialize(faceprol[nb-1]);
     else                Bs.Initialize(Face[nb-1]);
 
-    // decalage des parametres s'ils ne sont pas dans
-    // la meme periode
+    // offset of parameters if they are not in the same period
 
     // commented by eap 30 May 2002 occ354
     // the following code may cause trimming a wrong part of periodic surface
@@ -2466,7 +2457,7 @@ void ChFi3d_Builder::PerformIntersectionAtEnd(const Standard_Integer Index)
 
 
     //////////////////////////////////////////////////////////////////////
-    // calcul des intersections face - conge
+    // calculate intersections face - fillet
     //////////////////////////////////////////////////////////////////////
 
     if (!ChFi3d_ComputeCurves(HGs,HBs,Pardeb,Parfin,Cc,
@@ -2474,9 +2465,9 @@ void ChFi3d_Builder::PerformIntersectionAtEnd(const Standard_Integer Index)
       PerformMoreThreeCorner (Index,1);
       return;
     }
-    // stockage des informations  dans la structure de donnees
+    // storage of information in the data structure
 
-    // eval tolerances
+    // evaluate tolerances
     p1=Cc->FirstParameter();
     p2=Cc->LastParameter();
     Standard_Real to1,to2;
@@ -2499,7 +2490,7 @@ void ChFi3d_Builder::PerformIntersectionAtEnd(const Standard_Integer Index)
 
 
     //////////////////////////////////////////////////////////////////////
-    // stokage dans la DS de la courbe d'intersection
+    // storage in the DS of the intersection curve
     //////////////////////////////////////////////////////////////////////
 
     Standard_Boolean Isvtx1=0;
@@ -2547,7 +2538,7 @@ void ChFi3d_Builder::PerformIntersectionAtEnd(const Standard_Integer Index)
     DStr.ChangeCurveInterferences(indcurve[nb-1]).Append(Interfp2);
 
     //////////////////////////////////////////////////////////////////////
-    // stockage pour la face
+    // storage for the face
     //////////////////////////////////////////////////////////////////////
 
 #ifndef DEB
@@ -2558,7 +2549,7 @@ void ChFi3d_Builder::PerformIntersectionAtEnd(const Standard_Integer Index)
     orface=Face[nb-1].Orientation();
     if (orface==orsurfdata ) orien = TopAbs::Reverse(orcourbe);
     else                     orien = orcourbe ;
-    // limitation des edges des faces
+    // limitation of edges of faces
     if (nb==1) {
       Standard_Integer Iarc1= DStr.AddShape(Edge[0]);
       Interfedge[0]= ChFi3d_FilPointInDS(CV1.TransitionOnArc(),Iarc1,
@@ -2954,8 +2945,7 @@ void ChFi3d_Builder::PerformIntersectionAtEnd(const Standard_Integer Index)
 
 //=======================================================================
 //function : PerformMoreSurfdata
-//purpose  :  determine les intersections en bout sur plusieurs
-//            surfdata
+//purpose  :  determine intersections at end on several surfdata
 //=======================================================================
 void ChFi3d_Builder::PerformMoreSurfdata(const Standard_Integer Index)
 {
@@ -3593,10 +3583,10 @@ void ChFi3d_Builder::PerformMoreSurfdata(const Standard_Integer Index)
 }
 //  Modified by Sergey KHROMOV - Thu Apr 11 12:23:40 2002 End
 
-//=======================================================================
+//==============================================================
 //function : FindFace
-//purpose  : attention ne marche que si une seule face en commun entre
-//           P1,P2,V
+//purpose  : attention it works only if there is only one common face 
+//           between P1,P2,V
 //===========================================================
 
 
@@ -3617,7 +3607,7 @@ Standard_Boolean ChFi3d_Builder::FindFace(const TopoDS_Vertex& V,
 {
   if (P1.IsVertex() || P2.IsVertex()) {
 #ifdef DEB
-    cout<<"changement de face sur vertex plantatoire"<<endl;
+    cout<<"change of face on vertex"<<endl;
 #endif
   }
   if (!(P1.IsOnArc() && P2.IsOnArc())) {
@@ -3643,7 +3633,7 @@ Standard_Boolean ChFi3d_Builder::FindFace(const TopoDS_Vertex& V,
   }
 #ifdef DEB
   if(!ContainsV){
-    cout<<"FindFace : l extremite de la spine n est pas dans la face en bout"<<endl;
+    cout<<"FindFace : the extremity of the spine is not in the end face"<<endl;
   }
 #endif
   return Found;
@@ -3651,14 +3641,14 @@ Standard_Boolean ChFi3d_Builder::FindFace(const TopoDS_Vertex& V,
 
 //=======================================================================
 //function : MoreSurfdata
-//purpose  :  detecte si l'intersection en bout concerne plusieurs Surfdata
+//purpose  : detects if the intersection at end concerns several Surfdata
 //=======================================================================
 Standard_Boolean ChFi3d_Builder::MoreSurfdata(const Standard_Integer Index) const
 {
-  // l'intersection en bout se fait sur plusieurs surfdata si :
-  // -le nb de surfdata concernant le vertex est superieur a 1 .
-  // -et si l'avant derniere surfdata a un de ses commonpoints sur un des
-  // deux arcs qui constituent les intersections de la face en bout et du conge
+  // intersection at end is created on several surfdata if :
+  // - the number of surfdata concerning the vertex is more than 1.
+  // - and if the last but one surfdata has one of commonpoints on one of 
+  // two arcs, which constitute the intersections of the face at end and of the fillet
 
   ChFiDS_ListIteratorOfListOfStripe It;
   It.Initialize(myVDataMap(Index));
@@ -3677,7 +3667,7 @@ Standard_Boolean ChFi3d_Builder::MoreSurfdata(const Standard_Integer Index) cons
   TopoDS_Face Fv;
   Standard_Boolean inters,oksurf;
   nbsurf= stripe->SetOfSurfData()->Length();
-  // Fv est la face en bout
+  // Fv is the face at end
   inters = FindFace(Vtx,CV1,CV2,Fv);
   if (sens==1)  {
     num1=1;
@@ -3692,7 +3682,7 @@ Standard_Boolean ChFi3d_Builder::MoreSurfdata(const Standard_Integer Index) cons
 
   if (nbsurf!=1 && inters) {
 
-    // determination de arc1 et arc2 intersection du conge et de la face en bout
+    // determination of arc1 and arc2 intersection of the fillet and the face at end
 
     TopoDS_Edge arc1,arc2;
     TopTools_ListIteratorOfListOfShape ItE;
@@ -3735,7 +3725,7 @@ Standard_Boolean ChFi3d_Builder::MoreSurfdata(const Standard_Integer Index) cons
 }
 
 
-//Cas des conges sur sommet a 4 aretes avec une aretes sur la meme geometrie que l'arete du conge
+//Case of fillets on top with 4 edges, one of them is on the same geometry as the edgeof the fillet
 
 
 void ChFi3d_Builder::IntersectMoreCorner(const Standard_Integer Index)
@@ -3745,33 +3735,33 @@ void ChFi3d_Builder::IntersectMoreCorner(const Standard_Integer Index)
 #ifdef DEB
   OSD_Chronometer ch;// init perf pour PerformSetOfKPart
 #endif
-  // On recupere le conge concerne,
+  // The fillet is returned,
   ChFiDS_ListIteratorOfListOfStripe StrIt;
   StrIt.Initialize(myVDataMap(Index));
   Handle(ChFiDS_Stripe) stripe = StrIt.Value();
   const Handle(ChFiDS_Spine) spine = stripe->Spine();
   ChFiDS_SequenceOfSurfData& SeqFil =
     stripe->ChangeSetOfSurfData()->ChangeSequence();
-  // le sommet,
+  // the top,
   const TopoDS_Vertex& Vtx = myVDataMap.FindKey(Index);
-  // la SurfData en cause et ses CommonPoints,
+  // the SurfData concerned and its CommonPoints,
   Standard_Integer sens = 0;
 
-  // Choisit la bonne SurfData
+  // Choose the proper SurfData
   Standard_Integer num = ChFi3d_IndexOfSurfData(Vtx,stripe,sens);
   Standard_Boolean isfirst = (sens == 1);
   if (isfirst) {
     for (; num<SeqFil.Length() && (
         (SeqFil.Value(num)->IndexOfS1()==0) ||
         (SeqFil.Value(num)->IndexOfS2()==0) ); ) {
-      SeqFil.Remove(num); // On elimine le surplus
+      SeqFil.Remove(num); // The surplus is removed
     }
   }
   else {
    for (; num>1 && (
         (SeqFil.Value(num)->IndexOfS1()==0) ||
         (SeqFil.Value(num)->IndexOfS2()==0) ); ) {
-     SeqFil.Remove(num);// On elimine le surplus
+     SeqFil.Remove(num);// The surplus is removed
      num--;
     }
   }
@@ -3779,10 +3769,10 @@ void ChFi3d_Builder::IntersectMoreCorner(const Standard_Integer Index)
   Handle(ChFiDS_SurfData)& Fd = SeqFil.ChangeValue(num);
   ChFiDS_CommonPoint& CV1 = Fd->ChangeVertex(isfirst,1);
   ChFiDS_CommonPoint& CV2 = Fd->ChangeVertex(isfirst,2);
-  //Pour evaluer la boule des nouveaux points.
+  //To evaluate the cloud of new points.
   Bnd_Box box1,box2;
 
-  // On traite separement les cas bouchon des cas intersection.
+  // The cases of cap are processed separately from intersection.
   // ----------------------------------------------------------
 
   TopoDS_Face Fv,Fad,Fop,Fopbis;
@@ -3824,8 +3814,6 @@ void ChFi3d_Builder::IntersectMoreCorner(const Standard_Integer Index)
     if(!CV1.IsOnArc() && !CV2.IsOnArc())
       Standard_Failure::Raise("Corner intersmore : no point on arc");
     else if(CV1.IsOnArc() && CV2.IsOnArc()){
-      // on explore pour detromper les KPart qui seraient sortis
-      // au diable.
       Standard_Boolean sur1 = 0, sur2 = 0;
       for(ex.Init(CV1.Arc(),TopAbs_VERTEX); ex.More(); ex.Next()){
        if(Vtx.IsSame(ex.Current())) {
@@ -3848,7 +3836,7 @@ void ChFi3d_Builder::IntersectMoreCorner(const Standard_Integer Index)
     Fad = TopoDS::Face(DStr.Shape(Fd->Index(IFadArc)));
     Fop = TopoDS::Face(DStr.Shape(Fd->Index(IFopArc)));
     TopTools_ListIteratorOfListOfShape It;
-    // On recupere la face en bout sans controle de son unicite.
+    // The face at end is returned without control of its unicity.
     for(It.Initialize(myEFMap(Arcpiv));It.More();It.Next()) {
       if(!Fad.IsSame(It.Value())){
        Fv = TopoDS::Face(It.Value());
@@ -3856,7 +3844,7 @@ void ChFi3d_Builder::IntersectMoreCorner(const Standard_Integer Index)
       }
     }
 
-    // est-ce que la face en bout contient le Vertex ?
+    // does the face at end contain the Vertex ?
     Standard_Boolean isinface = Standard_False;
     for (ex.Init(Fv,TopAbs_VERTEX); ex.More(); ex.Next()){
       if (ex.Current().IsSame(Vtx)) {
@@ -3871,8 +3859,8 @@ void ChFi3d_Builder::IntersectMoreCorner(const Standard_Integer Index)
       Fad = TopoDS::Face(DStr.Shape(Fd->Index(IFadArc)));
       Fop = TopoDS::Face(DStr.Shape(Fd->Index(IFopArc)));
       //TopTools_ListIteratorOfListOfShape It;
-      // On recupere la face en bout sans controle de son unicite.
-      for(It.Initialize(myEFMap(Arcpiv));It.More();It.Next()) {
+    // The face at end is returned without control of its unicity.
+     for(It.Initialize(myEFMap(Arcpiv));It.More();It.Next()) {
        if(!Fad.IsSame(It.Value())){
          Fv = TopoDS::Face(It.Value());
          break;
@@ -3881,12 +3869,12 @@ void ChFi3d_Builder::IntersectMoreCorner(const Standard_Integer Index)
     }
 
     if(Fv.IsNull()) StdFail_NotDone::Raise
-      ("OneCorner : face en bout non trouvee");
+      ("OneCorner : face at end is not found");
 
     Fv.Orientation(TopAbs_FORWARD);
     Fad.Orientation(TopAbs_FORWARD);
 
-    // On recupere de meme l edge qui sera a prolonger.
+    // In the same way the edge to be extended is returned.
     for(It.Initialize(myVEMap(Vtx));It.More() && Arcprol.IsNull();It.Next()){
       if(!Arcpiv.IsSame(It.Value())){
        for(ex.Init(Fv,TopAbs_EDGE); ex.More(); ex.Next()){
@@ -3899,16 +3887,16 @@ void ChFi3d_Builder::IntersectMoreCorner(const Standard_Integer Index)
       }
     }
 
-    //Fopbis est la face contenant la trace du conge dont le CP.Arc() ne contient pas Vtx.
-    //Normalement soit Fobis est la meme que Fop (cylindre), soit Fobis est G1 avec Fop.
+    //Fopbis is the face containing the trace of fillet CP.Arc() which of does not contain Vtx.
+    //Normallly Fobis is either the same as Fop (cylinder), or Fobis is G1 with Fop.
     Fopbis.Orientation(TopAbs_FORWARD);
 
-    //on appelle Fop la 4eme face inutilisee du vertex
+    //Fop calls the 4th face non-used for the vertex
     cherche_face(myVFMap(Vtx),Arcprol,Fad,Fv,Fv,Fopbis);
     Fop.Orientation(TopAbs_FORWARD);
 
     if(Arcprol.IsNull()) StdFail_NotDone::Raise
-      ("OneCorner : edge a prolonger non trouve");
+      ("OneCorner : edge to be extended is not found");
     for(ex.Init(Fopbis,TopAbs_EDGE); ex.More(); ex.Next()){
       if(Arcprol.IsSame(ex.Current())) {
        OArcprolop = ex.Current().Orientation();
@@ -3932,17 +3920,17 @@ void ChFi3d_Builder::IntersectMoreCorner(const Standard_Integer Index)
     Bad.Initialize(Fad);
     Bop.Initialize(Fop);
   }
-  // on va devoir modifier le CommonPoint
-  //dans le vide et son parametre dans la FaceInterference.
-  //On les recupere donc tous deux dans des references
-  //non const. Attention les modifs se font dans le dos
-  //de CV1,CV2,Fi1,Fi2.
+  // it is necessary to modify the CommonPoint
+  // in the space and its parameter in FaceInterference.
+  // So both of them are returned in references
+  // non const. Attention the modifications are done behind
+  // CV1,CV2,Fi1,Fi2.
   ChFiDS_CommonPoint& CPopArc = Fd->ChangeVertex(isfirst,IFopArc);
   ChFiDS_FaceInterference& FiopArc = Fd->ChangeInterference(IFopArc);
   ChFiDS_CommonPoint& CPadArc = Fd->ChangeVertex(isfirst,IFadArc);
   ChFiDS_FaceInterference& FiadArc = Fd->ChangeInterference(IFadArc);
-  //on initialise le parametre du vertex en l air a la valeur de son
-  //copain d en face (point sur arc).
+  // the parameter of the vertex is initialized with the value 
+  // of its opposing vertex (point on arc).
   Standard_Real wop = Fd->ChangeInterference(IFadArc).Parameter(isfirst);
   Handle(Geom_Curve) c3df;
   Handle(GeomAdaptor_HSurface)
@@ -3950,9 +3938,9 @@ void ChFi3d_Builder::IntersectMoreCorner(const Standard_Integer Index)
   gp_Pnt2d p2dbout;
   {
 
-    // rajouter ici des criteres plus ou moins restrictifs pour
-    // decider si on fait l intersection avec la face en bout
-    // etendue ou si on aiguille sur bouchon.
+    // add here more or less restrictive criteria to
+    // decide if the intersection with face is done at the
+    // extended end or if there will be a cap on sharp end.
     c3df = DStr.Curve(FiopArc.LineIndex()).Curve();
     Standard_Real uf = FiopArc.FirstParameter();
     Standard_Real ul = FiopArc.LastParameter();
@@ -3968,8 +3956,7 @@ void ChFi3d_Builder::IntersectMoreCorner(const Standard_Integer Index)
 //  if(!inters && BRep_Tool::Continuity(Arcprol,Fv,Fop) != GeomAbs_C0){
     if(!inters && isTangentFaces(Arcprol,Fv,Fop)){
 //  Modified by Sergey KHROMOV - Fri Dec 21 18:08:29 2001 End
-      // Arcprol etant une arete de tangence on tente un
-      // ultime rattrappage par un  extrema curve/curve.
+      // Arcprol is an edge of tangency, ultimate adjustment by an extrema curve/curve is attempted.
       Standard_Real ff,ll;
       Handle(Geom2d_Curve) gpcprol = BRep_Tool::CurveOnSurface(Arcprol,Fv,ff,ll);
       Handle(Geom2dAdaptor_HCurve) pcprol = new Geom2dAdaptor_HCurve(gpcprol);
@@ -4042,12 +4029,12 @@ void ChFi3d_Builder::IntersectMoreCorner(const Standard_Integer Index)
     if (!ChFi3d_ComputeCurves(HGs,HBs,Pardeb,Parfin,Cc,
                              Ps,
                              Pc,tolesp,tol2d,tolreached))
-    Standard_Failure::Raise("OneCorner : echec calcul intersection");
+    Standard_Failure::Raise("OneCorner : failed calculation intersection");
 
     Udeb = Cc->FirstParameter();
     Ufin = Cc->LastParameter();
 
-    // on determine si la courbe a une intersection avec l'arete de couture
+    // check if the curve has an intersection with sewing edge
 
     ChFi3d_Couture(Fv,couture,edgecouture);
 
@@ -4095,7 +4082,7 @@ void ChFi3d_Builder::IntersectMoreCorner(const Standard_Integer Index)
   }
 
   else{
-    Standard_NotImplemented::Raise("OneCorner : bouchon non ecrit");
+    Standard_NotImplemented::Raise("OneCorner : cap not written");
   }
   Standard_Integer IShape = DStr.AddShape(Fv);
 #ifndef DEB
@@ -4140,9 +4127,9 @@ void ChFi3d_Builder::IntersectMoreCorner(const Standard_Integer Index)
   stripe->SetIndexPoint(ChFi3d_IndexPointInDS(CV2,DStr),isfirst,2);
 
   if (!intcouture) {
-// il n'y a pas d'intersection avec l'arete de couture
-// on stocke la courbe Cc dans la stripe
-// le stockage dans la DS se fera par FILDS.
+// there is no intersection with edge of sewing
+// curve Cc is stored in the stripe
+// the storage in the DS is done by FILDS.
 
     TopOpeBRepDS_Curve Tc(Cc,tolreached);
     ICurve = DStr.AddCurve(Tc);
@@ -4154,11 +4141,11 @@ void ChFi3d_Builder::IntersectMoreCorner(const Standard_Integer Index)
     stripe->SetParameters(isfirst,Udeb,Ufin);
    }
   else {
-// on stocke les courbes curv1 et curv2 dans la DS
-// ces courbes ne seront pas reconstruites par FILDS car
-// on met stripe->InDS(isfirst);
+// curves curv1 and curv2 are stored in the DS
+// these curves are not reconstructed by FILDS as
+// stripe->InDS(isfirst) is placed;
 
-    // interferences de curv1 et curv2 sur Fv
+    // interferences of curv1 and curv2 on Fv
     ComputeCurve2d(curv1,Fv,c2d1);
     Handle(TopOpeBRepDS_SurfaceCurveInterference) InterFv;
     InterFv = ChFi3d_FilCurveInDS(Icurv1,IShape,c2d1,Et);
@@ -4166,7 +4153,7 @@ void ChFi3d_Builder::IntersectMoreCorner(const Standard_Integer Index)
     ComputeCurve2d(curv2,Fv,c2d2);
     InterFv = ChFi3d_FilCurveInDS(Icurv2,IShape,c2d2,Et);
     DStr.ChangeShapeInterferences(IShape).Append(InterFv);
-     // interferences de curv1 et curv2 sur Isurf
+     // interferences of curv1 and curv2 on Isurf
     if (Fd->Orientation()== Fv.Orientation()) Et=TopAbs::Reverse(Et);
     c2d1=new Geom2d_TrimmedCurve(Ps,Udeb,par2);
     InterFv = ChFi3d_FilCurveInDS(Icurv1,Isurf,c2d1,Et);
@@ -4175,7 +4162,7 @@ void ChFi3d_Builder::IntersectMoreCorner(const Standard_Integer Index)
        InterFv = ChFi3d_FilCurveInDS(Icurv2,Isurf,c2d2,Et);
     DStr.ChangeSurfaceInterferences(Isurf).Append(InterFv);
 
-      // limitation de l'arete de couture
+      // limitation of the sewing edge
     Standard_Integer Iarc=DStr.AddShape(edgecouture);
     Handle(TopOpeBRepDS_CurvePointInterference) Interfedge;
     TopAbs_Orientation ori;
@@ -4190,7 +4177,7 @@ void ChFi3d_Builder::IntersectMoreCorner(const Standard_Integer Index)
     Interfedge = ChFi3d_FilPointInDS(ori,Iarc,indpt,par1);
     DStr.ChangeShapeInterferences(Iarc).Append(Interfedge);
 
-    // creation des CurveInterferences de Icurv1 et Icurv2
+    // creation of CurveInterferences from Icurv1 and Icurv2
     stripe->InDS(isfirst);
     Standard_Integer ind1= stripe->IndexPoint(isfirst,1);
     Standard_Integer ind2= stripe->IndexPoint(isfirst,2);
@@ -4211,10 +4198,10 @@ void ChFi3d_Builder::IntersectMoreCorner(const Standard_Integer Index)
   if( inters){
 //
 
-    // On rajoute le petit bout de courbe qui manque pour l extension
-    // de la face en bout et la limitation de la face opposee.
+    // The small end of curve missing for the extension
+    // of the face at end and the limitation of the opposing face is added.
 
-    // Tout d abord on coupe les ponts avec l arete de la spine.
+    // Above all the points cut the points with the edge of the spine.
     Standard_Integer IArcspine = DStr.AddShape(Arcspine);
     Standard_Integer IVtx = DStr.AddShape(Vtx);
     TopAbs_Orientation OVtx2;
@@ -4237,7 +4224,7 @@ void ChFi3d_Builder::IntersectMoreCorner(const Standard_Integer Index)
     DStr.ChangeShapeInterferences(IArcspine).Append(interfv);
 
 
-    //Modif de lvt pour trouver la suite de Arcprol dans l'autre face
+    //Modif of lvt to find the suite of Arcprol in the other face
     {
       TopTools_ListIteratorOfListOfShape It;
       for (It.Initialize(myVEMap(Vtx)); It.More(); It.Next()){
@@ -4249,9 +4236,9 @@ void ChFi3d_Builder::IntersectMoreCorner(const Standard_Integer Index)
        }
       }
     }
-    //fin de modif
+    //end of modif
 
-    // On construit maintenant les courbes qui manquent.
+    //Now the missing curves are constructed.
     for(ex.Init(Arcprolbis.Oriented(TopAbs_FORWARD),TopAbs_VERTEX);
        ex.More(); ex.Next()){
       if(Vtx.IsSame(ex.Current())) {
@@ -4266,7 +4253,7 @@ void ChFi3d_Builder::IntersectMoreCorner(const Standard_Integer Index)
        break;
       }
     }
-// on determine si Fop a une arete de couture
+// it is checked if Fop has a sewing edge
 
 //     TopoDS_Edge edgecouture;
 //     Standard_Boolean couture;
@@ -4325,7 +4312,7 @@ void ChFi3d_Builder::IntersectMoreCorner(const Standard_Integer Index)
     TopOpeBRepDS_Curve Zob(zob3d,tolreached);
     Standard_Integer IZob = DStr.AddCurve(Zob);
 
-    // on ne determine pas si la courbe a une intersection avec l'arete de couture
+    // it is not determined if the curve has an intersection with the sewing edge
 
 
     {
index 751fa992fa2b4e5f995c4ad8cac94a6732a8fbdf..d4658c93a6690947727131dce7aded1b48fd3ebe 100755 (executable)
@@ -115,10 +115,9 @@ static void Reduce(const Standard_Real& p1,
 
 //=======================================================================
 //function : PerformTwoCornerbyInter
-//purpose  : Effectue un PerformTwoCorner par intersection.
-//           Dans le cas Biseau on utilise pour tous les cas le 
-//           cheminement biparam/biparam; on reapproxime alors la courbe
-//           3d et les 2 pcurves .
+//purpose  : Performs PerformTwoCorner by intersection.
+//           In case of Biseau for all cases the 
+//           path is used; 3D curve and 2 pcurves are approximated.
 //=======================================================================
 
 Standard_Integer ChFi3d_Builder::PerformTwoCornerbyInter(const Standard_Integer Index)
@@ -128,10 +127,10 @@ Standard_Integer ChFi3d_Builder::PerformTwoCornerbyInter(const Standard_Integer
   const TopoDS_Vertex& Vtx = myVDataMap.FindKey(Index);
   TopOpeBRepDS_DataStructure& DStr = myDS->ChangeDS();
 
-  //On extrait les informations necessaires sur les conges 
+  //Information on fillets is extracted 
   //------------------------------------------------------
 
-  //le premier
+  //the first
   //----------
   ChFiDS_ListIteratorOfListOfStripe It;
   It.Initialize(myVDataMap(Index));
@@ -143,7 +142,7 @@ Standard_Integer ChFi3d_Builder::PerformTwoCornerbyInter(const Standard_Integer
     Corner1->ChangeSetOfSurfData()->ChangeSequence();
   Handle(ChFiDS_SurfData)& Fd1 = SeqFil1.ChangeValue(IFd1);
 
-  //le deuxieme
+  //the second
   //----------
   It.Next();
   Handle(ChFiDS_Stripe)& Corner2 = It.Value(); 
@@ -158,10 +157,10 @@ Standard_Integer ChFi3d_Builder::PerformTwoCornerbyInter(const Standard_Integer
     Corner2->ChangeSetOfSurfData()->ChangeSequence();
   Handle(ChFiDS_SurfData)& Fd2 = SeqFil2.ChangeValue(IFd2);
 
-  // On analyse les concavites, dans le cas de concavites differentes, 
-  // prevoir un raccord evolutif du type ThreeCorner de R vers 0.
-  // Sinon on recherche la face en vis a vis 
-  // et l intersection  eventuelle des 2 pcurves sur cette face.
+  // The concavities are analysed in case of differents concavities, 
+  // preview an evolutionary connection of type ThreeCorner of R to 0.
+  // Otherwise the opposite face  
+  // and the eventual intersection of 2 pcurves on this face are found.
 
   ChFiDS_State Stat1,Stat2;
   Standard_Boolean isfirst1 = (Sens1 == 1);
@@ -187,8 +186,8 @@ Standard_Integer ChFi3d_Builder::PerformTwoCornerbyInter(const Standard_Integer
     return done;
   }
   if (!OkinterCC) {
-     // On calcule l'intersection des pcurves sans les restreindre par les 
-    // common point
+     // The intersection of pcurves is calculated without restricting them by  
+    // common points.
     OkinterCC= ChFi3d_IsInFront(DStr,Corner1,Corner2,IFd1,IFd2,Sens1,Sens2,
                                 UIntPC1,UIntPC2,FaCo,SameSide,
                                 IFaCo1,IFaCo2,Okvisavis,Vtx,Standard_True,1);
@@ -196,29 +195,29 @@ Standard_Integer ChFi3d_Builder::PerformTwoCornerbyInter(const Standard_Integer
   
   if (!Okvisavis) {
 #if DEB
-    cout<<"TwoCorner : pas de face commune"<<endl;
+    cout<<"TwoCorner : no common face"<<endl;
 #endif
     done=Standard_False;
     return done;
   }   
   if (!OkinterCC) {
 #if DEB
-    cout<<"biseau : echec intersection des lignes de tangence sur face commune"<<endl;
+    cout<<"biseau : failed intersection of tangency lines on common face"<<endl;
 #endif
     done=Standard_False;
     return done;
   }
   Standard_Integer IFaArc1 = 3-IFaCo1, IFaArc2 = 3-IFaCo2;
   
-  // On verifie que les conges ont bien un commonpoint sur un arc commun.
-  // Cet edge est le pivot du biseau ou de la rotule.
+  // It is checked if the fillets have a commonpoint on a common arc.
+  // This edge is the pivot of the bevel or of the kneecap.
   
   ChFiDS_CommonPoint& CP1 = Fd1->ChangeVertex(isfirst1,IFaArc1);
   ChFiDS_CommonPoint& CP2 = Fd2->ChangeVertex(isfirst2,IFaArc2);
 
   if (!CP1.IsOnArc() || !CP2.IsOnArc()) {
 #if DEB
-    cout<<"echec 1 des 2 conges n est pas sur arc"<<endl;
+    cout<<"fail 1 of 2 fillets are not on arc"<<endl;
 #endif
     done=Standard_False;
     return done;
@@ -226,7 +225,7 @@ Standard_Integer ChFi3d_Builder::PerformTwoCornerbyInter(const Standard_Integer
   if ( ! CP1.Arc().IsSame( CP2.Arc()) ) {
     // look like OnSame + OnDiff case (eap, Arp 9 2002, occ266)
 #if DEB
-    cout<<"PerformTwoCornerbyInter(): conges ne sont pas sur la meme arc"<<endl;
+    cout<<"PerformTwoCornerbyInter(): fillets are not on the same arc"<<endl;
 #endif
     done = Standard_True;
     PerformMoreThreeCorner(Index, 2);
@@ -269,9 +268,8 @@ Standard_Integer ChFi3d_Builder::PerformTwoCornerbyInter(const Standard_Integer
     }
   }
   if(!ok1 || !ok2){
-    //On est dans un contexte merdique
 #if DEB
-    cout<<"echec une des surfaces n a pas de face d appui commune avec l edge pivot"<<endl;
+    cout<<"fail one of surfaces has no common base face with the pivot edge"<<endl;
 #endif
     done=Standard_False;
     return done;
@@ -287,7 +285,7 @@ Standard_Integer ChFi3d_Builder::PerformTwoCornerbyInter(const Standard_Integer
   Handle(Geom_Curve) Gc;
   
   if(sameparam) {
-    // Du cote face commune, calcul de Pardeb.
+    // Side common face, calculation of Pardeb.
     ChFi3d_ComputesIntPC (Fd1->Interference(IFaCo1),
                          Fd2->Interference(IFaCo2),
                          HS1,HS2,UIntPC1,UIntPC2);
@@ -298,7 +296,7 @@ Standard_Integer ChFi3d_Builder::PerformTwoCornerbyInter(const Standard_Integer
     Pardeb(3)= UV.X(); Pardeb(4)=UV.Y();
     gp_Pnt PFaCo = HS1->Surface().Value(Pardeb(1),Pardeb(2));
     
-    // Du cote arc, calcul de Parfin.
+    // Side arc, calculation of Parfin.
     Standard_Real UIntArc1 = Fd1->Interference(IFaArc1).Parameter(isfirst1);
     Standard_Real UIntArc2 = Fd2->Interference(IFaArc2).Parameter(isfirst2);
     
@@ -318,7 +316,7 @@ Standard_Integer ChFi3d_Builder::PerformTwoCornerbyInter(const Standard_Integer
        !ChFi3d_ComputeCurves(HS1,HS2,Pardeb,Parfin,Gc,
                              PGc1,PGc2,tolesp,tol2d,tolreached)) {
 #if DEB
-      cout<<"echec calcul biseau echec interSS"<<endl;
+      cout<<"failed to calculate bevel error interSS"<<endl;
 #endif
       done=Standard_False;
       return done;
@@ -327,12 +325,12 @@ Standard_Integer ChFi3d_Builder::PerformTwoCornerbyInter(const Standard_Integer
             !ChFi3d_ComputeCurves(HS1,HS2,Parfin,Pardeb,Gc,
                                   PGc1,PGc2,tolesp,tol2d,tolreached)) {
 #if DEB
-      cout<<"echec calcul biseau echec interSS"<<endl;
+      cout<<"failed to calculate bevel error interSS"<<endl;
 #endif
       done=Standard_False;
       return done;     
     }
-    // On met a jour les CornerData avec les resultats de l intersection. 
+    // CornerData are updated with results of the intersection. 
     Standard_Real WFirst = Gc->FirstParameter();
     Standard_Real WLast = Gc->LastParameter();
     Standard_Integer Ipoin1;
@@ -370,7 +368,7 @@ Standard_Integer ChFi3d_Builder::PerformTwoCornerbyInter(const Standard_Integer
                           isfirst2,IFaCo2);
     Corner2->SetIndexPoint(Corner1->IndexPoint(isfirst1,IFaArc1),
                           isfirst2,IFaArc2);
-    //On update les tolerances des points.
+    //The tolerances of points are updated.
     Bnd_Box bco,barc;
     if(IFaCo1 == 1) ChFi3d_EnlargeBox(DStr,Corner1,Fd1,bco,barc,isfirst1);
     else ChFi3d_EnlargeBox(DStr,Corner1,Fd1,barc,bco,isfirst1);
@@ -382,12 +380,12 @@ Standard_Integer ChFi3d_Builder::PerformTwoCornerbyInter(const Standard_Integer
     ChFi3d_SetPointTolerance(DStr,bco,Corner1->IndexPoint(isfirst1,IFaCo1));
   }
   else {
-    // Il faut identifier la surface qui deborde,
-    // trouver le point de fin de l intersection Surf/Surf 
-    // par l intersection de la ligne de tangence du petit sur
-    // la face opposee avec la surface du gros,
-    // et enfin intersecter le gros avec la face en bout
-    // entre ce point et le point sur arc.
+    // It is necessary to identify the border surface,
+    // find the end point of the intersection Surf/Surf 
+    // by the intersection of the tangency line of the small
+    // on the opposing face with the surface of the big,
+    // and finally intersect the big with the face at end 
+    // between this point and the point on arc.
 #ifndef DEB
     Standard_Boolean parcrois = Standard_False ;
 #else
@@ -427,11 +425,11 @@ Standard_Integer ChFi3d_Builder::PerformTwoCornerbyInter(const Standard_Integer
       isfirstBig = isfirst1; isfirstSma = isfirst2;
     }
     
-    //Intersection du gros avec le petit :
+    //Intersection of the big with the small :
     //------------------------------------
 
-    // Pardeb (parametres du point PFaCo)
-    // on verifie l'intersection 
+    // Pardeb (parameters of point PFaCo)
+    // the intersection is checked
     ChFi3d_ComputesIntPC (SmaFD->Interference(IFaCoSma),
                          BigFD->Interference(IFaCoBig),
                          SmaHS,BigHS,UIntPCSma,UIntPCBig);
@@ -442,7 +440,7 @@ Standard_Integer ChFi3d_Builder::PerformTwoCornerbyInter(const Standard_Integer
     Pardeb(1)= UVi.X(); Pardeb(2)=UVi.Y();
     gp_Pnt PFaCo = SmaHS->Value(UVi.X(),UVi.Y());
 
-      // Parfin (parametres du point PMil)
+      // Parfin (parameters of point PMil)
     const ChFiDS_FaceInterference& FiArcSma = SmaFD->Interference(IFaArcSma);
     Handle(Geom_Curve) ctg = DStr.Curve(FiArcSma.LineIndex()).Curve();
     Handle(GeomAdaptor_HCurve) Hctg = new GeomAdaptor_HCurve();
@@ -467,7 +465,7 @@ Standard_Integer ChFi3d_Builder::PerformTwoCornerbyInter(const Standard_Integer
     }
     if(!ChFi3d_IntCS(BigHS,Hctg,UVi,wi)){
 #if DEB
-      cout<<"biseau : echec inter C S"<<endl;
+      cout<<"bevel : failed inter C S"<<endl;
 #endif
       done=Standard_False;
       return done;
@@ -481,12 +479,12 @@ Standard_Integer ChFi3d_Builder::PerformTwoCornerbyInter(const Standard_Integer
     if (!ChFi3d_ComputeCurves(SmaHS,BigHS,Pardeb,Parfin,Gc,
                              PGc1,PGc2,tolesp,tol2d,tolreached)) {
 #if DEB
-      cout<<"echec calcul biseau echec interSS"<<endl;
+      cout<<"failed to calculate bevel failed interSS"<<endl;
 #endif
       done=Standard_False;
       return done;
     }
-      // On met a jour la SmaCD, c est fini pour elle
+      // SmaCD is updated, for it this is all
     Standard_Real WFirst = Gc->FirstParameter();
     Standard_Real WLast = Gc->LastParameter();
     Standard_Integer IpointCo, IpointMil, IpointArc;
@@ -514,7 +512,7 @@ Standard_Integer ChFi3d_Builder::PerformTwoCornerbyInter(const Standard_Integer
     SmaCD->SetIndexPoint(IpointMil,isfirstSma,IFaArcSma);
     if (IFaCoSma == 2) SmaCD->SetOrientation(TopAbs_REVERSED,isfirstSma);
 
-    // Pour la BigCD on met ces premiers resultats dans la DS.
+    // For BigCD the first results are met in the DS.
     BigCD->SetIndexPoint(IpointCo,isfirstBig,IFaCoBig);
     BigFD->ChangeVertex(isfirstBig,IFaCoBig) = psmaco;
     BigFD->ChangeInterference(IFaCoBig).SetParameter(UIntPCBig,isfirstBig);
@@ -526,7 +524,7 @@ Standard_Integer ChFi3d_Builder::PerformTwoCornerbyInter(const Standard_Integer
     Interfp = ChFi3d_FilPointInDS(TopAbs_REVERSED,ICurv,IpointMil,WLast);
     Li.Append(Interfp);
     
-    // la transition des courbes d intersection sur la Big
+    // the transition of curves of intersection on the Big
     TopAbs_Orientation tra = BigFD->InterferenceOnS1().Transition();
     TopAbs_Orientation ofac = DStr.Shape(BigFD->IndexOfS1()).Orientation();
     TopAbs_Orientation ofil = BigFD->Orientation();
@@ -540,18 +538,18 @@ Standard_Integer ChFi3d_Builder::PerformTwoCornerbyInter(const Standard_Integer
     Interfc = ChFi3d_FilCurveInDS (ICurv,ISurf,PGc2,tracurv);
     DStr.ChangeSurfaceInterferences(ISurf).Append(Interfc);
     
-    //On update les tolerances des points (on commence).
+    //The tolerances of points are updated (beginning).
     Bnd_Box bco,bmil,barc;
     if(IFaCoSma == 1) ChFi3d_EnlargeBox(DStr,SmaCD,SmaFD,bco,bmil,isfirstSma);
     else ChFi3d_EnlargeBox(DStr,SmaCD,SmaFD,bmil,bco,isfirstSma);
     ChFi3d_EnlargeBox(BigHS,PGc2,WFirst,WLast,bco,bmil);
     
-    // Intersection du gros avec la face en bout :
+    // Intersection of the big with the face at end :
     // -------------------------------------------
 
-    // Pardeb (parametres de PMil)
-    // On rejoue l intersection courbe surface mais avec la representation
-    // pcurve on face de la courbe pour etre bien sur.
+    // Pardeb (parameters of PMil)
+    // The intersection curve surface is tried again, now with representation
+    // pcurve on face of the curve to be sure.
     TopoDS_Face F = TopoDS::Face(DStr.Shape(SmaFD->Index(IFaArcSma)));
     Handle(BRepAdaptor_HSurface) HF = new BRepAdaptor_HSurface(F);
     Standard_Real fsma = FiArcSma.FirstParameter();
@@ -570,7 +568,7 @@ Standard_Integer ChFi3d_Builder::PerformTwoCornerbyInter(const Standard_Integer
     Handle(Adaptor3d_HCurveOnSurface) Hconsf = new Adaptor3d_HCurveOnSurface(consf);
     if(!ChFi3d_IntCS(BigHS,Hconsf,UVi,wi)) {
 #if DEB
-      cout<<"biseau : echec inter C S"<<endl;
+      cout<<"bevel : failed inter C S"<<endl;
 #endif
       done=Standard_False;
       return done;
@@ -580,7 +578,7 @@ Standard_Integer ChFi3d_Builder::PerformTwoCornerbyInter(const Standard_Integer
     Pardeb(1) = UVi.X(); Pardeb(2) = UVi.Y(); 
     gp_Pnt2d ppff1 = UVi;
 
-      // Parfin (parametres du point cpend)
+      // Parfin (parameters of the point cpend)
     Standard_Real ptg = BigFD->Interference(IFaArcBig).Parameter(isfirstBig);
     UVi = BigFD->Interference(IFaArcBig).PCurveOnSurf()->Value(ptg);
     Parfin(3) = UVi.X(); Parfin(4) = UVi.Y();
@@ -595,21 +593,21 @@ Standard_Integer ChFi3d_Builder::PerformTwoCornerbyInter(const Standard_Integer
       // Intersection. 
     Standard_Real uu1,uu2,vv1,vv2;
     ChFi3d_Boite(ppff1,ppff2,uu1,uu2,vv1,vv2);
-    // pour le cas ou les deux chanfreins sont sur deux aretes OnSame,
-    // il faut etendre la surface portant F, sinon, au moins ne pas la
-    // restreindre.
+    // for the case when two chamfers are on two edges OnSame,
+    // it is necessary to extend the surface carrying F, or at least
+    // not to limit it.
     ChFi3d_BoundFac(HF->ChangeSurface(),uu1,uu2,vv1,vv2,Standard_True);
 
     if (!ChFi3d_ComputeCurves(HF,BigHS,Pardeb,Parfin,Gc,
                              PGc1,PGc2,tolesp,tol2d,tolreached)) {
 #if DEB
-      cout<<"echec calcul biseau echec interSS"<<endl;
+      cout<<"fail calculation bevel fail interSS"<<endl;
 #endif
       done=Standard_False;
       return done;
     }
     
-      // On finit de mettre a jour la BigCD et la DS.
+      // End of update of the BigCD and the DS.
     WFirst = Gc->FirstParameter();
     WLast = Gc->LastParameter();
     ICurv = DStr.AddCurve(TopOpeBRepDS_Curve(Gc,tolreached));
@@ -626,7 +624,7 @@ Standard_Integer ChFi3d_Builder::PerformTwoCornerbyInter(const Standard_Integer
     DStr.ChangeSurfaceInterferences(ISurf).Append(Interfc);
     BigCD->InDS(isfirstBig);
     
-    // Et enfin on met dans la DS les informations cote face.
+    // Finally the information on faces is placed in the DS.
     Standard_Integer IShape = DStr.AddShape(F);
     if(SmaFD->Surf() == BigFD->Surf()){
       tracurv = TopAbs::Compose(etest.Orientation(),
@@ -646,7 +644,7 @@ Standard_Integer ChFi3d_Builder::PerformTwoCornerbyInter(const Standard_Integer
     Interfc = ChFi3d_FilCurveInDS(ICurv,IShape,PGc1,tracurv);
     DStr.ChangeShapeInterferences(IShape).Append(Interfc);
 
-    //On update les tolerances des points (on finit).
+    //The tolerances of points are updated (end).
     Handle(ChFiDS_Stripe) bidst;
     if(IFaCoBig == 1) ChFi3d_EnlargeBox(DStr,bidst,BigFD,bco,barc,isfirstBig);
     else ChFi3d_EnlargeBox(DStr,bidst,BigFD,barc,bco,isfirstBig);
index 7d26701eb05830a84b7536815f971a4f2eaec08c..2a05ab589f8aebc4919ad923acfa5198d0396ecf 100755 (executable)
@@ -236,7 +236,7 @@ static void RemoveSD(Handle(ChFiDS_Stripe)& Stripe,
 
 //=======================================================================
 //function : cherche_edge1
-//purpose  : cherche l'edge commune entre les faces F1 et F2 
+//purpose  : find common edge of faces F1 and F2 
 //=======================================================================
 
 static void cherche_edge1 (const TopoDS_Face & F1,
@@ -266,9 +266,9 @@ static void cherche_edge1 (const TopoDS_Face & F1,
 
 //=======================================================================
 //function : CurveHermite
-//purpose  : calcule une courbe 3d  au moyen des polynomes d'Hermite.
-//           l'arete ic est une arete de regularite . On construit une courbe 3d entre 
-//           les aretes icmoins et icplus. 
+//purpose  : calculate a  curve 3d using polynoms of Hermite.
+//           the edge is a regular edge. Curve 3D is constructed  
+//           between edges icmoins and icplus. 
 //=======================================================================
 
 static void CurveHermite (const TopOpeBRepDS_DataStructure& DStr,
@@ -437,7 +437,7 @@ static void CurveHermite (const TopOpeBRepDS_DataStructure& DStr,
 
 //=======================================================================
 //function : CalculDroite
-//purpose  : calcule une droite 2d  passant par le point  p2d1 et de direction xdir ydir 
+//purpose  : calculate a 2D straight line passing through point p2d1 and direction xdir ydir 
 //=======================================================================
 
 static void CalculDroite(const gp_Pnt2d & p2d1,
@@ -452,7 +452,7 @@ static void CalculDroite(const gp_Pnt2d & p2d1,
 
 //=======================================================================
 //function : CalculBatten
-//purpose  : calcule un batten entre les courbes 2d  curv2d1 et curv2d2  aux points p2d1 et p2d2  
+//purpose  : calcule a batten between curves 2d  curv2d1 and curv2d2 at points p2d1 and p2d2  
 //=======================================================================
 
 static void CalculBatten (const Handle (GeomAdaptor_HSurface) ASurf, 
@@ -514,7 +514,7 @@ static void CalculBatten (const Handle (GeomAdaptor_HSurface) ASurf,
     Ok = Bat.Compute(Iana,25,1.e-2);
 #if DEB
     if (!Ok) { 
-      cout<<"pas de batten :";
+      cout<<"no batten :";
       Bat.Dump(cout);
     }    
 #endif  
@@ -539,8 +539,8 @@ static void CalculBatten (const Handle (GeomAdaptor_HSurface) ASurf,
 
 //=======================================================================
 //function : OrientationIcNonVive
-//purpose  : calcule l'orientation de la courbe de raccord  entre ic et icplus sachant que ic 
-//           n'est pas une arete vive
+//purpose  : calculate the orientation of the curve between ic and icplus knowing that ic 
+//           is not a living edge.
 //=======================================================================
 
 static void OrientationIcNonVive (const Handle(ChFiDS_Stripe) & CDic,
@@ -563,8 +563,8 @@ static void OrientationIcNonVive (const Handle(ChFiDS_Stripe) & CDic,
 
 //=======================================================================
 //function : OrientationIcplusNonVive
-//purpose  : calcule l'orientation de la courbe de raccord  entre ic et icplus sachant que icplus
-//           n'est pas une arete vive;
+//purpose  : calculate the orientation of the curve between ic and icplus knowing that icplus
+//           is not a living edge;
 //=======================================================================
 
 static void OrientationIcplusNonVive (const Handle(ChFiDS_Stripe) & CDicplus,
@@ -588,8 +588,8 @@ static void OrientationIcplusNonVive (const Handle(ChFiDS_Stripe) & CDicplus,
 
 //=======================================================================
 //function : OrientationAreteViveConsecutive
-//purpose  : calcule l'orientation  de la courbe de raccord  entre les aretes ic et icplus 
-//           ou ic et icplus sont vives consecutives
+//purpose  : calculate the orientation of the curve between edges ic and icplus 
+//           where ic and icplus are consecutively living 
 //=======================================================================
 
 static void OrientationAreteViveConsecutive (const TopoDS_Shape & Fviveicicplus,
@@ -597,7 +597,7 @@ static void OrientationAreteViveConsecutive (const TopoDS_Shape & Fviveicicplus,
                                              const TopoDS_Vertex & V1,
                                              TopAbs_Orientation & orien)
 
-{ // orinterf est l'orientation de l'edge ic  par rapport a la face Fviveicicplus prise FORWARD
+{ // orinterf is orientation of edge ic corresponding to face Fviveicicplus taken FORWARD
 #ifndef DEB
   TopAbs_Orientation orinterf = TopAbs_FORWARD;
 #else
@@ -612,8 +612,8 @@ static void OrientationAreteViveConsecutive (const TopoDS_Shape & Fviveicicplus,
       break;
     }
   }
-  // si V1 est le vertex REVERSED  de l'edge ic alors la courbe de 
-  // raccord a la meme orientation que ic 
+  // if V1 is vertex REVERSED of edge ic the curve  
+  // has the same orientation as ic 
   TopoDS_Vertex vl;
   vl=TopExp::LastVertex(E);
   if (vl.IsSame(V1)){ 
@@ -628,7 +628,7 @@ static void OrientationAreteViveConsecutive (const TopoDS_Shape & Fviveicicplus,
 
 //=======================================================================
 //function : PerformTwoCornerSameExt
-//purpose  : calcule l'intersection entre les deux stripes stripe1 et stripe2 
+//purpose  : calculate intersection between two stripes stripe1 and stripe2 
 //=======================================================================
 
 static void PerformTwoCornerSameExt(TopOpeBRepDS_DataStructure& DStr,
@@ -754,7 +754,7 @@ static void PerformTwoCornerSameExt(TopOpeBRepDS_DataStructure& DStr,
 
 //=======================================================================
 //function : CpOnEdge
-//purpose  : determine si la surfdata num  a un common point sur Eadj1 ou Eadj2
+//purpose  : determine if surfdata num has a common point on Eadj1 or Eadj2
 //=======================================================================
 
 static void  CpOnEdge (const  Handle(ChFiDS_Stripe) & stripe,
@@ -780,7 +780,7 @@ static void  CpOnEdge (const  Handle(ChFiDS_Stripe) & stripe,
 
 //=======================================================================
 //function : RemoveSurfData
-//purpose  : pour chaque stripe suppression des surfdatas initile
+//purpose  : for each stripe removal of unused surfdata
 //=======================================================================
 
 static void RemoveSurfData (const ChFiDS_StripeMap & myVDataMap,
@@ -815,9 +815,9 @@ static void RemoveSurfData (const ChFiDS_StripeMap & myVDataMap,
       Standard_Integer ind;
       if (sense==1) {
         ind=0;
-       // parmi les surfdatas on cherche le plus grand indice ind tel que 
-       // la surfdata ait un de ses commonpoint sur Eadj1 et Eadj2
-       // on supprime les surfdata de 1 a ind-1   
+       // among surfdatas find the greatest indice ind so that 
+       // surfdata could have one of commonpoint on Eadj1 and Eadj2
+       // remove surfdata from 1 to ind-1   
        for (Standard_Integer i=1;i<=nbsurf;i++) {
          CpOnEdge (It.Value(),i,isfirst,Eadj1,Eadj2,compoint);
          if (compoint) ind=i;
@@ -826,9 +826,9 @@ static void RemoveSurfData (const ChFiDS_StripeMap & myVDataMap,
       }
       else {
         ind=num;
-       // parmi les surfdatas on cherche le plus petit indice ind tel que 
-       // la surfdata ait un de ses commonpoint sur Eadj1 et Eadj2
-       // on supprime les surfdata de ind+1 a num   
+       // among surfdatas find the smallest indice ind so that 
+       // surfdata could have one of commonpoint on Eadj1 and Eadj2
+       // remove surfdata from ind+1 to num   
        for (Standard_Integer i=num;i>=1;i--) {
          CpOnEdge (It.Value(),i,isfirst,Eadj1,Eadj2,compoint);
          if (compoint) ind=i;
@@ -971,7 +971,7 @@ static TopAbs_Orientation PlateOrientation(const Handle(Geom_Surface)& thePlateS
                                           
 //=======================================================================
 //function : PerformMoreThreeCorner
-//purpose  : Traite le cas d'un sommet a n aretes.      
+//purpose  : Process case of a top with n edges.      
 //=======================================================================
 
 void  ChFi3d_Builder::PerformMoreThreeCorner(const Standard_Integer Jndex,
@@ -1061,8 +1061,7 @@ void  ChFi3d_Builder::PerformMoreThreeCorner(const Standard_Integer Jndex,
   TopoDS_Face F1,F2;
   gp_Vec SumFaceNormalAtV1(0,0,0); // is used to define Plate orientation 
 
-  // on determine s'il y a une arete de couture 
-  // la face qui a une arete de couture et l'arete de couture
+  // it is determined if there is a sewing edge
   Standard_Boolean couture=Standard_False;
   TopoDS_Face facecouture;
   TopoDS_Edge edgecouture;
@@ -1073,10 +1072,10 @@ void  ChFi3d_Builder::PerformMoreThreeCorner(const Standard_Integer Jndex,
       facecouture=fcur;
   }
 
-// On enleve les surfdata inutiles 
+// unused surfdata are removed 
   RemoveSurfData (myVDataMap, myEFMap,edgecouture,facecouture,V1);
 
- // tri des aretes et des faces
+ // parse edges and faces
   trouve=Standard_False;
   TopoDS_Edge Enext;
   TopoDS_Vertex VV;
@@ -1100,7 +1099,7 @@ void  ChFi3d_Builder::PerformMoreThreeCorner(const Standard_Integer Jndex,
     ChFi3d_cherche_edge(V1,Evive,Fcur,Enext,VV);
     trouve= !Enext.IsNull();
   }
-  // find sum of all face normales at V1
+  // find sum of all face normals at V1
   SummarizeNormal(V1, Fcur, Ecur, SumFaceNormalAtV1);
   
   Standard_Integer nbcouture=0;
@@ -1111,7 +1110,7 @@ void  ChFi3d_Builder::PerformMoreThreeCorner(const Standard_Integer Jndex,
     }
     else ChFi3d_cherche_edge(V1,Evive,Fcur,Enext,VV);
     if (Enext.IsNull())Standard_Failure::Raise
-    ("PerformMoreThreeCorner: pb dans le tri des aretes et des faces"); 
+    ("PerformMoreThreeCorner: pb in the parsing of edges and faces"); 
     if (Enext.IsSame(edgelibre1)|| Enext.IsSame(edgelibre2)) {
       CD.SetValue(ii, cdbid);
       Index.SetValue(ii, 0);
@@ -1146,7 +1145,7 @@ void  ChFi3d_Builder::PerformMoreThreeCorner(const Standard_Integer Jndex,
       jf.SetValue(ii, 0); 
     }
     else {
-// on cherche si Enext est dans la map des stripes 
+// it is found if Enext is in the map of stripes 
       TopoDS_Edge EE;
       /*Standard_Boolean */trouve = Standard_False;
       for (It.Initialize(myVDataMap(Jndex));It.More()&&!trouve;It.Next()) {
@@ -1168,7 +1167,7 @@ void  ChFi3d_Builder::PerformMoreThreeCorner(const Standard_Integer Jndex,
        Evive.SetValue(ii, Enext);
       }
       else {
-       //      l'arete ii est vive
+       //      edge ii is alive
        CD.SetValue(ii, cdbid);
        Index.SetValue(ii, 0);
        sens.SetValue(ii, -1);
@@ -1179,7 +1178,7 @@ void  ChFi3d_Builder::PerformMoreThreeCorner(const Standard_Integer Jndex,
        Evive.SetValue(ii, Enext);
        jf.SetValue(ii, 0);
       }
-      // On cherche la face Fnext!=Fcur qui contient Enext 
+      // Face Fnext!=Fcur containing Enext 
       Fnext=Fcur;
       ChFi3d_cherche_face1(myEFMap(Enext),Fcur,Fnext);
       Indices(nedge,ii,icplus,icmoins);
@@ -1189,11 +1188,11 @@ void  ChFi3d_Builder::PerformMoreThreeCorner(const Standard_Integer Jndex,
       numfa.SetValue(icplus,ii,numfa.Value(ii,icplus));
       Standard_Integer numface1,numface2;
       if (trouve) {
-       // on regarde si numfa correspond a IndexOfS1 ou IndexOfS2 
-       // on met a jour en consequence jf 
-        // si ce n'est pas le cas on recherche parmi les faces precedentes 
-        // celle qui correspond a IndexOfs1 IndexOfS2  et on remet a jour 
-        // numfa et Fvive (cts16288)  
+       // it is checked if numfa corresponds to IndexOfS1 or IndexOfS2 
+       // jf is updated is consequently updated
+        // if it is not the case among the previous faces are found 
+        // those which correspond to  IndexOfs1 IndexOfS2  and  
+        // numfa and Fvive are reupdated (cts16288)  
        numface2 = SurfIndex(CD, ii, Index.Value(ii), FACE2);
        if (numface2==numfa.Value(ii,icplus))
          jf.SetValue(ii, 2);
@@ -1239,8 +1238,8 @@ void  ChFi3d_Builder::PerformMoreThreeCorner(const Standard_Integer Jndex,
       }
     }
   }
-  // on verifie qu'une arete de regularite n'est pas tangente a une autre arete
-  // dans ce cas on ne la considere pas comme reguliere (cts60072)
+  // it is checked if a regular edge is not tangent to another edge
+  // in case if it is not considered regular (cts60072)
   for (ic=0;ic<nedge;ic++) {
     if (regul.Value(ic) ) {
       trouve=Standard_False;
@@ -1259,10 +1258,9 @@ void  ChFi3d_Builder::PerformMoreThreeCorner(const Standard_Integer Jndex,
     }
   }
 
-  // la variable deuxconges permet de detecter les cas ou on a un sommet a
-  // n aretes et deux conges sur deux aretes tangentes qui ne sont pas
-  // des bords libres 
-  // les courbes de raccord partent du conge jusqu'au sommet 
+  // variable deuxconges allows detecting cases when there is a top with 
+  // n edges and two fillets on two tangent edges that are not free borders
+  // the connecting curves start from the fillet and end on top 
   
   Standard_Boolean deuxconges,deuxcgnontg;
   deuxconges=Standard_False;
@@ -1280,9 +1278,8 @@ void  ChFi3d_Builder::PerformMoreThreeCorner(const Standard_Integer Jndex,
     }
   }
 
-  // on utilise la variable deuxconges dans le cas particulier
-  // ou on a deux conges et si les deux autres aretes vives 
-  // sont tangentes (cts60072) 
+  // variable deuxconges is used in the special case when there are 
+  // two fillets and if two other living edges are tangent (cts60072) 
   if (nconges==2 && nedge==4) {
     TopoDS_Edge E1,E2; 
      for (ic=0;ic<nedge&&!deuxconges;ic++) {
@@ -1331,10 +1328,10 @@ void  ChFi3d_Builder::PerformMoreThreeCorner(const Standard_Integer Jndex,
     PerformOneCorner (Jndex, Standard_True);
   }
 
-// si le commonpoint est sur une arete qui n'a pas comme
-// extremite le vertex , on  determine a nouveau Evive     
-// On determine a nouveau Fvive si elle ne correspondant 
-// pas a une des deux faces adjacentes a Evive (cts16288)
+// if the commonpoint is on an edge that does not have a 
+// vertex at the extremity, Evive is found anew    
+// Fvive is found anew if it does not correspond 
+// to two faces adjacent to Evive (cts16288)
 
   if (!deuxconges && !isOnSameDiff) 
     for (ic=0;ic<nedge;ic++) { 
@@ -1411,7 +1408,7 @@ void  ChFi3d_Builder::PerformMoreThreeCorner(const Standard_Integer Jndex,
       }
     } 
 
-// on recupere la premiere arete libre si elle existe
+// the first free edge is restored if it exists
   trouve=Standard_False;
   for (ic=0; ic<nedge&&!trouve;ic++) {  
     TopoDS_Edge ecom;
@@ -1422,7 +1419,7 @@ void  ChFi3d_Builder::PerformMoreThreeCorner(const Standard_Integer Jndex,
     }
   }  
 
-// determination de la distance de recul distmin a ne pas depasser
+// determine the minimum recoil distance that can't be exceeded 
   Standard_Boolean distmini=Standard_False;
   gp_Pnt som=BRep_Tool::Pnt(V1),pic;  
   gp_Pnt2d p2;
@@ -1445,8 +1442,7 @@ void  ChFi3d_Builder::PerformMoreThreeCorner(const Standard_Integer Jndex,
     if (dst<distmin) distmin=dst;
   }
 
-//  calcul des intersections entre les stripes et determination des parametres
-// sur chaque pcurve  
+//  calculate intersections between stripes and determine the parameters on each pcurve  
   Standard_Boolean inters=Standard_True;
   for (ic=0;ic<nedge;ic++) {
     Indices(nedge,ic,icplus,icmoins);
@@ -1461,8 +1457,7 @@ void  ChFi3d_Builder::PerformMoreThreeCorner(const Standard_Integer Jndex,
       Handle(ChFiDS_Stripe) strip;
       Standard_Real angedg;
       Standard_Integer iface;
-      // si les deux aretes sont tangentes on ne tente pas
-      // l'intersection (cts60046)
+      // if two edges are tangent the intersection is not attempted (cts60046)
       angedg=Abs(ChFi3d_AngleEdge(V1,TopoDS::Edge(Evive.Value(ic)),TopoDS::Edge(Evive.Value(icplus))));
       if (Abs(angedg-PI)>0.01)
        ok = ChFi3d_SearchFD(DStr,CD.Value(ic),CD.Value(icplus),sens.Value(ic),sens.Value(icplus),
@@ -1470,9 +1465,9 @@ void  ChFi3d_Builder::PerformMoreThreeCorner(const Standard_Integer Jndex,
                                  Index.Value(ic),Index.Value(icplus),
                                  face,sameside,jf1,jfp);
       else ok=Standard_False;
-      // s'il y a une intersection on regarde si la surfdata ou il y a l'intersection
-     // correspond a la premiere ou  a la derniere 
-     // si ce n'est pas le cas on enleve de la SD les surfdata  
+     // if there is an intersection it is checked if surfdata with the intersection
+     // corresponds to the first or the last 
+     // if this is not the case, the surfdata are removed from SD 
       
       if (ok) {
        if (i1!=Index.Value(ic) ){
@@ -1556,8 +1551,8 @@ void  ChFi3d_Builder::PerformMoreThreeCorner(const Standard_Integer Jndex,
     if (!oksea.Value(ic) ) inters=Standard_False; 
   }
 
-  // cas ou il n'y a pas que des intersections 
-  // les parametres sur les Pcurves sont les extremites  de la stripe
+  // case if there are only intersections 
+  // the parametres on Pcurves are the extremities of the stripe
   Standard_Real para;
   if (!inters) {
     for (ic=0;ic<nedge;ic++) {
@@ -1607,7 +1602,7 @@ void  ChFi3d_Builder::PerformMoreThreeCorner(const Standard_Integer Jndex,
       }
     }
       
-//  calcul  de la distance max du sommet a chaque point  
+//  calculate max distance to the top at each point  
     TColStd_Array1OfReal dist1(0,size);
     TColStd_Array1OfReal dist2(0,size);
     Standard_Real distance=0.;
@@ -1636,8 +1631,8 @@ void  ChFi3d_Builder::PerformMoreThreeCorner(const Standard_Integer Jndex,
       }
     }
 
-//  decalage des parametres  et elimination des points d'intersection
-//  trop proches du sommet 
+//  offset of parameters and removal of intersection point
+//  too close to the top 
 
     Standard_Real ec, dist; 
     if (!deuxconges && !deuxcgnontg)
@@ -1645,7 +1640,7 @@ void  ChFi3d_Builder::PerformMoreThreeCorner(const Standard_Integer Jndex,
       Indices(nedge,ic,icplus,icmoins);
       if (sharp.Value(ic) ) {
         BRepAdaptor_Curve C(TopoDS::Edge(Evive.Value(ic)));
-        // pour passer d'une distance 3d a une distance parametrique
+        // to pass from 3D distance to a parametric distance
        if (!tangentregul(ic))
          ec = distance*100*C.Resolution(0.01);
         else ec=0.0;
@@ -1657,7 +1652,7 @@ void  ChFi3d_Builder::PerformMoreThreeCorner(const Standard_Integer Jndex,
           para=p.Value(ic,icmoins) - ec;
          p.SetValue(ic,icmoins,para);
         }
-// il faudra etre sur de rester sur l'edge
+// it is necessary to be on to remain on the edge
        p.SetValue(ic,icplus, p.Value(ic,icmoins));
       }
       else if (!distmini) {
@@ -1701,7 +1696,7 @@ void  ChFi3d_Builder::PerformMoreThreeCorner(const Standard_Integer Jndex,
     }
   }
 
-// on tente de limiter l'arete vive par un des commonpoint
+// it is attempted to limit the edge by a commonpoint
 //
  
   Standard_Real tolcp=0;
@@ -1731,10 +1726,10 @@ void  ChFi3d_Builder::PerformMoreThreeCorner(const Standard_Integer Jndex,
       if (!sharp.Value(icmoins) &&  !sharp.Value(icplus))
        samecompoint=cp1.Point().Distance(cp2.Point())<tolapp;
       if ((dS<d1 || dS<d2)&& !samecompoint) {
-// on recule jusqu'aux Common Points
-// sans sortir de l'Edge ??
+// step back till Common Points
+// without leaving the Edge ??
        if (d2<d1 &&cp1.IsOnArc() ) {
-// on choisit cp1
+// cp1 is chosen
          p.SetValue(ic,icmoins, cp1.ParameterOnArc());
          p.SetValue(ic,icplus, p.Value(ic,icmoins));
          isfirst=(sens.Value(icplus)==1);
@@ -1744,7 +1739,7 @@ void  ChFi3d_Builder::PerformMoreThreeCorner(const Standard_Integer Jndex,
           if (cp1.Tolerance()>tolcp &&cp1.Tolerance()<1 ) tolcp=cp1.Tolerance();
        }
        else if( cp2.IsOnArc()){
-// on choisit cp2
+// cp2 is chosen
          p.SetValue(ic,icmoins, cp2.ParameterOnArc());
          p.SetValue(ic,icplus, p.Value(ic,icmoins));
          isfirst=(sens.Value(icmoins)==1);
@@ -1754,11 +1749,11 @@ void  ChFi3d_Builder::PerformMoreThreeCorner(const Standard_Integer Jndex,
        }
       }
       else {
-// on se recale sur un Common Point uniquement si on en est tres pres
+// step back till Common Point only if it is very close
        if (!sharp.Value(icplus)) {
          if ((cp1.Point().Distance(PE)<cp1.Tolerance() || 
                samecompoint || nconges==1) && cp1.IsOnArc()) {
-// on est tres proche de cp1
+// it is very close to cp1
            p.SetValue(ic,icmoins, cp1.ParameterOnArc());
             ponctuel.SetValue(ic,Standard_True);
            p.SetValue(ic,icplus, p.Value(ic,icmoins));
@@ -1772,7 +1767,7 @@ void  ChFi3d_Builder::PerformMoreThreeCorner(const Standard_Integer Jndex,
         if (!sharp.Value(icmoins)){
          if ((cp2.Point().Distance(PE)<cp2.Tolerance() || 
               samecompoint || nconges==1) && cp2.IsOnArc()) {
-// on est tres proche de cp2
+// it is very close to cp2
             ponctuel.SetValue(icmoins,Standard_True);
            p.SetValue(ic,icmoins, cp2.ParameterOnArc());
            p.SetValue(ic,icplus,p.Value(ic,icmoins));
@@ -1786,8 +1781,8 @@ void  ChFi3d_Builder::PerformMoreThreeCorner(const Standard_Integer Jndex,
     }
   }
 
-// dans le cas d'un bord libre  on prend le parametre correspondant 
-// au common point sur l'arete libre
+// in case of a free border the parameter corresponding 
+// to the common point on the free edge is chosen
 
   for (ic=0;ic<nedge;ic++) {
     if (TopoDS::Edge(Evive.Value(ic)).IsSame(edgelibre1) || 
@@ -1821,11 +1816,11 @@ void  ChFi3d_Builder::PerformMoreThreeCorner(const Standard_Integer Jndex,
     }   
   }
 
-// si ic est une arete de regularite, on cherche l'arete indfin qui ne 
-// soit pas une arete de regularite, on construit une courbe 3d 
-// entre les aretes (ou stripes ) icmoins et indfin. 
-// On projette ensuite cette courbe3d sur toutes les faces (nbface) qui
-// separent icmoins et indfin
+// if ic is a regular edge, one finds edge indfin which is not 
+// a regular edge, and construtc a curve 3d 
+// between edges (or stripes ) icmoins and indfin. 
+// Then this courbe3d is projected on all faces (nbface) that
+// separate icmoins and indfin
 #ifndef DEB
   Standard_Integer nbface = 0;
 #else
@@ -1922,7 +1917,7 @@ void  ChFi3d_Builder::PerformMoreThreeCorner(const Standard_Integer Jndex,
     }       
   }
 
- // cas ou  la courbe de raccord entre ic et icplus traverse plusieurs faces
+ // case when the conncting curve between ic and icplus crosses many faces
   
   TopTools_SequenceOfShape Ecom;
   TopTools_SequenceOfShape Eproj;
@@ -1984,9 +1979,9 @@ void  ChFi3d_Builder::PerformMoreThreeCorner(const Standard_Integer Jndex,
     }
   } 
 
-// cas ou deux conges ont les memes commonpoints 
-// on procede alors par intersection 
-// on verifie cependant que les extremites de l'intersection coincident avec les commonpoints
+// case when two fillets have the same commonpoints 
+// one continues then by intersection 
+// it is checked if the extremities of the intersection coincide with commonpoints
 
   Standard_Boolean intersection=Standard_False, introuve;
   if (nconges==2 && !deuxconges) { 
@@ -2034,10 +2029,10 @@ void  ChFi3d_Builder::PerformMoreThreeCorner(const Standard_Integer Jndex,
     }
   } 
 
-// declaration pour plate 
+// declaration for plate 
   GeomPlate_BuildPlateSurface PSurf(3,10,3,tol2d,tolesp,angular);
 
-// calcul des courbes sur surface  pour chaque   stripe 
+// calculation of curves on surface for each stripe 
   for (ic=0;ic<nedge;ic++) {
     gp_Pnt2d p2d1, p2d2;
     if (!sharp.Value(ic)) {
@@ -2050,7 +2045,7 @@ void  ChFi3d_Builder::PerformMoreThreeCorner(const Standard_Integer Jndex,
       indice= SurfIndex(CD, ic, i.Value(ic,icplus), ChFiSURFACE);
       Handle (GeomAdaptor_HSurface) Asurf =
        new GeomAdaptor_HSurface(DStr.Surface(indice).Surface());
-      // calcul de la courbe 2d  
+      // calculation of curve 2d  
       xdir= p2d2.X()-p2d1.X();  
       ydir= p2d2.Y()-p2d1.Y();
       Standard_Real l0 = sqrt(xdir*xdir+ ydir*ydir );
@@ -2066,7 +2061,7 @@ void  ChFi3d_Builder::PerformMoreThreeCorner(const Standard_Integer Jndex,
        new GeomPlate_CurveConstraint(HCons,Order.Value(ic),10,tolesp,angular,0.1);
       PSurf.Add(Cont);
       
-      // calcul des indices de points  et de  la courbe pour la DS         
+      // calculate indexes of points and of the curve for the DS         
       isfirst=(sens.Value(ic)==1);
       GeomLib::BuildCurve3d(tolapp,CurvOnS,CurvOnS.FirstParameter(),
                            CurvOnS.LastParameter(),Curv3d,maxapp,avedev);
@@ -2080,13 +2075,13 @@ void  ChFi3d_Builder::PerformMoreThreeCorner(const Standard_Integer Jndex,
       TopOpeBRepDS_Point tpoint2 (point2,maxapp);
       errapp.SetValue(ic,maxapp);
       if (ic==0) {
-// il faut creer les deux points
+// it is necessary to create two points
        indpoint.SetValue(ic,0,DStr.AddPoint(tpoint1));
        indpoint.SetValue(ic,1,DStr.AddPoint(tpoint2));
       }
       else {
-// les points existent peut-etre deja sur un conge 
-// (intersection precedente,...)
+// probably the points are already on the fillet 
+// (previous intersection...)
        trouve = Standard_False;
        for (ii=0;ii<ic&&(!trouve);ii++) {
          if (!sharp.Value(ii)) {
@@ -2114,7 +2109,7 @@ void  ChFi3d_Builder::PerformMoreThreeCorner(const Standard_Integer Jndex,
          indpoint.SetValue(ic,1,DStr.AddPoint(tpoint2));
       }
       
-      //   mise a jour de la stripe 
+      //   update of the stripe 
       isurf1=3-jf.Value(ic); isurf2=jf.Value(ic);
       if (isurf1==2)  CD.Value(ic)->SetOrientation(TopAbs_REVERSED,isfirst);
       CD.Value(ic)->SetCurve(indcurve3d.Value(n3d),isfirst);
@@ -2137,7 +2132,7 @@ void  ChFi3d_Builder::PerformMoreThreeCorner(const Standard_Integer Jndex,
     }
   }
       
-// calcul des indices de points pour les aretes vives   
+// calculate the indices of points for living edges    
   for (ic=0;ic<nedge;ic++) {
     if (sharp.Value(ic)) {
       Indices(nedge,ic,icplus,icmoins);
@@ -2156,7 +2151,7 @@ void  ChFi3d_Builder::PerformMoreThreeCorner(const Standard_Integer Jndex,
        cp = CD.Value(icplus)->SetOfSurfData()->Value(i.Value(icplus,ic))->
          ChangeVertex (isfirst,jfp);
        if ( cp.Point().Distance(PE) <= Max(1.e-4,tolcp)) {
-// l'arete a ete limitee par le 1er CommonPoint de CD[icplus]
+// edge was limited by the 1st CommonPoint of CD[icplus]
          indpoint.SetValue(ic,0,indpoint.Value(icplus,0));
          indpoint.SetValue(ic,1,indpoint.Value(icplus,0));
        }
@@ -2166,7 +2161,7 @@ void  ChFi3d_Builder::PerformMoreThreeCorner(const Standard_Integer Jndex,
        cp = CD.Value(icmoins)->SetOfSurfData()->Value(i.Value(icmoins,ic))->
          ChangeVertex (isfirst,jf.Value(icmoins));
        if ( cp.Point().Distance(PE) <= Max(1.e-4,tolcp)) {
-// l'arete a ete limitee par le 2eme CommonPoint de CD[icmoins]
+// edge was limited by the 2nd CommonPoint of CD[icmoins]
         if (indpoint.Value(ic,0)==0) { 
           indpoint.SetValue(ic,0, indpoint.Value(icmoins,1));
          indpoint.SetValue(ic,1, indpoint.Value(icmoins,1));
@@ -2180,8 +2175,8 @@ void  ChFi3d_Builder::PerformMoreThreeCorner(const Standard_Integer Jndex,
     }
   }
 
- // calcul des courbes intermediaires reliant  deux stripes dans le cas ou il n'y a pas 
-// d'intersection. La courbe peut etre une droite une projection ou un batten 
+// calculation of intermediary curves connecting two stripes in case if  
+// there is no intersection. The curve is a straight line, projection or batten 
   
   Standard_Boolean raccordbatten;
   if (!inters) {
@@ -2204,8 +2199,8 @@ void  ChFi3d_Builder::PerformMoreThreeCorner(const Standard_Integer Jndex,
        Handle (GeomAdaptor_HSurface) Asurf;
        Standard_Real u1bid,u2bid;
        
-       // recuperation de la premiere courbe 2d 
-       // et du premier point de raccordement
+       // return the 1st curve 2d 
+       // and the 1st connection point 
        if (sharp.Value(ic))
          curv2d1 = BRep_Tool::CurveOnSurface(TopoDS::Edge(Evive.Value(ic)),TopoDS::Face(Fvive.Value(ic,icplus)),
                                               u1bid,u2bid);
@@ -2231,7 +2226,7 @@ void  ChFi3d_Builder::PerformMoreThreeCorner(const Standard_Integer Jndex,
        if (tolu>tolv) ratio=tolu/tolv;
        else ratio=tolv/tolu;
         
-        // dans le cas d'une arete de couture on recadre les parametres 
+        // in case of a sewing edge the parameters are reframed 
         if (couture) {
          Standard_Boolean PI1=Standard_False, PI2=Standard_False;
          Standard_Real xx;
@@ -2257,7 +2252,7 @@ void  ChFi3d_Builder::PerformMoreThreeCorner(const Standard_Integer Jndex,
 
        Standard_Real l0 = sqrt(xdir*xdir+ ydir*ydir );
        if (l0<1.e-7|| ponctuel.Value(ic)) {
-// raccord inutile
+// unused connection
          n3d--;
           ponctuel.SetValue(ic,Standard_True);
           if (!deuxconges) {
@@ -2271,13 +2266,13 @@ void  ChFi3d_Builder::PerformMoreThreeCorner(const Standard_Integer Jndex,
           }
           }
        }
-       else {  // le raccord est soit une droite soit une projection soit un batten 
+       else {  // the connection is a straight line, projection or batten 
          if (ratio>10 && nconges==1) raccordbatten=Standard_True; 
          if (ratio>10 && raccordbatten) {
            CalculDroite(p2d1,xdir,ydir,pcurve);
             raccordbatten=Standard_False;
           }
-          else  if (!raccordbatten){  // on recupere les courbes projetees 
+          else  if (!raccordbatten){  // the projected curves are returned 
            if (regul.Value(ic)) {
                if (cproj2.Value(ic).IsNull()){ 
                    raccordbatten=Standard_True;
@@ -2304,7 +2299,7 @@ void  ChFi3d_Builder::PerformMoreThreeCorner(const Standard_Integer Jndex,
                             contraint2=Standard_True;
           if (raccordbatten) {
 #ifdef DEB
-           ChFi3d_InitChron(ch);// init performances pour les batten  
+           ChFi3d_InitChron(ch);// initial performances for  battens  
 #endif  
             Standard_Boolean inverseic,inverseicplus;
             if (sharp.Value(ic)) {
@@ -2330,17 +2325,17 @@ void  ChFi3d_Builder::PerformMoreThreeCorner(const Standard_Integer Jndex,
            CalculBatten(Asurf,TopoDS::Face(Fvive(ic,icplus)),xdir,ydir,p2d1,p2d2,contraint1,contraint2,curv2d1,curv2d2,p.Value(ic,icplus),
                         p.Value(icplus,ic),inverseic,inverseicplus,pcurve);
 #ifdef DEB
-           ChFi3d_ResultChron( ch,t_batten);  // result performances pour les batten 
+           ChFi3d_ResultChron( ch,t_batten);  // resulting performances for battens 
 #endif 
           }
 
-         // construction des frontieres pour Plate 
+         // construction of borders for Plate 
          Handle (Geom2dAdaptor_HCurve)  Acurv=new Geom2dAdaptor_HCurve(pcurve);
          Adaptor3d_CurveOnSurface  CurvOnS (Acurv,Asurf);
          Handle(Adaptor3d_HCurveOnSurface) HCons =
            new Adaptor3d_HCurveOnSurface(CurvOnS);
 
-         // on met des contraintes G1  si les aretes ic et icplus ne sont pas toutes les deux vives 
+         // constraints G1 are set if edges ic and icplus are not both alive 
 
 
          Order.SetValue(n3d,0);
@@ -2358,7 +2353,7 @@ void  ChFi3d_Builder::PerformMoreThreeCorner(const Standard_Integer Jndex,
            new GeomPlate_CurveConstraint(HCons,Order.Value(n3d),10,tolesp,angular,0.1);
          PSurf.Add(Cont);
 
-         //calcul de la courbe 3d si ce n'est pas une projection 
+         //calculation of curve 3d if it is not a projection 
          if (curveint.IsNull()) {
            GeomLib::BuildCurve3d(tolapp,CurvOnS,CurvOnS.FirstParameter(),
                                  CurvOnS.LastParameter(),Curv3d,maxapp1,avedev);
@@ -2367,13 +2362,13 @@ void  ChFi3d_Builder::PerformMoreThreeCorner(const Standard_Integer Jndex,
            curveint= new Geom_TrimmedCurve(Curv3d,pardeb,parfin);
          }
 
-         //stockage dans la DS  
+         //storage in the DS  
          TopOpeBRepDS_Curve tcurv3d( curveint,maxapp1);
          indcurve3d.SetValue(n3d, DStr.AddCurve(tcurv3d));
          pardeb=curveint->FirstParameter();
          parfin=curveint->LastParameter();
          if ( sharp.Value(icplus) && indpoint.Value(icplus,0) == 0) {
-           // il faut initialiser indpoint[icplus][0] et indpoint[icplus][1]
+           // it is necessary to initialize indpoint[icplus][0] and indpoint[icplus][1]
            gp_Pnt point2; 
            point2 =curveint->Value(parfin);
            TopOpeBRepDS_Point tpoint2 (point2,maxapp); 
@@ -2401,7 +2396,7 @@ void  ChFi3d_Builder::PerformMoreThreeCorner(const Standard_Integer Jndex,
            tpt2.Tolerance (tpt2.Tolerance()+maxapp1);     
          }
 
-       // calcul de l'orientation de la courbe  
+       // calculate orientation of the curve  
          TopAbs_Orientation orinterf; 
          if (!sharp.Value(ic)) {
               OrientationIcNonVive(CD.Value(ic),jf.Value(ic),i.Value(ic,icplus),sens.Value(ic),orinterf);
@@ -2415,11 +2410,11 @@ void  ChFi3d_Builder::PerformMoreThreeCorner(const Standard_Integer Jndex,
          Interfc=ChFi3d_FilCurveInDS(indcurve3d.Value(n3d),numfa.Value(ic,icplus),pcurve,orinterf);      
          DStr.ChangeShapeInterferences(numfa.Value(ic,icplus)).Append(Interfc);
        }
-       } // fin du traitement par arete
-    } // fin de la boucle sur les aretes
-  }  // fin du traitement pour les courbes intermediaires 
+       } // end of processing by edge 
+    } // end of the loop on edges 
+  }  // end of processing for intermediary curves 
         
-//  stockage dans la DS des courbes projetees sur plusieurs faces 
+//  storage in the DS of curves projected on several faces 
   for (ic=0;ic<nedge;ic++) {
     if (moresurf.Value(ic) ){
       TopoDS_Vertex Vf,Vl;
@@ -2495,7 +2490,7 @@ void  ChFi3d_Builder::PerformMoreThreeCorner(const Standard_Integer Jndex,
            }
          }
 
-         //calcul de l'orientation       
+         //calculation of the orientation        
          TopAbs_Orientation orinterf;
          if (P1.Distance(Pcom)>1.e-4) {
            if (orvt==TopAbs_FORWARD) {
@@ -2529,7 +2524,7 @@ void  ChFi3d_Builder::PerformMoreThreeCorner(const Standard_Integer Jndex,
     }                     
   }
             
-// cas ou les deux bords libres sont tangents 
+// case when two free borders are tangent
   if (droit)      
     for (ic=0;ic<nedge;ic++) {
       Handle(Geom_Curve) curve,ctrim,rcurve;
@@ -2602,19 +2597,19 @@ void  ChFi3d_Builder::PerformMoreThreeCorner(const Standard_Integer Jndex,
   } 
  
 #ifdef DEB
-  ChFi3d_InitChron(ch); // init performances pour plate 
+  ChFi3d_InitChron(ch); // init performances for plate 
 #endif
 
   PSurf.Perform();
 
 #ifdef DEB  
-  ChFi3d_ResultChron(ch, t_plate); //result performances pour plate 
+  ChFi3d_ResultChron(ch, t_plate); //result performances for plate 
 #endif 
 
-  // appel a l'approx  
+  // call of approx  
  
 #ifdef DEB
-  ChFi3d_InitChron(ch);  // init performances pour approxplate
+  ChFi3d_InitChron(ch);  // init performances for approxplate
 #endif
   if (PSurf.IsDone()) {
     Standard_Integer nbcarreau=9;
@@ -2636,10 +2631,10 @@ void  ChFi3d_Builder::PerformMoreThreeCorner(const Standard_Integer Jndex,
     apperror=Mapp.CriterionError()*coef;
 
 #ifdef DEB  
-  ChFi3d_ResultChron(ch, t_approxplate); // result performances pour approxplate
+  ChFi3d_ResultChron(ch, t_approxplate); // result performances for approxplate
 #endif
   
-//  Stockage de la surface plate  et des courbes  correspondantes dans la DS 
+//  Storage of the surface plate and corresponding curves in the DS 
 
     TopAbs_Orientation orplate,orsurfdata,orpcurve,orien;
 #ifdef DEB
@@ -2664,9 +2659,9 @@ void  ChFi3d_Builder::PerformMoreThreeCorner(const Standard_Integer Jndex,
     TopOpeBRepDS_ListOfInterference& SolidInterfs = 
       DStr.ChangeShapeInterferences(SolInd);
  
-// dans le cas ou l'on relie au sommet , il faut que les 
-// aretes  vives qui arrivent au sommet  soient enlevees de la DS. 
-// Pour cela on les stocke dans la DS avec leur orientation inverse 
+// in case when one rereads at top, it is necessary that 
+// alive edges that arrive at the top should be removed from the DS. 
+// For this they are stored in the DS with their inverted orientation 
     Standard_Integer nbedge;
     TopExp_Explorer ex;
     if (deuxconges)
@@ -2699,8 +2694,8 @@ void  ChFi3d_Builder::PerformMoreThreeCorner(const Standard_Integer Jndex,
        }
       }
     
-    // calcul de l'orientation de Plate  orplate  par rapport aux surfdata 
-    // on fait le calcul par rapport a la premiere la stripe 
+    // calculate orientation of Plate orplate corresponding to surfdata 
+    // calculation corresponding to the first stripe 
     Indices(nedge,0,icplus,icmoins);
     isfirst=(sens.Value(0)==1);
     const Handle(ChFiDS_SurfData)& Fd = 
@@ -2723,7 +2718,7 @@ void  ChFi3d_Builder::PerformMoreThreeCorner(const Standard_Integer Jndex,
 //     else  orplate=TopAbs::Reverse(orsurfdata);  
     orplate = PlateOrientation(Surf,PSurf.Curves2d(),SumFaceNormalAtV1);
     
-    //  creation de la solidinterderence pour Plate 
+    //  creation of solidinterderence for Plate 
     Handle(TopOpeBRepDS_SolidSurfaceInterference) SSI = 
       new TopOpeBRepDS_SolidSurfaceInterference(TopOpeBRepDS_Transition(orplate),
                                              TopOpeBRepDS_SOLID,
@@ -2732,9 +2727,9 @@ void  ChFi3d_Builder::PerformMoreThreeCorner(const Standard_Integer Jndex,
                                              Isurf);
     SolidInterfs.Append(SSI);
   
-  // calcul de l'orientation orien des pcurves de Plate
-  // les courbes allant de ic a icplus les pcurves de Plate 
-  // ont toutes la meme orientation  
+  // calculate orientation orien of pcurves of Plate
+  // the curves from ic to icplus the pcurves of Plate 
+  // all have the same orientation  
     Standard_Integer Ishape1,Ishape2; 
 #ifndef DEB
     TopAbs_Orientation trafil1 = TopAbs_FORWARD, trafil2 = TopAbs_FORWARD;
@@ -2822,7 +2817,7 @@ void  ChFi3d_Builder::PerformMoreThreeCorner(const Standard_Integer Jndex,
        Indices(nedge,ic,icplus,icmoins);
        
        isfirst=(sens.Value(ic)==1);
-      //   calcul des curves interference relatives aux stripes
+      //   calculate curves interference relative to stripes
       
        apperror=Mapp.CriterionError()*coef;
        pardeb=CD.Value(ic)->PCurve(isfirst)->FirstParameter();
@@ -2842,7 +2837,7 @@ void  ChFi3d_Builder::PerformMoreThreeCorner(const Standard_Integer Jndex,
        tpt1.Tolerance (tpt1.Tolerance()+apperror);
        tpt2.Tolerance (tpt2.Tolerance()+apperror ); 
        
-      // calcul de la surfaceinterference
+      // calculate surfaceinterference
        Interfc=ChFi3d_FilCurveInDS(indcurve3d.Value(n3d),Isurf,
                                  PSurf.Curves2d()->Value(n3d),orien);     
        DStr.ChangeSurfaceInterferences(Isurf).Append(Interfc);
@@ -2854,13 +2849,13 @@ void  ChFi3d_Builder::PerformMoreThreeCorner(const Standard_Integer Jndex,
       }
     }
 
-  // stockages des courbes de raccord
+  // storage of connection curve
 
     for (ic=0; ic<nedge;ic++) {
       Indices(nedge,ic,icplus,icmoins);
       if (!oksea.Value(ic)) {
        if (sharp.Value(ic) &&!deuxconges) {
-         // limitation de l'arete vive
+         // limitation of the alive edge 
          TopAbs_Orientation ori;
          gp_Pnt Pf,Pl,sommet1;
          TopoDS_Vertex Vd = TopExp::FirstVertex(TopoDS::Edge(Evive.Value(ic)));
@@ -2878,7 +2873,7 @@ void  ChFi3d_Builder::PerformMoreThreeCorner(const Standard_Integer Jndex,
        }
        
        if (!ponctuel.Value(ic) && !libre.Value(ic)) {
-         // raccord effectif
+         // actual connection
          if (!moresurf.Value(ic)){
            n3d++;
            TopOpeBRepDS_Curve& tcourb1 = DStr.ChangeCurve(indcurve3d.Value(n3d));
@@ -2903,7 +2898,7 @@ void  ChFi3d_Builder::PerformMoreThreeCorner(const Standard_Integer Jndex,
       }
     }
 
-  //stockage des courbes projetees sur plusieurs faces 
+  //storage of curves projected on several faces 
     for (ic=0; ic<nedge;ic++) {
       Indices(nedge,ic,icplus,icmoins);
       if (moresurf(ic))
@@ -2929,7 +2924,7 @@ void  ChFi3d_Builder::PerformMoreThreeCorner(const Standard_Integer Jndex,
        } 
     }
 
-  // stockage des courbes dans le cas de bords libres tangent
+  // storage of curves in case of tangent free border
     if (droit)
       for (ic=0; ic<nedge;ic++) {
        Indices(nedge,ic,icplus,icmoins);  
@@ -2945,14 +2940,14 @@ void  ChFi3d_Builder::PerformMoreThreeCorner(const Standard_Integer Jndex,
        }         
       } 
   }
-  else { // il n'y a qu'un resultat partiel 
+  else { // there is only one partial result 
     done=Standard_False;
     hasresult=Standard_True;
     for (ic=0; ic<nedge;ic++) {
       Indices(nedge,ic,icplus,icmoins);
       if (!oksea.Value(ic)) {
        if (sharp.Value(ic) &&!deuxconges) {
-         // limitation de l'arete vive
+         // limitation of the alive edge
          TopAbs_Orientation ori;
          gp_Pnt Pf,Pl,sommet1;
          TopoDS_Vertex Vd = TopExp::FirstVertex(TopoDS::Edge(Evive.Value(ic)));
index 1bddf77d1b4d5987985cad4cdf5a50a37dce0a6c..6d4ac674e5c37cdd41718e58ecc91e45fc1c93d4 100755 (executable)
@@ -57,7 +57,7 @@ extern void ChFi3d_CheckSurfData(const TopOpeBRepDS_DataStructure& DStr,
 #endif
 //=======================================================================
 //function : CompTra
-//purpose  : Calcule la Transition d'un point de debut.
+//purpose  : Calculate the Transition from start point.
 //=======================================================================
 
 static TopAbs_Orientation CompTra (const TopAbs_Orientation O1,
@@ -71,7 +71,7 @@ static TopAbs_Orientation CompTra (const TopAbs_Orientation O1,
 
 //=======================================================================
 //function : CompCommonpoint
-//purpose  : Remplit le commonpoint dans le cas d un vertex.
+//purpose  : Fill the commonpoint in case of a vertex.
 //=======================================================================
 
 static void CompCommonPoint (ChFiDS_CommonPoint& FilPoint, 
@@ -95,8 +95,7 @@ static void CompCommonPoint (ChFiDS_CommonPoint& FilPoint,
 
 //=======================================================================
 //function : CpInterf
-//purpose  : Construit une nouvelle SurfData partageant les faces,
-//           la surface et les courbes.  
+//purpose  : Construct new SurfData sharing faces, surface and curves.  
 //=======================================================================
 
 static ChFiDS_FaceInterference CpInterf (TopOpeBRepDS_DataStructure&    DStr,
@@ -121,8 +120,7 @@ static ChFiDS_FaceInterference CpInterf (TopOpeBRepDS_DataStructure&    DStr,
 
 //=======================================================================
 //function : CpSD
-//purpose  : Construit une nouvelle SurfData partageant les faces,
-//           la surface et les courbes.  
+//purpose  : Construct new SurfData sharing faces, surface and curves.  
 //=======================================================================
 
 static Handle(ChFiDS_SurfData) CpSD (      TopOpeBRepDS_DataStructure&         DStr,
@@ -185,7 +183,7 @@ static Standard_Real ComputeAbscissa(const BRepAdaptor_Curve& C,
   default:
     return 0;
   }    
-  Standard_NotImplemented::Raise("calcul abscisse non traite ");
+  Standard_NotImplemented::Raise("calculate abscisse non-processed");
   return 0.;
 }
 
@@ -215,7 +213,7 @@ static Standard_Real ParamOnSpine(const TopOpeBRepDS_DataStructure& DStr,
     return Nl;
   }
   else {
-    //construction du plan contenant la section de CD au parametre ptg.
+    //construction of the plane containing the section of CD with parameter ptg.
     gp_Pnt PP;
     gp_Vec VV;
     Handle(Geom_Curve) c3d;
@@ -232,7 +230,7 @@ static Standard_Real ParamOnSpine(const TopOpeBRepDS_DataStructure& DStr,
     Handle(GeomAdaptor_HSurface) 
       plan = new GeomAdaptor_HSurface(GeomAdaptor_Surface(pln));
     
-    // intersection plan spine.
+    // intersection plane spine.
     Standard_Boolean found = Standard_False;
     Standard_Boolean fini  = Standard_False;
     Standard_Integer sens = 1;
@@ -322,7 +320,7 @@ void ChFi3d_Builder::Trunc(const Handle(ChFiDS_SurfData)&    SD,
                           const Standard_Integer            cntlFiOnS)
 {
   TopOpeBRepDS_DataStructure& DStr = myDS->ChangeDS();
-  //On recupere points et tangentes sur edge et spine.
+  // Return points and tangents on edge and spine.
   Standard_Real wtg = SD->InterferenceOnS1().Parameter(isfirst);
   Standard_Boolean bid;
   Standard_Real wsp = ParamOnSpine(DStr,wtg,SD,Spine,iedge,0,0,tolesp,bid);
@@ -332,7 +330,7 @@ void ChFi3d_Builder::Trunc(const Handle(ChFiDS_SurfData)&    SD,
 
   
   const BRepAdaptor_Curve& bc = Spine->CurrentElementarySpine(iedge);
-//Modif contre Vertex isole sur spine
+//Modif against Vertex isolated on spine
   TopoDS_Edge support = bc.Edge();
   TopExp::Vertices(support,bout1,bout2);
   if (support.Orientation() == TopAbs_REVERSED) {
@@ -383,7 +381,7 @@ void ChFi3d_Builder::Trunc(const Handle(ChFiDS_SurfData)&    SD,
       }
     }
   }
-  //modif de lvt contre vertex isole
+  //modification of lvt against isolated vertex
   if(!tron && YaUnVoisin(Spine,iedge,ivois,isfirst)) {
     TopTools_ListIteratorOfListOfShape It;
     Standard_Integer nbed = -2;
@@ -503,7 +501,7 @@ static Standard_Boolean Tri(const Geom2dHatch_Hatcher& H,
   if (iSansFirst != 0) {
     if (iSansLast == 0) {
 #ifdef DEB
-      cout<<"Tri : Pb de Hatcher"<<endl;
+      cout<<"Parsing : Pb of Hatcher"<<endl;
 #endif
       return 0;
     }
@@ -561,7 +559,7 @@ static void FillSD (TopOpeBRepDS_DataStructure& DStr,
     CD->ChangeVertex(isFirst,ons).SetPoint(Surf->Value(x,y));
   }
   else {
-//Modification pour tromper les vertex deja existants
+//Modification to find already existing vertexes
     Standard_Integer LeType = 1;
     Standard_Integer NbInt = pPH->NbPoints();
     if (NbInt>1) {
@@ -626,8 +624,7 @@ static void FillSD (TopOpeBRepDS_DataStructure& DStr,
 
 //=======================================================================
 //function : SplitKPart
-//purpose  : Reconstitue les SurfData en fonction des restrictions
-//           des faces.
+//purpose  : Reconstruct SurfData depending on restrictions of faces.
 //=======================================================================
 
 Standard_Boolean ChFi3d_Builder::SplitKPart
@@ -642,7 +639,7 @@ Standard_Boolean ChFi3d_Builder::SplitKPart
    Standard_Boolean&                intf,
    Standard_Boolean&                intl)
 {
-  //On lance le hachurage de chacune des faces par les lignes de tangence.
+  //The the hatching of each faces is started by tangency lines.
   
   Standard_Real pitol = Precision::PIntersection();
   
@@ -654,7 +651,7 @@ Standard_Boolean ChFi3d_Builder::SplitKPart
 #endif
   Standard_Integer  Nb1 = 1,Nb2 = 1;
   
-  // Decoupe des lignes de tangence (hachurage).
+  // Cutting of tangency lines (hatching).
   Geom2dHatch_Intersector Inter(pitol,pitol);
   Geom2dHatch_Hatcher H1(Inter,tol2d,tolesp), H2(Inter,tol2d,tolesp);
   Standard_Integer ie;
@@ -678,7 +675,7 @@ Standard_Boolean ChFi3d_Builder::SplitKPart
     Nb1 = H1.NbDomains(iH1);
     if(Nb1 == 0) {
 #ifdef DEB
-      cout<<"SplitKPart : ligne de tangence en dehors de la face"<<endl;
+      cout<<"SplitKPart : tangency line out of the face"<<endl;
 #endif
       return Standard_False;
     }
@@ -704,13 +701,13 @@ Standard_Boolean ChFi3d_Builder::SplitKPart
     Nb2 = H2.NbDomains(iH2);
     if(Nb2 == 0) {
 #ifdef DEB
-      cout<<"SplitKPart : ligne de tangence en dehors de la face"<<endl;
+      cout<<"SplitKPart : tangency line out of the face"<<endl;
 #endif
       return Standard_False;
     }
   }
 
-  //Recuperation des vertex deb et fin de Spine
+  //Return start and end vertexes of the Spine
   TopoDS_Vertex bout1,bout2,boutemp;
   const BRepAdaptor_Curve& bc = Spine->CurrentElementarySpine(Iedge);
   TopoDS_Edge support = bc.Edge();
@@ -721,7 +718,7 @@ Standard_Boolean ChFi3d_Builder::SplitKPart
     bout1 = boutemp;
   }
   
-  // Recuperation des faces.
+  // Return faces.
   TopoDS_Face F1, F2;
   Handle(BRepAdaptor_HSurface) 
     bhs = Handle(BRepAdaptor_HSurface)::DownCast(S1);
@@ -730,7 +727,7 @@ Standard_Boolean ChFi3d_Builder::SplitKPart
   if(!bhs.IsNull()) F2 = bhs->ChangeSurface().Face();
   TopoDS_Face FBID;
   
-  // Restriction des SurfDatas par les lignes decoupees.
+  // Restriction of SurfDatas by cut lines.
   TopOpeBRepDS_DataStructure& DStr = myDS->ChangeDS();
   Handle(ChFiDS_SurfData) CD = Data;
   CD->ChangeIndexOfS1(DStr.AddShape(F1));
@@ -746,22 +743,21 @@ Standard_Boolean ChFi3d_Builder::SplitKPart
   
   if (C1.IsNull() && C2.IsNull()) {
 #ifdef DEB
-    cout<<"SplitData : 2 lignes nulles hachurage impossible"<<endl;
+    cout<<"SplitData : 2 zero lines hatching impossible"<<endl;
 #endif
     return Standard_False;
   }
   else if (C1.IsNull() || (Nb1 == 1 && !H1.Domain(iH1,1).HasFirstPoint())) {   
-    // On verifie que le point 2d de l arete degeneree est bien dans
-    // la face.
+    // It is checked if the point 2d of the degenerated edge is in the face.
     if (C1.IsNull()) {
       gp_Pnt2d p2d1 = CD->Get2dPoints(0,1);
       TopAbs_State situ = I1->Classify(p2d1,1.e-8,0);
       if(situ == TopAbs_OUT) return Standard_False;
     }
 
-    // Tri des domaines par parametres croissants,
+    // Parsing of domains by increasing parameters,
     if(!Tri(H2,iH2,Ind2,wref,0.,pitol,Nb2)) return 0;
-    // Remplissage des SurfData
+    // Filling of SurfData
     for(Standard_Integer i = 1; i <= Nb2; i++) {
       const HatchGen_Domain& Dom2 = H2.Domain(iH2,Ind2(i));
       FillSD(DStr,CD,M2,Dom2,Dom2.FirstPoint().Parameter(),1,2,pitol,bout1);
@@ -787,17 +783,16 @@ Standard_Boolean ChFi3d_Builder::SplitKPart
     }
   }
   else if (C2.IsNull() || (Nb2 == 1 && !H2.Domain(iH2,1).HasFirstPoint())) { 
-    // On verifie que le point 2d de l arete degeneree est bien dans
-    // la face.
+    // It is checked if the point 2d of the degenerated is in the face.
     if (C2.IsNull()) {
       gp_Pnt2d p2d2 = CD->Get2dPoints(0,2);
       TopAbs_State situ = I2->Classify(p2d2,1.e-8,0);
       if(situ == TopAbs_OUT) return Standard_False;
     }
 
-    // Tri des domaines par parametres croissants,
+    // Parsing of domains by increasing parameters,
     if(!Tri(H1,iH1,Ind1,wref,0.,pitol,Nb1)) return 0;
-    // Remplissage des SurfData
+    // Filling of SurfData
     for(Standard_Integer i = 1; i <= Nb1; i++) {
       const HatchGen_Domain& Dom1 = H1.Domain(iH1,Ind1(i));
       FillSD(DStr,CD,M1,Dom1,Dom1.FirstPoint().Parameter(),1,1,pitol,bout1);
@@ -824,9 +819,8 @@ Standard_Boolean ChFi3d_Builder::SplitKPart
   }
   else {
     
-    // Tri des domaines par parametres croissants,
-    // lorsqu il y a un cercle 2d sur un plan, on 
-    // se cale sur la ligne 2d d en face.
+    // Parsing of domains by increasing parameters,
+    // if there is a 2d circle on a plane, one goes on 2D line of opposite face.
     Standard_Real period1 = 0., period2 = 0.;
     if(ll1.IsPeriodic()) {
       if(!Tri(H2,iH2,Ind2,wref,0.,pitol,Nb2)) return 0;
@@ -840,7 +834,7 @@ Standard_Boolean ChFi3d_Builder::SplitKPart
     }
     
     
-    // Remplissage des SurfData
+    // Filling of SurfData
     TColStd_SequenceOfInteger ion1, ion2;
     for(Standard_Integer i = 1; i <= Nb1; i++) {
       const HatchGen_Domain& Dom1 = H1.Domain(iH1,Ind1(i));
@@ -878,15 +872,15 @@ Standard_Boolean ChFi3d_Builder::SplitKPart
       }
     }
     
-    // Traitement des prolongements.
-    // Ne pas tronquer, sinon, pb d'intersection pour les PerformCorner
+    // Processing of extensions.
+    // Do not truncate, otherwise, problems of intersection for PerformCorner
     // -----------------------------------------------------------------
-    // A l'appel de SplitKPart dans PerformSetOfKPart, les spines ont ete
-    // justement, prolongees aux extremites par les methodes Extent pour permettre 
-    // les intersections. On conserve les extensions des SurfData.
+    // After call of SplitKPart in PerformSetOfKPart, spines have been 
+    // extended to the extremities by methods Extent to permit 
+    // intersections. Extensions of  SurfData are preserved.
     
     if(intf) {
-      // On est en debut de spine
+      // We are at the beginning of the spine
       //-------------------------
       Standard_Integer ifirst = 0;
       Standard_Real dist = RealLast(), ptg, dsp; 
@@ -978,7 +972,7 @@ Standard_Boolean ChFi3d_Builder::SplitKPart
       }
     }
     if(intl) {
-      // on est en fin de spine
+      // we are at the end of the spine
       //-----------------------
       Standard_Integer ilast = 0;
       Standard_Real dist = RealLast(), ptg, dsp; 
@@ -1075,7 +1069,7 @@ Standard_Boolean ChFi3d_Builder::SplitKPart
   }
 
   if(!intf) { 
-    // On vire les SurfData entierement avant le debut de l'arete.
+    // SurfData are entirely suspended before the beginning of the edge.
     Standard_Boolean okdoc = SetData.IsEmpty();
     Standard_Integer i = 1;
     while(!okdoc) {
@@ -1088,7 +1082,7 @@ Standard_Boolean ChFi3d_Builder::SplitKPart
     }
   }
   if(!intl) { 
-    // On vire les SurfData entierement apres la fin de l'arete.
+    // SurfData are entirely suspended after the end of the edge.
     Standard_Boolean okdoc = SetData.IsEmpty();
     Standard_Integer i = 1;
     while(!okdoc) {
@@ -1102,7 +1096,7 @@ Standard_Boolean ChFi3d_Builder::SplitKPart
       okdoc = (SetData.IsEmpty() || i > SetData.Length());
     }
   }
-  // Ajout des parametres de la spine sur les SurfDatas.
+  // Add parameters of the spine on SurfDatas.
 //  for (Standard_Integer i = 1; i <= SetData.Length(); i++) {
   Standard_Integer i;
   for ( i = 1; i <= SetData.Length(); i++) {
@@ -1125,11 +1119,11 @@ Standard_Boolean ChFi3d_Builder::SplitKPart
   }
 
   if (intf && !SetData.IsEmpty()) {
-    // prolongement de la spine par extension
+    // extension of the spine
     Spine->SetFirstParameter(SetData.First()->FirstSpineParam());
   }
   else {
-    // Troncature au debut.
+    // Trnncation at the beginning.
     for (i = 1; i <= SetData.Length(); i++) {
       Handle(ChFiDS_SurfData)& CD8 = SetData.ChangeValue(i);
       Standard_Real fsp = CD8->FirstSpineParam();
@@ -1151,11 +1145,11 @@ Standard_Boolean ChFi3d_Builder::SplitKPart
 
 
   if (intl && !SetData.IsEmpty()) {
-    // prolongement de la spine par extension
+    // extension of the spine
     Spine->SetLastParameter(SetData.Last()->LastSpineParam()); 
   }
   else {
-    // Troncature a la fin.
+    // Truncation at the end.
     for (i = SetData.Length(); i >= 1; i--) {
       Handle(ChFiDS_SurfData)& CD9 = SetData.ChangeValue(i);
       Standard_Real fsp = CD9->FirstSpineParam();
index 9aba487bb4d9698be2954db40bf1347e24963baf..49537439fdbdf2886e7ec55d491ddc076b147673 100755 (executable)
@@ -80,10 +80,10 @@ void SearchCommonFaces(const ChFiDS_Map& EFMap,
 
 //=======================================================================
 //function : ExtentSpinesOnCommonFace
-//purpose  : Etend les spines des deux chanfreins de distances dis1,dis2
-//           sur leur face commune
-//           Les deux lignes guides Spine1 et Spine2 qui se coupent en V
-//           isfirst(i) = False si Spine(i) est orientee vers V (i = 1,2)
+//purpose  : Extend spines of two chamfers by distance dis1,dis2
+//           on their common face
+//           Two guide lines Spine1 and Spine2 cross in V
+//           isfirst(i) = False if Spine(i) is oriented to V (i = 1,2)
 //=======================================================================
 
 void ExtentSpineOnCommonFace(Handle(ChFiDS_Spine)&  Spine1,
@@ -96,8 +96,8 @@ void ExtentSpineOnCommonFace(Handle(ChFiDS_Spine)&  Spine1,
 {                
   Standard_Real tolesp = 1.e-7;
 
-    // On determine alpha, l'angle d'ouverture entre les
-    // tangentes des deux lignes guides en V
+    // alpha, the opening angle between two 
+    // tangents of two guidelines in V is found
     Standard_Real tga1,tga2;
     Standard_Real d1plus = 0., d2plus = 0.;
 
@@ -129,7 +129,7 @@ void ExtentSpineOnCommonFace(Handle(ChFiDS_Spine)&  Spine1,
       d2plus = dis2/tga2;
     }
 
-    //on prolonge avec les distances calculees
+    //extension by the calculated distance
     if (d1plus > 0.) {
       d1plus *= 3.;
       if (isfirst1){
@@ -286,7 +286,7 @@ void  ChFi3d_ChBuilder::SetDist(const Standard_Real    Dis,
 
     }
     else
-      Standard_DomainError::Raise("la face n'est commune a aucune des edges du contour");
+      Standard_DomainError::Raise("the face is not common to any of edges of the contour");
 
   }
 }
@@ -425,7 +425,7 @@ void  ChFi3d_ChBuilder::SetDists(const Standard_Real    Dis1,
       else csp->SetDists(Dis1,Dis2);
     }
     else
-      Standard_DomainError::Raise("la face n'est commune a aucune des edges du contour");
+      Standard_DomainError::Raise("the face is not common to any of edges of the contour");
 
   }
 }
@@ -574,7 +574,7 @@ void  ChFi3d_ChBuilder::SetDistAngle(const Standard_Real    Dis,
       }
     }
     else
-      Standard_DomainError::Raise("la face n'est commune a aucune des edges du contour");
+      Standard_DomainError::Raise("the face is not common to any edges of the contour");
 
   }
 }
@@ -647,11 +647,11 @@ void ChFi3d_ChBuilder::Simulate (const Standard_Integer IC)
 #ifdef DEB
   if(ChFi3d_GettraceCHRON()){
     simul.Stop();
-    cout<<"Temps total simulation : ";
+    cout<<"Total simulation time : ";
     simul.Show();
-    cout<<"dont temps construction spine : ";
+    cout<<"Spine construction time : ";
     elspine.Show();
-    cout<<"et temps cheminement : ";
+    cout<<"and progression time : ";
     chemine.Show();
   }
 #endif
@@ -798,19 +798,19 @@ ChFi3d_ChBuilder::SimulSurf(Handle(ChFiDS_SurfData)&            Data,
   
   if (chsp.IsNull()) 
     Standard_ConstructionError::Raise
-      ("SimulSurf : la spine n est pas celle d un chanfrein");
+      ("SimulSurf : this is not the spine of a chamfer");
 
 
   Standard_Real radius;
-  // Des parametres souples!!!
+  // Flexible parameters!
   Standard_Real la = HGuide->LastParameter(), fi = HGuide->FirstParameter();
   Standard_Real longueur = la - fi;
   Standard_Real MaxStep = longueur * 0.05;
   Standard_Real radiusspine = 0, locfleche, w;
   gp_Pnt Pbid;
   gp_Vec d1,d2;
-  // Puisque l ElSpine est parametree par une quasi-abscissecurviligne,
-  // on evalue le rayon min par 1/D2 max;
+  // As ElSpine is parameterized by a curvilinear quasi-abscissa,
+  // the min radius is estimated as 1/D2 max;
   //for(Standard_Integer i = 0; i <= 20; i++){
   Standard_Integer i;
   for( i = 0; i <= 20; i++){ 
@@ -831,7 +831,7 @@ ChFi3d_ChBuilder::SimulSurf(Handle(ChFiDS_SurfData)&            Data,
     Standard_Real dis;
     chsp->GetDist(dis);
     radius = Max(dis, radiusspine);
-    locfleche = radius*1.e-2; //critere graphique
+    locfleche = radius*1.e-2; //graphic criterion
 
     BRepBlend_Chamfer Func(S1,S2,HGuide);
     BRepBlend_ChamfInv FInv(S1,S2,HGuide); 
@@ -911,7 +911,7 @@ ChFi3d_ChBuilder::SimulSurf(Handle(ChFiDS_SurfData)&            Data,
     chsp->Dists(dis1, dis2);
     radius = Max(dis1, dis2);
     radius = Max(radius, radiusspine);
-    locfleche = radius*1.e-2; //critere graphique
+    locfleche = radius*1.e-2; //graphic criterion
 
     BRepBlend_Chamfer Func(S1,S2,HGuide);
     BRepBlend_ChamfInv FInv(S1,S2,HGuide); 
@@ -992,7 +992,7 @@ ChFi3d_ChBuilder::SimulSurf(Handle(ChFiDS_SurfData)&            Data,
     chsp->GetDistAngle(dis, angle, disonF1);
     radius = Max(dis, dis * tan(angle));
     radius = Max(radius, radiusspine);
-    locfleche = radius*1.e-2; //critere graphique
+    locfleche = radius*1.e-2; //graphic criterion
 
     Standard_Integer Ch = FindChoiceDistAngle(Choix, disonF1);
 
@@ -1271,7 +1271,7 @@ Standard_Boolean ChFi3d_ChBuilder::PerformFirstSection
   
   if (chsp.IsNull()) 
     Standard_ConstructionError::Raise
-      ("PerformSurf : la spine n est pas celle d un chanfrein");
+      ("PerformSurf : this is not the spine of a chamfer");
 
   Standard_Real TolGuide = HGuide->Resolution(tolesp) ;
 
@@ -1284,7 +1284,7 @@ Standard_Boolean ChFi3d_ChBuilder::PerformFirstSection
     Func.Set(dis,dis,Choix);
     BRepBlend_Walking TheWalk(S1,S2,I1,I2);
     
-    //calcul d'une solution de depart approchee
+    //calculate an approximate starting solution
     gp_Vec TgF, TgL, tmp1, tmp2, d1gui;
     gp_Pnt pt1, pt2, ptgui;
     gp_XYZ temp;
@@ -1341,7 +1341,7 @@ Standard_Boolean ChFi3d_ChBuilder::PerformFirstSection
     Func.Set(dis1,dis2,Choix);
     BRepBlend_Walking TheWalk(S1,S2,I1,I2);
     
-    //calcul d'une solution de depart approchee
+    //calculate an approximate starting solution
     gp_Vec TgF, TgL, tmp1, tmp2, d1gui;
     gp_Pnt pt1, pt2, ptgui;
     gp_XYZ temp;
@@ -1402,7 +1402,7 @@ Standard_Boolean ChFi3d_ChBuilder::PerformFirstSection
       Func.Set(dis1, angle, Ch);
       BRepBlend_Walking TheWalk(S1,S2,I1,I2);
     
-      //calcul d'une solution de depart approchee
+    //calculate an approximate starting solution
       gp_Vec TgF, TgL, tmp1, tmp2, d1gui;
       gp_Pnt pt1, pt2, ptgui;
       gp_XYZ temp;
@@ -1464,7 +1464,7 @@ Standard_Boolean ChFi3d_ChBuilder::PerformFirstSection
       Func.Set(dis1, angle, Ch);
       BRepBlend_Walking TheWalk(S2,S1,I2,I1);
     
-      //calcul d'une solution de depart approchee
+    //calculate an approximate starting solution
       gp_Vec TgF, TgL, tmp1, tmp2, d1gui;
       gp_Pnt pt1, pt2, ptgui;
       gp_XYZ temp;
@@ -1573,7 +1573,7 @@ ChFi3d_ChBuilder::PerformSurf(ChFiDS_SequenceOfSurfData&          SeqData,
   
   if (chsp.IsNull()) 
     Standard_ConstructionError::Raise
-      ("PerformSurf : la spine n est pas celle d un chanfrein");
+      ("PerformSurf : this is not the spine of a chamfer");
   
   Standard_Boolean gd1,gd2,gf1,gf2;
   Handle(BRepBlend_Line) lin;
@@ -1596,7 +1596,7 @@ ChFi3d_ChBuilder::PerformSurf(ChFiDS_SequenceOfSurfData&          SeqData,
                       gd1,gd2,gf1,gf2,RecOnS1,RecOnS2);
     if(!done) return Standard_False; // ratrappage possible PMN 14/05/1998
     done = CompleteData(Data,Func,lin,S1,S2,Or,gd1,gd2,gf1,gf2);
-    if(!done) Standard_Failure::Raise("PerformSurf : Echec approximation!");
+    if(!done) Standard_Failure::Raise("PerformSurf : Fail of approximation!");
   }
   else if (chsp->IsChamfer() == ChFiDS_TwoDist) {
     BRepBlend_Chamfer  Func(S1,S2,HGuide);
@@ -1612,7 +1612,7 @@ ChFi3d_ChBuilder::PerformSurf(ChFiDS_SequenceOfSurfData&          SeqData,
                       gd1,gd2,gf1,gf2,RecOnS1,RecOnS2);
     if(!done) return Standard_False; // ratrappage possible PMN 14/05/1998
     done = CompleteData(Data,Func,lin,S1,S2,Or,gd1,gd2,gf1,gf2);
-    if(!done) Standard_Failure::Raise("PerformSurf : Echec approximation!");
+    if(!done) Standard_Failure::Raise("PerformSurf : Fail of approximation!");
   }
   else {
     Standard_Real d1, angle;
@@ -1634,7 +1634,7 @@ ChFi3d_ChBuilder::PerformSurf(ChFiDS_SequenceOfSurfData&          SeqData,
 
       if(!done) return Standard_False; // ratrappage possible PMN 14/05/1998
       done = CompleteData(Data,Func,lin,S1,S2,Or,gd1,gd2,gf1,gf2);
-      if(!done) Standard_Failure::Raise("PerformSurf : Echec approximation!");
+      if(!done) Standard_Failure::Raise("PerformSurf : Fail of approximation!");
     }
     else {
       Standard_Real Rtemp;
@@ -1665,7 +1665,7 @@ ChFi3d_ChBuilder::PerformSurf(ChFiDS_SequenceOfSurfData&          SeqData,
       Data->ChangeVertexLastOnS2() = tmp;
       if(!done) return Standard_False; // ratrappage possible PMN 14/05/1998
       done = CompleteData(Data,Func,lin,S1,S2,Or2,gd1,gd2,gf1,gf2, Standard_True);
-      if(!done) Standard_Failure::Raise("PerformSurf : Echec approximation!");
+      if(!done) Standard_Failure::Raise("PerformSurf : Fail of approximation!");
     }      
 
   }
@@ -1766,7 +1766,7 @@ void  ChFi3d_ChBuilder::PerformSurf(ChFiDS_SequenceOfSurfData&          ,
 //=======================================================================
 //function : ExtentOneCorner
 //purpose  : extends the spine of the stripe S on the side of the vertex V
-// PMN : 28/11/97 : Reprend le code des conges, et cela semble marcher mieux...
+// PMN : 28/11/97 : Reproduces the code of fillets, and it seems to work better...
 //=======================================================================
 
 void ChFi3d_ChBuilder::ExtentOneCorner(const TopoDS_Vertex&          V,
@@ -1776,7 +1776,7 @@ void ChFi3d_ChBuilder::ExtentOneCorner(const TopoDS_Vertex&          V,
   Standard_Real         Coeff = 0.5;
   Handle(ChFiDS_Spine)  Spine = S->Spine();
   ChFi3d_IndexOfSurfData(V,S,Sens);
-  if (Spine->IsTangencyExtremity((Sens == 1))) return; //Pas de prolongement sur queue
+  if (Spine->IsTangencyExtremity((Sens == 1))) return; //No extension on queue
   Standard_Real dU = Spine->LastParameter(Spine->NbEdges());
   if (Sens == 1) {
     Spine->SetFirstParameter(-dU*Coeff);
@@ -1939,7 +1939,7 @@ void ChFi3d_ChBuilder::ExtentTwoCorner(const TopoDS_Vertex&        V,
     }
     else {
       chsp[i]->GetDistAngle(tmd, tmpang, disonF1);
-      // on fait un calcul grossier de la distance 2
+      // an approximate calculation of distance 2 is done
       if (disonF1) {
        d[j]   = tmd;
        d[j+1] = tmd * tan(tmpang); 
@@ -1983,8 +1983,8 @@ void ChFi3d_ChBuilder::ExtentTwoCorner(const TopoDS_Vertex&        V,
   
   if (State[0] == ChFiDS_AllSame ){
 /*      
-   // On cherche l'intersection du chanfrein le plus gros (sur l'arete incidente)
-    // avec la face en bout
+   // The greatest intersection of the chamfer is found (on the incident edge)
+    // with the face at end
     i = 0;
     j = 1;
     if(dOnArc[j] > dOnArc[i]) {
@@ -1994,7 +1994,7 @@ void ChFi3d_ChBuilder::ExtentTwoCorner(const TopoDS_Vertex&        V,
     }
     ExtentOneCorner( V, Stripe[i] ); */
 
-    // il faut que les deux chanfreins touchent la face en bout 
+    // it is necessary that two chamfers touch the face at end 
     for (j=0; j<2; j++)
       ExtentOneCorner( V, Stripe[j] ); 
   }
@@ -2066,7 +2066,7 @@ void ChFi3d_ChBuilder::ExtentThreeCorner(const TopoDS_Vertex& V,
     }
     else {
       chsp[i]->GetDistAngle(tmd, tmpangle, disonF1);
-      // on fait un calcul grossier de la distance 2 
+      // an approximate calculation of distance 2 is done
 
       if (disonF1) {
        d[i][0] = tmd;
@@ -2080,8 +2080,8 @@ void ChFi3d_ChBuilder::ExtentThreeCorner(const TopoDS_Vertex& V,
   }
 
 
-  // dis[i][j] la distance du chanfrein i sur la face commune avec 
-  // le chanfrein j
+  // dis[i][j] distance from chamfer i on the common face with 
+  // chamfer j
   Standard_Real dis[3][3];
 
   for (i=0; i<3; i++) {
@@ -2176,8 +2176,7 @@ void ChFi3d_ChBuilder::SetRegul()
 
 //=======================================================================
 //function : ConexFaces
-//purpose  : F1, F2 connexes a l'edge telles que F1 corresponde
-//           a dis
+//purpose  : F1, F2 are connected to edge so that F1 corresponds to distance
 //=======================================================================
 
 void ChFi3d_ChBuilder::ConexFaces (const Handle(ChFiDS_Spine)&  Spine,
@@ -2190,7 +2189,7 @@ void ChFi3d_ChBuilder::ConexFaces (const Handle(ChFiDS_Spine)&  Spine,
   Standard_Integer RC,Choix;
   TopoDS_Face f1,f2,ff1,ff2;
 
-  //calcul de l'orientation de reference
+  //calculate the reference orientation
   // ChFi3d_Builder::StripeOrientations is private
   SearchCommonFaces(myEFMap,Spine->Edges(1),ff1,ff2);
   ff1.Orientation(TopAbs_FORWARD);
@@ -2199,7 +2198,7 @@ void ChFi3d_ChBuilder::ConexFaces (const Handle(ChFiDS_Spine)&  Spine,
   Sb2.Initialize(ff2);
   RC = ChFi3d::ConcaveSide(Sb1,Sb2,Spine->Edges(1),tmp1,tmp2);
                                  
-  //calcul des faces connexes
+  //calculate the connected faces
   SearchCommonFaces(myEFMap,Spine->Edges(IEdge),f1,f2);
   Sb1.Initialize(f1);
   Sb2.Initialize(f2);
@@ -2218,8 +2217,7 @@ void ChFi3d_ChBuilder::ConexFaces (const Handle(ChFiDS_Spine)&  Spine,
 
 //=======================================================================
 //function : FindChoiceDistAngle
-//purpose  : F1, F2 connexes a l'edge telles que F1 corresponde
-//           a dis
+//purpose  : F1, F2 connected to the edge so that F1 corresponds to distance
 //=======================================================================
 
 Standard_Integer ChFi3d_ChBuilder::FindChoiceDistAngle(const Standard_Integer Choice,
index d8a87ca3cae7d4077901ec5e2b62cb11e6eda8bc..c61ab92f60c8a454783508a2f0db7730f2e60662 100755 (executable)
@@ -33,7 +33,7 @@ OSD_Chronometer simul,elspine,chemine;
 #endif
 
 //*********************************
-// chronometrage de la simulation
+// timing of the simulation
 //*********************************
 
 static Standard_Boolean ChFi3d_traceCHRON = Standard_False;
@@ -43,7 +43,7 @@ Standard_Boolean ChFi3d_GettraceCHRON()
 { return ChFi3d_traceCHRON; }
 
 //*********************************
-// trace d une ligne de cheminement
+// trace a line of path
 //*********************************
 
 static Standard_Boolean ChFi3d_traceDRAWWALK = Standard_False;
@@ -53,7 +53,7 @@ Standard_Boolean ChFi3d_GettraceDRAWWALK()
 { return ChFi3d_traceDRAWWALK; }
 
 //**********************************
-// trace d une ligne d intersection
+// trace a line of intersection
 //**********************************
 
 static Standard_Boolean ChFi3d_traceDRAWINT = Standard_False;
@@ -63,7 +63,7 @@ Standard_Boolean ChFi3d_GettraceDRAWINT()
 { return ChFi3d_traceDRAWINT; }
 
 //*************************************************
-// recuperation des surfaces des conges approximes.
+// return surfaces of approximated fillets.
 //*************************************************
 
 static Standard_Boolean ChFi3d_traceDRAWFIL = Standard_False;
@@ -74,7 +74,7 @@ Standard_Boolean ChFi3d_GettraceDRAWFIL()
 
 
 //*************************************************
-// recuperation des faces elargie pour le cheminement.
+// return extended faces for the path.
 //*************************************************
 
 static Standard_Boolean ChFi3d_traceDRAWENLARGE = Standard_False;
@@ -84,7 +84,7 @@ Standard_Boolean ChFi3d_GettraceDRAWENLARGE()
 { return ChFi3d_traceDRAWENLARGE; }
 
 //*************************************************
-// recuperation de la ligne guide pour les coins triples.
+// return the guideline for the triple corners.
 //*************************************************
 
 static Standard_Boolean ChFi3d_traceDRAWSPINE = Standard_False;
@@ -94,7 +94,7 @@ Standard_Boolean ChFi3d_GettraceDRAWSPINE()
 { return ChFi3d_traceDRAWSPINE; }
 
 //*************************************************
-// set du type de ligne guide pour les coins triples.
+// set the type of guideline for the triple corners.
 //*************************************************
 
 void ChFi3d_SetcontextSPINEBEZIER(const Standard_Boolean b); 
@@ -135,7 +135,7 @@ Standard_Boolean ChFi3d_GetcontextSPINECE()
 { return ChFi3d_contextSPINECE; }
 
 //*************************************************
-// Passage force par le cheminement pour les KPart
+// Forced passage by the path for KPart
 //*************************************************
 static Standard_Boolean ChFi3d_contextFORCEBLEND = Standard_False;
 void ChFi3d_SetcontextFORCEBLEND(const Standard_Boolean b) 
@@ -150,7 +150,7 @@ Standard_Boolean ChFi3d_GetcontextFORCEFILLING()
 { return ChFi3d_contextFORCEFILLING; }
 
 //*************************************************
-// Pas d optimisation pour les approx
+// No optimization for approx
 //*************************************************
 static Standard_Boolean ChFi3d_contextNOOPT = Standard_False;
 void ChFi3d_SetcontextNOOPT(const Standard_Boolean b) 
@@ -159,7 +159,7 @@ Standard_Boolean ChFi3d_GetcontextNOOPT()
 { return ChFi3d_contextNOOPT; }
 
 // ***********************************************
-//    initialisation et resultat d'un chrono 
+//    initialization and result of a chrono 
 //************************************************
 Standard_EXPORT void ChFi3d_InitChron(OSD_Chronometer& ch)
 { 
@@ -179,9 +179,8 @@ Standard_EXPORT void ChFi3d_ResultChron( OSD_Chronometer & ch,
 
 //==============================================================
 // function : ChFi3d_CheckSurfData
-// purpose  : fonction permettant de tracer une SurfData afin
-//            de verifier la bonne construction de tous les 
-//            elements, notamment des pcurves
+// purpose  : function allows to trace SurfData to check
+//            construction of all elements, namely pcurves
 //==============================================================
 #ifdef DRAW
 static Standard_Integer NbSD = 0; 
@@ -189,8 +188,8 @@ static Standard_Integer NbSD = 0;
 void ChFi3d_CheckSurfData(const TopOpeBRepDS_DataStructure& DStr,
                          const Handle(ChFiDS_SurfData)& Data)
 {
-  //trace de la surface definie par le chanfrein ou le conge
-  // correspondant a la SurfData
+  //trace of the surface defined by the chamfer or the fillet
+  // corresponding to SurfData
   
   Handle(Geom_Surface) surf = (DStr.Surface( Data->Surf())).Surface();
   if (!surf.IsNull()){
index 0683c4902fd0f3a094996c1c54e4c632bc2d871c..de057d9fc3e1e5be2a9f666147e2c898e4c8e685 100755 (executable)
@@ -417,7 +417,7 @@ void ChFi3d_FilBuilder::SetLaw(const Standard_Integer      IC,
                               const TopoDS_Edge&          E,
                               const Handle(Law_Function)& L)
 {
-  // Voir si il ne faut pas faire un controle des bounds ici!!!!!
+  // Check if it is necessary to check borders!
   if(IC <= NbElements()) {
     Handle(ChFiDS_FilSpine) fsp = Handle(ChFiDS_FilSpine)::DownCast(Value(IC));
     fsp->ChangeLaw(E) = L;
@@ -448,11 +448,11 @@ void ChFi3d_FilBuilder::Simulate (const Standard_Integer IC)
 #ifdef DEB
   if(ChFi3d_GettraceCHRON()){
     simul.Stop();
-    cout<<"Temps total simulation : ";
+    cout<<"Total simulation time : ";
     simul.Show();
-    cout<<"dont temps construction spine : ";
+    cout<<"Spine construction time : ";
     elspine.Show();
-    cout<<"et temps cheminement : ";
+    cout<<"and process time : ";
     chemine.Show();
   }
 #endif
@@ -613,12 +613,12 @@ ChFi3d_FilBuilder::SimulSurf(Handle(ChFiDS_SurfData)&            Data,
 {
   Handle(ChFiDS_FilSpine) fsp = Handle(ChFiDS_FilSpine)::DownCast(Spine);
   if(fsp.IsNull()) Standard_ConstructionError::Raise
-    ("SimulSurf : la spine n est pas celle d un conge");
+    ("SimulSurf : this is not the spine of the fillet");
   Handle(BRepBlend_Line) lin;
 #ifdef DEB
 //  TopAbs_Orientation Or = S1->ChangeSurface().Face().Orientation();
 #endif
-  // Des parametres souples!!!
+  // Flexible parameters!!!
   Standard_Real locfleche, MaxStep;
   SimulParams(HGuide,fsp,MaxStep,locfleche);
   Handle(ChFiDS_SecHArray1) sec;
@@ -757,10 +757,10 @@ void  ChFi3d_FilBuilder::SimulSurf(Handle(ChFiDS_SurfData)&            Data,
 {
   Handle(ChFiDS_FilSpine) fsp = Handle(ChFiDS_FilSpine)::DownCast(Spine);
   if(fsp.IsNull()) Standard_ConstructionError::Raise
-    ("PerformSurf : la spine n est pas celle d un conge");
+    ("PerformSurf : this is not the spine of the fillet");
   Handle(BRepBlend_Line) lin;
   
-  // Des parametres souples!!!
+  // Flexible parameters!
   Standard_Real locfleche, MaxStep;
   SimulParams(HGuide,fsp,MaxStep,locfleche);
   Handle(ChFiDS_SecHArray1) sec;
@@ -793,7 +793,7 @@ void  ChFi3d_FilBuilder::SimulSurf(Handle(ChFiDS_SurfData)&            Data,
                     PFirst,MaxStep,locfleche,TolGuide,First,Last,
                     Soldep,4,Inside,Appro,Forward,RecP,RecS,RecRst);
     if(!done) {
-      Standard_Failure::Raise("SimulSurf : Echec cheminement!");
+      Standard_Failure::Raise("SimulSurf : Failed process!");
     }
     Standard_Integer nbp = lin->NbPoints();
     sec = new ChFiDS_SecHArray1(1,nbp);
@@ -832,7 +832,7 @@ void  ChFi3d_FilBuilder::SimulSurf(Handle(ChFiDS_SurfData)&            Data,
                     func,finv,finvp,finvc,
                     PFirst,MaxStep,locfleche,TolGuide,First,Last,
                     Soldep,4,Inside,Appro,Forward,RecP,RecS,RecRst);
-    if(!done) Standard_Failure::Raise("SimulSurf : Echec !");
+    if(!done) Standard_Failure::Raise("SimulSurf : Fail !");
     Standard_Integer nbp = lin->NbPoints();
     sec = new ChFiDS_SecHArray1(1,nbp);
     for(Standard_Integer i = 1; i <= nbp; i++){
@@ -880,7 +880,7 @@ void  ChFi3d_FilBuilder::SimulSurf(Handle(ChFiDS_SurfData)&            Data,
                                   const Handle(BRepAdaptor_HSurface)& HSref2,
                                   const Handle(BRepAdaptor_HCurve2d)& PCref2,
                                   Standard_Boolean&                   Decroch2,
-                                  const Standard_Real                 /*Fleche*/,
+                                  const Standard_Real                 /*Arrow*/,
                                   const Standard_Real                 TolGuide,
                                   Standard_Real&                      First,
                                   Standard_Real&                      Last,
@@ -894,10 +894,10 @@ void  ChFi3d_FilBuilder::SimulSurf(Handle(ChFiDS_SurfData)&            Data,
 {
   Handle(ChFiDS_FilSpine) fsp = Handle(ChFiDS_FilSpine)::DownCast(Spine);
   if(fsp.IsNull()) Standard_ConstructionError::Raise
-    ("PerformSurf : la spine n est pas celle d un conge");
+    ("PerformSurf : it is not the spine of a fillet");
   Handle(BRepBlend_Line) lin;
   
-  // Des parametres souples!!!
+  // Flexible parameters!
   Standard_Real locfleche, MaxStep;
   SimulParams(HGuide,fsp,MaxStep,locfleche);
   Handle(ChFiDS_SecHArray1) sec;
@@ -929,7 +929,7 @@ void  ChFi3d_FilBuilder::SimulSurf(Handle(ChFiDS_SurfData)&            Data,
                     func,finv,finvp,finvc,
                     PFirst,MaxStep,locfleche,TolGuide,First,Last,
                     Soldep,4,Inside,Appro,Forward,RecP,RecS,RecRst);
-    if(!done) Standard_Failure::Raise("SimulSurf : Echec cheminement!");
+    if(!done) Standard_Failure::Raise("SimulSurf : Failed Processing!");
     Standard_Integer nbp = lin->NbPoints();
     sec = new ChFiDS_SecHArray1(1,nbp);
     for(Standard_Integer i = 1; i <= nbp; i++){
@@ -967,7 +967,7 @@ void  ChFi3d_FilBuilder::SimulSurf(Handle(ChFiDS_SurfData)&            Data,
                     func,finv,finvp,finvc,
                     PFirst,MaxStep,locfleche,TolGuide,First,Last,
                     Soldep,4,Inside,Appro,Forward,RecP,RecS,RecRst);
-    if(!done) Standard_Failure::Raise("SimulSurf : Echec !");
+    if(!done) Standard_Failure::Raise("SimulSurf : Fail !");
     Standard_Integer nbp = lin->NbPoints();
     sec = new ChFiDS_SecHArray1(1,nbp);
     for(Standard_Integer i = 1; i <= nbp; i++){
@@ -1037,10 +1037,10 @@ void  ChFi3d_FilBuilder::SimulSurf(Handle(ChFiDS_SurfData)&            Data,
 {
   Handle(ChFiDS_FilSpine) fsp = Handle(ChFiDS_FilSpine)::DownCast(Spine);
   if(fsp.IsNull()) Standard_ConstructionError::Raise
-    ("PerformSurf : la spine n est pas celle d un conge");
+    ("PerformSurf : it is not the spine of a fillet");
   Handle(BRepBlend_Line) lin;
   
-  // Des parametres souples!!!
+  // Flexible parameters!
   Standard_Real locfleche, MaxStep;
   SimulParams(HGuide,fsp,MaxStep,locfleche);
   Handle(ChFiDS_SecHArray1) sec;
@@ -1082,7 +1082,7 @@ void  ChFi3d_FilBuilder::SimulSurf(Handle(ChFiDS_SurfData)&            Data,
                     func, finv1, finvp1, finv2, finvp2,
                     PFirst, MaxStep, locfleche, TolGuide, First, Last,
                     Soldep, 4, Inside, Appro, Forward, RecP1, RecRst1, RecP2, RecRst2);
-    if(!done) Standard_Failure::Raise("SimulSurf : Echec cheminement!");
+    if(!done) Standard_Failure::Raise("SimulSurf : Failed processing!");
     Standard_Integer nbp = lin->NbPoints();
     sec = new ChFiDS_SecHArray1(1,nbp);
     for(Standard_Integer i = 1; i <= nbp; i++){
@@ -1135,7 +1135,7 @@ void  ChFi3d_FilBuilder::SimulSurf(Handle(ChFiDS_SurfData)&            Data,
                     PFirst, MaxStep, locfleche, TolGuide, First, Last,
                     Soldep, 4, Inside, Appro, Forward, RecP1, RecRst1, RecP2, RecRst2);
 
-    if(!done) Standard_Failure::Raise("SimulSurf : Echec !");
+    if(!done) Standard_Failure::Raise("SimulSurf : Fail !");
     Standard_Integer nbp = lin->NbPoints();
     sec = new ChFiDS_SecHArray1(1, nbp);
     for(Standard_Integer i = 1; i <= nbp; i++){
@@ -1192,7 +1192,7 @@ Standard_Boolean ChFi3d_FilBuilder::PerformFirstSection
 {
   Handle(ChFiDS_FilSpine) fsp = Handle(ChFiDS_FilSpine)::DownCast(Spine);
   if(fsp.IsNull()) Standard_ConstructionError::Raise
-    ("PerformSurf : la spine n est pas celle d un conge");
+    ("PerformSurf : this is not the spine of a fillet");
   Standard_Real TolGuide = HGuide->Resolution(tolesp);
   if(fsp->IsConstant()){
     BRepBlend_ConstRad Func(S1,S2,HGuide);
@@ -1246,7 +1246,7 @@ ChFi3d_FilBuilder::PerformSurf(ChFiDS_SequenceOfSurfData&          SeqData,
   Handle(ChFiDS_SurfData) Data = SeqData(1);
   Handle(ChFiDS_FilSpine) fsp = Handle(ChFiDS_FilSpine)::DownCast(Spine);
   if(fsp.IsNull()) Standard_ConstructionError::Raise
-    ("PerformSurf : la spine n est pas celle d un conge");
+    ("PerformSurf : this is not the spine of a fillet");
   Standard_Boolean gd1,gd2,gf1,gf2, maybesingular;
   Handle(BRepBlend_Line) lin;
   TopAbs_Orientation Or = S1->ChangeSurface().Face().Orientation();
@@ -1273,7 +1273,7 @@ ChFi3d_FilBuilder::PerformSurf(ChFiDS_SequenceOfSurfData&          SeqData,
         ChFi3d_ResultChron(ch , t_computedata);// result perf ComputeData
 #endif 
 
-    if(!done) return Standard_False; // ratrappage possible PMN 14/05/1998
+    if(!done) return Standard_False; // recovery is possible PMN 14/05/1998
 
 #ifdef DEB 
           ChFi3d_InitChron(ch);// init  perf  CompleteData
@@ -1285,7 +1285,7 @@ ChFi3d_FilBuilder::PerformSurf(ChFiDS_SequenceOfSurfData&          SeqData,
          ChFi3d_ResultChron(ch , t_completedata);// result perf CompleteData
 #endif 
 
-    if(!done) Standard_Failure::Raise("PerformSurf : Echec approximation!");
+    if(!done) Standard_Failure::Raise("PerformSurf : Failed approximation!");
     maybesingular = (Func.GetMinimalDistance()<=100*tolapp3d);
   }
   else {
@@ -1319,7 +1319,7 @@ ChFi3d_FilBuilder::PerformSurf(ChFiDS_SequenceOfSurfData&          SeqData,
          ChFi3d_ResultChron(ch , t_completedata);// result perf CompleteData
 #endif 
 
-    if(!done) Standard_Failure::Raise("PerformSurf : Echec approximation!");
+    if(!done) Standard_Failure::Raise("PerformSurf : Failed approximation!");
     maybesingular = (Func.GetMinimalDistance()<=100*tolapp3d); 
   }
   if (maybesingular) SplitSurf(SeqData, lin);
@@ -1360,7 +1360,7 @@ void  ChFi3d_FilBuilder::PerformSurf(ChFiDS_SequenceOfSurfData&          SeqData
   Handle(ChFiDS_SurfData)  Data = SeqData(1);
   Handle(ChFiDS_FilSpine) fsp = Handle(ChFiDS_FilSpine)::DownCast(Spine);
   if(fsp.IsNull()) Standard_ConstructionError::Raise
-    ("PerformSurf : la spine n est pas celle d un conge");
+    ("PerformSurf : this is not the spine of a fillet");
   Handle(BRepBlend_Line) lin;
   Standard_Real PFirst = First;
   Standard_Boolean maybesingular;
@@ -1392,11 +1392,11 @@ void  ChFi3d_FilBuilder::PerformSurf(ChFiDS_SequenceOfSurfData&          SeqData
                       Soldep,Inside,Appro,Forward,RecP,RecS,RecRst);
     if(!done) {
        Spine->SetErrorStatus(ChFiDS_WalkingFailure); 
-       Standard_Failure::Raise("PerformSurf : Echec cheminement!");
+       Standard_Failure::Raise("PerformSurf : Failed processing!");
     }
     TopAbs_Orientation Or = HS2->ChangeSurface().Face().Orientation();
     done = CompleteData(Data,func,lin,HS1,HS2,Or,1);
-    if(!done) Standard_Failure::Raise("PerformSurf : Echec approximation!");
+    if(!done) Standard_Failure::Raise("PerformSurf : Failed approximation!");
     maybesingular = (func.GetMinimalDistance()<=100*tolapp3d); 
   }
   else {
@@ -1426,11 +1426,11 @@ void  ChFi3d_FilBuilder::PerformSurf(ChFiDS_SequenceOfSurfData&          SeqData
                       Soldep,Inside,Appro,Forward,RecP,RecS,RecRst);
     if(!done) {
       Spine->SetErrorStatus(ChFiDS_WalkingFailure);
-      Standard_Failure::Raise("PerformSurf : Echec cheminement!");
+      Standard_Failure::Raise("PerformSurf : Failed processing!");
     }
     TopAbs_Orientation Or = HS2->ChangeSurface().Face().Orientation();
     done = CompleteData(Data,func,lin,HS1,HS2,Or,1);
-    if(!done) Standard_Failure::Raise("PerformSurf : Echec approximation!");
+    if(!done) Standard_Failure::Raise("PerformSurf : Failed approximation!");
    maybesingular = (func.GetMinimalDistance()<=100*tolapp3d); 
   }
   if (maybesingular) SplitSurf(SeqData, lin);
@@ -1470,7 +1470,7 @@ void  ChFi3d_FilBuilder::PerformSurf(ChFiDS_SequenceOfSurfData&          SeqData
   Handle(ChFiDS_SurfData) Data = SeqData(1);;
   Handle(ChFiDS_FilSpine) fsp = Handle(ChFiDS_FilSpine)::DownCast(Spine);
   if(fsp.IsNull()) Standard_ConstructionError::Raise
-    ("PerformSurf : la spine n est pas celle d un conge");
+    ("PerformSurf : this is not the spine of a fillet");
   Handle(BRepBlend_Line) lin;
   Standard_Real PFirst = First;
   Standard_Boolean maybesingular;
@@ -1502,11 +1502,11 @@ void  ChFi3d_FilBuilder::PerformSurf(ChFiDS_SequenceOfSurfData&          SeqData
                       Soldep,Inside,Appro,Forward,RecP,RecS,RecRst);
     if(!done) {
       Spine->SetErrorStatus(ChFiDS_WalkingFailure);
-      Standard_Failure::Raise("PerformSurf : Echec cheminement!");
+      Standard_Failure::Raise("PerformSurf : Failed processing!");
     }
     TopAbs_Orientation Or = HS1->ChangeSurface().Face().Orientation();
     done = CompleteData(Data,func,lin,HS1,HS2,Or,0);
-    if(!done) Standard_Failure::Raise("PerformSurf : Echec approximation!");
+    if(!done) Standard_Failure::Raise("PerformSurf : Failed approximation!");
     maybesingular = (func.GetMinimalDistance()<=100*tolapp3d); 
   }
   else {
@@ -1534,11 +1534,11 @@ void  ChFi3d_FilBuilder::PerformSurf(ChFiDS_SequenceOfSurfData&          SeqData
                       Soldep,Inside,Appro,Forward,RecP,RecS,RecRst);
     if(!done) {
       Spine->SetErrorStatus(ChFiDS_WalkingFailure);
-      Standard_Failure::Raise("PerformSurf : Echec cheminement!");
+      Standard_Failure::Raise("PerformSurf : Failed processing!");
     }
     TopAbs_Orientation Or = HS1->ChangeSurface().Face().Orientation();
     done = CompleteData(Data,func,lin,HS1,HS2,Or,0);
-    if(!done) Standard_Failure::Raise("PerformSurf : Echec approximation!");
+    if(!done) Standard_Failure::Raise("PerformSurf : Failed approximation!");
     maybesingular = (func.GetMinimalDistance()<=100*tolapp3d); 
   }
   if (maybesingular) SplitSurf(SeqData, lin); 
@@ -1589,7 +1589,7 @@ void  ChFi3d_FilBuilder::PerformSurf(ChFiDS_SequenceOfSurfData&          SeqData
   Handle(ChFiDS_SurfData) Data = SeqData(1);;
   Handle(ChFiDS_FilSpine) fsp = Handle(ChFiDS_FilSpine)::DownCast(Spine);
   if(fsp.IsNull()) Standard_ConstructionError::Raise
-    ("PerformSurf : la spine n est pas celle d un conge");
+    ("PerformSurf : this is not the spine of a fillet");
   Handle(BRepBlend_Line) lin;
   Standard_Real PFirst = First;
   Standard_Boolean maybesingular;
@@ -1629,11 +1629,11 @@ void  ChFi3d_FilBuilder::PerformSurf(ChFiDS_SequenceOfSurfData&          SeqData
                       Soldep, Inside, Appro, Forward, RecP1, RecRst1, RecP2, RecRst2);
     if(!done) {
        Spine->SetErrorStatus(ChFiDS_WalkingFailure);
-       Standard_Failure::Raise("PerformSurf : Echec cheminement!");
+       Standard_Failure::Raise("PerformSurf : Failed processing!");
     }
     TopAbs_Orientation Or = HS1->ChangeSurface().Face().Orientation();
     done = CompleteData(Data, func, lin, HS1, HS2, Or);
-    if(!done) Standard_Failure::Raise("PerformSurf : Echec approximation!");
+    if(!done) Standard_Failure::Raise("PerformSurf : Failed approximation!");
     maybesingular = (func.GetMinimalDistance()<=100*tolapp3d); 
   }
   else {
@@ -1674,11 +1674,11 @@ void  ChFi3d_FilBuilder::PerformSurf(ChFiDS_SequenceOfSurfData&          SeqData
 
     if(!done) {
       Spine->SetErrorStatus(ChFiDS_WalkingFailure);
-      Standard_Failure::Raise("PerformSurf : Echec cheminement!");
+      Standard_Failure::Raise("PerformSurf : Failed processing!");
     }
     TopAbs_Orientation Or = HS1->ChangeSurface().Face().Orientation();
     done = CompleteData(Data, func, lin, HS1, HS2, Or);
-    if(!done) Standard_Failure::Raise("PerformSurf : Echec approximation!");
+    if(!done) Standard_Failure::Raise("PerformSurf : Failed approximation!");
     maybesingular = (func.GetMinimalDistance()<=100*tolapp3d); 
 
 
@@ -1716,13 +1716,13 @@ void ChFi3d_FilBuilder::SplitSurf(ChFiDS_SequenceOfSurfData&    SeqData,
   Standard_Real precedant, suivant, courant;
   Standard_Real a, b, c;
   
-  // (1) Rechecheche des vi tel que l'iso v=vi soit ponctuelles
+  // (1) Finds vi so that iso v=vi is punctual
   VFirst = Min( ref->InterferenceOnS1().FirstParameter(),
                 ref->InterferenceOnS2().FirstParameter() );
   VLast  = Max( ref->InterferenceOnS1().LastParameter(),
                 ref->InterferenceOnS2().LastParameter() );
 
-  // (1.1) Recherche du premier point a l'interieur
+  // (1.1) Finds the first point inside
   for (ii=1; ii<=Nbpnt && Line->Point(ii).Parameter()<VFirst; ii++) {}
   if (ii==1) ii++;
   P =  Line->Point(ii);
@@ -1733,7 +1733,7 @@ void ChFi3d_FilBuilder::SplitSurf(ChFiDS_SequenceOfSurfData&    SeqData,
   precedant = P.PointOnS1().Distance(P.PointOnS2());
   ii ++;
 
-  // (1.2) Recherche d'un minimum par "points"
+  // (1.2) Find a minimum by "points"
   for ( ; ii<=Nbpnt && Line->Point(ii).Parameter()<=VLast; ii++) {
     for (;ii<=Nbpnt && 
         Line->Point(ii).Parameter()<VLast &&
@@ -1743,7 +1743,7 @@ void ChFi3d_FilBuilder::SplitSurf(ChFiDS_SequenceOfSurfData&    SeqData,
     c = pnt.Parameter();    
     suivant = pnt.PointOnS1().Distance(pnt.PointOnS2());
     if ( (courant <  precedant) && (courant < suivant) ) {
-      // (1.3) Recherche du minimum exact
+      // (1.3) Find the exact minimum
       math_FunctionRoot Resol(Fonc, (a+c)/2,
                              tol2d,//Surf->VResolution(toleps), 
                              a, c,
@@ -1753,7 +1753,7 @@ void ChFi3d_FilBuilder::SplitSurf(ChFiDS_SequenceOfSurfData&    SeqData,
        
        Fonc.Value(Resol.Root(), Val);
         if (Val< tolapp3d) { 
-         // On insere la solution (en evitant les risques de confusion)
+         // the solution (avoiding the risks of confusion)
          if (LesVi.Length()==0) {
            if ( (racine > VFirst+tol2d) &&
                 (racine < VLast -tol2d) ) {
@@ -1770,18 +1770,18 @@ void ChFi3d_FilBuilder::SplitSurf(ChFiDS_SequenceOfSurfData&    SeqData,
       }
       else {
 # if DEB
-       cout << "Echec calcul de la longeur minimum" << endl;
+       cout << "Failed calculation of the minimum length" << endl;
 # endif
       }
     }
-    // mise a jour si non duplication
+    // update if non duplication
     a = b;
     precedant = courant;
     b = c;
     courant = suivant;
   }
 
-  // (2) Mise a jour de la sequence de SurfData
+  // (2) Update of the sequence of SurfData
   if (LesVi.Length()>0) {
     TopOpeBRepDS_DataStructure& DStru = myDS->ChangeDS();
     Handle(ChFiDS_SurfData) SD;
@@ -1793,7 +1793,7 @@ void ChFi3d_FilBuilder::SplitSurf(ChFiDS_SequenceOfSurfData&    SeqData,
     for (ii=1 ; ii<=LesVi.Length(); ii++) {
 
       T = LesVi(ii);
-      // (2.0) copie et insertion
+      // (2.0) copy and insertion
       SD = new (ChFiDS_SurfData);
       SD->Copy(ref);
       SeqData.InsertBefore(ii, SD);
@@ -1804,7 +1804,7 @@ void ChFi3d_FilBuilder::SplitSurf(ChFiDS_SequenceOfSurfData&    SeqData,
       C2 = DStru.Curve(SD->InterferenceOnS2().LineIndex());
       SD->ChangeInterferenceOnS2().SetLineIndex(DStru.AddCurve(C2));
 
-      // (2.1) Modif des common Point
+      // (2.1) Modification of common Point
       SD-> ChangeVertexLastOnS1().Reset();
       SD-> ChangeVertexLastOnS2().Reset();
       ref->ChangeVertexFirstOnS1().Reset();
@@ -1824,13 +1824,13 @@ void ChFi3d_FilBuilder::SplitSurf(ChFiDS_SequenceOfSurfData&    SeqData,
       ref->ChangeVertexFirstOnS1().SetTolerance(VertexTol);
       ref->ChangeVertexFirstOnS2().SetTolerance(VertexTol);     
 
-      // (2.2) Modif des interferences
+      // (2.2) Modification of interferences
       SD->ChangeInterferenceOnS1().SetLastParameter(T);
       SD->ChangeInterferenceOnS2().SetLastParameter(T);
       ref->ChangeInterferenceOnS1().SetFirstParameter(T);
       ref->ChangeInterferenceOnS2().SetFirstParameter(T);
 
-      // Les parametres sur l ElSpine
+      // Parameters on ElSpine
       SD->LastSpineParam(T);
       ref->FirstSpineParam(T);
     }
@@ -1845,8 +1845,8 @@ void ChFi3d_FilBuilder::SplitSurf(ChFiDS_SequenceOfSurfData&    SeqData,
 void ChFi3d_FilBuilder::ExtentOneCorner(const TopoDS_Vertex& V,
                                        const Handle(ChFiDS_Stripe)& S)
 {
-  // revoir en utilisant les donnees au bout des conges (point,rayon,normale
-  // aux faces et tangentes a la ligne guide.
+  // review by using the data at end of fillets (point, radius, normal
+  // to the faces and tangents of the guideline).
 #ifndef DEB
   Standard_Integer      Sens = 0;
 #else
@@ -1857,10 +1857,10 @@ void ChFi3d_FilBuilder::ExtentOneCorner(const TopoDS_Vertex& V,
   ChFi3d_IndexOfSurfData(V,S,Sens);
   Standard_Real dU = Spine->LastParameter(Spine->NbEdges());
   if (Spine->IsTangencyExtremity((Sens == 1))) 
-    return; //Pas de prolongement sur queue de billard
+    return; //No extension in the queue
 
   if (Spine->Status((Sens == 1)) == ChFiDS_FreeBoundary) {
-    Coeff *= 2; // Il faut aller j'usquau bout.Il faudrait evaluer la longeur
+    Coeff *= 2; // It is necessary to go to the end and to evaluate the length
   }
 
   if (Sens == 1) {
@@ -1881,8 +1881,8 @@ void ChFi3d_FilBuilder::ExtentOneCorner(const TopoDS_Vertex& V,
 void ChFi3d_FilBuilder::ExtentTwoCorner(const TopoDS_Vertex& V,
                                        const ChFiDS_ListOfStripe& LS)
 {
-  // revoir en utilisant les donnees au bout des conges (point,rayon,normale
-  // aux faces et tangentes a la ligne guide.
+  // Review by using the data at end of fillets (point, radius, normal
+  // to faces and tangents to the guideline.
   Standard_Integer Sens;
   Standard_Real    Coeff = 0.3, Eval=0.0, dU, rad;
   Standard_Integer IE;
@@ -1891,7 +1891,7 @@ void ChFi3d_FilBuilder::ExtentTwoCorner(const TopoDS_Vertex& V,
   Handle(ChFiDS_Stripe) Stripe;
   Handle(ChFiDS_Spine)  Spine;
 
-  // On calcul une valeur de prolongement symetrique
+  // A value of symetric extension is calculated
   for ( ; itel.More(); itel.Next()) {    
    Stripe = itel.Value();
    Spine = Stripe->Spine();
@@ -1913,13 +1913,13 @@ void ChFi3d_FilBuilder::ExtentTwoCorner(const TopoDS_Vertex& V,
    if (dU > Eval) Eval = dU;
  }
 
-  // On applique
+  // One applies
   for (itel.Initialize(LS) ; itel.More(); itel.Next()) {    
     IE = ChFi3d_IndexOfSurfData(V,itel.Value(),Sens);
     if (!FF && Stripe == itel.Value()) Sens = -Sens;
     Stripe = itel.Value();
     Spine = Stripe->Spine();
-    if (! Spine->IsTangencyExtremity((Sens == 1))) { //Pas de prolongement sur queue
+    if (! Spine->IsTangencyExtremity((Sens == 1))) { //No extension on queue
       if (Sens == 1){ 
        Spine->SetFirstParameter(-Eval);
        Spine->SetFirstTgt(0.);
@@ -1943,8 +1943,8 @@ void ChFi3d_FilBuilder::ExtentTwoCorner(const TopoDS_Vertex& V,
 void ChFi3d_FilBuilder::ExtentThreeCorner(const TopoDS_Vertex& V,
                                          const ChFiDS_ListOfStripe& LS)
 {
-  // revoir en utilisant les donnees au bout des conges (point,rayon,normale
-  // aux faces et tangentes a la ligne guide.
+  // Review by using the data at end of fillets (point, radius, normal
+  // to faces and tangents to the guideline.
 #ifndef DEB
   Standard_Integer Sens = 0;
 #else
@@ -1963,7 +1963,7 @@ void ChFi3d_FilBuilder::ExtentThreeCorner(const TopoDS_Vertex& V,
       }
     }
     Handle(ChFiDS_Spine) Spine = Stripe->Spine();
-    if (Spine->IsTangencyExtremity((Sens == 1))) return; //Pas de prolongement sur queue
+    if (Spine->IsTangencyExtremity((Sens == 1))) return; //No extension on queue
     Standard_Real dU = Spine->LastParameter(Spine->NbEdges());
     if (Sens == 1){ 
       Spine->SetFirstParameter(-dU*Coeff);
index 7907e235c5fee7ac6c56292b01028e25032baea2..ba0032fba23091bddd5221e8bbd5941c5dfc5256 100755 (executable)
@@ -99,10 +99,10 @@ extern void ChFi3d_ResultChron(OSD_Chronometer & ch,Standard_Real& time);
 
 //=======================================================================
 //function : ToricRotule
-//purpose  : Teste si on est dans un cas particulier de rotule torique.
-//           Il faut trois plans avec deux conges incidents constants
-//           de meme rayon et la troisieme face perpendiculaire aux 
-//           deux autres.
+//purpose  : Test if it is a particular case of torus routine.
+//           Three planes with two constant incident fillets
+//           of the same radius and the third face perpendicular to  
+//           two others are required.
 //=======================================================================
 
 static Standard_Boolean ToricRotule(const BRepAdaptor_Surface& fac,
@@ -179,17 +179,17 @@ void ChFi3d_FilBuilder::PerformTwoCorner(const Standard_Integer Index)
 //  gp_Pnt P1,P2;
   Standard_Integer nbsurf1,nbsurf2,deb1,fin1,deb2,fin2;
   Standard_Real parE1,parE2;
-  //On extrait les informations necessaires sur les conges 
+  //Necessary information on fillets is extracted 
   //------------------------------------------------------
   
-  //le premier
+  //the first
   //----------
  
   st1 = It.Value(); 
   Isd1 = ChFi3d_IndexOfSurfData(Vtx,st1,Sens1);
   
   
-  //le deuxieme
+  //the second
   //----------
   It.Next();
   st2 = It.Value();
@@ -199,7 +199,7 @@ void ChFi3d_FilBuilder::PerformTwoCorner(const Standard_Integer Index)
   }
   else{ Isd2 = ChFi3d_IndexOfSurfData(Vtx,st2,Sens2); }
   
-  // Si les deux aretes a arrondir  sont tangentes on appelle GeomPlate
+  // If two edges to rounded are tangent GeomPlate is called
 
   if (Sens1==1)  E1= st1->Spine()->Edges(1);
   else E1= st1->Spine()->Edges( st1->Spine()->NbEdges());
@@ -234,8 +234,8 @@ void ChFi3d_FilBuilder::PerformTwoCorner(const Standard_Integer Index)
   if (!Okvisavis) {
 
   
-// on ne se limite plus aux premieres ou aux dernieres surfdata 
-// pour rechercher celles qui son en vis a vis
+// one is not limited to the first or the last surfdata 
+// to find the opposing data
     nbsurf1=st1->SetOfSurfData()->Length();
     nbsurf2=st2->SetOfSurfData()->Length();
     deb1=1; 
@@ -289,7 +289,7 @@ void ChFi3d_FilBuilder::PerformTwoCorner(const Standard_Integer Index)
     Isd1=ChFi3d_IndexOfSurfData(Vtx,st1,Sens1);
     Isd2=ChFi3d_IndexOfSurfData(Vtx,st2,Sens2);
   }
-   // StdFail_NotDone::Raise("TwoCorner : pas de face commune");
+   // StdFail_NotDone::Raise("TwoCorner : no common face");
   Standard_Integer IFaArc1 = 3-IFaCo1, IFaArc2 = 3-IFaCo2;
   SeqFil1 = st1->ChangeSetOfSurfData()->ChangeSequence();
   SeqFil2 = st2->ChangeSetOfSurfData()->ChangeSequence();
@@ -298,8 +298,8 @@ void ChFi3d_FilBuilder::PerformTwoCorner(const Standard_Integer Index)
   sd2 = SeqFil2.ChangeValue(Isd2);
   surf2 = DStr.Surface(sd2->Surf()).Surface();
   TopAbs_Orientation OFaCo = FaCo.Orientation(); 
-  // On analyse les concavites et on recherche la face en vis a vis 
-  // et l intersection  eventuelle des 2 pcurves sur cette face.
+  // The concavities are analyzed and the opposite face and the
+  // eventual intersection of 2 pcurves on this face are found.
   
   ChFiDS_State Stat1,Stat2;
   Standard_Boolean isfirst1 = (Sens1 == 1);
@@ -309,9 +309,8 @@ void ChFi3d_FilBuilder::PerformTwoCorner(const Standard_Integer Index)
   Standard_Boolean c1biseau = (Stat1 == ChFiDS_AllSame); 
   Standard_Boolean c1rotule = (Stat1 == ChFiDS_OnSame && Stat2 == ChFiDS_OnSame);
   
-  // On verifie que les conges ont bien un commonpoint 
-  // sur un arc commun. 
-  // Cet edge est le pivot du biseau ou de la rotule.
+  // It is checked if the fillets have a commonpoint on a common arc. 
+  // This edge is the pivot of the bevel or the knee.
   
   ChFiDS_CommonPoint& CP1 = sd1->ChangeVertex(isfirst1,IFaArc1);
   ChFiDS_CommonPoint& CP2 = sd2->ChangeVertex(isfirst2,IFaArc2);
@@ -386,7 +385,6 @@ void ChFi3d_FilBuilder::PerformTwoCorner(const Standard_Integer Index)
       }
     }
     if(!ok1 || !ok2){
-      //On est dans un contexte merdique
       PerformMoreThreeCorner(Index,2);
       done=1;
       return;
@@ -397,7 +395,7 @@ void ChFi3d_FilBuilder::PerformTwoCorner(const Standard_Integer Index)
   ChFi3d_ResultChron(ch ,t_t2cornerinit);//result perf initialisation 
 #endif 
   
-  //biseau
+  //bevel
   //------
   ChFiDS_CommonPoint cp11,cp12,cp21,cp22;
   ChFiDS_FaceInterference intf11,intf12,intf21,intf22;
@@ -419,7 +417,7 @@ void ChFi3d_FilBuilder::PerformTwoCorner(const Standard_Integer Index)
       return;
     }
   } 
-  else if(c1rotule){//on sauve.
+  else if(c1rotule){//save.
     cp11 = sd1->Vertex(isfirst1,1);
     cp12 = sd1->Vertex(isfirst1,2);
     cp21 = sd2->Vertex(isfirst2,1);
@@ -438,7 +436,7 @@ void ChFi3d_FilBuilder::PerformTwoCorner(const Standard_Integer Index)
       ChFi3d_ResultChron(ch , t_perf2cornerbyinter); // result perf  PerformTwoCornerbyInter
 #endif 
     if (!done) {
-      //on restore
+      // restore
       sd1->ChangeVertex(isfirst1,1) = cp11;
       sd1->ChangeVertex(isfirst1,2) = cp12;
       sd2->ChangeVertex(isfirst2,1) = cp21;
@@ -452,7 +450,7 @@ void ChFi3d_FilBuilder::PerformTwoCorner(const Standard_Integer Index)
   }
   
   if(!c1biseau && !done){
-    //on cree une nouvelle cornerdata
+    //new cornerdata is created
     //-------------------------------
     Handle(ChFiDS_Stripe) corner = new ChFiDS_Stripe();
     Handle(ChFiDS_HData)& cornerset = corner->ChangeSetOfSurfData();
@@ -462,11 +460,9 @@ void ChFi3d_FilBuilder::PerformTwoCorner(const Standard_Integer Index)
     
     if (SameSide) {
       if(ToricRotule(BRFaCo,BRS1,BRS2,st1,st2)){
-       // Construction directe.
+       // Direct construction.
        // ---------------------
        
-       //un petit coup de NextSide, leger....
-       //------------------------------------
        Standard_Integer bid;
        TopAbs_Orientation ori = OFaCo;
        TopAbs_Orientation oriS = st1->Orientation(IFaCo1);
@@ -490,7 +486,7 @@ void ChFi3d_FilBuilder::PerformTwoCorner(const Standard_Integer Index)
 #endif 
       }
       else {
-       // Construction par remplissage
+       // Construction by filling remplissage
        // ----------------------------
        Standard_Real  uPCArc1,  uPCArc2;
        gp_Pnt2d p2da1,p2df1,p2da2,p2df2,p2dfac1,p2dfac2;
@@ -505,7 +501,7 @@ void ChFi3d_FilBuilder::PerformTwoCorner(const Standard_Integer Index)
        p2df2 = sd2->Interference(IFaCo2).PCurveOnSurf()->Value(uPCArc2);
        sd2->Interference(IFaCo2).PCurveOnFace()->D1(uPCArc2,p2dfac2,v2dfac2);
 #ifdef DEB 
-       ChFi3d_InitChron(ch ); // init perf remplissage 
+       ChFi3d_InitChron(ch ); // init perf filling
 #endif 
        B1 = ChFi3d_mkbound(surf1,p2df1,p2da1,tolesp,2.e-4);
        B2 = ChFi3d_mkbound(surf2,p2df2,p2da2,tolesp,2.e-4);
@@ -577,14 +573,14 @@ void ChFi3d_FilBuilder::PerformTwoCorner(const Standard_Integer Index)
                            HFaPiv,PCurveOnPiv,OFaCo,1,
                            0,0,0,0);
 #ifdef DEB 
-       ChFi3d_ResultChron(ch , t_remplissage);// result perf remplissage 
+       ChFi3d_ResultChron(ch , t_remplissage);// result perf filling 
 #endif 
       }
 #ifdef DEB   
-      ChFi3d_InitChron(ch); // init perf mise a jour DS
+      ChFi3d_InitChron(ch); // init perf update DS
 #endif 
       if (done){
-       // Mise a jour des 3 CornerData et de la DS
+       // Update 3 CornerData and the DS
        // ----------------------------------------
        if(resetcp1){
          gp_Pnt pjyl = CP1.Point();
@@ -609,7 +605,7 @@ void ChFi3d_FilBuilder::PerformTwoCorner(const Standard_Integer Index)
        Pf2 = CP1;
        Pl2 = CP2;
        
-       // le coin pour commencer,
+       // the corner to start,
        // -----------------------
        ChFiDS_Regul regdeb, regfin;
        If1 = ChFi3d_IndexPointInDS(Pf1,DStr);
@@ -683,7 +679,7 @@ void ChFi3d_FilBuilder::PerformTwoCorner(const Standard_Integer Index)
        }
        corner->SetSolidIndex(st1->SolidIndex());
        
-       // puis la Stripe du debut,
+       // then the starting Stripe,
        // ------------------------
        st1->SetCurve(Icf,isfirst1);
        st1->SetIndexPoint(If1,isfirst1,IFaCo1);
@@ -694,7 +690,7 @@ void ChFi3d_FilBuilder::PerformTwoCorner(const Standard_Integer Index)
        sd1->ChangeInterference(IFaCo1).SetParameter(par1,isfirst1);
        if (IFaCo1 == 2) st1->SetOrientation(TopAbs_REVERSED,isfirst1);
        
-       // puis la Stripe de la fin,
+       // then the end Stripe,
        // -------------------------
        st2->SetCurve(Icl,isfirst2);
        st2->SetIndexPoint(Il1,isfirst2,IFaCo2);
@@ -706,13 +702,13 @@ void ChFi3d_FilBuilder::PerformTwoCorner(const Standard_Integer Index)
        if (IFaCo2 == 2) st2->SetOrientation(TopAbs_REVERSED,isfirst2);
       }
 #ifdef DEB   
-      ChFi3d_ResultChron(ch , t_t2cornerDS);// result perf mise a jour DS 
+      ChFi3d_ResultChron(ch , t_t2cornerDS);// result perf update DS 
 #endif 
     }
     else {
-      //ici il faut distinguer celui ondiff
+      //it is necessary to make difference with
       if(!OkinterCC) {
-       Standard_Failure::Raise("TwoCorner : Pas d intersetion pc pc");
+       Standard_Failure::Raise("TwoCorner : No intersection pc pc");
       }
       Handle(ChFiDS_Stripe) stsam, stdif;
       Handle(ChFiDS_SurfData) sdsam, sddif;
@@ -738,15 +734,15 @@ void ChFi3d_FilBuilder::PerformTwoCorner(const Standard_Integer Index)
        ifacodif = IFaCo1; ifaopdif = IFaArc1; isfirstdif = isfirst1;
       }
       else {
-       Standard_Failure::Raise("TwoCorner : Config inconnue");
+       Standard_Failure::Raise("TwoCorner : Config unknown");
       }
-      //On verifie que la surface ondiff a un point sur arc du cote oppose
-      //a la face commune et que cet arc est connexe a la face d appui 
-      //oppose a la face commune de la surface onsame.
+      //It is checked if surface ondiff has a point on arc from the side opposed
+      //to the common face and if this arc is connected to the base face  
+      //opposed to common face of the surface onsame.
       ChFiDS_CommonPoint& cpopdif = sddif->ChangeVertex(isfirstdif,ifaopdif);
       if(!cpopdif.IsOnArc()) {
        Standard_Failure::Raise
-         ("TwoCorner : Pas de point sur restriction sur la surface OnDiff");
+         ("TwoCorner : No point on restriction on surface OnDiff");
       }
       const TopoDS_Edge& Arcopdif = cpopdif.Arc();
       const TopoDS_Face& Fopsam = TopoDS::Face(DStr.Shape(sdsam->Index(ifaopsam)));
@@ -757,11 +753,11 @@ void ChFi3d_FilBuilder::PerformTwoCorner(const Standard_Integer Index)
        }
        else if(!ex.More()) {
          Standard_Failure::Raise
-           ("TwoCorner : Pas de face commune pour boucler le contour");
+           ("TwoCorner : No common face to loop the contour");
        }
       }
 #ifdef DEB 
-      ChFi3d_InitChron(ch ); // init perf remplissage 
+      ChFi3d_InitChron(ch ); // init perf filling 
 #endif 
       Handle(GeomFill_Boundary) Bsam,Bdif,Bfac;
       gp_Pnt2d ppopsam = 
@@ -818,15 +814,15 @@ void ChFi3d_FilBuilder::PerformTwoCorner(const Standard_Integer Index)
                          HBRFopsam,pcnul,Osurfsam,1,
                          0,0,0,0);
 #ifdef DEB 
-      ChFi3d_ResultChron(ch , t_remplissage);// result perf remplissage 
+      ChFi3d_ResultChron(ch , t_remplissage);// result perf filling 
 #endif 
-      if(!done) Standard_Failure::Raise("concavites inverses : echec");
+      if(!done) Standard_Failure::Raise("concavites inverted : fail");
 #ifdef DEB   
-      ChFi3d_InitChron(ch); // init perf mise a jour DS
+      ChFi3d_InitChron(ch); // init perf update DS
 #endif 
-      // Mise a jour des 3 CornerData et de la DS
+      // Update 3 CornerData and the DS
       // ----------------------------------------
-      // le coin pour commencer,
+      // the corner to start,
       // -----------------------
       Standard_Real P1deb,P2deb,P1fin,P2fin;
       Standard_Integer If1,If2,Il1,Il2,Icf,Icl;
@@ -859,7 +855,7 @@ void ChFi3d_FilBuilder::PerformTwoCorner(const Standard_Integer Index)
       tolreached = Max(tolreached,tolr1);
       TopOpeBRepDS_Curve Tcurv1(C3d,tolreached);
       Icf = DStr.AddCurve(Tcurv1);
-      // ici petite veru pour mettre la pcurve on face dans la DS
+      // place the pcurve on face in the DS
       TopAbs_Orientation OpcFopsam = sdsam->Interference(ifaopsam).Transition();
       Standard_Integer IFopsam = sdsam->Index(ifaopsam);
       if(isfirstsam) OpcFopsam = TopAbs::Reverse(OpcFopsam);
@@ -904,11 +900,11 @@ void ChFi3d_FilBuilder::PerformTwoCorner(const Standard_Integer Index)
 
       corner->SetSolidIndex(stsam->SolidIndex());
        
-      // puis la Stripe OnSame
+      // then Stripe OnSame
       // ---------------------
       const ChFiDS_FaceInterference& intcoin1 = coin->InterferenceOnS1();
       stsam->SetCurve(intcoin1.LineIndex(),isfirstsam);
-      stsam->InDS(isfirstsam); // filDS fait deja le boulot depuis le coin.
+      stsam->InDS(isfirstsam); // filDS already works from the corner.
       stsam->ChangePCurve(isfirstsam) = coin->InterferenceOnS1().PCurveOnFace();
       stsam->SetIndexPoint(If1,isfirstsam,ifaopsam);
       stsam->SetIndexPoint(Il1,isfirstsam,ifacosam);
@@ -921,7 +917,7 @@ void ChFi3d_FilBuilder::PerformTwoCorner(const Standard_Integer Index)
       sdsam->ChangeInterferenceOnS2().SetParameter(uintpcsam,isfirstsam);
       if (ifaopsam == 2) stsam->SetOrientation(TopAbs_REVERSED,isfirstsam);
        
-      // puis la Stripe OnDiff
+      // then Stripe OnDiff
       // ---------------------
       stdif->SetCurve(Icl,isfirstdif);
       stdif->ChangePCurve(isfirstdif) = pcsurfdif;
@@ -933,7 +929,7 @@ void ChFi3d_FilBuilder::PerformTwoCorner(const Standard_Integer Index)
       sddif->ChangeInterference(ifacodif).SetParameter(uintpcdif,isfirstdif);
       if (ifaopdif == 1) stdif->SetOrientation(TopAbs_REVERSED,isfirstdif);
 #ifdef DEB   
-      ChFi3d_ResultChron(ch , t_t2cornerDS);// result perf mise a jour DS 
+      ChFi3d_ResultChron(ch , t_t2cornerDS);// result perf update DS 
 #endif 
     }
     if(!myEVIMap.IsBound(Vtx)){
index 283b3eb6256b1cab2f1142b2c49d21bee9737415..59e7ca9a7977c901aab20bd0cf52a6a4263842fc 100755 (executable)
@@ -185,8 +185,8 @@ static Standard_Boolean SearchFD(TopOpeBRepDS_DataStructure& DStr,
 
 //=======================================================================
 //function : ToricCorner
-//purpose  : Teste si on est dans le cas pariculier d un coin torique 
-//           (ou spherique limite par des isos).
+//purpose  : Test if this is a paricular cas of a torus corner 
+//           (or spherical limited by isos).
 //=======================================================================
 
 static Standard_Boolean ToricCorner(const TopoDS_Face& F,
@@ -205,8 +205,8 @@ static Standard_Boolean ToricCorner(const TopoDS_Face& F,
 
 //=======================================================================
 //function : PerformThreeCorner
-//purpose  : Calcul du conge sur un sommet avec trois aretes 
-//           incidentes portant chacune un conge.
+//purpose  : Calculate fillet on a top with three edges 
+//           incident carrying each edge.
 //=======================================================================
 
 void ChFi3d_FilBuilder::PerformThreeCorner(const Standard_Integer Jndex)
@@ -241,9 +241,9 @@ void ChFi3d_FilBuilder::PerformThreeCorner(const Standard_Integer Jndex)
     Index[ii] = ChFi3d_IndexOfSurfData(Vtx,It.Value(),sens[ii]);
     CD[ii] = It.Value();
   }
-  // On verifie que l une des CD ne figure pas deux fois, au quel cas 
-  // il faut modifier le retour de IndexOfSurfData qui prend la 
-  // premiere des solutions.
+  // It is checked if one of CD is not present twice in which  
+  // case it is necessary to modify the return of IndexOfSurfData  
+  // that takes the first solution.
   if(CD[0] == CD[1]){ 
     Index[1] = CD[1]->SetOfSurfData()->Length();
     sens[1] = -1;
@@ -266,9 +266,9 @@ void ChFi3d_FilBuilder::PerformThreeCorner(const Standard_Integer Jndex)
                      p[1][2],p[2][1],Index[1],Index[2],face[0],sameside[0],
                      jf[1][2],jf[2][1]);
   //
-  // Analyse des concavites des 3 conges :
-  //        - 2 concavites identiques et 1 inverse.
-  //        - 3 concavites identiques
+  // Analyze concavities of 3 fillets :
+  //        - 2 concavities identic and 1 inverted.
+  //        - 3 concavities identic
   //
   if(oksea[2] && oksea[1] && !sameside[2] && !sameside[1])
     { pivot = 0; deb = 1; fin = 2;}
@@ -277,11 +277,11 @@ void ChFi3d_FilBuilder::PerformThreeCorner(const Standard_Integer Jndex)
   else if(oksea[1] && oksea[0] && !sameside[1] && !sameside[0])
     { pivot = 2; deb = 0; fin = 1;}
   else if(oksea[0] && oksea[1] && oksea[2]){ 
-    // 3 concavites identiques.
+    // 3 concavities identic.
     pivot = SearchPivot(sens,p,tol2d);
     if(pivot < 0){ 
 #ifdef DEB
-      cout<<"pivot non trouve, on appelle plate"<<endl;
+      cout<<"pivot not found, plate is called"<<endl;
 #endif
       PerformMoreThreeCorner(Jndex, 3);
       return;
@@ -303,14 +303,14 @@ void ChFi3d_FilBuilder::PerformThreeCorner(const Standard_Integer Jndex)
   ifacfin = CD[fin]->ChangeSetOfSurfData()->Value(i[fin][pivot])->Index(3-jf[fin][pivot]);
   if(ifacfin != ifacdeb){
 #ifdef DEB
-    cout<<"plusieurs faces d'appui, on appelle plate"<<endl;
+    cout<<"several base faces, plate is called"<<endl;
 #endif
     PerformMoreThreeCorner(Jndex, 3);
     return;
   }
   if(i[pivot][deb] != i[pivot][fin]){
 #ifdef DEB
-    cout<<"changement de surfdata sur le pivot, on appelle plate"<<endl;
+    cout<<"load surfdata on the pivot, plate is called"<<endl;
 #endif
     PerformMoreThreeCorner(Jndex, 3);
     return;
@@ -338,9 +338,9 @@ void ChFi3d_FilBuilder::PerformThreeCorner(const Standard_Integer Jndex)
     if(!c1toric)c1spheric=(Abs(qr[0]-qr[1])<tolesp && Abs(qr[0]-qr[2])<tolesp);
   }
   
-  //  Autrefois pour eviter les bouclages on mettait toujours les
-  //  points a l interieur, ca pouvait gener la construction de la
-  //  ligne guide du coin qui aujourd hui est un cercle.
+  //  Previously to avoid loops the points were always located 
+  //  inside, which could impede the construction of the
+  //  guideline of the corner which now is a circle.
   //  Standard_Integer jjjd = jf[deb][fin], jjjf = jf[fin][deb];
   //  if (pivdif) jjjd = jf[deb][pivot], jjjf = jf[fin][pivot];
   Standard_Integer jjjd = jf[deb][pivot], jjjf = jf[fin][pivot];
@@ -352,8 +352,8 @@ void ChFi3d_FilBuilder::PerformThreeCorner(const Standard_Integer Jndex)
                        0,sens[pivot],Pdp,Vdp,Rdp);
   ChFi3d_ExtrSpineCarac(DStr,CD[pivot],i[pivot][fin],p[pivot][fin],
                        0,sens[pivot],Pfp,Vfp,Rfp);
-  //dans le cas allsame on controle que les points sur la face ne 
-  //sont pas trop pres ce qui risque de faire foirer le cheminement.
+  //in cas of allsame it is checked that points on the face are not 
+  //too close, which can stop the work.
   if(!pivdif) {
     gp_Pnt ptestdeb,ptestfin; gp_Vec bidvec; Standard_Real bidr;
     ChFi3d_ExtrSpineCarac(DStr,CD[deb],i[deb][pivot],p[deb][pivot],
@@ -371,14 +371,14 @@ void ChFi3d_FilBuilder::PerformThreeCorner(const Standard_Integer Jndex)
     if(Abs(p[pivot][deb] - p[pivot][fin]) <= tol2d)
       c1toric = ToricCorner(face[pivot],Rdeb,Rfin,Vdp);
   }
-  // on a le pivot, le CD deb et le CD fin (enfin on espere !?!) :
+  // there is a pivot, the start and the end CD (finally !?!) :
   // -------------------------------------------------------------
-  // les criteres determinant si le coin est un tore ou une sphere
-  // sont uniquement fondes sur la configuration des sections en 
-  // bout et la nature des faces, il faudra faire des tests pour 
-  // determiner si une analyse plus subtile des conges incidents
-  // n est pas necessaire pour assurer la tangence entre ceux-ci
-  // et le coin (en particulier dans les cas a rayon variable).
+  // the criterions determining if the corner is a torus or a sphere
+  // are based only on the configuration of sections at end and the 
+  // nature of faces, it is necessary to make tests to 
+  // determine if a more detailed analysis of incident fillets
+  // is necessare to provide tangency between them and 
+  // the corner (in particular in the case with variable radius).
   
   
   
@@ -390,7 +390,7 @@ void ChFi3d_FilBuilder::PerformThreeCorner(const Standard_Integer Jndex)
     fdpiv = CD[pivot]->ChangeSetOfSurfData()->ChangeValue(i[pivot][deb]);
   
   
-  // On construit les HSurfaces et autres outils qui vont bien.
+  // HSurfaces and other suitable tools are constructed.
   // ----------------------------------------------------------
   
   TopAbs_Orientation OFac = face[pivot].Orientation();
@@ -431,13 +431,13 @@ void ChFi3d_FilBuilder::PerformThreeCorner(const Standard_Integer Jndex)
   
   Handle(GeomAdaptor_HSurface) Surf = new GeomAdaptor_HSurface(gasurf);
   //  Handle(BRepTopAdaptor_TopolTool) IFac = new BRepTopAdaptor_TopolTool(Fac);
-  // Essai de ne pas classifier sur la face pour les cas de conges rentrants
-  // qui debordent naturellement.  
+  // Try to not classify on the face for cases of reentering fillets which naturally depass 
+  // the border.  
   Handle(GeomAdaptor_HSurface) 
     bidsurf = new GeomAdaptor_HSurface(Fac->ChangeSurface().Surface());
   Handle(Adaptor3d_TopolTool) 
     IFac = new Adaptor3d_TopolTool(bidsurf);
-  // fin de l essai.
+  // end of the attempt.
   Handle(Adaptor3d_TopolTool) ISurf = new Adaptor3d_TopolTool(Surf);
   Handle(ChFiDS_Stripe) corner = new ChFiDS_Stripe();
   Handle(ChFiDS_HData)& cornerset = corner->ChangeSetOfSurfData();
@@ -489,30 +489,30 @@ void ChFi3d_FilBuilder::PerformThreeCorner(const Standard_Integer Jndex)
   if (c1toric){
     
 #ifdef DEB 
-    ChFi3d_InitChron(ch); // init perf cas torique 
+    ChFi3d_InitChron(ch); // init perf case torus 
 #endif 
     
-    // Construction directe.
+    // Direct Construction.
     // ---------------------
     done = ChFiKPart_ComputeData::ComputeCorner
       (DStr,coin,Fac,Surf,oo1,oo2,o1,o2,Rdeb,Rdp,pfac1,pfac2,psurf1,psurf2);
     
 #ifdef DEB 
-    ChFi3d_ResultChron(ch , t_torique); // result perf cas torique 
+    ChFi3d_ResultChron(ch , t_torique); // result perf case torus 
 #endif 
     
   }
   else if(c1spheric){
     
 #ifdef DEB   
-    ChFi3d_InitChron(ch); //init perf cas spheriqu
+    ChFi3d_InitChron(ch); //init perf case spher
 #endif 
     
     done = ChFiKPart_ComputeData::ComputeCorner
       (DStr,coin,Fac,Surf,oo1,oo2,o1,o2,Rdp,pfac1,psurf1,psurf2);
     
 #ifdef DEB  
-    ChFi3d_ResultChron(ch , t_spherique);// result perf cas spheriqu
+    ChFi3d_ResultChron(ch , t_spherique);// result perf cas sphere 
 #endif 
     
   }
@@ -526,14 +526,14 @@ void ChFi3d_FilBuilder::PerformThreeCorner(const Standard_Integer Jndex)
       ChFi3d_InitChron(ch);// init perf not filling 
 #endif
       
-      //on se calcule une ligne guide,
+      //Calculate a guideline,
       //------------------------------
-      //Problemes nombreux de bouclages et demi-tours lies 
-      //a la courbure de la ligne guide !!!!!! 
-      //POUR L INSTANT CERCLE.
-      //Si un jour on change de nature de ligne guide il faudra
-      //remettre les points Pdeb et Pfin a l interieur (voir le
-      //commentaire a ce sujet a la ligne du calcul de Pdeb et Pfin).
+      //Numerous problems with loops and half-turns connected to 
+      //the curvature of the guideline !!!!!! 
+      //FOR CIRCLE.
+      //If the nature of guideline is changed it is necessary to 
+      //reset points Pdeb and Pfin at the inside (see the
+      //comments about it in the calculation of Pdeb and Pfin).
       
       Standard_Real radpondere = (Rdp+Rfp)/2.;
       Standard_Real locfleche = fleche;
@@ -543,8 +543,8 @@ void ChFi3d_FilBuilder::PerformThreeCorner(const Standard_Integer Jndex)
                                                          Pdeb,Vdeb,
                                                          Pfin,Vfin,radpondere);
       if(spinecoin.IsNull()){
-       // On est dans un cas pourri ou l intersection des plans 
-       // de section se fait en dehors du secteur.
+       // This is a bad case when the intersection of 
+       // section planes is done out of the sector.
        spinecoin = ChFi3d_Spine(Pdeb,Vdeb,
                                 Pfin,Vfin,radpondere);
        WFirst = 0.; WLast = 1.;
@@ -555,11 +555,11 @@ void ChFi3d_FilBuilder::PerformThreeCorner(const Standard_Integer Jndex)
       cornerspine->ChangeCurve().SetCurve(spinecoin);
       cornerspine->ChangeCurve().FirstParameter(WFirst - pasmax);
       cornerspine->ChangeCurve().LastParameter(WLast + pasmax);
-      // Juste pour leurrer le Compute data qui ne doit pas
-      // en avoir besoin dans ce cas precis ...
+      // Just to confuse Compute that should not require this 
+      // in this exact case ...
       Handle(ChFiDS_Spine) NullSpine;
-      // On calcule le conge : - de deb vers fin 
-      //                       - de la face vers la surface
+      // The fillet is calculated - from beginning to end 
+      //                       - from the face to the surface
       //
       math_Vector Soldep(1,4);
       Soldep(1) = pfac1.X();
@@ -628,9 +628,9 @@ void ChFi3d_FilBuilder::PerformThreeCorner(const Standard_Integer Jndex)
       ChFi3d_InitChron(ch); // init perf filling
 #endif
       
-      // le contour a remplir est constitue de droites uv sur deb et fin
-      // de deux pcurves (une seule si c1pointu) calculees comme on peut
-      // sur piv et la face opposee.
+      // the contour to be fillet consists of straight lines uv in beginning and end 
+      // of two pcurves (only one if c1pointu) calculted as possible
+      // on piv and the opposite face.
       Handle(GeomFill_Boundary) Bdeb,Bfin,Bpiv,Bfac;
       Handle(Geom2d_Curve) PCurveOnFace;
       if(!c1pointu) 
@@ -678,7 +678,7 @@ void ChFi3d_FilBuilder::PerformThreeCorner(const Standard_Integer Jndex)
       else fil.Init(Bpiv,Bfin,Bfac,Bdeb,1);
       
       Handle(Geom_Surface) Surfcoin = fil.Surface();
-      Surfcoin->VReverse(); // on se ramene au sens face surf;
+      Surfcoin->VReverse(); // revert to direction face surface;
       done = CompleteData(coin,Surfcoin,
                          Fac,PCurveOnFace,
                          Surf,PCurveOnPiv,fdpiv->Orientation(),0,
@@ -697,11 +697,11 @@ void ChFi3d_FilBuilder::PerformThreeCorner(const Standard_Integer Jndex)
   }
   
   if (done){    
-    // Mise a jour des 4 Stripes et de la DS
+    // Update of 4 Stripes and the DS
     // -------------------------------------
     
 #ifdef DEB  
-    ChFi3d_InitChron(ch);// init perf mise a jour DS
+    ChFi3d_InitChron(ch);// init perf update DS
 #endif 
     
     gp_Pnt2d pp1,pp2;
@@ -719,7 +719,7 @@ void ChFi3d_FilBuilder::PerformThreeCorner(const Standard_Integer Jndex)
     pbf1->Add(Pf1.Point());pbf2->Add(Pf2.Point());
     pbl1->Add(Pl1.Point());pbl2->Add(Pl2.Point());
     
-    // le coin pour commencer,
+    // the start corner,
     // -----------------------
     ChFiDS_Regul regdeb, regfin;
     If1 = ChFi3d_IndexPointInDS(Pf1,DStr);
@@ -773,8 +773,8 @@ void ChFi3d_FilBuilder::PerformThreeCorner(const Standard_Integer Jndex)
     corner->ChangeIndexLastPointOnS2(Il2);
     ChFi3d_EnlargeBox(DStr,corner,coin,*pbl1,*pbl2,0);
     
-    // puis la CornerData du debut,
-    // ----------------------------
+    // then CornerData of the beginning,
+    // --------------------------------
     Standard_Boolean isfirst = (sens[deb] == 1), rev = (jf[deb][fin] == 2);
     Standard_Integer isurf1 = 1, isurf2 = 2;
     parpp1 = p[deb][fin]; parpp2 = p[deb][pivot]; 
@@ -803,8 +803,8 @@ void ChFi3d_FilBuilder::PerformThreeCorner(const Standard_Integer Jndex)
     if(rev) ChFi3d_EnlargeBox(DStr,CD[deb],fddeb,*pbf2,*pbf1,isfirst);
     else ChFi3d_EnlargeBox(DStr,CD[deb],fddeb,*pbf1,*pbf2,isfirst);
     
-    // puis la CornerData de la fin,
-    // -----------------------------
+    // then the end CornerData,
+    // ------------------------
     isfirst = (sens[fin] == 1); rev = (jf[fin][deb] == 2);
     isurf1 = 1; isurf2 = 2;
     parpp1 = p[fin][deb]; parpp2 = p[fin][pivot]; 
@@ -833,7 +833,7 @@ void ChFi3d_FilBuilder::PerformThreeCorner(const Standard_Integer Jndex)
     if(rev) ChFi3d_EnlargeBox(DStr,CD[fin],fdfin,*pbl2,*pbl1,isfirst);
     else ChFi3d_EnlargeBox(DStr,CD[fin],fdfin,*pbl1,*pbl2,isfirst);
     
-    // et enfin le pivot.
+    // anf finally the pivot.
     // ------------------
     ChFiDS_FaceInterference& fi = coin->ChangeInterferenceOnS2();
     isfirst = (sens[pivot] == 1); rev = (jf[pivot][deb] == 2);
@@ -861,18 +861,18 @@ void ChFi3d_FilBuilder::PerformThreeCorner(const Standard_Integer Jndex)
     fdpiv->ChangeVertex(isfirst,isurf2) = Pl2;
     fdpiv->ChangeInterference(isurf1).SetParameter(p[pivot][deb],isfirst);
     fdpiv->ChangeInterference(isurf2).SetParameter(p[pivot][fin],isfirst);
-    CD[pivot]->InDS(isfirst); // filDS fait deja le boulot depuis le coin.
+    CD[pivot]->InDS(isfirst); // filDS already does it from the corner.
     if(rev) ChFi3d_EnlargeBox(DStr,CD[pivot],fdpiv,*pbl2,*pbf2,isfirst);
     else ChFi3d_EnlargeBox(DStr,CD[pivot],fdpiv,*pbf2,*pbl2,isfirst);
     
-    //Pour finir on recale les tolerances des points.
+    //To end the tolerances of points are rescaled.
     ChFi3d_SetPointTolerance(DStr,*pbf1,If1);
     ChFi3d_SetPointTolerance(DStr,*pbf2,If2);
     ChFi3d_SetPointTolerance(DStr,*pbl1,Il1);
     ChFi3d_SetPointTolerance(DStr,*pbl2,Il2);
   }
   
-  //On tronque les corners data et met a jour les index.
+  //The data corners are truncated and index is updated.
   //----------------------------------------------------
   
   if(i[deb][pivot] < Index[deb]){
@@ -891,7 +891,7 @@ void ChFi3d_FilBuilder::PerformThreeCorner(const Standard_Integer Jndex)
     CD[fin]->ChangeSetOfSurfData()->Remove(Index[fin],i[fin][pivot]-1);
     i[fin][pivot] = Index[fin]; 
   }
-  // il faudra ici tenir compte des coins mutants.
+  // it is necessary to take into account mutant corners.
   if(i[pivot][deb] < Index[pivot]) {
     CD[pivot]->ChangeSetOfSurfData()->Remove(i[pivot][deb]+1,Index[pivot]);
     Index[pivot] = i[pivot][deb];
@@ -909,6 +909,6 @@ void ChFi3d_FilBuilder::PerformThreeCorner(const Standard_Integer Jndex)
   myListStripe.Append(corner);
   
 #ifdef DEB  
-  ChFi3d_ResultChron(ch , t_t3cornerDS);// result perf mise a jour DS
+  ChFi3d_ResultChron(ch , t_t3cornerDS);// result perf update DS
 #endif 
 }
index 4d3ff7dab3870d60164fdc1b2185bd3d9c234575..a8d59833cd65cc924bb7615d686169adcd22ae09 100755 (executable)
@@ -317,7 +317,7 @@ Standard_Real  ChFiDS_FilSpine::Radius(const Standard_Integer IE)const
       par = parandrad(i).X();
       rad = parandrad(i).Y();
       if (Abs( rad-StartRad ) > Precision::Confusion())
-       Standard_DomainError::Raise("Arete non constante");
+       Standard_DomainError::Raise("Edge is not constant");
       if (Abs( Ul-par ) <= gp::Resolution())
        return StartRad;
       if (par > Ul)
@@ -333,7 +333,7 @@ Standard_Real  ChFiDS_FilSpine::Radius(const Standard_Integer IE)const
 
 Standard_Real  ChFiDS_FilSpine::Radius()const 
 {
-  if (!IsConstant()) Standard_DomainError::Raise("Spine non constante");
+  if (!IsConstant()) Standard_DomainError::Raise("Spine is not constant");
   return parandrad(1).Y();
 }
 
@@ -401,7 +401,7 @@ static void mklaw(Law_Laws&                  res,
 
   if(npr.IsEmpty()){
     if( Rdeb < 0. && Rfin <0. ) 
-      Standard_DomainError::Raise("construction de la loi impossible");
+      Standard_DomainError::Raise("Impossible to create the law");
     else if(Rdeb < 0. || Rfin <0.){
       Standard_Real r = (Rfin<0.)? Rdeb  : Rfin;
       Handle(Law_Constant) loi = new Law_Constant();
@@ -415,7 +415,6 @@ static void mklaw(Law_Laws&                  res,
     }
   }
   else{
-    //tri bourrin!!
     if(!yaunpointsurledeb && Rdeb >= 0.) npr.Append(gp_XY(curdeb,Rdeb));
     if(!yaunpointsurlefin && Rfin >= 0.) npr.Append(gp_XY(curfin,Rfin));
     Standard_Integer nbp = npr.Length();
@@ -430,7 +429,7 @@ static void mklaw(Law_Laws&                  res,
        }
       }      
     }
-    //On vire les doublons.
+    //Duplicates are removed.
     Standard_Boolean fini = (nbp <= 1);
     i = 1;
     while (!fini) {
@@ -479,7 +478,7 @@ Handle(Law_Composite) ChFiDS_FilSpine::ComputeLaw
   Standard_Integer ideb = Index(deb,Standard_True);
   Standard_Integer ifin = Index(fin,Standard_False);
   Standard_Integer len = NbEdges();
-  // si la spine est periodique attention aux index et aux parametres!!!
+  // if the spine is periodic, attention to the index and parameters
   Standard_Real spinedeb = FirstParameter();
   Standard_Real spinefin = LastParameter();
 
@@ -511,15 +510,15 @@ Handle(Law_Composite) ChFiDS_FilSpine::ComputeLaw
   }
 
   if(Els->IsPeriodic()){
-    //On cree une composite periodique de range eventuellement 
-    //decale par rapport a l elspine, pour ne pas faire de l 
-    //origine un point singulier.
+    // A pereodic composite is created at range, which is eventually  
+    // offset relatively to the elspine, to avoid a single point at 
+    // origin.
     loi->SetPeriodic();
-    //Y a t il une arete constante?
+    //Is there a constant edge?
 //    for(Standard_Integer k = 1; k <= len; k++){
     Standard_Integer k;
     for( k = 1; k <= len; k++){
-      if (IsConstant(k)){ // oui !
+      if (IsConstant(k)){ // yes  !
        spinedeb = deb = curdeb = FirstParameter(k);
        spinefin = fin = deb + Period();
        for(Standard_Integer l = 1; l <= len; l++){
@@ -527,7 +526,7 @@ Handle(Law_Composite) ChFiDS_FilSpine::ComputeLaw
        }
        Rdeb = Rfin = Radius(k);
        icur++;
-       if(len == 1) curfin = LastParameter(k);//car le InPeriod va rendre 0.!!!
+       if(len == 1) curfin = LastParameter(k);//because InPeriod will make 0.!!!
        else curfin = ElCLib::InPeriod(LastParameter(k),spinedeb,spinefin);
        Handle(Law_Constant) curloi = new Law_Constant();
        curloi->Set(Rdeb,curdeb,curfin);
@@ -536,9 +535,9 @@ Handle(Law_Composite) ChFiDS_FilSpine::ComputeLaw
        break;
       }
     }
-    if(k > len){ // non !
+    if(k > len){ // no !
       if(parandrad.IsEmpty()) 
-       Standard_DomainError::Raise("Rayon non defini");
+       Standard_DomainError::Raise("Radius not defined");
       Standard_Integer nbp = parandrad.Length();
       if(nbp > 1){
        deb = parandrad.First().X();
@@ -558,7 +557,7 @@ Handle(Law_Composite) ChFiDS_FilSpine::ComputeLaw
     }
   }
   else if(IsPeriodic()){
-    // le rayon au debut.
+    // start radius.
     if (IsConstant(ind(1))) {
       Rdeb = Radius(ind(1));
       curfin = LastParameter(ind(1));
@@ -571,29 +570,29 @@ Handle(Law_Composite) ChFiDS_FilSpine::ComputeLaw
       icur++;
     } 
     else{
-      // Il y a forcement un kpart juste avant!
+      // There is inevitably kpart right before!
       Standard_Integer iprec = (ind(1) - 1);
       if(iprec == 0) iprec = len;
       if (IsConstant(iprec)){
        Rdeb = Radius(iprec);
       }
-      else Standard_DomainError::Raise("AppendLaw : pas de precedant constant bizarre!!");
+      else Standard_DomainError::Raise("AppendLaw : previous constant is missing!");
       lawencours = Standard_True;
     }
-    // le rayon a la fin.
+    // the raduis at end.
     if (IsConstant(ind(nbed))) Rfin = Radius(ind(nbed));
     else{
-      // Il y a forcement un kpart juste apres!
+      // There is inevitably kpart right after!
       Standard_Integer isuiv = (ind(nbed) + 1);
       if(isuiv == len + 1) isuiv = 1;
       if (IsConstant(isuiv)) {
        Rfin = Radius(isuiv);
       }
-      else Standard_DomainError::Raise("AppendLaw : pas de suivant constant bizarre!!");
+      else Standard_DomainError::Raise("AppendLaw : next constant is missing!");
     }
   }
   else{
-    // le rayon au debut.
+    // the radius at start.
     if (IsConstant(ind(1))) {
       Rdeb = Radius(ind(1));
       curfin = Min(fin,LastParameter(ind(1)));
@@ -608,30 +607,30 @@ Handle(Law_Composite) ChFiDS_FilSpine::ComputeLaw
        if (IsConstant(ind(1) - 1)){
          Rdeb = Radius(ind(1) - 1);
        }
-       else Standard_DomainError::Raise("AppendLaw : pas de precedant constant");
+       else Standard_DomainError::Raise("AppendLaw : previous constant is missing");
       }
       else if(parandrad.IsEmpty()){
-       Standard_DomainError::Raise("AppendLaw : pas rayon sur vertex");
+       Standard_DomainError::Raise("AppendLaw : no radius on vertex");
       }
       else Rdeb = -1.;
       lawencours = Standard_True;
     }
-    // le rayon a la fin.
+    // the radius at end.
     if (IsConstant(ind(nbed))) Rfin = Radius(ind(nbed));
     else{
       if(ind(nbed) < len){
        if (IsConstant(ind(nbed) + 1)) Rfin = Radius(ind(nbed) + 1);
-       else Standard_DomainError::Raise("AppendLaw : pas de suivant constant");
+       else Standard_DomainError::Raise("AppendLaw : next constant is missing");
       }
       else if(parandrad.IsEmpty()){
-       Standard_DomainError::Raise("AppendLaw : pas rayon sur vertex");
+       Standard_DomainError::Raise("AppendLaw : no radius on vertex");
       }
       else Rfin = -1.;
     }
   }
 
-  // On a les infos sur les extremites de l elspine, 
-  // on parcourt toutes les aretes 
+  // There are infos on the extremities of the elspine, 
+  // all edges are parsed 
   for(; icur <= nbed; icur++){
     if (IsConstant(ind(icur))) {
       Rcur = Radius(ind(icur));
@@ -647,8 +646,8 @@ Handle(Law_Composite) ChFiDS_FilSpine::ComputeLaw
       if(IsPeriodic()){ 
        curfin = ElCLib::InPeriod(curfin,spinedeb + tol3d, spinefin + tol3d);
        if(ind(icur) == ind(nbed)){
-         // Attention le curfin peut etre faut si le dernier edge passe par
-         // dessus l origine de la spine periodique.
+         // Attention the curfin can be wrong if the last edge passes 
+         // above the  origin periodic spline.
          Standard_Real biddeb = FirstParameter(ind(icur));
          biddeb = ElCLib::InPeriod(biddeb,spinedeb + tol3d, spinefin + tol3d);
          if(biddeb >= curfin) curfin = fin;
@@ -671,8 +670,8 @@ Handle(Law_Composite) ChFiDS_FilSpine::ComputeLaw
       curfin = Min(fin,curfin);
       lawencours = Standard_True;
       if(ind(icur) == ind(nbed)){
-       // Attention le curfin peut etre faut si le dernier edge passe par
-       // dessus l origine de la spine periodique.
+       // Attention the curfin can be wrong if the last edge passes 
+         // above the  origin periodic spline.
        if(IsPeriodic()) {
          Standard_Real biddeb = FirstParameter(ind(icur));
          curfin = LastParameter(ind(icur));
@@ -681,7 +680,7 @@ Handle(Law_Composite) ChFiDS_FilSpine::ComputeLaw
          if(biddeb >= curfin) curfin = fin;
          else curfin = Min(fin,curfin);
        }
-       // ou si on est en fin de spine avec prolongement.
+       // or if it is the end of spine with extension.
        else if(ind(icur) == len) curfin = fin;
        Law_Laws temp;
        mklaw(temp,parandrad,curdeb,curfin,Rdeb,Rfin,
@@ -719,11 +718,11 @@ Handle(Law_Composite) ChFiDS_FilSpine::Law(const Handle(ChFiDS_HElSpine)& Els) c
 Handle(Law_Function)& ChFiDS_FilSpine::ChangeLaw(const TopoDS_Edge& E)
 {
   if(!SplitDone()) {
-    Standard_DomainError::Raise("ChFiDS_FilSpine::ChangeLaw : les bornes ne sont pas a jour");
+    Standard_DomainError::Raise("ChFiDS_FilSpine::ChangeLaw : the limits are not up-to-date");
   }
   Standard_Integer IE = Index(E);
   if (IsConstant(IE)) {
-    Standard_DomainError::Raise("ChFiDS_FilSpine::ChangeLaw : pas de loi sur les aretes constantes");
+    Standard_DomainError::Raise("ChFiDS_FilSpine::ChangeLaw : no law on constant edges");
   }
   Handle(ChFiDS_HElSpine) hsp = ElSpine(IE);
   Standard_Real w = 0.5*(FirstParameter(IE) + LastParameter(IE));
index 27f8fa944b2cd32488649c4f4cee3bdce2317514..84b91edc5532b4b392ef83c295d7c0203ae7324f 100755 (executable)
@@ -9,31 +9,30 @@
 
 class Spine from ChFiDS inherits TShared from MMgt
 
-       ---Purpose: Contient  les  informations  necessaires   a    la
-       --          construction d un conge volumique :
+       ---Purpose: Contains information necessary for construction of
+       --          a 3D fillet :
        --          
        --          
-       --          - ligne guide composee d'edges du solide, tangents
-       --          entre eux, et bordes par des faces tangentes entre
-       --          elles
+       --          - guideline composed of edges of the solid, tangents
+       --          between them, and borders by faces tangents
+       --          between them
        --          
-       --          Les outils de construction du   Sp
-       --          par propagation a partir d un  edge du solide sont
-       --          fournis dans le Builder de Fil3d.
+       --          Tools for construction of the Sp
+       --          by propagation from an edge of solid 
+       --          are provided in the Builder of Fil3d.
        --          
-       --          Le Spine contient par aileurs     des
-       --          informations concernant la nature des   extremites
-       --          du conge ( sur bord libre, sur cassure ou ferme ).
+       --          The Spine contains among others the 
+       --          information about the nature of extremities
+       --          of the fillet ( on free border , on section or closed ).
        --          
-       --          REMARQUE  IMPORTANTE  :    la  ligne  guide  ainsi
-       --          representee n est pas C2, alors que le cheminement
-       --          le  reclame.   Un  certain  nombre d  amenagements
-       --          paliatifs (voir les  methodes en fin) sont prevus,
-       --          s  ils  sont insuffisants  il faudra changer notre
-       --          fusil d  epaule et doubler le Spine d
-       --          une  ligne C2 avec  les consequences que l on sait
-       --          pour gerer les va et  vient entre KPart Blend dans
-       --          Fil3d.
+       --          IMPORTANT NOTE  :    the guideline 
+       --          represented in this way is not C2, although the path
+       --          claims it. Several palliative workarounds 
+       --          (see the methods at the end) are planned,
+       --          but they are not enough. It is necessary to change
+       --          the approach and double the Spine of line C2 with
+       --          the known consequences for management of
+       --          interactions between KPart Blend in Fil3d.
 
 
 
@@ -66,11 +65,11 @@ is
     Create(Tol : Real from Standard) returns mutable Spine from ChFiDS;
 
     SetEdges(me : mutable; E : Edge from TopoDS) is static;
-    ---Purpose: stocker les edges qui vont composer la ligne guide
+    ---Purpose: store edges composing the guideline
     ---C++: inline
 
     PutInFirst(me : mutable; E : Edge from TopoDS) is static;
-    ---Purpose:stocker l edge en premiere position avant tous les autres
+    ---Purpose: store the edge at the first position before all others
     ---C++: inline
 
     NbEdges(me) returns Integer is static;
@@ -83,14 +82,14 @@ is
 
     
     SetFirstStatus(me : mutable; S : State from ChFiDS) is static;
-    ---Purpose: stocker si le debut de l ensemble des edges demarre
-    --          sur une cassure un bord libre ou forme un contour ferme
+    ---Purpose: stores if the start of a set of edges starts on a
+    -- section of free border or forms  a closed contour
     ---C++: inline
 
 
     SetLastStatus(me : mutable; S : State from ChFiDS) is static;
-    ---Purpose: stocker si la fin de l ensemble des edges demarre
-    --          sur une cassure un bord libre ou forme un contour ferme
+   ---Purpose: stores if the end of a set of edges starts on a
+    -- section of free border or forms  a closed contour
     ---C++: inline
 
     AppendElSpine(me : mutable; Els : HElSpine from ChFiDS) 
@@ -124,11 +123,12 @@ is
 ----------------------
 
     Load(me : mutable) is static;
-    ---Purpose: preparer la ligne guide en fonction  des edges qui
-    --          sont des arcs elementaires (prendre un parametrage
-    --          unique  abscisse curviligne );pour pouvoir appeller
-    --          les methodes sur la geometrie (first,last,value,d1,d2)
-    --          il faut d abord preparer sinon une exception sera levee
+    ---Purpose: prepare the guideline depending on the edges that 
+    --          are elementary arks (take parameters from
+    --          a single curvilinear abscissa); to be able to call 
+    --          methods on the geometry (first,last,value,d1,d2)
+    --          it is necessary to start with preparation otherwise an
+    --          exception will be raised
 
     Resolution(me; R3d : Real) returns Real
     is static;
@@ -149,17 +149,17 @@ is
     is static;
     
     FirstParameter(me; IndexSpine : Integer ) returns Real 
-    ---Purpose: donne  la longueur cumulee  de tous les  arcs avant le
-    --          numero IndexSp
+    ---Purpose: gives the total length of all arcs before the 
+    --          number IndexSp
     is static;
     
     LastParameter(me; IndexSpine : Integer ) returns Real 
-    ---Purpose: donne  la longueur cumulee  jusqu  a l  arc de  numero
+    ---Purpose: gives the total length till the ark with number
     --          IndexSpine (inclus)
     is static;
     
     Length(me;IndexSpine : Integer ) returns Real 
-    ---Purpose: donne la longueur de l arc de numero IndexSp
+    ---Purpose: gives the length of ark with number IndexSp
     is static;
     
     IsPeriodic(me) returns Boolean
@@ -210,7 +210,7 @@ is
     is static;
     
     CurrentElementarySpine (me : mutable; Index : Integer ) 
-    ---Purpose: set la courbe courante et la renvoie 
+    ---Purpose: sets the current curve and returns it 
     returns Curve from BRepAdaptor is static; 
     ---C++: return const &
 
index 142f7a143721d8ba15e6362a859bec4f76ef840d..48a04ed7a1773689054ea023fc5e7020ba635f73 100755 (executable)
@@ -164,9 +164,9 @@ void ChFiDS_Spine::SetFirstParameter(const Standard_Real Par)
 {
 #ifdef DEB
   if(Par >= Precision::Confusion()) 
-    cout<<"Prolongement interieur en debut de ligne guide"<<endl;
+    cout<<"Interior extension at the start of guideline"<<endl;
   if(IsPeriodic())
-    cout<<"WARNING!!! Prolongement sur ligne guide periodique."<<endl;
+    cout<<"WARNING!!! Extension on periodic guideline."<<endl;
 #endif
   firstprolon = Standard_True;
   firstparam = Par;
@@ -183,9 +183,9 @@ void ChFiDS_Spine::SetLastParameter(const Standard_Real Par)
 #ifdef DEB
   Standard_Real lll = abscissa->Value(abscissa->Upper());
   if((Par - lll) <= -Precision::Confusion()) 
-    cout<<"Prolongement interieur en fin de ligne guide"<<endl;
+    cout<<"Interior extension at the end of guideline"<<endl;
   if(IsPeriodic())
-    cout<<"WARNING!!! Prolongement sur ligne guide periodique."<<endl;
+    cout<<"WARNING!!! Extension on periodic guideline."<<endl;
 #endif
   lastprolon = Standard_True;
   lastparam = Par;
@@ -310,7 +310,7 @@ Standard_Real ChFiDS_Spine::Absc(const TopoDS_Vertex& V) const
 
 Standard_Real ChFiDS_Spine::Period() const
 {
-  if(!IsPeriodic()) Standard_Failure::Raise("Spine non periodique");
+  if(!IsPeriodic()) Standard_Failure::Raise("Non-periodic Spine");
   return abscissa->Value(abscissa->Upper());
 }
 
@@ -334,16 +334,16 @@ Standard_Real ChFiDS_Spine::Resolution(const Standard_Real R3d) const
 void  ChFiDS_Spine::SetFirstTgt(const Standard_Real W)
 {
   if(IsPeriodic()) Standard_Failure::Raise
-    ("Pas de prolongement par tangente sur les contours periodiques"); 
+    ("No extension by tangent on periodic contours"); 
 #ifdef DEB
   if(W >= Precision::Confusion()) 
-    cout<<"Prolongement interieur en debut de ligne guide"<<endl;
+    cout<<"Interior extension at start of the guideline"<<endl;
 #endif
-  //On vire le flag au cas ou il serait deja positionne pour 
-  //ne pas planter le d1
+  //The flag is suspended if is already positioned to avoid  
+  //stopping d1
   hasfirsttgt = Standard_False;
   D1(W,firstori,firsttgt);
-  //et on le remet.
+  //and it is reset.
   hasfirsttgt = Standard_True;
   firsttgtpar = W;
 }
@@ -357,18 +357,18 @@ void  ChFiDS_Spine::SetFirstTgt(const Standard_Real W)
 void  ChFiDS_Spine::SetLastTgt(const Standard_Real W)
 {
   if(IsPeriodic()) Standard_Failure::Raise
-    ("Pas de prologement par tangente sur les contours periodiques"); 
+    ("No extension by tangent periodic contours"); 
 
 #ifdef DEB
   Standard_Real L = W - abscissa->Value(abscissa->Upper());
   if(L <= -Precision::Confusion()) 
-    cout<<"Prolongement interieur en fin de ligne guide"<<endl;
+    cout<<"Interior extension at the end of guideline"<<endl;
 #endif
-  //On vire le flag au cas ou il serait deja positionne pour 
-  //ne pas planter le d1
+  //The flag is suspended if is already positioned to avoid  
+  //stopping d1 
   haslasttgt = Standard_False;
   D1(W,lastori,lasttgt);
-  //et on le remet.
+  //and it is reset.
   haslasttgt = Standard_True;
   lasttgtpar = W;
 }
@@ -480,7 +480,7 @@ void  ChFiDS_Spine::Load()
 {
   if(!abscissa.IsNull()){
 #ifdef DEB
-    cout<<"nouveau load du CE"<<endl;
+    cout<<"new load of CE"<<endl;
 #endif
   }
   Standard_Integer len = spine.Length();
index 51ec70bf8cf45da6a2c17e0a7c8aafd454c40cee..70c516c700a59da6157dacebeac22de5dea3365a 100755 (executable)
@@ -96,7 +96,7 @@ static Standard_Real ComputeAbscissa(const BRepAdaptor_Curve& C,
     break;
 #endif
   }    
-  Standard_NotImplemented::Raise("calcul abscisse non traite ");
+  Standard_NotImplemented::Raise("calcul abscisse not processed");
   return 0.;
 }
 #endif
@@ -133,7 +133,7 @@ static Standard_Real ComputeAbscissa(const BRepAdaptor_Curve& C,
   else 
     ctyp = CSpine->CurrentElementarySpine(Iedge).GetType();
 
-  // Recuperation des orientations.
+  // Return orientations.
   TopAbs_Orientation OrFace1 = TopAbs_FORWARD, OrFace2 = TopAbs_FORWARD;
   Handle(BRepAdaptor_HSurface) HS = Handle(BRepAdaptor_HSurface)::DownCast(S1);
   if (!HS.IsNull()) OrFace1 = HS->ChangeSurface().Face().Orientation();
@@ -184,7 +184,7 @@ static Standard_Real ComputeAbscissa(const BRepAdaptor_Curve& C,
                                    Wref,OrFace2,Standard_False);
     }
     else{
-      Standard_NotImplemented::Raise("cas particulier non ecrit");
+      Standard_NotImplemented::Raise("particular case not written");
     }
   }
   else if(!CSpine.IsNull()){
@@ -233,7 +233,7 @@ static Standard_Real ComputeAbscissa(const BRepAdaptor_Curve& C,
                                       Wref,OrFace2,Standard_False); 
       }
       else{
-       Standard_NotImplemented::Raise("cas particulier non ecrit");
+       Standard_NotImplemented::Raise("particular case not written");
       }
     }
     else if (CSpine->IsChamfer() == ChFiDS_TwoDist) {    
@@ -281,7 +281,7 @@ static Standard_Real ComputeAbscissa(const BRepAdaptor_Curve& C,
                                       Wref,OrFace2,Standard_False); 
       }
       else{
-       Standard_NotImplemented::Raise("cas particulier non ecrit");
+       Standard_NotImplemented::Raise("particular case not written");
       }
     }
     else {
@@ -330,7 +330,7 @@ static Standard_Real ComputeAbscissa(const BRepAdaptor_Curve& C,
                                      Wref,OrFace2,Standard_False, DisOnP); 
       }
       else{
-       Standard_NotImplemented::Raise("cas particulier non ecrit");
+       Standard_NotImplemented::Raise("particular case not written");
       }
     }
   }
@@ -365,8 +365,8 @@ Standard_Boolean ChFiKPart_ComputeData::ComputeCorner
     Standard_ConstructionError::Raise
       ("la face du conge torique doit etre plane");
   }
-  // On calcule comme ligne guide le cercle correspondant 
-  // a la section de S2, et divers elements de construction.
+  // The guideline is the circle corresponding 
+  // to the section of S2, and other construction elements.
 
   gp_Cylinder cyl;
   gp_Circ circ;
@@ -449,7 +449,7 @@ Standard_Boolean ChFiKPart_ComputeData::ComputeCorner
       typ1 != GeomAbs_Plane ||
       typ2 != GeomAbs_Plane){
     Standard_ConstructionError::Raise
-      ("rotule torique seulement entre des plans");
+      ("torus joint only between the planes");
   }
   return ChFiKPart_MakeRotule(DStr,Data,S->Plane(),S1->Plane(),
                              S2->Plane(),OS,OS1,OS2,Radius,OfS);
index f5dae035c389793a6827891aeefa358a261d5c13..c07194f37502a9819c98510885fb0845a0169d78 100755 (executable)
@@ -124,7 +124,7 @@ Standard_Boolean ChFiKPart_MakeChAsym(TopOpeBRepDS_DataStructure& DStr,
       if ( Abs(ChamfRad) < Precision::Confusion() ) pointu = Standard_True;
       if( ChamfRad < 0 ) {
 #ifdef DEB
-       cout<<"le chanfrein ne passe pas"<<endl;
+       cout<<"the chamfer can't pass"<<endl;
 #endif
        return Standard_False;
       }
@@ -137,7 +137,7 @@ Standard_Boolean ChFiKPart_MakeChAsym(TopOpeBRepDS_DataStructure& DStr,
 
     if (ouvert) {
       if (Abs(angCon) - Abs(SemiAngl) > -Precision::Confusion() ) {
-       cout<<"mauvais choix d'angle pour le chanfrein"<<endl;
+       cout<<"wrong choice of angle for the chamfer"<<endl;
        return Standard_False; 
       } 
     }
@@ -149,7 +149,7 @@ Standard_Boolean ChFiKPart_MakeChAsym(TopOpeBRepDS_DataStructure& DStr,
       SemiAngl =  Abs(angCon) + Angle;
 
       if ( (PI / 2. - SemiAngl) < Precision::Confusion() ) {
-       cout <<"mauvais choix d'angle pour le chanfrein"<<endl;
+       cout <<"wrong choice of angle for the chamfer"<<endl;
        return Standard_False;
       }
       Dis1 =  move * Tan(SemiAngl) - Dis * Abs(Sin(angCon));
@@ -182,7 +182,7 @@ Standard_Boolean ChFiKPart_MakeChAsym(TopOpeBRepDS_DataStructure& DStr,
       if ( Abs(ChamfRad) < Precision::Confusion() ) pointu = Standard_True;
       if( ChamfRad < 0 ) {
 #ifdef DEB
-       cout<<"le chanfrein ne passe pas"<<endl;
+       cout<<"the chamfer can't pass"<<endl;
 #endif
        return Standard_False;
       }
index a86d2a6dfc7424af0f0a3a61c5ad8e528fba2129..88a5a48e73ab5e8658dac83d0b2276859d3dc2aa 100755 (executable)
@@ -107,7 +107,7 @@ Standard_Boolean ChFiKPart_MakeChAsym(TopOpeBRepDS_DataStructure& DStr,
   Standard_Boolean pointu = Standard_False;
   Standard_Real ConRad, Rad, SemiAngl;
 
-  //Calcul des distance
+  //Calculation of distance
   Standard_Real dis1, dis2, cosNPCyl, sinNPCyl;
 
   if ( (plandab && DisOnP) || (!plandab && !DisOnP) ) {
@@ -139,7 +139,7 @@ Standard_Boolean ChFiKPart_MakeChAsym(TopOpeBRepDS_DataStructure& DStr,
     Rad = Cyl.Radius() - dis1;
     if ( Abs(Rad) <= Precision::Confusion() ) pointu = Standard_True;
     if(Rad < 0 ) {
-      cout<<"le chanfrein ne passe pas"<<endl;
+      cout<<"the chamfer can't pass"<<endl;
       return Standard_False;
     }
   }
@@ -313,7 +313,7 @@ Standard_Boolean ChFiKPart_MakeChAsym(TopOpeBRepDS_DataStructure& DStr,
 
 //=======================================================================
 //function : MakeChAsym
-//purpose  : cas cylindre/plan ou plan/cylindre.
+//purpose  : case cylinder/plane or plane/cylinder.
 //=======================================================================
 
 Standard_Boolean ChFiKPart_MakeChAsym(TopOpeBRepDS_DataStructure& DStr,
@@ -332,11 +332,11 @@ Standard_Boolean ChFiKPart_MakeChAsym(TopOpeBRepDS_DataStructure& DStr,
                                      const Standard_Boolean plandab,
                                      const Standard_Boolean DisOnP)
 {
-  // calcul du conge plan.
-  // or1 et or2 permettent de determiner dans lequel des 4 cotes crees par
-  // l'intersection des 2 surfaces_on est
-  //        _|_  et Ofpl qui est l'orientation de la face du plan permettant
-  //         |4          de determiner le cote de la matiere
+  // calculation of the fillet plane.
+  // or1 and or2 permit to determine in which of four sides created by
+  // intersection of 2 surfaces we are
+  //        _|_          Ofpl is orientation of the plane face allowing
+  //         |4          to determine the side of the material
 
   gp_Pnt OrSpine = ElCLib::Value(First, Spine);
   gp_Pnt POnCyl, POnPln, OrCyl;
@@ -349,15 +349,15 @@ Standard_Boolean ChFiKPart_MakeChAsym(TopOpeBRepDS_DataStructure& DStr,
     {NorF.Reverse();} 
 
   gp_Ax3 AxCyl = Cyl.Position();
-  // OrCyl est le point sur l'axe du cylindre dans le plan normal a l'axe
-  // contenant OrSpine
+  // OrCyl is the point on axis of cylinder in the plane normal to the
+  // axis containing OrSpine
   gp_Pnt Loc = AxCyl.Location();
   gp_Vec LocSp(Loc, OrSpine);
   gp_XYZ temp = AxCyl.Direction().XYZ();
   temp = temp.Multiplied(LocSp.XYZ().Multiplied(temp) );
   OrCyl.SetXYZ( (Loc.XYZ()).Added(temp) );
  
-  //construction de POnPln
+  //construction of POnPln
   gp_Vec VecTranslPln,tmp;
 
  tmp = gp_Vec(OrSpine,OrCyl);
@@ -372,7 +372,7 @@ Standard_Boolean ChFiKPart_MakeChAsym(TopOpeBRepDS_DataStructure& DStr,
   gp_Vec VecTranslCyl;
   VecTranslCyl = gp_Vec(OrSpine,OrCyl);
 
-  // Calcul des distances dis1 et dis2, en fonction de Dis et Angle
+  // Calculation of distances dis1 and dis2, depending on Dis and Angle
   gp_Vec DirSOrC = VecTranslCyl.Normalized();
   Standard_Real cosA1 = DirSOrC.Dot(VecTranslPln.Normalized());
   Standard_Real sinA1 = Sqrt(1. - cosA1 * cosA1);
@@ -397,7 +397,7 @@ Standard_Boolean ChFiKPart_MakeChAsym(TopOpeBRepDS_DataStructure& DStr,
     dis2 = temp2 + temp1 * (cosAhOC - temp1);
 
     if (dis2 < -1.E-09) {
-      cout<<"angle du chanfrein trop grand"<<endl;
+      cout<<"too great angle of chamfer"<<endl;
       return Standard_False;
     }
     else if (dis2 < 1.E-09) {
@@ -411,7 +411,7 @@ Standard_Boolean ChFiKPart_MakeChAsym(TopOpeBRepDS_DataStructure& DStr,
     dis2 = Dis;
   }
 
-  //construction de POnCyl 
+  //construction of POnCyl 
   Standard_Real alpha = ( 2*ASin(dis2*0.5/ray) );
   gp_Vec VecTemp = VecTranslCyl.Reversed();
 
@@ -428,7 +428,7 @@ Standard_Boolean ChFiKPart_MakeChAsym(TopOpeBRepDS_DataStructure& DStr,
   ElSLib::CylinderD1(UOnCyl, VOnCyl, AxCyl, Cyl.Radius(),
                      POnCyl, DUOnCyl, DVOnCyl);                
 
-  // Construction du point sur le plan
+  // Construction of the point on the plane
   if (!IsDisOnP) {
     gp_Vec Corde(POnCyl, OrSpine);
     gp_Vec TCyl = DUOnCyl.Crossed(DVOnCyl);
@@ -455,11 +455,11 @@ Standard_Boolean ChFiKPart_MakeChAsym(TopOpeBRepDS_DataStructure& DStr,
 
   POnPln.SetXYZ( (OrSpine.XYZ()).Added(VecTranslPln.XYZ()) );
 
-  //construction du chanfrein  
+  //construction of the chamfer  
   ElSLib::Parameters(Pln,POnPln,UOnPln,VOnPln);
   POnPln = ElSLib::PlaneValue(UOnPln,VOnPln,AxPln);
 
-  //construction de YDir pour aller de face1 vers face2.
+  //construction of YDir to go from face1 to face2.
   gp_Vec YDir(POnPln,POnCyl);
   if (!plandab){ 
     YDir.Reverse();
@@ -469,7 +469,7 @@ Standard_Boolean ChFiKPart_MakeChAsym(TopOpeBRepDS_DataStructure& DStr,
   Handle(Geom_Plane) Chamfer = new Geom_Plane(AxCh);
   Data->ChangeSurf(ChFiKPart_IndexSurfaceInDS(Chamfer,DStr));
 
-  // On charge les FaceInterferences avec les pcurves et courbes 3d.
+  // FaceInterferences are loaded with pcurves and curves 3d.
      //----------- edge plan-Chamfer
   gp_Pnt2d PPln2d(UOnPln,VOnPln);
   gp_Dir2d VPln2d(XDir.Dot(AxPln.XDirection()),
@@ -495,7 +495,7 @@ Standard_Boolean ChFiKPart_MakeChAsym(TopOpeBRepDS_DataStructure& DStr,
 
   if ( !IsDisOnP && PosChamfPln )
     toreverse = !toreverse;
-  // On regarde si l orientation du Chamfer est la meme que celle du plan
+  // It is checked if the orientation of the Chamfer is the same as of the plane
   if (toreverse)
     {Data->ChangeOrientation() = TopAbs::Reverse(Ofpl);}
   else          
@@ -505,7 +505,7 @@ Standard_Boolean ChFiKPart_MakeChAsym(TopOpeBRepDS_DataStructure& DStr,
   if ((!plandab && toreverse) || (plandab && !toreverse))
     {trans=TopAbs_REVERSED;}
   
-  //trans permet de determiner le cote "matiere" sur S1(2) delimite par L3d
+  //trans allows to determine the "material" side on S1(2) limited by L3d
   if (plandab) 
     {Data->ChangeInterferenceOnS1().
      SetInterference(ChFiKPart_IndexCurveInDS(L3d,DStr),trans,LFac,LFil);}
index 31ab8ca2118f810235f5bd1900f9a0aa318d0ec3..1404009eae2cb73f77f514b3b81cce444a354414 100755 (executable)
@@ -121,7 +121,7 @@ Standard_Boolean ChFiKPart_MakeChamfer(TopOpeBRepDS_DataStructure& DStr,
     Rad = Cyl.Radius()- Dis1;
     if ( Abs(Rad) <= Precision::Confusion() ) pointu = Standard_True;
     if(Rad < 0 ) {
-      cout<<"le chanfrein ne passe pas"<<endl;
+      cout<<"the chamfer can't pass"<<endl;
       return Standard_False;
     }
   }
@@ -305,7 +305,7 @@ Standard_Boolean ChFiKPart_MakeChamfer(TopOpeBRepDS_DataStructure& DStr,
 
 //=======================================================================
 //function : MakeChamfer
-//purpose  : cas cylindre/plan ou plan/cylindre.
+//purpose  : case cylinder/plane or plane/cylinder.
 //=======================================================================
 
 Standard_Boolean ChFiKPart_MakeChamfer(TopOpeBRepDS_DataStructure& DStr,
@@ -323,11 +323,12 @@ Standard_Boolean ChFiKPart_MakeChamfer(TopOpeBRepDS_DataStructure& DStr,
                                       const TopAbs_Orientation Ofpl,
                                       const Standard_Boolean plandab)
 {
-  //calcul du conge plan.
-   //or1 et or2 permettent de determiner dans lequel des 4 cotes crees par
-   //l'intersection des 2 surfaces_ on est
-   //        _|_  et Ofpl qui est l'orientation de la face du plan permettant
-   //         |4          de determiner le cote de la matiere
+  // calculation of the fillet plane.
+  // or1 and or2 permit to determine in which of four sides created by
+  // intersection of 2 surfaces we are
+  //        _|_          Ofpl is orientation of the plane face allowing
+  //         |4          to determine the side of the material
+
 
   Standard_Real dis1=Dis1, dis2=Dis2; 
   if (!plandab){
@@ -345,8 +346,8 @@ Standard_Boolean ChFiKPart_MakeChamfer(TopOpeBRepDS_DataStructure& DStr,
     {NorF.Reverse();} 
 
   gp_Ax3 AxCyl = Cyl.Position();
-  // OrCyl est le point sur l'axe du cylindre dans le plan normal a l'axe
-  // contenant OrSpine
+  // OrCyl is the point on axis of cylinder in the plane normal to the
+  // axis containing OrSpine
   gp_Pnt Loc = AxCyl.Location();
   gp_Vec LocSp(Loc, OrSpine);
   gp_XYZ temp = AxCyl.Direction().XYZ();
@@ -357,7 +358,7 @@ Standard_Boolean ChFiKPart_MakeChamfer(TopOpeBRepDS_DataStructure& DStr,
 //  OrCyl.SetXYZ( (AxCyl.Location().XYZ()).Added(temp) );
 
  
-  //construction de POnPln
+  //construction of POnPln
   gp_Vec VecTranslPln,tmp;
 
   tmp = gp_Vec(OrSpine,OrCyl);
@@ -372,7 +373,7 @@ Standard_Boolean ChFiKPart_MakeChamfer(TopOpeBRepDS_DataStructure& DStr,
 
   POnPln.SetXYZ( (OrSpine.XYZ()).Added(VecTranslPln.XYZ()) );
 
-  //construction de POnCyl 
+  //construction of POnCyl 
   Standard_Real alpha = ( 2*ASin(dis2*0.5/Cyl.Radius()) );
 //  gp_Vec VecTranslCyl;
 //  VecTranslCyl = gp_Vec(OrSpine,OrCyl);
@@ -394,14 +395,14 @@ Standard_Boolean ChFiKPart_MakeChamfer(TopOpeBRepDS_DataStructure& DStr,
 
   POnCyl.SetXYZ( OrCyl.XYZ().Added(VecCylTransl.XYZ()) );
 
-  //construction du chanfrein  
+  //construction of chamfer  
   Standard_Real UOnCyl,VOnCyl,UOnPln,VOnPln;
   ElSLib::Parameters(Cyl,POnCyl,UOnCyl,VOnCyl);
   POnCyl = ElSLib::CylinderValue(UOnCyl,VOnCyl,AxCyl,Cyl.Radius());            
   ElSLib::Parameters(Pln,POnPln,UOnPln,VOnPln);
   POnPln = ElSLib::PlaneValue(UOnPln,VOnPln,AxPln);
 
-  //construction de YDir pour aller de face1 vers face2.
+  //construction of YDir to go to face1 from face2.
   gp_Vec YDir(POnPln,POnCyl);
   if (!plandab){ 
     YDir.Reverse();
@@ -411,8 +412,8 @@ Standard_Boolean ChFiKPart_MakeChamfer(TopOpeBRepDS_DataStructure& DStr,
   Handle(Geom_Plane) Chamfer = new Geom_Plane(AxCh);
   Data->ChangeSurf(ChFiKPart_IndexSurfaceInDS(Chamfer,DStr));
 
-  // On charge les FaceInterferences avec les pcurves et courbes 3d.
-     //----------- edge plan-Chamfer
+  // FaceInterferences are loaded with pcurves and curves 3d.
+     //----------- edge plane-Chamfer
   gp_Pnt2d PPln2d(UOnPln,VOnPln);
   gp_Dir2d VPln2d(XDir.Dot(AxPln.XDirection()),
                  XDir.Dot(AxPln.YDirection()));
@@ -438,7 +439,7 @@ Standard_Boolean ChFiKPart_MakeChamfer(TopOpeBRepDS_DataStructure& DStr,
 
   if (PosChamfPln )
     toreverse = !toreverse; 
-  // On regarde si l orientation du Chamfer est la meme que celle du plan
+  // It is checked if the orientation of the Chamfer is the same as of the plane
   if (toreverse)
     {Data->ChangeOrientation() = TopAbs::Reverse(Ofpl);}
   else          
@@ -448,7 +449,7 @@ Standard_Boolean ChFiKPart_MakeChamfer(TopOpeBRepDS_DataStructure& DStr,
   if ((!plandab && toreverse) || (plandab && !toreverse))
     {trans=TopAbs_REVERSED;}
   
-  //trans permet de determiner le cote "matiere" sur S1(2) delimite par L3d
+  //trans permits to determine the "material" side on S1(2) limited by L3d
   if (plandab) 
     {Data->ChangeInterferenceOnS1().
      SetInterference(ChFiKPart_IndexCurveInDS(L3d,DStr),trans,LFac,LFil);}
@@ -456,7 +457,7 @@ Standard_Boolean ChFiKPart_MakeChamfer(TopOpeBRepDS_DataStructure& DStr,
     {Data->ChangeInterferenceOnS2().
      SetInterference(ChFiKPart_IndexCurveInDS(L3d,DStr),trans,LFac,LFil);}
   
-     //------------edge cylindre-Chamfer       
+     //------------edge cylinder-Chamfer       
   gp_Pnt2d PCyl2d(UOnCyl,VOnCyl);
   gp_Dir2d VCyl2d=gp::DY2d();
   if ( XDir.Dot(AxCyl.Direction())<0 )
index bc8c525086ea09e8834cf01ba9b8ebb1a509e044..b83dcf2a05eedac384bbd8ca31f2c9d98312d6e2 100755 (executable)
@@ -45,8 +45,8 @@ Standard_Real  ChFiKPart_InPeriod(const Standard_Real U,
 
 //=======================================================================
 //function : PCurve 
-//purpose  : Calcule une droite sous forme de BSpline pour garantir 
-//           les parametres.
+//purpose  : Calculate a straight line in form of BSpline to guarantee 
+//           the parameters.
 //=======================================================================
 
 Handle(Geom2d_BSplineCurve) ChFiKPart_PCurve(const gp_Pnt2d& UV1,
@@ -69,8 +69,8 @@ Handle(Geom2d_BSplineCurve) ChFiKPart_PCurve(const gp_Pnt2d& UV1,
 
 //=======================================================================
 //function : ProjPC
-//purpose  : Pour les coins spheriques dont les contours ne son
-//           pas des isos on projette le cercle.
+//purpose  : For spherical corners the contours which of are no
+//           isos the circle is projected.
 //=======================================================================
 
 void ChFiKPart_ProjPC(const GeomAdaptor_Curve& Cg, 
@@ -156,17 +156,17 @@ void ChFiKPart_ProjPC(const GeomAdaptor_Curve& Cg,
       break;
 #endif
       default :
-      Standard_NotImplemented::Raise("echec approximation de la pcurve ");
+      Standard_NotImplemented::Raise("failed approximation of the pcurve ");
     }
   }
   else {
-    Standard_NotImplemented::Raise("approx pcurve sur une surface gauche");
+    Standard_NotImplemented::Raise("approximate pcurve on the left surface");
   }
 }
 
 //=======================================================================
 //function : IndexCurveInDS
-//purpose  : Met une Curve dans la DS et renvoie son index.
+//purpose  : Place a Curve in the DS and return its index.
 //=======================================================================
 
 Standard_Integer ChFiKPart_IndexCurveInDS(const Handle(Geom_Curve)& C,
@@ -178,7 +178,7 @@ Standard_Integer ChFiKPart_IndexCurveInDS(const Handle(Geom_Curve)& C,
 
 //=======================================================================
 //function : IndexSurfaceInDS
-//purpose  : Met une Surface dans la DS et renvoie son index.
+//purpose  : Place a Surface in the DS and return its index.
 //=======================================================================
 
 Standard_Integer ChFiKPart_IndexSurfaceInDS(const Handle(Geom_Surface)& S,
index 9bfd76a87796a5d6ad2c7cb6d59489a7789758b1..85685f577feb4933d2ec3d02692b27b599c4785e 100755 (executable)
@@ -35,7 +35,7 @@
 
 //=======================================================================
 //function : MakeFillet
-//purpose  : cas cone/plan ou plan/cone.
+//purpose  : case cone/plane or plane/cone.
 //=======================================================================
 
 Standard_Boolean ChFiKPart_MakeFillet(TopOpeBRepDS_DataStructure& DStr,
@@ -52,7 +52,7 @@ Standard_Boolean ChFiKPart_MakeFillet(TopOpeBRepDS_DataStructure& DStr,
                                      const TopAbs_Orientation Ofpl,
                                      const Standard_Boolean plandab)
 {
-//calcul du conge (tore ou sphere).
+//calculate the fillet (torus or sphere).
   Standard_Boolean c1sphere = Standard_False;
   gp_Ax3 PosPl = Pln.Position();
   gp_Dir Dpnat = PosPl.XDirection().Crossed(PosPl.YDirection());
@@ -78,8 +78,8 @@ Standard_Boolean ChFiKPart_MakeFillet(TopOpeBRepDS_DataStructure& DStr,
                           Precision::Confusion());
   gp_Pnt Pv;
   if (CInt.IsDone()) {
-    //On met l origine du conge au point de depart fourni sur la 
-    //ligne guide.
+    //The origin of the fillet is set at the start point on the  
+    //guideline.
     Pv = ElCLib::Value(ElCLib::Parameter(CInt.Circle(1),PtSp),
                       CInt.Circle(1));
   }
@@ -113,7 +113,7 @@ Standard_Boolean ChFiKPart_MakeFillet(TopOpeBRepDS_DataStructure& DStr,
     Rad = Maxrad - Rabio;
     if(Abs(Rad) <= Precision::Confusion()){ c1sphere = Standard_True; }
     else if(Rad < 0){ 
-      cout<<"le conge ne passe pas"<<endl; 
+      cout<<"the fillet does not pass"<<endl; 
       return Standard_False;
     }
   }
@@ -135,8 +135,8 @@ Standard_Boolean ChFiKPart_MakeFillet(TopOpeBRepDS_DataStructure& DStr,
     Data->ChangeSurf(ChFiKPart_IndexSurfaceInDS(gtor,DStr));
   }
   
-  // On regarde si l orientation du conge est la meme que celle 
-  // des faces.
+  // It is checked if the orientation of the fillet is the same  
+  // as of the faces.
   gp_Pnt P,PP;
   gp_Vec deru,derv;
   P.SetCoord(cPln.X()+Rad*Dx.X(),
@@ -157,10 +157,10 @@ Standard_Boolean ChFiKPart_MakeFillet(TopOpeBRepDS_DataStructure& DStr,
   if (toreverse) { Data->ChangeOrientation() = TopAbs_REVERSED; }
   else { Data->ChangeOrientation() = TopAbs_FORWARD; }
 
-  // On charge les FaceInterferences avec les pcurves et courbes 3d.
+  // FaceInterferences are loaded with pcurves and curves 3d.
   // ---------------------------------------------------------------
 
-  // La face plane.
+  // The plane face.
   // --------------
 
   Handle(Geom2d_Circle) GCirc2dPln;
@@ -198,7 +198,7 @@ Standard_Boolean ChFiKPart_MakeFillet(TopOpeBRepDS_DataStructure& DStr,
                      trans,GCirc2dPln,GLin2dFil1);
   }
 
-  // La face conique.
+  // The conic face.
   // ----------------
 
   P.SetCoord(Pv.X()+Rabio*ddc.X(),
index 389a16d64bd85947d5aa679ebacb0ebec89a371d..affc307819abdb043793fed6d896dbe6d2435777 100755 (executable)
@@ -36,7 +36,7 @@
 
 //=======================================================================
 //function : MakeFillet
-//purpose  : cas cylindre/plan ou plan/cylindre.
+//purpose  : case cylinder/plane or plane/cylinder.
 //=======================================================================
 
 Standard_Boolean ChFiKPart_MakeFillet(TopOpeBRepDS_DataStructure& DStr,
@@ -53,9 +53,9 @@ Standard_Boolean ChFiKPart_MakeFillet(TopOpeBRepDS_DataStructure& DStr,
                                      const TopAbs_Orientation Ofpl,
                                      const Standard_Boolean plandab)
 {
-  //calcul du conge cylindre.
+  //calculate the cylinder fillet.
 
-  //plan deporte de radius
+  //plane deviated from radius
   gp_Ax3 AxPln  = Pln.Position();
   gp_Dir NorPln = AxPln.XDirection().Crossed(AxPln.YDirection());
   gp_Dir NorF(NorPln);
@@ -64,7 +64,7 @@ Standard_Boolean ChFiKPart_MakeFillet(TopOpeBRepDS_DataStructure& DStr,
   if (Or1 == TopAbs_REVERSED) { NorF.Reverse(); } 
   gp_Pln PlanOffset = Pln.Translated(Radius*gp_Vec(NorF));
 
-  // Cylindre parallele
+  // Parallel cylinder
   Standard_Real    ROff = Cyl.Radius();
   Standard_Boolean dedans = Standard_False;
 
@@ -76,11 +76,11 @@ Standard_Boolean ChFiKPart_MakeFillet(TopOpeBRepDS_DataStructure& DStr,
   }
   else {
 #ifdef DEB
-    cout<<"le conge ne passe pas"<<endl; 
+    cout<<"the fillet does not pass"<<endl; 
 #endif
     return Standard_False;
   }
-  // intersection du plan parallele et du cylindre parallele.
+  // intersection of the parallel plane and of the parallel cylinder.
   gp_Cylinder CylOffset(Cyl.Position(),ROff);
   IntAna_QuadQuadGeo LInt(PlanOffset,CylOffset,
                          Precision::Angular(),Precision::Confusion());
@@ -103,7 +103,7 @@ Standard_Boolean ChFiKPart_MakeFillet(TopOpeBRepDS_DataStructure& DStr,
   }
   else {return Standard_False;}
 
-  // Construction conge
+  // Construction fillet
   if (DirFillet.Dot(Spine.Direction()) < 0.) {DirFillet.Reverse();}
 
   Standard_Real UOnCyl,VOnCyl,UOnPln,VOnPln;
@@ -123,7 +123,7 @@ Standard_Boolean ChFiKPart_MakeFillet(TopOpeBRepDS_DataStructure& DStr,
     OtherDir = tmp;
   }
   gp_Ax3 AxFil (OrFillet,DirFillet,XDir);
-  // construction YDir pour aller de face1 vers face2.
+  // construction YDir to go from face1 to face2.
   if ((XDir^OtherDir).Dot(DirFillet) < 0.)
     AxFil.YReverse();
 
@@ -131,8 +131,8 @@ Standard_Boolean ChFiKPart_MakeFillet(TopOpeBRepDS_DataStructure& DStr,
     Fillet = new Geom_CylindricalSurface(AxFil,Radius);
   Data->ChangeSurf(ChFiKPart_IndexSurfaceInDS(Fillet,DStr));
 
-  // On charge les FaceInterferences avec les pcurves et courbes 3d.
-  // edge plan-Fillet
+  // FaceInterferences are loaded with pcurves and curves 3D.
+  // edge plane-Fillet
   gp_Pnt2d PPln2d(UOnPln,VOnPln);
   gp_Dir2d VPln2d(DirFillet.Dot(AxPln.XDirection()),
                  DirFillet.Dot(AxPln.YDirection()));
@@ -151,8 +151,7 @@ Standard_Boolean ChFiKPart_MakeFillet(TopOpeBRepDS_DataStructure& DStr,
   ElSLib::CylinderD1(UOnFillet,V,AxFil,Radius,P,deru,derv);
   gp_Dir NorFil(deru.Crossed(derv));
   Standard_Boolean toreverse = ( NorFil.Dot(NorPln) <= 0. );
-  // On regarde si l orientation du cylindre est la meme que celle 
-  // du plan.
+  // It is checked if the orientation of the cylinder is the same as of the plane.
   if (toreverse) {Data->ChangeOrientation() = TopAbs::Reverse(Ofpl);}
   else           {Data->ChangeOrientation() = Ofpl;}
 
@@ -172,7 +171,7 @@ Standard_Boolean ChFiKPart_MakeFillet(TopOpeBRepDS_DataStructure& DStr,
     SetInterference(ChFiKPart_IndexCurveInDS(L3d,DStr),
                    trans,LFac,LFil);
 
-  // edge cylindre-Fillet.
+  // edge cylinder-Fillet.
   gp_Pnt2d PCyl2d(UOnCyl,VOnCyl);
   gp_Dir2d DPC = gp::DY2d();
   if (DirFillet.Dot(AxCyl.Direction()) < 0.) DPC.Reverse();
@@ -211,7 +210,7 @@ Standard_Boolean ChFiKPart_MakeFillet(TopOpeBRepDS_DataStructure& DStr,
 
 //=======================================================================
 //function : MakeFillet
-//purpose  : cas cylindre/plan ou plan/cylindre.
+//purpose  : case cylinder/plane or plane/cylinder.
 //=======================================================================
 
 Standard_Boolean ChFiKPart_MakeFillet(TopOpeBRepDS_DataStructure& DStr,
@@ -229,7 +228,7 @@ Standard_Boolean ChFiKPart_MakeFillet(TopOpeBRepDS_DataStructure& DStr,
                                      const Standard_Boolean plandab)
 {
 
-//calcul du conge (tore ou sphere).
+//calculation of the fillet (torus or sphere).
   Standard_Boolean c1sphere = Standard_False;
   gp_Ax3 PosPl = Pln.Position();
   gp_Dir Dpnat = PosPl.XDirection().Crossed(PosPl.YDirection());
@@ -249,7 +248,7 @@ Standard_Boolean ChFiKPart_MakeFillet(TopOpeBRepDS_DataStructure& DStr,
              Or.Z()+Radius*Dp.Z());
   gp_Pnt PtSp;
   gp_Vec DSp;
- // Modification pour les PtSp trouves du mauvais cote de l'arete de couture.
+ // Modification for the PtSp found at the wrong side of the sewing edge.
   gp_Pnt PtSp2;
   gp_Vec DSp2;
   Standard_Real acote = 1e-7;
@@ -267,7 +266,7 @@ Standard_Boolean ChFiKPart_MakeFillet(TopOpeBRepDS_DataStructure& DStr,
       ElCLib::D1(PR,Spine,PtSp2,DSp);
     }
   }
-  // fin de modif
+  // end of modif
   gp_Dir Dx(gp_Vec(Or,PtSp));
   Dx = Dp.Crossed(Dx.Crossed(Dp));
   gp_Dir Dy(DSp);
@@ -285,7 +284,7 @@ Standard_Boolean ChFiKPart_MakeFillet(TopOpeBRepDS_DataStructure& DStr,
     if(Abs(Rad) <= Precision::Confusion()){ c1sphere = Standard_True; }
     else if(Rad < 0){ 
 #ifdef DEB
-      cout<<"le conge ne passe pas"<<endl; 
+      cout<<"the fillet can't pass"<<endl; 
 #endif
       return Standard_False;
     }
@@ -308,8 +307,7 @@ Standard_Boolean ChFiKPart_MakeFillet(TopOpeBRepDS_DataStructure& DStr,
     Data->ChangeSurf(ChFiKPart_IndexSurfaceInDS(gtor,DStr));
   }
   
-  // On regarde si l orientation du conge est la meme que celle 
-  // des faces.
+  // It is checked if the orientation of the fillet is the same as of faces.
   gp_Pnt P,PP;
   gp_Vec deru,derv;
   P.SetCoord(cPln.X()+Rad*Dx.X(),
@@ -336,9 +334,9 @@ Standard_Boolean ChFiKPart_MakeFillet(TopOpeBRepDS_DataStructure& DStr,
   if (toreverse) { Data->ChangeOrientation() = TopAbs_REVERSED; }
   else { Data->ChangeOrientation() = TopAbs_FORWARD; }
 
-  // On charge les FaceInterferences avec les pcurves et courbes 3d.
+  // FaceInterferences are loaded with pcurves and curves 3d.
 
-  // La face plane.
+  // The plane face.
   Handle(Geom2d_Circle) GCirc2dPln;
   Handle(Geom_Circle) GCircPln;
   gp_Ax2 circAx2 = FilAx3.Ax2();
@@ -384,7 +382,7 @@ Standard_Boolean ChFiKPart_MakeFillet(TopOpeBRepDS_DataStructure& DStr,
                      trans,GCirc2dPln,GLin2dFil1);
   }
 
-  // La face cylindrique.
+  // The cylindrical face.
   P.SetCoord(Or.X()+cylrad*Dx.X(),
             Or.Y()+cylrad*Dx.Y(),
             Or.Z()+cylrad*Dx.Z());
index b5e0ff6d944f8bfbda54b7417c08501aaed1075d..f5478e408efb59efe32d5e998f5540f3fa3d48fe 100755 (executable)
@@ -26,8 +26,8 @@
 
 //=======================================================================
 //function : ChFiKPart_Sphere
-//purpose  : Construction d un conge spherique dont les contours ne sont
-//           pas tous des isos, a partir de ses trois sommets.
+//purpose  : Construction of a spherical fillet the contours which of 
+//           are not all isos, from three tops.
 //=======================================================================
 
 Standard_Boolean ChFiKPart_Sphere(TopOpeBRepDS_DataStructure& DStr,
@@ -43,10 +43,10 @@ Standard_Boolean ChFiKPart_Sphere(TopOpeBRepDS_DataStructure& DStr,
                                  const gp_Pnt2d& P1S2,
                                  const gp_Pnt2d& P2S2)
 {
-  // Construction de la sphere :
-  // - pole sud sur PS1
-  // - origine des u donnee par P1S2
-  // - u+ vers P2S2
+  // Construction of the sphere :
+  // - pole south on PS1
+  // - origine of u given by P1S2
+  // - u+ to P2S2
 
   Standard_Real ptol = Precision::Confusion();
   gp_Pnt p1,p2,p3;
@@ -75,7 +75,7 @@ Standard_Boolean ChFiKPart_Sphere(TopOpeBRepDS_DataStructure& DStr,
     dz = gp_Dir(gp_Vec(p1,cen));
     if(Abs(ds1.Dot(dz)-1.)>ptol){
 #ifdef DEB
-      cout<<"centre du coin spherique non trouve"<<endl;
+      cout<<"center of the spherical corner not found"<<endl;
 #endif
       return Standard_False;
     }
@@ -95,22 +95,22 @@ Standard_Boolean ChFiKPart_Sphere(TopOpeBRepDS_DataStructure& DStr,
     gsph = new Geom_SphericalSurface(FilAx3,Rad);
   Data->ChangeSurf(ChFiKPart_IndexSurfaceInDS(gsph,DStr));
 
-  // on compare la normale de la sphere a celle de la face
-  // orientee pour determiner l orientation finale du conge.
+  // the normal of the sphere is compared to the normal of the face
+  // oriented to determine the final orientation of the fillet.
   Standard_Boolean toreverse = ( ddz.Dot(df1) <= 0. );
   if (toreverse) { Data->ChangeOrientation() = TopAbs_REVERSED; }
   else { Data->ChangeOrientation() = TopAbs_FORWARD; }
 
-  // On calcule les parametres de p2 et p3 sur la Sphere pour avoir
-  // les ranges des courbes.
+  // Parameters of p2 and p3 are calculated on the Sphere to have 
+  // ranges of curves.
   Standard_Real uu1,vv1,uu2,vv2;
   ElSLib::SphereParameters(FilAx3,Rad,p2,uu1,vv1);
   uu1 = 0.;
   ElSLib::SphereParameters(FilAx3,Rad,p3,uu2,vv2);
 
-  // On charge les FaceInterferences avec les pcurves et courbes 3d.
+  // FaceInterferences are loaded with pcurves and curves 3d.
 
-  // Le cote pointu.
+  // Pointed side.
   
   Handle(Geom_Curve) C;
   Handle(Geom2d_Curve) C2d;
@@ -124,7 +124,7 @@ Standard_Boolean ChFiKPart_Sphere(TopOpeBRepDS_DataStructure& DStr,
     SetInterference(ChFiKPart_IndexCurveInDS(C,DStr),
                    trans,C2d,C2dFil);
 
-  // L autre cote.
+  // The other side.
 
   Standard_Real ang = ddx.Angle(ddy);
   gp_Dir dci = ddx.Crossed(ddy);
index 423799c23a2908e5503271e7b52b2a8422546002..63c9864b13c1a7a6972344c13ffb8d0ee8d8d974 100755 (executable)
@@ -294,7 +294,7 @@ void DsgPrs_AnglePresentation::Add (const Handle(Prs3d_Presentation)& aPresentat
 
   if (uco > ufin) {
     if (Abs(theval)<PI) {
-      // test si uco est dans le secteur oppose 
+      // test if uco is in the opposite sector 
       if (uco > udeb+PI && uco < ufin+PI){
        udeb = udeb + PI;
        ufin = ufin + PI;
@@ -331,7 +331,7 @@ void DsgPrs_AnglePresentation::Add (const Handle(Prs3d_Presentation)& aPresentat
   ElCLib::D1(uc1,cer,ptarr,vecarr);
   gp_Ax1 ax1(ptarr, axisdir);
   gp_Dir dirarr(-vecarr);
-  //calcul de l'angle de rotation
+  //calculate angle of rotation
   Standard_Real beta(0.);
   Standard_Real length = LA->ArrowAspect()->Length();
   if (length <  Precision::Confusion()) length = 1.e-04;
@@ -482,7 +482,7 @@ void DsgPrs_AnglePresentation::Add( const Handle(Prs3d_Presentation)& aPresentat
        }      
       else
        {
-         // Creating the arc from AttachmentPoint2 to its "projection"
+         // Creating the arc from AttachmentPoint2 to its projection
          Standard_Real Alpha  = Abs( LastParAttachCirc - FirstParAttachCirc );
          Standard_Integer NodeNumber = Max (4 , Standard_Integer (50. * Alpha / PI));
          Graphic3d_Array1OfVertex ApproxArc( 0, NodeNumber-1 );
@@ -559,7 +559,7 @@ void DsgPrs_AnglePresentation::Add (const Handle(Prs3d_Presentation)& aPresentat
 
   if (uco > ufin) {
     if (Abs(theval)<PI) {
-      // test si uco est dans le secteur oppose 
+      // test if uco is in the opposite sector 
       if (uco > udeb+PI && uco < ufin+PI){
        udeb = udeb + PI;
        ufin = ufin + PI;
@@ -596,7 +596,7 @@ void DsgPrs_AnglePresentation::Add (const Handle(Prs3d_Presentation)& aPresentat
   ElCLib::D1(uc1,cer,ptarr,vecarr);
   gp_Ax1 ax1(ptarr, Norm);
   gp_Dir dirarr(-vecarr);
-  //calcul de l'angle de rotation
+  //calculate the angle of rotation
   Standard_Real beta;
   Standard_Real length = LA->ArrowAspect()->Length();
   if (length <  Precision::Confusion()) length = 1.e-04;
@@ -638,8 +638,7 @@ void DsgPrs_AnglePresentation::Add (const Handle(Prs3d_Presentation)& aPresentat
 
 //==========================================================================
 // function : DsgPrs_AnglePresentation::Add
-// purpose  : ODL 4-fevrier-97 
-//  on peut choisir le symbol des extremites de la cote (fleche, point ...)
+// purpose  : It is possible to choose the symbol of extremities of the face (arrow, point...)
 //==========================================================================
 
 void DsgPrs_AnglePresentation::Add (const Handle(Prs3d_Presentation)& aPresentation,
@@ -684,7 +683,7 @@ void DsgPrs_AnglePresentation::Add (const Handle(Prs3d_Presentation)& aPresentat
 
   if (uco > ufin) {
     if (Abs(theval)<PI) {
-      // test si uco est dans le secteur oppose 
+      // test if uco is in the opposite sector 
       if (uco > udeb+PI && uco < ufin+PI){
        udeb = udeb + PI;
        ufin = ufin + PI;
@@ -716,13 +715,13 @@ void DsgPrs_AnglePresentation::Add (const Handle(Prs3d_Presentation)& aPresentat
   
   Prs3d_Text::Draw(aPresentation,LA->TextAspect(),aText,OffsetPoint);
   
-// Lignes de rappel
+// Lines of recall
   gp_Vec vecarr;
   gp_Pnt ptarr;
   ElCLib::D1(uc1,cer,ptarr,vecarr);
   gp_Ax1 ax1(ptarr, Norm);
   gp_Dir dirarr(-vecarr);
-  //calcul de l'angle de rotation
+  //calculate angle of rotation
   Standard_Real beta(0.);
   Standard_Real length = LA->ArrowAspect()->Length();
   if (length <  Precision::Confusion()) length = 1.e-04;
@@ -756,7 +755,7 @@ void DsgPrs_AnglePresentation::Add (const Handle(Prs3d_Presentation)& aPresentat
   Prs3d_Root::CurrentGroup(aPresentation)->Polyline(Vrap);
 
 
-// On trace les fleches
+// One traces the arrows
   DsgPrs::ComputeSymbol(aPresentation,LA,ptarr,ptarr1,dirarr,dirarr2,ArrowPrs);
 }
 
@@ -812,7 +811,7 @@ void DsgPrs_AnglePresentation::Add (const Handle(Prs3d_Presentation)& aPresentat
 
   if (uco > ufin) {
     if (Abs(theval)<PI) {
-      // test si uco est dans le secteur oppose 
+      // test if uco is in the opposite sector 
       if (uco > udeb+PI && uco < ufin+PI){
        udeb = udeb + PI;
        ufin = ufin + PI;
@@ -849,7 +848,7 @@ void DsgPrs_AnglePresentation::Add (const Handle(Prs3d_Presentation)& aPresentat
   ElCLib::D1(uc1,cer,ptarr,vecarr);
   gp_Ax1 ax1(ptarr, Norm);
   gp_Dir dirarr(-vecarr);
-  //calcul de l'angle de rotation
+  //calculate the angle of rotation
   Standard_Real beta;
   Standard_Real length = LA->ArrowAspect()->Length();
   if (length <  Precision::Confusion()) length = 1.e-04;
index 88cdb0c7b2e258815e9932affb5570e2e7719b8e..af6184cf1b522494f995bc185605a2b514f94693 100755 (executable)
@@ -52,8 +52,7 @@ void DsgPrs_Chamf2dPresentation::Add(
 
 //==========================================================================
 // function : DsgPrs_Chamf2dPresentation::Add
-// purpose  : ODL 4-fevrier-97 
-//  on peut choisir le symbol des extremites de la cote (fleche, point ...)
+// purpose  : it is possible to choose the symbol of extremities of the face (arrow, point ...)
 //==========================================================================
 
 void DsgPrs_Chamf2dPresentation::Add(
index a1d17c06ec3192222c490b20805eae7e8a83f57f..68f42bdda6a1dce90f4d64acc43e3af885287460 100755 (executable)
@@ -36,8 +36,7 @@
 
 //==========================================================================
 // function : DsgPrs_DiameterPresentation::Add
-// purpose  : ODL 4-fevrier-97 
-//  on peut choisir le symbol des extremites de la cote (fleche, point ...)
+// purpose  : it is possible to choose the symbol of extremities of the face (arrow, point ...)
 //==========================================================================
 void DsgPrs_DiameterPresentation::Add (const Handle(Prs3d_Presentation)& aPresentation,
                                       const Handle(Prs3d_Drawer)& aDrawer,
@@ -55,7 +54,7 @@ void DsgPrs_DiameterPresentation::Add (const Handle(Prs3d_Presentation)& aPresen
   Standard_Real parat    = ElCLib::Parameter(aCircle, AttachmentPoint);
   gp_Pnt        ptoncirc = ElCLib::Value    (parat, aCircle);
 
-  // ligne de cote
+  // sideline
 
   gp_Pnt        center  = aCircle.Location();
   gp_Vec        vecrap  (ptoncirc,center);
@@ -160,7 +159,7 @@ void DsgPrs_DiameterPresentation::Add (const Handle(Prs3d_Presentation)& aPresen
 // AspectText3d from Graphic3d
   Standard_Real parEndOfArrow = ElCLib::Parameter(aCircle,AttachmentPoint); //
   gp_Pnt EndOfArrow;
-  gp_Pnt DrawPosition = AttachmentPoint;// attachment point
+  gp_Pnt DrawPosition = AttachmentPoint;// point of attachment
   Standard_Boolean otherside = Standard_False;
 
   gp_Pnt Center = aCircle.Location();
index 9a4627e9cc0851e6ddf8c8c524523795bfdf3b45..f5f00e4df7dda091143bd186952a8dd56ffac0fa 100755 (executable)
@@ -78,7 +78,7 @@ void DsgPrs_LengthPresentation::Add (const Handle(Prs3d_Presentation)& aPresenta
 
   PointMax.Coord(X,Y,Z);
   V(2).SetCoord(X,Y,Z);
-  // trait de cote : 1er groupe
+  // face processing : 1st group
   Prs3d_Root::CurrentGroup(aPresentation)->Polyline(V);
 
   Prs3d_Root::NewGroup(aPresentation);
@@ -92,7 +92,7 @@ void DsgPrs_LengthPresentation::Add (const Handle(Prs3d_Presentation)& aPresenta
   if (outside) {
     arrdir.Reverse();
   }
-  // fleche 1 : 2eme groupe
+  // arrow 1 : 2nd group
   Prs3d_Arrow::Draw(aPresentation,Proj1,arrdir,
                    LA->Arrow1Aspect()->Angle(),
                    LA->Arrow1Aspect()->Length());
@@ -100,14 +100,14 @@ void DsgPrs_LengthPresentation::Add (const Handle(Prs3d_Presentation)& aPresenta
   Prs3d_Root::NewGroup(aPresentation);
   Prs3d_Root::CurrentGroup(aPresentation)->SetPrimitivesAspect(LA->LineAspect()->Aspect());
   
-  // fleche 2 : 3eme groupe
+  // arrow 2 : 3rd group
   Prs3d_Arrow::Draw(aPresentation,Proj2,arrdir.Reversed(),
                    LA->Arrow2Aspect()->Angle(),
                    LA->Arrow2Aspect()->Length());
 
   Prs3d_Root::NewGroup(aPresentation);
   
-  // texte : 4eme groupe
+  // text : 4th group
   Prs3d_Text::Draw(aPresentation,LA->TextAspect(),aText,offp);
   
   AttachmentPoint1.Coord(X,Y,Z);
@@ -117,7 +117,7 @@ void DsgPrs_LengthPresentation::Add (const Handle(Prs3d_Presentation)& aPresenta
 
   Prs3d_Root::NewGroup(aPresentation);
   Prs3d_Root::CurrentGroup(aPresentation)->SetPrimitivesAspect(LA->LineAspect()->Aspect());
-  // trait de rappel 1 : 5eme groupe
+  // processing of call 1 : 5th group
   Prs3d_Root::CurrentGroup(aPresentation)->Polyline(V);
   
   AttachmentPoint2.Coord(X,Y,Z);
@@ -127,7 +127,7 @@ void DsgPrs_LengthPresentation::Add (const Handle(Prs3d_Presentation)& aPresenta
 
   Prs3d_Root::NewGroup(aPresentation);
   Prs3d_Root::CurrentGroup(aPresentation)->SetPrimitivesAspect(LA->LineAspect()->Aspect());
-  // trait de rappel 2 : 6eme groupe
+  // processing of call 2 : 6th group
   Prs3d_Root::CurrentGroup(aPresentation)->Polyline(V);
   
 }
@@ -271,7 +271,7 @@ void DsgPrs_LengthPresentation::Add (const Handle(Prs3d_Presentation)& aPresenta
   PointMax.Coord(X,Y,Z);
   V(2).SetCoord(X,Y,Z);
 
-  // trait de cot
+  // processing of fac
   Prs3d_Root::CurrentGroup(aPresentation)->Polyline(V);
   
   
@@ -290,7 +290,7 @@ void DsgPrs_LengthPresentation::Add (const Handle(Prs3d_Presentation)& aPresenta
   Proj1.Coord(X,Y,Z);
   V(2).SetCoord(X,Y,Z);
 
-  // trait de rappel 1 
+  // processing of call  1 
   Prs3d_Root::CurrentGroup(aPresentation)->Polyline(V);
   
   AttachmentPoint2.Coord(X,Y,Z);
@@ -298,14 +298,14 @@ void DsgPrs_LengthPresentation::Add (const Handle(Prs3d_Presentation)& aPresenta
   Proj2.Coord(X,Y,Z);
   V(2).SetCoord(X,Y,Z);
 
-  // trait de rappel 2 
+  // processing of call 2 
   Prs3d_Root::CurrentGroup(aPresentation)->Polyline(V);
 
  
-  // texte 
+  // text 
   Prs3d_Text::Draw(aPresentation,LA->TextAspect(),aText,offp);
 
-  // symbols aux extremites de la cote
+  // symbols at the extremities of the face
   DsgPrs::ComputeSymbol(aPresentation,LA,Proj1,Proj2,arrdir,arrdir.Reversed(),ArrowPrs);
 }
 
index 9c337a342c1343fe80ecf428b18444c6cbc55a45..da9681a315249b0c4cbcc0bdb8e408a8f4fe3209 100755 (executable)
@@ -68,7 +68,7 @@ void DsgPrs_ParalPresentation::Add (const Handle(Prs3d_Presentation)& aPresentat
 
   PointMax.Coord(X,Y,Z);
   V(2).SetCoord(X,Y,Z);
-  // trait de cote : 1er groupe
+  // processing of side : 1st group
   Prs3d_Root::CurrentGroup(aPresentation)->Polyline(V);
 
   Prs3d_Root::NewGroup(aPresentation);
@@ -82,7 +82,7 @@ void DsgPrs_ParalPresentation::Add (const Handle(Prs3d_Presentation)& aPresentat
   if (outside) {
     arrdir.Reverse();
   }
-  // fleche 1 : 2eme groupe
+  // arrow 1 : 2nd group
   Prs3d_Arrow::Draw(aPresentation,Proj1,arrdir,
                    LA->Arrow1Aspect()->Angle(),
                    LA->Arrow1Aspect()->Length());
@@ -90,14 +90,14 @@ void DsgPrs_ParalPresentation::Add (const Handle(Prs3d_Presentation)& aPresentat
   Prs3d_Root::NewGroup(aPresentation);
   Prs3d_Root::CurrentGroup(aPresentation)->SetPrimitivesAspect(LA->LineAspect()->Aspect());
   
-  // fleche 2 : 3eme groupe
+  // arrow 2 : 3rd group
   Prs3d_Arrow::Draw(aPresentation,Proj2,arrdir.Reversed(),
                    LA->Arrow2Aspect()->Angle(),
                    LA->Arrow2Aspect()->Length());
 
   Prs3d_Root::NewGroup(aPresentation);
   
-  // texte : 4eme groupe
+  // text : 4th group
   Prs3d_Text::Draw(aPresentation,LA->TextAspect(),aText,offp);
   
   AttachmentPoint1.Coord(X,Y,Z);
@@ -107,7 +107,7 @@ void DsgPrs_ParalPresentation::Add (const Handle(Prs3d_Presentation)& aPresentat
 
   Prs3d_Root::NewGroup(aPresentation);
   Prs3d_Root::CurrentGroup(aPresentation)->SetPrimitivesAspect(LA->LineAspect()->Aspect());
-  // trait de rappel 1 : 5eme groupe
+  // processing of call 1 : 5th group
   Prs3d_Root::CurrentGroup(aPresentation)->Polyline(V);
   
   AttachmentPoint2.Coord(X,Y,Z);
@@ -117,7 +117,7 @@ void DsgPrs_ParalPresentation::Add (const Handle(Prs3d_Presentation)& aPresentat
 
   Prs3d_Root::NewGroup(aPresentation);
   Prs3d_Root::CurrentGroup(aPresentation)->SetPrimitivesAspect(LA->LineAspect()->Aspect());
-  // trait de rappel 2 : 6eme groupe
+  // processing of call 2 : 6th group
   Prs3d_Root::CurrentGroup(aPresentation)->Polyline(V);
   
 }
@@ -125,8 +125,7 @@ void DsgPrs_ParalPresentation::Add (const Handle(Prs3d_Presentation)& aPresentat
 
 //==========================================================================
 // function : DsgPrs_ParalPresentation::Add
-// purpose  : ODL 4-fevrier-97 
-//  on peut choisir le symbol des extremites de la cote (fleche, point ...)
+// purpose  : it is possible to choose the symbol of extremities of the face (arrow, point...)
 //==========================================================================
 void DsgPrs_ParalPresentation::Add (const Handle(Prs3d_Presentation)& aPresentation,
                                    const Handle(Prs3d_Drawer)& aDrawer,
@@ -179,7 +178,7 @@ void DsgPrs_ParalPresentation::Add (const Handle(Prs3d_Presentation)& aPresentat
   PointMax.Coord(X,Y,Z);
   V(2).SetCoord(X,Y,Z);
 
-  // trait de cot
+  // processing of fac
   Prs3d_Root::CurrentGroup(aPresentation)->Polyline(V);
   
   if (dist < (LA->Arrow1Aspect()->Length()+LA->Arrow2Aspect()->Length())) {
@@ -197,7 +196,7 @@ void DsgPrs_ParalPresentation::Add (const Handle(Prs3d_Presentation)& aPresentat
   Proj1.Coord(X,Y,Z);
   V(2).SetCoord(X,Y,Z);
 
-  // trait de rappel 1 
+  // processing of call 1 
   Prs3d_Root::CurrentGroup(aPresentation)->Polyline(V);
   
   AttachmentPoint2.Coord(X,Y,Z);
@@ -205,14 +204,14 @@ void DsgPrs_ParalPresentation::Add (const Handle(Prs3d_Presentation)& aPresentat
   Proj2.Coord(X,Y,Z);
   V(2).SetCoord(X,Y,Z);
 
-   // trait de rappel 2 
+   // processing of call 2 
   Prs3d_Root::CurrentGroup(aPresentation)->Polyline(V);
   
   
-  // texte 
+  // text 
   Prs3d_Text::Draw(aPresentation,LA->TextAspect(),aText,offp);
   
-  //fleches
+  //arrows
   DsgPrs::ComputeSymbol(aPresentation,LA,Proj1,Proj2,arrdir,arrdir.Reversed(),ArrowPrs);
 
 
index 51fb13191525342171243c4e92aa6f47f830cbde..99b8bcb975fb89d5bb3f71df0852a700878eeb87 100755 (executable)
@@ -75,7 +75,7 @@ void DsgPrs_SymmetricPresentation::Add (const Handle(Prs3d_Presentation)& aPrese
   gp_Pnt P1,P2;
 
   //===================================
-  // SYMETRIE D'EDGE PERPEND. A L'AXE    
+  // SYMETRY OF EDGE PERPEND. TO THE AXIS    
   //   ____        :        ____
   // edge2 |       : -=-   | edge 1
   //       |<------:------>|
@@ -129,15 +129,15 @@ void DsgPrs_SymmetricPresentation::Add (const Handle(Prs3d_Presentation)& aPrese
 
   
 /*//=======================================================
-  // POUR EVITER LES CROISSEMENTS
-  //        P1  -=- P2                 P2  -=- P1         
-  //          \<-->/                     |<-->|
-  //           \  /                      |    |
-  //            \/                       |    | 
-  //            /\                       |    |
-  //           /  \                      |    |
-  // Pattach2 /____\ Pattach1  Pattach2 /______\ Pattach1
-  //         /  NON \                  /   OUI  \
+  // TO AVOID CROSSING
+  //        P1  -=- P2                P2  -=- P1         
+  //          \<-->/                    |<-->|
+  //           \  /                     |    |
+  //            \/                      |    | 
+  //            /\                      |    |
+  //           /  \                     |    |
+  // Pattach2 /____\ Pattach1 Pattach2 /______\ Pattach1
+  //         /  NO \                  /   YES  \
   //=======================================================
 */
 
@@ -152,7 +152,7 @@ void DsgPrs_SymmetricPresentation::Add (const Handle(Prs3d_Presentation)& aPrese
     P2       = PntTempo;
   }  
 /*  //===================================
-  // CASSURES DES TRAITS DE RAPPEL    
+  // FRACTURES OF TRAITS OF CALL    
   //        /             \         
   //       /               \
   //       |      -=-      |
@@ -165,7 +165,7 @@ void DsgPrs_SymmetricPresentation::Add (const Handle(Prs3d_Presentation)& aPrese
 
   if(aAxis.Distance(P1) > D1*(1 + coeff) && !Cross){
 
-    //==== TRAIT DE COTE ===========
+    //==== PROCESSING OF FACE ===========
     Prs3d_Root::NewGroup(aPresentation);
     Prs3d_Root::CurrentGroup(aPresentation)->SetPrimitivesAspect(LA->LineAspect()->Aspect());
     Pj_P1 = ElCLib::Value(ElCLib::Parameter(aAxis,P1),aAxis);
@@ -177,7 +177,7 @@ void DsgPrs_SymmetricPresentation::Add (const Handle(Prs3d_Presentation)& aPrese
     P2.SetCoord(X,Y,Z);
 
     //=================================
-    // COTATION A L'EXTERIEUR
+    // LISTING AT THE EXTERIOR
     //                        -=-
     //      ->|----------|<------
     //        |          |
@@ -210,7 +210,7 @@ void DsgPrs_SymmetricPresentation::Add (const Handle(Prs3d_Presentation)& aPrese
     V(2).SetCoord(X,Y,Z);
     Prs3d_Root::CurrentGroup(aPresentation)->Polyline(V);
     
-    //==== TRAIT DE RAPPEL 1 =====
+    //==== PROCESSING OF CALL 1 =====
     Prs3d_Root::NewGroup(aPresentation);
     Prs3d_Root::CurrentGroup(aPresentation)->SetPrimitivesAspect(LA->LineAspect()->Aspect());
     AttachmentPoint1.Coord(X,Y,Z);
@@ -228,7 +228,7 @@ void DsgPrs_SymmetricPresentation::Add (const Handle(Prs3d_Presentation)& aPrese
     Vc(3).SetCoord(X,Y,Z);
     Prs3d_Root::CurrentGroup(aPresentation)->Polyline(Vc);
     
-    //==== TRAIT DE RAPPEL 2 =====
+    //==== PROCESSING OF CALL 2 =====
     Prs3d_Root::NewGroup(aPresentation);
     Prs3d_Root::CurrentGroup(aPresentation)->SetPrimitivesAspect(LA->LineAspect()->Aspect());
     AttachmentPoint2.Coord(X,Y,Z);
@@ -247,7 +247,7 @@ void DsgPrs_SymmetricPresentation::Add (const Handle(Prs3d_Presentation)& aPrese
   }
 
 /*//===================================
-  // CASSURES DES TRAITS DE RAPPEL    
+  // FRACTURES OF PROCESSING OF CALL    
   //              -=-    
   //         |<--------->| 
   //         |           |   
@@ -257,7 +257,7 @@ void DsgPrs_SymmetricPresentation::Add (const Handle(Prs3d_Presentation)& aPrese
 */
   else if (aAxis.Distance(P1) < D1*(1 - coeff) || Cross) {
 
-    //------ TRAIT DE COTE ------------
+    //------ PROCESSING OF FACE ------------
     Prs3d_Root::NewGroup(aPresentation);
     Prs3d_Root::CurrentGroup(aPresentation)->SetPrimitivesAspect(LA->LineAspect()->Aspect());
     Pj_P1 = ElCLib::Value(ElCLib::Parameter(aAxis,P1),aAxis);
@@ -269,7 +269,7 @@ void DsgPrs_SymmetricPresentation::Add (const Handle(Prs3d_Presentation)& aPrese
     P2.SetCoord(X,Y,Z);
 
     //=================================
-    // COTATION A L'EXTERIEUR
+    // LISTING AT THE EXTERIOR
     //                        -=-
     //      ->|----------|<------
     //        |          |
@@ -301,7 +301,7 @@ void DsgPrs_SymmetricPresentation::Add (const Handle(Prs3d_Presentation)& aPrese
     V(2).SetCoord(X,Y,Z);
     Prs3d_Root::CurrentGroup(aPresentation)->Polyline(V);
     
-    //==== TRAIT DE RAPPEL 1 =====
+    //==== PROCESSING OF CALL 1 =====
     Prs3d_Root::NewGroup(aPresentation);
     Prs3d_Root::CurrentGroup(aPresentation)->SetPrimitivesAspect(LA->LineAspect()->Aspect());
     AttachmentPoint1.Coord(X,Y,Z);
@@ -319,7 +319,7 @@ void DsgPrs_SymmetricPresentation::Add (const Handle(Prs3d_Presentation)& aPrese
     Vc(3).SetCoord(X,Y,Z);
     Prs3d_Root::CurrentGroup(aPresentation)->Polyline(Vc);
     
-    //==== TRAIT DE RAPPEL 2 =====
+    //==== PROCESSING OF CALL 2 =====
     Prs3d_Root::NewGroup(aPresentation);
     Prs3d_Root::CurrentGroup(aPresentation)->SetPrimitivesAspect(LA->LineAspect()->Aspect());
     AttachmentPoint2.Coord(X,Y,Z);
@@ -338,7 +338,7 @@ void DsgPrs_SymmetricPresentation::Add (const Handle(Prs3d_Presentation)& aPrese
   }
   else {
     
-    //==== TRAIT DE COTE ===========
+    //==== PROCESSING OF FACE ===========
     Prs3d_Root::NewGroup(aPresentation);
     Prs3d_Root::CurrentGroup(aPresentation)->SetPrimitivesAspect(LA->LineAspect()->Aspect());
     PointMin.Coord(X,Y,Z);
@@ -347,7 +347,7 @@ void DsgPrs_SymmetricPresentation::Add (const Handle(Prs3d_Presentation)& aPrese
     V(2).SetCoord(X,Y,Z);
     Prs3d_Root::CurrentGroup(aPresentation)->Polyline(V);
 
-    //==== TRAIT DE RAPPEL 1 =====
+    //==== PROCESSING OF CALL 1 =====
     Prs3d_Root::NewGroup(aPresentation);
     Prs3d_Root::CurrentGroup(aPresentation)->SetPrimitivesAspect(LA->LineAspect()->Aspect());
     AttachmentPoint1.Coord(X,Y,Z);
@@ -356,7 +356,7 @@ void DsgPrs_SymmetricPresentation::Add (const Handle(Prs3d_Presentation)& aPrese
     V(2).SetCoord(X,Y,Z);
     Prs3d_Root::CurrentGroup(aPresentation)->Polyline(V);
 
-    //==== TRAIT DE RAPPEL 2 =====
+    //==== PROCESSING OF CALL 2 =====
     Prs3d_Root::NewGroup(aPresentation);
     Prs3d_Root::CurrentGroup(aPresentation)->SetPrimitivesAspect(LA->LineAspect()->Aspect());
     AttachmentPoint2.Coord(X,Y,Z);
@@ -366,30 +366,30 @@ void DsgPrs_SymmetricPresentation::Add (const Handle(Prs3d_Presentation)& aPrese
     Prs3d_Root::CurrentGroup(aPresentation)->Polyline(V);
   }
 
-  //==== FLECHES ================
+  //==== ARROWS ================
   Prs3d_Root::NewGroup(aPresentation);
   Prs3d_Root::CurrentGroup(aPresentation)->SetPrimitivesAspect(LA->LineAspect()->Aspect());
   
   if (dist < (LA->Arrow1Aspect()->Length()+LA->Arrow2Aspect()->Length())) outside = Standard_True;
   gp_Dir arrdir = L3.Direction().Reversed();
   if (outside) arrdir.Reverse();
-  // fleche 1 ----
+  // arrow 1 ----
   Prs3d_Arrow::Draw(aPresentation,P1,arrdir,
                    LA->Arrow1Aspect()->Angle(),
                    LA->Arrow1Aspect()->Length());
   
-  // fleche 2 ----
+  // arrow 2 ----
   Prs3d_Arrow::Draw(aPresentation,P2,arrdir.Reversed(),
                    LA->Arrow2Aspect()->Angle(),
                    LA->Arrow2Aspect()->Length());
 
-  //--------------------------------------------------------------------------------------
-  //|                                SYMBOLE DE SYMETRIE                                 |
-  //--------------------------------------------------------------------------------------
+  //-------------------------------------------------------------------------------------
+  //|                                SYMBOL OF SYMMETRY                                 |
+  //-------------------------------------------------------------------------------------
 
-  //           -------    : Segment superieur
-  //         -----------  : Axe
-  //           -------    : Segment inferieur
+  //           -------    : Superior Segment 
+  //         -----------  : Axis
+  //           -------    : Inferior Segment 
   
   gp_Vec Vvar(P1,P2);
   gp_Vec vec;
@@ -414,7 +414,7 @@ void DsgPrs_SymmetricPresentation::Add (const Handle(Prs3d_Presentation)& aPrese
   //pm = P1.Translated(Vvar.Multiplied(.5));
   pOff = OffsetPoint.Translated(vecB);
   
-  //Calcul des points extremes de l'axe du symbole
+  //Calculate the extremities of the symbol axis
   gp_Vec vecAxe = vecA.Multiplied(.7);
   pOff.Translated(vecAxe).Coord(X,Y,Z);
   V(1).SetCoord(X,Y,Z);
@@ -424,7 +424,7 @@ void DsgPrs_SymmetricPresentation::Add (const Handle(Prs3d_Presentation)& aPrese
   Prs3d_Root::CurrentGroup(aPresentation)->SetPrimitivesAspect(LA->LineAspect()->Aspect());
   Prs3d_Root::CurrentGroup(aPresentation)->Polyline(V);
 
-  //Calcul des points extremes du segment sup du symbole
+  //Calculate the extremities of the superior segment of the symbol
   gp_Vec vec1 = vecAxe.Multiplied(.6);
   vecAxe = Vaxe.Multiplied(vecAxe.Magnitude());
   gp_Vec vec2 = vecAxe.Multiplied(.4);
@@ -437,7 +437,7 @@ void DsgPrs_SymmetricPresentation::Add (const Handle(Prs3d_Presentation)& aPrese
   Prs3d_Root::CurrentGroup(aPresentation)->SetPrimitivesAspect(LA->LineAspect()->Aspect());
   Prs3d_Root::CurrentGroup(aPresentation)->Polyline(V);
 
-  //Calcul des points extremes du segment inf du symbole
+  //Calculate the extremities of the inferior segment of the symbol
   pOff.Translated(vec1.Added(vec2.Reversed())).Coord(X,Y,Z);
   V(1).SetCoord(X,Y,Z);
   pOff.Translated(vec1.Reversed().Added(vec2.Reversed())).Coord(X,Y,Z);
@@ -447,10 +447,10 @@ void DsgPrs_SymmetricPresentation::Add (const Handle(Prs3d_Presentation)& aPrese
   Prs3d_Root::CurrentGroup(aPresentation)->Polyline(V);
   
 /*//--------------------------------------------------------------------------------------
-  //|                          REPERAGE DE L'AXE DE SYMETRIE                             |
+  //|                          MARKING OF THE SYMMETRY AXIS                             |
   //--------------------------------------------------------------------------------------     
   //        ____
-  //        \  / :Curseur
+  //        \  / :Cursor
   //         \/
   //         /\
   //        /__\
@@ -556,7 +556,7 @@ void DsgPrs_SymmetricPresentation::Add (const Handle(Prs3d_Presentation)& aPrese
   Graphic3d_Array1OfVertex V(1,2);
   Quantity_Length X,Y,Z;
     
-  //==== TRAIT DE COTE ===========
+  //==== PROCESSING OF FACE ===========
   Prs3d_Root::NewGroup(aPresentation);
   Prs3d_Root::CurrentGroup(aPresentation)->SetPrimitivesAspect(LA->LineAspect()->Aspect());
   PointMin.Coord(X,Y,Z);
@@ -565,7 +565,7 @@ void DsgPrs_SymmetricPresentation::Add (const Handle(Prs3d_Presentation)& aPrese
   V(2).SetCoord(X,Y,Z);
   Prs3d_Root::CurrentGroup(aPresentation)->Polyline(V);
 
-  //==== TRAIT DE RAPPEL 1 =====
+  //==== PROCESSING OF CALL 1 =====
   Standard_Integer nbp = 10;
   Prs3d_Root::NewGroup(aPresentation);
   Prs3d_Root::CurrentGroup(aPresentation)->SetPrimitivesAspect(LA->LineAspect()->Aspect()); 
@@ -614,7 +614,7 @@ void DsgPrs_SymmetricPresentation::Add (const Handle(Prs3d_Presentation)& aPrese
   }
   Prs3d_Root::CurrentGroup(aPresentation)->Polyline(Vc1);
   
-  //==== TRAIT DE RAPPEL 2 =====
+  //==== PROCESSING OF CALL 2 =====
   Prs3d_Root::NewGroup(aPresentation);
   Prs3d_Root::CurrentGroup(aPresentation)->SetPrimitivesAspect(LA->LineAspect()->Aspect());
   gp_Pnt Center2 = ProjCenter1.Translated(Vp.Reversed());
@@ -664,30 +664,30 @@ void DsgPrs_SymmetricPresentation::Add (const Handle(Prs3d_Presentation)& aPrese
   }
   Prs3d_Root::CurrentGroup(aPresentation)->Polyline(Vc2);
   
-  //==== FLECHES ================
+  //==== ARROWS ================
   Prs3d_Root::NewGroup(aPresentation);
   Prs3d_Root::CurrentGroup(aPresentation)->SetPrimitivesAspect(LA->LineAspect()->Aspect());
   
   if (dist < (LA->Arrow1Aspect()->Length()+LA->Arrow2Aspect()->Length())) outside = Standard_True;
   gp_Dir arrdir = L3.Direction().Reversed();
   if (outside) arrdir.Reverse();
-  // fleche 1 ----
+  // arrow 1 ----
   Prs3d_Arrow::Draw(aPresentation,P1,arrdir,
                    LA->Arrow1Aspect()->Angle(),
                    LA->Arrow1Aspect()->Length());
   
-  // fleche 2 ----
+  // arrow 2 ----
   Prs3d_Arrow::Draw(aPresentation,P2,arrdir.Reversed(),
                    LA->Arrow2Aspect()->Angle(),
                    LA->Arrow2Aspect()->Length());
 
-  //--------------------------------------------------------------------------------------
-  //|                                SYMBOLE DE SYMETRIE                                 |
-  //--------------------------------------------------------------------------------------
+  //-------------------------------------------------------------------------------------
+  //|                                SYMBOL OF SYMMETRY                                 |
+  //-------------------------------------------------------------------------------------
 
-  //           -------    : Segment superieur
-  //         -----------  : Axe
-  //           -------    : Segment inferieur
+  //           -------    : Superior Segment
+  //         -----------  : Axis
+  //           -------    : Inferior Segment 
   
   gp_Vec Vvar(P1,P2);
   gp_Vec vec;
@@ -706,7 +706,7 @@ void DsgPrs_SymmetricPresentation::Add (const Handle(Prs3d_Presentation)& aPrese
   pm = P1.Translated(Vvar.Multiplied(.5));
   pOff = OffsetPnt.Translated(vecB);
 
-  //Calcul des points extremes de l'axe du symbole
+  //Calculation of extremas of the axis of the symbol
   gp_Vec vecAxe = vecA.Multiplied(.7);
   pOff.Translated(vecAxe).Coord(X,Y,Z);
   V(1).SetCoord(X,Y,Z);
@@ -716,7 +716,7 @@ void DsgPrs_SymmetricPresentation::Add (const Handle(Prs3d_Presentation)& aPrese
   Prs3d_Root::CurrentGroup(aPresentation)->SetPrimitivesAspect(LA->LineAspect()->Aspect());
   Prs3d_Root::CurrentGroup(aPresentation)->Polyline(V);
 
-  //Calcul des points extremes du segment sup du symbole
+  //Calculation of extremas of the superior segment of the symbol
   gp_Vec vec1 = vecAxe.Multiplied(.6);
 
   vecAxe = Vaxe.Multiplied(vecAxe.Magnitude());
@@ -732,7 +732,7 @@ void DsgPrs_SymmetricPresentation::Add (const Handle(Prs3d_Presentation)& aPrese
   Prs3d_Root::CurrentGroup(aPresentation)->SetPrimitivesAspect(LA->LineAspect()->Aspect());
   Prs3d_Root::CurrentGroup(aPresentation)->Polyline(V);
 
-  //Calcul des points extremes du segment inf du symbole
+  //Calculation of extremas of the inferior segment of the symbol
   pOff.Translated(vec1.Added(vec2.Reversed())).Coord(X,Y,Z);
   V(1).SetCoord(X,Y,Z);
   pOff.Translated(vec1.Reversed().Added(vec2.Reversed())).Coord(X,Y,Z);
@@ -742,10 +742,10 @@ void DsgPrs_SymmetricPresentation::Add (const Handle(Prs3d_Presentation)& aPrese
   Prs3d_Root::CurrentGroup(aPresentation)->Polyline(V);
   
 /*//--------------------------------------------------------------------------------------
-  //|                          REPERAGE DE L'AXE DE SYMETRIE                             |
+  //|                          MARKING OF THE AXIS OF SYMMETRY                           |
   //--------------------------------------------------------------------------------------     
   //        ____
-  //        \  / :Curseur
+  //        \  / :Cursor
   //         \/
   //         /\
   //        /__\
@@ -803,9 +803,9 @@ void DsgPrs_SymmetricPresentation::Add (const Handle(Prs3d_Presentation)& aPrese
 
   if (AttachmentPoint1.IsEqual(AttachmentPoint2,Precision::Confusion())){
     //==============================================================
-    //  CAS DE SYMETRIE OU LE POINT REFERENCE EST SUR L'AXE DE SYM.:
+    //  SYMMETRY WHEN THE REFERENCE POINT IS ON THE AXIS OF SYM.:
     //==============================================================
-    //Marker de localisation de la cote
+    //Marker of localisation of the face
     Handle(Graphic3d_AspectMarker3d) MarkerAsp = new Graphic3d_AspectMarker3d();
     MarkerAsp->SetType(Aspect_TOM_BALL);
     MarkerAsp->SetScale(0.8);
@@ -820,7 +820,7 @@ void DsgPrs_SymmetricPresentation::Add (const Handle(Prs3d_Presentation)& aPrese
                         AttachmentPoint1.Z());
     Prs3d_Root::CurrentGroup(aPresentation)->Marker(V3d);
 
-    //Trace du segment de raccordement
+    //Trace of the linking segment 
     Prs3d_Root::NewGroup(aPresentation);
     Prs3d_Root::CurrentGroup(aPresentation)->SetPrimitivesAspect(LA->LineAspect()->Aspect());
     Graphic3d_Array1OfVertex Vrac(1,2);
@@ -833,13 +833,13 @@ void DsgPrs_SymmetricPresentation::Add (const Handle(Prs3d_Presentation)& aPrese
     Prs3d_Root::CurrentGroup(aPresentation)->Polyline(Vrac);
   
     //--------------------------------------------------------------------------------------
-    //|                                SYMBOLE DE SYMETRIE                                 |
+    //|                                SYMBOL OF SYMMETRY                                 |
     //--------------------------------------------------------------------------------------
-    //           -------    : Segment superieur
-    //         -----------  : Axe
-    //           -------    : Segment inferieur
+    //           -------    : Superior Segment 
+    //         -----------  : Axis
+    //           -------    : Inferior Segment 
 
-    //Calcul des points extremes de l'axe du symbole
+    //Calculate extremas of the axis of the symbol
     gp_Vec VAO (AttachmentPoint1,OffsetPoint);
     gp_Vec uVAO  = VAO.Divided(VAO.Magnitude());
     gp_Pnt pDaxe = OffsetPoint.Translated(uVAO.Multiplied(3.));
@@ -850,7 +850,7 @@ void DsgPrs_SymmetricPresentation::Add (const Handle(Prs3d_Presentation)& aPrese
     Prs3d_Root::CurrentGroup(aPresentation)->SetPrimitivesAspect(LA->LineAspect()->Aspect());
     Prs3d_Root::CurrentGroup(aPresentation)->Polyline(Vrac);
 
-    //Calcul des points extremes du segment sup du symbole
+    //Calculate extremas of the superior segment of the symbol
     gp_Vec nVAO  (-uVAO.Y(),uVAO.X(),uVAO.Z());
     gp_Pnt sgP11 = pDaxe.Translated(uVAO.Multiplied(2.).Added(nVAO.Multiplied(2.)));
     gp_Pnt sgP12 = sgP11.Translated(uVAO.Multiplied(8.));
@@ -860,7 +860,7 @@ void DsgPrs_SymmetricPresentation::Add (const Handle(Prs3d_Presentation)& aPrese
     Prs3d_Root::CurrentGroup(aPresentation)->SetPrimitivesAspect(LA->LineAspect()->Aspect());
     Prs3d_Root::CurrentGroup(aPresentation)->Polyline(Vrac);
 
-    //Calcul des points extremes du segment inf du symbole
+    //Calculate extremas of the inferior segment of the symbol
     gp_Vec nVAOr = nVAO.Reversed();
     gp_Pnt sgP21 = pDaxe.Translated(uVAO.Multiplied(2.).Added(nVAOr.Multiplied(2.)));
     gp_Pnt sgP22 = sgP21.Translated(uVAO.Multiplied(8.));
@@ -871,7 +871,7 @@ void DsgPrs_SymmetricPresentation::Add (const Handle(Prs3d_Presentation)& aPrese
     Prs3d_Root::CurrentGroup(aPresentation)->Polyline(Vrac);
   }
   //==============================================================
-  //  AUTRES CAS                                                 :
+  //  OTHER CASES                                                 :
   //==============================================================
 
   else{
@@ -909,7 +909,7 @@ void DsgPrs_SymmetricPresentation::Add (const Handle(Prs3d_Presentation)& aPrese
     Graphic3d_Array1OfVertex V(1,2);
     Quantity_Length X,Y,Z;
     
-    //==== TRAIT DE COTE ===========
+    //==== PROCESSING OF FACE ===========
     Prs3d_Root::NewGroup(aPresentation);
     Prs3d_Root::CurrentGroup(aPresentation)->SetPrimitivesAspect(LA->LineAspect()->Aspect());
     PointMin.Coord(X,Y,Z);
@@ -918,7 +918,7 @@ void DsgPrs_SymmetricPresentation::Add (const Handle(Prs3d_Presentation)& aPrese
     V(2).SetCoord(X,Y,Z);
     Prs3d_Root::CurrentGroup(aPresentation)->Polyline(V);
     
-    //==== TRAIT DE RAPPEL 1 =====
+    //==== PROCESSING OF CALL 1 =====
     Prs3d_Root::NewGroup(aPresentation);
     Prs3d_Root::CurrentGroup(aPresentation)->SetPrimitivesAspect(LA->LineAspect()->Aspect()); 
     AttachmentPoint1.Coord(X,Y,Z);
@@ -927,7 +927,7 @@ void DsgPrs_SymmetricPresentation::Add (const Handle(Prs3d_Presentation)& aPrese
     V(2).SetCoord(X,Y,Z);
     Prs3d_Root::CurrentGroup(aPresentation)->Polyline(V);
     
-    //==== TRAIT DE RAPPEL 2 =====
+    //==== PROCESSING OF CALL 2 =====
     Prs3d_Root::NewGroup(aPresentation);
     Prs3d_Root::CurrentGroup(aPresentation)->SetPrimitivesAspect(LA->LineAspect()->Aspect()); 
     AttachmentPoint2.Coord(X,Y,Z);
@@ -936,25 +936,25 @@ void DsgPrs_SymmetricPresentation::Add (const Handle(Prs3d_Presentation)& aPrese
     V(2).SetCoord(X,Y,Z);
     Prs3d_Root::CurrentGroup(aPresentation)->Polyline(V);
  
-    //==== FLECHES ================
+    //==== ARROWS ================
     Prs3d_Root::NewGroup(aPresentation);
     Prs3d_Root::CurrentGroup(aPresentation)->SetPrimitivesAspect(LA->LineAspect()->Aspect());
     
     if (dist < (LA->Arrow1Aspect()->Length()+LA->Arrow2Aspect()->Length())) outside = Standard_True;
     gp_Dir arrdir = L3.Direction().Reversed();
     if (outside) arrdir.Reverse();
-    // fleche 1 ----
+    // arrow 1 ----
     Prs3d_Arrow::Draw(aPresentation,P1,arrdir,
                      LA->Arrow1Aspect()->Angle(),
                      LA->Arrow1Aspect()->Length());
   
-    // fleche 2 ----
+    // arrow 2 ----
     Prs3d_Arrow::Draw(aPresentation,P2,arrdir.Reversed(),
                      LA->Arrow2Aspect()->Angle(),
                      LA->Arrow2Aspect()->Length());
     
     //==== POINTS ================
-    //Marker de localisation des points d'attachement:
+    //Marker of localization of attachment points:
     Prs3d_Root::NewGroup(aPresentation);
     Prs3d_Root::CurrentGroup(aPresentation)->SetPrimitivesAspect(LA->LineAspect()->Aspect());
     Handle(Graphic3d_AspectMarker3d) MarkerAspAtt = new Graphic3d_AspectMarker3d();
@@ -979,13 +979,13 @@ void DsgPrs_SymmetricPresentation::Add (const Handle(Prs3d_Presentation)& aPrese
                           AttachmentPoint2.Z());
     Prs3d_Root::CurrentGroup(aPresentation)->Marker(Vatt2);    
       
-    //--------------------------------------------------------------------------------------
-    //|                                SYMBOLE DE SYMETRIE                                 |
-    //--------------------------------------------------------------------------------------
+    //-------------------------------------------------------------------------------------
+    //|                                SYMBOL OF SYMMETRY                                 |
+    //-------------------------------------------------------------------------------------
     
-    //           -------    : Segment superieur
-    //         -----------  : Axe
-    //           -------    : Segment inferieur
+    //           -------    : Superior Segment 
+    //         -----------  : Axis
+    //           -------    : Inferior Segment
     
     gp_Vec vec(P1,P2);
     gp_Vec vecA = vec.Multiplied(.1);
@@ -1002,7 +1002,7 @@ void DsgPrs_SymmetricPresentation::Add (const Handle(Prs3d_Presentation)& aPrese
     pm = P1.Translated(vec.Multiplied(.5));
     pOff = OffsetPoint.Translated(vecB);
     
-    //Calcul des points extremes de l'axe du symbole
+    //Calculate the extremas of the axis of the symbol
     gp_Vec vecAxe = vecA.Multiplied(.7);
     pOff.Translated(vecAxe).Coord(X,Y,Z);
     V(1).SetCoord(X,Y,Z);
@@ -1012,7 +1012,7 @@ void DsgPrs_SymmetricPresentation::Add (const Handle(Prs3d_Presentation)& aPrese
     Prs3d_Root::CurrentGroup(aPresentation)->SetPrimitivesAspect(LA->LineAspect()->Aspect());
     Prs3d_Root::CurrentGroup(aPresentation)->Polyline(V);
     
-    //Calcul des points extremes du segment sup du symbole
+    //Calculate the extremas of the superior segment of the symbol
     gp_Vec vec1 = vecAxe.Multiplied(.6);
 
     vecAxe = Vaxe.Multiplied(vecAxe.Magnitude());
@@ -1028,7 +1028,7 @@ void DsgPrs_SymmetricPresentation::Add (const Handle(Prs3d_Presentation)& aPrese
     Prs3d_Root::CurrentGroup(aPresentation)->SetPrimitivesAspect(LA->LineAspect()->Aspect());
     Prs3d_Root::CurrentGroup(aPresentation)->Polyline(V);
     
-    //Calcul des points extremes du segment inf du symbole
+    //Calculate the extremas of the inferior segment of the symbol
     pOff.Translated(vec1.Added(vec2.Reversed())).Coord(X,Y,Z);
     V(1).SetCoord(X,Y,Z);
     pOff.Translated(vec1.Reversed().Added(vec2.Reversed())).Coord(X,Y,Z);
@@ -1038,10 +1038,10 @@ void DsgPrs_SymmetricPresentation::Add (const Handle(Prs3d_Presentation)& aPrese
     Prs3d_Root::CurrentGroup(aPresentation)->Polyline(V);
     
 /*  //--------------------------------------------------------------------------------------
-    //|                          REPERAGE DE L'AXE DE SYMETRIE                             |
+    //|                          MARKING OF THE AXIS OF SYMMETRY                           |
     //--------------------------------------------------------------------------------------     
     //        ____
-    //        \  / :Curseur
+    //        \  / :Cursor
     //         \/
     //         /\
     //        /__\
index 3253d27ede34899f58d6e0845fb9bac940a190fc..bfe75672080a8f7f57c83eba478014c7945fc469 100755 (executable)
@@ -2,8 +2,8 @@
 // Created:    Wed Jun 24 12:49:59 1992
 // Author:     Gilles DEBARBOUILLE
 //             <gde@phobox>
-// Historique :
-// CRD : 03/07/97 : Portage Windows NT.
+// History :
+// CRD : 03/07/97 : Porting Windows NT.
 
 #include <Standard_Stream.hxx>
 
@@ -199,7 +199,7 @@ Handle(Dynamic_Parameter) Dynamic_FuzzyDefinitionsDictionary::Switch(
   const Standard_CString avalue) const
 {
   Handle(Dynamic_ObjectParameter) objectparameter;
-  cout<<"Le parametre "<<aname<<" du type "<<atype<<" avec "<<avalue<<" n'existe pas."<<endl;
+  cout<<"Parameter "<<aname<<" of type "<<atype<<" with "<<avalue<<" does not exist."<<endl;
   return objectparameter;
 }
 
index 38ccd53a17e280755b74f2387af20e39b08320ce..43c571dcab989af4039d7d36bc814b7287617f42 100755 (executable)
@@ -3,8 +3,8 @@
 // Author:     Gilles DEBARBOUILLE
 //             <gde@phobox>
 // Historique :
-// CRD : 15/04/97 : Passage WOK++ : Remplacement de TYPE par STANDARD_TYPE
-// CRD : 03/07/97 : Portage Windows NT.
+// CRD : 15/04/97 : Passage WOK++ : Replace TYPE by STANDARD_TYPE
+// CRD : 03/07/97 : Porting Windows NT.
 
 #include <Standard_Stream.hxx>
 
@@ -191,7 +191,7 @@ Standard_Boolean Dynamic_MethodDefinitionsDictionary::Definition(const Handle(Dy
     }
   else
     {
-      cout<<"la definition n'est pas une method definition"<<endl;
+      cout<<"the definition is not a method definition"<<endl;
       return Standard_False;
     }
 }
@@ -230,7 +230,7 @@ Handle(Dynamic_Parameter) Dynamic_MethodDefinitionsDictionary::Switch(
   const Standard_CString avalue) const
 {
   Handle(Dynamic_ObjectParameter) objectparameter;
-  cout<<"Le parametre "<<aname<<" du type "<<atype<<" avec "<<avalue<<" n'existe pas."<<endl;
+  cout<<"Parameter "<<aname<<" of type "<<atype<<" with "<<avalue<<" does not exist."<<endl;
   return objectparameter;
 }
 
index b8fe69dc8258e2bea1a997949ef8c8bec9055093..620737302aa36b4b40f5471e9cf21d5ff20bc9d8 100755 (executable)
@@ -99,7 +99,7 @@ static Standard_Boolean IntPlanEdge(Handle(BRepAdaptor_HCurve)& Ed,
   gp_Pnt pdeb = Ed->Value(f);
   gp_Pnt pfin = Ed->Value(l);
   Standard_Real u,v;
-  //on regarde si les extremites ne sont pas solution
+  //check if the extremities are not solution
   ElSLib::Parameters(P,pdeb,u,v);
   gp_Pnt projdeb = ElSLib::Value(u,v,P);
   Standard_Real dprojdeb = pdeb.Distance(projdeb);
@@ -159,14 +159,14 @@ FilletSurf_InternalBuilder::FilletSurf_InternalBuilder
 
 //=======================================================================
 //function : Add
-//purpose  : creation d une spine sur un paquet d'aretes
+//purpose  : creation of spine on a set of edges
 // 
-//  0 : pas de probleme  
-//  1 : liste vide 
-//  2 : aretes non g1 
-//  3 : faces adjacentes non G1
-//  4 : l'arete n'est pas sur le shape
-//  5 : l'arete n'est pas vive 
+//  0 : no problem  
+//  1 : empty list 
+//  2 : non g1 edges
+//  3 : non G1 adjacent faces
+//  4 : edge is not on the shape
+//  5 : edge is not alive 
 //=======================================================================
 
 Standard_Integer  FilletSurf_InternalBuilder::Add(const TopTools_ListOfShape& E, 
@@ -178,7 +178,7 @@ Standard_Integer  FilletSurf_InternalBuilder::Add(const TopTools_ListOfShape& E,
     TopoDS_Edge cured = TopoDS::Edge(It.Value());
     if(cured.IsNull()) return 4;
     if(!myEFMap.Contains(cured)) return 4;
-    //on controle que l arete est bien une arete de cassure
+    //check if the edge is a fracture edge
     TopoDS_Face ff1,ff2;  
     for(It.Initialize(myEFMap(cured));It.More();It.Next()){  
       if (ff1.IsNull()) {
@@ -202,9 +202,9 @@ Standard_Integer  FilletSurf_InternalBuilder::Add(const TopTools_ListOfShape& E,
   Handle(ChFiDS_Spine)& sp = st->ChangeSpine();
   Standard_Boolean periodic = sp->IsPeriodic();
   
-  //On controle que les aretes de la liste E sont bien dans le contour,
-  //on retire les aretes du contour qui ne sont pas dans la liste,
-  //on controle que le residu est bien monobloc.
+  //It is checked if edges of list E are in the contour,
+  //the edges that arenot in the list are removed from the contour,
+  //it is checked that the remainder is monoblock.
  
   for(It.Initialize(E); It.More(); It.Next()){
     TopoDS_Edge cured = TopoDS::Edge(It.Value());
@@ -247,7 +247,7 @@ Standard_Integer  FilletSurf_InternalBuilder::Add(const TopTools_ListOfShape& E,
     sp = newsp;
   }
 
-  //On construit l ElSpine dans la foulee
+  //ElSpine is immediately constructed
   Handle(ChFiDS_HElSpine) hels =  new ChFiDS_HElSpine();
   gp_Vec TFirst,TLast;
   gp_Pnt PFirst,PLast;
@@ -270,7 +270,7 @@ Standard_Integer  FilletSurf_InternalBuilder::Add(const TopTools_ListOfShape& E,
 
 void FilletSurf_InternalBuilder::Perform()
 {
-  //On se contente d un PerformSetOfSurfOnElSpine.
+  //PerformSetOfSurfOnElSpine is enough.
   
   Handle(ChFiDS_Stripe) Stripe = myListStripe.First();
   Handle(ChFiDS_HData)&  HData  = Stripe->ChangeSetOfSurfData();
@@ -316,11 +316,11 @@ Standard_Boolean
   Handle(ChFiDS_SurfData) Data = SeqData(1);
   Handle(ChFiDS_FilSpine) fsp = Handle(ChFiDS_FilSpine)::DownCast(Spine);
   if(fsp.IsNull()) Standard_ConstructionError::Raise
-    ("PerformSurf : la spine n est pas celle d un conge");
+    ("PerformSurf : this is not the spine of a fillet");
   Handle(BRepBlend_Line) lin;
   TopAbs_Orientation Or = S1->ChangeSurface().Face().Orientation();
   if(!fsp->IsConstant()) Standard_ConstructionError::Raise
-    ("PerformSurf : pas de rayons variables");
+    ("PerformSurf : no variable radiuses");
   // Standard_Boolean maybesingular; //pour scinder les Surfdata singulieres 
   
   BRepBlend_ConstRad Func(S1,S2,Guide);
@@ -360,7 +360,7 @@ Standard_Boolean
                          Standard_False, Data->ChangeVertexLastOnS2(), tolesp);
   }
   done = CompleteData(Data,Func,lin,S1,S2,Or,0,0,0,0);
-  if(!done)  Standard_Failure::Raise("PerformSurf : Echec approximation!");
+  if(!done)  Standard_Failure::Raise("PerformSurf : Failed approximation!");
 //  maybesingular = (Func.GetMinimalDistance()<=100*tolapp3d);
   Standard_Boolean ok = 0;
   if(!Forward){
index 066123320290bc7fe55e4a59165970814008d831..56d7061888e3370ac020b4782122e0b9814225ee 100755 (executable)
@@ -1,5 +1,4 @@
 #define PERF    //GG_270298
-//              Eviter d'appeler IsKind() qui est couteux.
 
 
 #ifdef WNT
@@ -68,7 +67,7 @@ Standard_Integer i,j ;
 
        if( i <= myObjects.Length() ) {
          myObjects.Remove(i) ;
-         // pas tres astucieux mais qui va utiliser Remove (anObject) ?
+         // not very clever, but who will use Remove (anObject) ?
          for( j=1 ; j<=anObject->Length() ; j++ ) {
            Remove(anObject->Primitive(j)) ;
          }
@@ -314,16 +313,16 @@ printf(" Graphic2d_Buffer::ReLoad(%d)\n",ResetPosition);
 
            myBufferId = this->HashCode(IntegerLast());
 
-           // On a demande l'epaisseur maximum des primitives lignes
-           // contenues dans le buffer
+           // Maximum depth of primitive lines
+           // contained in the buffer is required
            if (theWidthIndex < 0) {
                Standard_Real theWidthMax;
-               // Il n'y a pas de primitives lignes => epaisseur par defaut
+               // There are no primitive lines => thickness by default
                if (! MaxWidth (theWidthMax, theWidthIndex))
                    theWidthIndex = 0;
            }
 
-           // On demande la font de la 1ere primitive text du buffer
+           // The font of the 1st primitive text from the buffer is required
            if( theFontIndex < 0) {
                Standard_Integer i;
                Handle(Graphic2d_Primitive) agp;
@@ -343,7 +342,7 @@ printf(" Graphic2d_Buffer::ReLoad(%d)\n",ResetPosition);
                if( theFontIndex < 0 ) theFontIndex = 0;
            }
 
-           // On demande la couleur de la 1ere primitive du buffer
+           // The color of the 1st primitive from the buffer is required
            if( theColorIndex < 0) {
                Standard_Integer i;
                 for (i=1; i<=myPrimitives.Length(); i++) {
@@ -406,18 +405,18 @@ Standard_Boolean Result = Standard_False;
 #else
            if (agp->IsKind (STANDARD_TYPE (Graphic2d_Line))) {
 #endif
-               // Il y a des lignes dans le Buffer
-               // et non pas de la friture sur la ligne
+               // There are lines in the Buffer
+               // and not by fracture on the line
                Result = Standard_True;
                IndexCur =
                    (*(Handle(Graphic2d_Line) *) &agp)->WidthIndex ();
                if ((IndexCur <= 0) || (IndexCur > size)) {
-                   // Cas des epaisseurs non precisees, IndexCur == 0
-                   // ou alors il y a vraiment un gros probleme !
+                   // Case when thicknesses are not precised, IndexCur == 0
+                   // or there is a really huge problem !
                }
                else {
-                   // +1 car dans la table il y a en 1 une entry par defaut
-                   // qui definit une epaisseur par defaut
+                   // +1 because in the table there is 1 default entry
+                   // which defines default thickness
                    WidthCur = (theWidthMap->Entry (IndexCur+1)).Width ();
                    if (theWidth < WidthCur) {
                        theWidth = WidthCur;
index d9f5241ba226c08bde77330c659902f8fac073c9..30c9c318fa8597055170699354d65c127bbc6ca3 100755 (executable)
@@ -178,11 +178,11 @@ void Graphic2d_Circle::Draw (const Handle(Graphic2d_Drawer)& aDrawer) {
           aTrsf.Transforms (A, B);
           a = Standard_ShortReal (A); b = Standard_ShortReal (B);
           if( Abs(f-e) < Standard_ShortReal(2.*Standard_PI) ) {
-         // Pour calculer les nouveaux angles d'ouverture
-         // le calcul est fait sur le cercle trigonometrique
-         // et l'on tient pas compte dans ce cas de la translation
-         // sauf pour les transformation de type Mirror
-         // dont le determinant est negatif.
+         // To calculate new aperture angles 
+         // the calculation is done on the trigonometric circle
+         // and in this case the translation is not taken into account
+         // except for transformations of type Mirror
+         // with negative determinant.
 #ifndef BUC50076
          aTrsf.SetValue (1, 3, 0.0);
          aTrsf.SetValue (2, 3, 0.0);
index f8bebed31a06488bedd2b337b2cb1d97270b0cfe..2a9a515c4bb6b0d436fd523cf6d7a867b63f0b17 100755 (executable)
@@ -7,15 +7,15 @@
 // Modified     23/02/98 : FMN ; Remplacement PI par Standard_PI
 // Modified     16/03/98 GG
 //              OPTIMISATION
-//              Ajouter un champs myWDriver et myPDriver initialise correctement        
-//              lorsque le driver est du type "WindowDriver" ou "plotterdriver".
-//              Eviter l'appel des contructeurs vides.
+//              Add fields myWDriver and myPDriver initializing correctly        
+//              when the driver is "WindowDriver" or "plotterdriver".
+//              Avoid call of empty contructors.
 
 #define CTS17857//GG_200897
-//              Permettre d'inhiber le clipping sur les primitives.
+//              Allow suppressing clipping on primitives.
 
 #define CSR_PRO12324        //SYL_030798
-//              le Plot d'un objet en echo doit se faire en normal
+//              the Plot of an objet should be a normal
 
 #define DCB_220798 // DCB
 //    Using pointers to drivers instead of handles
@@ -1085,12 +1085,12 @@ void Graphic2d_Drawer::DrawInfiniteLine (
  Standard_Boolean status = Standard_True;
 
  if ( dx == 0. ) {
-   // Bug de rejection des lignes infinies
+   // Bug with rejection of infinite lines
    // if ( my >= 0. && my <= mySpaceHeight )
    x1 = mx; y1 = 0.; x2 = mx; y2 = mySpaceHeight;
  }
  else if ( dy == 0.) {
-   // Bug de rejection des lignes infinies
+   // Bug with rejection of infinite lines
    // if ( mx >= 0. && mx <= mySpaceWidth )
    x1 = 0.; y1 = my; x2 = mySpaceWidth; y2 = my;
  }
index e6d19b6e96abc07cab171b668a5e6fd0254ca528..25e219f946d451a798db1c2771541bff490e00bf 100755 (executable)
@@ -1,23 +1,22 @@
 /*=====================================================================
 
-     FONCTION :
+     FUNCTION :
      ----------
-        Classe Graphic2d_Ellips
+        Class Graphic2d_Ellips
 
      TEST :
      ------
 
         Voir TestG2D/TestG21
 
-     REMARQUES:
+     NOTES:
      ----------
 
-     HISTORIQUE DES MODIFICATIONS   :
+     HISTORY OF MODIFICATIONS   :
      --------------------------------
 
       27-01-98 : GG ; OPTIMISATION LOADER
-                    Transformer les variables static globales en static
-                   locales.
+                    Transform global static variables into static locals.
 
 =====================================================================*/
 #define G002   //Add new DrawElement(), DrawVertex() methods
@@ -52,7 +51,7 @@ Graphic2d_Ellips::Graphic2d_Ellips
 
       myAngle =Standard_ShortReal(anAngle); 
 
-      // Cas de l'ellipse horizontale
+      // Case of horizontal ellipse 
       if (Abs (anAngle) <= RealEpsilon ()) {
           myMinX = myX - myMajorRadius;
           myMaxX = myX + myMajorRadius;
@@ -317,15 +316,15 @@ Standard_Boolean Graphic2d_Ellips::Pick (const Standard_ShortReal X,
               }
             }   
         }
-        Standard_ShortReal xf1,yf1,xf2,yf2; //Les foyers.
+        Standard_ShortReal xf1,yf1,xf2,yf2; //Sources.
         Standard_ShortReal q = 
            Standard_ShortReal(Sqrt( Abs( myMajorRadius*myMajorRadius - myMinorRadius*myMinorRadius) ));
 
         Standard_ShortReal cos = Standard_ShortReal(Cos(myAngle));
         Standard_ShortReal sin = Standard_ShortReal(Sin(myAngle));
 
-     //Focus 1 et 2 calcules pour l' ellipse dont le centre 
-     // est ramene a l' origine du repere(0,0)
+     // Focus 1 and 2 calculated for the ellipse with centre 
+     // at the origin of mark(0,0)
         xf1 = q*cos; 
         yf1 = q*sin;
         xf2 = -q*cos; 
@@ -344,7 +343,7 @@ Standard_Boolean Graphic2d_Ellips::Pick (const Standard_ShortReal X,
           SetPickedIndex( 0 );
      }
  #else  
-         Standard_ShortReal xf1,yf1,xf2,yf2; //Les foyers.
+         Standard_ShortReal xf1,yf1,xf2,yf2; //Sourses.
       Standard_ShortReal Xp, Yp; 
       Standard_ShortReal q = 
          Sqrt( Abs( myMajorRadius*myMajorRadius - myMinorRadius*myMinorRadius) );
@@ -352,8 +351,8 @@ Standard_Boolean Graphic2d_Ellips::Pick (const Standard_ShortReal X,
       Standard_ShortReal cos = Cos (myAngle);
       Standard_ShortReal sin = Sin (myAngle);
 
-     //Focus 1 et 2 calcules pour l' ellipse dont le centre 
-     // est ramene a l' origine du repere(0,0)
+     // Focus 1 and 2 calculated for the ellipse with centre 
+     // at the origin of mark(0,0)
       xf1 = q*cos; 
       yf1 = q*sin;
       xf2 = -q*cos; 
index 2cec82358ae3fa705dcc2326c6d403f1ab8c80d4..3fda9668b82e3f8b14cbdec4a10cc56ba5ed72b0 100755 (executable)
@@ -173,7 +173,7 @@ Standard_Boolean Graphic2d_EllipsMarker::Pick (const Standard_ShortReal X,
      Standard_ShortReal cos = Standard_ShortReal( Cos(myAngle) );
      Standard_ShortReal sin = Standard_ShortReal( Sin(myAngle) );
 
-     //Focus 1 et 2 calcules pour l' ellipse dont le centre 
+     //Focus 1 and 2 calcules pour l' ellipse dont le centre 
      // est ramene a l' origine du repere(0,0)
      xf1 = Standard_ShortReal( q * cos ); 
      yf1 = Standard_ShortReal( q * sin );
index 00e4d56adea9e5eebc41ce25ab24f72c8a893a92..ccd4988fb0dd66e83b9c13dbd14d86956626d4f7 100755 (executable)
@@ -1,13 +1,11 @@
 // S3824        10/06/98 : GG ;
-//              1) La methode "Fit" comporte un argum optionnel supplementaire
-//                 "Expand" permettant de ne pas ajuster la largeur du texte
-//                  lorsque celle ci est < a la taille du FIT.
-//              2) La methode "Trunc" permet de tronquer le texte a la
-//                 taille precisee.
+//              1) Method "Fit" includes optional argument 
+//                 "Expand" allowing to avoid adjusting text width
+//                 when it is less then size of FIT.
+//              2) Method "Trunc" allows trunkating the text to the 
+//                 exact size.
 
 #define PRO14304       //GG_160698
-//             Corrige une erreur de calcul sur les MINMAX provoquant
-//             la disparition du text
 
 #define PERF    //GG_200898
 //              The MinMax are now computed at the right time and no more
@@ -111,9 +109,9 @@ Standard_ShortReal oy = aDrawer->ConvertMapToFrom(myDeltay);
             cosa -= A; sina -= B;
             if( aTrsf.IsNegative() ) hscale = - hscale;
 #else
-           // Pour calculer les nouveaux angles d'ouverture
-           // le calcul est fait sur le cercle trigonometrique
-           // et l'on tient pas compte dans ce cas de la translation.
+           // To calculate new aperture angles 
+           // the calculation is done on the trigonometric circle
+           // and taken into account in case of translation.
            aTrsf.SetValue (1, 3, 0.0);
            aTrsf.SetValue (2, 3, 0.0);
             aTrsf.Transforms (cosa, sina);
index 502c3ac1f1f47486dcaa8df1b4d1e8f6e1480bb3..8dfe07db0faeac0964729af53ec766187c2485d7 100755 (executable)
@@ -1,10 +1,8 @@
 //
 // S3593    //GG_270298
-//              Eviter d'appeler IsKind() qui est couteux.
-//             Ajouter un champs myIsUpToDate permettant de savoir
-//             si l'objet est a jour.
-//             Ajouter un champs myIsTransformed permettant de savoir
-//             si l'objet est transforme.
+//              Avoid calling IsKind() which is expensive.
+//             Add field myIsUpToDate informing if the object is updated.
+//             Add field myIsTransformed informing if the object is transformed.
 //
 
 #define G002       //GG_140400
@@ -417,11 +415,11 @@ void Graphic2d_GraphicObject::RemovePrimitive (const Handle(Graphic2d_Primitive)
 
 #ifdef OK
        //
-       // Pour retracer ce qui est necessaire
-       // On parcourt les primitives de 1 jusqu'a Index
-       // et on recupere l'Index de la premiere primitive
-       // dont le rectangle englobant intersecte celui
-       // de la primitive retiree.
+       // To retrace whatever is necessary
+       // Parse the primitives from 1 to Index
+       // and return l'Index of the first primitive
+       // with bounding box intersecting the bounding
+        // box of the removed primitive.
        //
 Standard_Boolean stop = Standard_False;
 Standard_ShortReal sMinx, sMiny, sMaxx, sMaxy;
@@ -433,17 +431,17 @@ Standard_ShortReal RL     = ShortRealLast ();
        for (Standard_Integer i=1; i<Index && ! stop; i++) {
                (Primitive (i))->MinMax (x, X, y, Y);
                //
-               // Les lignes infinies
+               // Infinite lines
                //
                if ((x == RF) || (X == RL) || (y == RF) || (Y == RL)) {
-                       // infinie horizontale
+                       // infinite horizontal
                        if (y == Y) stop = (sMiny <= y) && (y <= sMaxy);
-                       // infinie verticale
+                       // infinite vertical
                        if (x == X) stop = (sMinx <= x) && (x <= sMaxx);
-                       // infinie oblique
+                       // infinite diagonal
                        if ((y != Y) && (x != X)) {
-                               // Pb pas d'interrogation possible
-                               // sur le contenu de la primitive.
+                               // no interrogation possible
+                               // about the content of the primitive.
                                stop = Standard_True;
                        }
                }
@@ -754,7 +752,7 @@ Standard_Boolean Graphic2d_GraphicObject::MinMax (Quantity_Length & Minx, Quanti
                    (thePrimitive->Family() == Graphic2d_TOP_MARKER);
                    if (! TheFlag) {
                      if( thePrimitive->MinMax (x, X, y, Y) ) {
-                       // Tests pour cause de lignes infinies
+                       // Tests for cause of infinite lines
                        if (x != RF) sMinx = (sMinx < x ? sMinx : x);
                        if (X != RL) sMaxx = (sMaxx > X ? sMaxx : X);
                        if (y != RF) sMiny = (sMiny < y ? sMiny : y);
@@ -764,8 +762,8 @@ Standard_Boolean Graphic2d_GraphicObject::MinMax (Quantity_Length & Minx, Quanti
                }
        }
 
-       // Attention, il se peut que :
-       // sMinx = sMiny = ShortRealLast (); et
+       // Attention, it is possible that :
+       // sMinx = sMiny = ShortRealLast (); and
        // sMaxx = sMaxy = ShortRealFirst();
        if (sMinx > sMaxx) {
          status = Standard_False;
@@ -805,7 +803,7 @@ Standard_Boolean Graphic2d_GraphicObject::MarkerMinMax (Quantity_Length & Minx,
                    (thePrimitive->Family() == Graphic2d_TOP_MARKER);
                    if (TheFlag) {
                      if( thePrimitive->MinMax (x, X, y, Y) ) {
-                       // Tests pour cause de lignes infinies
+                       // Tests for cause of infinite lines
                        if (x != RF) sMinx = (sMinx < x ? sMinx : x);
                        if (X != RL) sMaxx = (sMaxx > X ? sMaxx : X);
                        if (y != RF) sMiny = (sMiny < y ? sMiny : y);
@@ -815,8 +813,8 @@ Standard_Boolean Graphic2d_GraphicObject::MarkerMinMax (Quantity_Length & Minx,
                }
        }
 
-       // Attention, il se peut que :
-       // sMinx = sMiny = ShortRealLast (); et
+       // Attention, it is possible that :
+       // sMinx = sMiny = ShortRealLast (); and
        // sMaxx = sMaxy = ShortRealFirst();
        if (sMinx > sMaxx) {
          status = Standard_False;
index 6a5581abfda4a6482f24ecde7701ad1f48cc9304..9e8ca06b650867fc4e3d11b2a43e6d2a3c257919 100755 (executable)
@@ -1,15 +1,15 @@
 #define PRO6894 //GG_150197
-//              Completer les cas de justification des textes
+//              Complete cases of text justification 
 // S3824        10/06/98 : GG ;
-//              1) La methode "Fit" comporte un argum optionnel supplementaire
-//                 "Expand" permettant de ne pas ajuster la largeur du texte
+//              1) Method "Fit" includes optional argument
+//                 "Expand" allowing to not adjust the text width
 //                  lorsque celle ci est < a la taille du FIT.
-//              2) La methode "Trunc" permet de tronquer le texte a la
-//                 taille precisee.
+//              2) Method "Trunc" allows truncating the text to the
+//                 indicated size.
 
 #define PRO14304        //GG_160698
-//              Corrige une erreur de calcul sur les MINMAX provoquant
-//              la disparition du text
+//              Correct calculation error on MINMAX causing
+//              the text to disappear
 
 #define PERF    //GG_200898
 //              The MinMax are now computed at the right time and no more
@@ -121,9 +121,9 @@ Standard_ShortReal oy = aDrawer->ConvertMapToFrom(myDeltay);
             cosa -= A; sina -= B;
             if( aTrsf.IsNegative() ) hscale = - hscale;
 #else
-           // Pour calculer les nouveaux angles d'ouverture
-           // le calcul est fait sur le cercle trigonometrique
-           // et l'on tient pas compte dans ce cas de la translation.
+           // To calculate new aperture angles 
+           // calculation is done on the trigonometric circle
+           // and in this case translation is taken into account.
            aTrsf.SetValue (1, 3, 0.0);
            aTrsf.SetValue (2, 3, 0.0);
             aTrsf.Transforms (cosa, sina);
index 64ea4a1e1a13738c155285595aaa99a9f99b8544..591e77cc82dddf781f127fc1e47800ad47216ebe 100755 (executable)
@@ -1,8 +1,6 @@
 #define WTO0001         //GG_140596
-//                      Calcul des min-max faux apres transformation.
 
 #define PRO5663         //GG_291196
-//                      Renseigner les MinMax de l'image !.
 
 #include <Graphic2d_Image.ixx>
 #include <Graphic2d_Image.pxx>
@@ -95,15 +93,15 @@ Standard_Real A, B;
         else
                 FillAndDraw (aDrawer);
 
-        // Dans le cas d'un GraphicObject Highlighted
-        // on trace le rectangle englobant de l'image
+        // In case of GraphicObject Highlighted
+        // bounding box of the image is traced
         if (myGOPtr->IsHighlighted ()) {
 
 Standard_Integer Width  = myImage->Width ();
 Standard_Integer Height = myImage->Height ();
                 //
-                // - 2 sur Width et Height pour eviter que
-                // le bord soit en dehors de l'image.
+                // - 2 on Width and Height to avoid
+                // border outside of the image.
                 //
                 if (Width > 2) Width -= 2;
                 if (Height > 2) Height -= 2;
@@ -226,12 +224,12 @@ Standard_Real R, G, B;
         UpperY  = myImage->UpperY ();
 
         if (Height*Width <= Graphic2d_Image::SmallSize ()) {
-                // Les petites images sont remplies d'un coup
+                // Small images are filled at once
                 pixels  = new Aspect_RGBPixel [Height*Width];
 
                 Quantity_Array1OfColor Array (0, Width-1);
 
-                // Parcours de l'image Lignes-Colonnes (Height-Width)
+                // Parsing of the image Lines-Columns (Height-Width)
                 for (i=0, ii=LowerY; ii<=UpperY; i++, ii++) {
                         myImage->RowColor (ii, Array);
                         for (j=0; j<Width; j++) {
@@ -250,12 +248,12 @@ Standard_Real R, G, B;
                 delete [] pixels;
         }
         else {
-                // Les grandes images sont remplies ligne a ligne
+                // Great images are filled line by line
                 pixels  = new Aspect_RGBPixel [Width];
 
                 Quantity_Array1OfColor Array (0, Width-1);
 
-                // Parcours de l'image Lignes-Colonnes (Height-Width)
+                // Parsing of image Lines-Columns (Height-Width)
                 for (i=0, ii=LowerY; ii<=UpperY; i++, ii++) {
                         myImage->RowColor (ii, Array);
                         for (j=0; j<Width; j++) {
index 8538416a6621ec118c0c032000492d43c03638f2..1cb2493431bd0ad8dc2b9bb0be64eb767bfa3e1c 100755 (executable)
@@ -1,38 +1,18 @@
 /*=====================================================================
 
-     FONCTION :
+     FUNCTION :
      ----------
-        Classe Graphic2d_ImageFile
+        Class Graphic2d_ImageFile
 
      TEST :
      ------
 
-        Voir TestG2D/TestG21
+        See TestG2D/TestG21
 
-     REMARQUES:
-     ----------
-
-     HISTORIQUE DES MODIFICATIONS   :
-     --------------------------------
-
-      27-01-98 : GG ; OPTIMISATION LOADER
-                Transformer les variables static globales en static
-                locales.
-
-      05-11-97 : GG :  JAP60017
-                Nouvelle methode SetScale(...) pour pouvoir
-                changer le facteur d'echelle de l'image dynamiquement
-
-      11-07-97 : GG ; BUC50015
-                Tenir compte de l'attribut Zoomable de l'image
-                pour en determiner les MIN-MAX.
 
 =====================================================================*/
 
 #define S3593           //GG_100398
-//                      Optimisation concernant le chargement des images,
-//                      eviter de recharger des images deja chargees!
-//                      Utiliser les methodes du driver qui sont optimisees.
 
 #define xTRACE
 
@@ -159,8 +139,8 @@ static TShort_Array1OfShortReal TheY (1, 5);
     Standard_ShortReal scale = (myIsZoomable) ? Standard_ShortReal(aDrawer->Scale()) : Standard_ShortReal(1.);
     aDrawer->DrawImageFile (myFileName.ToCString(), Xc, Yc, scale*myScale);
 
-    // Dans le cas d'un GraphicObject Highlighted
-    // on trace le rectangle englobant de l'image
+    // In case of GraphicObject Highlighted
+    // the bounding box of the image is traced
     if (myGOPtr->IsHighlighted ()) {
 
 #ifdef TRACE
@@ -375,7 +355,7 @@ Standard_Boolean Result = Standard_False;
 Standard_Boolean Reopen = Standard_False;
         aWidth = aHeight = aDepth = 0;
         if (aFile.IsOpen () && aFile.IsLocked()) {
-                cout << "Can't analyse an locked file.\n" << flush;
+                cout << "Can't analyse a locked file.\n" << flush;
                 return Result;
         }
 
index 12a9c41d9051f31f58cbfa7a353235ed51928408..4a6346ba0a7856a197666a8708a90db75ff3d0dc 100755 (executable)
@@ -9,37 +9,25 @@
 
         Voir TestG2D/TestG21
 
-     REMARQUES:
-     ----------
-
-     HISTORIQUE DES MODIFICATIONS   :
-     --------------------------------
-
-      27-01-98 : GG ; OPTIMISATION LOADER
-                    Transformer les variables static globales en static
-                   locales.
-      23/02/98 : FMN ; Remplacement PI par Standard_PI
-
 =====================================================================*/
 
 #define PRO12982  //GG_230498
-//            Prendre en compte le soulignement dans le calcul de la taille
-//            du paragraphe.
+//            Take into account the underlining in calculation of 
+//            paragraph size.
 
 #define PRO11004  //GG_051197
-//            Le pourtour du paragraphe n'est pas un rectangle
+//            The contour of the paragraph is not rectangle
 
 #define PRO11005  //GG_131197
-//            La couleur de fond du paragraphe n'est pas respectee
-//            En mode Highlight,on ne voit plus les textes.
+//            Text can't be seen in mode Highlight.
 
 #define PRO11041 //GG_201197
-//            Modification de SetCurrentFont(...,aHScale,aWScale)
-//            de maniere a pouvoir parametrer la taille du texte.
+//            Modification of SetCurrentFont(...,aHScale,aWScale)
+//            to parameterize the size of the text.
 
 #define PRO12320//GG_120297
-//            Espacer les textes en fonction de la hauteur capitalisee de la
-//            chaine de caracteres.
+//            Compose texts depending on the summary height of the
+//            chain of characters.
 
 #define PERF    //GG_200898
 //              The MinMax are now computed at the right time and no more
@@ -457,9 +445,9 @@ static TShort_Array1OfShortReal theYarray(1,5) ;
 
             aTrsf.Transforms (A, B);
 
-            // Pour calculer les nouveaux angles d'ouverture
-            // le calcul est fait sur le cercle trigonometrique
-            // et l'on tient pas compte dans ce cas de la translation.
+            // To calculate new aperture angles
+            // the calculation is done on trigonometric circle
+            // and in this case translation is not taken into account.
             aTrsf.SetValue (1, 3, 0.0);
             aTrsf.SetValue (2, 3, 0.0);
             aTrsf.Transforms (cosa, sina);
@@ -739,7 +727,7 @@ Standard_Boolean status = Standard_False;
           Standard_ShortReal twidth = 0.,theight = 0.,txoffset = 0.,tyoffset = 0.;
           Standard_ShortReal lwidth = 0.,lheight = 0.,loffset = 0.;
           myWidth = myHeight = 0. ;
-          for( i=1,j=lrow=0 ; i<=length ; i++ ) {       // Passe 1,gets texts minmax 
+          for( i=1,j=lrow=0 ; i<=length ; i++ ) {       // Passe 1, gets texts minmax 
             descriptor = myTextDescriptorList.Value(i) ;
             atext = myTextStringList.Value(i) ;
             hscale = scale*myTextHScaleList.Value(i) ;
index e2e0d5879524551f8be3c7ac8dfe7caa5eabf524..d236729fa6f0d9a7d8ae70186a571d71eedeb483 100755 (executable)
@@ -9,26 +9,12 @@
 
         Voir TestG2D/TestG21
 
-     REMARQUES:
-     ----------
-
-     HISTORIQUE DES MODIFICATIONS   :
-     --------------------------------
-
-      27-01-98 : GG ; OPTIMISATION LOADER
-                    Transformer les variables static globales en static
-                   locales.
 
-      10-12-97 : GG ; Envoyer plutot des polylines que des segments lorsque
-               le type de trait n'est pas SOLID de maniere a assurer
-               la continuite.
 
 =====================================================================*/
 
 // PRO13369    //GG_280498
-//                     Attention sous WNT
-//                     MapPolylineFromTo() doit etre appele avec le 
-//                     nombre exacte de points
+//                     MapPolylineFromTo() should be called with exact number of points
 
 #define G002    //GG_140400 Use SetPickedIndex method 
 
@@ -102,7 +88,7 @@ void Graphic2d_SetOfPolylines::Add( const Standard_Real X1,
              if( V1.IsEqual(P->Value(lv)) ) {
                //first vertex of segment is the same that the last vertex of the
                //ref line
-               if( ip > 1 ) {  //Try to concatenates ref line with others
+               if( ip > 1 ) {  //Try to concatenate ref line with others
                  for( ipp=1 ; ipp<ip ; ipp++ ) {
                    PP = myPolylines.Value(ipp);        //other polyline 
                    if( V2.IsEqual(PP->Value(1)) ) {
@@ -124,7 +110,7 @@ void Graphic2d_SetOfPolylines::Add( const Standard_Real X1,
              } else if( V2.IsEqual(P->Value(lv)) ) {
                //second vertex of segment is the same that the last vertex of the
                //ref line
-               if( ip > 1 ) {  //Try to concatenates ref line with others
+               if( ip > 1 ) {  //Try to concatenate ref line with others
                  for( ipp=1 ; ipp<ip ; ipp++ ) {
                    PP = myPolylines.Value(ipp);        //other polyline 
                    if( V1.IsEqual(PP->Value(1)) ) {
@@ -146,7 +132,7 @@ void Graphic2d_SetOfPolylines::Add( const Standard_Real X1,
              } else if( V1.IsEqual(P->Value(1)) ) {
                //first vertex of segment is the same that the first vertex of the
                //ref line
-               if( ip > 1 ) {  //Try to concatenates ref line with others
+               if( ip > 1 ) {  //Try to concatenate ref line with others
                  for( ipp=1 ; ipp<ip ; ipp++ ) {
                    PP = myPolylines.Value(ipp);        //other polyline 
                    if( V2.IsEqual(PP->Value(PP->Length())) ) {
@@ -168,7 +154,7 @@ void Graphic2d_SetOfPolylines::Add( const Standard_Real X1,
              } else if( V2.IsEqual(P->Value(1)) ) {
                //second vertex of segment is the same that the first vertex of the
                //ref line
-               if( ip > 1 ) {  //Try to concatenates ref line with others
+               if( ip > 1 ) {  //Try to concatenate ref line with others
                  for( ipp=1 ; ipp<ip ; ipp++ ) {
                    PP = myPolylines.Value(ipp);        //other polyline 
                    if( V1.IsEqual(PP->Value(PP->Length())) ) {
index ab6db6fe3c8f3ded6344d0e91b227a3c7cea418c..dceef76117132619cc705c3ee501634eba7002ff 100755 (executable)
@@ -1,10 +1,3 @@
-// Modified     23/02/98 : FMN ; Remplacement PI par Standard_PI
-// S3824       10/06/98 : GG ; 
-//             1) La methode "Fit" comporte un argum optionnel supplementaire
-//                "Expand" permettant de ne pas ajuster la largeur du texte
-//                 lorsque celle ci est < a la taille du FIT.
-//             2) La methode "Trunc" permet de tronquer le texte a la
-//                taille precisee.
 
 #define PERF   //GG_200898
 //             The MinMax are now computed at the right time and no more
@@ -209,9 +202,9 @@ Standard_ShortReal oy = aDrawer->ConvertMapToFrom(myDeltay);
             cosa -= A; sina -= B;
             if( aTrsf.IsNegative() ) hscale = - hscale;
 #else
-           // Pour calculer les nouveaux angles d'ouverture
-           // le calcul est fait sur le cercle trigonometrique
-           // et l'on tient pas compte dans ce cas de la translation.
+           // To calculate new aperture angles 
+           // calculation is done on the trigonometric circle
+           // and in this case translation is not taken into account.
            aTrsf.SetValue (1, 3, 0.0);
            aTrsf.SetValue (2, 3, 0.0);
             aTrsf.Transforms (cosa, sina);
index b67581d97db0eb2923ecb830316bd6367d6e9ea3..6019bd687abade73caf5c89a3935f556427ccdc4 100755 (executable)
@@ -8,7 +8,7 @@
 #define xTRACE
 
 #define CSR_PRO12324        //SYL_030798
-//                      Pas de plot si objet non plottable                      
+//                      No plot if object not plottable                      
 //
 // Modified     17/12/1998 SYL pour S3604
 //              Aspect_PlotterDriver devient PlotMgt_PlotterDriver
@@ -398,15 +398,15 @@ Standard_Real RL, RF;
 
         for (i=1; i<=Length; i++) {
                 myGraphicObjects.Value (i)->MinMax (x, X, y, Y);
-                // Le GraphicObject peut etre vide
+                // GraphicObject can be empty
                 if (x > RF) Minx = (Minx < x ? Minx : x); 
                 if (X < RL) Maxx = (Maxx > X ? Maxx : X);
                 if (y > RF) Miny = (Miny < y ? Miny : y);
                 if (Y < RL) Maxy = (Maxy > Y ? Maxy : Y);
         }
 
-        // Attention, il se peut que :
-        // Minx = Miny = ShortRealLast (); et
+        // Attention, it is possible that :
+        // Minx = Miny = ShortRealLast (); and
         // Maxx = Maxy = ShortRealFirst();
         if (Minx > Maxx) { Minx = RealFirst (); Maxx = RealLast (); }
         if (Miny > Maxy) { Miny = RealFirst (); Maxy = RealLast (); }
@@ -424,7 +424,7 @@ Standard_Real RL, RF;
         for (i=1; i<=Length; i++) {
                 if (IsIn (aList->Value(i))) {
                         (aList->Value(i))->MinMax (x, X, y, Y);
-                        // Le GraphicObject peut etre vide
+                        //  GraphicObject can be empty
                         if (x > RF) Minx = (Minx < x ? Minx : x); 
                         if (X < RL) Maxx = (Maxx > X ? Maxx : X);
                         if (y > RF) Miny = (Miny < y ? Miny : y);
@@ -432,8 +432,8 @@ Standard_Real RL, RF;
                 }
         }
 
-        // Attention, il se peut que :
-        // Minx = Miny = ShortRealLast (); et
+        // Attention, it is possible that :
+        // Minx = Miny = ShortRealLast (); and
         // Maxx = Maxy = ShortRealFirst();
         if (Minx > Maxx) { Minx = RealFirst (); Maxx = RealLast (); }
         if (Miny > Maxy) { Miny = RealFirst (); Maxy = RealLast (); }
@@ -450,15 +450,15 @@ Standard_Real RL, RF;
 
         for (i=1; i<=Length; i++) {
                 myGraphicObjects.Value (i)->MarkerMinMax (x, X, y, Y);
-                // Le GraphicObject peut etre vide
+                // GraphicObject can be empty 
                 if (x > RF) Minx = (Minx < x ? Minx : x); 
                 if (X < RL) Maxx = (Maxx > X ? Maxx : X);
                 if (y > RF) Miny = (Miny < y ? Miny : y);
                 if (Y < RL) Maxy = (Maxy > Y ? Maxy : Y);
         }
 
-        // Attention, il se peut que :
-        // Minx = Miny = ShortRealLast (); et
+        // Attention, it is possible that :
+        // Minx = Miny = ShortRealLast (); and
         // Maxx = Maxy = ShortRealFirst();
         if (Minx > Maxx) { Minx = RealFirst (); Maxx = RealLast (); }
         if (Miny > Maxy) { Miny = RealFirst (); Maxy = RealLast (); }
@@ -476,7 +476,7 @@ Standard_Real RL, RF;
         for (i=1; i<=Length; i++) {
                 if (IsIn (aList->Value(i))) {
                         (aList->Value(i))->MarkerMinMax (x, X, y, Y);
-                        // Le GraphicObject peut etre vide
+                        // GraphicObject can be empty
                         if (x > RF) Minx = (Minx < x ? Minx : x); 
                         if (X < RL) Maxx = (Maxx > X ? Maxx : X);
                         if (y > RF) Miny = (Miny < y ? Miny : y);
@@ -484,8 +484,8 @@ Standard_Real RL, RF;
                 }
         }
 
-        // Attention, il se peut que :
-        // Minx = Miny = ShortRealLast (); et
+        // Attention, it is possible that :
+        // Minx = Miny = ShortRealLast (); and
         // Maxx = Maxy = ShortRealFirst();
         if (Minx > Maxx) { Minx = RealFirst (); Maxx = RealLast (); }
         if (Miny > Maxy) { Miny = RealFirst (); Maxy = RealLast (); }
@@ -641,9 +641,9 @@ Standard_Integer Index;
   for (Index=1; Index<=Length; Index++)
     //myGraphicObjects.Value(Index)->Erase ();
     // CAL le 17/11/97.
-    // On met 1 car il faut effacer N fois le premier de la liste
-    // En effet cette liste est mise a jour par la methode ci dessous
-    // qui est appelee par Graphic2d_GraphicObject::Erase.
+    // 1 is set as it is required to remove N times the first from the list
+    // Acytually this list is updated by method below
+    // called by Graphic2d_GraphicObject::Erase.
 #ifdef OCC154
     myGraphicObjects.Value(Index)->Erase();
 #else
index 639a910e943d0e9701c0627675460b3634164d1c..b36803e0b99883c564f4bccc0ae4e584decdc8a2 100755 (executable)
 
 //-Version     
 
-//-Design      Declaration des variables specifiques au contexte
-//             de trace des facettes 3d
+//-Design      Declaration of variables specific to the context
+//             of tracing of facets 3D
 
-//-Warning     Un contexte de trace de facette 3d herite du contexte
-//             defini par :
-//             - le style de l'interieur de la facette
-//             - le style du bord de la facette
-//             - la couleur
-//             Il possede en plus d'une definition de matiere
-//             pour les faces internes et externes.
+//-Warning     Ccontext of tracing of facets 3d inherits the context
+//             defined by :
+//             - the style of the interior of the facet
+//             - the style of the facet border
+//             - the color
+//             Additionally, it has more than one definition of material
+//             for internal and external faces.
 
 //-References  
 
@@ -77,10 +77,10 @@ DistinguishModeActive (Standard_False), EdgeModeActive (Standard_False), BackFac
   // OCC4895 SAN 22/03/04 High-level interface for controlling polygon offsets 
 }
 
-// le :(InteriorStyle, InteriorColor, EdgeColor, EdgeLineType, EdgeLineWidth)
-// car AspectFillArea3d herite de AspectFillArea et il faut appeler
-// l'initialisation de AspectFillArea avec InteriorStyle, InteriorColor,
-// EdgeColor, EdgeLineType et EdgeLineWidth.
+// (InteriorStyle, InteriorColor, EdgeColor, EdgeLineType, EdgeLineWidth)
+// because AspectFillArea3d inherits AspectFillArea and it is necessary to call
+// initialisation of AspectFillArea with InteriorStyle, InteriorColor,
+// EdgeColor, EdgeLineType and EdgeLineWidth.
 
 Graphic3d_AspectFillArea3d::Graphic3d_AspectFillArea3d (const Aspect_InteriorStyle InteriorStyle, const Quantity_Color& InteriorColor, const Quantity_Color& EdgeColor, const Aspect_TypeOfLine EdgeLineType, const Standard_Real EdgeLineWidth, const Graphic3d_MaterialAspect& FrontMaterial, const Graphic3d_MaterialAspect& BackMaterial):
 Aspect_AspectFillArea (InteriorStyle, InteriorColor, EdgeColor, EdgeLineType, EdgeLineWidth), DistinguishModeActive (Standard_False), EdgeModeActive (Standard_False), BackFaceRemovalActive (Standard_False), MyTextureMap(), MyTextureMapState(Standard_False), MyFrontMaterial (FrontMaterial), MyBackMaterial (BackMaterial) {
index 61630e01484b99af3665ded8394494343e4bb9a0..9c0f9f46195d9410a6f387e26aef835da4a1d2bb 100755 (executable)
@@ -7,14 +7,14 @@
 
 //-Version     
 
-//-Design      Declaration des variables specifiques au contexte
-//             de trace des lignes 3d
+//-Design      Declaration of variables specific to the context
+//             of tracing of lines 3d
 
-//-Warning     Un contexte de trace de lignes 3d herite du contexte
-//             defini par :
-//             - la couleur
-//             - le type de trait
-//             - l'epaisseur
+//-Warning     Context of tracing of lines 3d inherits the context
+//             defined by :
+//             - the color
+//             - the type of trait
+//             - the thickness
 
 //-References  
 
@@ -38,8 +38,8 @@
 Graphic3d_AspectLine3d::Graphic3d_AspectLine3d () {
 }
 
-// le :(AColor, AType, AWidth)
-// car AspectLine3d herite de AspectLine et il faut appeler
-// l'initialisation de AspectLine avec AColor, AType, AWidth.
+// (AColor, AType, AWidth)
+// because  AspectLine3d inherits AspectLine and it is necessary to call
+// initialisation of AspectLine with AColor, AType, AWidth.
 
 Graphic3d_AspectLine3d::Graphic3d_AspectLine3d (const Quantity_Color& AColor, const Aspect_TypeOfLine AType, const Standard_Real AWidth):Aspect_AspectLine (AColor, AType, AWidth) {}
index 6004d4754333a9c3cf52453587b0d9744effea97..cb97092701e9a9a107ec41c746f3cc87516ed065 100755 (executable)
@@ -7,14 +7,14 @@
 
 //-Version     
 
-//-Design      Declaration des variables specifiques au contexte
-//             de trace des markers 3d
-
-// Rappels     Un contexte de trace de markers 3d herite du contexte
-//             defini par :
-//             - la couleur
-//             - le type de marker
-//             - l'echelle
+//-Design      Declaration of variables specific to the context
+//             of trace of markers 3d
+
+// Rappels     Context of trace of markers 3d inherits the context
+//             defined by :
+//             - the color
+//             - the type of marker
+//             - the scale
 
 //-Warning     
 
index 0d1c586b7d454d395d4bf7b679744c55bccbccc7..2e86220fd59816a07f3a6a082ca32038e242e2d8 100755 (executable)
@@ -8,14 +8,14 @@
 
 //-Version  
 
-//-Design Declaration des variables specifiques au contexte
-//    de trace des textes 3d
-
-//-Warning  Un contexte de trace de texte est defini par :
-//    - la font utilisee
-//    - la couleur
-//    - l'echelle
-//    - l'espace entre caracteres
+//-Design Declaration of variables specific to the context
+//    of trace of texts 3d
+
+//-Warning  A context of trace of text is defined by :
+//    - the font used
+//    - the color
+//    - the scale
+//    - the space between characters
 
 //-References 
 
index 939861206b7b78ed4fff2fcbd578d1e31b659ea3..0b62b4b7b9172ae2c2168704bba3c240c10cbbec 100755 (executable)
@@ -69,15 +69,7 @@ Standard_Boolean status ;
        }
 
        this->InitMaps (connexion,Xw_TOM_READONLY,Ncolors,UseDefault);
-       // 24/07/97
-       // avant : this->InitMaps (connexion,Mapping,Ncolors,UseDefault);
-       //         uniquement pour HPUX
-       // info GG :
-       //  L'action doit etre generalisee puisque l'on trouve le meme pb
-       //sur HP et SIL lie au fait que la root est PseudoColor.
-       //  Ceci est donc compatible avec SUN et DEC ou la root est TrueColor.
-       //  De toute facon seul le driver Xdps a besoin d'un ColorCube et
-       //il le cree tout seul s'il n'existe pas deja .
+
 
 }
 
@@ -152,7 +144,7 @@ Standard_Boolean Result = TheSharedLibrary.DlOpen (OSD_RTLD_LAZY);
                (TheSharedLibrary.DlError ());
        }
        else {
-           // Gestion des traces
+           // Management of traces
 char *tracevalue = NULL;
            tracevalue = (char *)(getenv ("CSF_GraphicTrace"));
            if (tracevalue)
@@ -168,10 +160,10 @@ OSD_Function new_GLGraphicDriver =
                        (TheSharedLibrary.DlError ());
            }
            else {
-               // Sequence artistique :
-               // new_GLGraphicDriver est une OSD_Function :
+               // Sequence :
+               // new_GLGraphicDriver is OSD_Function :
                // typedef int (* OSD_Function)(...);
-               // d'ou le magnifique cast en GraphicDriver.
+               // that is why good cast in GraphicDriver.
                Handle(Graphic3d_GraphicDriver)
                        (*fp) (Standard_CString) = NULL;
                fp = (Handle(Graphic3d_GraphicDriver)
@@ -182,7 +174,7 @@ OSD_Function new_GLGraphicDriver =
 
 //             MyGraphicDriver = (*fp) (TheSharedLibrary.Name ());
 
-               // Gestion des traces
+               // Management of traces
                if (tracevalue)
                    MyGraphicDriver->SetTrace
                        ((Standard_Integer) atoi (tracevalue));
index 37597c69e8b98b0774c7fb1b5b88536aa576ea78..5f7f17cb6d95c7758b972d3c55d6d392374a8d29 100755 (executable)
@@ -2,7 +2,7 @@
     -- File:    Graphic3d_Group.cdl
     -- Created: Vendredi 6 Septembre 1991
     -- Author:  NW,JPB,CAL
-    --      27/09/97 ; PCT : ajout du controle manuel des textures
+    --      27/09/97 ; PCT : add manual control of  textures
     --              11/97 ; CAL : ajout polyline par 2 points
     --      16/06/2000 : ATS: Study G005 - Group store presentations of it's objects in field
     --                        MyListOfPArray to avoid deletion of handle-manipulating 
         ---Level: Public
         ---Purpose: Links up points to create a face drawn
         --      using the current fill attributes (AspectFillArea3d))
-        --      The first and last points are not duplicates.
+        --      The first and last points are not duplicated.
         --      The normal is defined and normalised for each vertex.
         --          The texture coordinate is defined for each vertex.
         ---Category: Methods to create Polygon
index b3dc94fc8c7981bbf86f4871045a1b68a2ba7a49..4dd3ce6d875d8ee03ba7b7185d99dfb46aa58251 100755 (executable)
@@ -8,11 +8,11 @@
 
 //-Version     
 
-//-Design      Declaration des variables specifiques aux groupes
-//             de primitives
+//-Design      Declaration of variables specific to groups
+//             of primitives
 
-//-Warning     Un groupe est defini dans une structure
-//             Il s'agit de la plus petite entite editable
+//-Warning     A group is definedv in a structure
+//             This is the smallest editable entity
 
 //-References  
 
@@ -51,15 +51,15 @@ MyListOfPArray()
   MyBounds.ZMax        = ShortRealFirst ();
 
 //
-// Un petit commentaire sur l'utilisation du This !
+// A small commentary on the usage of This !
 //
-// Un Graphic3d_Group est cree dans une structure. Graphic3d_Structure est
-// donc un manager de Graphic3d_Group. Dans le constructeur de Graphic3d_Group
-// est appele une methode de Graphic3d_Structure, Add, qui permet d'ajouter
-// l'instance du Graphic3d_Group dans son manager. Il y a donc 2 references
-// a <me> et tout va bien.
+// Graphic3d_Group is created in a structure. Graphic3d_Structure is a
+// manager of Graphic3d_Group. In the constructor of Graphic3d_Group
+// a method Add of Graphic3d_Structure is called. It allows adding
+// the instance of Graphic3d_Group in its manager. So there are 2 references
+// to <me> and everything works well.
 //
-// This () est l'instance de la classe, c-a-d le groupe courant
+// This () is the instance of the class, the current groupe
 //Handle(Graphic3d_Group) me   = Handle(Graphic3d_Group)::DownCast (This ());
 
 Standard_Integer TheLabelBegin, TheLabelEnd;
index a413a9143e7694fbe8d623a35b01ea50365e694d..e1b2f9b172df6589be7f39f31da251408b76cfc6 100755 (executable)
@@ -7,11 +7,11 @@
 
 //-Version  
 
-//-Design Declaration des variables specifiques aux groupes
-//    de primitives
+//-Design Declaration of variables specific to groups
+//    of primitives
 
-//-Warning  Un groupe est defini dans une structure
-//    Il s'agit de la plus petite entite editable
+//-Warning  A group is defined in a structure
+// This is the smallest editable entity
 
 //-References 
 
@@ -25,8 +25,8 @@
 
 #include <Graphic3d_StructureManager.hxx>
 
-// Structures c necessaires a l'interfacage avec les routines c
-// Routines C a declarer en extern
+// Structures are necessairy for interfacing with routines c
+// Routines C should be declared externally
 //-Methods, in order
 
 Standard_Boolean Graphic3d_Group::IsDeleted () const {
@@ -87,7 +87,7 @@ Handle(Graphic3d_Structure) Graphic3d_Group::Structure () const {
 void Graphic3d_Group::MinMaxCoord (Standard_Real& XMin, Standard_Real& YMin, Standard_Real& ZMin, Standard_Real& XMax, Standard_Real& YMax, Standard_Real& ZMax) const {
 
   if (IsEmpty ()) {
-    // Groupe vide
+    // Empty Group
     XMin  = YMin  = ZMin  = ShortRealFirst ();
     XMax  = YMax  = ZMax  = ShortRealLast ();
   }
index e412767bfac81a82e3352d92b2d959d3770863c5..6ff6ba9d3036dc82759e1e7e3fb1ebc72b5a1a50 100755 (executable)
@@ -1,15 +1,5 @@
 // File                Graphic3d_MaterialAspect.cxx
 // Created     Fevrier 1992
-// Author      NW,JPB,CAL
-// modified     1/07/97 ; PCT : ajout texture mapping
-//              8/04/98 ; FGU : Ajout Emission
-//              9/07/98 ; CAL : Ajout de l'initialisation de l'EmissiveCoef
-//              26/03/99 ; FMN : Ajout methodes SetColor() et Color()
-//              26/03/99 : FMN ; Compatibilite ascendante: Ajout des anciens noms de materiaux.
-//              09/04/99 : GG ; Compatibilite ascendante: NameOfPhysicalMaterial disparait
-//             07/07/99 : GG ; MyEmissiveActivity MUST be initialized in the
-//                        constructor of the class.
-//              23/11/99 : GG ; BUC60488 : Add Name() & Reset() methods
 
 #define BUC60565        //GG_19/10/99 ; Don't change the color components when the corresponding
 //                      coefficient is modified because the resulting color is computed in
 
 //-Version     
 
-//-Design      Declaration des variables specifiques aux definition
-//             des matieres
+//-Design      Declaration of variables specific to the definition
+//             of materials
 
-//-Warning     Une matiere est definie par :
-//             - Un coefficient de transparence
-//             - Un coefficient de reflection diffuse
-//             - Un coefficient de reflection ambiante
-//             - Un coefficient de reflection speculaire
-//              - Un coefficient d emission
+//-Warning     A material is defined by :
+//             - coefficient of transparence
+//             - coefficient of disperse reflection
+//             - coefficient of ambiant reflection
+//             - coefficient of specular reflection
+//              - coefficient of emission
 
-//             2 proprietes permettent de definir une matiere :
-//             - sa transparence
-//             - sa reflection c-a-d ses proprietes d'absorbtion
-//             et de diffusion de la lumiere
+//             2 properties permiting to define a material :
+//             - transparence
+//             - reflection, i.e. absorbtion properties
+//             and light diffusion
 
-//             La reflection diffuse est percue comme une composante
-//             La reflection speculaire est percue comme une composante
-//             de la couleur de la source lumineuse
+//             Disperse reflection is considered a component
+//             The specular reflection is considered a component
+//             of the color of the light source
 
-//             Pour determiner les 3 couleurs de reflection il faut :
-//             - Un coefficient de reflection diffuse
-//             - Un coefficient de reflection ambiante
-//             - Un coefficient de reflection speculaire
+//             To determine 3 colors of reflection it is necessary :
+//             - coefficient of disperse reflection
+//             - coefficient of ambiant reflection
+//             - coefficient of specular reflection
 
-//             ( Sous GL, on determine 3 couleurs )
+//             ( Under GL, 3 colors are determined)
 
 //-References  Getting started with DEC PHIGS, annexe C
 //             Iris Advanced Graphics, unite D
@@ -147,7 +137,7 @@ void Graphic3d_MaterialAspect::Init(const Graphic3d_NameOfMaterial AName) {
 
        switch (AName) {
                case Graphic3d_NOM_PLASTIC : /* Blue plastic */
-                       /* Coefficient d eclairage */
+                       /* Lighting Coefficient */
                        MyShininess             = Standard_ShortReal (0.0078125);
                        MyAmbientCoef           = Standard_ShortReal (0.5);
                        MyDiffuseCoef           = Standard_ShortReal (0.24);
@@ -155,7 +145,7 @@ void Graphic3d_MaterialAspect::Init(const Graphic3d_NameOfMaterial AName) {
                break;                          
                
                case Graphic3d_NOM_SHINY_PLASTIC : /* black plastic */
-                       /* Coef d eclairage */
+                       /* Lighting Coefficient */
                        MyShininess             = Standard_ShortReal (1.0);
                        MyAmbientCoef           = Standard_ShortReal (0.44);
                        MyDiffuseCoef           = Standard_ShortReal (0.5);
@@ -170,7 +160,7 @@ void Graphic3d_MaterialAspect::Init(const Graphic3d_NameOfMaterial AName) {
                break;
                
                case Graphic3d_NOM_NEON_GNC: 
-                       /* Coef d eclairage */
+                       /* Lighting Coefficient */
                        MyShininess             = Standard_ShortReal (0.05);
                        MyAmbientCoef           = Standard_ShortReal (1.0);
                        MyDiffuseCoef           = Standard_ShortReal (1.0);
@@ -181,123 +171,123 @@ void Graphic3d_MaterialAspect::Init(const Graphic3d_NameOfMaterial AName) {
                break;
                
                case Graphic3d_NOM_METALIZED :                  
-                       /* Coef d eclairage */
+                       /* Lighting Coefficient */
                        MyShininess             = Standard_ShortReal (0.13);
                        MyAmbientCoef           = Standard_ShortReal (0.9);
                        MyDiffuseCoef           = Standard_ShortReal (0.47);
                        MySpecularCoef          = Standard_ShortReal (0.45);
                        MyAmbientActivity  = Standard_False;
                                                
-                       /* Couleur issue du diffus */
+                       /* Color resulting from dispersed */
                        //MyDiffuseColor.SetValues (0.87, 0.96, 1.0, Quantity_TOC_RGB);
                        
-                       /* Couleur issue du speculaire */
+                       /* Color resulting from specular */
                        //MySpecularColor.SetValues (0.93, 0.95, 0.78, Quantity_TOC_RGB);                                               
                break;
 
-// Compatibilite ascendante materiaux physiques. On prend la meme definition
-// que dans le createur suivant.       
+// Ascending Compatibility physical materials. The same definition is taken
+// as in the next constructor. 
 
                case Graphic3d_NOM_BRASS :
                        MyMaterialType = Graphic3d_MATERIAL_PHYSIC;
-                       /* Initialisation des coefficients et couleur d eclairage : brass */
+                       /* Initialisation of coefficients and lighting color : brass */
                        MyShininess             = Standard_ShortReal (0.21794844);
                        MyAmbientCoef           = Standard_ShortReal (1.0);
                        MyDiffuseCoef           = Standard_ShortReal (1.0);
                        MySpecularCoef          = Standard_ShortReal (1.0);
                        
-                       /* Couleur issue de l ambient */
+                       /* Color resulting from ambient */
                        MyAmbientColor.SetValues (0.329412, 0.223529, 0.027451, Quantity_TOC_RGB);
                        
-                       /* Couleur issue du diffus */
+                       /* Color resulting from dispersed */
                        MyDiffuseColor.SetValues (0.780392, 0.568627, 0.113725, Quantity_TOC_RGB);
                        
-                       /* Couleur issue du speculaire */
+                       /* Color resulting from specular */
                        MySpecularColor.SetValues (0.992157, 0.941176, 0.807843, Quantity_TOC_RGB);                                                             
                break;
 
                case Graphic3d_NOM_BRONZE :                                             
                        MyMaterialType = Graphic3d_MATERIAL_PHYSIC;
-                       /* Coef d eclairage */
+                       /* Lighting Coefficient */
                        MyShininess             = Standard_ShortReal (0.2);
                        MyAmbientCoef           = Standard_ShortReal (1.0);
                        MyDiffuseCoef           = Standard_ShortReal (1.0);
                        MySpecularCoef          = Standard_ShortReal (1.0);
                        
-                       /* Couleur issue de l ambient */
+                       /* Color resulting from ambient */
                        MyAmbientColor.SetValues (0.2125, 0.1275, 0.054, Quantity_TOC_RGB);
                        
-                       /* Couleur issue du diffus */
+                       /* Color resulting from dispersed */
                        MyDiffuseColor.SetValues (0.714, 0.4284, 0.18144, Quantity_TOC_RGB);
                        
-                       /* Couleur issue du speculaire */
+                       /* Color resulting from specular */
                        MySpecularColor.SetValues (0.393548, 0.271906, 0.166721, Quantity_TOC_RGB);                                             
                break;
 
                case Graphic3d_NOM_COPPER :
                        MyMaterialType = Graphic3d_MATERIAL_PHYSIC;
-                        /* Coefficient d eclairage */
+                        /*  Lighting Coefficient */
                        MyShininess             = Standard_ShortReal (0.93);
                        MyAmbientCoef           = Standard_ShortReal (1.0);
                        MyDiffuseCoef           = Standard_ShortReal (1.0);
                        MySpecularCoef          = Standard_ShortReal (1.0);
                        
-                       /* Couleur issue de l ambient */
+                       /* Color resulting from ambient */
                        MyAmbientColor.SetValues (0.33, 0.26, 0.23, Quantity_TOC_RGB);
                        
-                       /* Couleur issue du diffus */
+                       /* Color resulting from dispersed */
                        MyDiffuseColor.SetValues (0.50, 0.11, 0.0, Quantity_TOC_RGB);
                        
-                       /* Couleur issue du speculaire */
+                       /* Color resulting from specular */
                        MySpecularColor.SetValues (0.95, 0.73, 0.0, Quantity_TOC_RGB);                  
                break;
 
                case Graphic3d_NOM_GOLD :
                        MyMaterialType = Graphic3d_MATERIAL_PHYSIC;
-                       /* Coefficient d eclairage */
+                       /* Lighting Coefficient */
                        MyShininess             = Standard_ShortReal (0.0625);
                        MyAmbientCoef           = Standard_ShortReal (0.3);
                        MyDiffuseCoef           = Standard_ShortReal (0.4);
                        MySpecularCoef          = Standard_ShortReal (0.9);
                        
-                       /* Couleur issue de l ambient */
+                       /* Color resulting from ambient */
                        MyAmbientColor.SetValues (1.0, 0.76862745, 0.31764706, Quantity_TOC_RGB);
                        
-                       /* Couleur issue du diffus */
+                       /* Color resulting from dispersed */
                        MyDiffuseColor.SetValues (1.0, 0.69, 0.0, Quantity_TOC_RGB);
                        
-                       /* Couleur issue du speculaire */
+                       /* Color resulting from specular */
                        MySpecularColor.SetValues (1.0, 0.98, 0.78, Quantity_TOC_RGB);                                                                  
                break;          
 
                case Graphic3d_NOM_PEWTER :
                        MyMaterialType = Graphic3d_MATERIAL_PHYSIC;
-                       /* Coefficient d eclairage */
+                       /* Lighting Coefficient */
                        MyShininess             = Standard_ShortReal (0.076923047);
                        MyAmbientCoef           = Standard_ShortReal (1.0);
                        MyDiffuseCoef           = Standard_ShortReal (1.0);
                        MySpecularCoef          = Standard_ShortReal (1.0);
                        
-                       /* Couleur issue de l ambient */
+                       /* Color resulting from ambient */
                        MyAmbientColor.SetValues (0.105882, 0.058824, 0.113725, Quantity_TOC_RGB);
                        
-                       /* Couleur issue du diffus */
+                       /* Color resulting from dispersed */
                        MyDiffuseColor.SetValues (0.427451, 0.470588, 0.541176, Quantity_TOC_RGB);
                        
-                       /* Couleur issue du speculaire */
+                       /* Color resulting from specular */
                        MySpecularColor.SetValues (0.333333, 0.333333, 0.521569, Quantity_TOC_RGB);                                     
                break;  
 
                case Graphic3d_NOM_PLASTER :
 #ifdef BUG      // The plaster material must be considered as Generic.
                        MyMaterialType = Graphic3d_MATERIAL_PHYSIC;
-                        /* Coefficient d eclairage */
+                        /*  Lighting Coefficient */
                        MyShininess             = Standard_ShortReal (0.2);
                        MyAmbientCoef           = Standard_ShortReal (1.0);
                        MyDiffuseCoef           = Standard_ShortReal (1.0);
                        MySpecularCoef          = Standard_ShortReal (1.0);
 #else
-                        /* Coefficient d eclairage */
+                        /* Lighting Coefficient */
                         MyShininess             = Standard_ShortReal (0.0078125)
 ;
                         MyAmbientCoef           = Standard_ShortReal (0.26);
@@ -305,88 +295,88 @@ void Graphic3d_MaterialAspect::Init(const Graphic3d_NameOfMaterial AName) {
                         MySpecularCoef          = Standard_ShortReal (0.06);
 #endif
                        
-                       /* Couleur issue de l ambient */
+                       /* Color resulting from ambient */
                        MyAmbientColor.SetValues (0.19225, 0.19225, 0.19225, Quantity_TOC_RGB);
                        
-                       /* Couleur issue du diffus */
+                       /* Color resulting from dispersed */
                        MyDiffuseColor.SetValues (0.50754, 0.50754, 0.50754, Quantity_TOC_RGB);
                        
-                       /* Couleur issue du speculaire */
+                       /* Color resulting from specular */
                        MySpecularColor.SetValues (0.508273, 0.508273, 0.508273, Quantity_TOC_RGB);
                break;
 
                case Graphic3d_NOM_SILVER :
                        MyMaterialType = Graphic3d_MATERIAL_PHYSIC;
-                        /* Coefficient d eclairage */
+                        /* Lighting Coefficient */
                        MyShininess             = Standard_ShortReal (0.2);
                        MyAmbientCoef           = Standard_ShortReal (1.0);
                        MyDiffuseCoef           = Standard_ShortReal (1.0);
                        MySpecularCoef          = Standard_ShortReal (1.0);
                        
-                       /* Couleur issue de l ambient */
+                       /* Color resulting from ambient */
                        MyAmbientColor.SetValues (0.19225, 0.19225, 0.19225, Quantity_TOC_RGB);
                        
-                       /* Couleur issue du diffus */
+                       /* Color resulting from dispersed */
                        MyDiffuseColor.SetValues (0.50754, 0.50754, 0.50754, Quantity_TOC_RGB);
                        
-                       /* Couleur issue du speculaire */
+                       /* Color resulting from specular */
                        MySpecularColor.SetValues (0.508273, 0.508273, 0.508273, Quantity_TOC_RGB);
                break;
                
                case Graphic3d_NOM_STEEL :
                        MyMaterialType = Graphic3d_MATERIAL_PHYSIC;
-                       /* Coefficient d eclairage */
+                       /* Lighting Coefficient */
                        MyShininess             = Standard_ShortReal (0.06); 
                        MyAmbientCoef           = Standard_ShortReal (0.01);
                        MyDiffuseCoef           = Standard_ShortReal (0.03);
                        MySpecularCoef          = Standard_ShortReal (0.98);
                        
-                       /* Couleur issue du speculaire */
+                       /* Color resulting from specular */
                        MySpecularColor.SetValues (1.0, 1.0, 1.0, Quantity_TOC_RGB);
                break;  
                
                case Graphic3d_NOM_STONE :
                        MyMaterialType = Graphic3d_MATERIAL_PHYSIC;
-                       /* Coefficient d eclairage */
+                       /* Lighting Coefficient */
                        MyShininess             = Standard_ShortReal (0.17);
                        MyAmbientCoef           = Standard_ShortReal (0.19);
                        MyDiffuseCoef           = Standard_ShortReal (0.75);
                        MySpecularCoef          = Standard_ShortReal (0.08);
                        
-                       /* Couleur issue de l ambient */
+                       /* Color resulting from ambient */
                        MyAmbientColor.SetValues (1.0, 0.8, 0.62, Quantity_TOC_RGB);
                        
-                       /* Couleur issue du diffus */
+                       /* Color resulting from dispersed */
                        MyDiffuseColor.SetValues (1.0, 0.8, 0.62, Quantity_TOC_RGB);
                        
-                       /* Couleur issue du speculaire */                                               
+                       /* Color resulting from specular */                                             
                        MySpecularColor.SetValues (0.98, 1.0, 0.60, Quantity_TOC_RGB);                  
                break;
 
-// Compatibilite ascendante materiaux physiques. On prend la meme definition
-// que dans le createur suivant. Nouveaux materials
+// Ascending Compatibility of physical materials. Takes the same definition
+// as in the next constructor. New materials
                
                case Graphic3d_NOM_CHROME :                     
                        MyMaterialType = Graphic3d_MATERIAL_PHYSIC;
-                       /* Coef d eclairage */
+                       /* Lighting Coefficient */
                        MyShininess             = Standard_ShortReal (0.1);
                        MyAmbientCoef           = Standard_ShortReal (1.0);
                        MyDiffuseCoef           = Standard_ShortReal (1.0);
                        MySpecularCoef          = Standard_ShortReal (1.0);
                        
-                       /* Couleur issue de l ambient */
+                       /* Color resulting from ambient */
                        MyAmbientColor.SetValues (0.35, 0.35, 0.35, Quantity_TOC_RGB);
                        
-                       /* Couleur issue du diffus */
+                       /* Color resulting from dispersed */
                        MyDiffuseColor.SetValues (0.4, 0.4, 0.4, Quantity_TOC_RGB);
                        
-                       /* Couleur issue du speculaire */
+                       /*  Color resulting from specular */
                        MySpecularColor.SetValues (0.974597, 0.974597, 0.974597, Quantity_TOC_RGB);                                             
                break;
                
                case Graphic3d_NOM_NEON_PHC: 
                        MyMaterialType = Graphic3d_MATERIAL_PHYSIC;
-                       /* Coef d eclairage */
+                       /* Lighting Coefficient */
                        MyShininess             = Standard_ShortReal (0.05);
                        MyAmbientCoef           = Standard_ShortReal (1.0);
                        MyDiffuseCoef           = Standard_ShortReal (1.0);
@@ -396,70 +386,70 @@ void Graphic3d_MaterialAspect::Init(const Graphic3d_NameOfMaterial AName) {
                        MyAmbientActivity = Standard_False;
                        MyDiffuseActivity  = Standard_False;
                        
-                       /* Couleur issue de l ambient */
+                       /* Color resulting from ambient */
                        MyAmbientColor.SetValues (1.0, 1.0, 1.0, Quantity_TOC_RGB);
                        
-                       /* Couleur issue du diffus */
+                       /* Color resulting from dispersed */
                        MyDiffuseColor.SetValues (1.0, 1.0, 1.0, Quantity_TOC_RGB);
                        
-                       /* Couleur issue du speculaire */
+                       /* Color resulting from specular */
                        MySpecularColor.SetValues (1.0, 1.0, 1.0, Quantity_TOC_RGB);
                        
-                       /* Couleur issue du speculaire */                       
+                       /* Color resulting from specular */                     
                        MyEmissiveColor.SetValues (0.0, 1.0, 0.46, Quantity_TOC_RGB);                                                     
                break;
                
                case Graphic3d_NOM_ALUMINIUM :                  
                        MyMaterialType = Graphic3d_MATERIAL_PHYSIC;
-                       /* Coef d eclairage */
+                       /* Lighting Coefficient */
                        MyShininess             = Standard_ShortReal (0.09);
                        MyAmbientCoef           = Standard_ShortReal (1.0);
                        MyDiffuseCoef           = Standard_ShortReal (1.0);
                        MySpecularCoef          = Standard_ShortReal (1.0);
                        
-                       /* Couleur issue de l ambient */
+                       /* Color resulting from ambient */
                        MyAmbientColor.SetValues (0.30, 0.30, 0.30, Quantity_TOC_RGB);
                        
-                       /* Couleur issue du diffus */
+                       /* Color resulting from dispersed */
                        MyDiffuseColor.SetValues (0.30, 0.30, 0.30, Quantity_TOC_RGB);
                        
-                       /* Couleur issue du speculaire */
+                       /* Color resulting from specular */
                        MySpecularColor.SetValues (0.70, 0.70, 0.80, Quantity_TOC_RGB);                                         
                break;
                
                case Graphic3d_NOM_OBSIDIAN :
                        MyMaterialType = Graphic3d_MATERIAL_PHYSIC;
-                       /* Coef d eclairage */
+                       /* Lighting Coefficient */
                        MyShininess             = Standard_ShortReal (0.3);
                        MyAmbientCoef           = Standard_ShortReal (1.0);
                        MyDiffuseCoef           = Standard_ShortReal (1.0);
                        MySpecularCoef          = Standard_ShortReal (1.0);
                        
-                       /* Couleur issue de l ambient */
+                       /* Color resulting from ambient */
                        MyAmbientColor.SetValues (0.05375, 0.05, 0.06625, Quantity_TOC_RGB);
                        
-                       /* Couleur issue du diffus */
+                       /* Color resulting from dispersed */
                        MyDiffuseColor.SetValues (0.18275, 0.17, 0.22525, Quantity_TOC_RGB);
                        
-                       /* Couleur issue du speculaire */
+                       /* Color resulting from specular */
                        MySpecularColor.SetValues (0.332741, 0.328634, 0.346435, Quantity_TOC_RGB);                                             
                break;  
                
                case Graphic3d_NOM_JADE :
                        MyMaterialType = Graphic3d_MATERIAL_PHYSIC;
-                       /* Coef d eclairage */
+                       /* Lighting Coefficient */
                        MyShininess             = Standard_ShortReal (0.1);
                        MyAmbientCoef           = Standard_ShortReal (1.0);
                        MyDiffuseCoef           = Standard_ShortReal (1.0);
                        MySpecularCoef          = Standard_ShortReal (1.0);
                        
-                       /* Couleur issue de l ambient */
+                       /* Color resulting from ambient */
                        MyAmbientColor.SetValues (0.135, 0.2225, 0.1575, Quantity_TOC_RGB);
                        
-                       /* Couleur issue du diffus */
+                       /* Color resulting from dispersed */
                        MyDiffuseColor.SetValues (0.54, 0.89, 0.63, Quantity_TOC_RGB);
                        
-                       /* Couleur issue du speculaire */
+                       /* Color resulting from specular */
                        MySpecularColor.SetValues (0.316228, 0.316228, 0.316228, Quantity_TOC_RGB);                                             
                break;
                default:
@@ -485,7 +475,7 @@ Standard_ShortReal OldShine;
        }
 }
 
-/* Affectation type du materiel */
+/* Attribution of the type of material */
 void Graphic3d_MaterialAspect::SetMaterialType( const Graphic3d_TypeOfMaterial AType ) {
        MyMaterialType = AType ;
 #ifdef IMP171201
@@ -526,7 +516,7 @@ void Graphic3d_MaterialAspect::SetColor (const Quantity_Color& AColor) {
 #endif
 }
 
-/* Affectation couleur eclairage ambient */
+/* Attribution of color ambient lighting */
 void Graphic3d_MaterialAspect::SetAmbientColor (const Quantity_Color& AColor) {
 
        MyAmbientColor  = AColor;
@@ -537,7 +527,7 @@ void Graphic3d_MaterialAspect::SetAmbientColor (const Quantity_Color& AColor) {
 #endif
 }
 
-/*  Affectation couleur eclairage diffus */
+/*  Attribution of color dispersed lighting */
 void Graphic3d_MaterialAspect::SetDiffuseColor (const Quantity_Color& AColor) {
 
        MyDiffuseColor  = AColor;
@@ -548,7 +538,7 @@ void Graphic3d_MaterialAspect::SetDiffuseColor (const Quantity_Color& AColor) {
 #endif
 }
 
-/*  Affectation couleur eclairage speculaire */
+/*  Attribution of color specular lighting */
 void Graphic3d_MaterialAspect::SetSpecularColor (const Quantity_Color& AColor) {
 
        MySpecularColor = AColor;
@@ -591,7 +581,7 @@ void Graphic3d_MaterialAspect::SetDiffuse (const Standard_Real AValue) {
 #endif
 }
 
-/* Affectation du coefficient d emission */
+/* Attribution of coefficient of emission */
 void Graphic3d_MaterialAspect::SetEmissive (const Standard_Real AValue) {
 
        if ((AValue < 0.0) || (AValue > 1.0))
@@ -694,31 +684,31 @@ Quantity_Color Graphic3d_MaterialAspect::Color () const {
        return (MyAmbientColor);
 }
 
-/* Acces a la couleur de l eclairage ambient */
+/* Access to the color of the ambient lighting */
 Quantity_Color Graphic3d_MaterialAspect::AmbientColor () const {
 
        return (MyAmbientColor);
 }
 
-/* Acces a la couleur de l eclairage diffus */
+/* Access to the color of the dispersed lighting */
 Quantity_Color Graphic3d_MaterialAspect::DiffuseColor () const {
 
        return (MyDiffuseColor);
 }
 
-/* Acces a la couleur de l eclairage speculaire */
+/* Access to the color of the specular lighting */
 Quantity_Color Graphic3d_MaterialAspect::SpecularColor () const {
 
        return (MySpecularColor);
 }
 
-/* Acces a la couleur d emission */
+/* Access to the color of emission */
 Quantity_Color Graphic3d_MaterialAspect::EmissiveColor () const {
 
        return (MyEmissiveColor);
 }
 
-/* Acces type du materiel */
+/* Access to the type of material */
 Standard_Boolean Graphic3d_MaterialAspect::MaterialType( const Graphic3d_TypeOfMaterial AType ) const {
        return ( MyMaterialType == AType ) ;
 }
@@ -751,49 +741,49 @@ Standard_Boolean Result;
 
 }
 
-/* Acces a la couleur de l eclairage ambient */
+/* Access to the color of the ambient lighting */
 Standard_Real Graphic3d_MaterialAspect::Ambient () const {
 
        return (Standard_Real (MyAmbientCoef));
 
 }
 
-/* Acces a la couleur de l eclairage diffus */
+/* Access to the color of the dispersed lighting */
 Standard_Real Graphic3d_MaterialAspect::Diffuse () const {
 
        return (Standard_Real (MyDiffuseCoef));
 
 }
 
-/* Valeur du coefficient d emission */
+/* Value of the coefficient of emission */
 Standard_Real Graphic3d_MaterialAspect::Emissive () const {
 
        return (Standard_Real (MyEmissiveCoef));
 
 }
 
-/* Acces a la couleur de l eclairage speculaire */
+/* Access to the color of the specular lighting */
 Standard_Real Graphic3d_MaterialAspect::Specular () const {
 
        return (Standard_Real (MySpecularCoef));
 
 }
 
-/* Acces au coefficient de transparence */
+/* Access to the coefficient of transparency */
 Standard_Real Graphic3d_MaterialAspect::Transparency () const {
 
        return (Standard_Real (MyTransparencyCoef));
 
 }
 
-/* Acces au coefficient de brillance */
+/* Access to the coefficient of shineness */
 Standard_Real Graphic3d_MaterialAspect::Shininess () const {
 
        return (Standard_Real (MyShininess));
 
 }
 
-/* Affectation du coefficient de brillance */
+/* Attribution of the coefficient of shineness */
 void Graphic3d_MaterialAspect::SetShininess (const Standard_Real AValue) {
 
        if ((AValue < 0.0) || (AValue > 1.0))
@@ -889,7 +879,7 @@ static Material theMaterials[] = {
 Standard_Integer Graphic3d_MaterialAspect::NumberOfMaterials() {
 Standard_Integer n =sizeof(theMaterials)/sizeof(Material);
   if( n > Graphic3d_NOM_DEFAULT ) {
-    cout << " *** Graphic3d_MaterialAspect::NumberOfMaterials() may returns a badvalue due to incoherente size between material name array and enum" << endl;
+    cout << " *** Graphic3d_MaterialAspect::NumberOfMaterials() may return a badvalue due to incoherente size between material name array and enum" << endl;
   }
   return Graphic3d_NOM_DEFAULT;
 }
index 8cfb72b62a768884240c28acf5359ea99647d41f..8a625fd32afa43d8c01060e085e2cae2afd8ec08 100755 (executable)
 
 //-Version      
 
-//-Design       Declaration des variables specifiques aux structures
-//              graphiques
+//-Design       Declaration of variables specific to graphic structures
 
-//-Warning      Une structure est definie dans un manager
-//              Il s'agit d'une sequence de groupes de primitives
+//-Warning      A structure is defined in a manager
+//              This is a sequence of groups of primitives
 
 //-References   
 
@@ -124,7 +123,7 @@ MyHighlightColor (Quantity_NOC_WHITE)
   Handle(Graphic3d_AspectFillArea3d) aAspectFillArea3d =
     new Graphic3d_AspectFillArea3d ();
 
-  // Recuperation des valeurs par defaut
+  // Return default values
   AManager->PrimitivesAspect (aAspectLine3d, aAspectText3d,
     aAspectMarker3d, aAspectFillArea3d);
 
@@ -133,7 +132,7 @@ MyHighlightColor (Quantity_NOC_WHITE)
   aAspectFillArea3d->SetPolygonOffsets( Aspect_POM_Fill, 1., 0. );
   // OCC4895 SAN 22/03/04 High-level interface for controlling polygon offsets 
 
-  // Mise a jour de la CStructure associee
+  // Update the associated CStructure
   UpdateStructure (aAspectLine3d, aAspectText3d,
     aAspectMarker3d, aAspectFillArea3d);
 
@@ -253,10 +252,10 @@ void Graphic3d_Structure::Remove () {
   Standard_Integer i, Length;
   //        Standard_Address APtr = (void *) This ().operator->();
   Standard_Address APtr = (void *) this;
-  // Il faut enlever le pointeur possible sur cette structure
-  // que l'on est en train de detruire, dans la liste des descendants
-  // des ancetres de cette structure et dans la liste des ancetres
-  // des descendants de cette meme structure.
+  // It is necessary to remove the eventual pointer on the structure
+  // that can be destroyed, in the list of descendants
+  // of ancesters of this structure and in the list of ancesters
+  // of descendants of the same structure.
 
   Length  = MyDescendants.Length ();
   for (i=1; i<=Length; i++)
@@ -271,11 +270,11 @@ void Graphic3d_Structure::Remove () {
   MyCStructure.ContainsFacet      = 0;
   MyCStructure.IsDeleted  = 1;
 
-  // Destruction de me dans la bibliotheque graphique
+  // Destruction of me in the graphic library
   MyGraphicDriver->RemoveStructure (MyCStructure);
 
-  // Liberation de l'identification de la structure detruite
-  // dans le premier manager qui a gere la creation de la structure.
+  // Liberation of the identification if the destroyed structure 
+  // in the first manager that performs creation of the structure.
   if ( MyFirstPtrStructureManager )
     MyFirstStructureManager->Remove (Standard_Integer (MyCStructure.Id));
 
@@ -369,15 +368,15 @@ void Graphic3d_Structure::Highlight (const Aspect_TypeOfHighlightMethod AMethod)
 
   if (IsDeleted ()) return;
 
-  // Highlight sur une structure deja Highlighted.
+  // Highlight on already Highlighted structure.
   if (MyCStructure.highlight) {
 
     Aspect_TypeOfUpdate UpdateMode = MyStructureManager->UpdateMode ();
     if (UpdateMode == Aspect_TOU_WAIT)
       UnHighlight ();
     else {
-      // Pour eviter d'appeler la methode : Update ()
-      // Inutile et peut-etre couteux.
+      // To avoid call of method : Update ()
+      // Not useful and can be costly.
       MyStructureManager->SetUpdateMode (Aspect_TOU_WAIT);
       UnHighlight ();
       MyStructureManager->SetUpdateMode (UpdateMode);
@@ -404,14 +403,14 @@ void Graphic3d_Structure::SetHighlightColor (const Quantity_Color& AColor) {
   if (! MyCStructure.highlight)
     MyHighlightColor = AColor;
   else {
-    // Changement de highlight color sur une structure deja Highlighted.
+    // Change highlight color on already Highlighted structure.
 
     Aspect_TypeOfUpdate UpdateMode  = MyStructureManager->UpdateMode ();
     if (UpdateMode == Aspect_TOU_WAIT)
       UnHighlight ();
     else {
-      // Pour eviter d'appeler la methode : Update ()
-      // Inutile et peut-etre couteux.
+      // To avoid call of method : Update ()
+      // Not useful and can be costly.
       MyStructureManager->SetUpdateMode (Aspect_TOU_WAIT);
       UnHighlight ();
       MyStructureManager->SetUpdateMode (UpdateMode);
@@ -529,7 +528,7 @@ Standard_Boolean Graphic3d_Structure::IsVisible () const {
 
 Standard_Boolean Graphic3d_Structure::IsRotated () const {
 
-  // Test un peu leger !
+  // A somewhat light test !
   return   ( MyCStructure.Transformation[0][1] != 0.
     || MyCStructure.Transformation[0][2] != 0.
     || MyCStructure.Transformation[1][0] != 0.
@@ -552,11 +551,11 @@ Standard_Boolean Graphic3d_Structure::IsTransformed () const {
         Result = MyCStructure.Transformation[i][j] != 0.;
 
 #ifdef TRACE_ISTRSF
-  cout << "La structure " << Identification ();
+  cout << "Structure " << Identification ();
   if (Result)
-    cout << " est transformee\n" << flush;
+    cout << " is transformed\n" << flush;
   else
-    cout << " n'est pas transformee\n" << flush;
+    cout << " is not transformed\n" << flush;
 #endif
 
   return Result;
@@ -567,8 +566,8 @@ Standard_Boolean Graphic3d_Structure::ContainsFacet () const {
 
   if (IsDeleted ()) return (Standard_False);
 
-  // Une structure contient au moins une facette :
-  // si l'un de ses groupes est contient au moins une facette.
+  // A structure contains at least one facet :
+  // if one of these groups contains at least one facet.
 
   Standard_Boolean Result1 = Standard_False;
   Standard_Boolean Result2 = Standard_False;
@@ -576,13 +575,12 @@ Standard_Boolean Graphic3d_Structure::ContainsFacet () const {
 
   Result1 = (MyCStructure.ContainsFacet > 0);
 
-  // Si un des groupes contient au moins une facette alors
-  // la structure aussi.
+  // If one of groups contains at least one facet, the structure contains it too.
   if (Result1) return (Result1);
 
   Length  = MyDescendants.Length ();
 
-  // Je m'arrete au premier descendant qui contient au moins une facette.
+  // Stop at the first descendant  containing at least one facet.
   for (i=1; i<=Length && ! Result2; i++)
     Result2 = ((Graphic3d_Structure *)
     (MyDescendants.Value (i)))->ContainsFacet ();
@@ -595,26 +593,26 @@ Standard_Boolean Graphic3d_Structure::IsEmpty () const {
 
   if (IsDeleted ()) return (Standard_True);
 
-  // Une structure est vide :
-  // si l'ensemble de ses groupes est vide ou tous ses
-  // groupes sont vides et si l'ensemble de ses descendants
-  // est vide ou tous ses descendants sont vides.
+  // A structure is empty :
+  // if all these groups are empty or if all 
+  // groups are empty and all their descendants
+  // are empty or if all its descendants are empty.
 
   Standard_Boolean Result1   = Standard_True;
   Standard_Integer i, Length = MyGroups.Length ();
 
-  // Je m'arrete au premier groupe non vide
+  // Stop at the first non-empty group
   for (i=1; i<=Length && Result1; i++)
     Result1 = (MyGroups.Value (i))->IsEmpty ();
 
-  // Si un des groupes est non vide alors la structure l'est aussi.
+  // If a group is non-empty the structure is also non-empty.
   if (! Result1) return (Standard_False);
 
   Standard_Boolean Result2 = Standard_True;
 
   Length  = MyDescendants.Length ();
 
-  // Je m'arrete au premier descendant non vide
+  // Stop at the first non-empty descendant 
   for (i=1; i<=Length && Result2; i++)
     Result2 = ((Graphic3d_Structure *)
     (MyDescendants.Value (i)))->IsEmpty ();
@@ -1044,8 +1042,8 @@ void Graphic3d_Structure::SetPrimitivesAspect (const Handle(Graphic3d_AspectLine
   MyGraphicDriver->ContextStructure (MyCStructure);
 
   // CAL 14/04/95
-  // Les attributs sont "IsSet" lors de la premiere mise a jour
-  // d'un contexte (line, marker...)
+  // attributes are "IsSet" during the first update 
+  // of a context (line, marker...)
   MyCStructure.ContextLine.IsSet          = 1;
   MyCStructure.ContextFillArea.IsSet      = 1;
   MyCStructure.ContextMarker.IsSet        = 1;
@@ -1261,8 +1259,8 @@ void Graphic3d_Structure::SetPrimitivesAspect (const Handle(Graphic3d_AspectFill
 #endif
 
   // CAL 14/04/95
-  // Les attributs sont "IsSet" lors de la premiere mise a jour
-  // d'un contexte (line, marker...)
+  // Attributes are "IsSet" during the first update
+  // of context (line, marker...)
   MyCStructure.ContextLine.IsSet          = 1;
   MyCStructure.ContextFillArea.IsSet      = 1;
   MyCStructure.ContextMarker.IsSet        = 1;
@@ -1313,8 +1311,7 @@ void Graphic3d_Structure::SetPrimitivesAspect (const Handle(Graphic3d_AspectText
   MyGraphicDriver->ContextStructure (MyCStructure);
 
   // CAL 14/04/95
-  // Les attributs sont "IsSet" lors de la premiere mise a jour
-  // d'un contexte (line, marker...)
+  // Attributes are "IsSet" during the first update of a context (line, marker...)
   MyCStructure.ContextLine.IsSet          = 1;
   MyCStructure.ContextFillArea.IsSet      = 1;
   MyCStructure.ContextMarker.IsSet        = 1;
@@ -1345,9 +1342,7 @@ void Graphic3d_Structure::SetPrimitivesAspect (const Handle(Graphic3d_AspectMark
 
   MyGraphicDriver->ContextStructure (MyCStructure);
 
-  // CAL 14/04/95
-  // Les attributs sont "IsSet" lors de la premiere mise a jour
-  // d'un contexte (line, marker...)
+  // Attributes are "IsSet" during the first update of a context (line, marker...)
   MyCStructure.ContextLine.IsSet          = 1;
   MyCStructure.ContextFillArea.IsSet      = 1;
   MyCStructure.ContextMarker.IsSet        = 1;
@@ -1376,8 +1371,8 @@ void Graphic3d_Structure::SetVisual (const Graphic3d_TypeOfStructure AVisual) {
       Display ();
     }
     else {
-      // Pour eviter d'appeler la methode : Update ()
-      // Inutile et peut-etre couteux.
+      // To avoid calling method : Update ()
+      // Not useful and can be costly.
       MyStructureManager->SetUpdateMode (Aspect_TOU_WAIT);
       Erase ();
       MyVisual        = AVisual;
@@ -1500,8 +1495,8 @@ void Graphic3d_Structure::Connect (const Handle(Graphic3d_Structure)& AStructure
         MyAncestors.Append ((void *) AStructure.operator->());
         AStructure->Connect (this, Graphic3d_TOC_DESCENDANT);
 
-        // MyGraphicDriver->Connect est appele dans le cas
-        // d'un connect entre mere et fille
+        // MyGraphicDriver->Connect is called in case
+        // if connection between parent and child
       }
     }
     break;
@@ -1521,7 +1516,7 @@ void Graphic3d_Structure::Disconnect (const Handle(Graphic3d_Structure)& AStruct
     if ((void *) (MyDescendants.Value (i)) ==
       (void *) (AStructure.operator->())) indexD  = i;
 
-  // On cherche dans les Descendants
+  // Search in the Descendants
   if (indexD != 0) {
     MyDescendants.Remove (indexD);
     AStructure->Disconnect (this);
@@ -1538,13 +1533,13 @@ void Graphic3d_Structure::Disconnect (const Handle(Graphic3d_Structure)& AStruct
       if ((void *) (MyAncestors.Value (i)) ==
         (void *) (AStructure.operator->())) indexA  = i;
 
-    // On cherche dans les Ancestors
+    // Search in the Ancestors
     if (indexA != 0) {
       MyAncestors.Remove (indexA);
       AStructure->Disconnect (this);
 
-      // Pas de call a MyGraphicDriver->Disconnect
-      // dans le cas d'un ancetre
+      // No call of MyGraphicDriver->Disconnect
+      // in case of an ancestor
     }
   }
 
@@ -1562,20 +1557,20 @@ void Graphic3d_Structure::DisconnectAll (const Graphic3d_TypeOfConnection AType)
   case Graphic3d_TOC_DESCENDANT :
     Length      = MyDescendants.Length ();
     for (i=1; i<=Length; i++)
-      // Value (1) et non Value (i) car MyDescendants
-      // est modifiee par :
+      // Value (1) instead of Value (i) as MyDescendants
+      // is modified by :
       // Graphic3d_Structure::Disconnect (AStructure)
-      // qui enleve AStructure de MyDescendants
+      // that takes AStructure from MyDescendants
       ((Graphic3d_Structure *)
       (MyDescendants.Value (1)))->Disconnect (this);
     break;
   case Graphic3d_TOC_ANCESTOR :
     Length      = MyAncestors.Length ();
     for (i=1; i<=Length; i++)
-      // Value (1) et non Value (i) car MyAncestors
-      // est modifiee par :
+     // Value (1) instead of Value (i) as MyAncestors
+      // is modified by :
       // Graphic3d_Structure::Disconnect (AStructure)
-      // qui enleve AStructure de MyAncestors
+      // that takes AStructure from MyAncestors
       ((Graphic3d_Structure *)
       (MyAncestors.Value (1)))->Disconnect (this);
     break;
@@ -1606,7 +1601,7 @@ void Graphic3d_Structure::SetTransform (const TColStd_Array2OfReal& AMatrix, con
   TColStd_Array2OfReal AMatrix44 (0, 3, 0, 3);
 
   // Assign the new transformation in an array [0..3][0..3]
-  // Evite des problemes si le user a defini sa matrice [1..4][1..4]
+  // Avoid problemes if the user has defined matrice [1..4][1..4]
   //                                                 ou [3..6][-1..2] !!
   lr      = AMatrix.LowerRow ();
   ur      = AMatrix.UpperRow ();
@@ -1619,7 +1614,7 @@ void Graphic3d_Structure::SetTransform (const TColStd_Array2OfReal& AMatrix, con
 
   if (AType == Graphic3d_TOC_REPLACE) {
     MyCStructure.Composition = 0;
-    // La mise a jour de la CStructure
+    // Update of CStructure
     for (i=0; i<=3; i++)
       for (j=0; j<=3; j++) {
         MyCStructure.Transformation[i][j] =
@@ -1630,11 +1625,11 @@ void Graphic3d_Structure::SetTransform (const TColStd_Array2OfReal& AMatrix, con
 
   if (AType == Graphic3d_TOC_POSTCONCATENATE) {
     MyCStructure.Composition = 1;
-    // Pour simplifier la gestion des indices
+    // To simplify management of indices
     for (i=0; i<=3; i++)
       for (j=0; j<=3; j++)
         AMatrix44 (i, j) = AMatrix (lr + i, lc + j);
-    // Le calcul de produit de matrices
+    // Calculation of the product of matrices
     for (i=0; i<=3; i++)
       for (j=0; j<=3; j++) {
         NewTrsf (i, j) = 0.0;
@@ -1646,13 +1641,13 @@ void Graphic3d_Structure::SetTransform (const TColStd_Array2OfReal& AMatrix, con
           NewTrsf (i, j) = valuenewtrsf;
         }
       }
-      // La mise a jour de la CStructure
+      // Update of CStructure
       for (i=0; i<=3; i++)
         for (j=0; j<=3; j++)
           MyCStructure.Transformation[i][j] = float (NewTrsf (i, j));
   }
 
-  // Si transformation, non validation des parties cachees deja calculees.
+  // If transformation, no validation of hidden already calculated parts.
   if (IsRotated ())
     ReCompute ();
 
@@ -1691,8 +1686,8 @@ void Graphic3d_Structure::MinMaxValues (Standard_Real& XMin, Standard_Real& YMin
   if ((XTMin == RF) && (YTMin == RF) &&
       (ZTMin == RF) && (XTMax == RL) &&
       (YTMax == RL) && (ZTMax == RL)) {
-      // Cas impossible car cela voudrait dire
-      // que la structure est vide
+      // Case impossible as it would mean that 
+      // the structure is empty
       XMin = RF; 
       YMin = RF; 
       ZMin = RF;
@@ -1799,9 +1794,9 @@ gp_Pnt Graphic3d_Structure::TransformPersistencePoint() const
 
 void Graphic3d_Structure::Add (const Handle(Graphic3d_Group)& AGroup) {
 
-  // Methode appelee que par le constructeur de Graphic3d_Group
-  // Ce n'est pas la peine de tester l'existence de <AGroup>
-  // dans la sequence MyGroups.
+  // Method called only by the constructor of Graphic3d_Group
+  // It is easy to check presence of <AGroup>
+  // in sequence MyGroups.
   MyGroups.Append (AGroup);
 
 }
@@ -1850,7 +1845,7 @@ void Graphic3d_Structure::Remove (const Handle(Graphic3d_Group)& AGroup) {
   for (Standard_Integer i=1; i<=Length && index==0; i++)
     if (MyGroups.Value (i) == AGroup) index = i;
 
-  // On cherche dans les Groups
+  // Search in Groups
   if (index != 0) {
     Standard_Integer GroupLabelBegin, GroupLabelEnd;
     AGroup->Labels (GroupLabelBegin, GroupLabelEnd);
@@ -1980,8 +1975,8 @@ void Graphic3d_Structure::MinMaxCoord (Standard_Real& XMin, Standard_Real& YMin,
           if ((XMin == RL) && (YMin == RL) &&
               (ZMin == RL) && (XMax == RF) &&
               (YMax == RF) && (ZMax == RF)) {
-              // Cas impossible car cela voudrait dire
-              // que la structure est vide
+              // Case impossible as it would mean 
+              // that the structure is empty
               XMin    = RF;
               YMin    = RF;
               ZMin    = RF;
@@ -2075,8 +2070,7 @@ void Graphic3d_Structure::Network (const Handle(Graphic3d_Structure)& AStructure
     while (IteratorD.More ()) {
       Graphic3d_Structure::Network
         (IteratorD.Key (), AType, ASet);
-      // IteratorD.Next () se positionne
-      // sur la prochaine structure
+      // IteratorD.Next () is located on the next structure
       IteratorD.Next ();
     }
     break;
@@ -2085,9 +2079,8 @@ void Graphic3d_Structure::Network (const Handle(Graphic3d_Structure)& AStructure
     while (IteratorA.More ()) {
       Graphic3d_Structure::Network
         (IteratorA.Key (), AType, ASet);
-      // IteratorA.Next () se positionne
-      // sur la prochaine structure
-      IteratorA.Next ();
+      // IteratorD.Next () is located on the next structure
+     IteratorA.Next ();
     }
     break;
   }
@@ -2394,7 +2387,7 @@ void Graphic3d_Structure::GraphicHighlight (const Aspect_TypeOfHighlightMethod A
     break;
   case Aspect_TOHM_BOUNDBOX :
     if (IsEmpty () || IsInfinite ()) {
-      // Structure vide ou infinie
+      // Empty or infinite structure
       XMin = YMin = ZMin = 0.;
       XMax = YMax = ZMax = 0.;
     }
@@ -2462,11 +2455,11 @@ Graphic3d_TypeOfStructure Graphic3d_Structure::ComputeVisual () const {
 
 void Graphic3d_Structure::SetComputeVisual (const Graphic3d_TypeOfStructure AVisual) {
 
-  // On ne memorise le ComputeVisual que lorsque la structure est
-  // declaree TOS_ALL, TOS_WIREFRAME ou TOS_SHADING.
-  // C'est cette declaration qui va nous permettre de calculer
-  // la bonne representation de la structure calculee par Compute
-  // et non pas le passage en TOS_COMPUTED.
+  // The ComputeVisual is saved only if the structure is
+  // declared TOS_ALL, TOS_WIREFRAME or TOS_SHADING.
+  // This declaration permits to calculate
+  // proper representation of the structure calculated by Compute
+  // instead of passage to TOS_COMPUTED.
   if (AVisual != Graphic3d_TOS_COMPUTED)
     MyComputeVisual = AVisual;
 
@@ -2478,7 +2471,7 @@ void Graphic3d_Structure::Plot (const Handle(Graphic3d_Plotter)& ) {
 
 void Graphic3d_Structure::SetManager (const Handle(Graphic3d_StructureManager)& AManager, const Standard_Boolean WithPropagation) {
 
-  // Toutes les structures connectees doivent suivre ?
+  // All connected structures should follow ?
 #ifdef IMPLEMENTED
   if (WithPropagation) {
     Standard_Integer i, Length;
@@ -2494,7 +2487,7 @@ void Graphic3d_Structure::SetManager (const Handle(Graphic3d_StructureManager)&
   }
 #endif
 
-  // changement d'identification ?
+  // change of identification ?
   // MyStructureManager->Remove (Standard_Integer (MyCStructure.Id));
   // AManager->NewIdentification ();
   // MyCStructure.Id      = int (AManager->NewIdentification ());
@@ -2525,7 +2518,7 @@ void Graphic3d_Structure::SetManager (const Handle(Graphic3d_StructureManager)&
   MyStructureManager->SetUpdateMode (UpdateMode);
   AManager->SetUpdateMode (NewUpdateMode);
 
-  // Nouveau manager
+  // New manager
   MyPtrStructureManager   = (void *) AManager.operator->();
 
 }
@@ -2538,9 +2531,9 @@ void Graphic3d_Structure::SetHLRValidation (const Standard_Boolean AFlag) {
 
 Standard_Boolean Graphic3d_Structure::HLRValidation () const {
 
-  // Les parties cachees stockees dans <me> sont valides si :
-  // 1/ le proprietaire est defini.
-  // 2/ elles n'ont pas ete invalidees.
+  // Hidden parts stored in <me> are valid if :
+  // 1/ the owner is defined.
+  // 2/ they are not invalid.
 
   Standard_Boolean Result = MyOwner != NULL && MyCStructure.HLRValidation != 0;
 
index f7ea80a25a996c001096ac49b812fcca404c2b40..eba5ac443a97b73d3d69a3e7d0565baad362cc6c 100755 (executable)
@@ -9,9 +9,9 @@
 
 //-Version      
 
-//-Design       Declaration des variables specifiques aux managers
+//-Design       Declaration of variables specific to managers
 
-//-Warning      Un manager manipule un ensemble de structures
+//-Warning      Manager manages a set of structures
 
 //-References   
 
@@ -77,7 +77,7 @@ Standard_Integer Limit  = Graphic3d_StructureManager::Limit ();
         if (Initialisation) {
 
                 Initialisation = Standard_False;
-                /* tableau pour gerer les identificateurs de StructureManager */
+                /* table to manage IDs of StructureManager */
                 for (i=1; i<=Limit; i++) StructureManager_ArrayId[i]    = 0;
 
                 StructureManager_CurrentId      = 1;
@@ -307,7 +307,7 @@ Standard_Real Xm, Ym, Zm, XM, YM, ZM, RL, RF;
           }
         }
 
-        // Si toutes les structures sont vides ou infinies
+        // If all structures are empty or infinite
         if (Flag) {
           XMin = YMin = ZMin = RF;
           XMax = YMax = ZMax = RL;
index e5cb6e1e40a052300685b5e59d124646c59f77ab..8b5d382e37af350c367a72f10d973accfec2ef4b 100755 (executable)
@@ -113,7 +113,7 @@ Handle(AlienImage_AlienImage) Graphic3d_TextureRoot::LoadTexture() const
   OSD_File File(MyPath);
   File.Open(OSD_ReadOnly, Protection);
 
-  // ouverture du fichier ok ?
+  // open file ok ?
   if ( File.IsOpen() == Standard_False ) {
     TCollection_AsciiString sysname;
     MyPath.SystemName(sysname);
@@ -123,7 +123,7 @@ Handle(AlienImage_AlienImage) Graphic3d_TextureRoot::LoadTexture() const
 
 
   ////////////////////////
-  // lecture du fichier //
+  // file reading       //
   ////////////////////////
 
 
@@ -174,7 +174,6 @@ Handle(AlienImage_AlienImage) Graphic3d_TextureRoot::LoadTexture() const
 
   // Euclid ?
   ///////////
-  // plantouille royalement
   Handle(AlienImage_EuclidAlienImage) EuclidAlienImage = new AlienImage_EuclidAlienImage() ;
 
   if (EuclidAlienImage->Read( File )) {
@@ -193,7 +192,7 @@ Handle(AlienImage_AlienImage) Graphic3d_TextureRoot::LoadTexture() const
   }
 
 
-  // lever exception: type de fichier inconnu
+  // raise exception: file type unknown 
   return TheAlienImage;
 }
 
index b4dc3cded1a32bcddeb8ac284eebedf4e7d153d3..a32ae921504b73d6fb1e78b5567bcf3f7c7b4fd0 100755 (executable)
@@ -7,9 +7,9 @@
 
 //-Version     
 
-//-Design      Declaration des variables specifiques aux points
+//-Design      Declaration of variables specific to points
 
-//-Warning     Un point est defini par ses coordonnees et sa couleur
+//-Warning     A point is defined by its coordinates and color
 
 //-References  
 
@@ -24,7 +24,7 @@
 
 //-Global data definitions
 
-//     -- la couleur du point
+//     -- point color
 //     MyColor         :       Color;
 
 //-Constructors
 Graphic3d_VertexC::Graphic3d_VertexC () {
 }
 
-// le :(AX, AY, AZ) car VertexC herite de Vertex et il faut appeler le
-// constructeur de Vertex avec AX, AY et AZ pour mettre a jour
-// les fields MyX, MyY, MyZ.
+// :(AX, AY, AZ) as VertexC inherits Vertex and it is necessary to call
+// constructor of Vertex with AX, AY and AZ to update fields MyX, MyY, MyZ.
 
 Graphic3d_VertexC::Graphic3d_VertexC (const Standard_Real AX, const Standard_Real AY, const Standard_Real AZ, const Quantity_Color& AColor):
 Graphic3d_Vertex (AX, AY, AZ),
 MyColor (AColor) {
 }
 
-// le :(APoint) car VertexC herite de Vertex et il faut appeler le
-// constructeur de Vertex avec APoint pour mettre a jour
-// les fields MyX, MyY, MyZ.
+// :(APoint) as VertexC inherits Vertex and it is necessary to call
+// constructor of Vertex with APoint to update fields MyX, MyY, MyZ.
 
 Graphic3d_VertexC::Graphic3d_VertexC (const Graphic3d_Vertex& APoint, const Quantity_Color& AColor):
 Graphic3d_Vertex (APoint),
index b8a8311d2f63d9381057661cf6a1f7228330ccdd..54f5382ccf02cf8d1c3b81a1a8196b8700be7c56 100755 (executable)
@@ -8,10 +8,10 @@
 
 //-Version     
 
-//-Design      Declaration des variables specifiques aux points
+//-Design      Declaration of variables specific to points
 
-//-Warning     Un point est defini par ses coordonnees, sa normale
-//             et sa couleur
+//-Warning     A point is defined by its coordinates, normal 
+//             and color
 
 //-References  
 
@@ -26,7 +26,7 @@
 
 //-Global data definitions
 
-//     -- la couleur
+//     -- the color
 //     MyColor         :       Color;
 
 //-Constructors
@@ -44,18 +44,18 @@ Quantity_Color AColor (Quantity_NOC_WHITE);
 
 }
 
-// le :(AX, AY, AZ) car VertexNC herite de VertexN et il faut appeler le
-// constructeur de VertexN avec AX, AY, AZ, ANX, ANY et ANZ pour
-// mettre a jour les fields.
+// :(AX, AY, AZ) as VertexNC inherits VertexN and it is necessary to call
+// constructor of VertexN with AX, AY, AZ, ANX, ANY and ANZ to
+// update fields.
 
 Graphic3d_VertexNC::Graphic3d_VertexNC (const Standard_Real AX, const Standard_Real AY, const Standard_Real AZ, const Standard_Real ANX, const Standard_Real ANY, const Standard_Real ANZ, const Quantity_Color& AColor,const Standard_Boolean FlagNormalise):
 Graphic3d_VertexN (AX, AY, AZ, ANX, ANY, ANZ,FlagNormalise),
 MyColor (AColor) {
 }
 
-// le :(APoint, AVector) car VertexNC herite de VertexN et il faut appeler le
-// constructeur de VertexN avec APoint et AVector pour mettre a jour
-// les fields.
+//  :(APoint, AVector) as VertexNC inherits VertexN and it is necessary to call
+// constructor of VertexN with APoint and AVector to
+// update fields.
 
 Graphic3d_VertexNC::Graphic3d_VertexNC (const Graphic3d_Vertex& APoint, const Graphic3d_Vector& AVector, const Quantity_Color& AColor,const Standard_Boolean FlagNormalise):
 Graphic3d_VertexN (APoint, AVector,FlagNormalise),
index 7d3da794865de99ddce9595ea60f4972a1598fc3..4d3ea10a377f9122d1de6839fcd6ef949af4fe9e 100755 (executable)
@@ -61,7 +61,7 @@ void Graphic3d_WNTGraphicDevice::SetGraphicDriver ()
       (MySharedLibrary.DlError ());
   }
   else {
-    // Gestion des traces
+    // Management of traces
     OSD_Environment beurk("CSF_GraphicTrace");
     TCollection_AsciiString val = beurk.Value();
     if (val.Length() > 0 )
@@ -74,10 +74,10 @@ void Graphic3d_WNTGraphicDevice::SetGraphicDriver ()
         (MySharedLibrary.DlError ());
     }
     else {
-      // Sequence artistique :
-      // new_GLGraphicDriver est une OSD_Function :
+      // Sequence :
+      // new_GLGraphicDriver is OSD_Function :
       // typedef int (* OSD_Function)(...);
-      // d'ou le magnifique cast en GraphicDriver.
+      // wherefrom a good cast in GraphicDriver.
       //Handle( Graphic3d_GraphicDriver ) ADriver = new Graphic3d_GraphicDriver ( TheShr );
 
       GET_DRIVER_PROC fp = ( GET_DRIVER_PROC )new_GLGraphicDriver;
@@ -87,7 +87,7 @@ void Graphic3d_WNTGraphicDevice::SetGraphicDriver ()
         (MySharedLibrary.DlError ());
       MyGraphicDriver = ( *fp ) ( TheShr );
 
-      // Gestion des traces
+      // Management of traces
       if ( val.Length() > 0 && val.IsIntegerValue() )
         MyGraphicDriver->SetTrace(val.IntegerValue());
     }
index 1a25caf54bf170b71f05710b26f8b3cbc2d22305..59e8dcb8b20b8b5e2e7c35fbce0f1c4351f08564 100755 (executable)
        TolVertex=TolVertex1;
       }        
       //
-      //-- Verification des cas ou on a oublie de coder degenereted
+      //-- Verification of cases when forgotten to code degenereted
       if(!degenerated) {
        Standard_Real aR2;
        gp_Pnt P3da, P3db;
       }
       //
       //-- ------------------------------------------------------------
-      //-- On regarde la distance uv entre le point de debut de l edge
-      //-- et le dernier point enregistre dans SeqPnt2d
-      //-- On cherche a eloigner le premier point de l edge courant 
-      //-- du dernier point enregistre
+      //-- Check distance uv between the start point of the edge
+      //-- and the last point saved in SeqPnt2d
+      //-- To to set the first point of the current 
+      //-- afar from the last saved point
       Avant = nbpnts;
       for(iX=firstpoint; iX<=aNbs1; iX++) {
        Standard_Boolean IsRealCurve3d;
     // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
     //
     if(NbEdges) { 
-      //-- on compte ++ avec un explorateur normal et -- avec le Wire Exploreur
+      //-- count ++ with normal explorer and -- with Wire Explorer
       TColgp_Array1OfPnt2d PClass(1,2);
       gp_Pnt2d anInitPnt(0., 0.);
       //
   Standard_Integer nbtabclass = TabClass.Length();
   //
   if(nbtabclass>0) { 
-    //-- Si une erreur sur un wire a ete detecte : On met tous les TabOrien a -1
+    //-- if an error on a wire was detected : all TabOrien set to -1
     if(BadWire) {
       TabOrien(1)=-1;
     }
     return(TopAbs_IN);
   }
   
-  //-- U1 est le First Param et U2 ds ce cas est U1+Period
+  //-- U1 is the First Param and U2 is in this case U1+Period
   Standard_Real u, v, uu, vv,  uperiod, vperiod;
   Standard_Boolean IsUPer, IsVPer, urecadre, vrecadre;
   TopAbs_State Status= TopAbs_UNKNOWN;
       }
     } // if(TabOrien(1)!=-1) {
     
-    else {  //-- TabOrien(1)=-1    Wire Faux
+    else {  //-- TabOrien(1)=-1   Wrong Wire
       BRepClass_FaceClassifier aClassifier;
       aClassifier.Perform(Face,Puv,Toluv);
       Status = aClassifier.State();
     return(TopAbs_IN);
   }
   
-  //-- U1 est le First Param et U2 ds ce cas est U1+Period
+  //-- U1 is the First Param and U2 in this case is U1+Period
   Standard_Real u=_Puv.X();
   Standard_Real v=_Puv.Y();
   Standard_Real uu = u, vv = v;
        Status = TopAbs_OUT;
       }
     }
-    else {  //-- TabOrien(1)=-1    Wire Faux
+    else {  //-- TabOrien(1)=-1  Wrong  Wire 
       BRepClass_FaceClassifier aClassifier;
       aClassifier.Perform(Face,Puv,Tol);
       Status = aClassifier.State();
index b45d5359f9b2d5547d35b82d44eab8709821bb57..0a3b23833e1995091b60362082637dda4f157be2 100755 (executable)
@@ -852,7 +852,7 @@ void IntTools_FaceFace::SetList(IntSurf_ListOfPntOn2S& aListOfPnts)
       } // end of if (!Precision::IsNegativeInfinite(fprm) &&  !Precision::IsPositiveInfinite(lprm))
 
       else {
-       //  on regarde si on garde
+       //  check if keep
        //
        Standard_Boolean bFNIt, bLPIt;
        Standard_Real aTestPrm, dT=100.;
@@ -1135,7 +1135,7 @@ void IntTools_FaceFace::SetList(IntSurf_ListOfPntOn2S& aListOfPnts)
 
            }//  end of if (ok) {
          }//  end of for (Standard_Integer j=0; j<=17; j++)
-       }//  end of else { on regarde si on garde
+       }//  end of else { check if keep
       }// for (i=1; i<=myLConstruct.NbParts(); i++)
     }// IntPatch_Circle: IntPatch_Ellipse:
     break;
@@ -1462,9 +1462,8 @@ void IntTools_FaceFace::SetList(IntSurf_ListOfPntOn2S& aListOfPnts)
            ilprm = (Standard_Integer)lprm;
          }
        }
-       //-- lbr : 
-       //-- Si une des surfaces est un plan , on approxime en 2d
-       //-- sur cette surface et on remonte les points 2d en 3d.
+       //-- If one of surfaces is a plane , 2D approximation is done on 
+       //-- this surface and 2D points are returned in 3D.
        if(typs1 == GeomAbs_Plane) { 
          theapp3d.Perform(myHS1, myHS2, WL, Standard_False,Standard_True, myApprox2,ifprm,ilprm);
        }         
@@ -1869,7 +1868,7 @@ void IntTools_FaceFace::SetList(IntSurf_ListOfPntOn2S& aListOfPnts)
     S->Bounds(umin, umax, vmin, vmax);
 
     if (S->IsUPeriodic() && !C2d.IsNull()) {
-      // Recadre dans le domaine UV de la face
+      // Reframe in domain UV of the face
       Standard_Real period, U0, du, aEps; 
       
       du =0.0;
@@ -2020,7 +2019,7 @@ Handle(Geom2d_BSplineCurve) MakeBSpline2d(const Handle(IntPatch_WLine)& theWLine
   IntTools_SequenceOfCurves aNewCvs;
 
   //
-  // 1. Treatment of periodic and closed  curves
+  // 1. Processing of periodic and closed  curves
   aNbCurves=mySeqOfCurve.Length();
   for (i=1; i<=aNbCurves; i++) {
     const IntTools_Curve& aIC=mySeqOfCurve(i);
@@ -3772,7 +3771,7 @@ Standard_Boolean DecompositionOfWLine(const Handle(IntPatch_WLine)& theWLine,
 // ------------------------------------------------------------------------------------------------
 // static function: ParameterOutOfBoundary
 // purpose:         Computes a new parameter for given curve. The corresponding 2d points 
-//                  does not lay on any boundary of given faces
+//                  do not lie on any boundary of given faces
 // ------------------------------------------------------------------------------------------------
 Standard_Boolean ParameterOutOfBoundary(const Standard_Real       theParameter, 
                                        const Handle(Geom_Curve)& theCurve, 
index 7bfc2257c6c25d20bc73db31aad1227b4863fd20..302485f7111a8b08676d0c4523f8325354939961 100755 (executable)
@@ -63,7 +63,7 @@ static void Recadre(const Handle(GeomAdaptor_HSurface)& myHS1,
     }
     default:
     {
-      //-- Le cas de biparametrees periodiques est gere en amont
+      //-- Case of periodic biparameters is processed upstream
       myHS1IsUPeriodic = myHS1IsVPeriodic = Standard_False;
       break;
     }
@@ -87,7 +87,7 @@ static void Recadre(const Handle(GeomAdaptor_HSurface)& myHS1,
     }
     default:
     {
-      //-- Le cas de biparametrees periodiques est gere en amont
+      //-- Case of periodic biparameters is processed upstream
       myHS2IsUPeriodic = myHS2IsVPeriodic = Standard_False;
       break;
     }
@@ -216,9 +216,9 @@ void IntTools_LineConstructor::Perform(const Handle(IntPatch_Line)& L)
          Pmid.Parameters(u1,v1,u2,v2);
          Recadre(myHS1,myHS2,u1,v1,u2,v2);
          const TopAbs_State in1 = myDom1->Classify(gp_Pnt2d(u1,v1),Tol);
-         if(in1 !=  TopAbs_OUT) {  //-- !=ON donne Pb 
+         if(in1 !=  TopAbs_OUT) {   
            const TopAbs_State in2 = myDom2->Classify(gp_Pnt2d(u2,v2),Tol);
-           if(in2 != TopAbs_OUT) { //-- !=ON  
+           if(in2 != TopAbs_OUT) {   
              seqp.Append(firstp);
              seqp.Append(lastp);
            }
@@ -371,9 +371,8 @@ void IntTools_LineConstructor::Perform(const Handle(IntPatch_Line)& L)
       }
     }      
     if (!intrvtested) {
-      // on garde a priori. Il faudrait un point 2d sur chaque
-      // surface pour prendre la decision. Sera fait dans 
-      // l`appelant
+      // Keep a priori. A point 2d on each
+      // surface is required to make the decision. Will be done in the caller
       seqp.Append(GeomInt_LineTool::FirstParameter(L));
       seqp.Append(GeomInt_LineTool::LastParameter(L));
     }
@@ -446,9 +445,8 @@ void IntTools_LineConstructor::Perform(const Handle(IntPatch_Line)& L)
   done = Standard_False;
   seqp.Clear();
   nbvtx = GeomInt_LineTool::NbVertex(L);
-  if (nbvtx == 0) { // on garde a priori. Il faudrait un point 2d sur chaque
-                    // surface pour prendre la decision. Sera fait dans 
-                    // l`appelant
+  if (nbvtx == 0) { // Keep a priori. Point 2d is required on each
+                    // surface to make the decision. Will be done in the caller
     seqp.Append(GeomInt_LineTool::FirstParameter(L));
     seqp.Append(GeomInt_LineTool::LastParameter(L));
     done = Standard_True;
@@ -494,7 +492,7 @@ void IntTools_LineConstructor::Perform(const Handle(IntPatch_Line)& L)
     {
       if (Abs(prm-seqpss(j).Parameter()) <= Tol)
       {
-       // on cumule
+       // accumulate
        GeomInt_ParameterAndOrientation& valj = seqpss.ChangeValue(j);
        if (or1 != TopAbs_INTERNAL) {
          if (valj.Orientation1() != TopAbs_INTERNAL) {
@@ -522,7 +520,7 @@ void IntTools_LineConstructor::Perform(const Handle(IntPatch_Line)& L)
       }
       
       if (prm < seqpss(j).Parameter()-Tol ) {
-       // on insere avant la position j
+       // insert before position j
        seqpss.InsertBefore(j,GeomInt_ParameterAndOrientation(prm,or1,or2));
        inserted = Standard_True;
        break;
@@ -534,7 +532,7 @@ void IntTools_LineConstructor::Perform(const Handle(IntPatch_Line)& L)
     }
   }
 
-  // on determine l`etat en debut de ligne
+  // determine the state at the beginning of line
   Standard_Boolean trim = Standard_False;
   Standard_Boolean dansS1 = Standard_False;
   Standard_Boolean dansS2 = Standard_False;
@@ -567,7 +565,7 @@ void IntTools_LineConstructor::Perform(const Handle(IntPatch_Line)& L)
         break;
       }
     }
-    dansS1 = Standard_True; // on garde dans le doute
+    dansS1 = Standard_True; // Keep in doubt
   }
 
   for (i=1; i<= nbvtx; i++)
@@ -596,18 +594,18 @@ void IntTools_LineConstructor::Perform(const Handle(IntPatch_Line)& L)
         break;
       }
     }
-    dansS2 = Standard_True; // on garde dans le doute
+    dansS2 = Standard_True; //  Keep in doubt
   }
 
-  if (!trim) { // on a necessairement dansS1 == dansS2 == Standard_True
+  if (!trim) { // necessarily dansS1 == dansS2 == Standard_True
     seqp.Append(GeomInt_LineTool::FirstParameter(L));
     seqp.Append(GeomInt_LineTool::LastParameter(L));
     done = Standard_True;
     return;
   }
 
-  // On epluche la sequence seqpss pour constituer les bouts valides
-  // et les stocker dans seqp(2*i+1) et seqp(2*i+2)
+  // sequence seqpss is peeled to create valid ends 
+  // and store them in seqp(2*i+1) and seqp(2*i+2)
 
   Standard_Real thefirst = GeomInt_LineTool::FirstParameter(L);
   Standard_Real thelast = GeomInt_LineTool::LastParameter(L);
@@ -676,7 +674,7 @@ void IntTools_LineConstructor::Perform(const Handle(IntPatch_Line)& L)
     }
   }
 
-  // le petit dernier a rajouter
+  // finally to add
   if (dansS1 && dansS2)
   {
     lastp  = thelast;
index 6bd071eed7e5354e748a863f340053743f3cd20f..af4814a1096ccc34c8fd49271d411ed88cb9ed07 100755 (executable)
@@ -15,15 +15,15 @@ void Prs3d_Arrow::Draw(const Handle(Prs3d_Presentation)& aPresentation,
 
   Quantity_Length dx,dy,dz;  aDirection.Coord(dx,dy,dz);
 //
-// Pointe de la fleche:
+// Point of the arrow:
   Quantity_Length xo,yo,zo;  aLocation.Coord(xo,yo,zo);
 
-// Centre du cercle base de la fleche:
+// Center of the base circle of the arrow:
   Quantity_Length xc = xo - dx * aLength;
   Quantity_Length yc = yo - dy * aLength;
   Quantity_Length zc = zo - dz * aLength;
 
-// Construction d'un repere i,j pour le cercle:
+// Construction of i,j mark for the circle:
   Quantity_Length xn=0., yn=0., zn=0.;
 
   if ( Abs(dx) <= Abs(dy) && Abs(dx) <= Abs(dz)) xn=1.;
index e3c6784800bf9fa3691342eda2038f37f7b0d7c6..35c57a56939bff70d05861dcb216aebb18babb76 100755 (executable)
@@ -3,8 +3,7 @@
 // Author:     Jean-Louis FRENKEL
 // Modified by  rob 09-oct-96
 //             <jlf@stylox>
-//              rob 18-may-98 : Pb de la Trsf dont le type n'est pas calcule en fonction
-//                              des coefficients.
+
 
 #define IMP040200      //GG Recompute HLR after transformation
 //                     in all the case.
@@ -131,14 +130,14 @@ void PrsMgr_Presentation3d::SetShadingAspect(const Handle(Prs3d_ShadingAspect)&
 
 //=======================================================================
 //function : Compute
-//purpose  : Les methodes pour les parties cachees...
+//purpose  : Methods for hidden parts...
 //=======================================================================
 
 Handle(Graphic3d_Structure) PrsMgr_Presentation3d::
 Compute(const Handle(Graphic3d_DataStructureManager)& aProjector)
 {
 #ifdef DEB
-  cout<<"passage dans g = Compute(P) "<<endl;
+  cout<<"passage in g = Compute(P) "<<endl;
 #endif
   Handle(Prs3d_Presentation) g = new Prs3d_Presentation(Handle(PrsMgr_PresentationManager3d)::DownCast(PresentationManager())->StructureManager());
   myPresentableObject->Compute(Projector(aProjector),g);
@@ -154,7 +153,7 @@ void PrsMgr_Presentation3d::Compute(const Handle(Graphic3d_DataStructureManager)
                                    const Handle(Graphic3d_Structure)& TheStructToFill)
 {
 #ifdef DEB
-  cout<<"passage dans Compute(P,Str)"<<endl;
+  cout<<"passage in Compute(P,Str)"<<endl;
 #endif
   TheStructToFill->Clear();
   const Handle(Prs3d_Presentation)& P = *((Handle(Prs3d_Presentation)*) &TheStructToFill);
@@ -170,7 +169,7 @@ Compute(const Handle(Graphic3d_DataStructureManager)& aProjector,
        const Handle(Geom_Transformation)& TheTrsf)
 {
 #ifdef DEB
-  cout<<"passage dans G =  Compute(P,Trsf)"<<endl;
+  cout<<"passage in G =  Compute(P,Trsf)"<<endl;
 #endif
   Handle(Prs3d_Presentation) g = new Prs3d_Presentation(Handle(PrsMgr_PresentationManager3d)::DownCast(PresentationManager())->StructureManager());
 
@@ -184,7 +183,7 @@ Compute(const Handle(Graphic3d_DataStructureManager)& aProjector,
     g->Transform(TheTrsf);
   }
   else{
-    // en attendant que la chose soit effectue dans gp_Trsf...rob
+    // waiting that something is done in gp_Trsf...rob
     Standard_Boolean good (Standard_True);
     for (Standard_Integer i=1;i<=3 && good ;i++){
       for (Standard_Integer j=1;j<=3 && good ;j++){
@@ -197,7 +196,7 @@ Compute(const Handle(Graphic3d_DataStructureManager)& aProjector,
     
     if(good){
 #ifdef DEB
-      cout<<"\ton a verifie que la Trsf est une Translation"<<endl;
+      cout<<"\t it is checked if Trsf is a Translation"<<endl;
 #endif
     myPresentableObject->Compute(Projector(aProjector),g);
     g->Transform(TheTrsf);
@@ -205,7 +204,7 @@ Compute(const Handle(Graphic3d_DataStructureManager)& aProjector,
     }
     else{
 #ifdef DEB
-      cout<<"\tla Trsf n'est pas seulement translation..."<<endl;
+      cout<<"\t Trsf is not only translation..."<<endl;
 #endif
       myPresentableObject->Compute(Projector(aProjector),TheTrsf,g);
     }
@@ -223,7 +222,7 @@ void PrsMgr_Presentation3d::Compute(const Handle(Graphic3d_DataStructureManager)
 {
   
 #ifdef DEB
-  cout<<"passage dans Compute(P,Trsf,Str)"<<endl;
+  cout<<"passage in Compute(P,Trsf,Str)"<<endl;
 #endif
 
   Handle(Prs3d_Presentation) P = *((Handle(Prs3d_Presentation)*)&TheStructToFill);
@@ -231,16 +230,16 @@ void PrsMgr_Presentation3d::Compute(const Handle(Graphic3d_DataStructureManager)
 #ifdef IMP040200       
   TheStructToFill->Clear();
   myPresentableObject->Compute(Projector(aProjector),TheTrsf,P);
-#else  //Does not work properly ,HLR seems deactivated for view rotation 
+#else  //Does not work properlyHLR seems deactivated for view rotation 
   if(TheTrsf->Form()== gp_Translation){
 #ifdef DEB
-    cout<<"\tla Trsf est une translation"<<endl;
+    cout<<"\t Trsf is a translation"<<endl;
 #endif
 //    myPresentableObject->Compute(Projector(aProjector),P);
     P->Transform(TheTrsf);
   }
   else{
-    // en attendant que la chose soit effectue dans gp_Trsf...rob
+    //  waiting that something is done in gp_Trsf...rob
     Standard_Boolean good (Standard_True);
     for (Standard_Integer i=1;i<=3 && good ;i++){
       for (Standard_Integer j=1;j<=3 && good ;j++){
@@ -252,7 +251,7 @@ void PrsMgr_Presentation3d::Compute(const Handle(Graphic3d_DataStructureManager)
     }
     if(good && !TheStructToFill->IsEmpty()){
 #ifdef DEB
-      cout<<"\ton a verifie que la Trsf est une Translation"<<endl;
+      cout<<"\t it is checked if Trsf is a Translation"<<endl;
 #endif
       
       P->Transform(TheTrsf);
@@ -261,7 +260,7 @@ void PrsMgr_Presentation3d::Compute(const Handle(Graphic3d_DataStructureManager)
       TheStructToFill->Clear();
       
 #ifdef DEB
-      cout<<"\tla Trsf n'est pas seulement translation..."<<endl;
+      cout<<"\t Trsf is not only translation..."<<endl;
 #endif
       
       myPresentableObject->Compute(Projector(aProjector),TheTrsf,P);
index aaa01a516abebece6d19b29f9764b85edfb0547c..21b1da0203c9ce5a008d205d19ffe47bd0b86928 100755 (executable)
@@ -16,7 +16,7 @@
 
 //=======================================================================
 //function : Select3D_SensitiveCircle (constructeur)
-//purpose  : Definition d'un cercle sensible
+//purpose  : Definition of a sensitive circle
 //=======================================================================
 static Standard_Integer S3D_GetCircleNBPoints(const Handle(Geom_Circle)& C,
                                               const Standard_Integer anInputNumber)
@@ -73,7 +73,7 @@ myDetectedIndex(-1)
 
 //=======================================================================
 //function : Select3D_SensitiveCircle (constructeur)
-//purpose  : Definition d'un arc sensible
+//purpose  : Definition of a sensitive arc
 //=======================================================================
 Select3D_SensitiveCircle::
 Select3D_SensitiveCircle(const Handle(SelectBasics_EntityOwner)& OwnerId, 
@@ -153,9 +153,9 @@ Matches(const Standard_Real X,
 {
   
 
-  // dans le cas Edge (pourtour de la face seulement 
-  //on regarde si le point souris X,Y se trouve a l'interieur du triangle
-  // pi,pi+1,pi+2 a la tolerance pres... si oui on a fini...
+  // in case of Edge (for the face it is only checked if 
+  // the mouse point X,Y is found inside the triangle
+  // pi,pi+1,pi+2 with close tolerance... if yes, finish...
   if(mynbpoints>1){
     Standard_Boolean Found =Standard_False;
     Standard_Integer i = 0;
@@ -199,7 +199,7 @@ Matches(const Standard_Real X,
          Standard_Real V1V1 = V1.SquareModulus();
          DMin2 = 
            (V1V1 <=aTol2) ? 
-             Min(DMin2,V.SquareModulus()): // si le segment est trop petit...
+             Min(DMin2,V.SquareModulus()): // if the segment is too small...
                Min(DMin2,Vector*Vector/V1V1);
          
        }
index c029851ad7dbef8612cab04107a44b52f22e22ab..9090795a260fccf0ee6c35d5701c5f9f8e9fb339 100755 (executable)
@@ -8,7 +8,6 @@
 //Modif on jul-21-97 : changement en harray1 pour eventuelles connexions ...
 
 #include <Select3D_SensitiveFace.ixx>
-#include <Select3D_Projector.hxx>
 #include <SelectBasics_BasicTool.hxx>
 #include <gp_Pnt2d.hxx>
 #include <gp_Pnt.hxx>
@@ -30,8 +29,8 @@
 #define AutoInitFlags(aflag) (aflag = 0)
 
 //==================================================
-// Function: faire disparaitre ce constructeur a la prochaine version...
-// Purpose : simplement garde pour ne pas perturber la version update
+// Function: Hide this constructor to the next version...
+// Purpose : simply avoid interfering with the version update
 //==================================================
 
 Select3D_SensitiveFace::
@@ -82,9 +81,9 @@ Matches(const Standard_Real X,
     Bnd_Box2d(mybox2d).Get(Xmin,Ymin,Xmax,Ymax);
     DMin2 = gp_XY(Xmax-Xmin,Ymax-Ymin).SquareModulus();
   }
-  // calcul d'un critere de distance mini...
-  // au depart Dmin = taille de la boite englobante 2D,
-  // ensuite distance mini du polyedre ou du cdg...
+  // calculation of a criterion of minimum distance...
+  // from start Dmin = size of the bounding box 2D,
+  // then min. distance of the polyhedron or cdg...
 
   Standard_Real aTol2 = aTol*aTol;
   gp_XY CDG(0.,0.);
@@ -111,16 +110,18 @@ Matches(const Standard_Real X,
     Standard_Real V1V1 = V1.SquareModulus();
     DMin2 = 
       (V1V1 <=aTol2) ? 
-    Min(DMin2,V.SquareModulus()): // si le segment est trop petit...
+    Min(DMin2,V.SquareModulus()): // if the segment is too small...
       Min(DMin2,Vector*Vector/V1V1);
     //cdg ...
     gp_XY PlaneTest(CDG);PlaneTest-=((Select3D_Pnt2d*)mypolyg2d)[I-1];
     Standard_Real valtst = PlaneTest^V1;
     if(isplane2d && Abs(valtst)>aTol) isplane2d=Standard_False;
   }
-  if (isplane2d)
-  {
-    return Select3D_SensitiveEntity::Matches(X,Y,aTol,DMin);
+
+  if(isplane2d) {
+    Select3D_SensitiveEntity::Matches(X,Y,aTol,DMin);
+    
+    return Standard_True;
   }
   //detection d'une auto - intersection dans le polygon 2D; si oui on sort
 //    if (!AutoComputeFlag(myautointer)) {
@@ -134,7 +135,7 @@ Matches(const Standard_Real X,
 //   if (AutoInterFlag(myautointer)) return Standard_True;
 // //  
 
-  //sinon on regarde si le point est dans la face...
+  //otherwise it is checked if the point is in the face...
   TColgp_Array1OfPnt2d aArrayOf2dPnt(1, mynbpoints);
   Points2D(aArrayOf2dPnt);
   CSLib_Class2d TheInOutTool(aArrayOf2dPnt,aTol,aTol,Xmin,Ymin,Xmax,Ymax);
@@ -150,11 +151,10 @@ Matches(const Standard_Real X,
        res = Standard_True;
     }
   }
-  if (res)
-  {
-    return Select3D_SensitiveEntity::Matches(X,Y,aTol,DMin);
-  }
-  return Standard_False;
+  if(res)
+    Select3D_SensitiveEntity::Matches(X,Y,aTol,DMin);
+    
+  return res;
 }
 
 //=======================================================================
@@ -230,17 +230,8 @@ void Select3D_SensitiveFace::Dump(Standard_OStream& S,const Standard_Boolean Ful
 //=======================================================================
 Standard_Real Select3D_SensitiveFace::ComputeDepth(const gp_Lin& EyeLine) const
 {
-  Standard_Real aDepth = Precision::Infinite();
-  Standard_Real aDepthMin = !mylastprj.IsNull() ? mylastprj->DepthMin() : -Precision::Infinite();
-  Standard_Real aDepthMax = !mylastprj.IsNull() ? mylastprj->DepthMax() :  Precision::Infinite();
-  Standard_Real aDepthTest;
-  for (Standard_Integer i = 0; i < mynbpoints - 1; i++)
-  {
-    aDepthTest = ElCLib::Parameter (EyeLine, ((Select3D_Pnt* )mypolyg3d)[i]);
-    if (aDepthTest < aDepth && (aDepthTest > aDepthMin) && (aDepthTest < aDepthMax))
-    {
-      aDepth = aDepthTest;
-    }
-  }
-  return aDepth;
+  Standard_Real val(Precision::Infinite());
+  for(Standard_Integer i=0;i<mynbpoints-1;i++)
+    val = Min(val,ElCLib::Parameter(EyeLine,((Select3D_Pnt*)mypolyg3d)[i]));
+  return val;
 }
index ebacc233a6bc10777827f09fd625f86e7f28d7a7..5c833db121fbd0ca80f45e1a059a047f7372a166 100755 (executable)
@@ -89,10 +89,10 @@ void Select3D_SensitiveGroup::Clear()
 //purpose  : 
 //=======================================================================
 
-void Select3D_SensitiveGroup::Project(const Handle(Select3D_Projector)& aProjector) 
+void Select3D_SensitiveGroup::Project(const Select3D_Projector& aProjector) 
 {
   Select3D_SensitiveEntity::Project(aProjector); // to set the field last proj...
-
+  
   for(Select3D_ListIteratorOfListOfSensitive It(myList);It.More();It.Next()){
     It.Value()->Project(aProjector);
   }
@@ -180,16 +180,16 @@ Standard_Boolean Select3D_SensitiveGroup::Matches(const Standard_Real X,
   myLastTol = aTol;
   for(Select3D_ListIteratorOfListOfSensitive It(myList);It.More();It.Next()){
     myLastRank++;
-    if (It.Value()->Matches (X, Y, aTol, DMin))
-    {
-      myX = X; myY = Y; myLastTol = aTol;
-      // compute and validate the depth (will call ::ComputeDepth())
-      return Select3D_SensitiveEntity::Matches (X, Y, aTol, DMin);
+    if(It.Value()->Matches(X,Y,aTol,DMin)){
+      myX = X;myY = Y;myLastTol = aTol;
+      SetLastDepth( Precision::Infinite() );
+      
+      Select3D_SensitiveEntity::Matches(X,Y,aTol,DMin);
+      return Standard_True;
     }
   }
-  // no match
-  myLastRank = 0;
-  SetLastDepth (ShortRealLast());
+  myLastRank =0;
+  SetLastDepth(0.0);
   return Standard_False;
 }
 
@@ -252,31 +252,24 @@ Matches (const TColgp_Array1OfPnt2d& aPoly,
 
 //=======================================================================
 //function : ComputeDepth
-//purpose  : pour optimiser, on prend le min des profondeurs pou
-//          les entites qui repondent OUI a Matches(X,Y,...)
-//          on commence le test a partir de mylastRank...
+//purpose  : to optimise, the minimum depth fo
+//          entities that answer YES to Matches(X,Y,...) is taken
+//          the test is started from mylastRank...
 //=======================================================================
 Standard_Real Select3D_SensitiveGroup::ComputeDepth(const gp_Lin& EyeLine) const
 {
-  Standard_Integer currank = 0;
-  Standard_Real DMin, thedepth (Precision::Infinite());
-  for (Select3D_ListIteratorOfListOfSensitive It(myList);It.More();It.Next())
-  {
+  Standard_Integer currank(0);
+  Standard_Real DMin,thedepth(Precision::Infinite());
+  for(Select3D_ListIteratorOfListOfSensitive It(myList);It.More();It.Next()){
     currank++;
-    if (currank >= myLastRank)
-    {
-      // this recomputes and validates the depth for the entity
-      if (It.Value()->Matches (myX, myY, myLastTol, DMin))
-      {
-        It.Value()->ComputeDepth (EyeLine);
-        if (It.Value()->Depth() < thedepth)
-        {
-          // search for topmost entity
-          thedepth = It.Value()->Depth();
-          //myLastRank = currank; // can not do this here...
-        }
+    if(currank>=myLastRank){
+      if(It.Value()->Matches(myX,myY,myLastTol,DMin)){
+       It.Value()->ComputeDepth(EyeLine);
+       thedepth = Min(Depth(),
+                      It.Value()->Depth());
       }
     }
+    
   }
   return thedepth;
 }
@@ -294,7 +287,7 @@ Standard_Integer Select3D_SensitiveGroup::MaxBoxes() const
   return nbboxes;
 }
 
-void Select3D_SensitiveGroup::SetLastPrj(const Handle(Select3D_Projector)& Prj)
+void Select3D_SensitiveGroup::SetLastPrj(const Select3D_Projector& Prj)
 {
   Select3D_SensitiveEntity::SetLastPrj(Prj);
   for(Select3D_ListIteratorOfListOfSensitive It(myList);It.More();It.Next())
index fd28a12f9b19c01dccb9bcff35c5205a042e7a1b..6a3f296a6765d116c31640a1dd79972df2ccbb9c 100755 (executable)
@@ -192,17 +192,17 @@ Standard_Integer  Select3D_SensitiveTriangle::Status(const gp_XY& p0,
   B.Enlarge(aTol);
   if(B.IsOut(TheP)) return 2; 
   
-  // on classifie le point par rapport aux demi -espaces delimites
-  // par chaque cote du triangle (a la tolerance pres)
+  // the point is classified corresponding to demi-spaces limited
+  // by each side of the triangle (with tolerance)
   gp_XY V01(p1);V01-=p0;
   gp_XY V02(p2);V02-=p0;
   gp_XY V12(p2);V12-=p1;
 
   Standard_Real TolTol = aTol*aTol;
 
-  // regardons les cas particuliers...
-  //si l'un des vecteurs est quasi nul (2 points sont confondus), 
-  // on sort tout de suite (on est deja dans la boite d'encombrement, c'est bon...)
+  // check these particular cases...
+  // if one of vectors is almost null (2 points are mixed), 
+  // leave at once (it is already in the bounding box, which is good...)
   
   DMin = aTol;
   
@@ -210,7 +210,7 @@ Standard_Integer  Select3D_SensitiveTriangle::Status(const gp_XY& p0,
   {
     Standard_Real LV = V02.SquareModulus();
     if ( LV <= gp::Resolution())
-      return 0; // les 3 points sont confondus, et TheP est dans la boite englobante B...
+      return 0; // 3 points are mixed, and TheP is in the bounding box B...
 
     if ( S3D_Str_NearSegment (p0, p2, TheP, aTol, DMin) )
       return 0;
@@ -235,7 +235,7 @@ Standard_Integer  Select3D_SensitiveTriangle::Status(const gp_XY& p0,
     return 2;
   }
 
-  // normale a p0p1 orientee...
+  // oriented normal to p0p1...
   gp_Dir2d N (-V01.Y(), V01.X()); 
   Standard_Boolean Neg = (N * V02 < 0.);
   if ( Neg ) 
@@ -248,7 +248,7 @@ Standard_Integer  Select3D_SensitiveTriangle::Status(const gp_XY& p0,
   if ( aD1 < -aTol ) 
     return 2;
 
-  // normale a p1p2 orientee...
+  // oriented normal to p1p2...
   if(Neg)
     N.SetCoord(p2.Y()-p1.Y(),p1.X()-p2.X());
   else
@@ -257,9 +257,9 @@ Standard_Integer  Select3D_SensitiveTriangle::Status(const gp_XY& p0,
   Vec.SetCoord(TheP.X()-p1.X(),TheP.Y()-p1.Y());
   Standard_Real aD2 = Vec * N.XY();
   if ( aD2 < -aTol ) 
-    return 2;   // dehors
+    return 2;   // outside
 
-  // normale a p2p0 orientee...
+  // oriented normal to p2p0...
   // attention v20 (x0-x2)    =>   N y2-y0   => -N  y0-y2
   //               (y0-y2)           x0-x2          x2-x0
   if(Neg)
@@ -270,7 +270,7 @@ Standard_Integer  Select3D_SensitiveTriangle::Status(const gp_XY& p0,
   Vec.SetCoord(TheP.X()-p2.X(),TheP.Y()-p2.Y());
   Standard_Real aD3 = Vec * N.XY();
   if ( aD3 < -aTol ) 
-    return 2;  // dehors
+    return 2;  // outside
 
   // compute 2d distance to triangle
   Standard_Real aD = Min (aD1, Min (aD2, aD3));
@@ -285,7 +285,7 @@ Standard_Integer  Select3D_SensitiveTriangle::Status(const gp_XY& p0,
 
 void Select3D_SensitiveTriangle::Dump(Standard_OStream& S,const Standard_Boolean FullDump) const 
 {
-  // les generalites....
+  // general information....
   
   S<<"\tSensitiveTriangle 3D :\n";
   if(HasLocation())
@@ -327,10 +327,10 @@ Standard_Real Select3D_SensitiveTriangle::ComputeDepth(const gp_Lin& EyeLine) co
   }
   
   Standard_Real prof(Precision::Infinite());
-  // formule calcul du parametre du point sur l'intersection
+  // formula calculation of the point parameters on intersection
   // t = (P1P2 ^P1P3)* OP1  / ((P1P2^P1P3)*Dir)
   
-  gp_Pnt Oye  = EyeLine.Location(); // origine de la ligne oeil/point vise...
+  gp_Pnt Oye  = EyeLine.Location(); // origin of the target line eye/point...
   gp_Dir Dir  = EyeLine.Direction();
   
   gp_Vec P1P2 (P1,P2), P1P3(P1,P3);
index ac0ef1a6a5c53f169574741720bd484e82dcceae..af65579b9d0abdf645f4558cb7bd4a023b4db17a 100755 (executable)
@@ -11,7 +11,6 @@
 
 #include <Select3D_SensitiveTriangulation.ixx>
 #include <gp_Pnt2d.hxx>
-#include <Poly.hxx>
 #include <Poly_Connect.hxx>
 #include <CSLib_Class2d.hxx>
 #include <TColStd_Array1OfInteger.hxx>
@@ -32,7 +31,7 @@ static Standard_Integer S3D_NumberOfFreeEdges(const Handle(Poly_Triangulation)&
     for (j = 0; j < 3; j++)
       if (t[j] == 0) nFree++;
   }
-  return nFree;
+  return nFree; 
 }
 static Standard_Boolean S3D_STriangul_NearSegment (const gp_XY& p0, const gp_XY& p1, const gp_XY& TheP,
                                                    const Standard_Real aTol, Standard_Real& aDMin)
@@ -46,7 +45,7 @@ static Standard_Boolean S3D_STriangul_NearSegment (const gp_XY& p0, const gp_XY&
 
   gp_XY V01(p1);V01-=p0;
   gp_XY Vec(TheP);Vec -= p0;
-
+  
   Standard_Real u = Vec*V01.Normalized();
   if(u<-aTol) return Standard_False;
   Standard_Real u1 = u-aTol;
@@ -69,12 +68,12 @@ static Standard_Boolean S3D_STriangul_NearSegment (const gp_XY& p0, const gp_XY&
 //   VEdg-= PEdg2.XY();
 //   VCur-=PCur.XY();
 //   Standard_Real long1 = VEdg.SquareModulus();
-
+  
 //   if(long1<=TolTol)
 //     return VCur.SquareModulus();
 //   Standard_Real Val = VEdg^VCur;
 //   return Val*Val/long1;
-
+  
 // }
 
 static Standard_Boolean S3D_IsEdgeIn(const Standard_Integer e1,
@@ -95,7 +94,7 @@ static Standard_Boolean S3D_IsEdgeIn(const Standard_Integer e1,
 
 //=======================================================================
 //function : Select3D_SensitiveTriangulation
-//purpose  :
+//purpose  : 
 //=======================================================================
 
 Select3D_SensitiveTriangulation::
@@ -110,18 +109,17 @@ myIntFlag(InteriorFlag),
 myNodes2d(1,Trg->NbNodes()),
 myDetectedTr(-1)
 {
-  // Code honteusement vole a DBRep_DrawableShape::Display...
-  // calcul des edges libres et du cdg 3d de la triangulation:
-  // Ce code devrait, pour plus de facilites etre integre dans la poly_triangulation...
+  // calculate free edges and cdg 3d of the triangulation:
+  // This code should have been integrated in poly_triangulation...
 
   Standard_Integer fr = 1;
   const Poly_Array1OfTriangle& triangles = myTriangul->Triangles();
-  const TColgp_Array1OfPnt& Nodes = myTriangul->Nodes();
+  const TColgp_Array1OfPnt& Nodes = myTriangul->Nodes();  
   Standard_Integer nbTriangles (myTriangul->NbTriangles());
   gp_XYZ cdg(0,0,0);
   Standard_Integer n[3];
-
-  // pour rechercher les connexions dans le cas ou on ne s'occupe de la frontiere...
+  
+  // to find connections in case when the border is not concerned...
   if(!myIntFlag){
     myFreeEdges = new TColStd_HArray1OfInteger(1,2*S3D_NumberOfFreeEdges(Trg));
     TColStd_Array1OfInteger& FreeE = myFreeEdges->ChangeArray1();
@@ -149,10 +147,10 @@ myDetectedTr(-1)
     }
   }
 
-
+  
   if(nbTriangles!=0) cdg /= nbTriangles;
   myCDG3D = gp_Pnt(cdg);
-
+  
   ComputeTotalTrsf();
 
   if(myTrsf.Form()!=gp_Identity)
@@ -162,7 +160,7 @@ myDetectedTr(-1)
 
 //=======================================================================
 //function : Select3D_SensitiveTriangulation
-//purpose  :
+//purpose  : 
 //=======================================================================
 Select3D_SensitiveTriangulation::
 Select3D_SensitiveTriangulation(const Handle(SelectBasics_EntityOwner)& OwnerId,
@@ -183,52 +181,105 @@ myDetectedTr(-1)
 }
 //=======================================================================
 //function : Project
-//purpose  :
+//purpose  : 
 //=======================================================================
 
-void Select3D_SensitiveTriangulation::Project(const Handle(Select3D_Projector)& aPrj)
+void Select3D_SensitiveTriangulation::Project(const Select3D_Projector& aPrj) 
 {
   Select3D_SensitiveEntity::Project(aPrj); // to set the field last proj...
-
+  
   mybox2d.SetVoid();
-  const TColgp_Array1OfPnt& Nodes = myTriangul->Nodes();
-
+  const TColgp_Array1OfPnt& Nodes = myTriangul->Nodes();  
+  
   gp_Pnt2d ProjPT;
-
+  
   for(Standard_Integer I=1;I<=myTriangul->NbNodes();I++){
     if(myTrsf.Form()!=gp_Identity)
-      aPrj->Project(Nodes(I).Transformed(myTrsf),ProjPT);
+      aPrj.Project(Nodes(I).Transformed(myTrsf),ProjPT);
     else
-      aPrj->Project(Nodes(I),ProjPT);
-
+      aPrj.Project(Nodes(I),ProjPT);
+    
     myNodes2d.SetValue(I,ProjPT);
     mybox2d.Add(ProjPT);
   }
-
-  aPrj->Project(myCDG3D,myCDG2D);
+  
+  aPrj.Project(myCDG3D,myCDG2D);
 }
 
 //=======================================================================
 //function : Areas
-//purpose  :
+//purpose  : 
 //=======================================================================
 
-void Select3D_SensitiveTriangulation::Areas(SelectBasics_ListOfBox2d& boxes)
+void Select3D_SensitiveTriangulation::Areas(SelectBasics_ListOfBox2d& boxes) 
 {
   boxes.Append(mybox2d);
 }
 
+//=======================================================================
+//function : getUV
+//purpose  : compute parameters of the picked point on triangle in 2d
+//     Note: parameters of point P on triangle (P1, P2, P3) are defined 
+//           as U and V such that P = P1 + U * (P2 - P1) + V * (P3 - P1);
+//    Range: U >= 0, V >= 0, U + V <= 1
+//=======================================================================
+
+static gp_XY getUV (const gp_XY& aP2d1, const gp_XY& aP2d2, const gp_XY& aP2d3,
+                    const gp_XY& aPick)
+{
+  gp_XY aDU = aP2d2 - aP2d1;
+  gp_XY aDV = aP2d3 - aP2d1;
+  Standard_Real aDet = aDU ^ aDV;
+
+  // case of non-degenerated triangle
+  gp_XY aDP = aPick - aP2d1;
+  if ( Abs (aDet) > gp::Resolution() )
+  {
+    Standard_Real aU =  (aDP ^ aDV) / aDet;
+    Standard_Real aV = -(aDP ^ aDU) / aDet;
+    if ( aU < 0. ) aU = 0.;
+    if ( aV < 0. ) aV = 0.;
+    if ( aU + aV > 1. ) { Standard_Real aD = aU + aV; aU /= aD; aV /= aD; }
+    return gp_XY (aU, aV);
+  }
+
+  // degenerated case (in 2d projection)
+  Standard_Real aL2U = aDU.SquareModulus();
+  Standard_Real aL2V = aDV.SquareModulus();
+  if ( aL2U < gp::Resolution() ) // side 1-2 is degenerated 
+  {
+    if ( aL2V < gp::Resolution() ) // whole triangle is degenerated to point
+      return gp_XY (0., 0.);
+    else
+      return gp_XY (0., (aDP * aDV) / aL2V);
+  }
+  else if ( aL2V < gp::Resolution() ) // side 1-3 is degenerated
+    return gp_XY ((aDP * aDU) / aL2U, 0.);
+  else // sides 1-2 and 1-3 are collinear
+  {
+    // select parameter on one of sides so as to have points closer to picked
+    Standard_Real aU = Min (1., Max (0., (aDP * aDU) / aL2U));
+    Standard_Real aV = Min (1., Max (0., (aDP * aDV) / aL2V));
+    gp_XY aP2dU = aP2d1 + aU * aDU;
+    gp_XY aP2dV = aP2d1 + aV * aDV;
+    if ( (aPick - aP2dU).SquareModulus() < (aPick - aP2dV).SquareModulus() )
+      return gp_XY ((aDP * aDU) / aL2U, 0.);
+    else
+      return gp_XY (0., (aDP * aDV) / aL2V);
+  }
+}
+
 //=======================================================================
 //function : Matches
-//purpose  :
+//purpose  : 
 //=======================================================================
 Standard_Boolean Select3D_SensitiveTriangulation::Matches(const Standard_Real X,
                                                          const Standard_Real Y,
                                                          const Standard_Real aTol,
-                                                         Standard_Real& DMin)
+                                                         Standard_Real& DMin) 
 {
   // get view direction (necessary for calculation of depth) from field mylastprj of the base class
-  if (mylastprj.IsNull())
+  if ( ! mylastprj )
     return Standard_False;
 
   DMin = Precision::Infinite();
@@ -236,15 +287,15 @@ Standard_Boolean Select3D_SensitiveTriangulation::Matches(const Standard_Real X,
   myDetectedTr = -1;
   const Poly_Array1OfTriangle& triangles = myTriangul->Triangles();
 
-  // on regarde si on est a l'interieur d'1 triangle 2d.
+  // it is checked if we are inside the triangle 2d.
   if(myIntFlag)
   {
-    gp_Lin EyeLine = mylastprj->Shoot(X,Y);
+    gp_Lin EyeLine = (*((Select3D_Projector*)mylastprj)).Shoot(X,Y);
     if ( myTrsf.Form()!=gp_Identity )
       EyeLine.Transform (myTrsf.Inverted());
 
     Standard_Real aMinDepth = Precision::Infinite();
-    const TColgp_Array1OfPnt& Nodes = myTriangul->Nodes();
+    const TColgp_Array1OfPnt& Nodes = myTriangul->Nodes();  
     for (Standard_Integer itr=1; itr<=myTriangul->NbTriangles(); itr++)
     {
       Standard_Integer n1,n2,n3;
@@ -252,32 +303,30 @@ Standard_Boolean Select3D_SensitiveTriangulation::Matches(const Standard_Real X,
       const gp_XY& aPnt2d1 = myNodes2d(n1).XY();
       const gp_XY& aPnt2d2 = myNodes2d(n2).XY();
       const gp_XY& aPnt2d3 = myNodes2d(n3).XY();
-      gp_XY aUV;
-      Standard_Real aDistSquare = Poly::PointOnTriangle (aPnt2d1, aPnt2d2, aPnt2d3, BidPoint, aUV);
-      if ( aDistSquare > aTol * aTol )
+      Standard_Real DD = 0.;
+      if (Status (BidPoint, aPnt2d1, aPnt2d2, aPnt2d3, aTol, DD) == 2)
         continue;
 
       // compute depth on this triangle
+      gp_XY aUV = getUV (aPnt2d1, aPnt2d2, aPnt2d3, BidPoint);
       Standard_Real aDepth1 = ElCLib::Parameter (EyeLine, Nodes(n1));
       Standard_Real aDepth2 = ElCLib::Parameter (EyeLine, Nodes(n2));
       Standard_Real aDepth3 = ElCLib::Parameter (EyeLine, Nodes(n3));
-      Standard_Real aDepth = aDepth1 + aUV.X() * (aDepth2 - aDepth1) +
+      Standard_Real aDepth = aDepth1 + aUV.X() * (aDepth2 - aDepth1) + 
                                        aUV.Y() * (aDepth3 - aDepth1);
 
-      // take triangle with lowest depth and within defined depth interval
-      if (aDepth < aMinDepth &&
-          aDepth > mylastprj->DepthMin() &&
-          aDepth < mylastprj->DepthMax())
+      // take triangle with lowest depth
+      if ( aDepth < aMinDepth )
       {
         aMinDepth = aDepth;
         myDetectedTr = itr;
-        DMin = Sqrt (aDistSquare);
+        DMin = DD;
       }
     }
   }
-
-  //    Cas Uniquement Test sur Frontiere de la triangulation...
-  //
+  
+  //    Case only Test on Border of the triangulation...
+  //   
   else
   {
     //Standard_Integer ifirst;
@@ -285,7 +334,7 @@ Standard_Boolean Select3D_SensitiveTriangulation::Matches(const Standard_Real X,
     Standard_Integer nn = FreeE.Length(), Node1,Node2;
     //Standard_Real LEdg;
     //Standard_Real DMinDMin,TolTol = aTol*aTol;
-
+    
     for (Standard_Integer ifri =1; ifri <= nn && myDetectedTr < 0; ifri+=2)
     {
       Node1 = FreeE(ifri);
@@ -294,44 +343,43 @@ Standard_Boolean Select3D_SensitiveTriangulation::Matches(const Standard_Real X,
                                      myNodes2d(Node2).XY(),
                                      BidPoint, aTol, DMin) )
       {
-        for(Standard_Integer itr=1; itr <= myTriangul->NbTriangles(); itr++)
+       for(Standard_Integer itr=1; itr <= myTriangul->NbTriangles(); itr++)
         {
           Standard_Integer n1,n2,n3;
-          triangles(itr).Get(n1,n2,n3);
-          if(S3D_IsEdgeIn(Node1,Node2,n1,n2,n3))
+         triangles(itr).Get(n1,n2,n3);
+         if(S3D_IsEdgeIn(Node1,Node2,n1,n2,n3))
           {
-            myDetectedTr = itr;
+           myDetectedTr = itr;
             break; // return first found; selection of closest is not implemented yet
           }
-        }
+       }
       }
     }
-  }
+  } 
   if ( myDetectedTr <= 0 )
     return Standard_False;
-
-  // compute and validate the depth (::Depth()) along the eyeline
-  return Select3D_SensitiveEntity::Matches(X,Y,aTol,DMin);
+  Select3D_SensitiveEntity::Matches(X,Y,aTol,DMin);
+  return Standard_True;
 }
 
 
 //=======================================================================
 //function : Matches
-//purpose  :
+//purpose  : 
 //=======================================================================
 
 Standard_Boolean Select3D_SensitiveTriangulation::Matches(const Standard_Real XMin,
                                                          const Standard_Real YMin,
                                                          const Standard_Real XMax,
                                                          const Standard_Real YMax,
-                                                         const Standard_Real aTol)
+                                                         const Standard_Real aTol) 
 {
   Bnd_Box2d B;
   B.Update(Min(XMin,XMax)-aTol,
           Min(YMin,YMax)-aTol,
           Max(XMin,XMax)+aTol,
           Max(YMin,YMax)+aTol);
-
+  
   for(Standard_Integer i=myNodes2d.Lower();i<=myNodes2d.Upper();i++){
     if(B.IsOut(myNodes2d(i)))
       return Standard_False;
@@ -342,14 +390,14 @@ Standard_Boolean Select3D_SensitiveTriangulation::Matches(const Standard_Real XM
 
 //=======================================================================
 //function : Matches
-//purpose  :
+//purpose  : 
 //=======================================================================
 
 Standard_Boolean Select3D_SensitiveTriangulation::
 Matches (const TColgp_Array1OfPnt2d& aPoly,
         const Bnd_Box2d& aBox,
         const Standard_Real aTol)
-{
+{ 
   Standard_Real Umin,Vmin,Umax,Vmax;
   aBox.Get(Umin,Vmin,Umax,Vmax);
   Standard_Real Tolu,Tolv;
@@ -378,7 +426,7 @@ Standard_Integer Select3D_SensitiveTriangulation::Status (const gp_XY& TheP,
 
 //=======================================================================
 //function : IsFree
-//purpose  :
+//purpose  : 
 //=======================================================================
 
 Standard_Boolean Select3D_SensitiveTriangulation::IsFree(const Standard_Integer IndexOfTriangle,
@@ -392,36 +440,36 @@ Standard_Boolean Select3D_SensitiveTriangulation::IsFree(const Standard_Integer
     TColStd_Array1OfInteger& FreeE = myFreeEdges->ChangeArray1();
 
   for(Standard_Integer I=1;I<=FreeE.Length() && FoundIndex==-1;I+=2){
-
+    
     if(FreeE(I) == n[0]){
-
+      
       if(FreeE(I+1)== n[1] || FreeE(I+1)== n[2]) FoundIndex=I;}
     else if(FreeE(I) == n[1]){
       if(FreeE(I+1)== n[0] || FreeE(I+1)== n[2]) FoundIndex=I;}
     else if(FreeE(I) == n[2]){
       if(FreeE(I+1)== n[0] || FreeE(I+1)== n[1]) FoundIndex=I;}
   }
-
+  
   return FoundIndex!=-1;
 }
 
 
 //=======================================================================
 //function : GetConnected
-//purpose  :
+//purpose  : 
 //=======================================================================
 Handle(Select3D_SensitiveEntity) Select3D_SensitiveTriangulation::
 GetConnected(const TopLoc_Location& aLoc)
 {
-
-  Handle(Select3D_SensitiveTriangulation) NiouEnt =
+  
+  Handle(Select3D_SensitiveTriangulation) NiouEnt = 
     new Select3D_SensitiveTriangulation(myOwnerId,myTriangul,myiniloc,myFreeEdges,myCDG3D,myIntFlag);
-
+  
   if(HasLocation()) NiouEnt->SetLocation(Location());
 //  TopLoc_Location TheLocToApply = HasLocation() ?  Location()*aLoc : aLoc;
 //  if(!TheLocToApply.IsIdentity())
   NiouEnt->UpdateLocation(aLoc);
-
+    
 
   return NiouEnt;
 }
@@ -429,9 +477,9 @@ GetConnected(const TopLoc_Location& aLoc)
 
 //=======================================================================
 //function : ResetLocation
-//purpose  :
+//purpose  : 
 //=======================================================================
-void Select3D_SensitiveTriangulation::ResetLocation()
+void Select3D_SensitiveTriangulation::ResetLocation() 
 {
   Select3D_SensitiveEntity::ResetLocation();
   ComputeTotalTrsf();
@@ -445,9 +493,9 @@ void Select3D_SensitiveTriangulation::SetLocation(const TopLoc_Location& aLoc)
 
 //=======================================================================
 //function : Dump
-//purpose  :
+//purpose  : 
 //=======================================================================
-void Select3D_SensitiveTriangulation::Dump(Standard_OStream& S,const Standard_Boolean FullDump) const
+void Select3D_SensitiveTriangulation::Dump(Standard_OStream& S,const Standard_Boolean FullDump) const 
 {
   S<<"\tSensitiveTriangulation 3D :"<<endl;
   if(myiniloc.IsIdentity())
@@ -456,7 +504,7 @@ void Select3D_SensitiveTriangulation::Dump(Standard_OStream& S,const Standard_Bo
     S<<"\t\tExisting Initial Location"<<endl;
   if(HasLocation())
     S<<"\t\tExisting Location"<<endl;
-
+  
   S<<"\t\tNb Triangles : "<<myTriangul->NbTriangles()<<endl;
   S<<"\t\tNb Nodes     : "<<myTriangul->NbNodes()<<endl;
   S<<"\t\tNb Free Edges: "<<myFreeEdges->Length()/2<<endl;
@@ -469,14 +517,14 @@ void Select3D_SensitiveTriangulation::Dump(Standard_OStream& S,const Standard_Bo
 
 //=======================================================================
 //function : ComputeDepth
-//purpose  :
+//purpose  :  
 //=======================================================================
 Standard_Real Select3D_SensitiveTriangulation::ComputeDepth(const gp_Lin& EyeLine) const
 {
-  if(myDetectedTr==-1) return Precision::Infinite(); // non implemente actuellement...
+  if(myDetectedTr==-1) return Precision::Infinite(); // currently not implemented...
   const Poly_Array1OfTriangle& triangles = myTriangul->Triangles();
-  const TColgp_Array1OfPnt& Nodes = myTriangul->Nodes();
-
+  const TColgp_Array1OfPnt& Nodes = myTriangul->Nodes();  
+  
   Standard_Integer n1,n2,n3;
   triangles(myDetectedTr).Get(n1,n2,n3);
   gp_Pnt P[3]={Nodes(n1),Nodes(n2),Nodes(n3)};
@@ -486,19 +534,19 @@ Standard_Real Select3D_SensitiveTriangulation::ComputeDepth(const gp_Lin& EyeLin
       P[i].Transform(myTrsf);
     }
   }
-
-  // formule calcul du parametre du point sur l'intersection
+  
+  // formula calculate the parameter of the point on the intersection
   // t = (P1P2 ^P1P3)* OP1  / ((P1P2^P1P3)*Dir)
   Standard_Real prof(Precision::Infinite());
-  gp_Pnt Oye  = EyeLine.Location(); // origine de la ligne oeil/point vise...
+  gp_Pnt Oye  = EyeLine.Location(); // origin of the target line eye/point...
   gp_Dir Dir  = EyeLine.Direction();
 
-  gp_Vec Vtr[3];
+  gp_Vec Vtr[3]; 
   for(Standard_Integer i=0;i<=2;i++)
     Vtr[i] = gp_Vec(P[i%3],P[(i+1)%3]);
   Vtr[2] = -Vtr[2];
-
-  // eliminons tout de suite les cas singuliers...
+  
+  // remove singular cases immediately...
   Standard_Integer SingularCase(-1);
   if(Vtr[0].SquareMagnitude()<= Precision::Confusion())
     SingularCase = 0;
@@ -508,21 +556,21 @@ Standard_Real Select3D_SensitiveTriangulation::ComputeDepth(const gp_Lin& EyeLin
   if(Vtr[2].SquareMagnitude()<= Precision::Confusion())
     if( SingularCase < 0 ) SingularCase = 1;
 #endif
-
-  // 3 pts confondus...
+  
+  // 3 pts mixed...
   if(SingularCase ==2){
     prof= ElCLib::Parameter(EyeLine,P[0]);
     return prof;
   }
-
+  
   if(SingularCase!=0)
     Vtr[0].Normalize();
   if(SingularCase!=1 &&
      SingularCase!=2)
     Vtr[2].Normalize();
   gp_Vec OPo(Oye,P[0]);
-  // 2 points confondus... on recherche l'intersection entre le segment et la ligne oeil/point vise.
-  //
+  // 2 points mixed... the intersection between the segment and the target line eye/point.
+  // 
   if(SingularCase!=-1){
     gp_Vec V = SingularCase==0 ? Vtr[2] : Vtr[0];
     gp_Vec Det = Dir^V;
@@ -535,36 +583,36 @@ Standard_Real Select3D_SensitiveTriangulation::ComputeDepth(const gp_Lin& EyeLin
       prof = VSM.Z()/Det.Z();
   }
   else{
-
+    
     Standard_Real val1 = OPo.DotCross(Vtr[0],Vtr[2]);
     Standard_Real val2 = Dir.DotCross(Vtr[0],Vtr[2]);
-
+    
     if(Abs(val2)>Precision::Confusion())
       prof =val1/val2;
-  }
+  } 
   if (prof==Precision::Infinite()){
     prof= ElCLib::Parameter(EyeLine,P[0]);
     prof = Min (prof, ElCLib::Parameter(EyeLine,P[1]));
     prof = Min (prof, ElCLib::Parameter(EyeLine,P[2]));
   }
-
+  
   return prof;
 }
 
 //=======================================================================
 //function : DetectedTriangle
-//purpose  :
+//purpose  : 
 //=======================================================================
 Standard_Boolean Select3D_SensitiveTriangulation::DetectedTriangle(gp_Pnt& P1,
                                                                   gp_Pnt& P2,
                                                                   gp_Pnt& P3) const
 {
-  if(myDetectedTr==-1) return Standard_False; // non implemente actuellement...
+  if(myDetectedTr==-1) return Standard_False; // currently not implemented...
   const Poly_Array1OfTriangle& triangles = myTriangul->Triangles();
-  const TColgp_Array1OfPnt& Nodes = myTriangul->Nodes();
+  const TColgp_Array1OfPnt& Nodes = myTriangul->Nodes();  
   Standard_Integer n1,n2,n3;
   triangles(myDetectedTr).Get(n1,n2,n3);
-
+  
   P1 = Nodes(n1);
   P2 = Nodes(n2);
   P3 = Nodes(n3);
@@ -573,27 +621,27 @@ Standard_Boolean Select3D_SensitiveTriangulation::DetectedTriangle(gp_Pnt& P1,
     P2.Transform(myTrsf);
     P3.Transform(myTrsf);
   }
-
+  
   return Standard_True;
 }
 
 //=============================================================================
 // Function : DetectedTriangle2d
-// Purpose  :
+// Purpose  : 
 //=============================================================================
-Standard_Boolean Select3D_SensitiveTriangulation::DetectedTriangle2d(
+Standard_Boolean Select3D_SensitiveTriangulation::DetectedTriangle2d( 
   gp_Pnt2d& P1, gp_Pnt2d& P2, gp_Pnt2d& P3) const
 {
-  if(myDetectedTr==-1)
-    return Standard_False; // non implemente actuellement...
+  if(myDetectedTr==-1) 
+    return Standard_False; //  currently not implemented...
   const Poly_Array1OfTriangle& triangles = myTriangul->Triangles();
-  const TColgp_Array1OfPnt& Nodes = myTriangul->Nodes();
+  const TColgp_Array1OfPnt& Nodes = myTriangul->Nodes();  
   Standard_Integer n1,n2,n3;
   triangles( myDetectedTr ).Get(n1,n2,n3);
 
   int aLower = myNodes2d.Lower();
   int anUpper = myNodes2d.Upper();
-  if ( n1 >= aLower && n1 <= anUpper &&
+  if ( n1 >= aLower && n1 <= anUpper && 
        n2 >= aLower && n2 <= anUpper &&
        n3 >= aLower && n3 <= anUpper )
   {
@@ -602,15 +650,15 @@ Standard_Boolean Select3D_SensitiveTriangulation::DetectedTriangle2d(
     P3 = myNodes2d.Value( n3 );
     return Standard_True;
   }
-  else
+  else 
     return Standard_False;
-
+  
 }
 
-void Select3D_SensitiveTriangulation::ComputeTotalTrsf()
+void Select3D_SensitiveTriangulation::ComputeTotalTrsf() 
 {
   Standard_Boolean hasloc = (HasLocation() || !myiniloc.IsIdentity());
-
+  
   if(hasloc){
     if(myiniloc.IsIdentity())
       myTrsf = Location().Transformation();
index 18b648e155b5697dce70ff2edcbafee49e40863b..097fe999da2f65c2a64577770b9a6a05dd4feada 100755 (executable)
@@ -4,10 +4,7 @@
 // Author:  Mister rmi
 //  <rmi>
 
-
-// Modified     jmi/rob 29/8/96
-//              appel de Loadmode dans Load d'un objet fait une seule fois.
-//              
+             
 
 #include <SelectMgr_SelectionManager.ixx>
 #include <SelectMgr_ViewerSelector.hxx>
@@ -305,7 +302,6 @@ Activate(const Handle(SelectMgr_SelectableObject)& anObject,
 
   if (!anObject->HasSelection(aMode)) LoadMode(anObject,aMode);
 
-  // ATTENTION : si la selection est a remettre a jour, on le fait la ....      
   const Handle(SelectMgr_Selection)& Sel = anObject->Selection(aMode);
 
   switch(Sel->UpdateStatus()){
@@ -590,7 +586,7 @@ RecomputeSelection (const Handle(SelectMgr_SelectableObject)& anObject,
   if( SelectDebugModeOnSM() ) cout<<"===>SelectMgr_SelectionManager::Update"<<endl;
 
   if(ForceUpdate){
-    if( SelectDebugModeOnSM() ) cout<<"\tRecalcul Complet des selections"<<endl;
+    if( SelectDebugModeOnSM() ) cout<<"\t Global Recalculation of selections"<<endl;
     if(aMode==-1){
       anObject->UpdateSelection();
       anObject->UpdateLocation();
@@ -601,10 +597,10 @@ RecomputeSelection (const Handle(SelectMgr_SelectableObject)& anObject,
     }
     return;
   }
-  // l'objet n'est pas connu du SMgr.
+  // objet is not known to SMgr.
   if (!(myglobal.Contains(anObject) || mylocal.IsBound(anObject))){
-    if( SelectDebugModeOnSM() ) {cout<<"\tObjet non charge dans le SelectionManager"<<endl;
-    cout<<"\t on flagge ses selections eventuelles"<<endl;}
+    if( SelectDebugModeOnSM() ) {cout<<"\t Object not loaded in the SelectionManager"<<endl;
+    cout<<"\t eventual selections are flagged"<<endl;}
     if( aMode == -1 ){
       for(anObject->Init();anObject->More();anObject->Next()){
         if( SelectDebugModeOnSM() ) cout<<"\t\t Mode "<<anObject->CurrentSelection()->Mode()<<"  ";
@@ -617,13 +613,13 @@ RecomputeSelection (const Handle(SelectMgr_SelectableObject)& anObject,
       anObject->Selection(aMode)->UpdateStatus(SelectMgr_TOU_Full);
   }
 
-  // la il l'est, il s'agit de recalculer ce qui doit l'etre
-  // et de flagger ce qui est en sommeil...
+  // recalculate whatever is required
+  // and set flag on top...
   else{
     TColStd_MapIteratorOfMapOfTransient It;
     Handle(Standard_Transient) Tr;
     Standard_Boolean Found;
-    // on balaye les selections de l'objet
+    // object selections are parsed
 
     for(anObject->Init();anObject->More();anObject->Next()){
       const Handle(SelectMgr_Selection)& Sel = anObject->CurrentSelection();
@@ -631,7 +627,7 @@ RecomputeSelection (const Handle(SelectMgr_SelectableObject)& anObject,
       Standard_Integer curmode = Sel->Mode();
       Found = Standard_False;
 
-      // balayage des selecteurs ...
+      // parsing of selections ...
       for(It.Initialize(myselectors);It.More();It.Next()){
         Tr = It.Key();
         Handle(SelectMgr_ViewerSelector) VS = *((Handle(SelectMgr_ViewerSelector)*)&Tr);
@@ -639,7 +635,7 @@ RecomputeSelection (const Handle(SelectMgr_SelectableObject)& anObject,
           Found  = Standard_True;
           switch(Sel->UpdateStatus()){
     case SelectMgr_TOU_Full:
-      anObject->UpdateSelection(curmode); // pas de break expres...
+      anObject->UpdateSelection(curmode); // no break on purpose...
     case SelectMgr_TOU_Partial:
       anObject->UpdateLocation(Sel);
       break;
@@ -660,10 +656,10 @@ RecomputeSelection (const Handle(SelectMgr_SelectableObject)& anObject,
 
 //=======================================================================
 //function : Update
-//purpose  : On recalcule les Selections si elles sont flaggees
-//           "A RECALCULER" et qu'elles sont activees dans un des selecteurs.
-//           Si ForceUpdate = True, et qu'elles sont "A RECALCULER"
-//           On le fait sans se preoccuper de l'etat d'activation.
+//purpose  : Selections are recalculated if they are flagged
+//           "TO RECALCULATE" and activated in one of selectors.
+//           If ForceUpdate = True, and they are "TO RECALCULATE"
+//           This is done without caring for the state of activation.
 //=======================================================================
 void SelectMgr_SelectionManager::Update(const Handle(SelectMgr_SelectableObject)& anObject,
                                         const Standard_Boolean ForceUpdate)
@@ -676,7 +672,7 @@ void SelectMgr_SelectionManager::Update(const Handle(SelectMgr_SelectableObject)
     if(ForceUpdate){
       switch(Sel->UpdateStatus()){
       case SelectMgr_TOU_Full:
-        anObject->UpdateSelection(Sel->Mode()); // pas de break expres...
+        anObject->UpdateSelection(Sel->Mode()); // no break on purpose...
       case SelectMgr_TOU_Partial:
         anObject->UpdateLocation(Sel);
         wasrecomputed = Standard_True;
@@ -689,8 +685,8 @@ void SelectMgr_SelectionManager::Update(const Handle(SelectMgr_SelectableObject)
       Sel->UpdateStatus(SelectMgr_TOU_None);
     }
 
-    // on regarde quels selecteurs sont concernes par la selection
-    // pour refaire les projections si besoin est.
+    // it is checked which selectors are concerned by the selection
+    // to redo projections if necessary.
     Handle(Standard_Transient) Tr;
     for(TColStd_MapIteratorOfMapOfTransient It(myselectors);It.More();It.Next()){
       Tr = It.Key();
@@ -698,7 +694,7 @@ void SelectMgr_SelectionManager::Update(const Handle(SelectMgr_SelectableObject)
       if(VS->Status(Sel)==SelectMgr_SOS_Activated)
         switch(Sel->UpdateStatus()){
   case SelectMgr_TOU_Full:
-    anObject->UpdateSelection(Sel->Mode()); // pas de break expres...
+    anObject->UpdateSelection(Sel->Mode()); // no break on purpose...
   case SelectMgr_TOU_Partial:
     anObject->UpdateLocation(Sel);
     wasrecomputed = Standard_True;
@@ -718,7 +714,7 @@ void SelectMgr_SelectionManager::Update(const Handle(SelectMgr_SelectableObject)
 
 //==================================================
 // Function: Update
-// Purpose : Attention, il faut savoir ce que l'on fait....
+// Purpose : Attention, it is required to know what is done...
 //==================================================
 void SelectMgr_SelectionManager::
 Update(const Handle(SelectMgr_SelectableObject)& anObject,
@@ -742,7 +738,7 @@ Update(const Handle(SelectMgr_SelectableObject)& anObject,
     if(ForceUpdate){
       switch(Sel->UpdateStatus()){
       case SelectMgr_TOU_Full:
-        anObject->UpdateSelection(Sel->Mode()); // pas de break expres...
+        anObject->UpdateSelection(Sel->Mode()); //  no break on purpose...
       case SelectMgr_TOU_Partial:
         anObject->UpdateLocation(Sel);
         wasrecomputed = Standard_True;
index cbb73420027a94cb98a827779f738266587369ec..b2312c7059d4c05d62fb4307367cea32464a300c 100755 (executable)
@@ -380,7 +380,7 @@ void SelectMgr_ViewerSelector::InitSelect(const TColgp_Array1OfPnt2d& aPoly)
   if (toupdate) UpdateConversion();
   if (tosort)   UpdateSort();
   if (myactivenb!=0){
-    // on utilise les Bnd box dans un premier temps  
+    // the Bnd boxes are used for the first time  
     Bnd_Box2d aBox;
     Standard_Integer NbPnt = aPoly.Length();
     Standard_Integer i;
@@ -396,10 +396,9 @@ void SelectMgr_ViewerSelector::InitSelect(const TColgp_Array1OfPnt2d& aPoly)
 
 //==================================================
 // Function: LoadResult
-// Purpose : on laisse tomber pour l'instant la taille 
-//          de la primitive dans les criteres de tri...
-//          On prend la priorite, la profondeur et 
-//         la distance mini au CDG ou Bords...
+// Purpose : for the moment the size of the primitive 
+//           is not taken into account in the search criteriai...
+//           The priority, the depth and the min. distance to CDG or Borders is taken...
 //==================================================
 void SelectMgr_ViewerSelector::
 LoadResult()
@@ -488,14 +487,14 @@ void SelectMgr_ViewerSelector::LoadResult(const Bnd_Box2d& abox)
     }
   }
 
-  // pas de tri a faire dans le cas d'une selection par rectangle elastique (BUG ANALYST)
+  // do not parse in case of selection by elastic rectangle (BUG ANALYST)
   if(mystored.IsEmpty()) return; 
   if(myIndexes.IsNull()) 
     myIndexes = new TColStd_HArray1OfInteger(1,mystored.Extent()); 
   else if(mystored.Extent() !=myIndexes->Length()) 
     myIndexes = new TColStd_HArray1OfInteger (1,mystored.Extent()); 
 
-  // pour travailler plus vite... 
+  // to work faster... 
   TColStd_Array1OfInteger& thearr = myIndexes->ChangeArray1(); 
   for(Standard_Integer I=1;I<=mystored.Extent();I++) 
     thearr(I)=I; 
@@ -543,7 +542,7 @@ void SelectMgr_ViewerSelector::LoadResult(const TColgp_Array1OfPnt2d& aPoly)
     else if(mystored.Extent() !=myIndexes->Length()) 
       myIndexes = new TColStd_HArray1OfInteger (1,mystored.Extent()); 
 
-    // pour travailler plus vite... 
+    // to work faster... 
     TColStd_Array1OfInteger& thearr = myIndexes->ChangeArray1(); 
     for(Standard_Integer I=1;I<=mystored.Extent();I++) 
       thearr(I)=I; 
@@ -808,7 +807,7 @@ void SelectMgr_ViewerSelector::Dump(Standard_OStream& S) const
 TCollection_AsciiString SelectMgr_ViewerSelector::
 Status(const Handle(SelectMgr_SelectableObject)& SO) const
 {
-  TCollection_AsciiString Status("Status Objet :\n\t");
+  TCollection_AsciiString Status("Status Object :\n\t");
   Standard_Boolean Found= Standard_False;
   for(SO->Init();SO->More();SO->Next()){
     if(myselections.IsBound(SO->CurrentSelection()))
@@ -818,13 +817,13 @@ Status(const Handle(SelectMgr_SelectableObject)& SO) const
         TCollection_AsciiString(SO->CurrentSelection()->Mode()) +
         " present - " ;
       if(myselections(SO->CurrentSelection())) 
-        Status = Status + " Actif \n\t";
+        Status = Status + " Active \n\t";
       else
-        Status = Status + " Inactif \n\t";
+        Status = Status + " Inactive \n\t";
     }
   }
 
-  if(!Found) Status = Status + "Non Present dans le selecteur\n\n";
+  if(!Found) Status = Status + "Not Present in the selector\n\n";
   return Status;
 }
 
@@ -832,11 +831,11 @@ Status(const Handle(SelectMgr_SelectableObject)& SO) const
 TCollection_AsciiString SelectMgr_ViewerSelector::
 Status () const 
 {
-  // les primitives sensibles presentes 
-  //------------------------------------
+  // sevsitive primitives present 
+  //-----------------------------
   TCollection_AsciiString Status("\t\tSelector Status :\n\t");
-  // les selections
-  //---------------
+  // selections
+  //-----------
   Standard_Integer NbActive =0,NbPrim=0;
   Status = Status + "Number of already computed selections : " + 
     TCollection_AsciiString(myselections.Extent());
@@ -861,14 +860,13 @@ Status () const
 
 //=======================================================================
 //function : SortResult
-//purpose  :  on a un certain nombre d'entites rangees avec leur critere 
-//            (profondeur, taille, priorite , distance de la souris 
-//            par rapport aux bords ou au CDG de la primitive detectee.
-//            on va trier :
-//             les priorites maxi.
-//             puis un savant dosage entre profondeur et distance...
-// enfin on stocke dans myindexes les rangs en fonction de ce tri.
-// il ne reste plus qu'a lire 
+//purpose  :  there is a certain number of entities ranged by criteria 
+//            (depth, size, priority, mouse distance from borders or
+//            CDG of the detected primitive. Parsing :
+//             maximum priorities .
+//             then a reasonable compromise between depth and distance...
+// finally the ranges are stored in myindexes depending on the parsing.
+// so, it is possible to only read 
 //=======================================================================
 void SelectMgr_ViewerSelector::SortResult()
 {
@@ -878,10 +876,10 @@ void SelectMgr_ViewerSelector::SortResult()
   if(myIndexes.IsNull() || anExtent != myIndexes->Length())
     myIndexes = new TColStd_HArray1OfInteger (1, anExtent);
 
-  // pour travailler plus vite...
+  // to work faster...
   TColStd_Array1OfInteger& thearr = myIndexes->ChangeArray1();
 
-  // on charge les index de 1 a N
+  // indices from 1 to N are loaded
   Standard_Integer I ;
   for (I=1; I <= anExtent; I++)
     thearr(I)=I;
@@ -926,7 +924,7 @@ void SelectMgr_ViewerSelector::SortResult()
       myprim (I) = myPrimArr (ind);
   }
   // OCC4201 (AGV): fin
-  // ne nous restera plus qu'a recuperer les proprietaires correspondant aux index tries...
+  // it is enough to return owners corresponding to parced indices...
 
 }
 
index e655f0dfb7e4da8df581b20da7715d8002592e62..1c816e1428019d90940763d2af9019a80bcf7f84 100755 (executable)
@@ -49,7 +49,7 @@ void StdPrs_HLRPolyShape::Add(const Handle (Prs3d_Presentation)& aPresentation,
   // find vertices not under ancestors.
   TopAbs_ShapeEnum E = aShape.ShapeType();
   if (E == TopAbs_COMPOUND) {
-    // il faut presenter les vertex isoles a defaut de les cacher.
+    // it is necessary to present isolated vertexes instead of hiding them.
     for (ex.Init(aShape, TopAbs_VERTEX, TopAbs_EDGE); ex.More(); ex.Next()) {
       StdPrs_WFShape::Add(aPresentation, ex.Current(), aDrawer);
     }
@@ -109,7 +109,7 @@ void StdPrs_HLRPolyShape::Add(const Handle (Prs3d_Presentation)& aPresentation,
   }
   
   
-  // stockage dans le groupe:
+  // storage in the group:
   
   HLRBRep_ListIteratorOfListOfBPoint ItB;
 
index 21e4427b86cf323e7063fec8403c99e6a4fcb258..03bb2e90396654f79b4a52d156423bec0f301655 100755 (executable)
@@ -34,7 +34,7 @@ void StdPrs_ShadedPoleSurface::Add(
 {
   if ( ! aDrawer->ShadingAspectGlobal() ) {
 
-// Si la surface est fermee, on ne tracera pas les faces tournant le dos:
+// If the surface is closed, the faces from back-side are not traced:
 
 
     Handle(Graphic3d_AspectFillArea3d) Asp = aDrawer->ShadingAspect()->Aspect();
index 5491d01165ffef99cb3a5df925d0d120408fffeb..69467c8773400e7b8dbc5b95053ef0d3515621d1 100755 (executable)
@@ -40,7 +40,7 @@ void StdPrs_ShadedSurface::Add(const Handle(Prs3d_Presentation)& aPresentation,
   
   if ( ! aDrawer->ShadingAspectGlobal() ) {
 
-// Si la surface est fermee, on ne tracera pas les faces tournant le dos:
+// If the surface is closed, the faces from back-side are not traced:
 
     Handle(Graphic3d_AspectFillArea3d) Asp = aDrawer->ShadingAspect()->Aspect();
 
@@ -129,7 +129,7 @@ void StdPrs_ShadedSurface::Add(const Handle(Prs3d_Presentation)& aPresentation,
       DU = (U2-U1)/ N1;
       DV = (V2-V1)/ N2;
       
-      // Calcul de la premiere ligne;
+      // Calculation of the first line;
       
       for ( i = 1; i<= N2+1; i++) {
        aSurface.D1(U1 , V1 + DV * (i-1),P,D1U,D1V);
index d5194922937cbd42651e856e3cbfecb0526e0467..5082284430af42a63dd441194a9a20a80bce5d1e 100755 (executable)
@@ -264,8 +264,7 @@ Update(const Handle(V3d_View)& aView,const Standard_Boolean DoubleBuffer)
     }
       break;
     } 
-    Standard_Boolean First = Standard_True; // pour eviter de faire le begindraw s'il n'y a 
-                                            // rien (couteux ) rob 230996
+    Standard_Boolean First = Standard_True; // to avoid begindraw if there is nothing (expensive)
     
     for(it.Initialize(mynew);it.More();it.Next()){
       
index ae7b5b21b69687319747cdde557042305c3d6d15..6c4c2398dfb8d2fceb9e79af0d5d5a97fddd0c58 100755 (executable)
@@ -66,7 +66,7 @@ static Standard_Boolean first = Standard_True;
 
 //==================================================
 // Function: Load 
-// Purpose :  Version debuggee....
+// Purpose : 
   //==================================================
 
 void StdSelect_BRepSelectionTool
@@ -159,7 +159,7 @@ void StdSelect_BRepSelectionTool
         aPriority,
         NbPOnEdge);
 
-  //chargement des selectables...
+  //loading of selectables...
   for (aSelection->Init();aSelection->More();aSelection->Next()) {
     Handle(SelectBasics_EntityOwner) BOwn = aSelection->Sensitive()->OwnerId();
     Handle(SelectMgr_EntityOwner) Own = *((Handle(SelectMgr_EntityOwner)*) &BOwn);
@@ -422,11 +422,11 @@ static Standard_Boolean  FindLimits(const Adaptor3d_Curve& aCurve,
 
 //=====================================================
 // Function : GetEdgeSensitive
-// Purpose  : cree un edge sensible pour pouvoir l'ajouter 
-//            dans computeselection a "aselection" (cas d'une selection d'un edge)
-//            ou a "aSensitiveWire" (cas d'une selection d'un wire; dans ce cas la,
-//            c'est le sensitive wire qui est ajoute a "aselection" )
-//            odl - pour la selection par rectangle -
+// Purpose  : create a sensitive edge to add it  
+//            in computeselection to "aselection" (case of selection of an edge)
+//            or to "aSensitiveWire" (case of selection of a wire; in this case,
+//            the sensitive wire is added to "aselection" )
+//            odl - for selection by rectangle -
 //=====================================================   
 void StdSelect_BRepSelectionTool
 ::GetEdgeSensitive (const TopoDS_Shape& shap,
@@ -483,10 +483,7 @@ Handle(Select3D_SensitiveEntity)& aSensitive)
     }
   default:
     {
-      // modif-rob : on prend le meme deroulement que dans StdPrs_Curve
-      // nb de points...
-      //============================================
-
+   
       //aLimit = myDrawer->MaximalParameterValue(); ??
       Standard_Real aLimit = 200.; // TODO (kgv) - do we need set MaxParam here?
       Standard_Real V1 = cu3d.FirstParameter();
@@ -671,7 +668,7 @@ Standard_Boolean StdSelect_BRepSelectionTool::GetSensitiveForFace(const TopoDS_F
                                                                  const Standard_Real MaxParam,
                                                                  const Standard_Boolean InteriorFlag)
 {
-  // voyons s y a une triangulation de la face...
+  // check if there is triangulation of the face...
    BRepAdaptor_Curve cu3d;
   Handle(Poly_Triangulation) T;
   TopLoc_Location loc;
@@ -690,8 +687,8 @@ Standard_Boolean StdSelect_BRepSelectionTool::GetSensitiveForFace(const TopoDS_F
     return Standard_True;
   }
 
-  // pour les faces a bugs de triangulation ou sans autotriangulation ....
-  // tres laid et  ne devrait meme plus exister ...
+  // for faces with triangulation bugs or without autotriangulation ....
+  // very ugly and should not even exist ...
    BRepAdaptor_Surface BS;
   BS.Initialize (F);
   
@@ -714,7 +711,7 @@ Standard_Boolean StdSelect_BRepSelectionTool::GetSensitiveForFace(const TopoDS_F
     BS.D0(FirstU,LastV,pcur);
     P->SetValue(4,pcur);
     P->SetValue(5,P->Value(1));
-    // si le plan est "infini", on ne le rend sensible que sur sa frontiere delimitee par MaxParam
+    // if the plane is "infinite", it is sensitive only on the border limited by MaxParam
     if(FirstU ==-MaxParam && LastU==MaxParam && FirstV ==-MaxParam && LastV==MaxParam)
       LL.Append(new Select3D_SensitiveFace
                (Owner, P, Select3D_TOS_BOUNDARY));
@@ -726,8 +723,8 @@ Standard_Boolean StdSelect_BRepSelectionTool::GetSensitiveForFace(const TopoDS_F
     return Standard_True;
   }
   
-  // IL S'AGIT DE CONSTRUIRE UN POLYGONE "SENSIBLE" A PARTIR DU CONTOUR EXTERIEUR DE LA FACE...
-  // CA N'EST PAS BEAU DU TOUT MAIS...
+  // This is construction of a sevsitive polygon from the exterior contour of the face...
+  // It is not good at all, but...
   TopoDS_Wire aWire;
 //  Standard_Integer NbEdges=1;
 
@@ -735,7 +732,7 @@ Standard_Boolean StdSelect_BRepSelectionTool::GetSensitiveForFace(const TopoDS_F
 
   TopExp_Explorer EW(F,TopAbs_WIRE);
   if(EW.More())
-    aWire = TopoDS::Wire(EW.Current()); // en esperant que c'est le premier... a voir
+    aWire = TopoDS::Wire(EW.Current()); // believing that this is the first... to be seen
 
 #ifdef OCC872
    if ( aWire.IsNull() )
@@ -779,7 +776,7 @@ Standard_Boolean StdSelect_BRepSelectionTool::GetSensitiveForFace(const TopoDS_F
          if(BS.GetType()==GeomAbs_Cylinder ||
             BS.GetType()==GeomAbs_Torus ||
             BS.GetType()==GeomAbs_Cone  ||
-            BS.GetType()==GeomAbs_BSplineSurface) // beuurkk pour l'instant...
+            BS.GetType()==GeomAbs_BSplineSurface) 
            {
              Standard_Real ff= wf ,ll= wl ;
              Standard_Real dw
@@ -844,11 +841,10 @@ Standard_Boolean StdSelect_BRepSelectionTool::GetSensitiveForFace(const TopoDS_F
   Standard_Integer ArrayPosition = WirePoints.Length();
   
   Handle(TColgp_HArray1OfPnt)  facepoints = new TColgp_HArray1OfPnt(1,ArrayPosition);
-  // beurk beurk beurk...
   for(Standard_Integer I=1 ;I<=ArrayPosition;I++)
     {facepoints->SetValue (I, WirePoints.Value(I));}
   
-  if ((facepoints->Array1()).Length() > 1) { // 1 si un seul edge circulaire plein.
+  if ((facepoints->Array1()).Length() > 1) { // 1 if only one circular edge
     Select3D_TypeOfSensitivity TS = InteriorFlag ? Select3D_TOS_INTERIOR : Select3D_TOS_BOUNDARY;
     LL.Append(new Select3D_SensitiveFace
               (Owner, facepoints, TS));
index 930f50529d2a0cce64fcaaa58be6ec0e6e453028..872cf7380790740ffbaa32e2cc827e8254c7fe27 100755 (executable)
@@ -4,14 +4,6 @@
 //             <rob@fidox>
 
 
-// Modifie par jmi le 21/9/96
-// Utilisation des termes StdSelect_Sphere  pour StdSelect_Cone 
-//                        StdSelect_Torus   pour StdSelect_PlaneOrCone
-//                        StdSelect_Revol   pour StdSelect_CylinderOrCone
-// en attendant la possibilite de modifier du CDL.
-// mettre a jour alors Placement-menu.ccl de DsgFront
-//                  et Part-placement.ccl de AssemblyScripts
-
 #define BUC60576       //GG_5/10/99 Adds Cone to enum TypeOfFace
 
 
@@ -99,7 +91,7 @@ IsOk(const Handle(SelectMgr_EntityOwner)& EO) const
             ); 
     }
 #ifdef BUC60576
-  case StdSelect_Cone: // en attendant la liberation du cdl, on l'utilise pour Cone
+  case StdSelect_Cone: // waiting for the free cdl, it is used for Cone
     {
       BRepAdaptor_Surface surf(TopoDS::Face(anobj));
       return (surf.GetType() == GeomAbs_Cone);      
index ffbe3a29694230e106d01a33937f992bacef81f2..9e76ab6794537047dad67400ce00b98caaad62b3 100755 (executable)
@@ -1,4 +1,3 @@
-//syl le 28/9/98: reactivation de 3 polices buggees + reagencement des polices
 #include <V2d_DefaultMap.ixx>
 #include <TColStd_Array1OfInteger.hxx>
 #include <Aspect_ColorMapEntry.hxx>
index e5ec7e3cb81c8d05799822b0a9b596c431403271..200cbaf77d08ad2002400431d9042ecd2676bba8 100755 (executable)
@@ -187,7 +187,7 @@ Graphic3d_Array1OfVertex Points(0,NFACES);
       if ( Norme >= 0.0001 ) {
         VX= DX/Norme; VY = DY/Norme; VZ = DZ/Norme;
 
-//Construction d'un repere i,j pour le cercle:
+//Construction of marker i,j for the circle:
         Xn=0., Yn=0., Zn=0.;   
         if ( Abs(VX) <= Abs(VY) && Abs(VX) <= Abs(VZ)) Xn=1.;
         else if ( Abs(VY) <= Abs(VZ) && Abs(VY) <= Abs(VX)) Yn=1.;
@@ -302,7 +302,7 @@ Standard_Integer u, v;
         cin >> u; cin >> v;
         V3d::SetPlane (aViewer, x1, y1, z1, x2, y2, z2);
 
-        // Pour relancer le calcul selon le nouveau plan
+        // To restart the calculation on the new plane
         if (aViewer->Grid ()->IsActive ()) {
                 Standard_Real xo, yo;
                 Quantity_PlaneAngle angle;
index b6b09498a4ab879c233dbcbd15b48a447c320369..2892b591565a49c71215014501ef04c8a24c08a6 100755 (executable)
@@ -56,17 +56,17 @@ V3d_Camera::V3d_Camera(const Handle(V3d_View)& aView) {
   Standard_Real X,Y,Z;
   Graphic3d_Vertex P,T;
 
-// Le point oeil definit la position de la camera
+// The eye point defines the position of the camera
   aView->Eye(X,Y,Z);
   P.SetCoord(X,Y,Z);
   MyPosition = P;
-  // Le point vise definit la cible de la camera
+  // The target point defines the target of the camera
   aView->At(X,Y,Z);
   T.SetCoord(X,Y,Z);
   MyTarget = T;
-// Angle d'inclinaison de la camera
+// Incline Angle of the camera
   MyAngle = aView->Twist();
-// Angle d'ouverture de la camera
+// Aperture Angle of the camera
   MyAperture = (aView->DynamicType()==STANDARD_TYPE(V3d_PerspectiveView)) ?
     ((Handle(V3d_PerspectiveView)&)aView)->Angle() : 0.;
    
@@ -102,8 +102,8 @@ void V3d_Camera::SetRadius(const Standard_Real Radius) {
 
   Standard_Real X0,Y0,Z0,Xn,Yn,Zn;
 
-// Le point cible reste inchange, seul la position de la camera est modifiee
-// en conservant la direction.
+// Targer point remains unchanged, only the position of the camera is modified
+// preserving the direction.
   Graphic3d_Vector D(MyTarget,MyPosition);
   D.Normalize();
   D.Coord(Xn,Yn,Zn);
@@ -122,7 +122,7 @@ void V3d_Camera::OnHideFace(const Handle(V3d_View)& aView) {
   Rayon = this->Radius();
   MyPosition.Coord(XP,YP,ZP);
   SymetricPointOnSphere(aView,MyTarget,MyPosition,Rayon,X,Y,Z,VX,VY,VZ);
-  //      Actuellement est on sur le point vu
+  //      This point is visible
   if ( (VX*(X-XP) < 0.) && (VY*(Y-YP) < 0.) && (VZ*(Z-ZP) < 0.) ) {
     this->SetPosition(X,Y,Z);
   }
@@ -135,7 +135,7 @@ void V3d_Camera::OnSeeFace(const Handle(V3d_View)& aView) {
   Rayon = this->Radius();
   MyPosition.Coord(XP,YP,ZP);
   SymetricPointOnSphere(aView,MyTarget,MyPosition,Rayon,X,Y,Z,VX,VY,VZ);
-  //      Actuellement est on sur le point cache
+  //      This point is hidden
   if ( (VX*(X-XP) > 0.) && (VY*(Y-YP) > 0.) && (VZ*(Z-ZP) > 0.) ) {
     this->SetPosition(X,Y,Z);
   }
@@ -149,12 +149,12 @@ Standard_Boolean V3d_Camera::SeeOrHide(const Handle(V3d_View)& aView) const {
   Rayon = this->Radius();
   MyPosition.Coord(XP,YP,ZP);
   SymetricPointOnSphere(aView,MyTarget,MyPosition,Rayon,X,Y,Z,VX,VY,VZ);
-  //      Avons nous le point cache ou le point vu
+  //      Is it a visible or a hidden point?
   if ( (VX*(X-XP) > 0.) || (VY*(Y-YP) > 0.) || (VZ*(Z-ZP) > 0.) )
-//      la source est sur la face cachee
+//      the source is on the hidden face
     Val = Standard_False; 
   else
-    //      la source est sur la face vue.
+    //  the source is on the visible face.
     Val = Standard_True;
 
   return Val;
@@ -206,17 +206,17 @@ void V3d_Camera::Symbol (const Handle(Graphic3d_Group)& gsymbol,
   Graphic3d_Array1OfVertex VN2(1,NbPoints+1);
   Graphic3d_Array1OfVertex V2(1,2);
 
-//      Direction de la camera
+//      Direction of the camera
   MyPosition.Coord(XP,YP,ZP);
   MyTarget.Coord(X0,Y0,Z0);
   Dx = X0 - XP; Dy = Y0 - YP; Dz = Z0 - ZP;
   Lng = this->Radius()/10.;
   
-//      Recherche des centres des carres de base du boitier de la camera :
+//      Find centers of base squares of the case of the camera :
   Xc1 = XP - Dx * Lng; Yc1 = YP - Dy * Lng; Zc1 = ZP - Dz * Lng;
   Xc2 = XP + Dx * Lng; Yc2 = YP + Dy * Lng; Zc2 = ZP + Dz * Lng;
   
-//      Construction d'un repere i,j pour les rectangles :
+//      Construction of a mark i,j for rectangles :
   Xn=0., Yn=0., Zn=0.;
 
   if ( Abs(Dx) <= Abs(Dy) && Abs(Dx) <= Abs(Dz)) Xn=1.;
@@ -233,13 +233,13 @@ void V3d_Camera::Symbol (const Handle(Graphic3d_Group)& gsymbol,
   Yj = Dz * Xi - Dx * Zi;
   Zj = Dx * Yi - Dy * Xi;
 
-//      Dessin du boitier
+//      Scheme of the case
   for (i = 1 ; i <= NbPoints ; i++) {
 
     cosinus = Cos ( Alpha + (i - 1) *  Standard_PI/2. );   
     sinus   = Sin ( Alpha + (i - 1) *  Standard_PI/2. );   
     
-    //          Premier carre de base
+    //          First base square
     X = Xc1 + (cosinus * Xi + sinus * Xj) * Lng / 2.;
     Y = Yc1 + (cosinus * Yi + sinus * Yj) * Lng / 2.;
     Z = Zc1 + (cosinus * Zi + sinus * Zj) * Lng / 2.;
@@ -247,7 +247,7 @@ void V3d_Camera::Symbol (const Handle(Graphic3d_Group)& gsymbol,
     if(i==1) VN1(NbPoints+1).SetCoord(X,Y,Z);
     V2(1).SetCoord(X,Y,Z);
     
-//          Second carre de base
+//          Second base square
     X = Xc2 + (cosinus * Xi + sinus * Xj) * Lng / 2.;
     Y = Yc2 + (cosinus * Yi + sinus * Yj) * Lng / 2.;
     Z = Zc2 + (cosinus * Zi + sinus * Zj) * Lng / 2.;
@@ -260,7 +260,7 @@ void V3d_Camera::Symbol (const Handle(Graphic3d_Group)& gsymbol,
   gsymbol->Polyline(VN1);
   gsymbol->Polyline(VN2);
 
-//      Dessin de l'objectif
+//      Scheme of the objective
   for (i = 1 ; i <= NbPoints ; i++) {
     
     cosinus = Cos ( Alpha + (i - 1) *  Standard_PI/2. );   
@@ -274,7 +274,7 @@ void V3d_Camera::Symbol (const Handle(Graphic3d_Group)& gsymbol,
     if(i==1) VN1(NbPoints+1).SetCoord(X,Y,Z);
     V2(1).SetCoord(X,Y,Z);
 
-//          Second carre de base
+//          Second base square
     X = Xc2 + Dx * Lng / 6. + (cosinus * Xi + sinus * Xj) * Lng / 3.;
     Y = Yc2 + Dy * Lng / 6. + (cosinus * Yi + sinus * Yj) * Lng / 3.;
     Z = Zc2 + Dz * Lng / 6. + (cosinus * Zi + sinus * Zj) * Lng / 3.;
@@ -303,8 +303,8 @@ void V3d_Camera::Display( const Handle(V3d_View)& aView,
   V3d_TypeOfUpdate UpdSov;
 
 
-//  Creation d'une structure d'elements reperables (la position de
-//  la camera, et la sphere de deplacement de cette camera)
+//  Creation of a structure of markable elements (position of the
+//  camera, and the sphere of displacement of this camera)
 
   Pres = TPres;
   Handle(V3d_Viewer) TheViewer = aView->Viewer();
@@ -336,18 +336,18 @@ void V3d_Camera::Display( const Handle(V3d_View)& aView,
   Handle(Graphic3d_Group) gsphere;
   if (Pres == V3d_COMPLETE || Pres == V3d_PARTIAL) gsphere = new Graphic3d_Group(MyGraphicStructure);    
   
-//  Creation d'une structure d'elements non reperables ( meridien et 
-//  parallele ).
+//  Creation of a structure of non-markable elements (meridian and 
+//  parallel ).
   Handle(Graphic3d_Group) gnopick = new Graphic3d_Group(MyGraphicStructure1);
   MyGraphicStructure1->SetPick(Standard_False);
 
   MyTarget.Coord(X0,Y0,Z0);
 
-//Affichage de la position de la camera.
+// Display of the position of the camera.
 
   gcamera->SetPickId(1);
   if (Pres == V3d_SIMPLE) {
-//    on dessine un viseur
+//    a viewfinder is drawn
     Graphic3d_Array1OfVertex PViseur(1,2);
     aView->Project(X0,Y0,Z0,PXT,PYT);
     aView->Convert(PXT,PYT,IXP,IYP);
@@ -363,10 +363,10 @@ void V3d_Camera::Display( const Handle(V3d_View)& aView,
     PViseur(2).SetCoord(X+X0-XT,Y+Y0-YT,Z+Z0-ZT);
     gcamera->Polyline(PViseur);
   }
-//  on dessine une camera
+//  a camera is drawn
   else this->Symbol(gcamera,aView);
 
-//Affichage de la sphere de reperage (limite au cercle).
+// Display of the marking sphere (limited to circle).
     
   if (Pres == V3d_COMPLETE || Pres == V3d_PARTIAL) {
 
@@ -375,7 +375,7 @@ void V3d_Camera::Display( const Handle(V3d_View)& aView,
     gsphere->SetPickId(2);
     V3d::CircleInPlane(gsphere,X0,Y0,Z0,VX,VY,VZ,Rayon);
     
-//Affichage du rayon de la sphere (ligne + texte)
+// Display of the radius of the sphere (line + text)
 
     if (Pres == V3d_COMPLETE) {
       gradius->SetPickId(3);
@@ -395,14 +395,14 @@ void V3d_Camera::Display( const Handle(V3d_View)& aView,
       gradius->Text(ValOfRadius.ToCString(),PText,0.01);
     }
  
-//Affichage du meridien
+// Display of the meridian
 
     Quantity_Color Col2(Quantity_NOC_GREEN);
     Handle(Graphic3d_AspectLine3d) Asp2 = new Graphic3d_AspectLine3d
       (Col2,Aspect_TOL_SOLID,1.);
     gnopick->SetPrimitivesAspect(Asp2);
     
-    //    Definition de l'axe du cercle
+    // Definition of the axis of circle
     aView->Up(DXRef,DYRef,DZRef);
     this->Position(X,Y,Z);
     DXini = X-X0; DYini = Y-Y0; DZini = Z-Z0;
@@ -412,9 +412,9 @@ void V3d_Camera::Display( const Handle(V3d_View)& aView,
     
     V3d::CircleInPlane(gnopick,X0,Y0,Z0,VX,VY,VZ,Rayon);
 
-//Affichage de la parallele
+// Display of the parallel
 
-//    Definition de l'axe du cercle
+// Definition of the axis of circle
     aView->Proj(VX,VY,VZ);
     aView->Up(X1,Y1,Z1);
     DXRef = VY * Z1 - VZ * Y1;
@@ -500,11 +500,11 @@ void V3d_Camera::Tracking( const Handle(V3d_View)& aView,
   MyTarget.Coord(X0,Y0,Z0);
   aView->Project(X0,Y0,Z0,PXT,PYT);
   aView->Convert(PXT,PYT,IPX,IPY);
-  //      Coord 3d dans le plan de projection de la cible.
+  //      Coord 3d in the plane of projection of the target.
   aView->Convert(IPX,IPY,XT,YT,ZT);
   switch (WhatPick) {
   case V3d_POSITIONCAMERA : 
-    // Les Coordonnees doivent rester a l'interieur de la sphere
+    // Coordinates should remain inside of the sphere
     Rayon = this->Radius();
     XMinTrack = PXT - Rayon;
     XMaxTrack = PXT + Rayon;
@@ -518,14 +518,13 @@ void V3d_Camera::Tracking( const Handle(V3d_View)& aView,
        DeltaY = Y0 - YP;
        DeltaZ = Z0 - ZP;
        
-//             On recherche le point d'intersection des droites definies
-//             par :
-//              - Droite passant par le point de projection et l'oeil
-//                si on est en perspective, parralele a la normale de la 
-//                vue si on a une vue axonometrique.
-//                position dans la vue est // a la normale de la vue
-//              - La distance position de la camera cible est egale au 
-//                rayon.
+//             The point of intersection of straight lines defined by :
+//              - Straight line passing by the point of projection and the eye
+//                if this is a perspective, parallel to the normal of the 
+//                view if there is an axonometric view.
+//                position in the view is parallel to the normal of the view
+//              - The distance position of the target camera cible is equal 
+//                to the radius.
 
        A = VX*VX + VY*VY + VZ*VZ ;
        B = -2. * (VX*DeltaX + VY*DeltaY + VZ*DeltaZ);
@@ -547,8 +546,8 @@ void V3d_Camera::Tracking( const Handle(V3d_View)& aView,
     }
   case V3d_SPACECAMERA : 
     aView->Convert(PXT,PYT,IPX,IPY);
-//               Dans ce cas Xpix,Ypix correspondent a une distance , relative
-//               a la translation que l'on veut effectuer sur la sphere. 
+//               In case Xpix,Ypix corresponding to a distance , relative
+//               to the translation that is planned to be done on the sphere. 
     aView->Convert(IPX+Xpix,IPY+Ypix,X,Y,Z);
     X = X+X0-XT;
     Y = Y+Y0-YT; 
@@ -564,8 +563,8 @@ void V3d_Camera::Tracking( const Handle(V3d_View)& aView,
     break;
   
   case V3d_ExtRADIUSCAMERA :
-//             on cherche a conserver la direction cible positionnement de la 
-//             camera ==> on projette le point sur la direction cible camera.
+//             It is attempted to preserve the target positioning direction of the  
+//             camera ==> the point is projected on the target camera direction.
     this->Position(Xi,Yi,Zi);
     aView->Project(Xi,Yi,Zi,PXP,PYP);
     DX = PXP - PXT;
@@ -586,9 +585,8 @@ void V3d_Camera::Tracking( const Handle(V3d_View)& aView,
     }
     break;
   case V3d_IntRADIUSCAMERA :
-//               on cherche a conserver la direction cible positionnement 
-//               de la camera ==> on projette le point sur la direction 
-//               cible camera.
+//               It is attempted to preserve the target positioning direction of the  
+//             camera ==> the point is projected on the target camera direction.
     this->Position(Xi,Yi,Zi);
     aView->Project(Xi,Yi,Zi,PXP,PYP);
     DX = PXP - PXT;
@@ -603,8 +601,7 @@ void V3d_Camera::Tracking( const Handle(V3d_View)& aView,
       Rap = NewRprj/OldRprj;
       Rayon = this->Radius();
       Rayon = Rayon * Rap;
-//                 la camera doit rester a une position fixe, seule la cible
-//                 est modifie.
+//                 the camera should remain at a fixed position, only the target is modified.
       Graphic3d_Vector Dir(MyPosition,MyTarget);
       Dir.Normalize();
       Dir.Coord(X,Y,Z);
@@ -639,10 +636,10 @@ void V3d_Camera::AerialPilot( const Handle(V3d_View)& aView,
   aView->At(Xv,Yv,Zv);
   aView->Project(Xv,Yv,Zv,PXT,PYT);
   aView->Convert(PXT,PYT,IPX,IPY);
-//      Recherche de tangage ==> Xpix = IPX et Ypix inverse
-//      C'est le point vise qui tourne autour de l'axe passant par l'oeil et 
-//      de direction un vecteur appartenant au plan de la vue et 
-//      perpendiculaire au vecteur haut de la vue.
+//      Find the pitching ==> Xpix = IPX and Ypix inverted
+//      The target point turns around an axis passing through the eye and the  
+//      direction of vector belonging to the view plane  
+//      and perpendicular to the vector above the view.
   if ( Ypix != IPY ) {
     aView->Size(Width,Height);
     IHeight = aView->Convert(Height);
@@ -669,14 +666,14 @@ void V3d_Camera::AerialPilot( const Handle(V3d_View)& aView,
     Xf = Xp * MatRot(0,0) + Yp * MatRot(0,1) + Zp * MatRot(0,2);
     Yf = Xp * MatRot(1,0) + Yp * MatRot(1,1) + Zp * MatRot(1,2);
     Zf = Xp * MatRot(2,0) + Yp * MatRot(2,1) + Zp * MatRot(2,2);
-//        Rotation du point vise (cible de la camera)
+//        Rotation of the target point (target of the camera)
     X1 = Xc * MatRot(0,0) + Yc * MatRot(0,1) + Zc * MatRot(0,2);
     Y1 = Xc * MatRot(1,0) + Yc * MatRot(1,1) + Zc * MatRot(1,2);
     Z1 = Xc * MatRot(2,0) + Yc * MatRot(2,1) + Zc * MatRot(2,2);
     Xc = X1 + Xp - Xf ; Yc = Y1 + Yp - Yf ; Zc = Z1 + Zp - Zf;
     MyTarget.SetCoord(Xc,Yc,Zc);
   }
-//      Recherche de roulis determine par Xpix 
+//      Find the rolling determined by Xpix 
   if ( Xpix != IPX ) {
     IWidth = aView->Convert(Width);
     Beta  = ((IPX - Xpix)*Standard_PI)/(IWidth*2.);
@@ -688,8 +685,8 @@ void V3d_Camera::AerialPilot( const Handle(V3d_View)& aView,
 void V3d_Camera::EarthPilot( const Handle(V3d_View)& aView,
                             const Standard_Integer Xpix,
                             const Standard_Integer Ypix) {
-// Le pilotage en mode terrestre, ressemble a la conduite d'une voiture
-// Dans ce cas, seul le point cible est modifie.
+// Piloting in land mode, resembles to the car driving 
+// In this case, only the target point is modified.
 
   Standard_Real    Xp,Yp,Zp,Xc,Yc,Zc,Xv,Yv,Zv,Xf,Yf,Zf;
   Standard_Real    VX,VY,VZ,DXH,DYH,DZH,A,B,C,PXT,PYT,X1,Y1,Z1,Dist;
@@ -702,10 +699,10 @@ void V3d_Camera::EarthPilot( const Handle(V3d_View)& aView,
   aView->At(Xv,Yv,Zv);
   aView->Project(Xv,Yv,Zv,PXT,PYT);
   aView->Convert(PXT,PYT,IPX,IPY);
-  //      Recherche d' inclinaison==> Xpix = IPX et Ypix inverse
-//      C'est le point vise qui tourne autour de l'axe passant par l'oeil et 
-//      de direction un vecteur appartenant au plan de la vue et 
-//      perpendiculaire au vecteur haut de la vue.
+//      Find the pitching ==> Xpix = IPX and Ypix inverted
+//      The target point turns around an axis passing through the eye and the  
+//      direction of vector belonging to the view plane  
+//      and perpendicular to the vector above the view.
   if ( Ypix != IPY ) {
     aView->Size(Width,Height);
     IHeight = aView->Convert(Height);
@@ -732,14 +729,14 @@ void V3d_Camera::EarthPilot( const Handle(V3d_View)& aView,
     Xf = Xp * MatRot(0,0) + Yp * MatRot(0,1) + Zp * MatRot(0,2);
     Yf = Xp * MatRot(1,0) + Yp * MatRot(1,1) + Zp * MatRot(1,2);
     Zf = Xp * MatRot(2,0) + Yp * MatRot(2,1) + Zp * MatRot(2,2);
-//        Rotation du point vise (cible de la camera)
+//        Rotation of the target point (target of the camera)
     X1 = Xc * MatRot(0,0) + Yc * MatRot(0,1) + Zc * MatRot(0,2);
     Y1 = Xc * MatRot(1,0) + Yc * MatRot(1,1) + Zc * MatRot(1,2);
     Z1 = Xc * MatRot(2,0) + Yc * MatRot(2,1) + Zc * MatRot(2,2);
          Xc = X1 + Xp - Xf ; Yc = Y1 + Yp - Yf ; Zc = Z1 + Zp - Zf;
   }
-//      Recherche de virage ==> Ypix = IPY . Le point vise tourne aoutour 
-//      d'un axe // au vecteur haut passant par l'oeil
+//      Find turning ==> Ypix = IPY . The target point rotates around  
+//      an axis // a vector above passing through the eye
   if ( Xpix != IPX ) {
     IWidth = aView->Convert(Width);
     Beta  = ((IPX - Xpix)*Standard_PI)/(IWidth*2.);
@@ -761,7 +758,7 @@ void V3d_Camera::EarthPilot( const Handle(V3d_View)& aView,
     Xf = Xp * MatRot(0,0) + Yp * MatRot(0,1) + Zp * MatRot(0,2);
     Yf = Xp * MatRot(1,0) + Yp * MatRot(1,1) + Zp * MatRot(1,2);
     Zf = Xp * MatRot(2,0) + Yp * MatRot(2,1) + Zp * MatRot(2,2);
-    //        Rotation du point vise (cible de la camera)
+    //        Rotation of the target point (target of the camera)
     X1 = Xc * MatRot(0,0) + Yc * MatRot(0,1) + Zc * MatRot(0,2);
     Y1 = Xc * MatRot(1,0) + Yc * MatRot(1,1) + Zc * MatRot(1,2);
     Z1 = Xc * MatRot(2,0) + Yc * MatRot(2,1) + Zc * MatRot(2,2);
@@ -771,7 +768,7 @@ void V3d_Camera::EarthPilot( const Handle(V3d_View)& aView,
 }
 
 void V3d_Camera::Move (const Standard_Real Dist) {
-// Deplacement de la camera en conservant la direction camera - cible.
+// Displacement of the camera by preserving the direction camera - target.
 
   Standard_Real XP,YP,ZP,X0,Y0,Z0,DX,DY,DZ,Norme;
 
@@ -788,8 +785,8 @@ void V3d_Camera::Move (const Standard_Real Dist) {
 
 void V3d_Camera::GoUp (const Standard_Real Haut) {
 
-// Deplacement de la camera suivant l'axe z, en conservant la direction camera
-// cible de la camera
+// Displacement of the camera by axis z, preserving the direction camera -
+// target of the camera
 
   MyPosition.SetZCoord(MyPosition.Z()+Haut);
   MyTarget.SetZCoord(MyTarget.Z()+Haut);
@@ -811,14 +808,13 @@ void V3d_Camera::SymetricPointOnSphere (const Handle(V3d_View)& aView, const Gra
   DeltaY = Y0 - YP;
   DeltaZ = Z0 - ZP;
 
-//      On recherche le point d'intersection des droites definies
-//      par :
-//      - Droite passant par le point de projection et l'oeil
-//        si on est en perspective, parralele a la normale de la 
-//        vue si on a une vue axonometrique.
-//        position dans la vue est // a la normale de la vue
-//      - La distance position de la camera cible est egale au 
-//        rayon.
+//             The point of intersection of straight lines defined by :
+//              - Straight line passing by the point of projection and the eye
+//                if this is a perspective, parallel to the normal of the 
+//                view if there is an axonometric view.
+//                position in the view is parallel to the normal of the view
+//              - The distance position of the target camera cible is equal 
+//                to the radius.
 
   A = VX*VX + VY*VY + VZ*VZ ;
   B = -2. * (VX*DeltaX + VY*DeltaY + VZ*DeltaZ);
index 66d2f360899c55a0effa7132f6f570513e9d37a6..9a272817a7a51346d50b12338b6fb9114e32f3ed 100755 (executable)
@@ -4,12 +4,8 @@
      ----------
         Classe V3d_CircularGrid :
  
-     HISTORIQUE DES MODIFICATIONS   :
+     VERSION HISTORY  :
      --------------------------------
-      16-08-98 : CAL ; S3892. Ajout grilles 3d.
-      13-10-98 : CAL ; S3892. Ajout de la gestion de la taille des grilles 3d.
-      23-10-98 : CAL ; PRO 15885. Patch K4403 et K4404
-      03-11-98 : CAL ; PRO 16161. Patch K4418 et K4419
       IMP230300: GG The color fields and methods have moved in Aspect_Grid
 
 
@@ -156,7 +152,7 @@ TColStd_Array2OfReal Trsf (1, 4, 1, 4);
                Trsf (1, 4) = xl,
                Trsf (2, 4) = yl,
                Trsf (3, 4) = zl;
-               // Transformation de changement de repere
+               // Transformation  change of marker
                Trsf (1, 1) = xdx,
                Trsf (2, 1) = xdy,
                Trsf (3, 1) = xdz,
@@ -168,11 +164,11 @@ TColStd_Array2OfReal Trsf (1, 4, 1, 4);
                Trsf (3, 3) = dz;
                myStructure->SetTransform (Trsf, Graphic3d_TOC_REPLACE);
 
-               // Translation de l'origine
+               // Translation of the origin
                Trsf (1, 4) = -XOrigin (),
                Trsf (2, 4) = -YOrigin (),
                Trsf (3, 4) = 0.0;
-               // Rotation Alpha autour de l'axe -Z
+               // Rotation Alpha around axis -Z
                Trsf (1, 1) = CosAlpha,
                Trsf (2, 1) = -SinAlpha,
                Trsf (3, 1) = 0.0,
@@ -184,11 +180,6 @@ TColStd_Array2OfReal Trsf (1, 4, 1, 4);
                Trsf (3, 3) = 1.0;
                myStructure->SetTransform (Trsf,Graphic3d_TOC_POSTCONCATENATE);
 
-               // CAL : 19 aout 1998
-               // Il y avait aussi la possibilite de faire le calcul
-               // de changement de repere par :
-               // gp_Trsf::SetTransformation
-               //      (myGridPlane, myViewer->PrivilegedPlane ());
 
 #ifdef TRACE_VALUES
 Standard_Integer i, j;
@@ -302,7 +293,7 @@ Standard_Boolean MakeCercles = Standard_False;
 #ifdef TRACE_MAKE
                cout << "MakeCercles" << endl;
 #endif
-               // cercles
+               // circles
 #ifdef IMP300300
                Standard_Integer nblines = 0;
 #endif
@@ -371,7 +362,7 @@ Standard_Boolean MakeDiametres = Standard_False;
 #ifdef TRACE_MAKE
                cout << "MakeDiametres" << endl;
 #endif
-               // diametres
+               // diameters
                myGroup1->Clear ();
                myGroup1->SetGroupPrimitivesAspect (MarkerAttrib);
                myGroup1->BeginPrimitives ();
index 6935face1136ead60bc9f9a72f4e8750dbd1a079..7b6d33f880f89e40b9f9d96fdf019a58337796d1 100755 (executable)
@@ -57,9 +57,9 @@ V3d_TypeOfOrientation Direction,const Quantity_NameOfColor Name,const Standard_B
   
   MyType = V3d_DIRECTIONAL ;
   MyLight = new Visual3d_Light(C,V, Headlight) ;
-  // On choisit aleatoirement comme cible l'origine
+  // The initial target is chosen at random
   MyTarget = T;
-// On deduit une position
+// Position is found
   P.SetCoord(-V.X(),-V.Y(),-V.Z());
   MyDisplayPosition = P; 
 
@@ -133,18 +133,18 @@ void V3d_DirectionalLight::Symbol (const Handle(Graphic3d_Group)& gsymbol, const
   Rayon = this->Radius();
   aView->Project(Xi,Yi,Zi,PXT,PYT); 
   aView->Convert(PXT,PYT,IXP,IYP);
-//  Coord 3d dans le plan de projection de la source.
+//  Coordinated 3d in the plane of projection of the source.
   aView->Convert(IXP,IYP,XT,YT,ZT);
   aView->Convert(PXT,PYT+Rayon,IXP,IYP);
   aView->Convert(IXP,IYP,X,Y,Z);
   X = X+Xi-XT; Y = Y+Yi-YT; Z = Z+Zi-ZT;
   Dist = Sqrt( Square(X-Xi) + Square(Y-Yi) + Square(Z-Zi) );
-//  Axe de rotation.
+//  Axis of rotation.
   A = (X-Xi)/Dist;
   B = (Y-Yi)/Dist;
   C = (Z-Zi)/Dist;
 
-//  On dessine une sphere
+//  A sphere is drawn
   V3d::CircleInPlane(gsymbol,Xi,Yi,Zi,VX,VY,VZ,Rayon/40.);
   for( j=1 ; j<=3 ; j++ ) {
     Beta = j * Standard_PI/4.;
@@ -163,7 +163,7 @@ void V3d_DirectionalLight::Symbol (const Handle(Graphic3d_Group)& gsymbol, const
     Xf = Xi * MatRot(0,0) + Yi * MatRot(0,1) + Zi * MatRot(0,2);
     Yf = Xi * MatRot(1,0) + Yi * MatRot(1,1) + Zi * MatRot(1,2);
     Zf = Xi * MatRot(2,0) + Yi * MatRot(2,1) + Zi * MatRot(2,2);
-//    Rotation de la normale
+//    Rotation of the normal
     X1 = VX * MatRot(0,0) + VY * MatRot(0,1) + VZ * MatRot(0,2);
     Y1 = VX * MatRot(1,0) + VY * MatRot(1,1) + VZ * MatRot(1,2);
     Z1 = VX * MatRot(2,0) + VY * MatRot(2,1) + VZ * MatRot(2,2);
@@ -171,7 +171,7 @@ void V3d_DirectionalLight::Symbol (const Handle(Graphic3d_Group)& gsymbol, const
     V3d::CircleInPlane(gsymbol,Xi,Yi,Zi,VX,VY,VZ,Rayon/40.);
   }
 
-//  On dessine la fleche
+//  The arrow is drawn
   Rayon = this->Radius();
   this->Direction(DX,DY,DZ);
   X = Xi + DX*Rayon/10.; Y = Yi + DY*Rayon/10.; Z = Zi + DZ*Rayon/10.;
@@ -192,10 +192,10 @@ void V3d_DirectionalLight::Display( const Handle(V3d_View)& aView,
   V3d_TypeOfRepresentation Pres;
   V3d_TypeOfUpdate UpdSov;
 
-//  Creation d'une structure slight d'elements reperables (la position de
-//  la light, et le domaine d'eclairage represente par un cercle)
-//  Creation d'une structure snopick d'elements non reperables ( cible, meridien et 
-//  parallel).
+//  Creation of a structure of markable elements (position of the
+//  light, and the domain of lighting represented by a circle)
+//  Creation of a structure of non-markable elements (target, meridian and 
+//  parallel).
 
     Pres = TPres;
     Handle(V3d_Viewer) TheViewer = aView->Viewer();
@@ -226,7 +226,7 @@ void V3d_DirectionalLight::Display( const Handle(V3d_View)& aView,
   Y0 = MyTarget.Y();
   Z0 = MyTarget.Z();
 
-//Affichage de la position de la light.
+//Display of the position of the light.
 
   glight->SetPickId(1);
   this->Color(Quantity_TOC_RGB,R1,G1,B1);
@@ -236,7 +236,7 @@ void V3d_DirectionalLight::Display( const Handle(V3d_View)& aView,
   glight->SetPrimitivesAspect(Asp1);
   this->Symbol(glight,aView);
   
-  //Affichage de la sphere de reperage (limite au cercle).
+  // Display of the markable sphere (limit at the circle).
 
   if (Pres == V3d_COMPLETE || Pres == V3d_PARTIAL) {
     
@@ -245,14 +245,14 @@ void V3d_DirectionalLight::Display( const Handle(V3d_View)& aView,
     gsphere->SetPickId(2);
     V3d::CircleInPlane(gsphere,X0,Y0,Z0,VX,VY,VZ,Rayon);
     
-//Affichage du meridien
+//Display of the meridian
 
     Quantity_Color Col2(Quantity_NOC_GREEN);
     Handle(Graphic3d_AspectLine3d) Asp2 = new Graphic3d_AspectLine3d
       (Col2,Aspect_TOL_SOLID,1.);
     gnopick->SetPrimitivesAspect(Asp2);
     
-//    Definition de l'axe du cercle
+//    Definition of the axis of circle
     aView->Up(DXRef,DYRef,DZRef);
     this->DisplayPosition(X,Y,Z);
     DXini = X-X0; DYini = Y-Y0; DZini = Z-Z0;
@@ -262,9 +262,9 @@ void V3d_DirectionalLight::Display( const Handle(V3d_View)& aView,
     
     V3d::CircleInPlane(gnopick,X0,Y0,Z0,VX,VY,VZ,Rayon);
       
-//  Affichage de la parallele
+//  Display of the parallel
 
-//    Definition de l'axe du cercle
+//    Definition of the axis of circle
     aView->Proj(VX,VY,VZ);
     aView->Up(X1,Y1,Z1);
     DXRef = VY * Z1 - VZ * Y1;
index a43e6191b25fb3c18b10b81a6b342714a2aedb1a..b0c40dd0369b3f7f7c04418df9d08eb7ad72e1b5 100755 (executable)
@@ -7,7 +7,6 @@
      HISTORIQUE DES MODIFICATIONS   :
      --------------------------------
       00-09-92 : GG  ; Creation.
-      18-06-96 : FMN ; Ajout MyGraphicStructure1 pour sauvegarder snopick
       30-03-98 : ZOV ; PRO6774 (reconstruction of the class hierarchy and suppressing useless methods)
       IMP230300: GG Add SetColor() and Color() methods
       IMP231100: GG Add IsDisplayed() method
@@ -114,14 +113,12 @@ void V3d_Light::SymetricPointOnSphere (const Handle(V3d_View)& aView, const Grap
   DeltaY = Y0 - YP;
   DeltaZ = Z0 - ZP;
 
-//      On recherche le point d'intersection des droites definies
-//      par :
-//      - Droite passant par le point de projection et l'oeil
-//        si on est en perspective, parralele a la normale de la 
-//        vue si on a une vue axonometrique.
-//        position dans la vue est // a la normale de la vue
-//      - La distance position de la camera cible est egale au 
-//        rayon.
+//      The point of intersection of straight lines defined by :
+//      - Straight line passing by the point of projection and the eye
+//        if this is a perspective, parralel to the normal of the view 
+//        if this is an axonometric view.
+//        position in the view is parallel to the normal of the view
+//      - The distance position of the target camera is equal to the radius.
 
   A = VX*VX + VY*VY + VZ*VZ ;
   B = -2. * (VX*DeltaX + VY*DeltaY + VZ*DeltaZ);
index 6976c11f39082594ace883b6bd0d56218cb335a4..8100b839978831e702a67bbcfc2a38c68ad0011d 100755 (executable)
@@ -42,7 +42,7 @@ void V3d_PositionLight::SetTarget(const Standard_Real X, const Standard_Real Y,
 
   Standard_Real Xc,Yc,Zc, Xp,Yp,Zp;
   
-  // Recalcul de la position
+  // Recalculation of the position
   MyTarget.Coord(Xc,Yc,Zc);
   Position (Xp,Yp,Zp) ;
 
@@ -62,8 +62,8 @@ void V3d_PositionLight::SetRadius(const Standard_Real Radius) {
 
   Standard_Real X0,Y0,Z0, Xn,Yn,Zn, Xp,Yp,Zp;
   
-  // Le point cible reste inchange, seul la position de la lumiere est modifiee
-  // en conservant la direction.
+  // The target point remains unchanged, only the position of the light is modified
+  // by preserving the direction.
        Position (Xp,Yp,Zp);
   Graphic3d_Vector  D(MyTarget, Graphic3d_Vertex(Xp, Yp, Zp));
   D.Normalize();
@@ -84,7 +84,7 @@ void V3d_PositionLight::OnHideFace(const Handle(V3d_View)& aView) {
        V3d_Light::SymetricPointOnSphere (aView, 
                MyTarget, Graphic3d_Vertex(Xp,Yp,Yp), Radius(), X,Y,Z, VX,VY,VZ);
 
-  // Actuellement est on sur le point vu
+  // This is a visible point
   if ((VX*(X-Xp) < 0.) && (VY*(Y-Yp) < 0.) && (VZ*(Z-Zp) < 0.))
     SetPosition (X,Y,Z);
 }
@@ -97,7 +97,7 @@ void V3d_PositionLight::OnSeeFace(const Handle(V3d_View)& aView) {
        V3d_Light::SymetricPointOnSphere (aView, 
                MyTarget, Graphic3d_Vertex(Xp,Yp,Yp), Radius(), X,Y,Z, VX,VY,VZ);
 
-  // Actuellement est on sur le point cache
+  // This is a hidden point
   if ((VX*(X-Xp) > 0.) && (VY*(Y-Yp) > 0.) && (VZ*(Z-Zp) > 0.))
     SetPosition (X,Y,Z);
 }
@@ -110,11 +110,11 @@ Standard_Boolean V3d_PositionLight::SeeOrHide(const Handle(V3d_View)& aView) con
        V3d_Light::SymetricPointOnSphere (aView, 
                MyTarget, Graphic3d_Vertex(Xp,Yp,Yp), Radius(), X,Y,Z, VX,VY,VZ);
 
-  // Avons nous le point cache ou le point vu
+  // Is it a visible or a hidden point
   return ( (VX*(X-Xp) > 0.) || (VY*(Y-Yp) > 0.) || (VZ*(Z-Zp) > 0.) )?
-    // la source est sur la face cachee
+    // the source is on the hidden face 
     Standard_False:
-    // la source est sur la face vue.
+    // the source is on the visible face.
     Standard_True;
 }
 
@@ -136,10 +136,11 @@ void V3d_PositionLight::Display( const Handle(V3d_View)& aView,
   V3d_TypeOfRepresentation Pres;
   V3d_TypeOfUpdate UpdSov;
 
-//  Creation d'une structure slight d'elements reperables (la position de
-//  la light, et le domaine d'eclairage represente par un cercle)
-//  Creation d'une structure snopick d'elements non reperables ( cible, meridien et 
-//  parallele ).
+//  Creation of a structure of markable elements (position of the
+//  light, and the domain of lighting represented by a circle)
+//  Creation of a structure snopick of non-markable elements (target, meridian and 
+//  parallel).
+
 
     Pres = TPres;
     Handle(V3d_Viewer) TheViewer = aView->Viewer();
@@ -182,7 +183,7 @@ void V3d_PositionLight::Display( const Handle(V3d_View)& aView,
   Y0 = MyTarget.Y();
   Z0 = MyTarget.Z();
   
-//Affichage de la position de la light.
+// Display of the light position.
 
   glight->SetPickId(1);
   this->Color(Quantity_TOC_RGB,R1,G1,B1);
@@ -192,7 +193,7 @@ void V3d_PositionLight::Display( const Handle(V3d_View)& aView,
   glight->SetPrimitivesAspect(Asp1);
   this->Symbol(glight,aView);
 
-//Affichage de la sphere de reperage (limite au cercle).
+// Display of the marking sphere (limit at the circle).
 
   if (Pres == V3d_COMPLETE || Pres == V3d_PARTIAL) {
       
@@ -204,7 +205,7 @@ void V3d_PositionLight::Display( const Handle(V3d_View)& aView,
 
                if (MyType != V3d_DIRECTIONAL) {
 
-      //Affichage du rayon de la sphere (ligne + texte)
+      //Display of the radius of the sphere (line + text)
 
                        if (Pres == V3d_COMPLETE) {
                                gradius->SetPickId(3);
@@ -225,14 +226,14 @@ void V3d_PositionLight::Display( const Handle(V3d_View)& aView,
                }
 
 
-    //Affichage du meridien
+    // Display of the meridian
 
     Quantity_Color Col2(Quantity_NOC_GREEN);
     Handle(Graphic3d_AspectLine3d) Asp2 = new Graphic3d_AspectLine3d
       (Col2,Aspect_TOL_SOLID,1.);
     gnopick->SetPrimitivesAspect(Asp2);
     
-    // Definition de l'axe du cercle
+    // Definition of the axis of circle
     aView->Up(DXRef,DYRef,DZRef);
     this->Position(X,Y,Z);
     DXini = X-X0; DYini = Y-Y0; DZini = Z-Z0;
@@ -242,9 +243,9 @@ void V3d_PositionLight::Display( const Handle(V3d_View)& aView,
     
     V3d::CircleInPlane(gnopick,X0,Y0,Z0,VX,VY,VZ,Rayon);
       
-    // Affichage de la parallele
+    // Display of the parallel
 
-    // Definition de l'axe du cercle
+    // Definition of the axis of circle
     aView->Proj(VX,VY,VZ);
     aView->Up(X1,Y1,Z1);
     DXRef = VY * Z1 - VZ * Y1;
@@ -338,11 +339,11 @@ void V3d_PositionLight::Tracking( const Handle(V3d_View)& aView,
   Z0 = MyTarget.Z();
   aView->Project(X0,Y0,Z0,PXT,PYT);
   aView->Convert(PXT,PYT,IPX,IPY);
-//      Coord 3d dans le plan de projection de la cible.
+//      Coord 3d in the plane of projection of the target.
   aView->Convert(IPX,IPY,XT,YT,ZT);
   switch (WhatPick) {
   case V3d_POSITIONLIGHT :
-         // Les Coordonnees doivent rester a l'interieur de la sphere
+         // The Coordinates should remain inside of the sphere
     Rayon = Radius();
     XMinTrack = PXT - Rayon;
     XMaxTrack = PXT + Rayon;
@@ -356,14 +357,12 @@ void V3d_PositionLight::Tracking( const Handle(V3d_View)& aView,
        DeltaY = Y0 - YP;
        DeltaZ = Z0 - ZP;
        
-//                   On recherche le point d'intersection des droites definies
-//                   par :
-//                   - Droite passant par le point de projection et l'oeil
-//                     si on est en perspective, parralele a la normale de la 
-//                     vue si on a une vue axonometrique.
-//                     position dans la vue est // a la normale de la vue
-//                   - La distance position de la camera cible est egale au 
-//                     rayon.
+//      The point of intersection of straight lines defined by :
+//      - Straight line passing by the point of projection and the eye
+//        if this is a perspective, parralel to the normal of the view 
+//        if this is an axonometric view.
+//        position in the view is parallel to the normal of the view
+//      - The distance position of the target camera is equal to the radius.
 
        A = VX*VX + VY*VY + VZ*VZ ;
        B = -2. * (VX*DeltaX + VY*DeltaY + VZ*DeltaZ);
@@ -389,8 +388,8 @@ void V3d_PositionLight::Tracking( const Handle(V3d_View)& aView,
 
   case V3d_SPACELIGHT :
     aView->Convert(PXT,PYT,IPX,IPY);
-//               Dans ce cas Xpix,Ypix correspondent a une distance , relative
-//               a la translation que l'on veut effectuer sur la sphere. 
+//               In this case Xpix,Ypix correspond to a distance, relative
+//               to the translation that is planned to be performed on the sphere. 
     aView->Convert(IPX+Xpix,IPY+Ypix,X,Y,Z);
     X = X+X0-XT;
     Y = Y+Y0-YT; 
@@ -403,8 +402,8 @@ void V3d_PositionLight::Tracking( const Handle(V3d_View)& aView,
   case V3d_ExtRADIUSLIGHT :
                if (MyType == V3d_DIRECTIONAL)
                        break;
-//             on cherche a conserver la direction cible positionnement de la 
-//             source ==> on projette le point sur la direction cible source.
+//             it is attempted to preserve the target direction position of the  
+//             source ==> the point is projected on the target source direction.
     this->Position(Xi,Yi,Zi);
     aView->Project(Xi,Yi,Zi,PXP,PYP);
     DX = PXP - PXT;
@@ -428,9 +427,8 @@ void V3d_PositionLight::Tracking( const Handle(V3d_View)& aView,
   case V3d_IntRADIUSLIGHT :
                if (MyType == V3d_DIRECTIONAL)
                        break;
-//               on cherche a conserver la direction cible positionnement 
-//               de la source ==> on projette le point sur la direction 
-//               cible source.
+//             it is attempted to preserve the target direction position of the  
+//             source ==> the point is projected on the target source direction.
     Position(Xi,Yi,Zi);
     aView->Project(Xi,Yi,Zi,PXP,PYP);
     DX = PXP - PXT;
@@ -445,8 +443,8 @@ void V3d_PositionLight::Tracking( const Handle(V3d_View)& aView,
       Rap = NewRprj/OldRprj;
       Rayon = Radius();
       Rayon = Rayon * Rap;
-//                 la source doit rester a une position fixe, seule la cible
-//                 est modifie.
+//                 the source should remain at a fixed position, 
+//                 only the target is modified.
       Position (xPos, yPos, zPos);
       Graphic3d_Vector  Dir(Graphic3d_Vertex(xPos,yPos,zPos), MyTarget);
       Dir.Normalize();
@@ -454,8 +452,8 @@ void V3d_PositionLight::Tracking( const Handle(V3d_View)& aView,
       X = Xi + Rayon*X;
       Y = Yi + Rayon*Y;
       Z = Zi + Rayon*Z;
-//                 la source doit rester a une position fixe, seule la cible
-//                 est modifie.
+//                 the source should remain at a fixed position, 
+//                 only the target is modified.
       MyTarget.SetCoord(X,Y,Z);
       Display(aView,MyTypeOfRepresentation);            
       (aView->Viewer())->UpdateLights();
index 40c062c6e0c5d3e437b53da7d9eb4ea49145243f..fabfc17f3bc3b2bc8beb0cb61f1c7b5e780147ba 100755 (executable)
@@ -78,7 +78,7 @@ V3d_PositionalLight::V3d_PositionalLight(const Handle(V3d_Viewer)& VM, const Sta
   MyType = V3d_POSITIONAL ;
   MyLight = new Visual3d_Light(C,P,A1,A2) ;
   MyTarget = T;
-  // La Structure graphique sera initialisee lors de l'affichage.
+  // Graphic structure is initialized during the display.
 
 }
 
@@ -127,18 +127,18 @@ void V3d_PositionalLight::Symbol (const Handle(Graphic3d_Group)& gsymbol, const
   Rayon = this->Radius();
   aView->Project(Xi,Yi,Zi,PXT,PYT); 
   aView->Convert(PXT,PYT,IXP,IYP);
-//  Coord 3d dans le plan de projection de la source.
+//  3D Coordinate in the plane of projection of the source.
   aView->Convert(IXP,IYP,XT,YT,ZT);
   aView->Convert(PXT,PYT+Rayon,IXP,IYP);
   aView->Convert(IXP,IYP,X,Y,Z);
   X = X+Xi-XT; Y = Y+Yi-YT; Z = Z+Zi-ZT;
   Dist = Sqrt( Square(X-Xi) + Square(Y-Yi) + Square(Z-Zi) );
-//  Axe de rotation.
+//  Axis of rotation.
   A = (X-Xi)/Dist;
   B = (Y-Yi)/Dist;
   C = (Z-Zi)/Dist;
 
-//  On dessine une sphere
+//  A sphere is drawn
   V3d::CircleInPlane(gsymbol,Xi,Yi,Zi,VX,VY,VZ,Rayon/40.);
   for( j=1 ; j<=3 ; j++ ) {
     Beta = j * Standard_PI/4.;
@@ -157,7 +157,7 @@ void V3d_PositionalLight::Symbol (const Handle(Graphic3d_Group)& gsymbol, const
     Xf = Xi * MatRot(0,0) + Yi * MatRot(0,1) + Zi * MatRot(0,2);
     Yf = Xi * MatRot(1,0) + Yi * MatRot(1,1) + Zi * MatRot(1,2);
     Zf = Xi * MatRot(2,0) + Yi * MatRot(2,1) + Zi * MatRot(2,2);
-//    Rotation de la normale
+//    Rotation of the normal
     X1 = VX * MatRot(0,0) + VY * MatRot(0,1) + VZ * MatRot(0,2);
     Y1 = VX * MatRot(1,0) + VY * MatRot(1,1) + VZ * MatRot(1,2);
     Z1 = VX * MatRot(2,0) + VY * MatRot(2,1) + VZ * MatRot(2,2);
@@ -180,10 +180,10 @@ void V3d_PositionalLight::Display( const Handle(V3d_View)& aView,
   V3d_TypeOfRepresentation Pres;
   V3d_TypeOfUpdate UpdSov;
 
-//  Creation d'une structure slight d'elements reperables (la position de
-//  la light, et le domaine d'eclairage represente par un cercle)
-//  Creation d'une structure snopick d'elements non reperables ( cible, meridien et 
-//  parallel).
+//  Creation of a structure slight of markable elements (position of the
+//  light, and the domain of lighting represented by a circle)
+//  Creation of a structure snopick of non-markable elements (target, meridian and 
+//  parallel).
 
     Pres = TPres;
     Handle(V3d_Viewer) TheViewer = aView->Viewer();
@@ -222,7 +222,7 @@ void V3d_PositionalLight::Display( const Handle(V3d_View)& aView,
   Y0 = MyTarget.Y();
   Z0 = MyTarget.Z();
   
-//Affichage de la position de la light.
+// Display of the position of the light.
 
   glight->SetPickId(1);
   this->Color(Quantity_TOC_RGB,R1,G1,B1);
@@ -232,7 +232,7 @@ void V3d_PositionalLight::Display( const Handle(V3d_View)& aView,
   glight->SetPrimitivesAspect(Asp1);
   this->Symbol(glight,aView);
 
-//Affichage de la sphere de reperage (limite au cercle).
+// Display of the markable sphere (limit at the cercle).
 
   if (Pres == V3d_COMPLETE || Pres == V3d_PARTIAL) {
       
@@ -241,7 +241,7 @@ void V3d_PositionalLight::Display( const Handle(V3d_View)& aView,
     gsphere->SetPickId(2);
     V3d::CircleInPlane(gsphere,X0,Y0,Z0,VX,VY,VZ,Rayon);
 
-//Affichage du rayon de la sphere (ligne + texte)
+// Display of the radius of the sphere (line + text)
 
     if (Pres == V3d_COMPLETE) {
       gradius->SetPickId(3);
@@ -260,14 +260,14 @@ void V3d_PositionalLight::Display( const Handle(V3d_View)& aView,
       gradius->Text(ValOfRadius.ToCString(),PText,0.01);
     }
     
-//Affichage du meridien
+// Display of the meridian
 
     Quantity_Color Col2(Quantity_NOC_GREEN);
     Handle(Graphic3d_AspectLine3d) Asp2 = new Graphic3d_AspectLine3d
       (Col2,Aspect_TOL_SOLID,1.);
     gnopick->SetPrimitivesAspect(Asp2);
     
-//    Definition de l'axe du cercle
+//    Definition of the axis of circle
     aView->Up(DXRef,DYRef,DZRef);
     this->Position(X,Y,Z);
     DXini = X-X0; DYini = Y-Y0; DZini = Z-Z0;
@@ -277,9 +277,9 @@ void V3d_PositionalLight::Display( const Handle(V3d_View)& aView,
     
     V3d::CircleInPlane(gnopick,X0,Y0,Z0,VX,VY,VZ,Rayon);
       
-//  Affichage de la parallele
+//  Display of the parallel
 
-//    Definition de l'axe du cercle
+//  Definition of the axis of circle
     aView->Proj(VX,VY,VZ);
     aView->Up(X1,Y1,Z1);
     DXRef = VY * Z1 - VZ * Y1;
index cdef9495b1affa07cec3515d39c35295acae623b..77ffa269fd3529658998d7c6b6e9302fe54b4a2a 100755 (executable)
@@ -48,7 +48,7 @@
 #define NO_TRACE_MINMAX
 #define NO_TRACE_MAKE
 #define NO_TRACE_VALUES
-#define NO_TRACE_PLANE // Penser a virer du cdl my*GridPlane my*ViewPlane
+#define NO_TRACE_PLANE 
 
 #define MYMINMAX 25.
 #define MYFACTOR 50.
@@ -175,7 +175,7 @@ TColStd_Array2OfReal Trsf (1, 4, 1, 4);
                Trsf (1, 4) = xl,
                Trsf (2, 4) = yl,
                Trsf (3, 4) = zl;
-               // Transformation de changement de repere
+               // Transformation of change of marker
                Trsf (1, 1) = xdx,
                Trsf (2, 1) = xdy,
                Trsf (3, 1) = xdz,
@@ -187,11 +187,11 @@ TColStd_Array2OfReal Trsf (1, 4, 1, 4);
                Trsf (3, 3) = dz;
                myStructure->SetTransform (Trsf, Graphic3d_TOC_REPLACE);
 
-               // Translation de l'origine
+               // Translation of the origin
                Trsf (1, 4) = -XOrigin (),
                Trsf (2, 4) = -YOrigin (),
                Trsf (3, 4) = 0.0;
-               // Rotation Alpha autour de l'axe -Z
+               // Rotation Alpha around axis -Z
                Trsf (1, 1) = CosAlpha,
                Trsf (2, 1) = -SinAlpha,
                Trsf (3, 1) = 0.0,
@@ -203,11 +203,6 @@ TColStd_Array2OfReal Trsf (1, 4, 1, 4);
                Trsf (3, 3) = 1.0;
                myStructure->SetTransform (Trsf,Graphic3d_TOC_POSTCONCATENATE);
 
-               // CAL : 19 aout 1998
-               // Il y avait aussi la possibilite de faire le calcul
-               // de changement de repere par :
-               // gp_Trsf::SetTransformation
-               //      (myGridPlane, myViewer->PrivilegedPlane ());
 
 #ifdef TRACE_VALUES
 Standard_Integer i, j;
@@ -369,7 +364,7 @@ Standard_Boolean MakeVerticales = Standard_False;
 #ifdef TRACE_MAKE
                cout << "MakeVerticales" << endl;
 #endif
-               // verticales
+               // verticals
                myGroup1->Clear ();
                LineAttrib->SetColor (myTenthColor);
                myGroup1->SetGroupPrimitivesAspect (LineAttrib);
@@ -377,7 +372,7 @@ Standard_Boolean MakeVerticales = Standard_False;
                P1.SetCoord (0.0, -myYSize, -zl);
                P2.SetCoord (0.0, myYSize, -zl);
                myGroup1->Polyline (P1, P2, Standard_False);
-               nblines = 1; // on commence par une ligne gris fonce
+               nblines = 1; // start with a dark grey line 
                LineAttrib->SetColor (myColor);
                myGroup1->SetPrimitivesAspect (LineAttrib);
                for (xl = aXStep; xl < myXSize; xl += aXStep) {
@@ -419,7 +414,7 @@ Standard_Boolean MakeHorizontales = Standard_False;
 #ifdef TRACE_MAKE
                cout << "MakeHorizontales" << endl;
 #endif
-               // horizontales
+               // horizontals
                myGroup2->Clear ();
                LineAttrib->SetColor (myTenthColor);
                myGroup2->SetGroupPrimitivesAspect (LineAttrib);
@@ -427,7 +422,7 @@ Standard_Boolean MakeHorizontales = Standard_False;
                P1.SetCoord (-myXSize, 0., -zl);
                P2.SetCoord (myXSize, 0., -zl);
                myGroup2->Polyline (P1, P2, Standard_False);
-               nblines = 1; // on commence par une ligne gris fonce
+               nblines = 1; // start with a dark grey line
                LineAttrib->SetColor (myColor);
                myGroup2->SetPrimitivesAspect (LineAttrib);
                for (yl = aYStep; yl < myYSize; yl += aYStep) {
@@ -487,7 +482,7 @@ Standard_Boolean MakeHorizontales = Standard_False;
 #ifdef TRACE_MAKE
                cout << "MakeHorizontales" << endl;
 #endif
-               // horizontales
+               // horizontals
                myGroup1->Clear ();
                myGroup1->SetGroupPrimitivesAspect (MarkerAttrib);
                myGroup1->BeginPrimitives ();
index 50b57951fcb79755689d9a310560a5c55569ac1e..72012131928c03c1524a2a8bd625172f5c7ba10c 100755 (executable)
@@ -60,7 +60,7 @@ V3d_SpotLight::V3d_SpotLight(const Handle(V3d_Viewer)& VM, const Standard_Real X
 
   MyType = V3d_SPOT ;
   MyLight = new Visual3d_Light(C,P,D,CN,A1,A2,AN) ;
-  // On fixe la cible, a partir de la position de la light et de la direction.
+  // The target is fixed, starting from the light position and the direction.
   T.SetCoord(X + D.X(), Y + D.Y(), Z + D.Z());
   MyTarget = T;
 } 
@@ -207,10 +207,10 @@ void V3d_SpotLight::Display( const Handle(V3d_View)& aView,
   V3d_TypeOfRepresentation Pres;
   V3d_TypeOfUpdate UpdSov;
 
-//  Creation d'une structure slight d'elements reperables (la position de
-//  la light, et le domaine d'eclairage represente par un cercle)
-//  Creation d'une structure snopick d'elements non reperables ( cible, meridien et 
-//  parallele ).
+//  Creation of a structure slight of markable elements (position of the
+//  light, and the domain of lighting represented by a circle)
+//  Creation of a structure snopick of non-markable elements (target, meridian and 
+//  parallel).// 
 
     Pres = TPres;
     Handle(V3d_Viewer) TheViewer = aView->Viewer();
@@ -249,7 +249,7 @@ void V3d_SpotLight::Display( const Handle(V3d_View)& aView,
   Y0 = MyTarget.Y();
   Z0 = MyTarget.Z();
   
-//Affichage de la position de la light.
+//Display of the position of the light.
 
   glight->SetPickId(1);
   this->Color(Quantity_TOC_RGB,R1,G1,B1);
@@ -259,7 +259,7 @@ void V3d_SpotLight::Display( const Handle(V3d_View)& aView,
   glight->SetPrimitivesAspect(Asp1);
   this->Symbol(glight,aView);
   
-//Affichage de la sphere de reperage (limite au cercle).
+// Display of the reference sphere (limited by circle).
 
   if (Pres == V3d_COMPLETE || Pres == V3d_PARTIAL) {
     
@@ -268,7 +268,7 @@ void V3d_SpotLight::Display( const Handle(V3d_View)& aView,
     gsphere->SetPickId(2);
     V3d::CircleInPlane(gsphere,X0,Y0,Z0,VX,VY,VZ,Rayon);
 
-//Affichage du rayon de la sphere (ligne + texte)
+// Display of the radius of the sphere (line + text)
 
     if (Pres == V3d_COMPLETE) {
       gradius->SetPickId(3);
@@ -287,14 +287,14 @@ void V3d_SpotLight::Display( const Handle(V3d_View)& aView,
       gradius->Text(ValOfRadius.ToCString(),PText,0.01);
     }
     
-//Affichage du meridien
+// Display of the meridian
 
     Quantity_Color Col2(Quantity_NOC_GREEN);
     Handle(Graphic3d_AspectLine3d) Asp2 = new Graphic3d_AspectLine3d
       (Col2,Aspect_TOL_SOLID,1.);
     gnopick->SetPrimitivesAspect(Asp2);
     
-//    Definition de l'axe du cercle
+//    Definition of the axis of the circle
     aView->Up(DXRef,DYRef,DZRef);
     this->Position(X,Y,Z);
     DXini = X-X0; DYini = Y-Y0; DZini = Z-Z0;
@@ -304,9 +304,9 @@ void V3d_SpotLight::Display( const Handle(V3d_View)& aView,
     
     V3d::CircleInPlane(gnopick,X0,Y0,Z0,VX,VY,VZ,Rayon);
 
-//    Affichage de la parallele
+//    Display of the parallel
 
-//    Definition de l'axe du cercle
+//    Definition of the axis of the circle
     aView->Proj(VX,VY,VZ);
     aView->Up(X1,Y1,Z1);
     DXRef = VY * Z1 - VZ * Y1;
index 6f911651afe3c91017d9965c33320fe142d4e792..7b8ee947c6875760e15e4861df7616dd63feef02 100755 (executable)
@@ -5,15 +5,6 @@
         File V3d_View_1.cxx :
 
 
-     HISTORIQUE DES MODIFICATIONS   :
-     --------------------------------
-       01-03-92 : NW,JPB,CAL ; Creation.
-       13-07-97 : FMN: Debug sur le ZClipping BUC40193
-                      Debug sur le ZCueing aussi
-       24-12-97 : FMN ; Suppression de GEOMLITE
-
-************************************************************************/
-
 /*----------------------------------------------------------------------*/
 /*
  * Includes
index d564b91f0c46441bfc1e87dc1619baf3ab53d9d3..ec4178f67937bd587f263d19f906445535f2e9a3 100755 (executable)
@@ -35,7 +35,7 @@
 #include <V3d_RectangularGrid.hxx>
 #include <V3d_CircularGrid.hxx>
 
-// Pour l'echo du point choisi
+// For the echo of the chosen point
 #include <Visual3d_TransientManager.hxx>
 
 /*----------------------------------------------------------------------*/
  * Constant
  */
 
-// en cas NO_TRACE_ECHO et de NO_TRACE_POINTS, dans V3d_View_4.cxx ET dans
-// V3d_View.cxx, virer MyGridEchoStructure et MyGridEchoGroup dans le cdl
+// in case NO_TRACE_ECHO and NO_TRACE_POINTS, in V3d_View_4.cxx and 
+// V3d_View.cxx, suspend MyGridEchoStructure and MyGridEchoGroup in cdl
 #define TRACE_ECHO
 #define NO_TRACE_VALUES
 #define NO_TRACE_POINTS
 
-#define MYEPSILON1 0.0001              // Comparaison avec 0.0
-#define MYEPSILON2 Standard_PI / 180.  // Delta entre 2 angles
+#define MYEPSILON1 0.0001              // Comparison with 0.0
+#define MYEPSILON2 Standard_PI / 180.  // Delta between 2 angles
 
 #ifdef TRACE_POINTS
 #include <Graphic3d_AspectLine3d.hxx>
@@ -123,7 +123,7 @@ TColStd_Array2OfReal Trsf1 (1, 4, 1, 4);
        Trsf1 (1, 4) = xl,
        Trsf1 (2, 4) = yl,
        Trsf1 (3, 4) = zl;
-       // Transformation de changement de repere
+       // Transformation change of marker
        Trsf1 (1, 1) = xdx,
        Trsf1 (2, 1) = xdy,
        Trsf1 (3, 1) = xdz,
@@ -137,11 +137,11 @@ TColStd_Array2OfReal Trsf1 (1, 4, 1, 4);
 TColStd_Array2OfReal Trsf2 (1, 4, 1, 4);
        Trsf2 (4, 4) = 1.0;
        Trsf2 (4, 1) = Trsf2 (4, 2) = Trsf2 (4, 3) = 0.0;
-       // Translation de l'origine
+       // Translation of the origin
        Trsf2 (1, 4) = -MyGrid->XOrigin (),
        Trsf2 (2, 4) = -MyGrid->YOrigin (),
        Trsf2 (3, 4) = 0.0;
-       // Rotation Alpha autour de l'axe -Z
+       // Rotation Alpha around axis -Z
        Trsf2 (1, 1) = CosAlpha,
        Trsf2 (2, 1) = -SinAlpha,
        Trsf2 (3, 1) = 0.0,
@@ -156,7 +156,7 @@ Standard_Real valuetrsf;
 Standard_Real valueoldtrsf;
 Standard_Real valuenewtrsf;
 Standard_Integer i, j, k;
-       // Le calcul de produit de matrices
+       // Calculation of the product of matrices
        for (i=1; i<=4; i++)
            for (j=1; j<=4; j++) {
                MyTrsf (i, j) = 0.0;
@@ -228,8 +228,8 @@ gp_Dir GPN (X2, Y2, Z2);
        cout << "AVertex : " << X1 << ", " << Y1 << ", " << Z1 << endl;
 #endif
 
-       // Cas ou le plan de la grille et le plan de la vue
-       // sont perpendiculaires a MYEPSILON2 radians pres
+       // Casw when the plane of the grid and the plane of the view
+       // are perpendicular to MYEPSILON2 close radians
        if (Abs (VPN.Angle (GPN) - Standard_PI / 2.) < MYEPSILON2) {
                NewPoint.SetCoord (X1, Y1, Z1);
 #ifdef TRACE_POINTS
@@ -288,7 +288,7 @@ Standard_Real XAp, YAp;
 Standard_Real XBp, YBp;
 
        X1 = XO, Y1 = YO, Z1 = 0.0;
-       // MyTrsf * Point pour se retrouver sur le plan de la grille 3D
+       // MyTrsf * Point to return to the plane of 3D grid
        P1.SetCoord (X1, Y1, Z1);
        CurPoint = V3d_View::TrsPoint (P1, MyTrsf);
        CurPoint.Coord (X2, Y2, Z2);
@@ -311,7 +311,7 @@ Handle(Aspect_RectangularGrid) theGrid =
                XS = theGrid->XStep (), YS = theGrid->YStep ();
 
                X1 = XO + XS, Y1 = YO, Z1 = 0.0;
-               // MyTrsf * Point pour se retrouver sur le plan de la grille 3D
+               // MyTrsf *  Point to return to the plane of 3D grid
                P1.SetCoord (X1, Y1, Z1);
                CurPoint = V3d_View::TrsPoint (P1, MyTrsf);
                CurPoint.Coord (X2, Y2, Z2);
@@ -323,7 +323,7 @@ Handle(Aspect_RectangularGrid) theGrid =
 #endif
 
                X1 = XO, Y1 = YO + YS, Z1 = 0.0;
-               // MyTrsf * Point pour se retrouver sur le plan de la grille 3D
+               // MyTrsf *  Point to return to the plane of 3D grid
                P1.SetCoord (X1, Y1, Z1);
                CurPoint = V3d_View::TrsPoint (P1, MyTrsf);
                CurPoint.Coord (X2, Y2, Z2);
@@ -352,20 +352,19 @@ Standard_Real Determin = XAp*YBp - XBp*YAp;
                        Standard_Real (Standard_Integer (Abs (Y1)+0.5)) * YS :
                        - Standard_Real (Standard_Integer (Abs (Y1)+0.5)) * YS);
 #ifdef TRACE_VALUES
-                       cout << "Point choisi : " << X1 << ", " << Y1 << endl;
+                       cout << "Chosen point : " << X1 << ", " << Y1 << endl;
 #endif
-                       // MyTrsf * Point pour se retrouver sur le plan
-                       // de la grille 3D
+                       // MyTrsf *  Point to return to the plane of 3D grid
                        P1.SetCoord (X1, Y1, Z1);
                        CurPoint = V3d_View::TrsPoint (P1, MyTrsf);
                        CurPoint.Coord (X2, Y2, Z2);
                }
                else {
 cout << "*****************" << endl;
-cout << "Determinant nul !" << endl;
+cout << "Zero Determinant!" << endl;
 cout << "*****************" << endl;
 #ifdef TRACE_VALUES
-                       cout << "Determinant nul !" << endl;
+                       cout << "Zero Determinant !" << endl;
 #endif
                        AVertex.Coord (X2, Y2, Z2);
                        CurPoint.SetCoord (X2, Y2, Z2);
@@ -392,8 +391,7 @@ gp_Dir2d OP (XPp, YPp);
                        X1 = XO + Cos (Alpha * i) * RS,
                        Y1 = YO + Sin (Alpha * i) * RS,
                        Z1 = 0.0;
-                       // MyTrsf * Point pour se retrouver sur le plan
-                       // de la grille 3D
+                       // MyTrsf * Point to return to the plane of 3D grid
                        P1.SetCoord (X1, Y1, Z1);
                        CurPoint = V3d_View::TrsPoint (P1, MyTrsf);
                        CurPoint.Coord (X2, Y2, Z2);
@@ -406,7 +404,7 @@ gp_Dir2d OP (XPp, YPp);
                                AngleCur = Angle;
                                XCurp = XAp, YCurp = YAp;
 #ifdef TRACE_VALUES
-                               cout << "Angle entre OP et O" << CAR [i-1]
+                               cout << "Angle between OP and O" << CAR [i-1]
                                     << " : " << Angle << endl;
 #endif
                        }
@@ -418,11 +416,11 @@ gp_Dir2d OP (XPp, YPp);
 
 Standard_Real DistOCur = Sqrt (XCurp*XCurp + YCurp*YCurp);
 
-               // Determination du cercle de la grille le plus proche de P
+               // Determination of the circle of the grid closest to P
 Standard_Integer N = Standard_Integer (DistOP / DistOCur + 0.5);
 Standard_Real Radius = N * RS;
 #ifdef TRACE_VALUES
-               cout << "Cercle : " << N << " Radius : " << Radius << endl;
+               cout << "Circle : " << N << " Radius : " << Radius << endl;
 #endif
 
                X1 = Cos (Alpha * ICur) * Radius,
@@ -430,9 +428,9 @@ Standard_Real Radius = N * RS;
                Z1 = 0.0;
 
 #ifdef TRACE_VALUES
-               cout << "Point choisi : " << X1 << ", " << Y1 << endl;
+               cout << "Chosen Point : " << X1 << ", " << Y1 << endl;
 #endif
-               // MyTrsf * Point pour se retrouver sur le plan de la grille 3D
+               // MyTrsf * Point to return to the plane of 3D grid
                P1.SetCoord (X1, Y1, Z1);
                CurPoint = V3d_View::TrsPoint (P1, MyTrsf);
                CurPoint.Coord (X2, Y2, Z2);
index 66a2191820827268dc381f2486ff00a35af0268d..e586610c2a1888a83b09d9776706d06a825583d5 100755 (executable)
@@ -1,24 +1,19 @@
 /***********************************************************************
 
-     FONCTION :
+     FUNCTION :
      ----------
-        Classe Visual3d_ContextView.cxx :
+        Class Visual3d_ContextView.cxx :
 
-       Declaration des variables specifiques aux contextes des vues.
+       Declaration of variables specific to view contexts.
 
-       Un contexte de vues est defini par :
-               - l'activite de l'aliasing
-               - l'activite du depth-cueing
-               - l'activite du Z clipping
-               - l'activite des sources lumineuses definies
-               - le type de visualisation demande
-               - le modele de shading si besoin est
+       A view context is defined by :
+               - the activity of aliasing
+               - the activity of depth-cueing
+               - the activity of Z clipping
+               - the activity of defined light sources
+               - the required type of visualization
+               - the model of shading if required
 
-     HISTORIQUE DES MODIFICATIONS   :
-     --------------------------------
-      Mars 1992 : NW,JPB,CAL ; Creation.
-      01-08-97  : PCT ; Ajout support texture mapping
-      01-10-97  : CAL ; Retrait de DownCast.
 
 ************************************************************************/
 
@@ -244,13 +239,13 @@ void Visual3d_ContextView::SetLightOn (const Handle(Visual3d_Light)& ALight) {
 Standard_Integer LengthL       = MyLights.Length ();
 Standard_Integer indexL = 0;
 
-       // Recherche de la light <ALight> dans la
-       // sequence des lights deja allumees
+       // Find light <ALight> in 
+       // the sequence of already active lights
        for (Standard_Integer i=1; i<=LengthL && indexL==0; i++)
                if ((void *) (MyLights.Value (i)) ==
                    (void *) (ALight.operator->())) indexL = i;
 
-       // Il s'agit d'une nouvelle light a activer
+       // This is the activation of a new light
        if (indexL == 0)
                MyLights.Append ((void *) ALight.operator->());
 
@@ -261,13 +256,13 @@ void Visual3d_ContextView::SetLightOff (const Handle(Visual3d_Light)& ALight) {
 Standard_Integer LengthL       = MyLights.Length ();
 Standard_Integer indexL = 0;
 
-       // Recherche de la light <ALight> dans la
-       // sequence des lights deja allumees
+       // Find light <ALight> in 
+       // the sequence of already active lights
        for (Standard_Integer i=1; i<=LengthL && indexL==0; i++)
                if ((void *) (MyLights.Value (i)) ==
                    (void *) (ALight.operator->())) indexL = i;
 
-       // Il s'agit d'une light allumee
+       // This is the activation of a new light
        if (indexL != 0) MyLights.Remove (indexL);
 
 }
@@ -303,13 +298,13 @@ void Visual3d_ContextView::SetClipPlaneOn (const Handle(Visual3d_ClipPlane)& ACl
 Standard_Integer LengthC       = MyClipPlanes.Length ();
 Standard_Integer indexC                = 0;
 
-       // Recherche du plan <AClipPlane> dans la
-       // sequence des plans deja actives
+       // Find plane <AClipPlane> in the
+       // sequence of already active planes 
        for (Standard_Integer i=1; i<=LengthC && indexC==0; i++)
                if ((void *) (MyClipPlanes.Value (i)) ==
                    (void *) (AClipPlane.operator->())) indexC = i;
 
-       // Il s'agit d'un nouveau plan a activer
+       // This is the activation of a new plane
        if (indexC == 0)
                MyClipPlanes.Append ((void *) AClipPlane.operator->());
 
@@ -320,13 +315,13 @@ void Visual3d_ContextView::SetClipPlaneOff (const Handle(Visual3d_ClipPlane)& AC
 Standard_Integer LengthC       = MyClipPlanes.Length ();
 Standard_Integer indexC                = 0;
 
-       // Recherche du plan <AClipPlane> dans la
-       // sequence des plans deja actives
+       // Find plane <AClipPlane> in the
+       // sequence of already active planes 
        for (Standard_Integer i=1; i<=LengthC && indexC==0; i++)
                if ((void *) (MyClipPlanes.Value (i)) ==
                    (void *) (AClipPlane.operator->())) indexC = i;
 
-       // Il s'agit d'un plane actif
+       // This is an active plane
        if (indexC != 0) MyClipPlanes.Remove (indexC);
 
 }
index 26986cfea09157ff3623a33285a7f95301ed0b6e..7e0915b549cfed24d895027c78c0c7c803727743 100755 (executable)
@@ -1,46 +1,34 @@
 /***********************************************************************
 
-     FONCTION :
+     FUNCTION :
      ----------
         File Visual3d_Light :
 
-       Declaration des variables specifiques aux sources lumineuses
+       Declaration of variables specific to light sources
 
-     REMARQUES:
+     NOTES:
      ----------
 
-       Une source lumineuse est definie par :
-       - son type
-       - sa couleur
-       - les facteurs d'attenuation (positionnelle et spot uniquement )
-       - son angle ( pour spot uniquement )
-       - sa concentration ( pour spot uniquement )
-       - sa direction ( directionnelle et spot uniquement )
-       - sa position ( positionnelle et spot uniquement )
+       A light source is defined by :
+       - type
+       - color
+       - reduction factors  ( for positional and spot only )
+       - its angle ( for spot only )
+       - its concentration ( for spot only )
+       - its direction ( directional and spot only )
+       - its position ( positional and spot only )
 
-       Elle est active dans une vue, dans le contexte associe.
+       It is active in a view, in the associated context.
 
      ATTENTION:
      ----------
 
-       - AngleCone est exprime en radian [Pex] alors que OpenGl travaille
-       en degres. Les limites pour Pex sont [0,PI] alors que pour OpenGl
-       ce sont [0,90].
-       - On utilise 2 facteurs d'attenuation avec Pex alors qu'OpenGl en utilise 3.
-       - Les facteurs d'attenuation sont limites entre [0.0,1.0] pour Pex alors 
-       que pour OpenGl la limite est [0.0,n] 
-       - La concentration varie entre [0.,1.0] pour Pex et [0,128] pour OpenGl.        
-
-     HISTORIQUE DES MODIFICATIONS   :
-     --------------------------------
-       01-03-92 : NW,JPB,CAL ; Creation.
-       19-12-96 : FMN ; PRO6793: 
-               Modification des bornes pour AngleCone [0,PI/2]
-               Ajout commentaires dans le cdl.
-               Ajout tests sur les bornes.
-       10-07-97 : PCT
-                Ajout des headlights
-       23-02-98 : FMN ; Remplacement PI par Standard_PI
+       - AngleCone is given in radian [Pex] while OpenGl works in 
+       degreees. The limits for Pex are [0,PI] while for OpenGl this is [0,90].
+       - Two reduction factors are used with Pex while OpenGl uses three.
+       - The ereduction factors have range [0.0,1.0] for Pex and 
+       for OpenGl the range is [0.0,n] 
+       - The concentration varies from [0.,1.0] for Pex to [0,128] for OpenGl. 
 
 ************************************************************************/
 
index 22ab0f8252c0bea2867d1b15ca04323221db326b..95771393270ea7d6c1be0623cda4cc919aa098cc 100755 (executable)
@@ -7,12 +7,12 @@
 
 //-Version     
 
-//-Design      Declaration des variables specifiques a la classe
-//             decrivant un reperage.
+//-Design      Declaration of variables specific to the class
+//             describing marking.
 
-//-Warning     Un retour de reperage est defini par :
-//             - une sequence de (Elem_Num, Pick_Id, Structure)
-//             - une profondeur
+//-Warning     A return of marking is defined by :
+//             - sequence of (Elem_Num, Pick_Id, Structure)
+//             - depth
 
 //-References  
 
@@ -75,14 +75,14 @@ Visual3d_PickPath Result;
        switch (MyContext.Order ()) {
 
                case Visual3d_TOO_TOPFIRST :
-                       // MyPickPathSequence->First retourne le premier
-                       // PickPath qui se trouve dans la sequence.
+                       // MyPickPathSequence->First returns the first
+                       // PickPath found in the sequence.
                        Result  = MyPickPathSequence->Sequence().First ();
                break;
 
                case Visual3d_TOO_BOTTOMFIRST :
-                       // MyPickPathSequence->Last retourne le dernier
-                       // PickPath qui se trouve dans la sequence.
+                       // MyPickPathSequence->Last returns the last
+                       // PickPath found in the sequence.
                        Result  = MyPickPathSequence->Sequence().Last ();
                break;
 
@@ -100,14 +100,14 @@ Visual3d_PickPath Result;
        switch (MyContext.Order ()) {
 
                case Visual3d_TOO_TOPFIRST :
-                       // MyPickPathSequence->First retourne le premier
-                       // PickPath qui se trouve dans la sequence.
+                       // MyPickPathSequence->First returns the first
+                       // PickPath found in the sequence.
                        Result  = MyPickPathSequence->Sequence().First ();
                break;
 
                case Visual3d_TOO_BOTTOMFIRST :
-                       // MyPickPathSequence->Last retourne le dernier
-                       // PickPath qui se trouve dans la sequence.
+                       // MyPickPathSequence->Last returns the last
+                       // PickPath found in the sequence.
                        Result  = MyPickPathSequence->Sequence().Last ();
                break;
 
@@ -125,14 +125,14 @@ Visual3d_PickPath Result;
        switch (MyContext.Order ()) {
 
                case Visual3d_TOO_TOPFIRST :
-                       // MyPickPathSequence->First retourne le premier
-                       // PickPath qui se trouve dans la sequence.
+                       // MyPickPathSequence->First returns the first
+                       // PickPath found in the sequence.
                        Result  = MyPickPathSequence->Sequence().First ();
                break;
 
                case Visual3d_TOO_BOTTOMFIRST :
-                       // MyPickPathSequence->Last retourne le dernier
-                       // PickPath qui se trouve dans la sequence.
+                       // MyPickPathSequence->Last returns the last
+                       // PickPath found in the sequence.
                        Result  = MyPickPathSequence->Sequence().Last ();
                break;
 
index 115f80b169816bddf9546ce1827b9b6d1475eec7..d4d283d39a56f95113e45a2186a6ae8bffc5cfbe 100755 (executable)
@@ -7,11 +7,11 @@
 
 //-Version     
 
-//-Design      Declaration des variables specifiques a la classe
-//             decrivant un reperage.
+//-Design      Declaration of variables specific to the classe
+//             describing a marking.
 
-//-Warning     Un reperage est defini par :
-//             - un vecteur (Elem_Num, Pick_Id, Structure)
+//-Warning     Marking is defined by :
+//             - vector (Elem_Num, Pick_Id, Structure)
 
 //-References  
 
index a7c61cc5331e10464acd1ce14f8f5c193defdcb8..d00d0a9fa7a3f6a0da57e15209163908fd191440 100755 (executable)
@@ -5,13 +5,13 @@
         Classe Visual3d_View.cxx :
 
 
-        Declaration des variables specifiques aux vues.
+        Declaration of variables specific to views.
 
-        Une vue est definie par :
-                - un ViewManager
-                - un ContextView
-                - un ViewMapping
-                - une ViewOrientation
+        A view is defined by :
+                -  ViewManager
+                -  ContextView
+                -  ViewMapping
+                -  ViewOrientation
 
      HISTORIQUE DES MODIFICATIONS   :
      --------------------------------
@@ -479,7 +479,11 @@ const Handle(WNT_Window) theWindow = *(Handle(WNT_Window) *) &AWindow;
 #ifdef RIC120302
         MyCView.DefWindow.XParentWindow = ( HWND )(theWindow->HParentWindow());
 #endif
-        wd = ( WNT_WindowData* )GetWindowLongPtr (( HWND )(theWindow->HWindow()), GWLP_USERDATA);
+#ifndef _WIN64
+        wd = ( WNT_WindowData* )GetWindowLong (( HWND )(theWindow->HWindow()), GWL_USERDATA);
+#else
+        wd = ( WNT_WindowData* )GetWindowLong (( HWND )(theWindow->HWindow()), GWLP_USERDATA);
+#endif
         wd -> WNT_WDriver_Ptr = ( void* )this;
         wd -> WNT_VMgr        = ( void* )MyPtrViewManager;
 #endif  /* WNT */
@@ -504,26 +508,24 @@ const Handle(WNT_Window) theWindow = *(Handle(WNT_Window) *) &AWindow;
         MyGradientBackground = MyWindow->GradientBackground();
         SetGradientBackground(MyGradientBackground,1);
 
-        Standard_Boolean AWait = Standard_False;        // => mise a jour immediate
+        Standard_Boolean AWait = Standard_False;        // => immediate update
         MyGraphicDriver->SetVisualisation (MyCView);
         MyGraphicDriver->AntiAliasing (MyCView, MyContext.AliasingIsOn ());
         MyGraphicDriver->DepthCueing (MyCView, MyContext.DepthCueingIsOn ());
         MyGraphicDriver->ClipLimit (MyCView, AWait);
         MyGraphicDriver->Environment(MyCView);
 
-        // Mise a jour des plans de model clipping
+        // Update planses of model clipping
         UpdatePlanes ();
 
-        // Mise a jour des sources lumineuses
+        // Update light sources 
         UpdateLights ();
 
         /*
-         * Association view-window n'entraine pas le display
-         * des structures qui peuvent etre affichees dans la
-         * nouvelle vue.
-         * En effet, l'association vue-fenetre est faite, mais
-         * l'affichage ne sera realise que lorsque la vue sera
-         * activee (Activate).
+         * Association view-window does not cause the display
+         * of structures that can be displayed in the new view.
+         * In fact, association view-window is done, but the
+         * display is produced only if the view is activated (Activate).
          */
 
         SetRatio ();
@@ -672,14 +674,14 @@ Standard_Real Rap;
 
             MyViewMapping.SetWindowLimit(Umin,Vmin,Umax,Vmax) ;
 
-            // Mise a jour avant le SetViewMapping.
+            // Update before SetViewMapping.
 
             MyCView.DefWindow.dx        = float( Dxw );
             MyCView.DefWindow.dy        = float( Dyw );
 
             SetViewMapping (MyViewMapping);
 //          SetViewMappingDefault ();
-            // FMN+ Mise a jout Ratio pour le MyViewMappingReset
+            // FMN+ Update Ratio for MyViewMappingReset
 
             MyViewMappingReset.WindowLimit(Umin,Vmin,Umax,Vmax) ;
             Xc  = (Umin + Umax)/2. ; Yc = (Vmin + Vmax)/2. ;
@@ -717,16 +719,16 @@ Standard_Real Rap;
 
             MyViewMappingReset.SetWindowLimit(Umin,Vmin,Umax,Vmax) ;
 
-            // FMN- Mise a jout Ratio pour le MyViewMappingReset
+            // FMN- Update Ratio for MyViewMappingReset
 
             MyGraphicDriver->RatioWindow (MyCView);
         }
 
-        // On force a recalculer les 2 matrices.
+        // Force recalculation of 2 matrices.
         //
-        // La vue courante peut servir a reconstruire une vue copie
-        // qui est elle meme. Grace au SetWindow et au SetRatio on
-        // impose le recalcul des matrices de cette nouvelle vue.
+        // The current view can help to reconstruct a copied view
+        // that is itself. Owing to SetWindow and SetRatio the
+        // recalculation of matrices of this new view is imposed.
         MyMatOfMapIsEvaluated   = Standard_False;
         MyMatOfOriIsEvaluated   = Standard_False;
 
@@ -762,7 +764,7 @@ CALL_DEF_LIGHT *lights=NULL;
 
         if (MyCView.Context.NbActiveLight > 0) {
 
-                // Allocation dynamique
+                // Dynamic Allocation
                 lights  = new CALL_DEF_LIGHT [MyCView.Context.NbActiveLight];
 
                 MyCView.Context.ActiveLight     = lights;
@@ -778,7 +780,7 @@ Graphic3d_Vertex LightPosition;
 Graphic3d_Vector LightDirection;
 Visual3d_TypeOfLightSource LightType=Visual3d_TOLS_AMBIENT;
 
-                // Parcours des sources lumineuses
+                // Parcing of light sources
                 for (j=0; j<MyCView.Context.NbActiveLight; j++) {
                         LightType       = (MyContext.ActivatedLight (j+1))->LightType ();
 
@@ -869,12 +871,12 @@ Visual3d_TypeOfLightSource LightType=Visual3d_TOLS_AMBIENT;
 #ifdef BUC60570
   }
 #endif
-        // gestion des sources lumineuses
+        // management of light sources
         if (! IsDeleted ())
                 if (IsDefined ())
                         MyGraphicDriver->SetLight (MyCView);
 
-        // Desallocation dynamique
+        // Dynamic allocation
         if (MyCView.Context.NbActiveLight > 0) delete [] lights;
 
 }
@@ -890,7 +892,7 @@ CALL_DEF_PLANE *planes=NULL;
 
         if (MyCView.Context.NbActivePlane > 0) {
 
-                // Allocation dynamique
+                // Dynamic Allocation 
 #ifdef GER61454 //Keep the plane address for the next Update !
                 if( !MyCView.Context.ActivePlane )
                    MyCView.Context.ActivePlane = new CALL_DEF_PLANE [j];
@@ -902,7 +904,7 @@ CALL_DEF_PLANE *planes=NULL;
 #endif
 Standard_Real A, B, C, D;
 
-                // Parcours des plans de clipping
+                // Parcing of clipping planes
                 for (j=0; j<MyCView.Context.NbActivePlane; j++) {
 
                         planes[j].WsId          = MyCView.ViewId;
@@ -921,12 +923,12 @@ Standard_Real A, B, C, D;
 
         }
 
-        // gestion des plans de model clipping
+        // Management of planes of clipping model
         if (! IsDeleted ())
                 if (IsDefined ())
                         MyGraphicDriver->SetPlane (MyCView);
 
-        // Desallocation dynamique
+        // Dynamic allocation
 #ifdef GER61454
         if ( MyCView.Context.ActivePlane && (MyCView.Context.NbActivePlane == 0)
  ) {
@@ -946,10 +948,10 @@ void Visual3d_View::SetBackground (const Aspect_Background& ABack) {
         if (! IsDefined ())
                 Visual3d_ViewDefinitionError::Raise ("Window not defined");
 
-        // A ce niveau, seule la GL peut mettre a jour le background.
-        // Il ne faut pas appeler MyWindow->SetBackground (ABack); car
-        // cette methode lance une mise a jour du fond de fenetre par X
-        // (si le fenetrage est X bien-sur)
+        // At this level, only GL can update the background.
+        // It is not necessary to call MyWindow->SetBackground (ABack); as
+        // this method starts update of window background by X
+        // (if the windowing is X)
 
         Standard_Real R, G, B;
         MyBackground    = ABack;
@@ -1058,7 +1060,7 @@ Standard_Integer lr, ur, lc, uc;
 Standard_Integer i, j;
 
         // Assign the new transformation in an array [0..3][0..3]
-        // Evite des problemes si le user a defini sa matrice [1..4][1..4]
+        // Avoid problems if the has defined a matrice [1..4][1..4]
         //                                                 ou [3..6][-1..2] !!
         lr      = AMatrix.LowerRow ();
         ur      = AMatrix.UpperRow ();
@@ -1115,7 +1117,7 @@ void Visual3d_View::SetViewOrientation (const Visual3d_ViewOrientation& VO) {
 
 Standard_Real X, Y, Z;
 
-        // Tests sur la modification des parametres.
+        // Tests on modification of parameters.
 Standard_Boolean VUPIsModified  = Standard_False;
 Standard_Boolean VRPIsModified  = Standard_False;
 Standard_Boolean VRUIsModified  = Standard_False;
@@ -1184,7 +1186,7 @@ cout << "Visual3d_View::SetViewOrientation\n";
                 cout << "no modification\n" << flush;
 #endif
 
-        // Mise en route que si l'un des parametres est modifie
+        // restart if one of parameters is modified
         if (VUPIsModified || VRPIsModified || VRUIsModified || ScaleIsModified || CustomIsModified) {
 
          if (VUPIsModified || VRPIsModified || VRUIsModified || CustomIsModified) {
@@ -1194,7 +1196,7 @@ cout << "Visual3d_View::SetViewOrientation\n";
 
                 if (! IsDefined ()) return;
 
-Standard_Boolean AWait = Standard_False;        // => mise a jour immediate
+Standard_Boolean AWait = Standard_False;        // => immediate update
                 MyGraphicDriver->ViewOrientation (MyCView, AWait);
 
                 Compute ();
@@ -1230,7 +1232,7 @@ void Visual3d_View::ViewOrientationReset () {
 
 Standard_Real X, Y, Z;
 
-        // Tests sur la modification des parametres.
+        // Tests on modification of parameters.
 Standard_Boolean VUPIsModified  = Standard_False;
 Standard_Boolean VRPIsModified  = Standard_False;
 Standard_Boolean VRUIsModified  = Standard_False;
@@ -1299,7 +1301,7 @@ else
 cout << "no modification\n" << flush;
 #endif
 
-        // Mise en route que si l'un des parametres est modifie
+        // Restart if one of parameters is modified
         if (VUPIsModified || VRPIsModified || VRUIsModified || CustomIsModified) {
 
          if (VUPIsModified || VRPIsModified || VRUIsModified || CustomIsModified) {
@@ -1309,7 +1311,7 @@ cout << "no modification\n" << flush;
 
                 if (! IsDefined ()) return;
 
-Standard_Boolean AWait = Standard_False;        // => mise a jour immediate
+Standard_Boolean AWait = Standard_False;        // => immediate update
                 MyGraphicDriver->ViewOrientation (MyCView, AWait);
 
                 Compute ();
@@ -1362,7 +1364,7 @@ Standard_Real um, vm, uM, vM;
 
         if (! IsDefined ()) return;
 
-Standard_Boolean AWait = Standard_False;        // => mise a jour immediate
+Standard_Boolean AWait = Standard_False;        // => immediate update
         MyGraphicDriver->ViewMapping (MyCView, AWait);
 
         // Passage Parallele/Perspective
@@ -1431,7 +1433,7 @@ Standard_Real um, vm, uM, vM;
 
         if (! IsDefined ()) return;
 
-Standard_Boolean AWait = Standard_False;        // => mise a jour immediate
+Standard_Boolean AWait = Standard_False;        // => immediate update
         MyGraphicDriver->ViewMapping (MyCView, AWait);
 
         if (MyViewManager->UpdateMode () == Aspect_TOU_ASAP) Update ();
@@ -1445,24 +1447,23 @@ void Visual3d_View::SetContext (const Visual3d_ContextView& CTX) {
 Visual3d_TypeOfVisualization OldVisualMode;
 Visual3d_TypeOfVisualization NewVisualMode;
 
-        // Pour gerer l'affichage uniquement en cas de
-        // changement de mode de visualisation.
+        // To manage display only in case of 
+        // change of visualisation mode.
         OldVisualMode   = MyContext.Visualization ();
         NewVisualMode   = CTX.Visualization ();
 
 Visual3d_TypeOfModel OldModel;
 Visual3d_TypeOfModel NewModel;
 
-        // Pour gerer le changement de visualisation uniquement
-        // en cas de changement de mode de visualisation ou de
-        // type de shading.
+        // To manage change of visualisation only in case 
+        // of change of mode of visualisation or of type of shading.
         OldModel        = MyContext.Model ();
         NewModel        = CTX.Model ();
 
 Standard_Boolean OldAliasingMode;
 Standard_Boolean NewAliasingMode;
 
-        // Pour gerer l'antialiasing uniquement en cas de changement.
+        // To manage antialiasing only in case of change.
         OldAliasingMode = MyContext.AliasingIsOn ();
         NewAliasingMode = CTX.AliasingIsOn ();
 
@@ -1474,7 +1475,7 @@ Standard_Real NewDepthCueingFrontPlane;
 Standard_Real OldDepthCueingBackPlane;
 Standard_Real NewDepthCueingBackPlane;
 
-        // Pour gerer le depth cueing uniquement en cas de changement.
+        // To manage the depth cueing only in case of change.
         OldDepthCueingMode              = MyContext.DepthCueingIsOn ();
         NewDepthCueingMode              = CTX.DepthCueingIsOn ();
 
@@ -1493,7 +1494,7 @@ Standard_Real NewZClippingFrontPlane;
 Standard_Real OldZClippingBackPlane;
 Standard_Real NewZClippingBackPlane;
 
-        // Pour gerer le Zclipping uniquement en cas de changement.
+        // To manage the Zclipping only in case of change.
         OldFrontZClippingMode   = MyContext.FrontZClippingIsOn ();
         NewFrontZClippingMode   = CTX.FrontZClippingIsOn ();
         OldBackZClippingMode    = MyContext.BackZClippingIsOn ();
@@ -1525,17 +1526,17 @@ Visual3d_TypeOfSurfaceDetail NewSurfaceDetail;
 
         UpdateView ();
 
-Standard_Boolean AWait = Standard_False;        // => mise a jour immediate
+Standard_Boolean AWait = Standard_False;        // => immediate update
         if (IsDefined ()) {
-                // gestion des modes de visualisation et des types de shading.
+                // management of visualization modes and types of shading.
                 if ((OldVisualMode != NewVisualMode) || (OldModel != NewModel))
                         MyGraphicDriver->SetVisualisation (MyCView);
 
-                // gestion de l'antialiasing.
+                // management of antialiasing.
                 if (OldAliasingMode != NewAliasingMode)
                 MyGraphicDriver->AntiAliasing (MyCView, NewAliasingMode);
 
-                // gestion du depth_cueing.
+                // management of depth_cueing.
                 if ((OldDepthCueingMode != NewDepthCueingMode) ||
                     (OldDepthCueingFrontPlane != NewDepthCueingFrontPlane) ||
                     (OldDepthCueingBackPlane != NewDepthCueingBackPlane)) {
@@ -1549,7 +1550,7 @@ Standard_Boolean AWait = Standard_False;        // => mise a jour immediate
                                 (MyCView, NewDepthCueingMode);
                 }
 
-                // gestion du Zclipping
+                // management of Zclipping
                 if ((OldFrontZClippingMode != NewFrontZClippingMode) ||
                     (OldBackZClippingMode != NewBackZClippingMode) ||
                     (OldZClippingFrontPlane != NewZClippingFrontPlane) ||
@@ -1563,27 +1564,27 @@ Standard_Boolean AWait = Standard_False;        // => mise a jour immediate
                         MyGraphicDriver->ClipLimit (MyCView, AWait);
                 }
 
-                // gestion des textures
+                // management of textures
                 if ( (OldTexEnvId != NewTexEnvId) ||
                      (OldSurfaceDetail != NewSurfaceDetail) )
                   MyGraphicDriver->Environment(MyCView);
 
-                // Mise a jour des plans de model clipping
+                // Update of planes of model clipping
                 UpdatePlanes ();
 
-                // Mise a jour des sources lumineuses
+                // Update of light sources 
                 UpdateLights ();
         }
 
         if (OldVisualMode != NewVisualMode) {
 
                 /*
-                 * Changement de contexte =>
-                 * Erase des structures qui ne peuvent pas etre affichees
-                 * avec le nouveau mode de visualisation.
-                 * On ne doit pas prevenir le ViewManager car
-                 * cette structure ne doit pas disparaitre de la
-                 * liste des structures affichees chez celui-ci.
+                 * Change of context =>
+                 * Remove structures that cannot be displayed
+                 * in the new visualisation mode.
+                 * It is not necessary to warn ViewManager as
+                 * this structure should not disappear from
+                 * the list of structures displayed in it.
                  */
 Graphic3d_MapIteratorOfMapOfStructure S1Iterator (MyDisplayedStructure);
 Visual3d_TypeOfAnswer Answer;
@@ -1594,32 +1595,30 @@ Graphic3d_SequenceOfStructure FooSequence;
 
                 while (S1Iterator.More ()) {
                         Answer  = AcceptDisplay (S1Iterator.Key ());
-                        // Si la structure n'est plus affichable dans le
-                        // nouveau contexte de la vue, on l'efface.
+                        // If the structure can't be displayed in the 
+                        // new context of the view, it is removed.
                         if ((Answer == Visual3d_TOA_NO) ||
                             (Answer == Visual3d_TOA_COMPUTE))
                                 //Erase (S1Iterator.Key (), Aspect_TOU_WAIT);
                                 FooSequence.Append (S1Iterator.Key ());
 
-                        // S1Iterator.Next () se positionne sur la
-                        // prochaine structure
+                        // S1Iterator.Next () is located on the next structure
                         S1Iterator.Next ();
                 }
 
 Standard_Integer Length = FooSequence.Length ();
-                // On efface les structures stockees
+                // The stored structures are removed
                 for (i=1; i<=Length; i++)
                         Erase (FooSequence.Value (i), Aspect_TOU_WAIT);
                 if (Length != 0) FooSequence.Clear ();
 
                 /*
-                 * Changement de contexte =>
-                 * Display des structures qui  peuvent etre affichees
-                 * avec le nouveau mode de visualisation.
-                 * On recupere toutes  les structures ayant le statut
-                 * Displayed dans le ViewManager et on l'affiche dans
-                 * la vue directement, si la structure n'est pas deja
-                 * affichee et si la vue l'accepte dans son contexte.
+                 * Change of context =>
+                 * Display structures that can be displayed 
+                 * with the new visualisation mode.
+                 * All structures with status Displayed are removed from the ViewManager 
+                 * and displayed in the view directly, if the structure is not already 
+                 * displayed and if the view accepts it in its context.
                  */
 
                 i       = MyViewManager->NumberOfDisplayedStructures ();
@@ -1631,8 +1630,8 @@ Standard_Integer Length = FooSequence.Length ();
                   Handle(Graphic3d_Structure) SG = it.Key();
                     if (! IsDisplayed (SG)) {
                       Answer = AcceptDisplay(SG);
-                        // Si la structure est affichable dans le
-                        // nouveau contexte de la vue, on l'affiche.
+                        // If the structure can be displayed in the 
+                        // new context of the view, it is displayed.
                         if ((Answer == Visual3d_TOA_YES) ||
                             (Answer == Visual3d_TOA_COMPUTE))
                             //Display (MyViewManager->DisplayedStructure (j),
@@ -1642,7 +1641,7 @@ Standard_Integer Length = FooSequence.Length ();
                 }
 
                 Length  = FooSequence.Length ();
-                // On affiche les structures stockees
+                // The stored structures are displayed
                 for (i=1; i<=Length; i++)
                         Display (FooSequence.Value (i), Aspect_TOU_WAIT);
                 if (Length != 0) FooSequence.Clear ();
@@ -1668,8 +1667,7 @@ void Visual3d_View::DisplayedStructures (Graphic3d_MapOfStructure& SG) const
   while (Iterator.More ()) {
     SG.Add (Iterator.Key ());
 
-    // Iterator.Next () se positionne sur la
-    // prochaine structure
+    // Iterator.Next () is located on the next structure
     Iterator.Next ();
   }
 
@@ -1692,13 +1690,12 @@ void Visual3d_View::Activate () {
                 MyCView.Active  = 1;
 
                 /*
-                 * Activation d'une nouvelle vue =>
-                 * Display des structures qui  peuvent etre affichees
-                 * dans cette nouvelle vue.
-                 * On recupere toutes  les structures ayant le statut
-                 * Displayed dans le ViewManager et on l'affiche dans
-                 * la vue directement, si la structure n'est pas deja
-                 * affichee et si la vue l'accepte dans son contexte.
+                 * Activation of a new view =>
+                 * Display structures that can be displayed in this new view.
+                 * All structures with status
+                 * Displayed in ViewManager are returned and displayed in 
+                 * the view directly, if the structure is not already 
+                 * displayed and if the view accepts it in its context.
                  */
 
                Visual3d_TypeOfAnswer Answer;
@@ -1710,8 +1707,8 @@ void Visual3d_View::Activate () {
                   Handle(Graphic3d_Structure) SG = it.Key();
                     if (! IsDisplayed (SG)) {
                       Answer    = AcceptDisplay(SG);
-                        // Si la structure est affichable dans le
-                        // nouveau contexte de la vue, on l'affiche.
+                        // If the structure can be displayed in the
+                        // new context of the view, it is displayed.
                         if ((Answer == Visual3d_TOA_YES) ||
                             (Answer == Visual3d_TOA_COMPUTE))
                         Display (SG,Aspect_TOU_WAIT);
@@ -1720,17 +1717,17 @@ void Visual3d_View::Activate () {
 
         }
 
-        // Si l'activation/desactivation du ZBuffer doit etre automatique
-        // en fonction de la presence de facettes ou pas
+        // If the activation/desactivation of ZBuffer should be automatic
+        // depending on the presence or absence of facets.
         if (MyViewManager->ZBufferAuto ()) {
 Standard_Boolean BContainsFacet = ContainsFacet ();
 Standard_Boolean BZBuffer       = ZBufferIsActivated ();
-                // Si la vue contient des facettes
-                // et si le ZBuffer n'est pas actif
+                // If the view contains facets
+                // and if ZBuffer is not active
                 if (BContainsFacet && ! BZBuffer)
                         SetZBufferActivity (1);
-                // Si la vue ne contient pas des facettes
-                // et si le ZBuffer est actif
+                // If the view does not contain facets
+                // and if ZBuffer is active
                 if (! BContainsFacet && BZBuffer)
                         SetZBufferActivity (0);
         }
@@ -1762,14 +1759,13 @@ void Visual3d_View::Deactivate () {
                 MyGraphicDriver->DeactivateView (MyCView);
 
                 /*
-                 * Deactivation d'une vue =>
-                 * Effacement des structures qui sont affichees
-                 * dans cette vue.
-                 * On recupere toute structure ayant le statut
-                 * Displayed dans le ViewManager et on l'efface dans
-                 * la vue directement, si la structure n'est pas deja
-                 * effacee et si la vue l'accepte dans son contexte.
-                 */
+                 * Deactivation of a view =>
+                 * Removal of structures displayed in this view.
+                 * All structures with status
+                 * Displayed in ViewManager are returned and removed from 
+                 * the view directly, if the structure is not already 
+                 * displayed and if the view accepts it in its context.
+                */
 
                Visual3d_TypeOfAnswer Answer;
                 Graphic3d_MapOfStructure Map;
@@ -1780,7 +1776,7 @@ void Visual3d_View::Deactivate () {
                   Handle(Graphic3d_Structure) SG = it.Key();
                     if (! IsDisplayed (SG)) {
                         Answer  = AcceptDisplay(SG);
-                        // Si la structure etait affichable, on l'efface.
+                        // If the structure was displayed it is removed.
                         if ((Answer == Visual3d_TOA_YES) ||
                             (Answer == Visual3d_TOA_COMPUTE))
                                 Erase (SG,Aspect_TOU_WAIT);
@@ -1789,7 +1785,7 @@ void Visual3d_View::Deactivate () {
 
                 if (MyViewManager->UpdateMode () == Aspect_TOU_ASAP) Update ();
 
-                // Plus d'action possible sur la vue maintenant
+                // No action currently possible in the view
                 MyCView.Active  = 0;
         }
 
@@ -1815,17 +1811,17 @@ void Visual3d_View::Redraw (const Handle(Visual3d_Layer)& AnUnderLayer, const Ha
         if (! MyWindow->IsMapped ()) return;
 
         // san - 14/04/2004 - set up Z buffer state before redrawing
-        // Si l'activation/desactivation du ZBuffer doit etre automatique
-        // en fonction de la presence de facettes ou pas
+       // If the activation/desactivation of ZBuffer should be automatic
+        // depending on the presence or absence of facets.
         if (MyViewManager->ZBufferAuto ()) {
                 Standard_Boolean BContainsFacet = ContainsFacet ();
                 Standard_Boolean BZBuffer       = ZBufferIsActivated ();
-                // Si la vue contient des facettes
-                // et si le ZBuffer n'est pas actif
+                // If the view contains facets
+                // and if ZBuffer is not active
                 if (BContainsFacet && ! BZBuffer)
                         SetZBufferActivity (1);
-                // Si la vue ne contient pas des facettes
-                // et si le ZBuffer est actif
+                // If the view contains only facets
+                // and if ZBuffer is active
                 if (! BContainsFacet && BZBuffer)
                         SetZBufferActivity (0);
         }
@@ -1848,17 +1844,17 @@ void Visual3d_View::Redraw (const Handle(Visual3d_Layer)& AnUnderLayer, const Ha
         if (! MyWindow->IsMapped ()) return;
 
         // san - 14/04/2004 - set up Z buffer state before redrawing
-        // Si l'activation/desactivation du ZBuffer doit etre automatique
-        // en fonction de la presence de facettes ou pas
+          // If activation/desactivation of ZBuffer should be automatic
+        // depending on the presence or absence of facets.
         if (MyViewManager->ZBufferAuto ()) {
         Standard_Boolean BContainsFacet = ContainsFacet ();
         Standard_Boolean BZBuffer       = ZBufferIsActivated ();
-                // Si la vue contient des facettes
-                // et si le ZBuffer n'est pas actif
+                // If the view contains facets
+                // and if ZBuffer is not active
                 if (BContainsFacet && ! BZBuffer)
                         SetZBufferActivity (1);
-                // Si la vue ne contient pas des facettes
-                // et si le ZBuffer est actif
+                // If the view contains only facets
+                // and if ZBuffer is active
                 if (! BContainsFacet && BZBuffer)
                         SetZBufferActivity (0);
         }
@@ -1886,17 +1882,17 @@ void Visual3d_View::Update (const Handle(Visual3d_Layer)& AnUnderLayer, const Ha
 
         if (! MyWindow->IsMapped ()) return;
 
-        // Si l'activation/desactivation du ZBuffer doit etre automatique
-        // en fonction de la presence de facettes ou pas
+        // If activation/desactivation of ZBuffer should be automatic
+        // depending on the presence or absence of facets.
         if (MyViewManager->ZBufferAuto ()) {
 Standard_Boolean BContainsFacet = ContainsFacet ();
 Standard_Boolean BZBuffer       = ZBufferIsActivated ();
-                // Si la vue contient des facettes
-                // et si le ZBuffer n'est pas actif
-                if (BContainsFacet && ! BZBuffer)
+                // If the view contains facets
+                // and if ZBuffer is not active
+                        if (BContainsFacet && ! BZBuffer)
                         SetZBufferActivity (1);
-                // Si la vue ne contient pas des facettes
-                // et si le ZBuffer est actif
+                   // If the view does not contain facets
+                // and if ZBuffer is active
                 if (! BContainsFacet && BZBuffer)
                         SetZBufferActivity (0);
         }
@@ -1917,16 +1913,16 @@ Aspect_CLayer2d UnderCLayer;
 
 Visual3d_TypeOfAnswer Visual3d_View::AcceptDisplay (const Handle(Graphic3d_Structure)& AStructure) const {
 
-// Recuperation type de visualisation de la vue
+// Return type of visualization of the view
 Visual3d_TypeOfVisualization ViewType = MyContext.Visualization ();
 
-// Recuperation type de visualisation de la structure
+// Return type of visualization of the structure
 Graphic3d_TypeOfStructure StructType = AStructure->Visual ();
 
 Visual3d_TypeOfAnswer Result = Visual3d_TOA_NO;
 
         if (StructType == Graphic3d_TOS_ALL)
-                // La structure accepte tout type de vue
+                // The structure accepts any type of view
                 Result  = Visual3d_TOA_YES;
         else {
                 if ((StructType == Graphic3d_TOS_SHADING)
@@ -2021,11 +2017,11 @@ void Visual3d_View::Clear (const Handle(Graphic3d_Structure)& AStructure, const
 Standard_Integer Index = IsComputed (AStructure);
         if (Index != 0) {
 #ifdef TRACE_CLEAR
-        cout << "La structure " << AStructure->Identification ()
-             << " calculee, dans la view "
-             << Identification () << ", par la structure "
+        cout << "Structure " << AStructure->Identification ()
+             << " calculated in the view "
+             << Identification () << ", by structure "
              << MyCOMPUTEDSequence.Value (Index)->Identification ()
-             << " est videe.\n";
+             << " is emptied.\n";
         cout << flush;
 #endif
                 MyCOMPUTEDSequence.Value (Index)->GraphicClear (WithDestruction);
@@ -2048,14 +2044,14 @@ Standard_Integer IndexD = IsComputed (ADaughter);
 
         if (IndexM != 0 && IndexD != 0) {
 #ifdef TRACE_CONNECT
-        cout << "La structure " << AMother->Identification ()
-             << " est connectee a la structure "
+        cout << "Structure " << AMother->Identification ()
+             << " is connected to structure "
              << ADaughter->Identification () << endl;
-        cout << "Ces structures sont calculees.\n";
-        cout << "Dans la view " << Identification ()
-             << "La structure "
+        cout << "These structures are calculated.\n";
+        cout << "In the view " << Identification ()
+             << "Structure "
              << MyCOMPUTEDSequence.Value (IndexM)->Identification ()
-             << " est connectee a la structure "
+             << " is connected to the structure "
              << MyCOMPUTEDSequence.Value (IndexD)->Identification ()
              << endl;
 #endif
@@ -2078,14 +2074,14 @@ Standard_Integer IndexD = IsComputed (ADaughter);
 
         if (IndexM != 0 && IndexD != 0) {
 #ifdef TRACE_CONNECT
-        cout << "La structure " << AMother->Identification ()
-             << " est disconnectee de la structure "
+        cout << "Structure " << AMother->Identification ()
+             << " is disconnected from the structure "
              << ADaughter->Identification () << endl;
-        cout << "Ces structures sont calculees.\n";
-        cout << "Dans la view " << Identification ()
-             << "La structure "
+        cout << "These structures are calculated.\n";
+        cout << "In the view " << Identification ()
+             << "Structure "
              << MyCOMPUTEDSequence.Value (IndexM)->Identification ()
-             << " est disconnectee de la structure "
+             << " is disconnected from the structure "
              << MyCOMPUTEDSequence.Value (IndexD)->Identification ()
              << endl;
 #endif
@@ -2106,12 +2102,12 @@ void Visual3d_View::Display (const Handle(Graphic3d_Structure)& AStructure, cons
         if (! IsDefined ()) return;
         if (! IsActive ()) return;
 
-        // Si Display sur une structure qui est dans la liste
-        // des structures calculees alors qu'elle n'est pas
-        // ou plus, du type calcule =>
-        // On l'enleve ainsi que l'ancienne compute associee
-        // Ceci arrive lorsque la hlhsr redevient du type
-        // non computed apres un SetVisual.
+        // If Display on a structure present in the list
+        // of calculated structures while it is not 
+        // or more, of calculated type =>
+        // - removes it as well as the associated old computed
+        // THis happens when hlhsr becomes again of type e
+        // non computed after SetVisual.
 Standard_Integer Index = IsComputed (AStructure);
 
         if ((Index != 0) && (AStructure->Visual () != Graphic3d_TOS_COMPUTED)) {
@@ -2153,7 +2149,7 @@ Standard_Integer Index = IsComputed (AStructure);
                 return;
         }
 
-        // Mode degenere actif
+        // Mode degenerated active
 #ifdef G003
         if (  !ComputedMode () || DegenerateModeIsOn ()  )
                                         Answer = Visual3d_TOA_YES;
@@ -2183,33 +2179,33 @@ Standard_Integer Index = IsComputed (AStructure);
             cout << "Index : " << Index << "\n" << flush;
 #endif
             if (Index != 0) {
-                // Deja calculee, mais la COMPUTED est-elle encore valide ?
+                // Already computed, is COMPUTED still valid?
 #ifdef TRACE_DISPLAY
                 if (MyCOMPUTEDSequence.Value (Index)->HLRValidation ()) {
-                  cout << "La structure "
+                  cout << "Structure "
                      << MyTOCOMPUTESequence.Value (Index)->Identification ()
-                     << " deja calculee, dans la view "
+                     << "already calculated, in the view "
                      << Identification () << ", par la structure "
                      << MyCOMPUTEDSequence.Value (Index)->Identification ()
-                     << "\n n'a pas a etre recalculee car HLR est valide\n";
+                     << "\n was not recalculated as HLR is valid\n";
                   cout << flush;
                 }
                 else {
-                  cout << "La structure "
+                  cout << "Structure "
                      << MyTOCOMPUTESequence.Value (Index)->Identification ()
-                     << " deja calculee, dans la view "
-                     << Identification () << ", par la structure "
+                     << " already calculated, in the view "
+                     << Identification () << ", by the structure "
                      << MyCOMPUTEDSequence.Value (Index)->Identification ()
-                     << "\n doit etre recalculee car HLR est invalide\n";
+                     << "\n should be recalculated as HLR is invalid\n";
                   cout << flush;
                 }
 #endif
 Standard_Integer OldStructId =
         MyCOMPUTEDSequence.Value (Index)->Identification ();
 
-                // Cas COMPUTED valide
+                // Case COMPUTED valide
                 if (MyCOMPUTEDSequence.Value (Index)->HLRValidation ()) {
-                    // a afficher
+                    // to be displayed
                     if (! IsDisplayed (AStructure)) {
                         MyDisplayedStructure.Add (AStructure);
                         MyGraphicDriver->DisplayStructure (
@@ -2222,18 +2218,18 @@ Standard_Integer OldStructId =
                     return;
                 }
 
-                // Cas COMPUTED invalide
+                // Case COMPUTED invalid
                 else {
-                    // Existe-t-il une autre representation valide ?
-                    // Recherche dans la sequence des structures deja calculees
-                    // 1/ D'une structure ayant le meme Owner que <AStructure>
-                    // 2/ Qui ne soit pas <AStructure>
-                    // 3/ Dont la COMPUTED soit valide
+                    // Is there another valid representation ?
+                    // Find in the sequence of already calculated structures
+                    // 1/ Structure having the same Owner as <AStructure>
+                    // 2/ That is not <AStructure>
+                    // 3/ The COMPUTED which of is valid
                     Standard_Integer NewIndex = HaveTheSameOwner (AStructure);
 
-                    // Cas COMPUTED invalide, AVEC une valide de remplacement
+                    // Case of COMPUTED invalid, WITH a valid of replacement
                     if (NewIndex != 0) {
-                        // a afficher
+                        // to be displayed
                         if (! IsDisplayed (AStructure)) {
                             MyCOMPUTEDSequence.SetValue
                                 (Index, MyCOMPUTEDSequence.Value (NewIndex));
@@ -2250,9 +2246,9 @@ Standard_Integer OldStructId =
                         return;
                     }
 
-                    // Cas COMPUTED invalide, SANS une valide de remplacement
+                    // Cas COMPUTED invalid, WITHOUT a valid of replacement
                     else {
-                        // On efface la COMPUTED si affichee
+                        // COMPUTED is removed if displayed 
                         if (IsDisplayed (AStructure))
                             MyGraphicDriver->EraseStructure (
                                 MyCView,
@@ -2302,7 +2298,7 @@ Standard_Integer ii, jj;
                      << "\n" << flush;
 #endif
 
-            // On ajoute la TOCOMPUTE et la COMPUTED associee aux sequences
+            // TOCOMPUTE and COMPUTED associated to sequences are added
             MyTOCOMPUTESequence.Append (AStructure);
             MyCOMPUTEDSequence.Append (TheStructure);
 
@@ -2313,7 +2309,7 @@ Standard_Integer ii, jj;
                      << "\n" << flush;
 #endif
 
-            // On enleve, si necessaire, les anciennes
+            // The previous are removed if necessary
             if (Index != 0) {
                 MyTOCOMPUTESequence.Remove (Index);
                 MyCOMPUTEDSequence.Remove (Index);
@@ -2326,10 +2322,10 @@ Standard_Integer ii, jj;
                      << "\n" << flush;
 #endif
 
-// Recuperation type de visualisation de la vue
+// Return type of visualisation of the view
 Visual3d_TypeOfVisualization ViewType = MyContext.Visualization ();
 
-// De quel type sera la computed ?
+// Of which type will be the computed ?
 Standard_Boolean ComputeWireframe = ((ViewType == Visual3d_TOV_WIREFRAME) &&
                 (AStructure->ComputeVisual () != Graphic3d_TOS_SHADING));
 
@@ -2352,19 +2348,19 @@ Standard_Boolean ComputeShading = ((ViewType == Visual3d_TOV_SHADING) &&
             }
 
 #ifdef TRACE_DISPLAY
-            cout << "La structure " << StructId
-                 << " dans la view " << Identification ()
-                 << " est calculee par la structure "
+            cout << "Structure " << StructId
+                 << " in the view " << Identification ()
+                 << " is calculated by the structure "
                  << TheStructure->Identification ();
             if (Answer == Visual3d_TOA_YES)
-                cout << " et affichee\n";
+                cout << " and displayed\n";
             else
-                cout << " mais pas affichee\n";
+                cout << " but not displayed\n";
             cout << flush;
 #endif
 
-            // On ne l'affiche que si la structure calculee
-            // est du bon type par rapport a celui de la vue.
+            // It is displayed only if the calculated structure 
+            // has a proper type corresponding to the one of the view.
             if (Answer != Visual3d_TOA_NO) {
                 if (! IsDisplayed (AStructure))
                         MyDisplayedStructure.Add (AStructure);
@@ -2392,12 +2388,12 @@ Standard_Integer StructId;
 
         if (IsDeleted ()) return;
 
-        // Pas de test sur window car la structure est affichee que
-        // si la window existe, donc un seul test suffit.
+        // No test on window as the structure is displayed only if 
+        // the window exists, so only one test is enough.
         if (IsDisplayed (AStructure)) {
 Visual3d_TypeOfAnswer Answer = AcceptDisplay (AStructure);
 
-                // Mode degenere actif
+                // Degenerated mode is active
 #ifdef G003
                 if (  !ComputedMode () || DegenerateModeIsOn ()  )
                                         Answer = Visual3d_TOA_YES;
@@ -2431,15 +2427,15 @@ Standard_Integer Index = IsComputed (AStructure);
                         MyCOMPUTEDSequence.Value (Index)->Identification ();
 #ifdef TRACE_COMP
         cout << "Structure " << AStructure->Identification ()
-             << " calculee, dans la view "
-             << Identification () << ", par la structure "
-             << StructId << " est effacee. \n";
+             << " calculated, in the view "
+             << Identification () << ", by the structure "
+             << StructId << " is removed. \n";
         cout << flush;
 #endif
                         MyGraphicDriver->EraseStructure
                                 (MyCView, *(Graphic3d_CStructure *)MyCOMPUTEDSequence.Value (Index)->CStructure ());
                     }
-                    // Le else est impossible
+                    // else is impossible
                 }
                 MyDisplayedStructure.Remove (AStructure);
                 if (AnUpdateMode == Aspect_TOU_ASAP) Update ();
@@ -2458,11 +2454,11 @@ void Visual3d_View::Highlight (const Handle(Graphic3d_Structure)& AStructure, co
 Standard_Integer Index = IsComputed (AStructure);
         if (Index != 0) {
 #ifdef TRACE_HIGH
-        cout << "La structure " << AStructure->Identification ()
-             << " calculee, dans la view "
-             << Identification () << ", par la structure "
+        cout << "Structure " << AStructure->Identification ()
+             << " calculated, in the view "
+             << Identification () << ", by the structure "
              << MyCOMPUTEDSequence.Value (Index)->Identification ()
-             << " passe en mode highlight.\n";
+             << " passes in highlight mode.\n";
         cout << flush;
 #endif
                 (MyCOMPUTEDSequence.Value (Index))->SetHighlightColor
@@ -2483,17 +2479,17 @@ void Visual3d_View::SetTransform (const Handle(Graphic3d_Structure)& AStructure,
 Standard_Integer Index = IsComputed (AStructure);
         if (Index != 0) {
 #ifdef TRACE_TRSF
-        cout << "La structure " << AStructure->Identification ()
-             << " calculee, dans la view "
-             << Identification () << ", par la structure "
+        cout << "The structure " << AStructure->Identification ()
+             << " calculated, in the view "
+             << Identification () << ", by the structure "
              << MyCOMPUTEDSequence.Value (Index)->Identification ()
-             << " est transformee.\n";
+             << " is transformed.\n";
         cout << flush;
 #endif
-                // Test un peu leger !
-                // On ne transmet la trsf que si c'est :
-                // une translation
-                // un scale
+                // Test is somewhat light !
+                // trsf is transferred only if it is :
+                // a translation
+                // a scale
                 if (ATrsf (0, 1) != 0. || ATrsf (0, 2) != 0.
                  || ATrsf (1, 0) != 0. || ATrsf (1, 2) != 0.
                  || ATrsf (2, 0) != 0. || ATrsf (2, 1) != 0.)
@@ -2515,11 +2511,11 @@ void Visual3d_View::UnHighlight (const Handle(Graphic3d_Structure)& AStructure)
 Standard_Integer Index = IsComputed (AStructure);
         if (Index != 0) {
 #ifdef TRACE_HIGH
-        cout << "La structure " << AStructure->Identification ()
-             << " calculee, dans la view "
-             << Identification () << ", par la structure "
+        cout << "Structure " << AStructure->Identification ()
+             << " calculated, in the view "
+             << Identification () << ", by the structure "
              << MyCOMPUTEDSequence.Value (Index)->Identification ()
-             << " passe en mode unhighlight.\n";
+             << " passes in unhighlight mode.\n";
         cout << flush;
 #endif
                 MyCOMPUTEDSequence.Value (Index)->GraphicUnHighlight ();
@@ -2541,13 +2537,13 @@ Standard_Integer Length = MyTOCOMPUTESequence.Length ();
                 if ((MyTOCOMPUTESequence.Value (i))->Identification ()
                         == StrId) Result        = i;
 #ifdef TRACE_ISCOMP
-        cout << "\nDans la vue " << Identification () << " la structure ";
+        cout << "\n In the view " << Identification () << " the structure ";
         if (Result != 0)
-                cout << StrId << " est calculee par "
+                cout << StrId << " is calculated by "
                      << MyCOMPUTEDSequence.Value (Result)->Identification ()
                      << "\n" << flush;
         else
-                cout << StrId << " n'est pas calculee\n" << flush;
+                cout << StrId << " is not calculated\n" << flush;
 #endif
 
 #ifdef TRACE_LENGTH
@@ -2586,13 +2582,13 @@ Graphic3d_MapIteratorOfMapOfStructure Iterator (MyDisplayedStructure);
 
         Standard_Integer i      = MyDisplayedStructure.Extent ();
 
-        // On s'arrette a la premiere structure qui est du type TOS_COMPUTED
+        // Stop at the first structure of type TOS_COMPUTED
         while (! Result && Iterator.More ()) {
                 Result  =
                 (((Iterator.Key ())->Visual ()) == Graphic3d_TOS_COMPUTED);
 
-                // Iterator.Next () se positionne sur la
-                // prochaine structure
+                // Iterator.Next () is located on the 
+                // next structure
                 Iterator.Next ();
         }
 
@@ -2615,7 +2611,7 @@ Standard_Boolean Result = Standard_False;
 
 Graphic3d_MapIteratorOfMapOfStructure Iterator (ASet);
 
-        // On s'arrette a la premiere structure qui contient une facette
+        // Stop at the first structure containing a facet
         for ( Iterator.Initialize (ASet);
               Iterator.More () && ! Result;
               Iterator.Next ())
@@ -2676,8 +2672,8 @@ void Visual3d_View::MinMaxValues (const Graphic3d_MapOfStructure& ASet, Standard
         if ( ZM != RealLast()  && ZM > ZMax )
           ZMax = ZM ;
       }
-      // Seules les structures non vides et non infinies
-      // sont prises en compte pour le calcul des MinMax
+      // Only non-empty and non-infinite structures 
+      // are taken into account for calculation of MinMax
       if (! (Iterator.Key ())->IsInfinite () &&
           ! (Iterator.Key ())->IsEmpty ()) {
             (Iterator.Key ())->MinMaxValues(Xm, Ym, Zm, XM, YM, ZM);
@@ -2695,8 +2691,8 @@ void Visual3d_View::MinMaxValues (const Graphic3d_MapOfStructure& ASet, Standard
         }
     }
 
-    // Les cas suivants ne sont pas debiles
-    // Par exemple si toutes les structures sont vides ou infinies
+    // The following cases are relevant
+    // For exemple if all structures are empty or infinite
     if (XMax < XMin) { Xm = XMin; XMin = XMax; XMax = Xm; }
     if (YMax < YMin) { Ym = YMin; YMin = YMax; YMax = Ym; }
     if (ZMax < ZMin) { Zm = ZMin; ZMin = ZMax; ZMax = Zm; }
@@ -2776,9 +2772,9 @@ void Visual3d_View::Projects (const Standard_Real AX, const Standard_Real AY, co
 math_Vector PtDC (0,3), PtWC (0,3);
 
 // RLE method:
-// Sinon utiliser un new sur une Visual3d_View (constructeur+destructeur)
-// car Projects est une const methode or MatrixOfOrientation et
-// MatrixOfMapping ne le sont pas.
+// Otherwise use new on Visual3d_View (constructor+destructor)
+// as Projects is a const method or MatrixOfOrientation and
+// MatrixOfMapping is not.
 Visual3d_View * const newthis = (Visual3d_View * const) this;
         newthis->MatrixOfOrientation ();
         newthis->MatrixOfMapping ();
@@ -2836,12 +2832,12 @@ Standard_Real um, vm, uM, vM;
         Standard_Real bpd       = MyViewMapping.BackPlaneDistance ();
 
         /*
-         * Les coordonnees de PtNPC sont decrites dans l'espace
+         * Coordinates of PtNPC are described in the space
          * [0-1]x[0-1]x[0-1].
-         * Il faut transformer x et y dans le window space.
-         * Il faut transformer z dans l'espace du back et front
-         * plane, en pensant aux plans de clipping.
-         * Ces plans de z clipping sont definis entre 0 et 1.
+         * It is necessary to transform x and y in the window space.
+         * It is necessary to transform z in the space of back and front
+         * plane, taking into account clipping planes.
+         * Z clipping planes are defined between 0 and 1.
         */
 
         APX     = PtNPC (0) * (uM - um) + um;
@@ -2955,13 +2951,13 @@ static Standard_Real fpd, bpd;
                        APX /= Ratio;
 
                /*
-               * Les coordonnees de APX, APY, APZ sont decrites dans
-               * l'espace [0-1]x[0-1]x[0-1].
-               * Il faut transformer x et y dans le window space.
-               * Il faut transformer z dans l'espace du back et front
-               * plane, en pensant aux plans de clipping.
-               * Ces plans de z clipping sont definis entre 0 et 1.
-               */
+         * Coordinates of APX, APY, APZ are described in the space
+         * [0-1]x[0-1]x[0-1].
+         * It is necessary to transform x and y in the window space.
+         * It is necessary to transform z in the space of back and front
+         * plane, taking into account clipping planes.
+         * Z clipping planes are defined between 0 and 1.
+               */
             APX     = APX * (uM - um) + um;
             APY     = APY * (vM - vm) + vm;
         }
@@ -2988,8 +2984,8 @@ Standard_Boolean Visual3d_View::ZBufferIsActivated () const {
 
         if ((! IsDefined ()) || (! IsActive ())) return (Standard_False);
 
-// -1 => non force par le programmeur => depend du type de visualisation
-//  0 ou 1 => force par le programmeur
+// -1 => not forced by the programmer => depends on the type of visualisation
+//  0 ou 1 => forced by the programmer
 
         if (MyCView.Context.ZBufferActivity == -1)
                 if (MyContext.Visualization () == Visual3d_TOV_SHADING)
@@ -3063,7 +3059,7 @@ Standard_Integer Length = MyCOMPUTEDSequence.Length ();
         for (i=1; i<=Length; i++)
             (MyCOMPUTEDSequence.Value (i))->SetHLRValidation (Standard_False);
 
-        // Si le mode degenere est actif, on ne recalcule rien
+        // if the degenerated node is active, nothing is recomputed
 #ifdef G003
         if (  DegenerateModeIsOn () || !ComputedMode ()  ) return;
 #else
@@ -3071,8 +3067,8 @@ Standard_Integer Length = MyCOMPUTEDSequence.Length ();
 #endif  // G003
 
         /*
-         * Forcer le HLRValidation a False sur toutes les structures
-         * calculees dans la vue.
+         * Force HLRValidation to False on all structures
+         * calculated in the view.
          */
 #ifdef TRACE_LENGTH
         if (MyTOCOMPUTESequence.Length () != MyCOMPUTEDSequence.Length ()) {
@@ -3084,14 +3080,14 @@ Standard_Integer Length = MyCOMPUTEDSequence.Length ();
 #endif
 
         /*
-         * Changement d'orientation ou de type de projection =>
-         * Erase des structures qui ont ete calculees pour
-         * l'orientation precedente.
-         * Recalcul des nouvelles structures.
-         * Passage du mode degenere ON a OFF =>
-         * Erase des structures qui ont ete calculees avant que
-         * le mode degenere passe a ON.
-         * Recalcul des nouvelles structures.
+         * Change of orientation or of projection type =>
+         * Remove structures that were calculated for the
+         * previous orientation.
+         * Recalculation of new structures.
+         * Passage of the degenerated mode ON to OFF =>
+         * Remove structures that were calculated before 
+         * the degenerated mode passed to ON.
+         * Recalculate new structures.
          */
 Graphic3d_MapIteratorOfMapOfStructure S1Iterator (MyDisplayedStructure);
 Visual3d_TypeOfAnswer Answer;
@@ -3102,7 +3098,7 @@ Graphic3d_SequenceOfStructure FooSequence;
 
         while (S1Iterator.More ()) {
                 Answer  = AcceptDisplay (S1Iterator.Key ());
-                // Si la structure etait calculee, on la recalcule.
+                // If the structure was calculated, it is recalculated.
                 if (Answer == Visual3d_TOA_COMPUTE) {
 #ifdef TRACE
                         cout << "AcceptDisplay ("
@@ -3114,13 +3110,12 @@ Graphic3d_SequenceOfStructure FooSequence;
                         FooSequence.Append (S1Iterator.Key ());
                 }
 
-                // S1Iterator.Next () se positionne sur la
-                // prochaine structure
+                // S1Iterator.Next () is located on the next structure
                 S1Iterator.Next ();
         }
 
         Length  = FooSequence.Length ();
-        // On affiche les structures stockees
+        // All stored structures are displayed
         for (i=1; i<=Length; i++)
                 Display (FooSequence.Value (i), Aspect_TOU_WAIT);
         if (Length != 0) FooSequence.Clear ();
@@ -3150,8 +3145,8 @@ Visual3d_TypeOfAnswer Answer;
 Standard_Integer Index = IsComputed (AStructure);
                 if (Index == 0) {
 #ifdef TRACE_COMP
-        cout << "La structure " << AStructure->Identification ()
-             << " n'est pas calculee dans la view "
+        cout << "Structure " << AStructure->Identification ()
+             << " is not calculated in the view "
              << Identification () << "\n";
         cout << flush;
 #endif
@@ -3162,10 +3157,10 @@ Standard_Integer Index = IsComputed (AStructure);
                         MyCOMPUTEDSequence.Value (Index)->Identification ();
 #ifdef TRACE_COMP
        Standard_Integer StructId = AStructure->Identification ();
-        cout << "La structure " << StructId
-             << " calculee, dans la view "
-             << Identification () << ", par la structure "
-             << OldStructId << " est recalculee.\n";
+        cout << "Structure " << StructId
+             << " calculated, in the view "
+             << Identification () << ", by the structure "
+             << OldStructId << " is recalculated.\n";
         cout << flush;
 #endif
 
@@ -3202,10 +3197,10 @@ Standard_Integer ii, jj;
 #endif
         TheStructure->SetHLRValidation (Standard_True);
 
-// Recuperation type de visualisation de la vue
+// Return type of visualisation of the view
 Visual3d_TypeOfVisualization ViewType = MyContext.Visualization ();
 
-// De quel type sera la computed ?
+// Of which type will be the computed ?
 Standard_Boolean ComputeWireframe = ((ViewType == Visual3d_TOV_WIREFRAME) &&
         (AStructure->ComputeVisual () != Graphic3d_TOS_SHADING));
 
@@ -3223,12 +3218,12 @@ Standard_Boolean ComputeShading = ((ViewType == Visual3d_TOV_SHADING) &&
                             TheStructure->GraphicHighlight (Aspect_TOHM_COLOR);
                         }
 
-                        // On la range
-                        // Recherche de la structure <AStructure>
-                        // dans la sequence des structures a calculer
+                        // Ot is ranged
+                        // Find structure <AStructure>
+                        // in the sequence of structures to be calculated.
                         NewStructId = TheStructure->Identification ();
 
-                        // On efface l'ancienne calculee et on affiche la nouvelle
+                        // The previous calculation is removed and the new one is dislayed
                         MyGraphicDriver->EraseStructure (
                                 MyCView,
                                 *(Graphic3d_CStructure *)MyCOMPUTEDSequence.Value (Index)->CStructure ());
@@ -3247,8 +3242,7 @@ Standard_Boolean ComputeShading = ((ViewType == Visual3d_TOV_SHADING) &&
         }
 #endif
 
-                          // On ajoute la hlhsr et
-                          // la nouvelle compute associee
+                          // hlhsr and the new associated compute are added
                           MyTOCOMPUTESequence.Append (AStructure);
                           MyCOMPUTEDSequence.Append (TheStructure);
 
@@ -3259,8 +3253,7 @@ Standard_Boolean ComputeShading = ((ViewType == Visual3d_TOV_SHADING) &&
                      << "\n" << flush;
 #endif
 
-                          // On enleve la hlhsr et
-                          // l'ancienne compute associee
+                          // hlhsr and the new associated compute are removed 
 
                           MyTOCOMPUTESequence.Remove (Index);
                           MyCOMPUTEDSequence.Remove (Index);
@@ -3322,7 +3315,7 @@ void Visual3d_View::SetDegenerateModeOn () {
         cout << flush;
 #endif
 
-        // Si le mode degenere est deja actif, on ne recalcule rien
+        // If the degenerated mode is already active, nothing is recalculated
         if (DegenerateModeIsOn ()) return;
         DegenerateModeIsActive = Standard_True;
 
@@ -3330,10 +3323,10 @@ void Visual3d_View::SetDegenerateModeOn () {
         MyCView.IsDegenerates  = 1;
 #else
         /*
-         * Changement d'activite du mode degenere
-         * Erase des structures qui ont ete calculees
-         * et affichees quand le mode etait off.
-         * Affichage des structures non calculees.
+         * Change of activity of the degenerated mode
+         * Remove structures that were calculated
+         * and displayed when the mode was off.
+         * Display of non-calculated structures.
          */
 Graphic3d_MapIteratorOfMapOfStructure S1Iterator (MyDisplayedStructure);
 Visual3d_TypeOfAnswer Answer;
@@ -3342,9 +3335,9 @@ Standard_Integer StructId;
         while (S1Iterator.More ()) {
 
                 Answer  = AcceptDisplay (S1Iterator.Key ());
-                // Si la structure etait a calculer, on efface la
-                // structure calculee et l'on l'affiche
-                // (C'est le role du passage en mode degenere)
+                // If the structure was calculated, the previous one is 
+                // removed and the new one is displayed
+                // (This is the role of passage into degenerated mode)
 
                 if (Answer == Visual3d_TOA_COMPUTE) {
 Standard_Integer Index = IsComputed (S1Iterator.Key ());
@@ -3352,11 +3345,11 @@ Standard_Integer Index = IsComputed (S1Iterator.Key ());
                         StructId =
                         MyCOMPUTEDSequence.Value (Index)->Identification ();
 #ifdef TRACE_COMP
-        cout << "La structure " << S1Iterator.Key ()->Identification ()
-             << " calculee, dans la view "
-             << Identification () << ", par la structure "
-             << StructId << " passe en mode degenere.\n";
-        cout << "On efface " << StructId << " puis on affiche "
+        cout << "Structure " << S1Iterator.Key ()->Identification ()
+             << " calculated, in the view "
+             << Identification () << ", by structure "
+             << StructId << " passes in degenerated mode.\n";
+        cout << "Remove" << StructId << " then display "
              << S1Iterator.Key ()->Identification () << "\n";
         cout << flush;
 #endif
@@ -3369,15 +3362,14 @@ Standard_Integer Index = IsComputed (S1Iterator.Key ());
                         );
                     }
                     else {
-                        // Le else est impossible (OUI !)
-                        // Si le mode etait non degenere avant alors la
-                        // structure calculee associee a S1Iterator.Key ()
-                        // existe vraiment et donc Index != 0
+                        // Else is impossible)
+                        // If the mode was not degenerated previously, the
+                        // calculated structure associated to S1Iterator.Key ()
+                        // really exists and Index != 0
                     }
                 }
 
-                // S1Iterator.Next () se positionne sur la
-                // prochaine structure
+                // S1Iterator.Next () is located on the next structure
                 S1Iterator.Next ();
         }
 #endif  //G003
@@ -3391,7 +3383,7 @@ void Visual3d_View::SetDegenerateModeOff () {
         cout << flush;
 #endif
 
-        // Si le mode degenere est deja inactif, on ne recalcule rien
+        // If the degenerated mode is already inactive, nothing is recalculated
         if (! DegenerateModeIsOn ()) return;
 
         DegenerateModeIsActive  = Standard_False;
@@ -3400,10 +3392,10 @@ void Visual3d_View::SetDegenerateModeOff () {
         MyCView.IsDegenerates  = 0;
 #else
         /*
-         * Changement d'activite du mode degenere
-         * Erase des structures qui ont ete affichees
-         * quand le mode etait on.
-         * Calcul des structures.
+         * Change of activity of degenerated mode
+         * Remove structures that were displayed
+         * when the mode was on.
+         * Calculation of structures.
          */
 Graphic3d_MapIteratorOfMapOfStructure S1Iterator (MyDisplayedStructure);
 Visual3d_TypeOfAnswer Answer;
@@ -3414,22 +3406,22 @@ Standard_Integer StructId;
         while (S1Iterator.More ()) {
 
                 Answer  = AcceptDisplay (S1Iterator.Key ());
-                // Si la structure etait a calculer, on l'efface
-                // et on affiche la structure calculee
-                // (C'est le role du passage en mode non degenere)
-
+                // If the structure was calculated, the previous one is 
+                // removed and the new one is displayed
+                // (This is the role of passage into degenerated mode)
+           
                 if (Answer == Visual3d_TOA_COMPUTE) {
 Standard_Integer Index = IsComputed (S1Iterator.Key ());
                     if (Index != 0) {
                         StructId =
                         MyCOMPUTEDSequence.Value (Index)->Identification ();
 #ifdef TRACE_COMP
-        cout << "La structure " << S1Iterator.Key ()->Identification ()
-             << " calculee, dans la view "
-             << Identification () << ", par la structure "
-             << StructId << " passe en mode normal.\n";
-        cout << "On efface " << S1Iterator.Key ()->Identification ()
-             << " puis on affiche " << StructId << "\n";
+        cout << "Structure " << S1Iterator.Key ()->Identification ()
+             << " calculated, in the view "
+             << Identification () << ", by the structure "
+             << StructId << " passes into normal mode.\n";
+        cout << "Remove " << S1Iterator.Key ()->Identification ()
+             << " then display " << StructId << "\n";
         cout << flush;
 #endif
                         MyGraphicDriver->EraseStructure
@@ -3452,12 +3444,11 @@ Standard_Integer Index = IsComputed (S1Iterator.Key ());
                         }
                     }
                     else {
-                        // Le else est impossible (NON !)
-                        // Le mode degenere a ete active avant l'affichage
-                        // de la structure. La structure a donc ete ensuite
-                        // affichee dans le mode degenere et donc sans que la
-                        // structure calculee existe.
-                        // On la calcule
+                        // Else is impossible 
+                        // Degenerated mode was activated before display of the
+                        // structure. So the structure was displayed in the
+                        // degenerated mode, but the calculated structure didn't exist.
+                        // It is calculated.
 
         // Compute + Validation
 Handle(Graphic3d_Structure) AStructure = (S1Iterator.Key ());
@@ -3493,10 +3484,10 @@ Standard_Integer ii, jj;
 #endif
         TheStructure->SetHLRValidation (Standard_True);
 
-// Recuperation type de visualisation de la vue
+// Return type of visualisation of the view
 Visual3d_TypeOfVisualization ViewType = MyContext.Visualization ();
 
-// De quel type sera la computed ?
+// Of which type will be the computed ?
 Standard_Boolean ComputeWireframe = ((ViewType == Visual3d_TOV_WIREFRAME) &&
         ((S1Iterator.Key ())->ComputeVisual () != Graphic3d_TOS_SHADING));
 
@@ -3514,11 +3505,11 @@ Standard_Boolean ComputeShading = ((ViewType == Visual3d_TOV_SHADING) &&
                             TheStructure->GraphicHighlight (Aspect_TOHM_COLOR);
                         }
 
-                        // On la range
+                        // Make range
 Standard_Integer Result = 0;
 Standard_Integer Length = MyTOCOMPUTESequence.Length ();
-                        // Recherche de la structure <S1Iterator.Key ()>
-                        // dans la sequence des structures a calculer
+                        // Find structure <S1Iterator.Key ()>
+                        // in the sequence of structures to be calculated
                         StructId = (S1Iterator.Key ())->Identification ();
                         for (i=1; i<=Length && Result==0; i++)
                           if ((MyTOCOMPUTESequence.Value (i))->Identification () ==
@@ -3526,7 +3517,7 @@ Standard_Integer Length = MyTOCOMPUTESequence.Length ();
                         if (Result != 0)
                           MyCOMPUTEDSequence.ChangeValue (Result) = TheStructure;
                         else {
-                          // On ajoute la hlhsr et la nouvelle compute associee
+                          // hlhsr and the associated new compute are added
 #ifdef TRACE_LENGTH
         if (MyTOCOMPUTESequence.Length () != MyCOMPUTEDSequence.Length ()) {
                 cout << "In Visual3d_View::SetDegenerateModeOff, ";
@@ -3545,7 +3536,7 @@ Standard_Integer Length = MyTOCOMPUTESequence.Length ();
 #endif
                         }
 
-                        // On efface la degeneree et on affiche la calculee
+                        // The degenerated is removed and the calculated is displayed
                         MyGraphicDriver->EraseStructure
                                 (MyCView,
                                 *(Graphic3d_CStructure *)(S1Iterator.Key ()->CStructure ()));
@@ -3557,8 +3548,7 @@ Standard_Integer Length = MyTOCOMPUTESequence.Length ();
                     }
                 }
 
-                // S1Iterator.Next () se positionne sur la
-                // prochaine structure
+                // S1Iterator.Next () is located on the next structure
                 S1Iterator.Next ();
         }
 
@@ -3585,22 +3575,21 @@ Graphic3d_MapIteratorOfMapOfStructure S1Iterator (MyDisplayedStructure);
         while (S1Iterator.More ()) {
 
                 if (DegenerateModeIsOn ())
-                        // Le mode etant degenere on plotte la structure
-                        // affichee sans s'occuper si elle est calculee
+                        // As the  mode is degenerated the displayed structure
+                        // is plotted without taking into account if it is calculated or not
                         (S1Iterator.Key ())->Plot (APlotter);
                 else {
 Standard_Integer Index = IsComputed (S1Iterator.Key ());
-                        // Le mode n'etant pas degenere on plotte la structure
-                        // affichee si elle n'est pas calculee sinon
-                        // on plotte la structure calculee associee
+                        // As the  mode is not degenerated the displayed structure
+                        // is plotted as if it was not calculated, otherwise the 
+                        // associated calculated structure is plotted.
                         if (Index == 0)
                             (S1Iterator.Key ())->Plot (APlotter);
                         else
                             (MyCOMPUTEDSequence.Value (Index))->Plot (APlotter);
                 }
 
-                // S1Iterator.Next () se positionne sur la
-                // prochaine structure
+                // S1Iterator.Next () is located on the next structure
                 S1Iterator.Next ();
         }
 
@@ -3611,10 +3600,10 @@ Standard_Integer Visual3d_View::HaveTheSameOwner (const Handle(Graphic3d_Structu
 Standard_Integer Result = 0;
 Standard_Integer Length = MyTOCOMPUTESequence.Length ();
 
-        // Recherche dans la sequence des structures deja calculees
-        // 1/ D'une structure ayant le meme Owner que <AStructure>
-        // 2/ Qui ne soit pas <AStructure>
-        // 3/ Dont la COMPUTED soit valide
+        // Find in the sequence of already calculated structures 
+        // 1/ Structure with the same Owner as <AStructure>
+        // 2/ Which is not <AStructure>
+        // 3/ COMPUTED which of is valid
         for (Standard_Integer i=1; i<=Length && Result==0; i++)
            if ((MyTOCOMPUTESequence.Value (i)->Owner () == AStructure->Owner ())
             && (MyTOCOMPUTESequence.Value (i)->Identification () !=
index 792fa61d9b8e20755a2c211811f01ffbd62d008a..8330001a7e1aa174b24f8ac6c86d9e49f00c6f45 100755 (executable)
@@ -5,7 +5,7 @@
      ----------
         Classe Visual3d_ViewManager.cxx :
 
-       Declaration des variables specifiques aux visualiseurs
+       Declaration of variables specific to visualisers
 
      HISTORIQUE DES MODIFICATIONS   :
      --------------------------------
@@ -30,7 +30,7 @@
 
 /*----------------------------------------------------------------------*/
 /*
- * Constantes
+ * Constants
  */
 
 #define NO_DOWNCAST
@@ -148,7 +148,7 @@ void Visual3d_ViewManager::ChangeDisplayPriority (const Handle(Graphic3d_Structu
                (MyIterator.Value ())->ChangeDisplayPriority
                        (AStructure, OldPriority, NewPriority);
 
-               // MyIterator.Next () se positionne sur la prochaine vue
+               // MyIterator.Next () is located on the next view
                MyIterator.Next ();
        }
 
@@ -158,9 +158,9 @@ void Visual3d_ViewManager::ReCompute (const Handle(Graphic3d_Structure)& AStruct
 
   //Standard_Integer LengthD   = MyDisplayedStructure.Extent() ();
 
-  // Meme si physiquement la structure ne peut pas
-  // etre affichee (pb de type de visualisation)
-  // elle a le statut Displayed.
+  // Even if physically the structure cannot
+  // be displayed (pb of visualisation type)
+  // it has status Displayed.
  
   if (!MyDisplayedStructure.Contains(AStructure))
     return;
@@ -173,7 +173,7 @@ void Visual3d_ViewManager::ReCompute (const Handle(Graphic3d_Structure)& AStruct
   while (MyIterator.More ()) {
     (MyIterator.Value ())->ReCompute (AStructure);
 
-    // MyIterator.Next () se positionne sur la prochaine vue
+    // MyIterator.Next () is located on the next view
     MyIterator.Next ();
   }
   
@@ -194,14 +194,14 @@ void Visual3d_ViewManager::ReCompute (const Handle(Graphic3d_Structure)& AStruct
 
   Standard_Integer indexD = 0;
 
-// Meme si physiquement la structure ne peut pas
-// etre affichee (pb de type de visualisation)
-// elle a le statut Displayed.
+  // Even if physically the structure cannot
+  // be displayed (pb of visualisation type)
+  // it has status Displayed.
   if (!MyDisplayedStructure.Contains(AStructure))
     return;
        
   //
-  // Recompute structure in one activated view
+  // Recompute structure in all activated views
   //
   Visual3d_SetIteratorOfSetOfView MyIterator(MyDefinedView);
  
@@ -209,7 +209,7 @@ void Visual3d_ViewManager::ReCompute (const Handle(Graphic3d_Structure)& AStruct
     if ((MyIterator.Value ())->Identification () == ViewId)
       theView->ReCompute (AStructure);
 
-    // MyIterator.Next () se positionne sur la prochaine vue
+    // MyIterator.Next () is located on the next view
     MyIterator.Next ();
   }
 
@@ -227,7 +227,7 @@ void Visual3d_ViewManager::Clear (const Handle(Graphic3d_Structure)& AStructure,
        while (MyIterator.More ()) {
                (MyIterator.Value ())->Clear (AStructure, WithDestruction);
 
-               // MyIterator.Next () se positionne sur la prochaine vue
+               // MyIterator.Next ()  is located on the next view
                MyIterator.Next ();
        }
 
@@ -245,7 +245,7 @@ void Visual3d_ViewManager::Connect (const Handle(Graphic3d_Structure)& AMother,
        while (MyIterator.More ()) {
                (MyIterator.Value ())->Connect (AMother, ADaughter);
 
-               // MyIterator.Next () se positionne sur la prochaine vue
+               // MyIterator.Next ()  is located on the next view
                MyIterator.Next ();
        }
 
@@ -263,7 +263,7 @@ void Visual3d_ViewManager::Disconnect (const Handle(Graphic3d_Structure)& AMothe
        while (MyIterator.More ()) {
                (MyIterator.Value ())->Disconnect (AMother, ADaughter);
 
-               // MyIterator.Next () se positionne sur la prochaine vue
+               // MyIterator.Next ()  is located on the next view
                MyIterator.Next ();
        }
 
@@ -272,9 +272,9 @@ void Visual3d_ViewManager::Disconnect (const Handle(Graphic3d_Structure)& AMothe
 void Visual3d_ViewManager::Display (const Handle(Graphic3d_Structure)& AStructure) { 
 
 
-  // Meme si physiquement la structure ne peut pas
-  // etre affichee (pb de type de visualisation)
-  // elle a le statut Displayed.
+ // Even if physically the structure cannot
+  // be displayed (pb of visualisation type)
+  // it has status Displayed.
 
   MyDisplayedStructure.Add(AStructure);
 
@@ -286,7 +286,7 @@ void Visual3d_ViewManager::Display (const Handle(Graphic3d_Structure)& AStructur
        while (MyIterator.More ()) {
                (MyIterator.Value ())->Display (AStructure);
 
-               // MyIterator.Next () se positionne sur la prochaine vue
+               // MyIterator.Next () is located on the next view
                MyIterator.Next ();
        }
 
@@ -295,9 +295,9 @@ void Visual3d_ViewManager::Display (const Handle(Graphic3d_Structure)& AStructur
 void Visual3d_ViewManager::Erase (const Handle(Graphic3d_Structure)& AStructure) {
 
 
-// Meme si physiquement la structure ne pouvait pas
-// etre affichee (pb de type de visualisation)
-// elle avait le statut Displayed.
+// Even if physically the structure cannot
+  // be displayed (pb of visualisation type)
+  // it has status Displayed.
 
  MyDisplayedStructure.Remove(AStructure);
 
@@ -316,7 +316,7 @@ void Visual3d_ViewManager::Erase (const Handle(Graphic3d_Structure)& AStructure)
        while (MyIterator.More ()) {
                (MyIterator.Value ())->Erase (AStructure);
 
-               // MyIterator.Next () se positionne sur la prochaine vue
+               // MyIterator.Next () is located on the next view
                MyIterator.Next ();
        }
 
@@ -354,7 +354,7 @@ void Visual3d_ViewManager::Highlight (const Handle(Graphic3d_Structure)& AStruct
        while (MyIterator.More ()) {
                (MyIterator.Value ())->Highlight (AStructure, AMethod);
 
-               // MyIterator.Next () se positionne sur la prochaine vue
+               // MyIterator.Next () is located on the next view
                MyIterator.Next ();
        }
 
@@ -372,7 +372,7 @@ void Visual3d_ViewManager::SetTransform (const Handle(Graphic3d_Structure)& AStr
        while (MyIterator.More ()) {
                (MyIterator.Value ())->SetTransform (AStructure, ATrsf);
 
-               // MyIterator.Next () se positionne sur la prochaine vue
+               // MyIterator.Next () is located on the next view
                MyIterator.Next ();
        }
 
@@ -408,7 +408,7 @@ void Visual3d_ViewManager::UnHighlight (const Handle(Graphic3d_Structure)& AStru
        while (MyIterator.More ()) {
                (MyIterator.Value ())->UnHighlight (AStructure);
 
-               // MyIterator.Next () se positionne sur la prochaine vue
+               // MyIterator.Next () is located on the next view
                MyIterator.Next ();
        }
 
@@ -433,7 +433,7 @@ Standard_Integer Dx, Dy;
                if (Dx > MaxDx) MaxDx = Dx;
                if (Dy > MaxDy) MaxDy = Dy;
 
-               // MyIterator.Next () se positionne sur la prochaine vue
+               // MyIterator.Next () is located on the next view
                MyIterator.Next ();
            }
            if (! MyUnderLayer.IsNull ())
@@ -447,7 +447,7 @@ Standard_Integer Dx, Dy;
        while (MyIterator.More ()) {
            (MyIterator.Value ())->Redraw (MyUnderLayer, MyOverLayer);
 
-           // MyIterator.Next () se positionne sur la prochaine vue
+           // MyIterator.Next () is located on the next view
            MyIterator.Next ();
        }
 
@@ -465,7 +465,7 @@ void Visual3d_ViewManager::Update () const {
        while (MyIterator.More ()) {
                (MyIterator.Value ())->Update (MyUnderLayer, MyOverLayer);
 
-               // MyIterator.Next () se positionne sur la prochaine vue
+               // MyIterator.Next () is located on the next view
                MyIterator.Next ();
        }
 
@@ -486,7 +486,7 @@ Visual3d_SetIteratorOfSetOfView MyIterator(MyDefinedView);
                if ((MyIterator.Value ())->IsActive ())
                        SG->Add (MyIterator.Value ());
 
-               // MyIterator.Next () se positionne sur la prochaine vue
+               // MyIterator.Next () is located on the next view
                MyIterator.Next ();
        }
 
@@ -511,8 +511,7 @@ Standard_Boolean Result = Standard_False;
                        Result  =
                        (MyIterator.Value ())->ContainsComputedStructure ();
 
-               // MyIterator.Next () se positionne
-               // sur la prochaine vue
+               // MyIterator.Next () is located on the next view
                MyIterator.Next ();
        }
 
@@ -529,7 +528,7 @@ Visual3d_SetIteratorOfSetOfView MyIterator(MyDefinedView);
        while (MyIterator.More ()) {
                SG->Add (MyIterator.Value ());
 
-               // MyIterator.Next () se positionne sur la prochaine vue
+               // MyIterator.Next () is located on the next view
                MyIterator.Next ();
        }
 
@@ -539,7 +538,7 @@ Visual3d_SetIteratorOfSetOfView MyIterator(MyDefinedView);
 
 void Visual3d_ViewManager::ConvertCoord (const Handle(Aspect_Window)& AWindow, const Graphic3d_Vertex& AVertex, Standard_Integer& AU, Standard_Integer& AV) const {
 
-// On convertit que si les donnees sont correctes
+// Convert only if the data is correct
 Standard_Boolean Exist;
 Graphic3d_CView  TheCView;
 //Graphic3d_Vertex Point;
@@ -592,8 +591,7 @@ Standard_Real Dx, Dy, Ratio;
          stop  = 1;
        }
 
-       // MyIterator.Next () se positionne
-       // sur la prochaine vue
+       // MyIterator.Next () is located on the next view
        MyIterator.Next ();
       }
 
@@ -663,7 +661,7 @@ Standard_Real Dx, Dy, Ratio;
 
 Graphic3d_Vertex Visual3d_ViewManager::ConvertCoord (const Handle(Aspect_Window)& AWindow, const Standard_Integer AU, const Standard_Integer AV) const {
 
-// On convertit que si les donnees sont correctes
+// Convert only if the data is correct
 Graphic3d_CView TheCView;
 Graphic3d_Vertex Point;
 
@@ -680,13 +678,13 @@ Standard_Boolean Result;
                                0, 0, Width, Height,
                                AU, AV, x, y, z);
 
-           // Le unproject est realise par UnProjectRaster
+           // unproject is done by UnProjectRaster
            if (Result) {
                Point.SetCoord
                    (Standard_Real (x), Standard_Real (y), Standard_Real (z));
            }
-           // Le unproject n'est pas realisable par UnProjectRaster
-           // Code a virer des que les drivers Phigs et Pex seront abandonnes.
+           // unproject cannot be done by UnProjectRaster
+           // Code suspended since drivers Phigs and Pex are abandoned.
            else {
 
 Standard_Real NPCX, NPCY, NPCZ;
@@ -718,8 +716,7 @@ Standard_Boolean BResult;
                        stop    = 1;
                    }
 
-                   // MyIterator.Next () se positionne
-                   // sur la prochaine vue
+                   // MyIterator.Next () is located on the next view
                    MyIterator.Next ();
                }
 
@@ -798,7 +795,7 @@ Standard_Boolean BResult;
 
 void Visual3d_ViewManager::ConvertCoordWithProj (const Handle(Aspect_Window)& AWindow, const Standard_Integer AU, const Standard_Integer AV, Graphic3d_Vertex& Point, Graphic3d_Vector& Proj) const {
 
-// On convertit que si les donnees sont correctes
+// Conversion only if the data is correct
 Graphic3d_CView TheCView;
 
         if (! ViewExists (AWindow, TheCView)) {
@@ -817,7 +814,7 @@ Standard_Boolean Result;
                                0, 0, Width, Height,
                                AU, AV, x, y, z, dx, dy, dz);
 
-           // Le unproject est realise par UnProjectRaster
+           // unproject is done by UnProjectRaster
            if (Result) {
                Point.SetCoord
                    (Standard_Real (x), Standard_Real (y), Standard_Real (z));
@@ -825,8 +822,8 @@ Standard_Boolean Result;
                    (Standard_Real (dx), Standard_Real (dy), Standard_Real (dz));
                 Proj.Normalize();
            }
-           // Le unproject n'est pas realisable par UnProjectRaster
-           // Code a virer des que les drivers Phigs et Pex seront abandonnes.
+           // unproject cannot be done by UnProjectRaster
+           // Code is suspended since drivers Phigs are Pex abandoned.
            else {
 
 Standard_Real NPCX, NPCY, NPCZ;
@@ -858,8 +855,7 @@ Standard_Boolean BResult;
                        stop    = 1;
                    }
 
-                   // MyIterator.Next () se positionne
-                   // sur la prochaine vue
+                   // MyIterator.Next () is located on the next view
                    MyIterator.Next ();
                }
 
@@ -986,14 +982,14 @@ Standard_Boolean BResult;
 
 Visual3d_PickDescriptor Visual3d_ViewManager::Pick (const Visual3d_ContextPick& CTX, const Handle(Aspect_Window)& AWindow, const Standard_Integer AX, const Standard_Integer AY) {
 
-// On active le reperage que si les donnees sont correctes
+// The marking is activated only if the data is correct
 Standard_Boolean DoPick = Standard_False;
 
 CALL_DEF_PICK apick;
 Standard_Integer Width, Height;
 
-       // Parcours de la liste des vues pour rechercher
-       // une vue ayant pour fenetre celle specifiee
+       // Parse the list of views to find a 
+       // view having this specified window
        Visual3d_SetIteratorOfSetOfView MyIterator(MyDefinedView);
        int TheWindowIdOfView;
 
@@ -1018,11 +1014,11 @@ const Handle(Xw_Window) theWindow = *(Handle(Xw_Window) *) &AspectWindow;
 const Handle(WNT_Window) theWindow = *(Handle(WNT_Window) *) &AspectWindow;
        TheWindowIdOfView = int (theWindow->HWindow ());
 #endif  // WNT
-               // Comparaison sur les windows ids
+               // Comparision on window IDs
                if (TheWindowIdOfView == TheSpecifiedWindowId) {
                        DoPick          = Standard_True;
 
-                       // Mise a jour
+                       // Update
                        apick.WsId      =
                        int ((MyIterator.Value ())->Identification ());
 
@@ -1048,8 +1044,7 @@ const Handle(WNT_Window) theWindow = *(Handle(WNT_Window) *) &AspectWindow;
                }
           } /* if ((MyIterator.Value ())->IsDefined ()) { */
 
-          // MyIterator.Next () se positionne
-          // sur la prochaine vue
+          // MyIterator.Next () is located on the next view
           MyIterator.Next ();
        }
 
@@ -1058,7 +1053,7 @@ const Handle(WNT_Window) theWindow = *(Handle(WNT_Window) *) &AspectWindow;
        else
                apick.Pick.depth        = 0;
 
-       // Picking : le retour
+       // Picking : return
 Standard_Integer i, j=0;
 Standard_Integer NbPick;
 
@@ -1087,7 +1082,7 @@ Visual3d_PickPath PPat;
            }
        }
 
-       // Pas tres efficace, a revoir (CAL 22/09/95)
+       // Not very efficient, revise (CAL 22/09/95)
        if (apick.Pick.depth > 2) {
 Handle(Graphic3d_Structure) StructCur =
        Graphic3d_StructureManager::Identification (j);
@@ -1116,8 +1111,7 @@ Graphic3d_MapIteratorOfMapOfStructure IteratorD (Set);
                        PDes.AddPickPath (PPat);
                        NbPick++;
                    }
-                   // IteratorD.Next () se positionne
-                   // sur la prochaine structure
+                   // IteratorD.Next () is located on the next structure
                    IteratorD.Next ();
                }
            }
@@ -1135,8 +1129,8 @@ Standard_Boolean Visual3d_ViewManager::ViewExists (const Handle(Aspect_Window)&
 
 Standard_Boolean Exist = Standard_False;
 
-       // Parcours de la liste des vues pour rechercher
-       // une vue ayant pour fenetre celle specifiee
+       // Parse the list of views to find
+       // a view with the specified window
        Visual3d_SetIteratorOfSetOfView MyIterator(MyDefinedView);
        int TheWindowIdOfView;
 
@@ -1161,15 +1155,14 @@ const Handle(Xw_Window) theWindow = *(Handle(Xw_Window) *) &AspectWindow;
 const Handle(WNT_Window) theWindow = *(Handle(WNT_Window) *) &AspectWindow;
        TheWindowIdOfView = int (theWindow->HWindow ());
 #endif  // WNT
-               // Comparaison sur les windows ids
+               // Comparaison on window IDs
                if (TheWindowIdOfView == TheSpecifiedWindowId) {
                        Exist   = Standard_True;
                        TheCView        = *(CALL_DEF_VIEW *)(MyIterator.Value ())->CView ();
                }
           } /* if ((MyIterator.Value ())->IsDefined ()) */
 
-          // MyIterator.Next () se positionne
-          // sur la prochaine vue
+          // MyIterator.Next () is located on the next view
           MyIterator.Next ();
        }
 
@@ -1194,8 +1187,7 @@ void Visual3d_ViewManager::Activate () {
                if (! (MyIterator.Value ())->IsActive ())
                        (MyIterator.Value ())->Activate ();
 
-               // MyIterator.Next () se positionne
-               // sur la prochaine vue
+               // MyIterator.Next () is located on the next view
                MyIterator.Next ();
        }
 
@@ -1217,8 +1209,7 @@ void Visual3d_ViewManager::Deactivate () {
                if ((MyIterator.Value ())->IsActive ())
                        (MyIterator.Value ())->Deactivate ();
 
-               // MyIterator.Next () se positionne
-               // sur la prochaine vue
+               // MyIterator.Next () is located on the next view
                MyIterator.Next ();
        }
 
@@ -1226,8 +1217,8 @@ void Visual3d_ViewManager::Deactivate () {
 
 Standard_Integer Visual3d_ViewManager::MaxNumOfViews () const {
 
-       // on retourne le nombre theorique de vues definissables pour le
-       // Visual3d_ViewManager courant.
+       // Retourne the planned of definable views for the current
+       // Visual3d_ViewManager.
        return
 (Standard_Integer ((View_IDMAX-View_IDMIN+1)/Visual3d_ViewManager::Limit ()));
 
@@ -1265,7 +1256,7 @@ void Visual3d_ViewManager::SetTransparency (const Standard_Boolean AFlag) {
        Visual3d_SetIteratorOfSetOfView MyIterator(MyDefinedView);
        while (MyIterator.More ()) {
                (MyIterator.Value ())->SetTransparency (AFlag);
-               // MyIterator.Next () se positionne sur la prochaine vue
+               // MyIterator.Next () is located on the next view
                MyIterator.Next ();
        }
 
@@ -1284,19 +1275,19 @@ void Visual3d_ViewManager::SetZBufferAuto (const Standard_Boolean AFlag) {
        if (MyZBufferAuto && AFlag) return;
        if (! MyZBufferAuto && ! AFlag) return;
 
-       // si de False on passe a True :
-       // pas de probleme, au prochain update de vue, celle-ci se
-       // posera les bonnes questions pour reagir (SetVisualisation)
-       // si de True on passe a False :
-       // il faut modifier le ZBufferActivity de chaque vue pour que
-       // le zbuffer ne soit actif que si le contexte le demande.
-       // Dans ce cas on passe -1 pour que la vue se pose la question
-       // Rappel : 0 on force la desactivation, 1 on force l'activation
+       // if pass from False to True :
+       // no problem, at the next view update, it 
+       // will properly ask questions to answer (SetVisualisation)
+       // if pass from True to False :
+       // it is necessary to modify ZBufferActivity at each view so that
+       // zbuffer could be active only if required by context.
+       // In this case -1 is passed so that the view ask itself the question
+       // Note : 0 forces the desactivation, 1 forces the activation
        if (! AFlag) {
                Visual3d_SetIteratorOfSetOfView MyIterator(MyDefinedView);
                while (MyIterator.More ()) {
                        (MyIterator.Value ())->SetZBufferActivity (-1);
-                       // MyIterator.Next () se positionne sur la prochaine vue
+                       // MyIterator.Next () is located on the next view
                        MyIterator.Next ();
                }
        }
index 7fb3d754bc03461bcbf4dd151eb33746eb211f9d..004656a3d5f69a99c5d076c032db0568eeb0f496 100755 (executable)
@@ -2,8 +2,6 @@
 // Created     Fevrier 1992
 // Author      NW,JPB,CAL
 // Modified    
-//    18-11-98  : FMN ; Correction sur la gestion de la perspective (cf Programming Guide)
-//             Nouvelle valeur init du ViewMapping
 //    22-12-98  : FMN ; Rename CSF_WALKTHROW en CSF_WALKTHROUGH
 //    23-07-07  : NKV ; Define custom PROJECTION matrix for OpenGl context
 
 
 //-Version     
 
-//-Design      Declaration des variables specifiques au
-//             mapping des vues
+//-Design      Declaration of variables specific to mapping of views
 
-//-Warning     Rappels Le mapping d'une vue est defini par :
-//             - le point reference de projection
-//             - le type de projection
-//             - une distance pour le Back Plane
-//             - une distance pour le Front Plane
-//             - une distance pour le Projection Plane
+//-Warning     Mapping of a view is defined by :
+//             - reference point of projection
+//             - type of projection
+//             - distance for the Back Plane
+//             - distance for the Front Plane
+//             - distance for the Projection Plane
 
 //-References  
 
index 883507d9d026b359cd40e5273c8d6804cc65a8c3..24c4b72c79396f65169efe57489720058bc33c07 100755 (executable)
@@ -7,13 +7,12 @@
 
 //-Version     
 
-//-Design      Declaration des variables specifiques a
-//             l'orientation des vues
+//-Design      Declaration of variables specific to the orientation of views
 
-//-Warning     L'orientation d'une vue est definie par :
-//             - le point origine du repere
-//             - le vecteur normal au plan de visualisation
-//             - le vecteur vertical de l'observateur
+//-Warning     The view orientation is defined by :
+//             - the point of origin of the reference mark 
+//             - the normal vector to the visualisation plane
+//             - the vertical vector of the viewer
 
 //-References