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