An error occurred while loading the file. Please try again.
-
Pierre-Antoine Rouby authorededc5b652
import { Result } from "../util/result";
import { ParamDefinition, ParamDomainValue, ParamCalculability, ParamsEquation, CalculatorType } from "../param";
import { Nub } from "../nub";
export class PabDimensionParams extends ParamsEquation {
[key: string]: any; // pour pouvoir faire this['methode]();
/** Longueur L */
private _L: ParamDefinition;
/** Largeur W */
private _W: ParamDefinition;
/** Tirant d'eau Y */
private _Y: ParamDefinition;
/** Volume V */
private _V: ParamDefinition;
constructor(rL: number, rW: number, rY: number, rV: number = undefined) {
super();
this._L = new ParamDefinition(CalculatorType.PabDimensions, 'L', ParamDomainValue.POS, rL);
this._W = new ParamDefinition(CalculatorType.PabDimensions, 'W', ParamDomainValue.POS, rW);
this._Y = new ParamDefinition(CalculatorType.PabDimensions, 'Y', ParamDomainValue.POS, rY);
this._V = new ParamDefinition(CalculatorType.PabDimensions, 'V', ParamDomainValue.POS, rV);
this.addParamDefinition(this._L);
this.addParamDefinition(this._W);
this.addParamDefinition(this._Y);
this.addParamDefinition(this._V);
}
get L() {
return this._L;
}
get W() {
return this._W;
}
get Y() {
return this._Y;
}
get V() {
return this._V;
}
}
export class PabDimension extends Nub {
constructor(prms: PabDimensionParams, dbg: boolean = false) {
super(prms, dbg);
}
/**
* paramètres castés au bon type
*/
get prms(): PabDimensionParams {
return <PabDimensionParams>this._prms;
}
/**
* paramétrage de la calculabilité des paramètres
*/
protected setParametersCalculability() {
this.prms.L.calculability = ParamCalculability.EQUATION;
this.prms.W.calculability = ParamCalculability.EQUATION;
this.prms.Y.calculability = ParamCalculability.EQUATION;
this.prms.V.calculability = ParamCalculability.EQUATION;
}
71727374757677787980818283848586878889909192939495969798
Equation(sVarCalc: string): Result {
let v: number;
switch (sVarCalc) {
case "V":
v = this.prms.L.v * this.prms.W.v * this.prms.Y.v;
break;
case "L":
v = this.prms.V.v / this.prms.W.v / this.prms.Y.v;
break
case "W":
v = this.prms.V.v / this.prms.L.v / this.prms.Y.v;
break;
case "Y":
v = this.prms.V.v / this.prms.L.v / this.prms.W.v;
break;
default:
throw "PabDimension.Equation() : invalid variable name " + sVarCalc;
}
return new Result(v);
}
}