webglimpse
Version:
Webglimpse is a data visualization library for the web.
77 lines • 10.7 kB
JavaScript
/*
* Copyright (c) 2014, Metron, Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without modification,
* are permitted provided that the following conditions are met:
*
* 1. Redistributions of source code must retain the above copyright notice, this
* list of conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
*
* 3. Neither the name of the copyright holder nor the names of its contributors
* may be used to endorse or promote products derived from this software without
* specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
* ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
import { Axis1D } from '../plot/axis';
export class TimeAxis1D extends Axis1D {
constructor(tMin_PMILLIS, tMax_PMILLIS, tMinLimit_PMILLIS = 0, tMaxLimit_PMILLIS = 253402329599000) {
const epoch_PMILLIS = 0.5 * (tMin_PMILLIS + tMax_PMILLIS);
super(tMin_PMILLIS - epoch_PMILLIS, tMax_PMILLIS - epoch_PMILLIS, tMinLimit_PMILLIS - epoch_PMILLIS, tMaxLimit_PMILLIS - epoch_PMILLIS);
this._epoch_PMILLIS = epoch_PMILLIS;
}
get tMin_PMILLIS() {
return (this._epoch_PMILLIS + this.vMin);
}
get tMax_PMILLIS() {
return (this._epoch_PMILLIS + this.vMax);
}
get tMinLimit_PMILLIS() {
return (this._epoch_PMILLIS + this.vMinLimit);
}
get tMaxLimit_PMILLIS() {
return (this._epoch_PMILLIS + this.vMaxLimit);
}
set tMin_PMILLIS(tMin_PMILLIS) {
this.vMin = (tMin_PMILLIS - this._epoch_PMILLIS);
}
set tMax_PMILLIS(tMax_PMILLIS) {
this.vMax = (tMax_PMILLIS - this._epoch_PMILLIS);
}
setTRange_PMILLIS(tMin_PMILLIS, tMax_PMILLIS) {
this.setVRange(tMin_PMILLIS - this._epoch_PMILLIS, tMax_PMILLIS - this._epoch_PMILLIS);
}
get tSize_MILLIS() {
return this.vSize;
}
vAtTime(t_PMILLIS) {
return (t_PMILLIS - this._epoch_PMILLIS);
}
tAtFrac_PMILLIS(tFrac) {
return (this._epoch_PMILLIS + this.vAtFrac(tFrac));
}
tFrac(t_PMILLIS) {
return this.vFrac(t_PMILLIS - this._epoch_PMILLIS);
}
tPan(tAmount_MILLIS) {
this.pan(tAmount_MILLIS);
}
tZoom(factor, tAnchor_PMILLIS) {
this.zoom(factor, tAnchor_PMILLIS - this._epoch_PMILLIS);
}
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZV9heGlzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3dlYmdsaW1wc2UvdGltZWxpbmUvdGltZV9heGlzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBNEJHO0FBQ0gsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUd0QyxNQUFNLE9BQU8sVUFBVyxTQUFRLE1BQU07SUFJbEMsWUFBWSxZQUFvQixFQUFFLFlBQW9CLEVBQUUsaUJBQWlCLEdBQUcsQ0FBQyxFQUFFLGlCQUFpQixHQUFHLGVBQWU7UUFDOUcsTUFBTSxhQUFhLEdBQUcsR0FBRyxHQUFHLENBQUMsWUFBWSxHQUFHLFlBQVksQ0FBQyxDQUFDO1FBQzFELEtBQUssQ0FBQyxZQUFZLEdBQUcsYUFBYSxFQUFFLFlBQVksR0FBRyxhQUFhLEVBQUUsaUJBQWlCLEdBQUcsYUFBYSxFQUFFLGlCQUFpQixHQUFHLGFBQWEsQ0FBQyxDQUFDO1FBQ3hJLElBQUksQ0FBQyxjQUFjLEdBQUcsYUFBYSxDQUFDO0lBQ3hDLENBQUM7SUFFRCxJQUFJLFlBQVk7UUFDWixPQUFPLENBQUMsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDN0MsQ0FBQztJQUVELElBQUksWUFBWTtRQUNaLE9BQU8sQ0FBQyxJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUM3QyxDQUFDO0lBRUQsSUFBSSxpQkFBaUI7UUFDakIsT0FBTyxDQUFDLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ2xELENBQUM7SUFFRCxJQUFJLGlCQUFpQjtRQUNqQixPQUFPLENBQUMsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDbEQsQ0FBQztJQUVELElBQUksWUFBWSxDQUFDLFlBQW9CO1FBQ2pDLElBQUksQ0FBQyxJQUFJLEdBQUcsQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQ3JELENBQUM7SUFFRCxJQUFJLFlBQVksQ0FBQyxZQUFvQjtRQUNqQyxJQUFJLENBQUMsSUFBSSxHQUFHLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUNyRCxDQUFDO0lBRUQsaUJBQWlCLENBQUMsWUFBb0IsRUFBRSxZQUFvQjtRQUN4RCxJQUFJLENBQUMsU0FBUyxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsY0FBYyxFQUFFLFlBQVksR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDM0YsQ0FBQztJQUVELElBQUksWUFBWTtRQUNaLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQztJQUN0QixDQUFDO0lBRUQsT0FBTyxDQUFDLFNBQWlCO1FBQ3JCLE9BQU8sQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFFRCxlQUFlLENBQUMsS0FBYTtRQUN6QixPQUFPLENBQUMsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDdkQsQ0FBQztJQUVELEtBQUssQ0FBQyxTQUFpQjtRQUNuQixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUN2RCxDQUFDO0lBRUQsSUFBSSxDQUFDLGNBQXNCO1FBQ3ZCLElBQUksQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDN0IsQ0FBQztJQUVELEtBQUssQ0FBQyxNQUFjLEVBQUUsZUFBdUI7UUFDekMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsZUFBZSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUM3RCxDQUFDO0NBRUoiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxyXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTQsIE1ldHJvbiwgSW5jLlxyXG4gKiBBbGwgcmlnaHRzIHJlc2VydmVkLlxyXG4gKlxyXG4gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9uLFxyXG4gKiBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZSBtZXQ6XHJcbiAqXHJcbiAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSwgdGhpc1xyXG4gKiAgICBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci5cclxuICpcclxuICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlLFxyXG4gKiAgICB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZSBkb2N1bWVudGF0aW9uXHJcbiAqICAgIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLlxyXG4gKlxyXG4gKiAzLiBOZWl0aGVyIHRoZSBuYW1lIG9mIHRoZSBjb3B5cmlnaHQgaG9sZGVyIG5vciB0aGUgbmFtZXMgb2YgaXRzIGNvbnRyaWJ1dG9yc1xyXG4gKiAgICBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dFxyXG4gKiAgICBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uXHJcbiAqXHJcbiAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMgXCJBUyBJU1wiIEFORFxyXG4gKiBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRFxyXG4gKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFXHJcbiAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQgSE9MREVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SXHJcbiAqIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFU1xyXG4gKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7XHJcbiAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTlxyXG4gKiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVFxyXG4gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJU1xyXG4gKiBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS5cclxuICovXHJcbmltcG9ydCB7IEF4aXMxRCB9IGZyb20gJy4uL3Bsb3QvYXhpcyc7XHJcblxyXG5cclxuZXhwb3J0IGNsYXNzIFRpbWVBeGlzMUQgZXh0ZW5kcyBBeGlzMUQge1xyXG5cclxuICAgIHByaXZhdGUgX2Vwb2NoX1BNSUxMSVM6IG51bWJlcjtcclxuXHJcbiAgICBjb25zdHJ1Y3Rvcih0TWluX1BNSUxMSVM6IG51bWJlciwgdE1heF9QTUlMTElTOiBudW1iZXIsIHRNaW5MaW1pdF9QTUlMTElTID0gMCwgdE1heExpbWl0X1BNSUxMSVMgPSAyNTM0MDIzMjk1OTkwMDApIHtcclxuICAgICAgICBjb25zdCBlcG9jaF9QTUlMTElTID0gMC41ICogKHRNaW5fUE1JTExJUyArIHRNYXhfUE1JTExJUyk7XHJcbiAgICAgICAgc3VwZXIodE1pbl9QTUlMTElTIC0gZXBvY2hfUE1JTExJUywgdE1heF9QTUlMTElTIC0gZXBvY2hfUE1JTExJUywgdE1pbkxpbWl0X1BNSUxMSVMgLSBlcG9jaF9QTUlMTElTLCB0TWF4TGltaXRfUE1JTExJUyAtIGVwb2NoX1BNSUxMSVMpO1xyXG4gICAgICAgIHRoaXMuX2Vwb2NoX1BNSUxMSVMgPSBlcG9jaF9QTUlMTElTO1xyXG4gICAgfVxyXG5cclxuICAgIGdldCB0TWluX1BNSUxMSVMoKTogbnVtYmVyIHtcclxuICAgICAgICByZXR1cm4gKHRoaXMuX2Vwb2NoX1BNSUxMSVMgKyB0aGlzLnZNaW4pO1xyXG4gICAgfVxyXG5cclxuICAgIGdldCB0TWF4X1BNSUxMSVMoKTogbnVtYmVyIHtcclxuICAgICAgICByZXR1cm4gKHRoaXMuX2Vwb2NoX1BNSUxMSVMgKyB0aGlzLnZNYXgpO1xyXG4gICAgfVxyXG5cclxuICAgIGdldCB0TWluTGltaXRfUE1JTExJUygpOiBudW1iZXIge1xyXG4gICAgICAgIHJldHVybiAodGhpcy5fZXBvY2hfUE1JTExJUyArIHRoaXMudk1pbkxpbWl0KTtcclxuICAgIH1cclxuXHJcbiAgICBnZXQgdE1heExpbWl0X1BNSUxMSVMoKTogbnVtYmVyIHtcclxuICAgICAgICByZXR1cm4gKHRoaXMuX2Vwb2NoX1BNSUxMSVMgKyB0aGlzLnZNYXhMaW1pdCk7XHJcbiAgICB9XHJcblxyXG4gICAgc2V0IHRNaW5fUE1JTExJUyh0TWluX1BNSUxMSVM6IG51bWJlcikge1xyXG4gICAgICAgIHRoaXMudk1pbiA9ICh0TWluX1BNSUxMSVMgLSB0aGlzLl9lcG9jaF9QTUlMTElTKTtcclxuICAgIH1cclxuXHJcbiAgICBzZXQgdE1heF9QTUlMTElTKHRNYXhfUE1JTExJUzogbnVtYmVyKSB7XHJcbiAgICAgICAgdGhpcy52TWF4ID0gKHRNYXhfUE1JTExJUyAtIHRoaXMuX2Vwb2NoX1BNSUxMSVMpO1xyXG4gICAgfVxyXG5cclxuICAgIHNldFRSYW5nZV9QTUlMTElTKHRNaW5fUE1JTExJUzogbnVtYmVyLCB0TWF4X1BNSUxMSVM6IG51bWJlcikge1xyXG4gICAgICAgIHRoaXMuc2V0VlJhbmdlKHRNaW5fUE1JTExJUyAtIHRoaXMuX2Vwb2NoX1BNSUxMSVMsIHRNYXhfUE1JTExJUyAtIHRoaXMuX2Vwb2NoX1BNSUxMSVMpO1xyXG4gICAgfVxyXG5cclxuICAgIGdldCB0U2l6ZV9NSUxMSVMoKTogbnVtYmVyIHtcclxuICAgICAgICByZXR1cm4gdGhpcy52U2l6ZTtcclxuICAgIH1cclxuXHJcbiAgICB2QXRUaW1lKHRfUE1JTExJUzogbnVtYmVyKTogbnVtYmVyIHtcclxuICAgICAgICByZXR1cm4gKHRfUE1JTExJUyAtIHRoaXMuX2Vwb2NoX1BNSUxMSVMpO1xyXG4gICAgfVxyXG5cclxuICAgIHRBdEZyYWNfUE1JTExJUyh0RnJhYzogbnVtYmVyKTogbnVtYmVyIHtcclxuICAgICAgICByZXR1cm4gKHRoaXMuX2Vwb2NoX1BNSUxMSVMgKyB0aGlzLnZBdEZyYWModEZyYWMpKTtcclxuICAgIH1cclxuXHJcbiAgICB0RnJhYyh0X1BNSUxMSVM6IG51bWJlcik6IG51bWJlciB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMudkZyYWModF9QTUlMTElTIC0gdGhpcy5fZXBvY2hfUE1JTExJUyk7XHJcbiAgICB9XHJcblxyXG4gICAgdFBhbih0QW1vdW50X01JTExJUzogbnVtYmVyKSB7XHJcbiAgICAgICAgdGhpcy5wYW4odEFtb3VudF9NSUxMSVMpO1xyXG4gICAgfVxyXG5cclxuICAgIHRab29tKGZhY3RvcjogbnVtYmVyLCB0QW5jaG9yX1BNSUxMSVM6IG51bWJlcikge1xyXG4gICAgICAgIHRoaXMuem9vbShmYWN0b3IsIHRBbmNob3JfUE1JTExJUyAtIHRoaXMuX2Vwb2NoX1BNSUxMSVMpO1xyXG4gICAgfVxyXG5cclxufVxyXG5cclxuXHJcbiJdfQ==