along with SALOME HYDRO module. If not, see <http://www.gnu.org/licenses/>.
#########################################
-Manipulations de Polylignes
+Polyline manipulation
#########################################
.. |deuxSections| image:: /../_static/deuxSections.png
.. |objetsPont| image:: /../_static/objetsPont.png
:align: middle
+Only single section polylines have thus far been addressed.
+The use of several sections in polylines enables, for example, the combination of splines
+and broken lines in a single contour.
+Polyline operations (merge, split, copy, paste) can be used, for instance,
+to create contours that share an edge before the calculation case is created.
-Nous n'avons abordé jusqu'à présent que des polylignes à une seule section.
-L'utilisation de plusieurs sections dans les polylignes permet de combiner des splines et des
-lignes brisées dans un même contour, par exemple. Les opérations sur les polylignes
-(merge, split, copy, paste) permettent, entre autres, de créer des contours partageant un bord,
-avant la création du cas de calcul.
+Maritime domain boundaries
+==========================
-Limites de domaine maritime
-===========================
+A maritime domain is often bounded by a coastline, described in detail,
+and by the simplest possible broken line offshore.
-Un domaine maritime est souvent limité par une ligne de côte, détaillée, et par une ligne brisée
-la plus simple possible au large.
+Details of the coastline are captured and entered in the form of an open polyline spline.
-La ligne de côte détaillée est saisie sous forme d'une spline, dans une polyligne, non fermée.
+The sea boundary is captured in a second section of the same polyline.
-La limite en mer est saisie dans une deuxième section de la même polyligne.
-
-Pour créer la deuxième section, il faut éditer la polyligne dans laquelle on a saisi la ligne de côte,
-cliquer sur *insert new section* et choisir une ligne de type *polyline* non fermée.
-On valide la création de section avec le bouton *Add*.
-
-La section 2 étant sélectionnée, le bouton *Addition mode* permet d'ajouter des points.
-On crée la ligne brisée en visant approximativement les extrémités de la ligne de côte.
+To create a second section, you need to edit the polyline that represents the coastline:
+click on *insert new section* and choose a line of the open *polyline* type,
+then use the *Add* button to validate the section creation.
+
+As section 2 is already selected, use the *Addition mode* button to start adding points.
+The aim when creating the broken line is to place the first and last points in the approximate
+vicinity of the coast line endpoints.
|deuxSections|
-Il faut maintenant faire correspondre précisément les extrémités des deux sections pour obtenir un
-contour fermé.
+The endpoints of the two sections must now be made to correspond exactly so as to obtain a closed contour.
-Pour cela, on sélectionne simultanément les deux sections (touche shift)
-et on passe en mode modification (bouton *modification mode*).
+To do so, select both sections simultaneously (shift key)
+and switch to *modification mode* (modification mode button).
-On sélectionne simultanément les deux premiers points d'extrémité à rapprocher,
-avec une selection par boite englobante à la souris
-(en ayant préalablement fait un zoom si nécessaire).
+Next, in the view window, select both of the first two endpoints to be brought together
+by dragging a selection box around them with the mouse (after having zoomed in, if necessary).
|deuxExtremites|
-Les coordonnées des deux points s'affichent, ainsi que la distance entre les deux points,
-dans la colonne distance.
+The coordinates of the two points are displayed, as well as the distance between the two points,
+in the distance column.
-On notera que le bouton de droite est devenu actif (il faut sélectionner deux sections).
+Note that the right hand button has become active (two sections must be selected).
|bringTogether|
-En cliquant sur le bouton, les deux points deviennent superposés, leurs coordonnées sont mises à jour,
-et la distance affichée est devenue nulle.
+When the button is clicked, the two points are superimposed, their coordinates are updated
+and the displayed distance changes to zero.
|deuxPointsConfondus|
-Il faut procéder de même avec les autres extrémités à rapprocher, puis valider avec *Apply and close*.
+The same procedure needs to be applied to the other two endpoints, then validate with *Apply and close*.
-La polyligne représente maintenant un contour fermé composé de 2 sections de types différents.
+The polyline now represents a closed contour consisting of 2 sections of different types.
|contourFermeDeuxSections|
- * **remarque** : Lors de la superposition des points, l'un prend les coordonnées de l'autre.
- Il n'est pas facile de maîtriser quel point reste fixe,
- donc il vaut mieux éviter qu'ils soient trop éloignés pour ne pas déformer
- la ligne de côte.
+ * **Note**: When the points are superimposed, one moves to the coordinates of the other.
+ Controlling which of the points remains fixed is not an easy task;
+ therefore it is best to avoid having too much distance between them in order to prevent
+ any deformation of the coastline.
-Il faut ensuite transformer le contour en objet naturel. Nous avons notre domaine maritime.
+The contour must then be converted into a natural object, providing the maritime domain.
|domaineMaritime|
-Créer des sections sur un lit mineur : barrages, ponts
-======================================================
+Creating sections on a minor bed: dams, bridges
+===============================================
-Le lit mineur d'une rivière peut être découpé en plusieurs sections, pour permettre des
-traitement spécifiques. Par exemple :
+A minor river bed can be divided into several sections to which specific treatment options can be applied.
+For example:
- * La zone au niveau d'un pont, pour laquelle la description explicite des piles du pont
- va vraisemblablement imposer un maillage spécifique, si le reste du lit mineur est
- maillé en triangles allongés dans le sens de l'écoulement.
+ * The zone around a bridge, where explicit description of the bridge piers is likely to impose a specific mesh,
+ if the rest of the minor bed is meshed in stretched triangles in the direction of the flow path.
- * Un barrage, pour lequel on souhaite par exemple écrire des conditions limites décrivant
- son fonctionnement. Le barrage sera alors défini comme une zone "non inondable"
- ou "insubmersible" en travers du lit mineur.
+ * A dam for which one wants to write, for example, the boundary conditions describing its operation.
+ The dam will then be defined as a "non floodable" or "insubmersible" zone across the minor bed.
- * Une zone pour laquelle on veut particulariser le maillage.
+ * A zone for which the user wants to tailor the mesh.
-Créer une zone spécifique au niveau d'un pont sur le lit mineur
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Creating a specific zone around a bridge over the minor bed
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-Nous reprenons l'exemple précédent sur la Garonne.
-Nous commençons par dessiner un rectangle en travers du lit mineur *garonne*, débordant franchement
-de part et d'autre des rives. Nous nommons la polyligne correspondante *zonePont*.
+Taking the previous example on the Garonne, begin by drawing a rectangle across the *garonne* minor bed,
+extending clearly beyond the riverbanks on both sides. Name the polyline rectangle *zonePont* (zoneBridge).
|zonePont|
-**La polyligne du lit mineur doit être suffisamment raffinée pour que le découpage soit précis, et
-pour éviter des problèmes plus tard à la création du cas de calcul.** Si besoin, il faut éditer la
-polyligne du lit mineur pour ajouter des points de part et d'autre des traits de coupe.
-**Il faut notamment éviter qu'il n'y ait pas de point entre deux traits de coupe d'une courbe spline**.
+**The polyline of the minor bed needs to be sufficiently refined for the cutting to be precise
+and to avoid problems when creating the calculation case afterwards.**
+If necessary, the polyline of the minor bed should be edited to add points on both sides
+of the cross-section lines.
+**There must always be at least one point between two cut lines of a spline curve**.
|raffinement|
-Nous utilisons alors la commande *Split polylignes* du menu contextuel de la polyligne *garonne*,
-et nous prenons l'onglet *Complete split*. Il faut sélectionner la polyligne *zonePont* et cliquer
-sur le bouton *include*, pour obtenir les deux polylignes dans la liste du dialogue.
+Use the *Split polylines* command from the *garonne* polyline context menu and open the *Complete split* tab.
+Select the *zonePont* polyline then click on the *include* button to have both polylines in the dialog list view.
|completeSplitDialog|
-Après validation par *Apply and close*, nous obtenons quatre nouvelles polylines pour décrire
-le lit mineur, et quatre pour décrire la zone du pont.
+After validating with *Apply and close*, four new polylines are obtained to describe the minor bed
+and four to describe the bridge zone.
|zonesSplitCreees|
-Nous allons regrouper les polylignes par paquets pour reconstituer les nouvelles zones, avec la
-commande *Merge polylines*.
+The new zones will be reconstructed by joining the polylines together, set by set,
+with the *Merge polylines* command.
-La zone du pont est constituée des quatres polylignes suivantes :
+The bridge zone is composed of the following four polylines:
|zonePontSplit|
|zoneAmontSplit|
-La zone du lit mineur en aval est constituée de deux polylignes :
+The upstream minor bed zone is composed of two polylines:
|zoneAvalSplit|
-Pour regrouper les polylignes, nous en sélectionnons une et utilisons la commande *Merge polylines*
-du menu contextuel. Il faut sélectionner les quatre polylignes, cliquer sur le bouton *include*,
-choisir un nom pour la nouvelle polyligne, *litMineurPont* et valider par *Apply and close*.
+To join the polylines, select any one of them and click on the *Merge polylines* command in the context menu.
+You now need to select the four polylines, click on the *include* button, assign a name to the new polyline, *litMineurPont* ("minorBedBridge") and confirm the command by clicking on *Apply and close*.
|mergeZonesPont|
-Nous créons de même les polylignes *litMineurAmont* et *litMineurAval*.
-Les trois nouvelles polylignes servent à définir trois zones immersibles,
-*litMineur_aval*, *litMineur_amont* et *litMineur_pont*.
+The *litMineurAmont* ("upstreamMinorBed") and *litMineurAval* ("downstreamMinorBed") polylines are created
+in the same way. The three new polylines serve to define three immersible zones: *litMineur_aval*,
+*litMineur_amont* and *litMineur_pont*.
-Si nous voulons représenter les piles du pont dans le maillage, il faut les représenter en tant que
-polylignes et définir des zones non immersibles.
+If one wants to have bridge piers modelled in the mesh, these need to be represented as polylines
+and non-submersible zones defined.
|pilesDePont|
|objetsPont|
-Créer une zone spécifique au niveau d'un barrage sur le lit mineur
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Creating a specific zone around a dam on the minor bed
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-Le principe est exactement le même que pour le pont, mais sans les piles.
+The principle is exactly the same as for the bridge, but without the piers.
.. only:: html
along with SALOME HYDRO module. If not, see <http://www.gnu.org/licenses/>.
#########################################
-Objets Artificiels
+Artificial objects
#########################################
.. |axeDigue| image:: /../_static/axeDigue.png
.. |zoomDigue| image:: /../_static/zoomDigue.png
:align: middle
-Les objets artificiels regroupent les digues et les canaux. Ces deux types d'objets
-sont construits sur le même principe :
+Artificial objects cover embankments and channels. Both object types are constructed on the same principle:
- * une section verticale constante,
+ * A constant vertical section,
- * un axe 3D, c'est à dire une polyligne 3D selon laquelle la section est extrudée.
+ * A 3D axis, this being a 3D polyline from which the section will be extruded.
-L'axe 3D est construit à partir d'une polyligne dans le plan horizontal, à laquelle
-on associe une ligne d'altitude définie dans un plan vertical, qui donne la cote Z
-en fonction de l'abscisse curviligne de la polyligne horizontale.
+The 3D axis is constructed from a horizontal polyline, to which will be associated a vertically-defined line
+of altitude, which gives the Z-value as a function of the curvilinear abscissa of the polyline’s horizontal path.
-La ligne d'altitude est soit construite explicitement, soit obtenue en projetant
-la polyligne horizontale sur un champ de bathymétrie.
+The altitude line is either explicitly constructed or obtained by projecting the horizontal polyline
+onto a bathymetry field.
-Lors du calcul de l'altitude aux noeuds du maillage (interpolation en Z), les noeuds situés sur la digue
-sont traités spécifiquement : l'altitude du noeud est prise sur la forme géométrique 3D de
-la digue telle qu'elle a été définie ci-dessus.
+When the node altitudes are computed (Z interpolation), a specific treatment is applied to the nodes on the
+embankment: the altitude of the node is evaluated on the 3D geometric shape of the embankment, as defined above.
-Création d'une digue
-====================
+Creating an embankment
+======================
-Pour définir l'axe horizontal de la digue, nous créons une polyligne non fermée, de type spline,
-avec l'éditeur de polyligne (menu contextuel de la rubrique *POLYLIGNES* dans l'arbre de
-l'étude SALOME).
+To define the embankment's horizontal axis, an open, spline-type polyline is created with the polyline editor
+(context menu of the *POLYLINES* folder in the SALOME study tree).
-Nous nommons cette polyligne *axeDigue*.
+Assign the name axeDigue (embankmentAxis) to this polyline.
|axeDigue|
-La section de la digue se crée avec le menu contextuel *Create profile* de la rubrique *PROFILES*
-dans l'arbre de l'étude SALOME.
+The embankment section is created using the *Create profile* context menu of the *PROFILES* folder
+in the SALOME study tree.
-Nous nommons cette section *sectionDigue*.
+This section is named *sectionDigue* (embankmentSection).
-Il faut dessiner à main levée la forme approximative de la section, nous l'éditerons ensuite
-pour mettre des cotes précises.
+The approximate shape of the section has to be drawn freehand;
+it will later be edited to put in the exact elevation parameters.
|creationDigue_1|
-Pour corriger les coordonnées des noeuds, il faut se placer en mode Modification :
+To correct the node coordinates, you need to switch to Modification mode:
|modifModeProfile|
-Les noeuds peuvent être sélectionnés en bloc en les englobant dans un rectangle, dans la vue graphique.
+The nodes can be block selected by grabbing them in a selection rectangle, in the graphic view.
-Ils s'affichent dans un tableau au dessus de la vue graphique.
+They are displayed in a table above the graphic view.
-En cliquant sur le titre de la colonne *index*, on réordonne les noeuds.
+The nodes are reordered by clicking on the *Index* column title.
|creationDigue_2|
-Pour le choix des valeurs Z, il faut savoir que l'altitude finale d'un point de la digue s'obtient
-à partir de la section en ce point, en additionnant la cote du point sur la section à la
-cote de la section le long du profil d'altitude.
-Plus précisément, le calcul est le suivant :
+For the choice of Z-values, it is essential to know that the final altitude of a point on the embankment is obtained
+from the cross-section at this point, by adding the elevation of the point on the section to the elevation of the
+section along the altitude profile. To be more specific, the calculation required is as follows:
- * le point **A** (x,y,0) dont on veut l'altitude est projeté sur la courbe *axeDigue*
- en un point *P* (x',y',0) tel que la droite *AP* est normale à la tangente en **P**
- à l'axe de la digue. Le point **P** est à une distance horizontale
- *d* = distance(A,P) de la courbe *axeDigue*.
+ * Point **A** (x,y,0), whose altitude is required, is projected onto the *axeDigue* curve at a point **P** (x’,y’,0)
+ such that the straight line *AP* is perpendicular to the tangent to the curve of the embankment axis at **P**.
+ The point **P** is at a horizontal distance *d* = distance(A,P) from the *axeDigue* curve.
- * A partir de la coordonnée curviligne de **P** sur *axeDigue*, on récupère une valeur de Z0
- sur la ligne d'altitude. Cette valeur Z0 correspond à la cote 0 de la section.
+ * From the curvilinear coordinate **P** on *axeDigue*, we get a value of Z0 value on the line of altitude.
+ This Z0 value corresponds to the zero-elevation level of the embankment section.
- * Pour obtenir l'altitude finale en **P**, on calcule la cote Z1 sur la section au point d'abscisse *d*.
- L'altitude finale est Z = Z0 +Z1.
+ * To obtain the final altitude in **P**, the elevation Z1 on the section is calculated at the abscissa point *d*.
+ The final altitude is Z = Z0 +Z1.
- * **remarque** : ce mode de calcul suppose une section symétrique par rapport à x=0.
+ * **Note:** this calculation method assumes a symmetrical cross-section with respect to x=0.
-Ici, la ligne d'altitude que nous allons définir correspond au sommet de la section.
-Nous créons donc une section symétrique de 20 mètres de largeur, à flancs assez raides.
+In this case, the line of altitude that will be defined corresponds to the vertex (i.e. top) of the cross-section. Hence, we create a symmetrical cross-section that is 20 metres wide, with fairly steep slopes.
|creationDigue_3|
-Il reste à créer la ligne d'altitude de la digue. Nous allons la définir explicitement
-avec l'altitude des deux extrémités.
+The embankment line of altitude still has to be created.
+It will be defined explicitly with the altitude of the two ends.
-Si l'altitude de la digue est variable, il faut avoir une idée approximative de sa longueur,
-pour construire un profil d'altitude précis (il manque une fonction d'affichage de la longueur des polylignes).
+If the elevation of the embankment is variable, an approximate idea of its length is needed
+in order to construct an accurate altitude profile (a display function of the polyline lengths is missing).
-Si l'on définit plus de deux points, l'altitude est interpolée linéairement entre deux points,
-et, si la courbe est plus longue que la ligne d'altitude, les valeurs de Z au delà du dernier
-point sont prises à la cote de ce dernier point.
+If more than two points are defined, the altitude is linearly interpolated between two points and,
+if the curve is longer than the altitude line, the Z values beyond the end point are taken
+at the elevation of this last point.
|altitudeDigue|
-Il faut ensuite créer l'axe 3D de la dique à l'aide du menu contextuel *Create polyline 3D*
-de la rubrique *POLYLINES 3D*.
+The 3D axis has to be created next using the *Create polyline 3D* context menu of the POLYLINES 3D folder.
|polyline3D|
-Enfin, on utilise le menu contextuel *Create digue* (in french in the text!)
-de la rubrique *ARTIFICIAL OBJECTS*.
+The last step uses the *Create digue* context menu of the *ARTIFICIAL OBJECTS* folders.
|artificialDigue|
-Le paramètre equidistance sert lors de l'extrusion précise de la section le long de l'axe.
+The equidistance parameter serves to optimise the precision of the section extrusion along the axis.
- * Si la valeur est trop grande par rapport au rayon de courbure de l'axe, la section est décentrée
- lors de son extrusion.
+ * If the value is too high in relation to the radius of axis curvature, the cross-section
+ is offset from its centre line during extrusion.
- * Si la valeur est trop faible, le temps de calcul devient long.
+ * If the value is too low, the computational time becomes long.
-On peut prendre une valeur de l'ordre de deux ou trois fois la largeur de la digue, en première
-approximation.
+Taking a value of about two or three times the width of the embankment is a reasonable first approximation.
-Pour contrôler le résultat, il faut superposer la vue de la digue et son axe.
+The views of the embankment and its axis should then be overlaid to verify the result.
|zoomDigue|
-Lors de la constitution du cas de calcul avec la digue, il faut isoler la digue dans une région spécifique,
-parce que l'on va la mailler de préférence en quadrangles avec l'algorithme *Quadrangle (Medial Axis projection)*.
+When the calculation case with the embankment is set up, the latter should be isolated in a specific region
+because it is preferable to mesh it in quadrangles using the *Quadrangle (Medial Axis projection)* algorithm.
-Pour le calcul d'altitude, comme la digue se superpose à un terrain naturel, l'option ZMAX est la plus logique dans le cas général.
+As the embankment is overlaid on natural terrain, the *ZMAX* option is generally the most logical choice for the altitude calculation.
-
-Création d'un canal
+Creating a channel
===================
-Le canal se construit exactement comme la digue, avec simplement un menu spécifique *Create channel*
-dans la rubrique *ARTIFICIAL OBJECTS*.
-
-La section a une forme de cuvette, et le calcul d'altitude se fait
-selon la même logique que pour la digue.
-
-Lors de la constitution du cas de calcul avec le canal, il faut isoler le canal dans une région spécifique,
-car il sera maillé de préférence en quadrangles avec l'algorithme *Quadrangle (Medial Axis projection)*.
+The canal channel is created in exactly same the same way as the embankment but using a specific menu,
+*Create channel*, in the *ARTIFICIAL OBJECTS* folder.
+
+The section is bowl-shaped and the altitude is calculated using the same approach as for the embankment.
-Pour le calcul d'altitude, le canal s'inscrivant dans un terrain naturel,
-l'option ZMIN est la plus logique dans le cas général.
+When the calculation case with the channel is being set up, the channel should be isolated in a specific region
+as it is preferable to mesh it in quadrangles using the Quadrangle (Medial Axis projection) algorithm.
+
+For the altitude calculation, with the channel being in natural terrain,
+the *ZMIN* option is the most logical choice in most cases.
.. only:: html