UNPKG

vue-cesium-jyt

Version:
1 lines 15.4 kB
{"version":3,"file":"use-drawing-action.mjs","sources":["../../../../../packages/composables/use-drawing/use-drawing-action.ts"],"sourcesContent":["/*\n * @Author: zouyaoji@https://github.com/zouyaoji\n * @Date: 2021-10-15 09:47:36\n * @LastEditTime: 2022-02-08 11:02:50\n * @LastEditors: zouyaoji\n * @Description:\n * @FilePath: \\vue-cesium@next\\packages\\composables\\use-drawing\\use-drawing-action.ts\n */\n// import { enableMouseEvent } from '@vue-cesium/utils/cesium-props'\nimport type { VcReadyObject, VcComponentInternalInstance, VcComponentPublicInstance, VcViewerProvider, VcPickEvent } from '@vue-cesium/utils/types'\nimport { ref } from 'vue'\nimport { useLocale } from '../use-locale'\nimport { DrawStatus } from '@vue-cesium/shared'\nimport useTimeout from '@vue-cesium/composables/private/use-timeout'\nimport { kebabCase } from '@vue-cesium/utils/util'\nimport { VcDrawTipOpts } from '@vue-cesium/utils/drawing-types'\n\nexport default function (props, ctx, instance: VcComponentInternalInstance, cmpName: string, $services: VcViewerProvider) {\n instance.cesiumClass = cmpName\n instance.cesiumEvents = []\n const { t } = useLocale()\n const { emit } = ctx\n const tips = kebabCase(cmpName).split('-')\n if (cmpName === 'VcMeasurementDistance' && props.showComponentLines) {\n tips[2] = 'component-distance'\n }\n if (cmpName === 'VcDrawingRegular' || cmpName === 'VcMeasurementRegular') {\n if (props.edge === 4) {\n tips[2] = 'rectangle'\n }\n if (props.edge === 360) {\n tips[2] = 'circle'\n }\n }\n let drawingType = tips[2]\n\n tips[3] && (drawingType = `${tips[2]}-${tips[3]}`)\n\n const drawTip = ref('')\n const drawTipOpts = ref<VcDrawTipOpts>({\n drawingTipStart: props.drawtip.drawingTipStart || t(`${tips[0]}.${tips[1]}.${tips[2]}.drawingTipStart`),\n drawingTipEnd: props.drawtip.drawingTipEnd || t(`${tips[0]}.${tips[1]}.${tips[2]}.drawingTipEnd`),\n drawingTipEditing: props.drawtip.drawingTipEditing || t(`${tips[0]}.${tips[1]}.${tips[2]}.drawingTipEditing`)\n })\n\n const drawStatus = ref(DrawStatus.BeforeDraw)\n const canShowDrawTip = ref(false)\n const drawTipPosition = ref<Array<number> | Cesium.Cartesian3>([0, 0, 0])\n const showEditor = ref(false)\n const editorPosition = ref<Array<number> | Cesium.Cartesian3>([0, 0, 0])\n const mouseoverPoint = ref<any>(null)\n const editingPoint = ref<any>(null)\n const primitiveCollectionRef = ref<VcComponentPublicInstance>(null!)\n const editorType = ref('')\n\n const { registerTimeout, removeTimeout } = useTimeout()\n\n // methods\n instance.createCesiumObject = async () => {\n return primitiveCollectionRef\n }\n\n const onMouseoverPoints = (e: VcPickEvent) => {\n const { drawingHandlerActive, viewer } = $services\n if (props.editable && drawStatus.value !== DrawStatus.Drawing && drawingHandlerActive) {\n e.pickedFeature.primitive.pixelSize = props.pointOpts?.pixelSize * 1.5\n removeTimeout()\n registerTimeout(() => {\n mouseoverPoint.value = e.pickedFeature.primitive\n editorPosition.value = e.pickedFeature.primitive.position\n showEditor.value = true\n canShowDrawTip.value = false\n drawTipPosition.value = [0, 0, 0]\n }, props.editorOpts?.delay)\n }\n\n emit(\n 'mouseEvt',\n {\n type: e.type,\n name: drawingType,\n target: e\n },\n viewer\n )\n }\n\n const onMouseoutPoints = (e: VcPickEvent) => {\n const { viewer, selectedDrawingActionInstance } = $services\n if (props.editable) {\n e.pickedFeature.primitive.pixelSize = props.pointOpts?.pixelSize * 1.0\n removeTimeout()\n registerTimeout(() => {\n editorPosition.value = [0, 0, 0]\n mouseoverPoint.value = undefined\n showEditor.value = false\n }, props.editorOpts?.hideDelay)\n selectedDrawingActionInstance && (canShowDrawTip.value = true)\n }\n\n emit(\n 'mouseEvt',\n {\n type: e.type,\n name: drawingType,\n target: e\n },\n viewer\n )\n }\n\n const onMouseenterEditor = evt => {\n removeTimeout()\n }\n\n const onMouseleaveEditor = evt => {\n removeTimeout()\n registerTimeout(() => {\n editorPosition.value = [0, 0, 0]\n mouseoverPoint.value.pixelSize = props.pointOpts?.pixelSize * 1.0\n mouseoverPoint.value = undefined\n showEditor.value = false\n }, props.editorOpts?.hideDelay)\n }\n\n const onPrimitiveCollectionReady = (readyObj: VcReadyObject) => {\n ;(readyObj.cesiumObject as any)._vcId = cmpName\n }\n\n const onVcCollectionPointReady = function (e: VcReadyObject) {\n const { cesiumObject: pointPrimitiveCollection } = e as any\n const originalUpdate = pointPrimitiveCollection.update\n\n pointPrimitiveCollection.update = function (frameState) {\n const originalLength = frameState.commandList.length\n originalUpdate.call(this, frameState)\n const endLength = frameState.commandList.length\n for (let i = originalLength; i < endLength; ++i) {\n frameState.commandList[i].pass = Cesium['Pass'].TRANSLUCENT\n frameState.commandList[i].renderState = Cesium['RenderState'].fromCache({\n depthTest: {\n enabled: false\n },\n depthMask: false\n })\n }\n }\n }\n\n const onVcCollectionLabelReady = (e: VcReadyObject) => {\n if (!props.disableDepthTest) return\n const labelCollection = e.cesiumObject as any\n const originalUpdate = labelCollection.update\n\n labelCollection.update = function (frameState) {\n const originalLength = frameState.commandList.length\n originalUpdate.call(this, frameState)\n const endLength = frameState.commandList.length\n for (let i = originalLength; i < endLength; ++i) {\n frameState.commandList[i].pass = Cesium['Pass'].OVERLAY\n frameState.commandList[i].renderState = Cesium['RenderState'].fromCache({\n depthTest: {\n enabled: false\n },\n depthMask: false,\n blending: Cesium.BlendingState.ALPHA_BLEND\n })\n }\n }\n }\n\n const onVcPrimitiveReady = (e: VcReadyObject) => {\n if (!props.disableDepthTest) return\n\n const primitive = e.cesiumObject as any\n const originalPrimitiveUpdate = primitive.update\n\n primitive.update = function (frameState) {\n const originalLength = frameState.commandList.length\n originalPrimitiveUpdate.call(this, frameState)\n const endLength = frameState.commandList.length\n for (let i = originalLength; i < endLength; ++i) {\n if (frameState.commandList[i].pass !== Cesium['Pass'].TRANSLUCENT) {\n continue\n }\n frameState.commandList[i].pass = Cesium['Pass'].OPAQUE\n frameState.commandList[i].renderState = Cesium['RenderState'].fromCache({\n depthTest: {\n enabled: false\n },\n depthMask: false,\n blending: Cesium.BlendingState.ALPHA_BLEND\n })\n }\n }\n }\n\n return {\n drawingType,\n drawTip,\n drawTipOpts,\n drawStatus,\n canShowDrawTip,\n drawTipPosition,\n showEditor,\n editorPosition,\n mouseoverPoint,\n editingPoint,\n primitiveCollectionRef,\n editorType,\n onMouseoverPoints,\n onMouseoutPoints,\n onMouseenterEditor,\n onMouseleaveEditor,\n onPrimitiveCollectionReady,\n onVcCollectionPointReady,\n onVcPrimitiveReady,\n onVcCollectionLabelReady\n }\n}\n"],"names":[],"mappings":"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"}