angular-cesium
Version:
Angular library for working with Cesium.
44 lines • 5.3 kB
JavaScript
import { BasicDrawerService } from '../basic-drawer/basic-drawer.service';
/**
* General primitives drawer responsible of drawing Cesium primitives.
* Drawers the handle Cesium primitives extend it.
*/
export class PrimitivesDrawerService extends BasicDrawerService {
constructor(drawerType, cesiumService) {
super();
this.drawerType = drawerType;
this.cesiumService = cesiumService;
this._show = true;
}
init() {
this._cesiumCollection = new this.drawerType();
this._primitiveCollectionWrap = new Cesium.PrimitiveCollection();
this._primitiveCollectionWrap.add(this._cesiumCollection);
this.cesiumService.getScene().primitives.add(this._primitiveCollectionWrap);
}
add(cesiumProps, ...args) {
return this._cesiumCollection.add(cesiumProps);
}
update(entity, cesiumProps, ...args) {
if (this._propsAssigner) {
this._propsAssigner(entity, cesiumProps);
}
else {
Object.assign(entity, cesiumProps);
}
}
remove(entity) {
this._cesiumCollection.remove(entity);
}
removeAll() {
this._cesiumCollection.removeAll();
}
setShow(showValue) {
this._show = showValue;
this._primitiveCollectionWrap.show = showValue;
}
getShow() {
return this._show;
}
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJpbWl0aXZlcy1kcmF3ZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL2FuZ3VsYXItY2VzaXVtLyIsInNvdXJjZXMiOlsibGliL2FuZ3VsYXItY2VzaXVtL3NlcnZpY2VzL2RyYXdlcnMvcHJpbWl0aXZlcy1kcmF3ZXIvcHJpbWl0aXZlcy1kcmF3ZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUUxRTs7O0dBR0c7QUFDSCxNQUFNLE9BQWdCLHVCQUF3QixTQUFRLGtCQUFrQjtJQU10RSxZQUFvQixVQUFlLEVBQVUsYUFBNEI7UUFDdkUsS0FBSyxFQUFFLENBQUM7UUFEVSxlQUFVLEdBQVYsVUFBVSxDQUFLO1FBQVUsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFMakUsVUFBSyxHQUFHLElBQUksQ0FBQztJQU9yQixDQUFDO0lBRUQsSUFBSTtRQUNGLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUMvQyxJQUFJLENBQUMsd0JBQXdCLEdBQUcsSUFBSSxNQUFNLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztRQUNqRSxJQUFJLENBQUMsd0JBQXdCLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBQzFELElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxFQUFFLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsd0JBQXdCLENBQUMsQ0FBQztJQUM5RSxDQUFDO0lBRUQsR0FBRyxDQUFDLFdBQWdCLEVBQUUsR0FBRyxJQUFXO1FBQ2xDLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUNqRCxDQUFDO0lBRUQsTUFBTSxDQUFDLE1BQVcsRUFBRSxXQUFnQixFQUFFLEdBQUcsSUFBVztRQUNsRCxJQUFJLElBQUksQ0FBQyxjQUFjLEVBQUU7WUFDdkIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLEVBQUUsV0FBVyxDQUFDLENBQUM7U0FDMUM7YUFBTTtZQUNMLE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLFdBQVcsQ0FBQyxDQUFDO1NBQ3BDO0lBQ0gsQ0FBQztJQUVELE1BQU0sQ0FBQyxNQUFXO1FBQ2hCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDeEMsQ0FBQztJQUVELFNBQVM7UUFDUCxJQUFJLENBQUMsaUJBQWlCLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDckMsQ0FBQztJQUVELE9BQU8sQ0FBQyxTQUFrQjtRQUN4QixJQUFJLENBQUMsS0FBSyxHQUFHLFNBQVMsQ0FBQztRQUN2QixJQUFJLENBQUMsd0JBQXdCLENBQUMsSUFBSSxHQUFHLFNBQVMsQ0FBQztJQUNqRCxDQUFDO0lBRUQsT0FBTztRQUNMLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQztJQUNwQixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDZXNpdW1TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vY2VzaXVtL2Nlc2l1bS5zZXJ2aWNlJztcbmltcG9ydCB7IEJhc2ljRHJhd2VyU2VydmljZSB9IGZyb20gJy4uL2Jhc2ljLWRyYXdlci9iYXNpYy1kcmF3ZXIuc2VydmljZSc7XG5cbi8qKlxuICogIEdlbmVyYWwgcHJpbWl0aXZlcyBkcmF3ZXIgcmVzcG9uc2libGUgb2YgZHJhd2luZyBDZXNpdW0gcHJpbWl0aXZlcy5cbiAqICBEcmF3ZXJzIHRoZSBoYW5kbGUgQ2VzaXVtIHByaW1pdGl2ZXMgZXh0ZW5kIGl0LlxuICovXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgUHJpbWl0aXZlc0RyYXdlclNlcnZpY2UgZXh0ZW5kcyBCYXNpY0RyYXdlclNlcnZpY2Uge1xuICBwcml2YXRlIF9zaG93ID0gdHJ1ZTtcbiAgcHJpdmF0ZSBfcHJpbWl0aXZlQ29sbGVjdGlvbldyYXA6IGFueTtcbiAgcHJvdGVjdGVkIF9jZXNpdW1Db2xsZWN0aW9uOiBhbnk7XG4gIHByb3RlY3RlZCBfcHJvcHNBc3NpZ25lcjogRnVuY3Rpb247XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBkcmF3ZXJUeXBlOiBhbnksIHByaXZhdGUgY2VzaXVtU2VydmljZTogQ2VzaXVtU2VydmljZSkge1xuICAgIHN1cGVyKCk7XG4gIH1cblxuICBpbml0KCkge1xuICAgIHRoaXMuX2Nlc2l1bUNvbGxlY3Rpb24gPSBuZXcgdGhpcy5kcmF3ZXJUeXBlKCk7XG4gICAgdGhpcy5fcHJpbWl0aXZlQ29sbGVjdGlvbldyYXAgPSBuZXcgQ2VzaXVtLlByaW1pdGl2ZUNvbGxlY3Rpb24oKTtcbiAgICB0aGlzLl9wcmltaXRpdmVDb2xsZWN0aW9uV3JhcC5hZGQodGhpcy5fY2VzaXVtQ29sbGVjdGlvbik7XG4gICAgdGhpcy5jZXNpdW1TZXJ2aWNlLmdldFNjZW5lKCkucHJpbWl0aXZlcy5hZGQodGhpcy5fcHJpbWl0aXZlQ29sbGVjdGlvbldyYXApO1xuICB9XG5cbiAgYWRkKGNlc2l1bVByb3BzOiBhbnksIC4uLmFyZ3M6IGFueVtdKTogYW55IHtcbiAgICByZXR1cm4gdGhpcy5fY2VzaXVtQ29sbGVjdGlvbi5hZGQoY2VzaXVtUHJvcHMpO1xuICB9XG5cbiAgdXBkYXRlKGVudGl0eTogYW55LCBjZXNpdW1Qcm9wczogYW55LCAuLi5hcmdzOiBhbnlbXSkge1xuICAgIGlmICh0aGlzLl9wcm9wc0Fzc2lnbmVyKSB7XG4gICAgICB0aGlzLl9wcm9wc0Fzc2lnbmVyKGVudGl0eSwgY2VzaXVtUHJvcHMpO1xuICAgIH0gZWxzZSB7XG4gICAgICBPYmplY3QuYXNzaWduKGVudGl0eSwgY2VzaXVtUHJvcHMpO1xuICAgIH1cbiAgfVxuXG4gIHJlbW92ZShlbnRpdHk6IGFueSkge1xuICAgIHRoaXMuX2Nlc2l1bUNvbGxlY3Rpb24ucmVtb3ZlKGVudGl0eSk7XG4gIH1cblxuICByZW1vdmVBbGwoKSB7XG4gICAgdGhpcy5fY2VzaXVtQ29sbGVjdGlvbi5yZW1vdmVBbGwoKTtcbiAgfVxuXG4gIHNldFNob3coc2hvd1ZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy5fc2hvdyA9IHNob3dWYWx1ZTtcbiAgICB0aGlzLl9wcmltaXRpdmVDb2xsZWN0aW9uV3JhcC5zaG93ID0gc2hvd1ZhbHVlO1xuICB9XG5cbiAgZ2V0U2hvdygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fc2hvdztcbiAgfVxufVxuIl19