From 9a88039fe88b0f2f763d5db8dabe2cd9798ed3dc Mon Sep 17 00:00:00 2001 From: Xun Li Date: Thu, 19 Oct 2023 14:30:16 -0700 Subject: [PATCH] clean up --- .../src/geojson-layer/filter-arrow-layer.ts | 12 +++++++----- .../src/geojson-layer/filter-shader-module.ts | 2 +- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/src/deckgl-layers/src/geojson-layer/filter-arrow-layer.ts b/src/deckgl-layers/src/geojson-layer/filter-arrow-layer.ts index 18cb80be96..12e6907dfa 100644 --- a/src/deckgl-layers/src/geojson-layer/filter-arrow-layer.ts +++ b/src/deckgl-layers/src/geojson-layer/filter-arrow-layer.ts @@ -4,18 +4,20 @@ import GL from '@luma.gl/constants'; import shaderModule from './filter-shader-module'; +const VALUE_FILTERED = 1; + const defaultProps = { - getFiltered: {type: 'accessor', value: 1} + getFiltered: {type: 'accessor', value: VALUE_FILTERED} }; export type FilterArrowExtensionProps = { getFiltered?: () => number; }; -// Write an extension to filter arrow layer: -// an instanced attribute 'instanceFiltered' is added to the layer to indicate whether the feature has been Filtered -// the shader module is modified to discard the feature if instanceFiltered is 0 -// the accessor getFiltered is used to get the value of instanceFiltered based on filteredIndex in Arrowlayer +// A simple extension to filter arrow layer based on the CPU filteredIndex, so we can avoid filtering on the raw Arrow table. +// Specifically, an attribute `filtered` is added to the layer to indicate whether the feature has been Filtered +// the shader module is modified to discard the feature if filtered value is 0 +// the accessor getFiltered is used to get the value of `filtered` based on eht value `filteredIndex` in Arrowlayer export default class FilterArrowExtension extends LayerExtension { static defaultProps = defaultProps; static extensionName = 'FilterArrowExtension'; diff --git a/src/deckgl-layers/src/geojson-layer/filter-shader-module.ts b/src/deckgl-layers/src/geojson-layer/filter-shader-module.ts index 5e5755eda1..2270e180fc 100644 --- a/src/deckgl-layers/src/geojson-layer/filter-shader-module.ts +++ b/src/deckgl-layers/src/geojson-layer/filter-shader-module.ts @@ -36,4 +36,4 @@ export default { fs: fs, inject: inject, getUniforms: () => {} -} +};