UNPKG

angular-cesium

Version:
45 lines 5.93 kB
import { __decorate, __metadata } from "tslib"; 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. */ let PolylinePrimitiveDrawerService = 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.ctorParameters = () => [ { type: CesiumService } ]; PolylinePrimitiveDrawerService = __decorate([ Injectable(), __metadata("design:paramtypes", [CesiumService]) ], PolylinePrimitiveDrawerService); export { PolylinePrimitiveDrawerService }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9seWxpbmUtcHJpbWl0aXZlLWRyYXdlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vYW5ndWxhci1jZXNpdW0vIiwic291cmNlcyI6WyJsaWIvYW5ndWxhci1jZXNpdW0vc2VydmljZXMvZHJhd2Vycy9wb2x5bGluZS1wcmltaXRpdmUtZHJhd2VyL3BvbHlsaW5lLXByaW1pdGl2ZS1kcmF3ZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDNUQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sZ0RBQWdELENBQUM7QUFFekY7OztHQUdHO0FBRUgsSUFBYSw4QkFBOEIsR0FBM0MsTUFBYSw4QkFBK0IsU0FBUSx1QkFBdUI7SUFDekUsWUFBWSxhQUE0QjtRQUN0QyxLQUFLLENBQUMsTUFBTSxDQUFDLGtCQUFrQixFQUFFLGFBQWEsQ0FBQyxDQUFDO0lBQ2xELENBQUM7SUFFRCxHQUFHLENBQUMsV0FBZ0I7UUFDbEIsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDO0lBQ3pFLENBQUM7SUFFRCxNQUFNLENBQUMsWUFBaUIsRUFBRSxXQUFnQjtRQUN4QyxJQUFJLFdBQVcsQ0FBQyxRQUFRLFlBQVksTUFBTSxDQUFDLEtBQUssRUFBRTtZQUNoRCxJQUFJLFlBQVksQ0FBQyxRQUFRLElBQUksWUFBWSxDQUFDLFFBQVEsQ0FBQyxRQUFRO2dCQUN6RCxZQUFZLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxLQUFLLFlBQVksTUFBTSxDQUFDLEtBQUssRUFBRTtnQkFDOUQsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFdBQVcsQ0FBQyxDQUFDO2FBQ3JDO2lCQUFNLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsRUFBRTtnQkFDN0UsWUFBWSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsS0FBSyxHQUFHLFdBQVcsQ0FBQyxRQUFRLENBQUM7YUFDN0Q7U0FDRjtRQUNELEtBQUssQ0FBQyxNQUFNLENBQUMsWUFBWSxFQUFFLFdBQVcsQ0FBQyxDQUFDO0lBQzFDLENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxXQUFnQjtRQUNoQyxJQUFJLFdBQVcsQ0FBQyxRQUFRLFlBQVksTUFBTSxDQUFDLEtBQUssRUFBRTtZQUNoRCxNQUFNLFFBQVEsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUNuRCxRQUFRLENBQUMsUUFBUSxDQUFDLEtBQUssR0FBRyxXQUFXLENBQUMsUUFBUSxDQUFDO1lBQy9DLFdBQVcsQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO1NBQ2pDO1FBRUQsT0FBTyxXQUFXLENBQUM7SUFDckIsQ0FBQztDQUNGLENBQUE7O1lBN0I0QixhQUFhOztBQUQ3Qiw4QkFBOEI7SUFEMUMsVUFBVSxFQUFFO3FDQUVnQixhQUFhO0dBRDdCLDhCQUE4QixDQThCMUM7U0E5QlksOEJBQThCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ2VzaXVtU2VydmljZSB9IGZyb20gJy4uLy4uL2Nlc2l1bS9jZXNpdW0uc2VydmljZSc7XG5pbXBvcnQgeyBQcmltaXRpdmVzRHJhd2VyU2VydmljZSB9IGZyb20gJy4uL3ByaW1pdGl2ZXMtZHJhd2VyL3ByaW1pdGl2ZXMtZHJhd2VyLnNlcnZpY2UnO1xuXG4vKipcbiAqICBUaGlzIGRyYXdlciBpcyByZXNwb25zaWJsZSBvZiBkcmF3aW5nIHBvbHlsaW5lcyBhcyBwcmltaXRpdmVzLlxuICogIFRoaXMgZHJhd2VyIGlzIG1vcmUgZWZmaWNpZW50IHRoYW4gUG9seWxpbmVEcmF3ZXJTZXJ2aWNlIHdoZW4gZHJhd2luZyBkeW5hbWljIHBvbHlsaW5lcy5cbiAqL1xuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFBvbHlsaW5lUHJpbWl0aXZlRHJhd2VyU2VydmljZSBleHRlbmRzIFByaW1pdGl2ZXNEcmF3ZXJTZXJ2aWNlIHtcbiAgY29uc3RydWN0b3IoY2VzaXVtU2VydmljZTogQ2VzaXVtU2VydmljZSkge1xuICAgIHN1cGVyKENlc2l1bS5Qb2x5bGluZUNvbGxlY3Rpb24sIGNlc2l1bVNlcnZpY2UpO1xuICB9XG5cbiAgYWRkKGNlc2l1bVByb3BzOiBhbnkpIHtcbiAgICByZXR1cm4gdGhpcy5fY2VzaXVtQ29sbGVjdGlvbi5hZGQodGhpcy53aXRoQ29sb3JNYXRlcmlhbChjZXNpdW1Qcm9wcykpO1xuICB9XG5cbiAgdXBkYXRlKGNlc2l1bU9iamVjdDogYW55LCBjZXNpdW1Qcm9wczogYW55KSB7XG4gICAgaWYgKGNlc2l1bVByb3BzLm1hdGVyaWFsIGluc3RhbmNlb2YgQ2VzaXVtLkNvbG9yKSB7XG4gICAgICBpZiAoY2VzaXVtT2JqZWN0Lm1hdGVyaWFsICYmIGNlc2l1bU9iamVjdC5tYXRlcmlhbC51bmlmb3JtcyAmJlxuICAgICAgICBjZXNpdW1PYmplY3QubWF0ZXJpYWwudW5pZm9ybXMuY29sb3IgaW5zdGFuY2VvZiBDZXNpdW0uQ29sb3IpIHtcbiAgICAgICAgdGhpcy53aXRoQ29sb3JNYXRlcmlhbChjZXNpdW1Qcm9wcyk7XG4gICAgICB9IGVsc2UgaWYgKCFjZXNpdW1PYmplY3QubWF0ZXJpYWwudW5pZm9ybXMuY29sb3IuZXF1YWxzKGNlc2l1bVByb3BzLm1hdGVyaWFsKSkge1xuICAgICAgICBjZXNpdW1PYmplY3QubWF0ZXJpYWwudW5pZm9ybXMuY29sb3IgPSBjZXNpdW1Qcm9wcy5tYXRlcmlhbDtcbiAgICAgIH1cbiAgICB9XG4gICAgc3VwZXIudXBkYXRlKGNlc2l1bU9iamVjdCwgY2VzaXVtUHJvcHMpO1xuICB9XG5cbiAgd2l0aENvbG9yTWF0ZXJpYWwoY2VzaXVtUHJvcHM6IGFueSkge1xuICAgIGlmIChjZXNpdW1Qcm9wcy5tYXRlcmlhbCBpbnN0YW5jZW9mIENlc2l1bS5Db2xvcikge1xuICAgICAgY29uc3QgbWF0ZXJpYWwgPSBDZXNpdW0uTWF0ZXJpYWwuZnJvbVR5cGUoJ0NvbG9yJyk7XG4gICAgICBtYXRlcmlhbC51bmlmb3Jtcy5jb2xvciA9IGNlc2l1bVByb3BzLm1hdGVyaWFsO1xuICAgICAgY2VzaXVtUHJvcHMubWF0ZXJpYWwgPSBtYXRlcmlhbDtcbiAgICB9XG5cbiAgICByZXR1cm4gY2VzaXVtUHJvcHM7XG4gIH1cbn1cbiJdfQ==