Skip to content

Add CesiumVectorPointStyle for GeoJSON point rendering#708

Open
baruchInsert-tech wants to merge 1 commit into
CesiumGS:mainfrom
baruchInsert-tech:add-geojson-point-style
Open

Add CesiumVectorPointStyle for GeoJSON point rendering#708
baruchInsert-tech wants to merge 1 commit into
CesiumGS:mainfrom
baruchInsert-tech:add-geojson-point-style

Conversation

@baruchInsert-tech

@baruchInsert-tech baruchInsert-tech commented Jul 13, 2026

Copy link
Copy Markdown
Contributor

@j9liu
@azrogers

image

Description

Exposes a managed point style so CesiumGeoJsonDocumentRasterOverlay can render GeoJSON Point and MultiPoint features, which were previously dropped.

Changes

  • Add CesiumVectorPointStyle (radius, fill + fill style, outline + outline style) and a pointStyle field on CesiumVectorStyle. The default enables fill, since the native PointStyle default (no fill, no outline) renders nothing.
  • Wire pointStyle to/from the native VectorStyle::point in CesiumVectorStyleConversions.h, mirroring the existing polygon style.
  • Exercise the new type in ConfigureReinterop.cs so Reinterop generates its interop header.
  • Add point-style tests to TestCesiumVectorStyle.cs.
  • Changelog entry.

The overlay's inspector needs no change - CesiumGeoJsonDocumentRasterOverlayEditor draws the style with PropertyField(..., includeChildren: true), so the new Point Style section appears automatically.

Native dependency

This PR is the managed side only and intentionally does not bump the cesium-native submodule.

It compiles against the currently pinned native (PointStyle and VectorStyle::point already exist there), but points will not actually render until the cesium-native submodule is advanced to a version that includes the GeoJsonDocumentRasterOverlay point-rasterization support - which is already merged in cesium-native main. Until that bump lands, pointStyle is configurable but has no visible effect.

Suggested follow-up: bump the submodule to a cesium-native version containing that support (coordinated separately / with the next native update).

Issue number or link

#707

Author checklist

  • I have submitted a Contributor License Agreement (only needed once).
  • I have done a full self-review of my code.
  • I have updated CHANGES.md with a short summary of my change (for user-facing changes).
  • I have added or updated unit tests to ensure consistent code coverage as necessary.
  • I have updated the documentation as necessary.

Remaining Tasks

Bump the submodule to a cesium-native version containing the GeoJsonDocumentRasterOverlay point-rasterization support.

Testing plan

  • Added unit tests for CesiumVectorPointStyle defaults and configuration.
  • Verified end-to-end locally against a cesium-native build that includes the point-rasterization support: Point/MultiPoint features from a GeoJSON document rendered onto a tileset via CesiumGeoJsonDocumentRasterOverlay.

Reviewer checklist

Thank you for taking the time to review this PR. By approving a PR you are taking as much responsibility for these changes as the author.

As you review, please go through the checklist below:

  • Review and run all parts of the test plan on this branch and verify it matches expectations.
    • If the issue is a bug please make sure you can reproduce the bug in the main branch and then checkout this branch to make sure it actually solved the issue.
  • Review the code and make sure you do not have any remaining questions or concerns. You should understand the code change and the chosen approach. If you are not confident or have doubts about the code, please do not hesitate to ask questions.
  • Review the unit tests and make sure there are no missing tests or edge cases.
  • Review documentation changes and updates to CHANGES.md to make sure they accurately cover the work in this PR.
  • Verify that the Contributor License Agreement has been submitted, if needed.

@baruchInsert-tech baruchInsert-tech changed the title Addd CesiumVectorPointStyle for GeoJSON point rendering Add CesiumVectorPointStyle for GeoJSON point rendering Jul 13, 2026
@baruchInsert-tech

Copy link
Copy Markdown
Contributor Author

Note on the point fill/outline style types

CesiumVectorPointStyle.fillStyle reuses the existing CesiumVectorPolygonFillStyle (and outlineStyle reuses CesiumVectorLineStyle) rather than introducing point-specific types. This is deliberate:

  • It matches the native model. In cesium-native, a point's fill is a ColorStyle and
    its outline is a LineStyle - the same building blocks polygons use. There's no
    point-specific fill/outline concept to mirror, so a distinct managed type would just
    duplicate CesiumVectorPolygonFillStyle field-for-field.
  • It matches cesium-unreal. FCesiumVectorPointStyle reuses the polygon fill style the
    same way, so the two engines stay consistent.
  • It keeps this PR scoped. Renaming CesiumVectorPolygonFillStyle to a neutral
    CesiumVectorFillStyle would touch polygon styling as well, change the interop surface
    (requiring Reinterop regeneration + a native rebuild), and turn an additive "render points"
    change into a shared-type rename.

I'm happy to introduce a generic CesiumVectorFillStyle (aliasing/replacing the polygon one)
as a follow-up if you'd prefer the naming to be geometry-neutral - I left it out here to keep
the diff minimal and additive. Let me know your preference.

@j9liu
j9liu self-requested a review July 20, 2026 17:52
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants