{"version":3,"file":"util.mjs","sources":["../../../../../../packages/components/overlays/wind/util.ts"],"sourcesContent":["/*\n * @Author: zouyaoji@https://github.com/zouyaoji\n * @Date: 2021-10-28 10:11:59\n * @LastEditTime: 2022-03-09 13:44:48\n * @LastEditors: zouyaoji\n * @Description:\n * @FilePath: \\vue-cesium@next\\packages\\components\\overlays\\wind\\util.ts\n */\n\nexport function getFullscreenQuad() {\n  const GeometryAttributes = Cesium.GeometryAttributes as any\n  const fullscreenQuad = new Cesium.Geometry({\n    attributes: new GeometryAttributes({\n      position: new Cesium.GeometryAttribute({\n        componentDatatype: Cesium.ComponentDatatype.FLOAT,\n        componentsPerAttribute: 3,\n        //  v3----v2\n        //  |     |\n        //  |     |\n        //  v0----v1\n        // prettier-ignore\n        values: new Float32Array([\n          -1, -1, 0, // v0\n          1, -1, 0, // v1\n          1, 1, 0, // v2\n          -1, 1, 0, // v3\n        ])\n      }),\n      st: new Cesium.GeometryAttribute({\n        componentDatatype: Cesium.ComponentDatatype.FLOAT,\n        componentsPerAttribute: 2,\n        values: new Float32Array([0, 0, 1, 0, 1, 1, 0, 1])\n      })\n    }),\n    indices: new Uint32Array([3, 2, 0, 0, 2, 1])\n  })\n  return fullscreenQuad\n}\n\nexport function createTexture(options, typedArray?) {\n  if (Cesium.defined(typedArray)) {\n    // typed array needs to be passed as source option, this is required by Cesium.Texture\n    const source: any = {}\n    source.arrayBufferView = typedArray\n    options.source = source\n  }\n\n  const texture = new Cesium.Texture(options)\n  return texture\n}\n\nexport function createFramebuffer(context, colorTexture, depthTexture) {\n  const framebuffer = new Cesium.Framebuffer({\n    context: context,\n    colorTextures: [colorTexture],\n    depthTexture: depthTexture\n  })\n  return framebuffer\n}\n\nexport function createRawRenderState(options) {\n  const translucent = true\n  const closed = false\n  const existing = {\n    viewport: options.viewport,\n    depthTest: options.depthTest,\n    depthMask: options.depthMask,\n    blending: options.blending\n  }\n\n  const rawRenderState = (Cesium.Appearance as any).getDefaultRenderState(translucent, closed, existing)\n  return rawRenderState\n}\n\nexport function viewRectangleToLonLatRange(viewRectangle: Cesium.Rectangle) {\n  const range: {\n    lon?: {\n      min: number\n      max: number\n    }\n    lat?: {\n      min: number\n      max: number\n    }\n  } = {}\n\n  const postiveWest = Cesium.Math.mod(viewRectangle.west, Cesium.Math.TWO_PI)\n  const postiveEast = Cesium.Math.mod(viewRectangle.east, Cesium.Math.TWO_PI)\n  const width = viewRectangle.width\n\n  let longitudeMin\n  let longitudeMax\n  if (width > Cesium.Math.THREE_PI_OVER_TWO) {\n    longitudeMin = 0.0\n    longitudeMax = Cesium.Math.TWO_PI\n  } else {\n    if (postiveEast - postiveWest < width) {\n      longitudeMin = postiveWest\n      longitudeMax = postiveWest + width\n    } else {\n      longitudeMin = postiveWest\n      longitudeMax = postiveEast\n    }\n  }\n\n  range.lon = {\n    min: Cesium.Math.toDegrees(longitudeMin),\n    max: Cesium.Math.toDegrees(longitudeMax)\n  }\n\n  const south = viewRectangle.south\n  const north = viewRectangle.north\n  const height = viewRectangle.height\n\n  const extendHeight = height > Cesium.Math.PI / 12 ? height / 2 : 0\n  let extendedSouth = Cesium.Math.clampToLatitudeRange(south - extendHeight)\n  let extendedNorth = Cesium.Math.clampToLatitudeRange(north + extendHeight)\n\n  // extend the bound in high latitude area to make sure it can cover all the visible area\n  if (extendedSouth < -Cesium.Math.PI_OVER_THREE) {\n    extendedSouth = -Cesium.Math.PI_OVER_TWO\n  }\n  if (extendedNorth > Cesium.Math.PI_OVER_THREE) {\n    extendedNorth = Cesium.Math.PI_OVER_TWO\n  }\n\n  range.lat = {\n    min: Cesium.Math.toDegrees(extendedSouth),\n    max: Cesium.Math.toDegrees(extendedNorth)\n  }\n\n  return range\n}\n"],"names":[],"mappings":"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"}