概述
本教程提供了 AMCAXRender 云图模块的使用教程,可通过该教程了解简单加载云图对象,使用体渲染的切片功能。
描述
本示例程序,加载指定的体素数据,渲染到场景中。
示例代码:
效果图:
main.cpp
#include "VisltDemo.h"
#include "ui_VisltDemo.h"
#include <iostream>
VisltDemoWindow::VisltDemoWindow(QWidget* parent)
: QMainWindow(parent), ui(new Ui::MainWindow)
{
ui->setupUi(this);
setCentralWidget(render->widget);
auto vislt = render->cloudVisltFactory->ReadFile("FullHead.mhd");
auto names = vislt->GetScalarNames();
auto id = render->cloudVisltManage->AddCloudVislt(vislt, names[0], 1);
render->cloudVisltManage->SetVisible(id, false);
auto range = vislt->GetScaleRange(names[0]);
render->cloudVisltManage->SetVisibleColorMap(false);
render->cameraManage->ResetCamera();
render->entityManage->DoRepaint();
}
VisltDemoWindow::~VisltDemoWindow()
{
delete ui;
}
AMCAX_RENDER_API std::shared_ptr< IRenderComponent > CreateRenderComponent(QWidget *parent)
Create Render Component
Volume Rendering Properties
定义 CloudVisltManage.h:80
VisltDemo.h
#ifndef VisltDemo_h
#define VisltDemo_h
#include <QMainWindow>
namespace Ui {
class MainWindow;
}
class VisltDemoWindow : public QMainWindow
{
Q_OBJECT
public:
explicit VisltDemoWindow(QWidget* parent = nullptr);
virtual ~VisltDemoWindow();
private:
Ui::MainWindow* ui = nullptr;
std::shared_ptr<AMCAXRender::CBasicRender> render;
};
#endif
VisltDemo.ui
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>MainWindow</class>
<widget class="QMainWindow" name="MainWindow">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>800</width>
<height>600</height>
</rect>
</property>
<property name="windowTitle">
<string>MainWindow</string>
</property>
<widget class="QWidget" name="centralwidget"/>
<widget class="QMenuBar" name="menubar">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>800</width>
<height>22</height>
</rect>
</property>
<widget class="QMenu" name="menufile">
<property name="title">
<string>file</string>
</property>
<addaction name="actionopenFile"/>
</widget>
<addaction name="menufile"/>
</widget>
<widget class="QStatusBar" name="statusbar"/>
<action name="actionopenFile">
<property name="text">
<string>openFile</string>
</property>
</action>
</widget>
<resources/>
<connections/>
</ui>
CMakeLists.txt
cmake_minimum_required (VERSION 3.12)
project ("VisltDemo")
find_package(AMCAXRender REQUIRED)
find_package(Qt6 COMPONENTS Widgets Core Gui REQUIRED)
set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTOUIC ON)
set(PROJECT_FILES
main.cpp
VisltDemo.cpp
VisltDemo.ui
)
add_executable (VisltDemo ${PROJECT_FILES} )
target_link_libraries(VisltDemo PRIVATE Qt6::Core Qt6::Gui Qt6::Widgets)
target_link_libraries(VisltDemo PRIVATE AMCAXRender::AMCAXRender)