@deck.gl/geo-layers 9.4.0-alpha.1 → 9.4.0-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (121) hide show
  1. package/dist/dist.dev.js +3853 -2493
  2. package/dist/geo-cell-layer/GeoCellLayer.d.ts.map +1 -1
  3. package/dist/geo-cell-layer/GeoCellLayer.js +2 -1
  4. package/dist/geo-cell-layer/GeoCellLayer.js.map +1 -1
  5. package/dist/index.cjs +21181 -1889
  6. package/dist/index.cjs.map +3 -4
  7. package/dist/mesh-layer/mesh-layer-uniforms.d.ts +1 -0
  8. package/dist/mesh-layer/mesh-layer-uniforms.d.ts.map +1 -1
  9. package/dist/mesh-layer/mesh-layer-uniforms.js +8 -0
  10. package/dist/mesh-layer/mesh-layer-uniforms.js.map +1 -1
  11. package/dist/mesh-layer/mesh-layer.d.ts.map +1 -1
  12. package/dist/mesh-layer/mesh-layer.js +15 -6
  13. package/dist/mesh-layer/mesh-layer.js.map +1 -1
  14. package/dist/mesh-layer/mesh-layer.wgsl.d.ts +3 -0
  15. package/dist/mesh-layer/mesh-layer.wgsl.d.ts.map +1 -0
  16. package/dist/mesh-layer/mesh-layer.wgsl.js +130 -0
  17. package/dist/mesh-layer/mesh-layer.wgsl.js.map +1 -0
  18. package/dist/mesh-layer/mesh-pbr-material.d.ts +252 -0
  19. package/dist/mesh-layer/mesh-pbr-material.d.ts.map +1 -0
  20. package/dist/mesh-layer/mesh-pbr-material.js +27 -0
  21. package/dist/mesh-layer/mesh-pbr-material.js.map +1 -0
  22. package/dist/trips-layer/trips-layer-uniforms.d.ts +1 -0
  23. package/dist/trips-layer/trips-layer-uniforms.d.ts.map +1 -1
  24. package/dist/trips-layer/trips-layer-uniforms.js +14 -3
  25. package/dist/trips-layer/trips-layer-uniforms.js.map +1 -1
  26. package/dist/trips-layer/trips-layer.d.ts +6 -1
  27. package/dist/trips-layer/trips-layer.d.ts.map +1 -1
  28. package/dist/trips-layer/trips-layer.js +57 -24
  29. package/dist/trips-layer/trips-layer.js.map +1 -1
  30. package/dist/trips-layer/trips-layer.wgsl.d.ts +11 -0
  31. package/dist/trips-layer/trips-layer.wgsl.d.ts.map +1 -0
  32. package/dist/trips-layer/trips-layer.wgsl.js +48 -0
  33. package/dist/trips-layer/trips-layer.wgsl.js.map +1 -0
  34. package/dist.min.js +1415 -149
  35. package/dist.webgl-only/a5-layer/a5-layer.js +30 -0
  36. package/dist.webgl-only/a5-layer/a5-layer.js.map +1 -0
  37. package/dist.webgl-only/geo-cell-layer/GeoCellLayer.js +57 -0
  38. package/dist.webgl-only/geo-cell-layer/GeoCellLayer.js.map +1 -0
  39. package/dist.webgl-only/geohash-layer/geohash-layer.js +24 -0
  40. package/dist.webgl-only/geohash-layer/geohash-layer.js.map +1 -0
  41. package/dist.webgl-only/geohash-layer/geohash-utils.js +54 -0
  42. package/dist.webgl-only/geohash-layer/geohash-utils.js.map +1 -0
  43. package/dist.webgl-only/great-circle-layer/great-circle-layer.js +17 -0
  44. package/dist.webgl-only/great-circle-layer/great-circle-layer.js.map +1 -0
  45. package/dist.webgl-only/h3-layers/h3-cluster-layer.js +52 -0
  46. package/dist.webgl-only/h3-layers/h3-cluster-layer.js.map +1 -0
  47. package/dist.webgl-only/h3-layers/h3-hexagon-layer.js +209 -0
  48. package/dist.webgl-only/h3-layers/h3-hexagon-layer.js.map +1 -0
  49. package/dist.webgl-only/h3-layers/h3-utils.js +60 -0
  50. package/dist.webgl-only/h3-layers/h3-utils.js.map +1 -0
  51. package/dist.webgl-only/index.cjs +22542 -0
  52. package/dist.webgl-only/index.cjs.map +6 -0
  53. package/dist.webgl-only/index.js +22 -0
  54. package/dist.webgl-only/index.js.map +1 -0
  55. package/dist.webgl-only/mesh-layer/mesh-layer-fragment.glsl.js +34 -0
  56. package/dist.webgl-only/mesh-layer/mesh-layer-fragment.glsl.js.map +1 -0
  57. package/dist.webgl-only/mesh-layer/mesh-layer-uniforms.js +19 -0
  58. package/dist.webgl-only/mesh-layer/mesh-layer-uniforms.js.map +1 -0
  59. package/dist.webgl-only/mesh-layer/mesh-layer-vertex.glsl.js +64 -0
  60. package/dist.webgl-only/mesh-layer/mesh-layer-vertex.glsl.js.map +1 -0
  61. package/dist.webgl-only/mesh-layer/mesh-layer.js +149 -0
  62. package/dist.webgl-only/mesh-layer/mesh-layer.js.map +1 -0
  63. package/dist.webgl-only/mesh-layer/mesh-layer.wgsl.js +5 -0
  64. package/dist.webgl-only/mesh-layer/mesh-layer.wgsl.js.map +1 -0
  65. package/dist.webgl-only/mesh-layer/mesh-pbr-material.js +27 -0
  66. package/dist.webgl-only/mesh-layer/mesh-pbr-material.js.map +1 -0
  67. package/dist.webgl-only/mvt-layer/coordinate-transform.js +45 -0
  68. package/dist.webgl-only/mvt-layer/coordinate-transform.js.map +1 -0
  69. package/dist.webgl-only/mvt-layer/find-index-binary.js +100 -0
  70. package/dist.webgl-only/mvt-layer/find-index-binary.js.map +1 -0
  71. package/dist.webgl-only/mvt-layer/mvt-layer.js +315 -0
  72. package/dist.webgl-only/mvt-layer/mvt-layer.js.map +1 -0
  73. package/dist.webgl-only/quadkey-layer/quadkey-layer.js +27 -0
  74. package/dist.webgl-only/quadkey-layer/quadkey-layer.js.map +1 -0
  75. package/dist.webgl-only/quadkey-layer/quadkey-utils.js +30 -0
  76. package/dist.webgl-only/quadkey-layer/quadkey-utils.js.map +1 -0
  77. package/dist.webgl-only/s2-layer/s2-geometry.js +127 -0
  78. package/dist.webgl-only/s2-layer/s2-geometry.js.map +1 -0
  79. package/dist.webgl-only/s2-layer/s2-layer.js +24 -0
  80. package/dist.webgl-only/s2-layer/s2-layer.js.map +1 -0
  81. package/dist.webgl-only/s2-layer/s2-utils.js +91 -0
  82. package/dist.webgl-only/s2-layer/s2-utils.js.map +1 -0
  83. package/dist.webgl-only/terrain-layer/terrain-layer.js +260 -0
  84. package/dist.webgl-only/terrain-layer/terrain-layer.js.map +1 -0
  85. package/dist.webgl-only/tile-3d-layer/tile-3d-layer.js +343 -0
  86. package/dist.webgl-only/tile-3d-layer/tile-3d-layer.js.map +1 -0
  87. package/dist.webgl-only/tile-layer/tile-layer.js +233 -0
  88. package/dist.webgl-only/tile-layer/tile-layer.js.map +1 -0
  89. package/dist.webgl-only/tileset-2d/index.js +7 -0
  90. package/dist.webgl-only/tileset-2d/index.js.map +1 -0
  91. package/dist.webgl-only/tileset-2d/memoize.js +45 -0
  92. package/dist.webgl-only/tileset-2d/memoize.js.map +1 -0
  93. package/dist.webgl-only/tileset-2d/tile-2d-header.js +141 -0
  94. package/dist.webgl-only/tileset-2d/tile-2d-header.js.map +1 -0
  95. package/dist.webgl-only/tileset-2d/tile-2d-traversal.js +208 -0
  96. package/dist.webgl-only/tileset-2d/tile-2d-traversal.js.map +1 -0
  97. package/dist.webgl-only/tileset-2d/tileset-2d.js +557 -0
  98. package/dist.webgl-only/tileset-2d/tileset-2d.js.map +1 -0
  99. package/dist.webgl-only/tileset-2d/types.js +5 -0
  100. package/dist.webgl-only/tileset-2d/types.js.map +1 -0
  101. package/dist.webgl-only/tileset-2d/utils.js +246 -0
  102. package/dist.webgl-only/tileset-2d/utils.js.map +1 -0
  103. package/dist.webgl-only/trips-layer/trips-layer-uniforms.js +23 -0
  104. package/dist.webgl-only/trips-layer/trips-layer-uniforms.js.map +1 -0
  105. package/dist.webgl-only/trips-layer/trips-layer.js +97 -0
  106. package/dist.webgl-only/trips-layer/trips-layer.js.map +1 -0
  107. package/dist.webgl-only/trips-layer/trips-layer.wgsl.js +3 -0
  108. package/dist.webgl-only/trips-layer/trips-layer.wgsl.js.map +1 -0
  109. package/dist.webgl-only/wms-layer/utils.js +17 -0
  110. package/dist.webgl-only/wms-layer/utils.js.map +1 -0
  111. package/dist.webgl-only/wms-layer/wms-layer.js +198 -0
  112. package/dist.webgl-only/wms-layer/wms-layer.js.map +1 -0
  113. package/package.json +15 -6
  114. package/src/geo-cell-layer/GeoCellLayer.ts +2 -0
  115. package/src/mesh-layer/mesh-layer-uniforms.ts +9 -0
  116. package/src/mesh-layer/mesh-layer.ts +15 -6
  117. package/src/mesh-layer/mesh-layer.wgsl.ts +130 -0
  118. package/src/mesh-layer/mesh-pbr-material.ts +39 -0
  119. package/src/trips-layer/trips-layer-uniforms.ts +15 -3
  120. package/src/trips-layer/trips-layer.ts +84 -38
  121. package/src/trips-layer/trips-layer.wgsl.ts +63 -0
