From 4851e96c3e4747c86513718cc67e86358144502c Mon Sep 17 00:00:00 2001
From: "francois.grand" <francois.grand@irstea.fr>
Date: Tue, 3 Oct 2017 09:55:59 +0200
Subject: [PATCH] =?UTF-8?q?-=20ajout=20=C3=A0=20l'enum=20ComputeNodeType?=
 =?UTF-8?q?=20des=20valeurs=20des=20diff=C3=A9rents=20types=20de=20section?=
 =?UTF-8?q?=20pour=20le=20r=C3=A9gime=20uniforme=20-=20utilisation=20de=20?=
 =?UTF-8?q?ces=20valeurs=20dans=20les=20classes=20de=20param=C3=A8tres?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 src/param.ts                      |  4 ++-
 src/parameters.ts                 | 44 +++++++++++++++++++++++++++++++
 src/section/section_circulaire.ts |  9 ++++---
 src/section/section_puissance.ts  |  9 ++++---
 src/section/section_rectang.ts    |  7 +++--
 src/section/section_trapez.ts     | 11 +++++---
 src/section/section_type.ts       | 10 ++++---
 7 files changed, 77 insertions(+), 17 deletions(-)

diff --git a/src/param.ts b/src/param.ts
index 670a6ff4..491cccbb 100644
--- a/src/param.ts
+++ b/src/param.ts
@@ -364,9 +364,11 @@ export interface IParamsEquation {
  * type de noeud de calcul
  */
 export enum ComputeNodeType {
-    CondDistri, RegimeUniforme, LechaptCalmon,
+    CondDistri, LechaptCalmon,
     SectionParametree, // paramètres communs à toutes les sections paramétrées
     SectionTrapeze, SectionRectangle, SectionCercle, SectionPuissance,
+    RegimeUniforme, // paramètres communs à toutes les sections paramétrées
+    RegimeUniformeTrapeze, RegimeUniformeRectangle, RegimeUniformeCercle, RegimeUniformePuissance,
     Test
 }
 
diff --git a/src/parameters.ts b/src/parameters.ts
index 37a196a2..8eddc2f0 100644
--- a/src/parameters.ts
+++ b/src/parameters.ts
@@ -6,6 +6,7 @@ import { ParamsSectionTrapez, cSnTrapez } from "./section/section_trapez";
 import { ParamsSectionRectang, cSnRectang } from "./section/section_rectang";
 import { ParamsSectionCirc, cSnCirc } from "./section/section_circulaire";
 import { ParamsSectionPuiss, cSnPuiss } from "./section/section_puissance";
+import { RegimeUniforme } from "./regime_uniforme";
 
 export class ComputeNodeParameters {
     private static _instance: ComputeNodeParameters;
@@ -62,6 +63,49 @@ export class ComputeNodeParameters {
                     return cn;
                 }
 
+            case ComputeNodeType.RegimeUniformeTrapeze:
+                {
+                    let cn = new ParamsSectionTrapez(undefined, undefined, undefined, undefined, undefined,
+                        undefined, undefined, undefined, undefined, undefined, undefined,
+                        ComputeNodeType.RegimeUniformeTrapeze,
+                        ComputeNodeType.RegimeUniforme);
+                    let n = new cSnTrapez(undefined, cn);
+                    let ru = new RegimeUniforme(n); // pour initialiser la calculabilité des paramètres
+                    return cn;
+                }
+
+            case ComputeNodeType.RegimeUniformeRectangle:
+                {
+                    let cn = new ParamsSectionRectang(undefined, undefined, undefined, undefined, undefined,
+                        undefined, undefined, undefined, undefined, undefined,
+                        ComputeNodeType.RegimeUniforme);
+                    let n = new cSnRectang(undefined, cn);
+                    let ru = new RegimeUniforme(n); // pour initialiser la calculabilité des paramètres
+                    return cn;
+                }
+
+            case ComputeNodeType.RegimeUniformeCercle:
+                {
+                    let cn = new ParamsSectionCirc(undefined, undefined, undefined, undefined, undefined,
+                        undefined, undefined, undefined, undefined, undefined,
+                        ComputeNodeType.RegimeUniformeCercle,
+                        ComputeNodeType.RegimeUniforme);
+                    let n = new cSnCirc(undefined, cn);
+                    let ru = new RegimeUniforme(n); // pour initialiser la calculabilité des paramètres
+                    return cn;
+                }
+
+            case ComputeNodeType.RegimeUniformePuissance:
+                {
+                    let cn = new ParamsSectionPuiss(undefined, undefined, undefined, undefined, undefined,
+                        undefined, undefined, undefined, undefined, undefined, undefined,
+                        ComputeNodeType.RegimeUniformePuissance,
+                        ComputeNodeType.RegimeUniforme);
+                    let n = new cSnPuiss(undefined, cn);
+                    let ru = new RegimeUniforme(n); // pour initialiser la calculabilité des paramètres
+                    return cn;
+                }
+
             default:
                 throw "ComputeNodeParameters.getComputeNodeParameters() : noeud de calcul '" + ComputeNodeType[type] + "' non pris en charge";
         }
diff --git a/src/section/section_circulaire.ts b/src/section/section_circulaire.ts
index 7fd29262..f3ca8dba 100644
--- a/src/section/section_circulaire.ts
+++ b/src/section/section_circulaire.ts
@@ -6,9 +6,12 @@ import { ErrorMessage, ErrorCode } from '../util/error';
 export class ParamsSectionCirc extends ParamsSection {
         private _D: ParamDefinition;          // Diamètre du cercle
 
-        constructor(rD: number, rY: number, rKs: number, rQ: number, rIf: number, rPrec: number, rYB: number, rYCL: number = undefined, rDx: number = undefined, rLong: number = undefined) {
-                super(rY, undefined, rKs, rQ, rIf, rPrec, rYB, rYCL);
-                this._D = new ParamDefinition(ComputeNodeType.SectionCercle, 'D', ParamDomainValue.POS, rD);
+        constructor(rD: number, rY: number, rKs: number, rQ: number, rIf: number, rPrec: number, rYB: number,
+                rYCL: number = undefined, rDx: number = undefined, rLong: number = undefined,
+                nodeType: ComputeNodeType = ComputeNodeType.SectionCercle,
+                defaultNodeType: ComputeNodeType = ComputeNodeType.SectionParametree) {
+                super(rY, undefined, rKs, rQ, rIf, rPrec, rYB, rYCL, rDx, rLong, defaultNodeType);
+                this._D = new ParamDefinition(nodeType, 'D', ParamDomainValue.POS, rD);
         }
 
         /**
diff --git a/src/section/section_puissance.ts b/src/section/section_puissance.ts
index c11e7fd0..5c8cf3dc 100644
--- a/src/section/section_puissance.ts
+++ b/src/section/section_puissance.ts
@@ -8,9 +8,12 @@ import { cLog } from "./log";
 export class ParamsSectionPuiss extends ParamsSection {
         private _k: ParamDefinition; // Coefficient de forme compris entre 0 et 1
 
-        constructor(rk: number, rY: number, rLargeurBerge: number, rKs: number, rQ: number, rIf: number, rPrec: number, rYB: number, rYCL: number = 0, rDx: number = 0, rLong: number = 0) {
-                super(rY, rLargeurBerge, rKs, rQ, rIf, rPrec, rYB, rYCL);
-                this._k = new ParamDefinition(ComputeNodeType.SectionPuissance, 'k', new ParamDomain(ParamDomainValue.INTERVAL, 0, 1), rk);
+        constructor(rk: number, rY: number, rLargeurBerge: number, rKs: number, rQ: number, rIf: number, rPrec: number, rYB: number,
+                rYCL: number = undefined, rDx: number = undefined, rLong: number = undefined,
+                nodeType: ComputeNodeType = ComputeNodeType.SectionPuissance,
+                defaultNodeType: ComputeNodeType = ComputeNodeType.SectionParametree) {
+                super(rY, rLargeurBerge, rKs, rQ, rIf, rPrec, rYB, rYCL, rDx, rLong, defaultNodeType);
+                this._k = new ParamDefinition(nodeType, 'k', new ParamDomain(ParamDomainValue.INTERVAL, 0, 1), rk);
         }
 
         /**
diff --git a/src/section/section_rectang.ts b/src/section/section_rectang.ts
index 5d93e1ce..e77aa31e 100644
--- a/src/section/section_rectang.ts
+++ b/src/section/section_rectang.ts
@@ -1,11 +1,14 @@
 import { acSection, ParamsSection } from "./section_type";
+import { ComputeNodeType } from "../param";
 import { cLog } from "./log";
 
 export class ParamsSectionRectang extends ParamsSection {
-        constructor(rY: number, rLargeurFond: number, rKs: number, rQ: number, rIf: number, rPrec: number, rYB: number, rYCL: number = 0, rDx: number = 0, rLong: number = 0) {
+        constructor(rY: number, rLargeurFond: number, rKs: number, rQ: number, rIf: number, rPrec: number, rYB: number,
+                rYCL: number = undefined, rDx: number = undefined, rLong: number = undefined,
+                defaultNodeType: ComputeNodeType = ComputeNodeType.SectionParametree) {
                 super(rY,
                         rLargeurFond, // LargeurBerge=LargeurFond
-                        rKs, rQ, rIf, rPrec, rYB, rYCL);
+                        rKs, rQ, rIf, rPrec, rYB, rYCL, rDx, rLong, defaultNodeType);
                 //    this.LargeurBerge.symbolAlias = 'LargeurFond';
         }
 }
diff --git a/src/section/section_trapez.ts b/src/section/section_trapez.ts
index bc9d8f0c..04a4b6d1 100644
--- a/src/section/section_trapez.ts
+++ b/src/section/section_trapez.ts
@@ -7,10 +7,13 @@ export class ParamsSectionTrapez extends ParamsSection {
         private _LargeurFond: ParamDefinition; // Largeur au fond
         private _Fruit: ParamDefinition; // Fruit des berges
 
-        constructor(rLargeurFond: number, rFruit: number, rY: number, rKs: number, rQ: number, rIf: number, rPrec: number, rYB: number, rYCL: number = 0, rDx: number = 0, rLong: number = 0) {
-                super(rY, undefined, rKs, rQ, rIf, rPrec, rYB, rYCL);
-                this._LargeurFond = new ParamDefinition(ComputeNodeType.SectionTrapeze, 'LargeurFond', ParamDomainValue.POS_NULL, rLargeurFond);
-                this._Fruit = new ParamDefinition(ComputeNodeType.SectionTrapeze, 'Fruit', ParamDomainValue.POS_NULL, rFruit);
+        constructor(rLargeurFond: number, rFruit: number, rY: number, rKs: number, rQ: number, rIf: number, rPrec: number, rYB: number,
+                rYCL: number = undefined, rDx: number = undefined, rLong: number = undefined,
+                nodeType: ComputeNodeType = ComputeNodeType.SectionTrapeze,
+                defaultNodeType: ComputeNodeType = ComputeNodeType.SectionParametree) {
+                super(rY, undefined, rKs, rQ, rIf, rPrec, rYB, rYCL, rDx, rLong, defaultNodeType);
+                this._LargeurFond = new ParamDefinition(nodeType, 'LargeurFond', ParamDomainValue.POS_NULL, rLargeurFond);
+                this._Fruit = new ParamDefinition(nodeType, 'Fruit', ParamDomainValue.POS_NULL, rFruit);
         }
 
         /**
diff --git a/src/section/section_type.ts b/src/section/section_type.ts
index bb0595d0..e037d6a6 100644
--- a/src/section/section_type.ts
+++ b/src/section/section_type.ts
@@ -103,10 +103,12 @@ export abstract class ParamsSection extends cParamsCanal {
         private _Y: ParamDefinition;          // Tirant d'eau
         private _LargeurBerge: ParamDefinition; // largeur au débordement
 
-        constructor(rY: number, rLargeurBerge: number, rKs: number, rQ: number, rIf: number, rPrec: number, rYB: number, rYCL: number = undefined, rDx: number = undefined, rLong: number = undefined) {
-                super(ComputeNodeType.SectionParametree, rKs, rQ, rIf, rPrec, rYB, rYCL, rDx, rLong);
-                this._Y = new ParamDefinition(ComputeNodeType.SectionParametree, 'Y', ParamDomainValue.POS_NULL, rY);
-                this._LargeurBerge = new ParamDefinition(ComputeNodeType.SectionParametree, 'LargeurBerge', ParamDomainValue.POS_NULL, rLargeurBerge);
+        constructor(rY: number, rLargeurBerge: number, rKs: number, rQ: number, rIf: number, rPrec: number, rYB: number,
+                rYCL: number = undefined, rDx: number = undefined, rLong: number = undefined,
+                nodeType: ComputeNodeType = ComputeNodeType.SectionParametree) {
+                super(nodeType, rKs, rQ, rIf, rPrec, rYB, rYCL, rDx, rLong);
+                this._Y = new ParamDefinition(nodeType, 'Y', ParamDomainValue.POS_NULL, rY);
+                this._LargeurBerge = new ParamDefinition(nodeType, 'LargeurBerge', ParamDomainValue.POS_NULL, rLargeurBerge);
         }
 
         /**
-- 
GitLab