UNPKG

@eliorar/angular-cesium

Version:

Angular library for working with Cesium.

30 lines 5.01 kB
import { GeometryInstance, Primitive, PrimitiveCollection } from 'cesium'; import { PrimitivesDrawerService } from '../../primitives-drawer/primitives-drawer.service'; /** * * This drawer is deprecated. * General static primitives drawer responsible of drawing static Cesium primitives with material. */ export class StaticPrimitiveDrawer extends PrimitivesDrawerService { constructor(geometryType, cesiumService) { super(PrimitiveCollection, cesiumService); this.geometryType = geometryType; } add(geometryProps, instanceProps, primitiveProps) { if (Object.keys(instanceProps).length === 0) { throw (new Error('instanceProps object is empty')); } instanceProps.geometry = new this.geometryType(geometryProps); primitiveProps.geometryInstances = new GeometryInstance(instanceProps); primitiveProps.asynchronous = false; const primitive = new Primitive(primitiveProps); return super.add(primitive); } update(primitive, geometryProps, instanceProps, primitiveProps) { instanceProps.geometry = new this.geometryType(geometryProps); primitiveProps.geometryInstances = new GeometryInstance(instanceProps); this._cesiumCollection.remove(primitive); return super.add(new Primitive(primitiveProps)); } } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhdGljLXByaW1pdGl2ZS1kcmF3ZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItY2VzaXVtL3NyYy9saWIvYW5ndWxhci1jZXNpdW0vc2VydmljZXMvZHJhd2Vycy9zdGF0aWMtZHluYW1pYy9zdGF0aWMtcHJpbWl0aXZlLWRyYXdlci9zdGF0aWMtcHJpbWl0aXZlLWRyYXdlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxnQkFBZ0IsRUFBRSxTQUFTLEVBQUUsbUJBQW1CLEVBQUMsTUFBTSxRQUFRLENBQUM7QUFDeEUsT0FBTyxFQUFDLHVCQUF1QixFQUFDLE1BQU0sbURBQW1ELENBQUM7QUFHMUY7Ozs7R0FJRztBQUNILE1BQU0sT0FBZ0IscUJBQXNCLFNBQVEsdUJBQXVCO0lBQ3pFLFlBQW9CLFlBQWlCLEVBQUUsYUFBNEI7UUFDakUsS0FBSyxDQUFDLG1CQUFtQixFQUFFLGFBQWEsQ0FBQyxDQUFDO1FBRHhCLGlCQUFZLEdBQVosWUFBWSxDQUFLO0lBRXJDLENBQUM7SUFFRCxHQUFHLENBQUMsYUFBa0IsRUFBRSxhQUFrQixFQUFFLGNBQW1CO1FBQzdELElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO1lBQzNDLE1BQUssQ0FBQyxJQUFJLEtBQUssQ0FBQywrQkFBK0IsQ0FBQyxDQUFDLENBQUM7U0FDbkQ7UUFDRCxhQUFhLENBQUMsUUFBUSxHQUFHLElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUM5RCxjQUFjLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxnQkFBZ0IsQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUN2RSxjQUFjLENBQUMsWUFBWSxHQUFHLEtBQUssQ0FBQztRQUNwQyxNQUFNLFNBQVMsR0FBRyxJQUFJLFNBQVMsQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUNoRCxPQUFPLEtBQUssQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDOUIsQ0FBQztJQUVELE1BQU0sQ0FBQyxTQUFjLEVBQUUsYUFBa0IsRUFBRSxhQUFrQixFQUFFLGNBQW1CO1FBQ2hGLGFBQWEsQ0FBQyxRQUFRLEdBQUcsSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQzlELGNBQWMsQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLGdCQUFnQixDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ3ZFLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDekMsT0FBTyxLQUFLLENBQUMsR0FBRyxDQUFDLElBQUksU0FBUyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUM7SUFDbEQsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtHZW9tZXRyeUluc3RhbmNlLCBQcmltaXRpdmUsIFByaW1pdGl2ZUNvbGxlY3Rpb259IGZyb20gJ2Nlc2l1bSc7XG5pbXBvcnQge1ByaW1pdGl2ZXNEcmF3ZXJTZXJ2aWNlfSBmcm9tICcuLi8uLi9wcmltaXRpdmVzLWRyYXdlci9wcmltaXRpdmVzLWRyYXdlci5zZXJ2aWNlJztcbmltcG9ydCB7Q2VzaXVtU2VydmljZX0gZnJvbSAnLi4vLi4vLi4vY2VzaXVtL2Nlc2l1bS5zZXJ2aWNlJztcblxuLyoqXG4gKlxuICogVGhpcyBkcmF3ZXIgaXMgZGVwcmVjYXRlZC5cbiAqIEdlbmVyYWwgc3RhdGljIHByaW1pdGl2ZXMgZHJhd2VyIHJlc3BvbnNpYmxlIG9mIGRyYXdpbmcgc3RhdGljIENlc2l1bSBwcmltaXRpdmVzIHdpdGggbWF0ZXJpYWwuXG4gKi9cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBTdGF0aWNQcmltaXRpdmVEcmF3ZXIgZXh0ZW5kcyBQcmltaXRpdmVzRHJhd2VyU2VydmljZSB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZ2VvbWV0cnlUeXBlOiBhbnksIGNlc2l1bVNlcnZpY2U6IENlc2l1bVNlcnZpY2UpIHtcbiAgICBzdXBlcihQcmltaXRpdmVDb2xsZWN0aW9uLCBjZXNpdW1TZXJ2aWNlKTtcbiAgfVxuXG4gIGFkZChnZW9tZXRyeVByb3BzOiBhbnksIGluc3RhbmNlUHJvcHM6IGFueSwgcHJpbWl0aXZlUHJvcHM6IGFueSk6IGFueSB7XG4gICAgaWYgKE9iamVjdC5rZXlzKGluc3RhbmNlUHJvcHMpLmxlbmd0aCA9PT0gMCkge1xuICAgICAgdGhyb3cobmV3IEVycm9yKCdpbnN0YW5jZVByb3BzIG9iamVjdCBpcyBlbXB0eScpKTtcbiAgICB9XG4gICAgaW5zdGFuY2VQcm9wcy5nZW9tZXRyeSA9IG5ldyB0aGlzLmdlb21ldHJ5VHlwZShnZW9tZXRyeVByb3BzKTtcbiAgICBwcmltaXRpdmVQcm9wcy5nZW9tZXRyeUluc3RhbmNlcyA9IG5ldyBHZW9tZXRyeUluc3RhbmNlKGluc3RhbmNlUHJvcHMpO1xuICAgIHByaW1pdGl2ZVByb3BzLmFzeW5jaHJvbm91cyA9IGZhbHNlO1xuICAgIGNvbnN0IHByaW1pdGl2ZSA9IG5ldyBQcmltaXRpdmUocHJpbWl0aXZlUHJvcHMpO1xuICAgIHJldHVybiBzdXBlci5hZGQocHJpbWl0aXZlKTtcbiAgfVxuXG4gIHVwZGF0ZShwcmltaXRpdmU6IGFueSwgZ2VvbWV0cnlQcm9wczogYW55LCBpbnN0YW5jZVByb3BzOiBhbnksIHByaW1pdGl2ZVByb3BzOiBhbnkpIHtcbiAgICBpbnN0YW5jZVByb3BzLmdlb21ldHJ5ID0gbmV3IHRoaXMuZ2VvbWV0cnlUeXBlKGdlb21ldHJ5UHJvcHMpO1xuICAgIHByaW1pdGl2ZVByb3BzLmdlb21ldHJ5SW5zdGFuY2VzID0gbmV3IEdlb21ldHJ5SW5zdGFuY2UoaW5zdGFuY2VQcm9wcyk7XG4gICAgdGhpcy5fY2VzaXVtQ29sbGVjdGlvbi5yZW1vdmUocHJpbWl0aXZlKTtcbiAgICByZXR1cm4gc3VwZXIuYWRkKG5ldyBQcmltaXRpdmUocHJpbWl0aXZlUHJvcHMpKTtcbiAgfVxufVxuIl19