{"version":3,"file":"index.mjs","sources":["../../../../../../packages/components/primitives/tileset/index.ts"],"sourcesContent":["import type { ExtractPropTypes, PropType } from 'vue'\nimport { createCommentVNode, defineComponent, getCurrentInstance } from 'vue'\nimport type { VcComponentInternalInstance, VcComponentPublicInstance } from '@vue-cesium/utils/types'\nimport { usePrimitives } from '@vue-cesium/composables'\nimport {\n  show,\n  modelMatrix,\n  shadows,\n  maximumScreenSpaceError,\n  clippingPlanes,\n  classificationType,\n  ellipsoid,\n  imageBasedLightingFactor,\n  lightColor2,\n  luminanceAtZenith,\n  sphericalHarmonicCoefficients,\n  specularEnvironmentMaps,\n  backFaceCulling,\n  debugWireframe,\n  debugShowBoundingVolume,\n  enableMouseEvent\n} from '@vue-cesium/utils/cesium-props'\nimport { kebabCase } from '@vue-cesium/utils/util'\nimport { primitiveEmits } from '@vue-cesium/utils/emits'\nconst emits = {\n  ...primitiveEmits,\n  allTilesLoaded: () => true,\n  initialTilesLoaded: () => true,\n  loadProgress: (numberOfPendingRequests: number, numberOfTilesProcessing: number) => true,\n  tileFailed: (url: string, errorMsg: string) => true,\n  tileLoad: (tile: Cesium.Cesium3DTile) => true,\n  tileUnload: (tile: Cesium.Cesium3DTile) => true,\n  tileVisible: (tile: Cesium.Cesium3DTile) => true\n}\n\nexport const tilesetPrimitiveProps = {\n  url: [String, Object] as PropType<string | Promise<string> | Promise<Cesium.Resource> | Cesium.Resource>,\n  ...show,\n  ...modelMatrix,\n  ...shadows,\n  ...maximumScreenSpaceError,\n  maximumMemoryUsage: {\n    type: Number,\n    default: 512\n  },\n  cullWithChildrenBounds: {\n    type: Boolean,\n    default: true\n  },\n  cullRequestsWhileMoving: {\n    type: Boolean,\n    default: true\n  },\n  cullRequestsWhileMovingMultiplier: {\n    type: Number,\n    default: 60.0\n  },\n  preloadWhenHidden: {\n    type: Boolean,\n    default: false\n  },\n  preloadFlightDestinations: {\n    type: Boolean,\n    default: true\n  },\n  preferLeaves: {\n    type: Boolean,\n    default: false\n  },\n  dynamicScreenSpaceError: {\n    type: Boolean,\n    default: false\n  },\n  dynamicScreenSpaceErrorDensity: {\n    type: Number,\n    default: 0.00278\n  },\n  dynamicScreenSpaceErrorFactor: {\n    type: Number,\n    default: 4.0\n  },\n  dynamicScreenSpaceErrorHeightFalloff: {\n    type: Number,\n    default: 0.25\n  },\n  progressiveResolutionHeightFraction: {\n    type: Number,\n    default: 0.3\n  },\n  foveatedScreenSpaceError: {\n    type: Boolean,\n    default: true\n  },\n  foveatedConeSize: {\n    type: Number,\n    default: 0.1\n  },\n  foveatedMinimumScreenSpaceErrorRelaxation: {\n    type: Number,\n    default: 0.0\n  },\n  foveatedInterpolationCallback: Function,\n  foveatedTimeDelay: {\n    type: Number,\n    default: 0.2\n  },\n  skipLevelOfDetail: {\n    type: Boolean,\n    default: false\n  },\n  baseScreenSpaceError: {\n    type: Number,\n    default: 1024\n  },\n  skipScreenSpaceErrorFactor: {\n    type: Number,\n    default: 16\n  },\n  skipLevels: {\n    type: Number,\n    default: 1\n  },\n  immediatelyLoadDesiredLevelOfDetail: {\n    type: Boolean,\n    default: false\n  },\n  loadSiblings: {\n    type: Boolean,\n    default: false\n  },\n  ...clippingPlanes,\n  ...classificationType,\n  ...ellipsoid,\n  pointCloudShading: Object,\n  ...imageBasedLightingFactor,\n  ...lightColor2,\n  ...luminanceAtZenith,\n  ...sphericalHarmonicCoefficients,\n  ...specularEnvironmentMaps,\n  ...backFaceCulling,\n  showOutline: {\n    type: Boolean,\n    default: true\n  },\n  vectorClassificationOnly: {\n    type: Boolean,\n    default: false\n  },\n  vectorKeepDecodedPositions: {\n    type: Boolean,\n    default: false\n  },\n  debugHeatmapTilePropertyName: String,\n  debugFreezeFrame: {\n    type: Boolean,\n    default: false\n  },\n  debugColorizeTiles: {\n    type: Boolean,\n    default: false\n  },\n  ...debugWireframe,\n  ...debugShowBoundingVolume,\n  debugShowContentBoundingVolume: {\n    type: Boolean,\n    default: false\n  },\n  debugShowViewerRequestVolume: {\n    type: Boolean,\n    default: false\n  },\n  debugShowGeometricError: {\n    type: Boolean,\n    default: false\n  },\n  debugShowRenderingStatistics: {\n    type: Boolean,\n    default: false\n  },\n  debugShowMemoryUsage: {\n    type: Boolean,\n    default: false\n  },\n  debugShowUrl: {\n    type: Boolean,\n    default: false\n  },\n  ...enableMouseEvent,\n  enableModelExperimental: {\n    type: Boolean,\n    default: false\n  },\n  customShader: {\n    type: Object as PropType<Cesium.CustomShader>\n  },\n  properties: {\n    type: Array as PropType<\n      Array<{\n        key: string\n        keyValue: any\n        propertyName: string\n        propertyValue: any\n      }>\n    >\n  },\n  fragmentShader: String,\n  replaceFS: Boolean\n}\nexport default defineComponent({\n  name: 'VcPrimitiveTileset',\n  props: tilesetPrimitiveProps,\n  emits: emits,\n  setup(props, ctx) {\n    // state\n    const instance = getCurrentInstance() as VcComponentInternalInstance\n    instance.cesiumClass = 'Cesium3DTileset'\n    instance.cesiumEvents = ['allTilesLoaded', 'initialTilesLoaded', 'loadProgress', 'tileFailed', 'tileLoad', 'tileUnload', 'tileVisible']\n    usePrimitives(props, ctx, instance)\n    ;(instance.proxy as VcComponentPublicInstance).createPromise.then(obj => {\n      const tileset = obj.cesiumObject as Cesium.Cesium3DTileset\n      instance.removeCallbacks.push(tileset.tileVisible.addEventListener(updateTile))\n    })\n\n    const updateTile = (tile: Cesium.Cesium3DTile) => {\n      const content = tile.content\n      const model = (content as any)._model\n      // sets properties\n      for (let i = 0; i < content.featuresLength; i++) {\n        const feature = content.getFeature(i)\n        if (props.properties && props.properties.length) {\n          props.properties.forEach(property => {\n            if (feature.hasProperty(property['key']) && feature.getProperty(property['key']) === property['keyValue']) {\n              feature.setProperty(property['propertyName'], property['propertyValue'])\n            }\n          })\n        }\n      }\n      // sets fragmentShader\n      if (props.fragmentShader && model && model._sourcePrograms && model._rendererResources) {\n        Object.keys(model._sourcePrograms).forEach(key => {\n          const program = model._sourcePrograms[key]\n          const sourceShaders = model._rendererResources.sourceShaders\n          if (props.replaceFS) {\n            sourceShaders[program.fragmentShader] = props.fragmentShader\n          } else {\n            const oldFS = sourceShaders[program.fragmentShader]\n            sourceShaders[program.fragmentShader] = oldFS.replace(\n              'gl_FragColor = vec4(color, 1.0);\\n}',\n              `gl_FragColor = vec4(color, 1.0);\n             ${props.fragmentShader}\\n}\n            `\n            )\n          }\n        })\n        model._shouldRegenerateShaders = true\n      }\n    }\n    return () => createCommentVNode(kebabCase(instance.proxy?.$options.name || ''))\n  }\n})\n\nexport type VcPrimitiveTilesetProps = ExtractPropTypes<typeof tilesetPrimitiveProps>\nexport type VcPrimitiveTilesetEmits = typeof emits\n"],"names":[],"mappings":"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"}