26 lines
886 B
C++
26 lines
886 B
C++
#pragma once
|
||
#include <vtkSmartPointer.h>
|
||
#include <vtkRenderer.h>
|
||
#include <vtkActor.h>
|
||
#include <vtkProp.h>
|
||
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<vtkRenderer> renderer_;
|
||
};
|
||
|
||
} // namespace geopro::render
|