{"version":3,"file":"Feature.mjs","sources":["../../../../../../packages/components/controls/selection-indicator/Feature.ts"],"sourcesContent":["/*\n * @Author: zouyaoji@https://github.com/zouyaoji\n * @Date: 2021-10-27 15:54:13\n * @LastEditTime: 2022-01-19 10:03:30\n * @LastEditors: zouyaoji\n * @Description:\n * @FilePath: \\vue-cesium@next\\packages\\components\\controls\\selection-indicator\\Feature.ts\n */\n\nimport type { VcCesiumObject } from '@vue-cesium/utils/types'\n\nclass Feature {\n  id: string\n  cesiumObject: VcCesiumObject\n  pickedFeature: any\n  name: any\n  description: any\n  properties: any\n  data: any\n  imageryLayer: Cesium.ImageryLayer\n  position: Cesium.Cartesian3\n  coords: any\n  windowPosition: Cesium.Cartesian2\n  constructor(options) {\n    this.id = options.id || Cesium.createGuid()\n  }\n\n  static getBoundingSphere(cesiumObject, viewer: Cesium.Viewer) {\n    const { Primitive, ClassificationPrimitive, GroundPolylinePrimitive, GroundPrimitive, Polyline } = Cesium\n    let boundingSphere\n    if (cesiumObject instanceof ClassificationPrimitive || cesiumObject instanceof GroundPolylinePrimitive) {\n      boundingSphere = (cesiumObject as any)._primitive?._boundingSphereWC?.[0]\n    } else if (cesiumObject instanceof Primitive) {\n      boundingSphere = (cesiumObject as any)._boundingSphereWC?.[0]\n    } else if (cesiumObject instanceof GroundPrimitive) {\n      boundingSphere = (cesiumObject as any)._boundingVolumes?.[0]\n    } else if (cesiumObject instanceof Polyline) {\n      boundingSphere = (cesiumObject as any)._boundingVolumeWC\n    } else if (cesiumObject instanceof Cesium.Entity) {\n      boundingSphere = new Cesium.BoundingSphere()\n      ;(viewer.dataSourceDisplay as any).getBoundingSphere(cesiumObject, true, boundingSphere)\n    }\n\n    return boundingSphere\n  }\n  static fromPickedFeature(cesiumObject, pickedFeature, viewer, screenPosition) {\n    const feature = new Feature({ id: cesiumObject.id })\n\n    if (cesiumObject.position) {\n      feature.position = cesiumObject.position\n    } else if (cesiumObject instanceof Cesium.Model) {\n      feature.position = Cesium.Matrix4.getTranslation(cesiumObject.modelMatrix, new Cesium.Cartesian3())\n    } else if (cesiumObject instanceof Cesium.Cesium3DTileset) {\n      feature.position = Cesium.Matrix4.getTranslation(pickedFeature.content._contentModelMatrix, new Cesium.Cartesian3())\n    } else {\n      feature.position = Feature.getBoundingSphere(cesiumObject, viewer)?.center\n    }\n\n    feature.cesiumObject = cesiumObject\n    feature.pickedFeature = pickedFeature\n    feature.windowPosition = screenPosition\n    return feature\n  }\n\n  static fromImageryLayerFeature(imageryFeature, viewer: Cesium.Viewer) {\n    const feature = new Feature({\n      id: imageryFeature.name\n    })\n    feature.name = imageryFeature.name\n    feature.description = imageryFeature.description // already defined by the new Entity\n    feature.properties = imageryFeature.properties\n    feature.data = imageryFeature.data\n\n    feature.imageryLayer = imageryFeature.imageryLayer\n    feature.position = viewer.scene.globe.ellipsoid.cartographicToCartesian(imageryFeature.position)\n    feature.coords = imageryFeature.coords\n\n    return feature\n  }\n}\n\n// function addCustomFeatureProperties (entity) {\n//   for (let i = 0; i < customProperties.length; i++) {\n//     if (entity.propertyNames.indexOf(customProperties[i]) === -1) {\n//       entity.addProperty(customProperties[i])\n//     }\n//   }\n// }\n\nexport default Feature\n"],"names":[],"mappings":"AAAA,MAAM,OAAO,CAAC;AACd,EAAE,WAAW,CAAC,OAAO,EAAE;AACvB,IAAI,IAAI,CAAC,EAAE,GAAG,OAAO,CAAC,EAAE,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;AAChD,GAAG;AACH,EAAE,OAAO,iBAAiB,CAAC,YAAY,EAAE,MAAM,EAAE;AACjD,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;AACvB,IAAI,MAAM,EAAE,SAAS,EAAE,uBAAuB,EAAE,uBAAuB,EAAE,eAAe,EAAE,QAAQ,EAAE,GAAG,MAAM,CAAC;AAC9G,IAAI,IAAI,cAAc,CAAC;AACvB,IAAI,IAAI,YAAY,YAAY,uBAAuB,IAAI,YAAY,YAAY,uBAAuB,EAAE;AAC5G,MAAM,cAAc,GAAG,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,YAAY,CAAC,UAAU,KAAK,IAAI,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,iBAAiB,KAAK,IAAI,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;AAC9H,KAAK,MAAM,IAAI,YAAY,YAAY,SAAS,EAAE;AAClD,MAAM,cAAc,GAAG,CAAC,EAAE,GAAG,YAAY,CAAC,iBAAiB,KAAK,IAAI,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;AACtF,KAAK,MAAM,IAAI,YAAY,YAAY,eAAe,EAAE;AACxD,MAAM,cAAc,GAAG,CAAC,EAAE,GAAG,YAAY,CAAC,gBAAgB,KAAK,IAAI,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;AACrF,KAAK,MAAM,IAAI,YAAY,YAAY,QAAQ,EAAE;AACjD,MAAM,cAAc,GAAG,YAAY,CAAC,iBAAiB,CAAC;AACtD,KAAK,MAAM,IAAI,YAAY,YAAY,MAAM,CAAC,MAAM,EAAE;AACtD,MAAM,cAAc,GAAG,IAAI,MAAM,CAAC,cAAc,EAAE,CAAC;AACnD,MAAM,MAAM,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,YAAY,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC;AACrF,KAAK;AACL,IAAI,OAAO,cAAc,CAAC;AAC1B,GAAG;AACH,EAAE,OAAO,iBAAiB,CAAC,YAAY,EAAE,aAAa,EAAE,MAAM,EAAE,cAAc,EAAE;AAChF,IAAI,IAAI,EAAE,CAAC;AACX,IAAI,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,EAAE,EAAE,EAAE,YAAY,CAAC,EAAE,EAAE,CAAC,CAAC;AACzD,IAAI,IAAI,YAAY,CAAC,QAAQ,EAAE;AAC/B,MAAM,OAAO,CAAC,QAAQ,GAAG,YAAY,CAAC,QAAQ,CAAC;AAC/C,KAAK,MAAM,IAAI,YAAY,YAAY,MAAM,CAAC,KAAK,EAAE;AACrD,MAAM,OAAO,CAAC,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC,cAAc,CAAC,YAAY,CAAC,WAAW,EAAE,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC;AAC1G,KAAK,MAAM,IAAI,YAAY,YAAY,MAAM,CAAC,eAAe,EAAE;AAC/D,MAAM,OAAO,CAAC,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC,cAAc,CAAC,aAAa,CAAC,OAAO,CAAC,mBAAmB,EAAE,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC;AAC3H,KAAK,MAAM;AACX,MAAM,OAAO,CAAC,QAAQ,GAAG,CAAC,EAAE,GAAG,OAAO,CAAC,iBAAiB,CAAC,YAAY,EAAE,MAAM,CAAC,KAAK,IAAI,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC;AAC7G,KAAK;AACL,IAAI,OAAO,CAAC,YAAY,GAAG,YAAY,CAAC;AACxC,IAAI,OAAO,CAAC,aAAa,GAAG,aAAa,CAAC;AAC1C,IAAI,OAAO,CAAC,cAAc,GAAG,cAAc,CAAC;AAC5C,IAAI,OAAO,OAAO,CAAC;AACnB,GAAG;AACH,EAAE,OAAO,uBAAuB,CAAC,cAAc,EAAE,MAAM,EAAE;AACzD,IAAI,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC;AAChC,MAAM,EAAE,EAAE,cAAc,CAAC,IAAI;AAC7B,KAAK,CAAC,CAAC;AACP,IAAI,OAAO,CAAC,IAAI,GAAG,cAAc,CAAC,IAAI,CAAC;AACvC,IAAI,OAAO,CAAC,WAAW,GAAG,cAAc,CAAC,WAAW,CAAC;AACrD,IAAI,OAAO,CAAC,UAAU,GAAG,cAAc,CAAC,UAAU,CAAC;AACnD,IAAI,OAAO,CAAC,IAAI,GAAG,cAAc,CAAC,IAAI,CAAC;AACvC,IAAI,OAAO,CAAC,YAAY,GAAG,cAAc,CAAC,YAAY,CAAC;AACvD,IAAI,OAAO,CAAC,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,uBAAuB,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;AACrG,IAAI,OAAO,CAAC,MAAM,GAAG,cAAc,CAAC,MAAM,CAAC;AAC3C,IAAI,OAAO,OAAO,CAAC;AACnB,GAAG;AACH;;;;"}