Skip to content

Commit

Permalink
chore(web): fix several issues around visualizer render (#612)
Browse files Browse the repository at this point in the history
  • Loading branch information
airslice committed Aug 3, 2023
1 parent 5ac70f0 commit 62d28ed
Show file tree
Hide file tree
Showing 4 changed files with 10 additions and 8 deletions.
5 changes: 4 additions & 1 deletion web/src/beta/lib/core/engines/Cesium/Feature/Model/index.tsx
Expand Up @@ -16,6 +16,7 @@ import { colorBlendMode, heightReference, shadowMode } from "../../common";
import { arrayToCartecian3 } from "../../helpers/sphericalHaromic";
import { useSceneEvent } from "../../hooks/useSceneEvent";
import { NonPBRLightingShader } from "../../Shaders/CustomShaders/NonPBRLightingShader";
import { useContext } from "../context";
import {
EntityExt,
extractSimpleLayerData,
Expand Down Expand Up @@ -149,6 +150,7 @@ export default function Model({
]);

const { viewer } = useCesium();
const { requestRender } = useContext();
const shouldUpdateAfterLoaded = useRef(false);
useSceneEvent("postRender", () => {
const primitives = viewer?.scene.primitives;
Expand All @@ -161,8 +163,9 @@ export default function Model({
for (let i = 0; i < length; i++) {
const prim = primitives?.get(i);
if (prim instanceof CesiumModel && prim.id && prim.id.id === id) {
shouldUpdateAfterLoaded.current = false;
prim.imageBasedLighting = imageBasedLighting;
shouldUpdateAfterLoaded.current = false;
requestRender?.();
}
}
});
Expand Down
Expand Up @@ -95,12 +95,13 @@ export default function Resource({
computedFeatures.push(computedFeature);
}
});
requestRender?.();

// GeoJSON is not delegated data, so we need to skip.
if (type !== "geojson") {
onComputedFeatureFetch?.(features, computedFeatures);
}

requestRender?.();
},
[layer, viewer, onComputedFeatureFetch, type, requestRender],
);
Expand Down Expand Up @@ -130,8 +131,9 @@ export default function Resource({
viewer.clock.startTime = ds.clock.startTime;
viewer.clock.stopTime = ds.clock.stopTime;
}
requestRender?.();
},
[updateClock, viewer?.clock],
[updateClock, viewer?.clock, requestRender],
);

// convert hexCodeColorString to ColorValue?s
Expand Down
5 changes: 1 addition & 4 deletions web/src/beta/lib/core/engines/Cesium/hooks.ts
Expand Up @@ -785,12 +785,9 @@ export default ({
}, [property, requestingRenderMode]);

// force render when timeline is animating or is shouldRender
// set maximumRenderTimeChange to 0 when is timeline animating
useEffect(() => {
const viewer = cesium.current?.cesiumElement;
if (!viewer || viewer.isDestroyed()) return;
viewer.scene.maximumRenderTimeChange = !property?.timeline?.animation ? Infinity : 0;

if (requestingRenderMode) {
requestingRenderMode.current =
isLayerDragging || shouldRender
Expand All @@ -799,7 +796,7 @@ export default ({
? REQUEST_RENDER_ONCE
: NO_REQUEST_RENDER;
}
}, [property?.timeline?.animation, isLayerDragging, shouldRender, requestingRenderMode]);
}, [isLayerDragging, shouldRender, requestingRenderMode]);

return {
backgroundColor,
Expand Down
2 changes: 1 addition & 1 deletion web/src/beta/lib/core/engines/Cesium/useEngineRef.ts
Expand Up @@ -110,7 +110,7 @@ export default function useEngineRef(
const entities = d.entities.values;
const e = entities.find(e => getTag(e)?.layerId === layerOrFeatureId);
if (e) {
viewer.flyTo(d);
viewer.flyTo(d, options);
return;
}
}
Expand Down

0 comments on commit 62d28ed

Please sign in to comment.