UNPKG

angular-cesium

Version:
42 lines 5.81 kB
import { Injectable } from '@angular/core'; import { CesiumService } from '../../cesium/cesium.service'; import { PrimitivesDrawerService } from '../primitives-drawer/primitives-drawer.service'; /** * This drawer is responsible of drawing polylines as primitives. * This drawer is more efficient than PolylineDrawerService when drawing dynamic polylines. */ export class PolylinePrimitiveDrawerService extends PrimitivesDrawerService { constructor(cesiumService) { super(Cesium.PolylineCollection, cesiumService); } add(cesiumProps) { return this._cesiumCollection.add(this.withColorMaterial(cesiumProps)); } update(cesiumObject, cesiumProps) { if (cesiumProps.material instanceof Cesium.Color) { if (cesiumObject.material && cesiumObject.material.uniforms && cesiumObject.material.uniforms.color instanceof Cesium.Color) { this.withColorMaterial(cesiumProps); } else if (!cesiumObject.material.uniforms.color.equals(cesiumProps.material)) { cesiumObject.material.uniforms.color = cesiumProps.material; } } super.update(cesiumObject, cesiumProps); } withColorMaterial(cesiumProps) { if (cesiumProps.material instanceof Cesium.Color) { const material = Cesium.Material.fromType('Color'); material.uniforms.color = cesiumProps.material; cesiumProps.material = material; } return cesiumProps; } } PolylinePrimitiveDrawerService.decorators = [ { type: Injectable } ]; PolylinePrimitiveDrawerService.ctorParameters = () => [ { type: CesiumService } ]; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9seWxpbmUtcHJpbWl0aXZlLWRyYXdlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci1jZXNpdW0vc3JjL2xpYi9hbmd1bGFyLWNlc2l1bS9zZXJ2aWNlcy9kcmF3ZXJzL3BvbHlsaW5lLXByaW1pdGl2ZS1kcmF3ZXIvcG9seWxpbmUtcHJpbWl0aXZlLWRyYXdlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzVELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGdEQUFnRCxDQUFDO0FBRXpGOzs7R0FHRztBQUVILE1BQU0sT0FBTyw4QkFBK0IsU0FBUSx1QkFBdUI7SUFDekUsWUFBWSxhQUE0QjtRQUN0QyxLQUFLLENBQUMsTUFBTSxDQUFDLGtCQUFrQixFQUFFLGFBQWEsQ0FBQyxDQUFDO0lBQ2xELENBQUM7SUFFRCxHQUFHLENBQUMsV0FBZ0I7UUFDbEIsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDO0lBQ3pFLENBQUM7SUFFRCxNQUFNLENBQUMsWUFBaUIsRUFBRSxXQUFnQjtRQUN4QyxJQUFJLFdBQVcsQ0FBQyxRQUFRLFlBQVksTUFBTSxDQUFDLEtBQUssRUFBRTtZQUNoRCxJQUFJLFlBQVksQ0FBQyxRQUFRLElBQUksWUFBWSxDQUFDLFFBQVEsQ0FBQyxRQUFRO2dCQUN6RCxZQUFZLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxLQUFLLFlBQVksTUFBTSxDQUFDLEtBQUssRUFBRTtnQkFDOUQsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFdBQVcsQ0FBQyxDQUFDO2FBQ3JDO2lCQUFNLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsRUFBRTtnQkFDN0UsWUFBWSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsS0FBSyxHQUFHLFdBQVcsQ0FBQyxRQUFRLENBQUM7YUFDN0Q7U0FDRjtRQUNELEtBQUssQ0FBQyxNQUFNLENBQUMsWUFBWSxFQUFFLFdBQVcsQ0FBQyxDQUFDO0lBQzFDLENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxXQUFnQjtRQUNoQyxJQUFJLFdBQVcsQ0FBQyxRQUFRLFlBQVksTUFBTSxDQUFDLEtBQUssRUFBRTtZQUNoRCxNQUFNLFFBQVEsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUNuRCxRQUFRLENBQUMsUUFBUSxDQUFDLEtBQUssR0FBRyxXQUFXLENBQUMsUUFBUSxDQUFDO1lBQy9DLFdBQVcsQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO1NBQ2pDO1FBRUQsT0FBTyxXQUFXLENBQUM7SUFDckIsQ0FBQzs7O1lBOUJGLFVBQVU7OztZQVBGLGFBQWEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENlc2l1bVNlcnZpY2UgfSBmcm9tICcuLi8uLi9jZXNpdW0vY2VzaXVtLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBQcmltaXRpdmVzRHJhd2VyU2VydmljZSB9IGZyb20gJy4uL3ByaW1pdGl2ZXMtZHJhd2VyL3ByaW1pdGl2ZXMtZHJhd2VyLnNlcnZpY2UnO1xyXG5cclxuLyoqXHJcbiAqICBUaGlzIGRyYXdlciBpcyByZXNwb25zaWJsZSBvZiBkcmF3aW5nIHBvbHlsaW5lcyBhcyBwcmltaXRpdmVzLlxyXG4gKiAgVGhpcyBkcmF3ZXIgaXMgbW9yZSBlZmZpY2llbnQgdGhhbiBQb2x5bGluZURyYXdlclNlcnZpY2Ugd2hlbiBkcmF3aW5nIGR5bmFtaWMgcG9seWxpbmVzLlxyXG4gKi9cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgUG9seWxpbmVQcmltaXRpdmVEcmF3ZXJTZXJ2aWNlIGV4dGVuZHMgUHJpbWl0aXZlc0RyYXdlclNlcnZpY2Uge1xyXG4gIGNvbnN0cnVjdG9yKGNlc2l1bVNlcnZpY2U6IENlc2l1bVNlcnZpY2UpIHtcclxuICAgIHN1cGVyKENlc2l1bS5Qb2x5bGluZUNvbGxlY3Rpb24sIGNlc2l1bVNlcnZpY2UpO1xyXG4gIH1cclxuXHJcbiAgYWRkKGNlc2l1bVByb3BzOiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLl9jZXNpdW1Db2xsZWN0aW9uLmFkZCh0aGlzLndpdGhDb2xvck1hdGVyaWFsKGNlc2l1bVByb3BzKSk7XHJcbiAgfVxyXG5cclxuICB1cGRhdGUoY2VzaXVtT2JqZWN0OiBhbnksIGNlc2l1bVByb3BzOiBhbnkpIHtcclxuICAgIGlmIChjZXNpdW1Qcm9wcy5tYXRlcmlhbCBpbnN0YW5jZW9mIENlc2l1bS5Db2xvcikge1xyXG4gICAgICBpZiAoY2VzaXVtT2JqZWN0Lm1hdGVyaWFsICYmIGNlc2l1bU9iamVjdC5tYXRlcmlhbC51bmlmb3JtcyAmJlxyXG4gICAgICAgIGNlc2l1bU9iamVjdC5tYXRlcmlhbC51bmlmb3Jtcy5jb2xvciBpbnN0YW5jZW9mIENlc2l1bS5Db2xvcikge1xyXG4gICAgICAgIHRoaXMud2l0aENvbG9yTWF0ZXJpYWwoY2VzaXVtUHJvcHMpO1xyXG4gICAgICB9IGVsc2UgaWYgKCFjZXNpdW1PYmplY3QubWF0ZXJpYWwudW5pZm9ybXMuY29sb3IuZXF1YWxzKGNlc2l1bVByb3BzLm1hdGVyaWFsKSkge1xyXG4gICAgICAgIGNlc2l1bU9iamVjdC5tYXRlcmlhbC51bmlmb3Jtcy5jb2xvciA9IGNlc2l1bVByb3BzLm1hdGVyaWFsO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBzdXBlci51cGRhdGUoY2VzaXVtT2JqZWN0LCBjZXNpdW1Qcm9wcyk7XHJcbiAgfVxyXG5cclxuICB3aXRoQ29sb3JNYXRlcmlhbChjZXNpdW1Qcm9wczogYW55KSB7XHJcbiAgICBpZiAoY2VzaXVtUHJvcHMubWF0ZXJpYWwgaW5zdGFuY2VvZiBDZXNpdW0uQ29sb3IpIHtcclxuICAgICAgY29uc3QgbWF0ZXJpYWwgPSBDZXNpdW0uTWF0ZXJpYWwuZnJvbVR5cGUoJ0NvbG9yJyk7XHJcbiAgICAgIG1hdGVyaWFsLnVuaWZvcm1zLmNvbG9yID0gY2VzaXVtUHJvcHMubWF0ZXJpYWw7XHJcbiAgICAgIGNlc2l1bVByb3BzLm1hdGVyaWFsID0gbWF0ZXJpYWw7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGNlc2l1bVByb3BzO1xyXG4gIH1cclxufVxyXG4iXX0=