UNPKG

@eliorar/angular-cesium

Version:

Angular library for working with Cesium.

45 lines 8.6 kB
import { Directive, Input } from '@angular/core'; import { BasicDesc } from '../basic-desc/basic-desc.service'; import * as i0 from "@angular/core"; import * as i1 from "../drawers/static-dynamic/static-primitive-drawer/static-primitive-drawer.service"; import * as i2 from "../layer-service/layer-service.service"; import * as i3 from "../computation-cache/computation-cache.service"; import * as i4 from "../cesium-properties/cesium-properties.service"; export class BasicStaticPrimitiveDesc extends BasicDesc { constructor(_staticPrimitiveDrawer, layerService, computationCache, cesiumProperties) { super(_staticPrimitiveDrawer, layerService, computationCache, cesiumProperties); this._staticPrimitiveDrawer = _staticPrimitiveDrawer; } ngOnInit() { this._layerService.registerDescription(this); this._geometryPropsEvaluator = this._cesiumProperties.createEvaluator(this.geometryProps); this._instancePropsEvaluator = this._cesiumProperties.createEvaluator(this.instanceProps); this._primitivePropsEvaluator = this._cesiumProperties.createEvaluator(this.primitiveProps); } draw(context, id, entity) { const geometryProps = this._geometryPropsEvaluator(this._computationCache, context); const instanceProps = this._instancePropsEvaluator(this._computationCache, context); const primitiveProps = this._primitivePropsEvaluator(this._computationCache, context); if (!this._cesiumObjectsMap.has(id)) { const primitive = this._staticPrimitiveDrawer.add(geometryProps, instanceProps, primitiveProps); primitive.acEntity = entity; // set the entity on the primitive for later usage this._cesiumObjectsMap.set(id, primitive); } else { const primitive = this._cesiumObjectsMap.get(id); this._staticPrimitiveDrawer.update(primitive, geometryProps, instanceProps, primitiveProps); } } } BasicStaticPrimitiveDesc.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: BasicStaticPrimitiveDesc, deps: [{ token: i1.StaticPrimitiveDrawer }, { token: i2.LayerService }, { token: i3.ComputationCache }, { token: i4.CesiumProperties }], target: i0.ɵɵFactoryTarget.Directive }); BasicStaticPrimitiveDesc.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.4.0", type: BasicStaticPrimitiveDesc, inputs: { geometryProps: "geometryProps", instanceProps: "instanceProps", primitiveProps: "primitiveProps" }, usesInheritance: true, ngImport: i0 }); i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: BasicStaticPrimitiveDesc, decorators: [{ type: Directive }], ctorParameters: function () { return [{ type: i1.StaticPrimitiveDrawer }, { type: i2.LayerService }, { type: i3.ComputationCache }, { type: i4.CesiumProperties }]; }, propDecorators: { geometryProps: [{ type: Input }], instanceProps: [{ type: Input }], primitiveProps: [{ type: Input }] } }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzaWMtc3RhdGljLXByaW1pdGl2ZS1kZXNjLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLWNlc2l1bS9zcmMvbGliL2FuZ3VsYXItY2VzaXVtL3NlcnZpY2VzL2Jhc2ljLXByaW1pdGl2ZS1kZXNjL2Jhc2ljLXN0YXRpYy1wcmltaXRpdmUtZGVzYy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsS0FBSyxFQUFTLE1BQU0sZUFBZSxDQUFDO0FBQ3ZELE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxrQ0FBa0MsQ0FBQzs7Ozs7O0FBUTNELE1BQU0sT0FBTyx3QkFBeUIsU0FBUSxTQUFTO0lBWXJELFlBQXNCLHNCQUE2QyxFQUFFLFlBQTBCLEVBQ25GLGdCQUFrQyxFQUFFLGdCQUFrQztRQUNoRixLQUFLLENBQUMsc0JBQXNCLEVBQUUsWUFBWSxFQUFFLGdCQUFnQixFQUFFLGdCQUFnQixDQUFDLENBQUM7UUFGNUQsMkJBQXNCLEdBQXRCLHNCQUFzQixDQUF1QjtJQUduRSxDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxhQUFhLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFN0MsSUFBSSxDQUFDLHVCQUF1QixHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQzFGLElBQUksQ0FBQyx1QkFBdUIsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUMxRixJQUFJLENBQUMsd0JBQXdCLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDOUYsQ0FBQztJQUVELElBQUksQ0FBQyxPQUFZLEVBQUUsRUFBVSxFQUFFLE1BQWdCO1FBQzdDLE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDcEYsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLHVCQUF1QixDQUFDLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxPQUFPLENBQUMsQ0FBQztRQUNwRixNQUFNLGNBQWMsR0FBRyxJQUFJLENBQUMsd0JBQXdCLENBQUMsSUFBSSxDQUFDLGlCQUFpQixFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBRXRGLElBQUksQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFO1lBQ25DLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLGFBQWEsRUFBRSxjQUFjLENBQUMsQ0FBQztZQUNoRyxTQUFTLENBQUMsUUFBUSxHQUFHLE1BQU0sQ0FBQyxDQUFDLGtEQUFrRDtZQUMvRSxJQUFJLENBQUMsaUJBQWlCLENBQUMsR0FBRyxDQUFDLEVBQUUsRUFBRSxTQUFTLENBQUMsQ0FBQztTQUMzQzthQUFNO1lBQ0wsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUNqRCxJQUFJLENBQUMsc0JBQXNCLENBQUMsTUFBTSxDQUFDLFNBQVMsRUFBRSxhQUFhLEVBQUUsYUFBYSxFQUFFLGNBQWMsQ0FBQyxDQUFDO1NBQzdGO0lBQ0gsQ0FBQzs7cUhBdENVLHdCQUF3Qjt5R0FBeEIsd0JBQXdCOzJGQUF4Qix3QkFBd0I7a0JBRHBDLFNBQVM7cU1BR1IsYUFBYTtzQkFEWixLQUFLO2dCQUdOLGFBQWE7c0JBRFosS0FBSztnQkFHTixjQUFjO3NCQURiLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0RpcmVjdGl2ZSwgSW5wdXQsIE9uSW5pdH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0Jhc2ljRGVzY30gZnJvbSAnLi4vYmFzaWMtZGVzYy9iYXNpYy1kZXNjLnNlcnZpY2UnO1xuaW1wb3J0IHtMYXllclNlcnZpY2V9IGZyb20gJy4uL2xheWVyLXNlcnZpY2UvbGF5ZXItc2VydmljZS5zZXJ2aWNlJztcbmltcG9ydCB7Q29tcHV0YXRpb25DYWNoZX0gZnJvbSAnLi4vY29tcHV0YXRpb24tY2FjaGUvY29tcHV0YXRpb24tY2FjaGUuc2VydmljZSc7XG5pbXBvcnQge0Nlc2l1bVByb3BlcnRpZXN9IGZyb20gJy4uL2Nlc2l1bS1wcm9wZXJ0aWVzL2Nlc2l1bS1wcm9wZXJ0aWVzLnNlcnZpY2UnO1xuaW1wb3J0IHtTdGF0aWNQcmltaXRpdmVEcmF3ZXJ9IGZyb20gJy4uL2RyYXdlcnMvc3RhdGljLWR5bmFtaWMvc3RhdGljLXByaW1pdGl2ZS1kcmF3ZXIvc3RhdGljLXByaW1pdGl2ZS1kcmF3ZXIuc2VydmljZSc7XG5pbXBvcnQge0FjRW50aXR5fSBmcm9tICcuLi8uLi9tb2RlbHMvYWMtZW50aXR5JztcblxuQERpcmVjdGl2ZSgpXG5leHBvcnQgY2xhc3MgQmFzaWNTdGF0aWNQcmltaXRpdmVEZXNjIGV4dGVuZHMgQmFzaWNEZXNjIGltcGxlbWVudHMgT25Jbml0IHtcbiAgQElucHV0KClcbiAgZ2VvbWV0cnlQcm9wczogYW55O1xuICBASW5wdXQoKVxuICBpbnN0YW5jZVByb3BzOiBhbnk7XG4gIEBJbnB1dCgpXG4gIHByaW1pdGl2ZVByb3BzOiBhbnk7XG5cbiAgcHJpdmF0ZSBfZ2VvbWV0cnlQcm9wc0V2YWx1YXRvcjogRnVuY3Rpb247XG4gIHByaXZhdGUgX2luc3RhbmNlUHJvcHNFdmFsdWF0b3I6IEZ1bmN0aW9uO1xuICBwcml2YXRlIF9wcmltaXRpdmVQcm9wc0V2YWx1YXRvcjogRnVuY3Rpb247XG5cbiAgY29uc3RydWN0b3IocHJvdGVjdGVkIF9zdGF0aWNQcmltaXRpdmVEcmF3ZXI6IFN0YXRpY1ByaW1pdGl2ZURyYXdlciwgbGF5ZXJTZXJ2aWNlOiBMYXllclNlcnZpY2UsXG4gICAgICAgICAgICAgIGNvbXB1dGF0aW9uQ2FjaGU6IENvbXB1dGF0aW9uQ2FjaGUsIGNlc2l1bVByb3BlcnRpZXM6IENlc2l1bVByb3BlcnRpZXMpIHtcbiAgICBzdXBlcihfc3RhdGljUHJpbWl0aXZlRHJhd2VyLCBsYXllclNlcnZpY2UsIGNvbXB1dGF0aW9uQ2FjaGUsIGNlc2l1bVByb3BlcnRpZXMpO1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5fbGF5ZXJTZXJ2aWNlLnJlZ2lzdGVyRGVzY3JpcHRpb24odGhpcyk7XG5cbiAgICB0aGlzLl9nZW9tZXRyeVByb3BzRXZhbHVhdG9yID0gdGhpcy5fY2VzaXVtUHJvcGVydGllcy5jcmVhdGVFdmFsdWF0b3IodGhpcy5nZW9tZXRyeVByb3BzKTtcbiAgICB0aGlzLl9pbnN0YW5jZVByb3BzRXZhbHVhdG9yID0gdGhpcy5fY2VzaXVtUHJvcGVydGllcy5jcmVhdGVFdmFsdWF0b3IodGhpcy5pbnN0YW5jZVByb3BzKTtcbiAgICB0aGlzLl9wcmltaXRpdmVQcm9wc0V2YWx1YXRvciA9IHRoaXMuX2Nlc2l1bVByb3BlcnRpZXMuY3JlYXRlRXZhbHVhdG9yKHRoaXMucHJpbWl0aXZlUHJvcHMpO1xuICB9XG5cbiAgZHJhdyhjb250ZXh0OiBhbnksIGlkOiBzdHJpbmcsIGVudGl0eTogQWNFbnRpdHkpOiBhbnkge1xuICAgIGNvbnN0IGdlb21ldHJ5UHJvcHMgPSB0aGlzLl9nZW9tZXRyeVByb3BzRXZhbHVhdG9yKHRoaXMuX2NvbXB1dGF0aW9uQ2FjaGUsIGNvbnRleHQpO1xuICAgIGNvbnN0IGluc3RhbmNlUHJvcHMgPSB0aGlzLl9pbnN0YW5jZVByb3BzRXZhbHVhdG9yKHRoaXMuX2NvbXB1dGF0aW9uQ2FjaGUsIGNvbnRleHQpO1xuICAgIGNvbnN0IHByaW1pdGl2ZVByb3BzID0gdGhpcy5fcHJpbWl0aXZlUHJvcHNFdmFsdWF0b3IodGhpcy5fY29tcHV0YXRpb25DYWNoZSwgY29udGV4dCk7XG5cbiAgICBpZiAoIXRoaXMuX2Nlc2l1bU9iamVjdHNNYXAuaGFzKGlkKSkge1xuICAgICAgY29uc3QgcHJpbWl0aXZlID0gdGhpcy5fc3RhdGljUHJpbWl0aXZlRHJhd2VyLmFkZChnZW9tZXRyeVByb3BzLCBpbnN0YW5jZVByb3BzLCBwcmltaXRpdmVQcm9wcyk7XG4gICAgICBwcmltaXRpdmUuYWNFbnRpdHkgPSBlbnRpdHk7IC8vIHNldCB0aGUgZW50aXR5IG9uIHRoZSBwcmltaXRpdmUgZm9yIGxhdGVyIHVzYWdlXG4gICAgICB0aGlzLl9jZXNpdW1PYmplY3RzTWFwLnNldChpZCwgcHJpbWl0aXZlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgcHJpbWl0aXZlID0gdGhpcy5fY2VzaXVtT2JqZWN0c01hcC5nZXQoaWQpO1xuICAgICAgdGhpcy5fc3RhdGljUHJpbWl0aXZlRHJhd2VyLnVwZGF0ZShwcmltaXRpdmUsIGdlb21ldHJ5UHJvcHMsIGluc3RhbmNlUHJvcHMsIHByaW1pdGl2ZVByb3BzKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==