64 lines
2.2 KiB
JavaScript
64 lines
2.2 KiB
JavaScript
define([
|
|
'../../Core/defaultValue',
|
|
'../../Core/JulianDate'
|
|
], function(
|
|
defaultValue,
|
|
JulianDate) {
|
|
'use strict';
|
|
|
|
/**
|
|
* @private
|
|
*/
|
|
function TimelineHighlightRange(color, heightInPx, base) {
|
|
this._color = color;
|
|
this._height = heightInPx;
|
|
this._base = defaultValue(base, 0);
|
|
}
|
|
|
|
TimelineHighlightRange.prototype.getHeight = function() {
|
|
return this._height;
|
|
};
|
|
|
|
TimelineHighlightRange.prototype.getBase = function() {
|
|
return this._base;
|
|
};
|
|
|
|
TimelineHighlightRange.prototype.getStartTime = function() {
|
|
return this._start;
|
|
};
|
|
|
|
TimelineHighlightRange.prototype.getStopTime = function() {
|
|
return this._stop;
|
|
};
|
|
|
|
TimelineHighlightRange.prototype.setRange = function(start, stop) {
|
|
this._start = start;
|
|
this._stop = stop;
|
|
};
|
|
|
|
TimelineHighlightRange.prototype.render = function(renderState) {
|
|
var range = '';
|
|
if (this._start && this._stop && this._color) {
|
|
var highlightStart = JulianDate.secondsDifference(this._start, renderState.epochJulian);
|
|
var highlightLeft = Math.round(renderState.timeBarWidth * renderState.getAlpha(highlightStart));
|
|
var highlightStop = JulianDate.secondsDifference(this._stop, renderState.epochJulian);
|
|
var highlightWidth = Math.round(renderState.timeBarWidth * renderState.getAlpha(highlightStop)) - highlightLeft;
|
|
if (highlightLeft < 0) {
|
|
highlightWidth += highlightLeft;
|
|
highlightLeft = 0;
|
|
}
|
|
if ((highlightLeft + highlightWidth) > renderState.timeBarWidth) {
|
|
highlightWidth = renderState.timeBarWidth - highlightLeft;
|
|
}
|
|
if (highlightWidth > 0) {
|
|
range = '<span class="cesium-timeline-highlight" style="left: ' + highlightLeft.toString() +
|
|
'px; width: ' + highlightWidth.toString() + 'px; bottom: ' + this._base.toString() +
|
|
'px; height: ' + this._height + 'px; background-color: ' + this._color + ';"></span>';
|
|
}
|
|
}
|
|
return range;
|
|
};
|
|
|
|
return TimelineHighlightRange;
|
|
});
|