{"version":3,"file":"customPrimitive.mjs","sources":["../../../../../../packages/components/overlays/wind/customPrimitive.ts"],"sourcesContent":["class CustomPrimitive {\n  commandType: string\n  geometry: any\n  attributeLocations: any\n  primitiveType: any\n  uniformMap: any\n  vertexShaderSource: any\n  fragmentShaderSource: any\n  rawRenderState: any\n  framebuffer: any\n  outputTexture: any\n  autoClear: any\n  preExecute: any\n  show: boolean\n  commandToExecute: any\n  clearCommand: any\n  constructor(options) {\n    this.commandType = options.commandType\n\n    this.geometry = options.geometry\n    this.attributeLocations = options.attributeLocations\n    this.primitiveType = options.primitiveType\n\n    this.uniformMap = options.uniformMap\n\n    this.vertexShaderSource = options.vertexShaderSource\n    this.fragmentShaderSource = options.fragmentShaderSource\n\n    this.rawRenderState = options.rawRenderState\n    this.framebuffer = options.framebuffer\n\n    this.outputTexture = options.outputTexture\n\n    this.autoClear = Cesium.defaultValue(options.autoClear, false)\n    this.preExecute = options.preExecute\n\n    this.show = true\n    this.commandToExecute = undefined\n    this.clearCommand = undefined\n    if (this.autoClear) {\n      this.clearCommand = new Cesium.ClearCommand({\n        color: new Cesium.Color(0.0, 0.0, 0.0, 0.0),\n        depth: 1.0,\n        framebuffer: this.framebuffer,\n        pass: Cesium.Pass.OPAQUE\n      })\n    }\n  }\n\n  createCommand(context) {\n    switch (this.commandType) {\n      case 'Draw': {\n        const vertexArray = Cesium.VertexArray.fromGeometry({\n          context: context,\n          geometry: this.geometry,\n          attributeLocations: this.attributeLocations,\n          bufferUsage: Cesium.BufferUsage.STATIC_DRAW\n        })\n\n        const shaderProgram = Cesium.ShaderProgram.fromCache({\n          context: context,\n          attributeLocations: this.attributeLocations,\n          vertexShaderSource: this.vertexShaderSource,\n          fragmentShaderSource: this.fragmentShaderSource\n        })\n\n        const renderState = Cesium.RenderState.fromCache(this.rawRenderState)\n        return new Cesium.DrawCommand({\n          owner: this,\n          vertexArray: vertexArray,\n          primitiveType: this.primitiveType,\n          uniformMap: this.uniformMap,\n          modelMatrix: Cesium.Matrix4.IDENTITY,\n          shaderProgram: shaderProgram,\n          framebuffer: this.framebuffer,\n          renderState: renderState,\n          pass: Cesium.Pass.OPAQUE\n        })\n      }\n      case 'Compute': {\n        return new Cesium.ComputeCommand({\n          owner: this,\n          fragmentShaderSource: this.fragmentShaderSource,\n          uniformMap: this.uniformMap,\n          outputTexture: this.outputTexture,\n          persists: true\n        })\n      }\n    }\n  }\n\n  setGeometry(context, geometry) {\n    this.geometry = geometry\n    const vertexArray = Cesium.VertexArray.fromGeometry({\n      context: context,\n      geometry: this.geometry,\n      attributeLocations: this.attributeLocations,\n      bufferUsage: Cesium.BufferUsage.STATIC_DRAW\n    })\n    this.commandToExecute.vertexArray = vertexArray\n  }\n\n  update(frameState) {\n    if (!this.show) {\n      return\n    }\n\n    if (!Cesium.defined(this.commandToExecute)) {\n      this.commandToExecute = this.createCommand(frameState.context)\n    }\n\n    if (Cesium.defined(this.preExecute)) {\n      this.preExecute()\n    }\n\n    if (Cesium.defined(this.clearCommand)) {\n      frameState.commandList.push(this.clearCommand)\n    }\n    frameState.commandList.push(this.commandToExecute)\n  }\n\n  isDestroyed() {\n    return false\n  }\n\n  destroy() {\n    if (Cesium.defined(this.commandToExecute)) {\n      this.commandToExecute.shaderProgram = this.commandToExecute.shaderProgram && this.commandToExecute.shaderProgram.destroy()\n    }\n    return Cesium.destroyObject(this)\n  }\n}\n\nexport default CustomPrimitive\n"],"names":[],"mappings":"AAAA,MAAM,eAAe,CAAC;AACtB,EAAE,WAAW,CAAC,OAAO,EAAE;AACvB,IAAI,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;AAC3C,IAAI,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;AACrC,IAAI,IAAI,CAAC,kBAAkB,GAAG,OAAO,CAAC,kBAAkB,CAAC;AACzD,IAAI,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC;AAC/C,IAAI,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;AACzC,IAAI,IAAI,CAAC,kBAAkB,GAAG,OAAO,CAAC,kBAAkB,CAAC;AACzD,IAAI,IAAI,CAAC,oBAAoB,GAAG,OAAO,CAAC,oBAAoB,CAAC;AAC7D,IAAI,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC,cAAc,CAAC;AACjD,IAAI,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;AAC3C,IAAI,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC;AAC/C,IAAI,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;AACnE,IAAI,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;AACzC,IAAI,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;AACrB,IAAI,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC,CAAC;AACnC,IAAI,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC,CAAC;AAC/B,IAAI,IAAI,IAAI,CAAC,SAAS,EAAE;AACxB,MAAM,IAAI,CAAC,YAAY,GAAG,IAAI,MAAM,CAAC,YAAY,CAAC;AAClD,QAAQ,KAAK,EAAE,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AAC3C,QAAQ,KAAK,EAAE,CAAC;AAChB,QAAQ,WAAW,EAAE,IAAI,CAAC,WAAW;AACrC,QAAQ,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM;AAChC,OAAO,CAAC,CAAC;AACT,KAAK;AACL,GAAG;AACH,EAAE,aAAa,CAAC,OAAO,EAAE;AACzB,IAAI,QAAQ,IAAI,CAAC,WAAW;AAC5B,MAAM,KAAK,MAAM,EAAE;AACnB,QAAQ,MAAM,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC,YAAY,CAAC;AAC5D,UAAU,OAAO;AACjB,UAAU,QAAQ,EAAE,IAAI,CAAC,QAAQ;AACjC,UAAU,kBAAkB,EAAE,IAAI,CAAC,kBAAkB;AACrD,UAAU,WAAW,EAAE,MAAM,CAAC,WAAW,CAAC,WAAW;AACrD,SAAS,CAAC,CAAC;AACX,QAAQ,MAAM,aAAa,GAAG,MAAM,CAAC,aAAa,CAAC,SAAS,CAAC;AAC7D,UAAU,OAAO;AACjB,UAAU,kBAAkB,EAAE,IAAI,CAAC,kBAAkB;AACrD,UAAU,kBAAkB,EAAE,IAAI,CAAC,kBAAkB;AACrD,UAAU,oBAAoB,EAAE,IAAI,CAAC,oBAAoB;AACzD,SAAS,CAAC,CAAC;AACX,QAAQ,MAAM,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC,SAAS,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;AAC9E,QAAQ,OAAO,IAAI,MAAM,CAAC,WAAW,CAAC;AACtC,UAAU,KAAK,EAAE,IAAI;AACrB,UAAU,WAAW;AACrB,UAAU,aAAa,EAAE,IAAI,CAAC,aAAa;AAC3C,UAAU,UAAU,EAAE,IAAI,CAAC,UAAU;AACrC,UAAU,WAAW,EAAE,MAAM,CAAC,OAAO,CAAC,QAAQ;AAC9C,UAAU,aAAa;AACvB,UAAU,WAAW,EAAE,IAAI,CAAC,WAAW;AACvC,UAAU,WAAW;AACrB,UAAU,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM;AAClC,SAAS,CAAC,CAAC;AACX,OAAO;AACP,MAAM,KAAK,SAAS,EAAE;AACtB,QAAQ,OAAO,IAAI,MAAM,CAAC,cAAc,CAAC;AACzC,UAAU,KAAK,EAAE,IAAI;AACrB,UAAU,oBAAoB,EAAE,IAAI,CAAC,oBAAoB;AACzD,UAAU,UAAU,EAAE,IAAI,CAAC,UAAU;AACrC,UAAU,aAAa,EAAE,IAAI,CAAC,aAAa;AAC3C,UAAU,QAAQ,EAAE,IAAI;AACxB,SAAS,CAAC,CAAC;AACX,OAAO;AACP,KAAK;AACL,GAAG;AACH,EAAE,WAAW,CAAC,OAAO,EAAE,QAAQ,EAAE;AACjC,IAAI,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;AAC7B,IAAI,MAAM,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC,YAAY,CAAC;AACxD,MAAM,OAAO;AACb,MAAM,QAAQ,EAAE,IAAI,CAAC,QAAQ;AAC7B,MAAM,kBAAkB,EAAE,IAAI,CAAC,kBAAkB;AACjD,MAAM,WAAW,EAAE,MAAM,CAAC,WAAW,CAAC,WAAW;AACjD,KAAK,CAAC,CAAC;AACP,IAAI,IAAI,CAAC,gBAAgB,CAAC,WAAW,GAAG,WAAW,CAAC;AACpD,GAAG;AACH,EAAE,MAAM,CAAC,UAAU,EAAE;AACrB,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;AACpB,MAAM,OAAO;AACb,KAAK;AACL,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,gBAAgB,CAAC,EAAE;AAChD,MAAM,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;AACrE,KAAK;AACL,IAAI,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE;AACzC,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;AACxB,KAAK;AACL,IAAI,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE;AAC3C,MAAM,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;AACrD,KAAK;AACL,IAAI,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;AACvD,GAAG;AACH,EAAE,WAAW,GAAG;AAChB,IAAI,OAAO,KAAK,CAAC;AACjB,GAAG;AACH,EAAE,OAAO,GAAG;AACZ,IAAI,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,gBAAgB,CAAC,EAAE;AAC/C,MAAM,IAAI,CAAC,gBAAgB,CAAC,aAAa,GAAG,IAAI,CAAC,gBAAgB,CAAC,aAAa,IAAI,IAAI,CAAC,gBAAgB,CAAC,aAAa,CAAC,OAAO,EAAE,CAAC;AACjI,KAAK;AACL,IAAI,OAAO,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;AACtC,GAAG;AACH;;;;"}