#include #include #include #include #include #include "Scene.hpp" using geopro::render::Scene; // addActor 把 vtkActor 加入 renderer,view prop 计数 +1。 TEST(SceneTest, AddActorIncrementsViewProps) { Scene scene; EXPECT_EQ(scene.renderer()->GetViewProps()->GetNumberOfItems(), 0); auto a = vtkSmartPointer::New(); scene.addActor(a); EXPECT_EQ(scene.renderer()->GetViewProps()->GetNumberOfItems(), 1); } // addViewProp 接受 vtkVolume(vtkProp3D,非 vtkActor)——体绘制必经此口。 TEST(SceneTest, AddViewPropAcceptsVolume) { Scene scene; auto vol = vtkSmartPointer::New(); scene.addViewProp(vol); EXPECT_EQ(scene.renderer()->GetViewProps()->GetNumberOfItems(), 1); } // clear() 经 RemoveAllViewProps 清空 actor 与 volume(覆盖体绘制 prop)。 TEST(SceneTest, ClearRemovesActorsAndVolumes) { Scene scene; scene.addActor(vtkSmartPointer::New()); scene.addViewProp(vtkSmartPointer::New()); EXPECT_EQ(scene.renderer()->GetViewProps()->GetNumberOfItems(), 2); scene.clear(); EXPECT_EQ(scene.renderer()->GetViewProps()->GetNumberOfItems(), 0); } // 空指针安全:addActor/addViewProp(nullptr) 不崩、不增计数。 TEST(SceneTest, NullPropsAreIgnored) { Scene scene; scene.addActor(nullptr); scene.addViewProp(nullptr); EXPECT_EQ(scene.renderer()->GetViewProps()->GetNumberOfItems(), 0); }