#include <vtkAppendPolyData.h>
#include <vtkPolyData.h>
#include <vtkSphereSource.h>
#include <vtkPolyDataMapper.h>
#include <vtkActor.h>
#include <vtkRenderer.h>
#include <vtkRenderWindow.h>
#include <vtkRenderWindowInteractor.h>
int main() {
// 创建两个球体数据集
vtkNew<vtkSphereSource> sphereSource1;
sphereSource1->SetRadius(5.0);
sphereSource1->SetThetaResolution(100);
sphereSource1->SetPhiResolution(100);
sphereSource1->Update();
vtkNew<vtkSphereSource> sphereSource2;
sphereSource2->SetRadius(3.0);
sphereSource2->SetThetaResolution(100);
sphereSource2->SetPhiResolution(100);
sphereSource2->SetCenter(10, 0, 0);
sphereSource2->Update();
// 创建合并对象
vtkNew<vtkAppendPolyData> appendFilter;
appendFilter->AddInputData(sphereSource1->GetOutput());
appendFilter->AddInputData(sphereSource2->GetOutput());
appendFilter->Update();
// 创建映射器、演员、渲染器、窗口等
vtkNew<vtkPolyDataMapper> mapper;
mapper->SetInputConnection(appendFilter->GetOutputPort());
vtkNew<vtkActor> actor;
actor->SetMapper(mapper);
vtkNew<vtkRenderer> renderer;
renderer->AddActor(actor);
vtkNew<vtkRenderWindow> renderWindow;
renderWindow->AddRenderer(renderer);
vtkNew<vtkRenderWindowInteractor> renderWindowInteractor;
renderWindowInteractor->SetRenderWindow(renderWindow);
// 开始交互
renderWindow->Render();
renderWindowInteractor->Start();
return 0;
}