UNPKG

angular-cesium

Version:
47 lines 8.25 kB
import { Input, Directive } from '@angular/core'; import { BasicDesc } from '../basic-desc/basic-desc.service'; import { LayerService } from '../layer-service/layer-service.service'; import { ComputationCache } from '../computation-cache/computation-cache.service'; import { CesiumProperties } from '../cesium-properties/cesium-properties.service'; import { StaticPrimitiveDrawer } from '../drawers/static-dynamic/static-primitive-drawer/static-primitive-drawer.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.decorators = [ { type: Directive } ]; BasicStaticPrimitiveDesc.ctorParameters = () => [ { type: StaticPrimitiveDrawer }, { type: LayerService }, { type: ComputationCache }, { type: CesiumProperties } ]; BasicStaticPrimitiveDesc.propDecorators = { geometryProps: [{ type: Input }], instanceProps: [{ type: Input }], primitiveProps: [{ type: Input }] }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzaWMtc3RhdGljLXByaW1pdGl2ZS1kZXNjLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLWNlc2l1bS9zcmMvbGliL2FuZ3VsYXItY2VzaXVtL3NlcnZpY2VzL2Jhc2ljLXByaW1pdGl2ZS1kZXNjL2Jhc2ljLXN0YXRpYy1wcmltaXRpdmUtZGVzYy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxLQUFLLEVBQVUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUM3RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDdEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sZ0RBQWdELENBQUM7QUFDbEYsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sZ0RBQWdELENBQUM7QUFDbEYsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sbUZBQW1GLENBQUM7QUFJMUgsTUFBTSxPQUFPLHdCQUF5QixTQUFRLFNBQVM7SUFZckQsWUFBc0Isc0JBQTZDLEVBQUUsWUFBMEIsRUFDbkYsZ0JBQWtDLEVBQUUsZ0JBQWtDO1FBQ2hGLEtBQUssQ0FBQyxzQkFBc0IsRUFBRSxZQUFZLEVBQUUsZ0JBQWdCLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQztRQUY1RCwyQkFBc0IsR0FBdEIsc0JBQXNCLENBQXVCO0lBR25FLENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLGFBQWEsQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUU3QyxJQUFJLENBQUMsdUJBQXVCLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDMUYsSUFBSSxDQUFDLHVCQUF1QixHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQzFGLElBQUksQ0FBQyx3QkFBd0IsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUM5RixDQUFDO0lBRUQsSUFBSSxDQUFDLE9BQVksRUFBRSxFQUFVLEVBQUUsTUFBZ0I7UUFDN0MsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLHVCQUF1QixDQUFDLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxPQUFPLENBQUMsQ0FBQztRQUNwRixNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsdUJBQXVCLENBQUMsSUFBSSxDQUFDLGlCQUFpQixFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQ3BGLE1BQU0sY0FBYyxHQUFHLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFFdEYsSUFBSSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEVBQUU7WUFDbkMsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLHNCQUFzQixDQUFDLEdBQUcsQ0FBQyxhQUFhLEVBQUUsYUFBYSxFQUFFLGNBQWMsQ0FBQyxDQUFDO1lBQ2hHLFNBQVMsQ0FBQyxRQUFRLEdBQUcsTUFBTSxDQUFDLENBQUMsa0RBQWtEO1lBQy9FLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLENBQUMsRUFBRSxFQUFFLFNBQVMsQ0FBQyxDQUFDO1NBQzNDO2FBQU07WUFDTCxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQ2pELElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxNQUFNLENBQUMsU0FBUyxFQUFFLGFBQWEsRUFBRSxhQUFhLEVBQUUsY0FBYyxDQUFDLENBQUM7U0FDN0Y7SUFDSCxDQUFDOzs7WUF2Q0YsU0FBUzs7O1lBSEQscUJBQXFCO1lBSHJCLFlBQVk7WUFDWixnQkFBZ0I7WUFDaEIsZ0JBQWdCOzs7NEJBTXRCLEtBQUs7NEJBRUwsS0FBSzs2QkFFTCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5wdXQsIE9uSW5pdCwgRGlyZWN0aXZlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEJhc2ljRGVzYyB9IGZyb20gJy4uL2Jhc2ljLWRlc2MvYmFzaWMtZGVzYy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgTGF5ZXJTZXJ2aWNlIH0gZnJvbSAnLi4vbGF5ZXItc2VydmljZS9sYXllci1zZXJ2aWNlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBDb21wdXRhdGlvbkNhY2hlIH0gZnJvbSAnLi4vY29tcHV0YXRpb24tY2FjaGUvY29tcHV0YXRpb24tY2FjaGUuc2VydmljZSc7XHJcbmltcG9ydCB7IENlc2l1bVByb3BlcnRpZXMgfSBmcm9tICcuLi9jZXNpdW0tcHJvcGVydGllcy9jZXNpdW0tcHJvcGVydGllcy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgU3RhdGljUHJpbWl0aXZlRHJhd2VyIH0gZnJvbSAnLi4vZHJhd2Vycy9zdGF0aWMtZHluYW1pYy9zdGF0aWMtcHJpbWl0aXZlLWRyYXdlci9zdGF0aWMtcHJpbWl0aXZlLWRyYXdlci5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQWNFbnRpdHkgfSBmcm9tICcuLi8uLi9tb2RlbHMvYWMtZW50aXR5JztcclxuXHJcbkBEaXJlY3RpdmUoKVxyXG5leHBvcnQgY2xhc3MgQmFzaWNTdGF0aWNQcmltaXRpdmVEZXNjIGV4dGVuZHMgQmFzaWNEZXNjIGltcGxlbWVudHMgT25Jbml0IHtcclxuICBASW5wdXQoKVxyXG4gIGdlb21ldHJ5UHJvcHM6IGFueTtcclxuICBASW5wdXQoKVxyXG4gIGluc3RhbmNlUHJvcHM6IGFueTtcclxuICBASW5wdXQoKVxyXG4gIHByaW1pdGl2ZVByb3BzOiBhbnk7XHJcblxyXG4gIHByaXZhdGUgX2dlb21ldHJ5UHJvcHNFdmFsdWF0b3I6IEZ1bmN0aW9uO1xyXG4gIHByaXZhdGUgX2luc3RhbmNlUHJvcHNFdmFsdWF0b3I6IEZ1bmN0aW9uO1xyXG4gIHByaXZhdGUgX3ByaW1pdGl2ZVByb3BzRXZhbHVhdG9yOiBGdW5jdGlvbjtcclxuXHJcbiAgY29uc3RydWN0b3IocHJvdGVjdGVkIF9zdGF0aWNQcmltaXRpdmVEcmF3ZXI6IFN0YXRpY1ByaW1pdGl2ZURyYXdlciwgbGF5ZXJTZXJ2aWNlOiBMYXllclNlcnZpY2UsXHJcbiAgICAgICAgICAgICAgY29tcHV0YXRpb25DYWNoZTogQ29tcHV0YXRpb25DYWNoZSwgY2VzaXVtUHJvcGVydGllczogQ2VzaXVtUHJvcGVydGllcykge1xyXG4gICAgc3VwZXIoX3N0YXRpY1ByaW1pdGl2ZURyYXdlciwgbGF5ZXJTZXJ2aWNlLCBjb21wdXRhdGlvbkNhY2hlLCBjZXNpdW1Qcm9wZXJ0aWVzKTtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5fbGF5ZXJTZXJ2aWNlLnJlZ2lzdGVyRGVzY3JpcHRpb24odGhpcyk7XHJcblxyXG4gICAgdGhpcy5fZ2VvbWV0cnlQcm9wc0V2YWx1YXRvciA9IHRoaXMuX2Nlc2l1bVByb3BlcnRpZXMuY3JlYXRlRXZhbHVhdG9yKHRoaXMuZ2VvbWV0cnlQcm9wcyk7XHJcbiAgICB0aGlzLl9pbnN0YW5jZVByb3BzRXZhbHVhdG9yID0gdGhpcy5fY2VzaXVtUHJvcGVydGllcy5jcmVhdGVFdmFsdWF0b3IodGhpcy5pbnN0YW5jZVByb3BzKTtcclxuICAgIHRoaXMuX3ByaW1pdGl2ZVByb3BzRXZhbHVhdG9yID0gdGhpcy5fY2VzaXVtUHJvcGVydGllcy5jcmVhdGVFdmFsdWF0b3IodGhpcy5wcmltaXRpdmVQcm9wcyk7XHJcbiAgfVxyXG5cclxuICBkcmF3KGNvbnRleHQ6IGFueSwgaWQ6IHN0cmluZywgZW50aXR5OiBBY0VudGl0eSk6IGFueSB7XHJcbiAgICBjb25zdCBnZW9tZXRyeVByb3BzID0gdGhpcy5fZ2VvbWV0cnlQcm9wc0V2YWx1YXRvcih0aGlzLl9jb21wdXRhdGlvbkNhY2hlLCBjb250ZXh0KTtcclxuICAgIGNvbnN0IGluc3RhbmNlUHJvcHMgPSB0aGlzLl9pbnN0YW5jZVByb3BzRXZhbHVhdG9yKHRoaXMuX2NvbXB1dGF0aW9uQ2FjaGUsIGNvbnRleHQpO1xyXG4gICAgY29uc3QgcHJpbWl0aXZlUHJvcHMgPSB0aGlzLl9wcmltaXRpdmVQcm9wc0V2YWx1YXRvcih0aGlzLl9jb21wdXRhdGlvbkNhY2hlLCBjb250ZXh0KTtcclxuXHJcbiAgICBpZiAoIXRoaXMuX2Nlc2l1bU9iamVjdHNNYXAuaGFzKGlkKSkge1xyXG4gICAgICBjb25zdCBwcmltaXRpdmUgPSB0aGlzLl9zdGF0aWNQcmltaXRpdmVEcmF3ZXIuYWRkKGdlb21ldHJ5UHJvcHMsIGluc3RhbmNlUHJvcHMsIHByaW1pdGl2ZVByb3BzKTtcclxuICAgICAgcHJpbWl0aXZlLmFjRW50aXR5ID0gZW50aXR5OyAvLyBzZXQgdGhlIGVudGl0eSBvbiB0aGUgcHJpbWl0aXZlIGZvciBsYXRlciB1c2FnZVxyXG4gICAgICB0aGlzLl9jZXNpdW1PYmplY3RzTWFwLnNldChpZCwgcHJpbWl0aXZlKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGNvbnN0IHByaW1pdGl2ZSA9IHRoaXMuX2Nlc2l1bU9iamVjdHNNYXAuZ2V0KGlkKTtcclxuICAgICAgdGhpcy5fc3RhdGljUHJpbWl0aXZlRHJhd2VyLnVwZGF0ZShwcmltaXRpdmUsIGdlb21ldHJ5UHJvcHMsIGluc3RhbmNlUHJvcHMsIHByaW1pdGl2ZVByb3BzKTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIl19