iceye-angular-cesium-fork
Version:
Angular library for working with Cesium.
47 lines • 8.08 kB
JavaScript
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzaWMtc3RhdGljLXByaW1pdGl2ZS1kZXNjLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLWNlc2l1bS9zcmMvbGliL2FuZ3VsYXItY2VzaXVtL3NlcnZpY2VzL2Jhc2ljLXByaW1pdGl2ZS1kZXNjL2Jhc2ljLXN0YXRpYy1wcmltaXRpdmUtZGVzYy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxLQUFLLEVBQVUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUM3RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDdEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sZ0RBQWdELENBQUM7QUFDbEYsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sZ0RBQWdELENBQUM7QUFDbEYsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sbUZBQW1GLENBQUM7QUFJMUgsTUFBTSxPQUFPLHdCQUF5QixTQUFRLFNBQVM7SUFZckQsWUFBc0Isc0JBQTZDLEVBQUUsWUFBMEIsRUFDbkYsZ0JBQWtDLEVBQUUsZ0JBQWtDO1FBQ2hGLEtBQUssQ0FBQyxzQkFBc0IsRUFBRSxZQUFZLEVBQUUsZ0JBQWdCLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQztRQUY1RCwyQkFBc0IsR0FBdEIsc0JBQXNCLENBQXVCO0lBR25FLENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLGFBQWEsQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUU3QyxJQUFJLENBQUMsdUJBQXVCLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDMUYsSUFBSSxDQUFDLHVCQUF1QixHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQzFGLElBQUksQ0FBQyx3QkFBd0IsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUM5RixDQUFDO0lBRUQsSUFBSSxDQUFDLE9BQVksRUFBRSxFQUFVLEVBQUUsTUFBZ0I7UUFDN0MsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLHVCQUF1QixDQUFDLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxPQUFPLENBQUMsQ0FBQztRQUNwRixNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsdUJBQXVCLENBQUMsSUFBSSxDQUFDLGlCQUFpQixFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQ3BGLE1BQU0sY0FBYyxHQUFHLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFFdEYsSUFBSSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEVBQUU7WUFDbkMsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLHNCQUFzQixDQUFDLEdBQUcsQ0FBQyxhQUFhLEVBQUUsYUFBYSxFQUFFLGNBQWMsQ0FBQyxDQUFDO1lBQ2hHLFNBQVMsQ0FBQyxRQUFRLEdBQUcsTUFBTSxDQUFDLENBQUMsa0RBQWtEO1lBQy9FLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLENBQUMsRUFBRSxFQUFFLFNBQVMsQ0FBQyxDQUFDO1NBQzNDO2FBQU07WUFDTCxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQ2pELElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxNQUFNLENBQUMsU0FBUyxFQUFFLGFBQWEsRUFBRSxhQUFhLEVBQUUsY0FBYyxDQUFDLENBQUM7U0FDN0Y7SUFDSCxDQUFDOzs7WUF2Q0YsU0FBUzs7O1lBSEQscUJBQXFCO1lBSHJCLFlBQVk7WUFDWixnQkFBZ0I7WUFDaEIsZ0JBQWdCOzs7NEJBTXRCLEtBQUs7NEJBRUwsS0FBSzs2QkFFTCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5wdXQsIE9uSW5pdCwgRGlyZWN0aXZlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCYXNpY0Rlc2MgfSBmcm9tICcuLi9iYXNpYy1kZXNjL2Jhc2ljLWRlc2Muc2VydmljZSc7XG5pbXBvcnQgeyBMYXllclNlcnZpY2UgfSBmcm9tICcuLi9sYXllci1zZXJ2aWNlL2xheWVyLXNlcnZpY2Uuc2VydmljZSc7XG5pbXBvcnQgeyBDb21wdXRhdGlvbkNhY2hlIH0gZnJvbSAnLi4vY29tcHV0YXRpb24tY2FjaGUvY29tcHV0YXRpb24tY2FjaGUuc2VydmljZSc7XG5pbXBvcnQgeyBDZXNpdW1Qcm9wZXJ0aWVzIH0gZnJvbSAnLi4vY2VzaXVtLXByb3BlcnRpZXMvY2VzaXVtLXByb3BlcnRpZXMuc2VydmljZSc7XG5pbXBvcnQgeyBTdGF0aWNQcmltaXRpdmVEcmF3ZXIgfSBmcm9tICcuLi9kcmF3ZXJzL3N0YXRpYy1keW5hbWljL3N0YXRpYy1wcmltaXRpdmUtZHJhd2VyL3N0YXRpYy1wcmltaXRpdmUtZHJhd2VyLnNlcnZpY2UnO1xuaW1wb3J0IHsgQWNFbnRpdHkgfSBmcm9tICcuLi8uLi9tb2RlbHMvYWMtZW50aXR5JztcblxuQERpcmVjdGl2ZSgpXG5leHBvcnQgY2xhc3MgQmFzaWNTdGF0aWNQcmltaXRpdmVEZXNjIGV4dGVuZHMgQmFzaWNEZXNjIGltcGxlbWVudHMgT25Jbml0IHtcbiAgQElucHV0KClcbiAgZ2VvbWV0cnlQcm9wczogYW55O1xuICBASW5wdXQoKVxuICBpbnN0YW5jZVByb3BzOiBhbnk7XG4gIEBJbnB1dCgpXG4gIHByaW1pdGl2ZVByb3BzOiBhbnk7XG5cbiAgcHJpdmF0ZSBfZ2VvbWV0cnlQcm9wc0V2YWx1YXRvcjogRnVuY3Rpb247XG4gIHByaXZhdGUgX2luc3RhbmNlUHJvcHNFdmFsdWF0b3I6IEZ1bmN0aW9uO1xuICBwcml2YXRlIF9wcmltaXRpdmVQcm9wc0V2YWx1YXRvcjogRnVuY3Rpb247XG5cbiAgY29uc3RydWN0b3IocHJvdGVjdGVkIF9zdGF0aWNQcmltaXRpdmVEcmF3ZXI6IFN0YXRpY1ByaW1pdGl2ZURyYXdlciwgbGF5ZXJTZXJ2aWNlOiBMYXllclNlcnZpY2UsXG4gICAgICAgICAgICAgIGNvbXB1dGF0aW9uQ2FjaGU6IENvbXB1dGF0aW9uQ2FjaGUsIGNlc2l1bVByb3BlcnRpZXM6IENlc2l1bVByb3BlcnRpZXMpIHtcbiAgICBzdXBlcihfc3RhdGljUHJpbWl0aXZlRHJhd2VyLCBsYXllclNlcnZpY2UsIGNvbXB1dGF0aW9uQ2FjaGUsIGNlc2l1bVByb3BlcnRpZXMpO1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5fbGF5ZXJTZXJ2aWNlLnJlZ2lzdGVyRGVzY3JpcHRpb24odGhpcyk7XG5cbiAgICB0aGlzLl9nZW9tZXRyeVByb3BzRXZhbHVhdG9yID0gdGhpcy5fY2VzaXVtUHJvcGVydGllcy5jcmVhdGVFdmFsdWF0b3IodGhpcy5nZW9tZXRyeVByb3BzKTtcbiAgICB0aGlzLl9pbnN0YW5jZVByb3BzRXZhbHVhdG9yID0gdGhpcy5fY2VzaXVtUHJvcGVydGllcy5jcmVhdGVFdmFsdWF0b3IodGhpcy5pbnN0YW5jZVByb3BzKTtcbiAgICB0aGlzLl9wcmltaXRpdmVQcm9wc0V2YWx1YXRvciA9IHRoaXMuX2Nlc2l1bVByb3BlcnRpZXMuY3JlYXRlRXZhbHVhdG9yKHRoaXMucHJpbWl0aXZlUHJvcHMpO1xuICB9XG5cbiAgZHJhdyhjb250ZXh0OiBhbnksIGlkOiBzdHJpbmcsIGVudGl0eTogQWNFbnRpdHkpOiBhbnkge1xuICAgIGNvbnN0IGdlb21ldHJ5UHJvcHMgPSB0aGlzLl9nZW9tZXRyeVByb3BzRXZhbHVhdG9yKHRoaXMuX2NvbXB1dGF0aW9uQ2FjaGUsIGNvbnRleHQpO1xuICAgIGNvbnN0IGluc3RhbmNlUHJvcHMgPSB0aGlzLl9pbnN0YW5jZVByb3BzRXZhbHVhdG9yKHRoaXMuX2NvbXB1dGF0aW9uQ2FjaGUsIGNvbnRleHQpO1xuICAgIGNvbnN0IHByaW1pdGl2ZVByb3BzID0gdGhpcy5fcHJpbWl0aXZlUHJvcHNFdmFsdWF0b3IodGhpcy5fY29tcHV0YXRpb25DYWNoZSwgY29udGV4dCk7XG5cbiAgICBpZiAoIXRoaXMuX2Nlc2l1bU9iamVjdHNNYXAuaGFzKGlkKSkge1xuICAgICAgY29uc3QgcHJpbWl0aXZlID0gdGhpcy5fc3RhdGljUHJpbWl0aXZlRHJhd2VyLmFkZChnZW9tZXRyeVByb3BzLCBpbnN0YW5jZVByb3BzLCBwcmltaXRpdmVQcm9wcyk7XG4gICAgICBwcmltaXRpdmUuYWNFbnRpdHkgPSBlbnRpdHk7IC8vIHNldCB0aGUgZW50aXR5IG9uIHRoZSBwcmltaXRpdmUgZm9yIGxhdGVyIHVzYWdlXG4gICAgICB0aGlzLl9jZXNpdW1PYmplY3RzTWFwLnNldChpZCwgcHJpbWl0aXZlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgcHJpbWl0aXZlID0gdGhpcy5fY2VzaXVtT2JqZWN0c01hcC5nZXQoaWQpO1xuICAgICAgdGhpcy5fc3RhdGljUHJpbWl0aXZlRHJhd2VyLnVwZGF0ZShwcmltaXRpdmUsIGdlb21ldHJ5UHJvcHMsIGluc3RhbmNlUHJvcHMsIHByaW1pdGl2ZVByb3BzKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==