88 Layer ,
99 LayersList ,
1010 GetPickingInfoParams ,
11- PickingInfo ,
1211} from "@deck.gl/core/typed" ;
1312import { SolidPolygonLayer } from "@deck.gl/layers/typed" ;
1413import type { SolidPolygonLayerProps } from "@deck.gl/layers/typed" ;
@@ -36,6 +35,7 @@ import {
3635 PolygonVector ,
3736} from "./types.js" ;
3837import { EXTENSION_NAME } from "./constants.js" ;
38+ import { earcutPolygonArray } from "./earcut.js" ;
3939
4040const DEFAULT_COLOR : [ number , number , number , number ] = [ 0 , 0 , 0 , 255 ] ;
4141
@@ -257,6 +257,8 @@ export class GeoArrowSolidPolygonLayer<
257257
258258 const resolvedRingOffsets = getPolygonResolvedOffsets ( polygonData ) ;
259259
260+ const earcutTriangles = earcutPolygonArray ( polygonData ) ;
261+
260262 const props : SolidPolygonLayerProps = {
261263 // used for picking purposes
262264 recordBatchIdx,
@@ -278,6 +280,7 @@ export class GeoArrowSolidPolygonLayer<
278280 startIndices : resolvedRingOffsets ,
279281 attributes : {
280282 getPolygon : { value : flatCoordinateArray , size : nDim } ,
283+ indices : { value : earcutTriangles , size : 1 } ,
281284 } ,
282285 } ,
283286 } ;
@@ -358,6 +361,8 @@ export class GeoArrowSolidPolygonLayer<
358361 // const ringOffsets = ringData.valueOffsets;
359362 const flatCoordinateArray = coordData . values ;
360363
364+ const earcutTriangles = earcutPolygonArray ( polygonData ) ;
365+
361366 // NOTE: we have two different uses of offsets. One is for _rendering_
362367 // each polygon. The other is for mapping _accessor attributes_ from one
363368 // value per feature to one value per vertex. And for that we need to use
@@ -399,19 +404,18 @@ export class GeoArrowSolidPolygonLayer<
399404 startIndices : resolvedPolygonToCoordOffsets ,
400405 attributes : {
401406 getPolygon : { value : flatCoordinateArray , size : nDim } ,
402- instancePickingColors : {
403- value : encodePickingColors (
404- resolvedMultiPolygonToCoordOffsets ,
405- this . encodePickingColor
406- ) ,
407- size : 3 ,
408- } ,
407+ indices : { value : earcutTriangles , size : 1 } ,
408+ // instancePickingColors: {
409+ // value: encodePickingColors(
410+ // resolvedMultiPolygonToCoordOffsets,
411+ // this.encodePickingColor
412+ // ),
413+ // size: 3,
414+ // },
409415 } ,
410416 } ,
411417 } ;
412418
413- console . log ( resolvedMultiPolygonToCoordOffsets ) ;
414-
415419 assignAccessor ( {
416420 props,
417421 propName : "getElevation" ,
@@ -464,6 +468,5 @@ function encodePickingColors(
464468 }
465469 }
466470
467- console . log ( pickingColors ) ;
468471 return pickingColors ;
469472}
0 commit comments