@@ -5,6 +5,7 @@ export declare const meshUniforms: {
5
5
  readonly name: "mesh";
6
6
  readonly vs: "layout(std140) uniform meshUniforms {\n bool pickFeatureIds;\n} mesh;\n";
7
7
  readonly fs: "layout(std140) uniform meshUniforms {\n bool pickFeatureIds;\n} mesh;\n";
8
+ readonly source: "struct MeshUniforms {\n pickFeatureIds: f32,\n};\n\n@group(0) @binding(auto) var<uniform> mesh: MeshUniforms;\n";
8
9
  readonly uniformTypes: {
9
10
  readonly pickFeatureIds: "f32";
10
11
  };
@@ -1 +1 @@
1
- {"version":3,"file":"mesh-layer-uniforms.d.ts","sourceRoot":"","sources":["../../src/mesh-layer/mesh-layer-uniforms.ts"],"names":[],"mappings":"AAYA,MAAM,MAAM,SAAS,GAAG;IACtB,cAAc,EAAE,OAAO,CAAC;CACzB,CAAC;AAEF,eAAO,MAAM,YAAY;;;;;;;CAOmB,CAAC"}
1
+ {"version":3,"file":"mesh-layer-uniforms.d.ts","sourceRoot":"","sources":["../../src/mesh-layer/mesh-layer-uniforms.ts"],"names":[],"mappings":"AAoBA,MAAM,MAAM,SAAS,GAAG;IACtB,cAAc,EAAE,OAAO,CAAC;CACzB,CAAC;AAEF,eAAO,MAAM,YAAY;;;;;;;;CAQmB,CAAC"}
@@ -6,10 +6,18 @@ layout(std140) uniform meshUniforms {
6
6
  bool pickFeatureIds;
7
7
  } mesh;
8
8
  `;
9
+ const source = /* wgsl */ `\
10
+ struct MeshUniforms {
11
+ pickFeatureIds: f32,
12
+ };
13
+
14
+ @group(0) @binding(auto) var<uniform> mesh: MeshUniforms;
15
+ `;
9
16
  export const meshUniforms = {
10
17
  name: 'mesh',
11
18
  vs: uniformBlock,
12
19
  fs: uniformBlock,
20
+ source,
13
21
  uniformTypes: {
14
22
  pickFeatureIds: 'f32'
15
23
  }
@@ -1 +1 @@
1
- {"version":3,"file":"mesh-layer-uniforms.js","sourceRoot":"","sources":["../../src/mesh-layer/mesh-layer-uniforms.ts"],"names":[],"mappings":"AAAA,UAAU;AACV,+BAA+B;AAC/B,oCAAoC;AAIpC,MAAM,YAAY,GAAG;;;;CAIpB,CAAC;AAMF,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B,IAAI,EAAE,MAAM;IACZ,EAAE,EAAE,YAAY;IAChB,EAAE,EAAE,YAAY;IAChB,YAAY,EAAE;QACZ,cAAc,EAAE,KAAK;KACtB;CACyC,CAAC"}
1
+ {"version":3,"file":"mesh-layer-uniforms.js","sourceRoot":"","sources":["../../src/mesh-layer/mesh-layer-uniforms.ts"],"names":[],"mappings":"AAAA,UAAU;AACV,+BAA+B;AAC/B,oCAAoC;AAIpC,MAAM,YAAY,GAAG;;;;CAIpB,CAAC;AAEF,MAAM,MAAM,GAAG,UAAU,CAAC;;;;;;CAMzB,CAAC;AAMF,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B,IAAI,EAAE,MAAM;IACZ,EAAE,EAAE,YAAY;IAChB,EAAE,EAAE,YAAY;IAChB,MAAM;IACN,YAAY,EAAE;QACZ,cAAc,EAAE,KAAK;KACtB;CACyC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"mesh-layer.d.ts","sourceRoot":"","sources":["../../src/mesh-layer/mesh-layer.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,eAAe,CAAC;AAChD,OAAO,EAAmB,iBAAiB,EAAC,MAAM,eAAe,CAAC;AAElE,OAAO,EAAC,KAAK,EAAC,MAAM,iBAAiB,CAAC;AACtC,OAAO,KAAK,EAAC,aAAa,EAAE,cAAc,EAAC,MAAM,oBAAoB,CAAC;AACtE,OAAO,KAAK,EAAC,gBAAgB,EAAE,YAAY,EAAE,YAAY,EAAC,MAAM,eAAe,CAAC;AAChF,OAAO,EAAC,eAAe,EAAE,oBAAoB,EAAC,MAAM,sBAAsB,CAAC;AAM3E,MAAM,MAAM,IAAI,GAAG;IACjB,UAAU,EAAE,cAAc,CAAC;IAC3B,OAAO,CAAC,EAAE,aAAa,CAAC;CACzB,CAAC;AAoBF,6CAA6C;AAC7C,MAAM,MAAM,cAAc,CAAC,KAAK,GAAG,OAAO,IAAI,eAAe,GAAG,oBAAoB,CAAC,KAAK,CAAC,CAAC;AAE5F,qCAAqC;AACrC,KAAK,eAAe,GAAG;IACrB;;OAEG;IACH,WAAW,CAAC,EAAE,GAAG,CAAC;IAElB;;OAEG;IACH,UAAU,CAAC,EAAE,YAAY,GAAG,IAAI,CAAC;CAClC,CAAC;AAEF,MAAM,CAAC,OAAO,OAAO,SAAS,CAAC,KAAK,GAAG,GAAG,EAAE,UAAU,SAAS,EAAE,GAAG,EAAE,CAAE,SAAQ,eAAe,CAC7F,KAAK,EACL,QAAQ,CAAC,eAAe,CAAC,GAAG,UAAU,CACvC;IACC,MAAM,CAAC,SAAS,SAAe;IAC/B,MAAM,CAAC,YAAY,wCAAgB;IAEnC,UAAU;IAOV,eAAe;IAoBf,WAAW,CAAC,MAAM,EAAE,gBAAgB,CAAC,IAAI,CAAC;IAS1C,IAAI,CAAC,IAAI,KAAA;IAoBT,SAAS,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,GAAG,KAAK;IAwBrC,yBAAyB,CAAC,QAAQ,KAAA;IAuBlC,aAAa,CAAC,QAAQ,KAAA,EAAE,IAAI,EAAE,IAAI,GAAG,iBAAiB;IAiBtD,iCAAiC,CAAC,SAAS,KAAA;IAM3C,aAAa,CAAC,OAAO,EAAE,YAAY;CAKpC"}
1
+ {"version":3,"file":"mesh-layer.d.ts","sourceRoot":"","sources":["../../src/mesh-layer/mesh-layer.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,eAAe,CAAC;AAChD,OAAO,EAAmB,iBAAiB,EAAC,MAAM,eAAe,CAAC;AAClE,OAAO,EAAC,KAAK,EAAC,MAAM,iBAAiB,CAAC;AACtC,OAAO,KAAK,EAAC,aAAa,EAAE,cAAc,EAAC,MAAM,oBAAoB,CAAC;AACtE,OAAO,KAAK,EAAC,gBAAgB,EAAE,YAAY,EAAE,YAAY,EAAC,MAAM,eAAe,CAAC;AAChF,OAAO,EAAC,eAAe,EAAE,oBAAoB,EAAC,MAAM,sBAAsB,CAAC;AAQ3E,MAAM,MAAM,IAAI,GAAG;IACjB,UAAU,EAAE,cAAc,CAAC;IAC3B,OAAO,CAAC,EAAE,aAAa,CAAC;CACzB,CAAC;AAoBF,6CAA6C;AAC7C,MAAM,MAAM,cAAc,CAAC,KAAK,GAAG,OAAO,IAAI,eAAe,GAAG,oBAAoB,CAAC,KAAK,CAAC,CAAC;AAE5F,qCAAqC;AACrC,KAAK,eAAe,GAAG;IACrB;;OAEG;IACH,WAAW,CAAC,EAAE,GAAG,CAAC;IAElB;;OAEG;IACH,UAAU,CAAC,EAAE,YAAY,GAAG,IAAI,CAAC;CAClC,CAAC;AAEF,MAAM,CAAC,OAAO,OAAO,SAAS,CAAC,KAAK,GAAG,GAAG,EAAE,UAAU,SAAS,EAAE,GAAG,EAAE,CAAE,SAAQ,eAAe,CAC7F,KAAK,EACL,QAAQ,CAAC,eAAe,CAAC,GAAG,UAAU,CACvC;IACC,MAAM,CAAC,SAAS,SAAe;IAC/B,MAAM,CAAC,YAAY,wCAAgB;IAEnC,UAAU;IAWV,eAAe;IAoBf,WAAW,CAAC,MAAM,EAAE,gBAAgB,CAAC,IAAI,CAAC;IAS1C,IAAI,CAAC,IAAI,KAAA;IAoBT,SAAS,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,GAAG,KAAK;IAyBrC,yBAAyB,CAAC,QAAQ,KAAA;IA0BlC,aAAa,CAAC,QAAQ,KAAA,EAAE,IAAI,EAAE,IAAI,GAAG,iBAAiB;IAiBtD,iCAAiC,CAAC,SAAS,KAAA;IAM3C,aAAa,CAAC,OAAO,EAAE,YAAY;CAKpC"}
@@ -2,12 +2,13 @@
2
2
  // SPDX-License-Identifier: MIT
3
3
  // Copyright (c) vis.gl contributors
4
4
  import { parsePBRMaterial } from '@luma.gl/gltf';
5
- import { pbrMaterial } from '@luma.gl/shadertools';
6
5
  import { Model } from '@luma.gl/engine';
7
6
  import { SimpleMeshLayer } from '@deck.gl/mesh-layers';
8
7
  import { meshUniforms } from "./mesh-layer-uniforms.js";
8
+ import { meshPbrMaterial } from "./mesh-pbr-material.js";
9
9
  import vs from "./mesh-layer-vertex.glsl.js";
10
10
  import fs from "./mesh-layer-fragment.glsl.js";
11
+ import source from "./mesh-layer.wgsl.js";
11
12
  function validateGeometryAttributes(attributes) {
12
13
  const positionAttribute = attributes.positions || attributes.POSITION;
13
14
  const vertexCount = positionAttribute.value.length / positionAttribute.size;
@@ -27,9 +28,13 @@ const defaultProps = {
27
28
  class MeshLayer extends SimpleMeshLayer {
28
29
  getShaders() {
29
30
  const shaders = super.getShaders();
30
- const modules = shaders.modules;
31
- modules.push(pbrMaterial, meshUniforms);
32
- return { ...shaders, vs, fs };
31
+ return {
32
+ ...shaders,
33
+ vs,
34
+ fs,
35
+ source,
36
+ modules: [...shaders.modules, meshPbrMaterial, meshUniforms]
37
+ };
33
38
  }
34
39
  initializeState() {
35
40
  const { featureIds } = this.props;
@@ -89,7 +94,8 @@ class MeshLayer extends SimpleMeshLayer {
89
94
  defines: {
90
95
  ...shaders.defines,
91
96
  ...parsedPBRMaterial?.defines,
92
- HAS_UV_REGIONS: mesh.attributes.uvRegions ? 1 : 0
97
+ HAS_UV_REGIONS: mesh.attributes.uvRegions ? 1 : 0,
98
+ HAS_FEATURE_IDS: this.props.featureIds ? 1 : 0
93
99
  },
94
100
  parameters: parsedPBRMaterial?.parameters,
95
101
  isInstanced: true
@@ -105,8 +111,11 @@ class MeshLayer extends SimpleMeshLayer {
105
111
  this.setState({ parsedPBRMaterial });
106
112
  const { pbr_baseColorSampler } = parsedPBRMaterial.bindings;
107
113
  const { emptyTexture } = this.state;
114
+ const meshTexture = pbr_baseColorSampler || emptyTexture;
108
115
  const simpleMeshProps = {
109
- sampler: pbr_baseColorSampler || emptyTexture,
116
+ ...(this.context.device.type === 'webgpu'
117
+ ? { simpleMeshTexture: meshTexture }
118
+ : { sampler: meshTexture }),
110
119
  hasTexture: Boolean(pbr_baseColorSampler)
111
120
  };
112
121
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
@@ -1 +1 @@
1
- {"version":3,"file":"mesh-layer.js","sourceRoot":"","sources":["../../src/mesh-layer/mesh-layer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mesh-layer.js","sourceRoot":"","sources":["../../src/mesh-layer/mesh-layer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ declare const _default: "struct VertexInputs {\n @location(0) positions: vec3<f32>,\n#ifdef HAS_NORMALS\n @location(1) normals: vec3<f32>,\n#endif\n @location(2) colors: vec4<f32>,\n#ifdef HAS_UV\n @location(3) texCoords: vec2<f32>,\n#endif\n#ifdef HAS_UV_REGIONS\n @location(4) uvRegions: vec4<f32>,\n#endif\n#ifdef HAS_FEATURE_IDS\n @location(5) rowIndexes: u32,\n#endif\n @location(6) instanceColors: vec4<f32>,\n @location(7) instanceModelMatrixCol0: vec3<f32>,\n @location(8) instanceModelMatrixCol1: vec3<f32>,\n @location(9) instanceModelMatrixCol2: vec3<f32>,\n};\n\nstruct FragmentInputs {\n @builtin(position) position: vec4<f32>,\n @location(0) color: vec4<f32>,\n @location(1) texCoord: vec2<f32>,\n @location(2) pbrPosition: vec3<f32>,\n @location(3) pbrNormal: vec3<f32>,\n @location(4) pickingColor: vec3<f32>,\n};\n\nfn applyUVRegion(uv: vec2<f32>, uvRegion: vec4<f32>) -> vec2<f32> {\n#ifdef HAS_UV_REGIONS\n // https://github.com/Esri/i3s-spec/blob/master/docs/1.7/geometryUVRegion.cmn.md\n return fract(uv) * (uvRegion.zw - uvRegion.xy) + uvRegion.xy;\n#else\n return uv;\n#endif\n}\n\n@vertex\nfn vertexMain(\n inputs: VertexInputs,\n @builtin(instance_index) instanceIndex: u32\n) -> FragmentInputs {\n var outputs: FragmentInputs;\n var texCoord = vec2<f32>(0.0);\n var normal = vec3<f32>(0.0, 0.0, 1.0);\n var uvRegion = vec4<f32>(0.0);\n\n#ifdef HAS_UV\n texCoord = inputs.texCoords;\n#endif\n#ifdef HAS_NORMALS\n normal = inputs.normals;\n#endif\n#ifdef HAS_UV_REGIONS\n uvRegion = inputs.uvRegions;\n#endif\n\n texCoord = applyUVRegion(texCoord, uvRegion);\n geometry.uv = texCoord;\n#ifdef HAS_FEATURE_IDS\n geometry.pickingColor = picking_getPickingColorFromIndex(inputs.rowIndexes);\n#else\n geometry.pickingColor = picking_getPickingColorFromIndex(instanceIndex);\n#endif\n\n let instanceModelMatrix = mat3x3<f32>(\n inputs.instanceModelMatrixCol0,\n inputs.instanceModelMatrixCol1,\n inputs.instanceModelMatrixCol2\n );\n let commonPosition = vec4<f32>(project_position_vec3_f32(inputs.positions), 1.0);\n\n geometry.position = commonPosition;\n geometry.normal = project_normal(instanceModelMatrix * normal);\n\n outputs.position = project_common_position_to_clipspace(commonPosition);\n outputs.color = vec4<f32>(\n inputs.colors.rgb * inputs.instanceColors.rgb,\n inputs.instanceColors.a\n );\n outputs.texCoord = texCoord;\n outputs.pbrPosition = commonPosition.xyz;\n outputs.pbrNormal = geometry.normal;\n outputs.pickingColor = geometry.pickingColor;\n return outputs;\n}\n\n@fragment\nfn fragmentMain(inputs: FragmentInputs) -> @location(0) vec4<f32> {\n fragmentGeometry.uv = inputs.texCoord;\n\n if (picking.isActive > 0.5) {\n if (!picking_isColorValid(inputs.pickingColor)) {\n discard;\n }\n return vec4<f32>(inputs.pickingColor, 1.0);\n }\n\n fragmentInputs.pbr_vPosition = inputs.pbrPosition;\n fragmentInputs.pbr_vUV0 = inputs.texCoord;\n fragmentInputs.pbr_vUV1 = vec2<f32>(0.0);\n fragmentInputs.pbr_vNormal = inputs.pbrNormal;\n\n var color = inputs.color * pbr_filterColor(vec4<f32>(0.0));\n color.a *= layer.opacity;\n\n if (picking.isHighlightActive > 0.5) {\n let highlightedObjectColor = picking_normalizeColor(picking.highlightedObjectColor);\n if (picking_isColorZero(abs(inputs.pickingColor - highlightedObjectColor))) {\n let highlightAlpha = picking.highlightColor.a;\n let blendedAlpha = highlightAlpha + color.a * (1.0 - highlightAlpha);\n if (blendedAlpha > 0.0) {\n color = vec4<f32>(\n mix(color.rgb, picking.highlightColor.rgb, highlightAlpha / blendedAlpha),\n blendedAlpha\n );\n }\n }\n }\n\n return deckgl_premultiplied_alpha(color);\n}\n";
2
+ export default _default;
3
+ //# sourceMappingURL=mesh-layer.wgsl.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mesh-layer.wgsl.d.ts","sourceRoot":"","sources":["../../src/mesh-layer/mesh-layer.wgsl.ts"],"names":[],"mappings":";AAIA,wBA6HE"}
@@ -0,0 +1,130 @@
1
+ // deck.gl
2
+ // SPDX-License-Identifier: MIT
3
+ // Copyright (c) vis.gl contributors
4
+ export default /* wgsl */ `\
5
+ struct VertexInputs {
6
+ @location(0) positions: vec3<f32>,
7
+ #ifdef HAS_NORMALS
8
+ @location(1) normals: vec3<f32>,
9
+ #endif
10
+ @location(2) colors: vec4<f32>,
11
+ #ifdef HAS_UV
12
+ @location(3) texCoords: vec2<f32>,
13
+ #endif
14
+ #ifdef HAS_UV_REGIONS
15
+ @location(4) uvRegions: vec4<f32>,
16
+ #endif
17
+ #ifdef HAS_FEATURE_IDS
18
+ @location(5) rowIndexes: u32,
19
+ #endif
20
+ @location(6) instanceColors: vec4<f32>,
21
+ @location(7) instanceModelMatrixCol0: vec3<f32>,
22
+ @location(8) instanceModelMatrixCol1: vec3<f32>,
23
+ @location(9) instanceModelMatrixCol2: vec3<f32>,
24
+ };
25
+
26
+ struct FragmentInputs {
27
+ @builtin(position) position: vec4<f32>,
28
+ @location(0) color: vec4<f32>,
29
+ @location(1) texCoord: vec2<f32>,
30
+ @location(2) pbrPosition: vec3<f32>,
31
+ @location(3) pbrNormal: vec3<f32>,
32
+ @location(4) pickingColor: vec3<f32>,
33
+ };
34
+
35
+ fn applyUVRegion(uv: vec2<f32>, uvRegion: vec4<f32>) -> vec2<f32> {
36
+ #ifdef HAS_UV_REGIONS
37
+ // https://github.com/Esri/i3s-spec/blob/master/docs/1.7/geometryUVRegion.cmn.md
38
+ return fract(uv) * (uvRegion.zw - uvRegion.xy) + uvRegion.xy;
39
+ #else
40
+ return uv;
41
+ #endif
42
+ }
43
+
44
+ @vertex
45
+ fn vertexMain(
46
+ inputs: VertexInputs,
47
+ @builtin(instance_index) instanceIndex: u32
48
+ ) -> FragmentInputs {
49
+ var outputs: FragmentInputs;
50
+ var texCoord = vec2<f32>(0.0);
51
+ var normal = vec3<f32>(0.0, 0.0, 1.0);
52
+ var uvRegion = vec4<f32>(0.0);
53
+
54
+ #ifdef HAS_UV
55
+ texCoord = inputs.texCoords;
56
+ #endif
57
+ #ifdef HAS_NORMALS
58
+ normal = inputs.normals;
59
+ #endif
60
+ #ifdef HAS_UV_REGIONS
61
+ uvRegion = inputs.uvRegions;
62
+ #endif
63
+
64
+ texCoord = applyUVRegion(texCoord, uvRegion);
65
+ geometry.uv = texCoord;
66
+ #ifdef HAS_FEATURE_IDS
67
+ geometry.pickingColor = picking_getPickingColorFromIndex(inputs.rowIndexes);
68
+ #else
69
+ geometry.pickingColor = picking_getPickingColorFromIndex(instanceIndex);
70
+ #endif
71
+
72
+ let instanceModelMatrix = mat3x3<f32>(
73
+ inputs.instanceModelMatrixCol0,
74
+ inputs.instanceModelMatrixCol1,
75
+ inputs.instanceModelMatrixCol2
76
+ );
77
+ let commonPosition = vec4<f32>(project_position_vec3_f32(inputs.positions), 1.0);
78
+
79
+ geometry.position = commonPosition;
80
+ geometry.normal = project_normal(instanceModelMatrix * normal);
81
+
82
+ outputs.position = project_common_position_to_clipspace(commonPosition);
83
+ outputs.color = vec4<f32>(
84
+ inputs.colors.rgb * inputs.instanceColors.rgb,
85
+ inputs.instanceColors.a
86
+ );
87
+ outputs.texCoord = texCoord;
88
+ outputs.pbrPosition = commonPosition.xyz;
89
+ outputs.pbrNormal = geometry.normal;
90
+ outputs.pickingColor = geometry.pickingColor;
91
+ return outputs;
92
+ }
93
+
94
+ @fragment
95
+ fn fragmentMain(inputs: FragmentInputs) -> @location(0) vec4<f32> {
96
+ fragmentGeometry.uv = inputs.texCoord;
97
+
98
+ if (picking.isActive > 0.5) {
99
+ if (!picking_isColorValid(inputs.pickingColor)) {
100
+ discard;
101
+ }
102
+ return vec4<f32>(inputs.pickingColor, 1.0);
103
+ }
104
+
105
+ fragmentInputs.pbr_vPosition = inputs.pbrPosition;
106
+ fragmentInputs.pbr_vUV0 = inputs.texCoord;
107
+ fragmentInputs.pbr_vUV1 = vec2<f32>(0.0);
108
+ fragmentInputs.pbr_vNormal = inputs.pbrNormal;
109
+
110
+ var color = inputs.color * pbr_filterColor(vec4<f32>(0.0));
111
+ color.a *= layer.opacity;
112
+
113
+ if (picking.isHighlightActive > 0.5) {
114
+ let highlightedObjectColor = picking_normalizeColor(picking.highlightedObjectColor);
115
+ if (picking_isColorZero(abs(inputs.pickingColor - highlightedObjectColor))) {
116
+ let highlightAlpha = picking.highlightColor.a;
117
+ let blendedAlpha = highlightAlpha + color.a * (1.0 - highlightAlpha);
118
+ if (blendedAlpha > 0.0) {
119
+ color = vec4<f32>(
120
+ mix(color.rgb, picking.highlightColor.rgb, highlightAlpha / blendedAlpha),
121
+ blendedAlpha
122
+ );
123
+ }
124
+ }
125
+ }
126
+
127
+ return deckgl_premultiplied_alpha(color);
128
+ }
129
+ `;
130
+ //# sourceMappingURL=mesh-layer.wgsl.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mesh-layer.wgsl.js","sourceRoot":"","sources":["../../src/mesh-layer/mesh-layer.wgsl.ts"],"names":[],"mappings":"AAAA,UAAU;AACV,+BAA+B;AAC/B,oCAAoC;AAEpC,eAAe,UAAU,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6HzB,CAAC"}