setPointSize(vals[0])}
@@ -276,7 +276,7 @@ const FlatOptions = () =>{
step={2}
value={[displacement]}
className='w-full mb-2'
- onValueChange={(vals:number[]) => (setDisplacement(vals[0]))}
+ onValueChange={(vals:number[]) => {setDisplacement(vals[0])}}
/>
@@ -464,7 +464,7 @@ const GlobalOptions = () =>{
}
onClick={() => setShowBorders(!showBorders)}>{showBorders ? "Hide Borders" : "Show Borders" }
-
+
usePlotStore.setState({useBorderTexture:!useBorderTexture})
} />
diff --git a/src/components/ui/MainPanel/PlotType.tsx b/src/components/ui/MainPanel/PlotType.tsx
index 2f593dfc1..9c848dc2a 100644
--- a/src/components/ui/MainPanel/PlotType.tsx
+++ b/src/components/ui/MainPanel/PlotType.tsx
@@ -26,8 +26,12 @@ const plotIcons = {
}
const PlotType = () => {
- const { plotType, setPlotType, setUseOrtho } = usePlotStore(useShallow(s => s))
- const {isFlat, variable} = useGlobalStore(useShallow(s => s))
+ const { plotType, setPlotType, setUseOrtho } = usePlotStore(useShallow(s => ({
+ plotType: s.plotType, setPlotType: s.setPlotType, setUseOrtho: s.setUseOrtho
+ })))
+ const {isFlat, variable} = useGlobalStore(useShallow(s => ({
+ isFlat: s.isFlat, variable: s.variable
+ })))
// Responsive popover side
const [popoverSide, setPopoverSide] = useState<"left" | "top">("left");
const {dataShape, is4D} = useGlobalStore(useShallow(s => s))
diff --git a/src/components/zarr/icechunk-store.ts b/src/components/zarr/icechunk-store.ts
index ce6efe608..d0d8bdd9b 100644
--- a/src/components/zarr/icechunk-store.ts
+++ b/src/components/zarr/icechunk-store.ts
@@ -50,15 +50,6 @@ export async function getIcechunkStore(
...(options?.snapshot && { snapshot: options.snapshot }),
...(fetchClient && { fetchClient }),
});
- // console.log(icechunkStore);
- // const storage = new HttpStorage(storePath);
- // console.log('Storage initialized:', storage);
- // const repo = await Repository.open({ storage });
- // console.log('Repository opened:', repo);
- // const branches = await repo.listBranches();
- // const tags = await repo.listTags();
- // console.log('Branches:', branches);
- // console.log('Tags:', tags);
// Prime the node cache immediately after opening
(icechunkStore as any)._cachedNodes = icechunkStore.listNodes();
@@ -236,7 +227,6 @@ export async function getIcechunkDims(
nodeData.dimensionNames?.length > 0
? nodeData.dimensionNames
: undefined;
- console.log("Being called here for some reason?")
cache.set(`${initStore}_${variable}_meta`, {
...meta,
shape,
diff --git a/src/hooks/index.ts b/src/hooks/index.ts
index 994aa3061..1b9f6131e 100644
--- a/src/hooks/index.ts
+++ b/src/hooks/index.ts
@@ -1,6 +1,4 @@
export {useAxisIndices} from './useAxisIndices';
-export {useCommonUniforms} from './useCommonUniforms'
-export {updateCommonUniforms} from './useCommonUniforms'
export {useCoordBounds} from './useCoordBounds'
export {usePaddedTextures} from './usePaddedTextures'
export {useDataFetcher} from './useDataFetcher'
diff --git a/src/hooks/useCommonUniforms.tsx b/src/hooks/useCommonUniforms.tsx
deleted file mode 100644
index 9ee56083a..000000000
--- a/src/hooks/useCommonUniforms.tsx
+++ /dev/null
@@ -1,125 +0,0 @@
-// useCommonUniforms.ts
-import { useGlobalStore } from '@/GlobalStates/GlobalStore'
-import { usePlotStore } from '@/GlobalStates/PlotStore'
-import { useColormapStore } from '@/GlobalStates/ColormapStore'
-import { useEffect, useMemo } from 'react'
-import * as THREE from 'three'
-import { useShallow } from 'zustand/shallow'
-import { useCoordBounds } from './useCoordBounds'
-import { invalidate } from '@react-three/fiber'
-
-export function useCommonUniforms() {
- const {cScale, cOffset, animProg, nanTransparency, nanColor, fillValue, maskTexture, maskValue, valueRange,
- useBorderTexture, borderColor, borderWidth, borderTexture, is360Deg, showBorders} = usePlotStore(useShallow(s=>({
- cScale: s.cScale, cOffset: s.cOffset, animProg: s.animProg, nanTransparency: s.nanTransparency, nanColor: s.nanColor,
- fillValue: s.fillValue, maskTexture: s.maskTexture, maskValue: s.maskValue, valueRange: s.valueRange,
- useBorderTexture: s.useBorderTexture, borderColor: s.borderColor, borderWidth: s.borderWidth, borderTexture: s.borderTexture,
- is360Deg: s.is360Deg, showBorders: s.showBorders
- })))
- const { textureArrayDepths, remapBorders, remapTexture, valueScales, useF16Textures, bivariate} = useGlobalStore(useShallow(s => ({
- textureArrayDepths: s.textureArrayDepths, remapBorders: s.remapBorders, remapTexture: s.remapTexture,
- valueScales: s.valueScales, useF16Textures: s.useF16Textures, bivariate: s.bivariate
- })))
- const {lonBounds, latBounds} = useCoordBounds()
- const {colormap, bottomLeft, bottomRight, topLeft, resolution, mixMode, bivariateSelection} = useColormapStore(useShallow(s => ({
- colormap: s.colormap, bottomLeft: s.bottomLeft, bottomRight: s.bottomRight,
- topLeft: s.topLeft, resolution: s.resolution, mixMode: s.mixMode, bivariateSelection: s.bivariateSelection
- })))
- const uniforms = useMemo(() => ({
- cScale: {value: cScale},
- cOffset: {value: cOffset},
- maskTexture: {value: maskTexture},
- maskValue: {value: maskValue},
- useBorderTexture: {value: useBorderTexture && showBorders},
- borderTexture: {value: borderTexture},
- borderWidth: {value: borderWidth},
- borderColor: {value: new THREE.Color(borderColor).convertLinearToSRGB()},
- remapBorders : {value: Boolean(remapBorders) && !Boolean(remapTexture)},
- is360: {value: is360Deg},
- useF16: {value: useF16Textures},
- threshold: {value: new THREE.Vector2(valueRange[0],valueRange[1])},
- latBounds: {value: new THREE.Vector2(latBounds[0], latBounds[1])},
- lonBounds: {value: new THREE.Vector2(lonBounds[0], lonBounds[1])},
- textureDepths: {value: new THREE.Vector3(textureArrayDepths[2], textureArrayDepths[1], textureArrayDepths[0])},
- cmap : { value : colormap},
- animateProg: {value: animProg},
- nanColor: {value : new THREE.Color(nanColor).convertLinearToSRGB()},
- nanAlpha: {value: 1 - nanTransparency},
- fillValue: {value: fillValue?? NaN},
- valueRange: {value: new THREE.Vector2(valueScales[bivariateSelection].minVal, valueScales[bivariateSelection].maxVal)},
- bottomLeft: {value: new THREE.Color(bottomLeft).convertLinearToSRGB()},
- bottomRight: {value: new THREE.Color(bottomRight).convertLinearToSRGB()},
- topLeft: {value: new THREE.Color(topLeft).convertLinearToSRGB()},
- resolution: {value: resolution},
- bivariate: {value: bivariate},
- mixMode: {value: mixMode},
- bivariateSelection: {value: bivariateSelection}
- }), [
- cScale, cOffset, animProg, nanTransparency, nanColor, fillValue, maskTexture, maskValue, valueRange,
- textureArrayDepths, colormap, lonBounds, latBounds, useBorderTexture, borderTexture, borderWidth,
- borderColor, remapBorders, remapTexture, is360Deg, showBorders, valueScales, useF16Textures,
- bottomLeft, bottomRight, topLeft, resolution, bivariate, mixMode, bivariateSelection
- ])
- return uniforms
-}
-
-export function updateCommonUniforms(material: THREE.ShaderMaterial){
- const {cScale, cOffset, animProg, nanTransparency, nanColor, fillValue, maskTexture, maskValue, valueRange,
- useBorderTexture, borderColor, borderWidth, is360Deg, showBorders} = usePlotStore(useShallow(s=>({
- cScale: s.cScale, cOffset: s.cOffset, animProg: s.animProg, nanTransparency: s.nanTransparency, nanColor: s.nanColor,
- fillValue: s.fillValue, maskTexture: s.maskTexture, maskValue: s.maskValue, valueRange: s.valueRange,
- useBorderTexture: s.useBorderTexture, borderColor: s.borderColor, borderWidth: s.borderWidth,
- is360Deg: s.is360Deg, showBorders: s.showBorders
- })))
- const { valueScales, useF16Textures, bivariate} = useGlobalStore(useShallow(s => ({
- valueScales: s.valueScales, useF16Textures: s.useF16Textures, bivariate: s.bivariate
- })))
- const {lonBounds, latBounds} = useCoordBounds()
- const {colormap, bottomLeft, bottomRight, topLeft, resolution, mixMode, bivariateSelection} = useColormapStore(useShallow(s => ({
- colormap: s.colormap, bottomLeft: s.bottomLeft, bottomRight: s.bottomRight,
- topLeft: s.topLeft, resolution: s.resolution, mixMode: s.mixMode, bivariateSelection: s.bivariateSelection
- })))
- useEffect(()=>{
- // Cleanup function to dispose materials when they are remade in parent component
- if (material){
- material.dispose()
- }
- },[material])
-
- useEffect(()=>{
- if (!material) return;
- const uniforms = material.uniforms;
- uniforms.cOffset.value = cOffset;
- uniforms.cmap. value = colormap;
- uniforms.animateProg.value = animProg;
- uniforms.nanColor.value = new THREE.Color(nanColor).convertLinearToSRGB();
- uniforms.nanAlpha.value = 1 - nanTransparency;
- uniforms.cScale.value = cScale;
- uniforms.threshold.value.set(valueRange[0], valueRange[1]);
- uniforms.latBounds.value = new THREE.Vector2(latBounds[0], latBounds[1]);
- uniforms.lonBounds.value = new THREE.Vector2(lonBounds[0], lonBounds[1]);
- uniforms.maskValue.value = maskValue;
- uniforms.fillValue.value = fillValue?? NaN;
- uniforms.useBorderTexture.value = useBorderTexture && showBorders;
- uniforms.borderColor.value = new THREE.Color(borderColor).convertLinearToSRGB();
- uniforms.borderWidth.value = borderWidth;
- uniforms.is360.value = is360Deg;
- uniforms.valueRange.value = new THREE.Vector2(valueScales[bivariateSelection].minVal, valueScales[bivariateSelection].maxVal);
- uniforms.useF16.value = useF16Textures;
- uniforms.bottomLeft.value = new THREE.Color(bottomLeft).convertLinearToSRGB();
- uniforms.bottomRight.value = new THREE.Color(bottomRight).convertLinearToSRGB();
- uniforms.topLeft.value = new THREE.Color(topLeft).convertLinearToSRGB();
- uniforms.resolution.value = resolution;
- uniforms.mixMode.value = mixMode;
- uniforms.bivariateSelection.value = bivariateSelection;
- uniforms.bivariate.value = bivariate;
- invalidate();
- },[
- cScale, cOffset, animProg, nanTransparency, nanColor, fillValue, maskTexture, maskValue, valueRange,
- colormap, lonBounds, latBounds, useBorderTexture, borderColor, borderWidth, is360Deg, showBorders,
- valueScales, useF16Textures, bottomLeft, bottomRight, topLeft, resolution, mixMode, bivariateSelection,
- bivariate
- ])
-
- return;
-}
\ No newline at end of file
diff --git a/src/hooks/useDataFetcher.tsx b/src/hooks/useDataFetcher.tsx
index 91c3e8ccb..2feabde2f 100644
--- a/src/hooks/useDataFetcher.tsx
+++ b/src/hooks/useDataFetcher.tsx
@@ -11,6 +11,7 @@ import { handleIrregularGrid, reproject } from '@/components/textures/Projection
import { parseExtent } from '@/utils/parseExtent';
import { createDataTexture } from '@/components/textures/TextureMakers';
import { useAnalysisStore } from '@/GlobalStates/AnalysisStore';
+import { remapTexture } from '@/components/textures/TSL/utils/uniforms';
export const useDataFetcher = () => {
const { variable, bivariate, variable2, mainTextures, setUnits, setIsFlat, setUseF16Textures,
@@ -123,22 +124,30 @@ export const useDataFetcher = () => {
}, [reFetch]);
// ---- InterpPixels ---- //
- useEffect(()=> {
- if (!mainTextures) return;
- const updated = mainTextures.map(tex => {
- const clone = tex.clone();
- if (interpPixels) {
- clone.minFilter = THREE.LinearFilter;
- clone.magFilter = THREE.LinearFilter;
- } else {
- clone.minFilter = THREE.NearestFilter;
- clone.magFilter = THREE.NearestFilter;
- }
- clone.needsUpdate = true;
- return clone ;
- });
- setMainTextures(updated as THREE.Data3DTexture[] | THREE.DataTexture[]);
- },[interpPixels])
+// useEffect(()=> {
+// if (!mainTextures) return;
+// const updated = mainTextures.map(tex => {
+// const clone = tex.clone();
+// if (interpPixels) {
+// clone.minFilter = THREE.LinearFilter;
+// clone.magFilter = THREE.LinearFilter;
+// } else {
+// clone.minFilter = THREE.NearestFilter;
+// clone.magFilter = THREE.NearestFilter;
+// }
+// clone.needsUpdate = true;
+// return clone ;
+// });
+// if (interpPixels){
+// remapTexture.value.minFilter = THREE.LinearFilter
+// remapTexture.value.magFilter = THREE.LinearFilter
+// } else {
+// remapTexture.value.minFilter = THREE.NearestFilter
+// remapTexture.value.magFilter = THREE.NearestFilter
+// }
+// remapTexture.value.needsUpdate = true;
+// setMainTextures(updated as THREE.Data3DTexture[] | THREE.DataTexture[]);
+// },[interpPixels])
useEffect(() => {
// This cleanup function will run when the `textures` state is about to change,