반응형
// chatgpt 가 만들어준 코드
// 작동되는지는 확인 못해 봤음
#include <vtkSphereSource.h>
#include <vtkPolyDataMapper.h>
#include <vtkActor.h>
#include <vtkRenderWindow.h>
#include <vtkRenderer.h>
#include <vtkSmartPointer.h>
#include <QApplication>
#include <QWidget>
#include <QVBoxLayout>
#include <vtkGenericOpenGLRenderWindow.h>
#include <QVTKOpenGLWidget.h>
int main(int argc, char *argv[])
{
// Qt 애플리케이션 초기화
QApplication app(argc, argv);
// 렌더 윈도우 생성
vtkSmartPointer<vtkGenericOpenGLRenderWindow> renderWindow =
vtkSmartPointer<vtkGenericOpenGLRenderWindow>::New();
// QVTKOpenGLWidget으로 렌더 윈도우를 래핑
QVTKOpenGLWidget* widget = new QVTKOpenGLWidget();
widget->SetRenderWindow(renderWindow);
// 구 객체 생성
vtkSmartPointer<vtkSphereSource> sphereSource =
vtkSmartPointer<vtkSphereSource>::New();
sphereSource->SetCenter(0.0, 0.0, 0.0); // 중심 설정
sphereSource->SetRadius(1.0); // 반지름 설정
sphereSource->SetPhiResolution(30); // phi 방향 해상도 설정
sphereSource->SetThetaResolution(30); // theta 방향 해상도 설정
// 매퍼 생성 및 설정
vtkSmartPointer<vtkPolyDataMapper> mapper =
vtkSmartPointer<vtkPolyDataMapper>::New();
mapper->SetInputConnection(sphereSource->GetOutputPort());
// 액터 생성 및 설정
vtkSmartPointer<vtkActor> actor =
vtkSmartPointer<vtkActor>::New();
actor->SetMapper(mapper);
// 렌더러 생성 및 설정
vtkSmartPointer<vtkRenderer> renderer =
vtkSmartPointer<vtkRenderer>::New();
renderer->AddActor(actor);
renderer->SetBackground(0.1, 0.2, 0.4); // 배경색 설정
// 렌더 윈도우에 렌더러 추가
renderWindow->AddRenderer(renderer);
// Qt 위젯 생성
QWidget* mainWindow = new QWidget;
QVBoxLayout* layout = new QVBoxLayout(mainWindow);
layout->addWidget(widget);
// Qt 창 표시
mainWindow->setWindowTitle("VTK and Qt Example");
mainWindow->resize(640, 480);
mainWindow->show();
// Qt 애플리케이션 실행
return app.exec();
}
728x90
반응형

+ Recent posts