UNPKG

vue-cesium

Version:
49 lines (45 loc) 2.09 kB
'use strict'; Object.defineProperty(exports, '__esModule', { value: true }); "use strict"; class TimelineTrack { constructor(interval, pixelHeight, color, backgroundColor) { const { Color } = Cesium; this.interval = interval; this.height = pixelHeight; this.color = color || new Color(0.5, 0.5, 0.5, 1); this.backgroundColor = backgroundColor || new Color(0, 0, 0, 0); } render(context, renderState) { const { JulianDate, defined } = Cesium; const startInterval = this.interval.start; const stopInterval = this.interval.stop; const spanStart = renderState.startJulian; const spanStop = JulianDate.addSeconds(renderState.startJulian, renderState.duration, new JulianDate()); if (JulianDate.lessThan(startInterval, spanStart) && JulianDate.greaterThan(stopInterval, spanStop)) { context.fillStyle = this.color.toCssColorString(); context.fillRect(0, renderState.y, renderState.timeBarWidth, this.height); } else if (JulianDate.lessThanOrEquals(startInterval, spanStop) && JulianDate.greaterThanOrEquals(stopInterval, spanStart)) { let x; let start, stop; for (x = 0; x < renderState.timeBarWidth; ++x) { const currentTime = JulianDate.addSeconds(renderState.startJulian, x / renderState.timeBarWidth * renderState.duration, new JulianDate()); if (!defined(start) && JulianDate.greaterThanOrEquals(currentTime, startInterval)) { start = x; } else if (!defined(stop) && JulianDate.greaterThanOrEquals(currentTime, stopInterval)) { stop = x; } } context.fillStyle = this.backgroundColor.toCssColorString(); context.fillRect(0, renderState.y, renderState.timeBarWidth, this.height); if (defined(start)) { if (!defined(stop)) { stop = renderState.timeBarWidth; } context.fillStyle = this.color.toCssColorString(); context.fillRect(start, renderState.y, Math.max(stop - start, 1), this.height); } } } } exports["default"] = TimelineTrack; //# sourceMappingURL=TimelineTrack.js.map