fix(ui): Add triangular meshes and line support [FLOW-DEV-18]#1969
Draft
billcookie wants to merge 7 commits into
Draft
fix(ui): Add triangular meshes and line support [FLOW-DEV-18]#1969billcookie wants to merge 7 commits into
billcookie wants to merge 7 commits into
Conversation
…inate transformations
…Mesh and line calculations
Contributor
|
🚀 Cloud Run Preview Deployed |
Contributor
There was a problem hiding this comment.
Pull request overview
This PR adds Cesium rendering support for a new FlowGeometry3D geometry type that includes triangular meshes and line segments. It creates a new utility for converting FlowGeometry3D features into Cesium Primitives, a new React component to manage their lifecycle, and integrates triangular mesh support into the existing CityGML rendering pipeline.
Changes:
- New
flowGeometry3DToPrimitives.tsutility andFlowGeometry3DData.tsxcomponent to handleFlowGeometry3Dfeatures with triangular meshes and line segments as batched Cesium Primitives. - Extended
cityGmlGeometryToPrimitives.tsandCityGmlData.tsxto supporttriangularMeshgeometry within CityGML features (for both known 3D types and unknown types), including a newmeshPrimitivedraw call. - Fixed
dataSourcesiteration inhooks.tsto use indexed access (.get(i)) instead offor...of, which is required by CesiumJS'sDataSourceCollectionAPI.
Reviewed changes
Copilot reviewed 6 out of 6 changed files in this pull request and generated 4 comments.
Show a summary per file
| File | Description |
|---|---|
ui/src/components/visualizations/Cesium/utils/flowGeometry3DToPrimitives.ts |
New utility: types, helpers, and main function to convert FlowGeometry3D features into batched mesh/line Cesium Primitives |
ui/src/components/visualizations/Cesium/FlowGeometry3DData.tsx |
New React component managing FlowGeometry3D primitive lifecycle, visibility, and cleanup |
ui/src/components/visualizations/Cesium/utils/cityGmlGeometryToPrimitives.ts |
Added meshPrimitive output, TriangularMesh handling in 3D types, unknown types, and LOD upgrade paths; reuses shared helpers |
ui/src/components/visualizations/Cesium/CityGmlData.tsx |
Integrated meshPrimitiveRef for add/remove/visibility of the new mesh primitive alongside existing absolute/ground primitives |
ui/src/components/visualizations/Cesium/index.tsx |
Added FlowGeometry3D feature filtering and FlowGeometry3DData component rendering |
ui/src/features/Editor/components/OverlayUI/components/DebugPanel/hooks.ts |
Fixed dataSources iteration to use indexed .get(i) instead of for...of |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
KaWaite
reviewed
Mar 12, 2026
Comment on lines
+285
to
+286
| for (let i = 0; i < cesiumViewer.dataSources.length; i++) { | ||
| const dataSource = cesiumViewer.dataSources.get(i); |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Overview
This PR adds Cesium rendering support for a new FlowGeometry3D geometry type that includes triangular meshes and line segments. It creates a new utility for converting FlowGeometry3D features into Cesium Primitives, a new React component to manage their lifecycle, and integrates triangular mesh support into the existing CityGML rendering pipeline.
What I've done
flowGeometry3DToPrimitives.tsutility andFlowGeometry3DData.tsxcomponent to handleFlowGeometry3Dfeatures with triangular meshes and line segments as batched Cesium Primitives.cityGmlGeometryToPrimitives.tsandCityGmlData.tsxto supporttriangularMeshgeometry within CityGML features (for both known 3D types and unknown types), including a newmeshPrimitivedraw call.dataSourcesiteration inhooks.tsto use indexed access (.get(i)) instead offor...of, which is required by CesiumJS'sDataSourceCollectionAPI.What I haven't done
How I tested
Screenshot
Which point I want you to review particularly
Memo