public interface IVegetationSceneWhat vegetation a viewport should draw: the painted volume, and how to name its meshes.
Remarks
ITerrainScene's sibling, for the things that grow on the ground rather than the ground itself. The foliage tools paint into a FoliageVolume the terrain module owns, and the presenter that could draw those instances had no way to reach it — so the very editor that authors foliage showed none. This is the seam: the module answers "what is painted", the presenter draws what it is handed.
⚠ Here rather than in Vixen.Rendering.Terrain, because both ends are editor assemblies. ITerrainScene sits in Core because a shipping renderer consumes it; what this answers — a palette entry's mesh name turned into an asset reference the viewport's own mesh source understands — is the editor's project database speaking, and a Core contract would drag that concept into an assembly whose job is a draw call.
⚠ The volume is the live one, not a copy. A stroke lands between two frames and the next frame draws it, which is the whole point of previewing in the authoring viewport. The presenter must therefore read it inside its own upload rather than caching chunks across frames.
Methods (2)
FoliageVolume? Foliage()The scene's painted foliage, or null while nothing supplies one.
AssetReference MeshOf(string reference)Turns a palette entry's mesh name into a reference the viewport's mesh source takes.
Used by (6)
- EditorApplicationVixen.Editor.App
- PaintedSceneVixen.Editor.App.Tests
- ScenePresenterVixen.Editor.App
- SceneVegetationVixen.Editor.Terrain
- TerrainModuleVixen.Editor.Terrain
- VegetationPresenterVixen.Editor.App