From ee2f1a2c879aeea1c1d2a8fb5dd2a6fdfff48666 Mon Sep 17 00:00:00 2001 From: "mathias.chouet" <mathias.chouet@irstea.fr> Date: Mon, 29 Apr 2019 14:25:49 +0200 Subject: [PATCH] Fix #86 --- src/nub.ts | 10 ++++++++++ src/regime_uniforme.ts | 2 +- src/remous.ts | 2 +- src/section/section_nub.ts | 4 ---- src/section/section_parametree.ts | 2 +- src/structure/cloisons.ts | 14 +++++++++++--- 6 files changed, 24 insertions(+), 10 deletions(-) diff --git a/src/nub.ts b/src/nub.ts index d6132a92..f18235de 100644 --- a/src/nub.ts +++ b/src/nub.ts @@ -411,6 +411,8 @@ export abstract class Nub extends ComputeNode implements IObservable { child.parent = this; // propagate precision child.prms.Pr.setValue(this.prms.Pr.v); // does not write to .v to bypass calculability control + // postprocessing + this.adjustChildParameters(child); } public getChildren(): Nub[] { @@ -882,6 +884,8 @@ export abstract class Nub extends ComputeNode implements IObservable { } // add reference to parent collection (this) child.parent = this; + // postprocessing + this.adjustChildParameters(child); } /** @@ -1053,6 +1057,12 @@ export abstract class Nub extends ComputeNode implements IObservable { }, this); } + /** + * Optional postprocessing after adding / replacing a child + */ + // tslint:disable-next-line:no-empty + protected adjustChildParameters(child: Nub) {} + /** * Résoud l'équation par une méthode numérique * @param sVarCalc nom de la variable à calculer diff --git a/src/regime_uniforme.ts b/src/regime_uniforme.ts index 4a349f3b..bf0685c5 100644 --- a/src/regime_uniforme.ts +++ b/src/regime_uniforme.ts @@ -50,7 +50,7 @@ export class RegimeUniforme extends SectionNub { // tslint:disable-next-line:no-empty protected setParametersCalculability() {} - protected setSectionParametersCalculability(): void { + protected adjustChildParameters(): void { this.section.prms.Q.calculability = ParamCalculability.EQUATION; this.section.prms.Y.calculability = ParamCalculability.EQUATION; } diff --git a/src/remous.ts b/src/remous.ts index 234c1d8a..867f3cbf 100644 --- a/src/remous.ts +++ b/src/remous.ts @@ -519,7 +519,7 @@ export class CourbeRemous extends SectionNub { this.prms.Yaval.calculability = ParamCalculability.FREE; } - protected setSectionParametersCalculability(): void { + protected adjustChildParameters(): void { this.section.prms.Y.calculability = ParamCalculability.DICHO; } diff --git a/src/section/section_nub.ts b/src/section/section_nub.ts index 37cf0dff..c53b7cda 100644 --- a/src/section/section_nub.ts +++ b/src/section/section_nub.ts @@ -96,10 +96,6 @@ export abstract class SectionNub extends Nub { this._children[0] = undefined; } this.replaceChild(0, s); - this.setSectionParametersCalculability(); } } - - /** Called everytime a section is set / replaced */ - protected abstract setSectionParametersCalculability(): void; } diff --git a/src/section/section_parametree.ts b/src/section/section_parametree.ts index 874418aa..b3d03d8d 100644 --- a/src/section/section_parametree.ts +++ b/src/section/section_parametree.ts @@ -202,7 +202,7 @@ export class SectionParametree extends SectionNub { protected setParametersCalculability(): void {} // tslint:disable-next-line:no-empty - protected setSectionParametersCalculability(): void {} + protected adjustChildParameters(): void {} protected setExtraResultsFamilies() { this._extraResultsFamilies = { diff --git a/src/structure/cloisons.ts b/src/structure/cloisons.ts index 056bf4f2..5dd0b519 100644 --- a/src/structure/cloisons.ts +++ b/src/structure/cloisons.ts @@ -1,10 +1,11 @@ import { CalculatorType } from "../compute-node"; +import { Nub } from "../index"; import { PabPuissance, PabPuissanceParams } from "../pab/pab_puissance"; import { ParamCalculability } from "../param/param-definition"; import { Result } from "../util/result"; import { CloisonsParams } from "./cloisons_params"; import { ParallelStructure } from "./parallel_structure"; -import { StructureKiviParams } from "./structure_kivi"; +import { StructureKivi, StructureKiviParams } from "./structure_kivi"; import { loiAdmissiblesCloisons, LoiDebit } from "./structure_props"; export { CloisonsParams }; @@ -86,12 +87,19 @@ export class Cloisons extends ParallelStructure { ); r.extraResults.PV = puissanceNub.Calc("PV", 0).vCalc; - // Ajout de la cote de radier - r.extraResults.ZB = prms.Z1 - prms.DH - prms.PB; + // Ajout de la cote de radier de bassin + r.extraResults.ZRB = prms.Z1 - prms.DH - prms.PB; return r; } + public adjustChildParameters(child: Nub) { + if (child.prms instanceof StructureKiviParams) { + // hide ZRAM for KIVI, in Cloisons context only + child.prms.ZRAM.visible = false; + } + } + /** * paramétrage de la calculabilité des paramètres */ -- GitLab