objets/CValeurAngle.js

/*
 * MathGraph32 Javascript : Software for animating online dynamic mathematics figures
 * https://www.mathgraph32.org/
 * @Author Yves Biton (yves.biton@sesamath.net)
 * @License: GNU AGPLv3 https://www.gnu.org/licenses/agpl-3.0.html
 */
import { ConvDegRad, mesurePrincipale, uniteAngleDegre } from '../kernel/kernel'
import CValeur from './CValeur'

export default CValeurAngle
// Modifié par rapport à la verion Java : hérite de CValeur

/**
 * Classe représentant une valeur dynamique d'angle définie par un calcul sur des objets
 * numériques de la figure.
 * @constructor
 * @extends CValeur
 * @param {CListeObjets} listeProprietaire
 * @param {CCb|number} calcul  pointe sur le calcul donnant le résultat
 * @returns {CValeurAngle}
 */
function CValeurAngle (listeProprietaire, calcul) {
  CValeur.call(this, listeProprietaire, calcul)
}
CValeurAngle.prototype = new CValeur()
CValeurAngle.prototype.constructor = CValeurAngle
CValeurAngle.prototype.superClass = 'CValeur'
CValeurAngle.prototype.className = 'CValeurAngle'

CValeurAngle.prototype.getClone = function (listeSource, listeCible) {
  const calculClone = this.calcul.getClone(listeSource, listeCible)
  return new CValeurAngle(listeCible, calculClone, this.valeur)
}
CValeurAngle.prototype.rendValeurRadian = function () {
  let val = this.valeur
  if (this.listeProprietaire.uniteAngle === uniteAngleDegre) val = val * ConvDegRad
  val = mesurePrincipale(val)
  return val
}