#13723·cesium

Decouple VectorProvider from the buffer collection rendering classes

Author: danielzhongCreated Aug 25, 2026Updated Sep 16, 2026
Labelscategory - vector data

Follow up to #13653

1. Core imports from Scene

Core/VectorProvider.js imports three modules from Scene:

  • BufferPolygonCollection
  • BufferPolylineCollection
  • HeightReference

The collection imports are runtime values, not types: collectionPackers is a Map keyed by constructor, and both VectorProvider.isSupported and the bake path look up collection.constructor in it. So this can't be reduced to a @import type-only reference. The registry needs to be inverted, with each collection registering its packer, or the packers need to move out of Core.

2. The collections are not headless

BufferPolygonCollection and BufferPolylineCollection are the only way to describe vector geometry for draping, and they also draw themselves. There is no way to hand the provider geometry without also getting a renderable primitive.

Splitting the data model from the rendering primitive would fix both items: the provider would consume a plain data type from Core, and the Scene classes would become one consumer of that type rather than the definition of it.