Skip to content

Decouple VectorProvider from the buffer collection rendering classes #13723

Description

@danielzhong

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.

Metadata

Metadata

Assignees

Type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions