vtk镜像图

vtkReflectionFilter :用于将数据集沿一个平面进行镜像反射的过滤器

  • SetPlane:设置镜像平面,有x_min,y_min,z_min,x_max,y_max,z_max,x,y,z几种选项
  • SetCenter:平面位置,仅在Plane设为 X, Y, Z 时有效,用于指定平面的具体坐标
  • SetCopyInput:是否复制原数据。设为 On (默认) 则输出镜像和原数据,设为 Off 则仅输出镜像数据
  • SetFlipAllInputArrays:翻转所有数组。默认仅翻转向量、法线等。开启后会翻转输入中的所有3分量数组,需注意:此选项仅在 VTK 7.0+ 版本中可用
cpp 复制代码
 int vtkPlaneMode = vtkReflectionFilter::USE_X;
 double planeCenter = model.planePosition;
 m_reflectFilter = vtkSmartPointer<vtkReflectionFilter>::New();
 m_reflectFilter->SetInputData(m_dataSet);
 switch (model.planeMode) {
     case 0: vtkPlaneMode = vtkReflectionFilter::USE_X_MIN; break;
     case 1: vtkPlaneMode = vtkReflectionFilter::USE_Y_MIN; break;
     case 2: vtkPlaneMode = vtkReflectionFilter::USE_Z_MIN; break;
     case 3: vtkPlaneMode = vtkReflectionFilter::USE_X_MAX; break;
     case 4: vtkPlaneMode = vtkReflectionFilter::USE_Y_MAX; break;
     case 5: vtkPlaneMode = vtkReflectionFilter::USE_Z_MAX; break;
     case 6: vtkPlaneMode = vtkReflectionFilter::USE_X; break;
     case 7: vtkPlaneMode = vtkReflectionFilter::USE_Y; break;
     case 8: vtkPlaneMode = vtkReflectionFilter::USE_Z; break;
     default:
         return false;
 }
 m_reflectFilter->SetPlane(vtkPlaneMode);
 m_reflectFilter->SetCenter(planeCenter);
 m_reflectFilter->SetCopyInput(static_cast<int>(model.copyInput));
 m_reflectFilter->SetFlipAllInputArrays(true);

 m_reflectMapper = vtkSmartPointer<vtkDataSetMapper>::New();
 m_reflectMapper->SetInputConnection(m_reflectFilter->GetOutputPort());
 m_reflectMapper->ScalarVisibilityOff();

 if (!m_reflectActor) {
     m_reflectActor = vtkSmartPointer<vtkActor>::New();
 }

 m_renderer->RemoveActor(m_reflectActor);
 m_renderer->AddActor(m_reflectActor);
 m_reflectActor->SetMapper(m_reflectMapper);
 m_reflectActor->GetProperty()->SetColor(0.9, 0.9, 0.9);
 setActorRenderMode(m_reflectActor);
相关推荐
牛油果子哥q4 分钟前
【C++ STL vector】C++ STL vector 终极精讲:动态数组底层原理、两倍扩容机制、迭代器失效、增删查改、性能剖析与工程避坑指南
开发语言·c++
为何创造硅基生物2 小时前
独占指针的创建std::make_unique 本身自带堆出现
c++
kyle~2 小时前
ROS 2 与 Isaac Sim 联合仿真(一)体系架构、环境选型与基础通信闭环
c++·机器人·nvidia·仿真·ros2
努力努力再努力wz2 小时前
【内存管理与高并发内存池系列】从 mmap 到 malloc:文件映射、匿名映射与 glibc 内存分配机制详解
linux·c语言·数据结构·数据库·c++·qt·链表
八解毒剂3 小时前
数据结构-平衡二叉树——对二叉搜索树的优化
数据结构·c++·算法
JdSnE27zv3 小时前
Qt 操作SQLite数据库
数据库·qt·sqlite
起床困难户5753 小时前
条款20:协助完成返回值优化
c++
啦啦啦啦啦zzzz3 小时前
算法总结(二分查找、双指针)
c++·算法
小短腿的代码世界4 小时前
QtitanRibbon 深度解析:工业级Ribbon界面框架的架构设计与自定义扩展
qt·3d·架构
不负岁月无痕5 小时前
C++ 模板核心内容与高频面试题汇总
java·开发语言·c++