@eliorar/angular-cesium
Version:
Angular library for working with Cesium.
30 lines • 5.01 kB
JavaScript
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