An error occurred while loading the file. Please try again.
-
Dorchies David authored965ae8d3
import { Message, MessageCode } from "./util/message";
/**
* Résultat de calcul comprenant la valeur du résultat et des calculs annexes (flag, calculs intermédiaires...)
*/
export class Result {
/** Valeur calculée */
private _vCalc: number;
/** Calculs intermédiaires ou supplémentaires, flags de calcul */
public extraVar: { [key: string]: any };
private _message: Message;
constructor(v: number, m: Message = undefined, e: { [key: string]: any } = {}) {
this._vCalc = v;
this._message = m;
this.extraVar = e;
};
get vCalc() { return this._vCalc; }
set vCalc(v: number) {
this._vCalc = v;
}
get code() {
if (this._message == undefined)
return MessageCode.ERROR_OK;
return this._message.code;
}
get Message() { return this._message; }
}
/**
* Série de valeurs à calculer définie par le nom de la variable à sérier et le vecteur de valeur
*/
export class Serie {
public name: string;
public values: number[];
constructor(name: string, values: number[]) {
this.name = name;
this.values = values;
}
}
/**
* Gestion des messages de debogage dans la console
* @note Etendre cette classe pour toutes les classes à debugguer
* Dans le constructeur, utiliser super(true) pour debugger la classe, super(false) sinon.
*/
export abstract class Debug {
/**
* @param _DBG Flag de débuggage
*/
constructor(private _DBG: boolean) { }
/**
* Affiche un message dans la console si le flag this.DBG est à true
* @param s Message à afficher dans la console
*/
protected debug(s: any) {
if (this._DBG) console.log(s);
}
get DBG() { return this._DBG; }
}
7172737475767778798081828384858687888990919293949596979899100
/**
* Méthode simulant l'opérateur booléen xor
* @see http://www.howtocreate.co.uk/xor.html
*/
export function XOR(a: boolean, b: boolean): boolean {
return (a || b) && !(a && b);
}
/**
* Méthode simulant l'opérateur booléen identité (vrai si a=b)
*/
export function BoolIdentity(a: boolean, b: boolean): boolean {
return (a && b) || (!a && !b);
}
/**
* arrondi d'un nombre avec une précision donnée
* @param val nombre à arrondir
* @param prec nombre de chiffres
*/
export function round(val: number, prec: number) {
let m = Math.pow(10, prec || 0);
return Math.round(val * m) / m;
}
// export class UndefinedError extends Error {
// }