GeoScale, le retour de la vengeance

De nombreux composants de ma librairie javascript sont en hibernation depuis pas mal de temps, certains depuis des années. C'est le cas de GeoScale, objet permettant de gérer une échelle de temps géologique. J'ai décidé de m'y remettre ces derniers jours, pour le faire évoluer vers ce qui me serait le plus utile...

// Création d'une échelle géologique
var scale = new GeoScale();

// Récupérer la période Jurassique
// p1 === p2 === p3
var p1 = scale.getPeriod('jurassic'),
    p2 = scale.getEon('phanerozoic').getEra('mesozoic').getPeriod('jurassic'),
    p3 = scale.getLevel('jurassic');
;

// Récupérer l'éon Phanérozoïque
// e1 === e2 === e3
var e1 = scale.getEon('phanerozoic'),
    e2 = scale.getLevel('phanerozoic'),
    e3 = p1.getEra().getEon();

// Récupérer une époque possédant un nom générique.
var s1 = scale.getEpoch('lower', 'jurassic');

// Ajouter un événement au Jurassique inférieur
s1.addEvent(
    // Date (en MA)
    180, 
    // Titre
    "lorem ipsum",
    // Description
    "Lorem ipsum dolor sit amet, consecteteur adipiscing elit."
);

// Ajouter un événement sans savoir à quel strate il appartient
scale.addEvent(
    // Date (en MA)
    213, 
    // Titre
    "lorem ipsum",
    // Description
    "Lorem ipsum dolor sit amet, consecteteur adipiscing elit."
);

// Visualiser l'échelle géologique
var view = new GeoScaleView(scale);
view.render();
Exemple d'utilisation de l'objet GeoScale.

Les données de l'échelle sont stockées dans un fichier json construit à partir de l'échelle de temps géologique standard. Pour voir le résultat de ce petit exemple d'utilisation, il faudra attendre encore un peu...