#pragma once #include #include #include #include namespace geopro::render { // 单一渲染场景:持有 vtkRenderer(白底),统一管理 actor 的加入与清除。 // 不持有 RenderWindow(由 app 的 QVTK widget 承载,把 renderer() 加入其 RenderWindow)。 class Scene { public: Scene(); vtkRenderer* renderer() const { return renderer_.Get(); } void clear(); // 移除所有 view prop(含体绘制 vtkVolume),支持重复切换数据集 void addActor(vtkActor* a); // actor 由 renderer 引用计数保活 // 体绘制 vtkVolume 是 vtkProp3D(非 vtkActor),经此通用入口进场;prop 由 renderer 引用计数保活。 void addViewProp(vtkProp* p); private: vtkSmartPointer renderer_; }; } // namespace geopro::render