【FastCAE源码阅读4】VTK OrientationMarkerWidget方向标记组件的使用

FastCAE前处理窗口有个方向指示的组件,会跟踪场景进行旋转,这种设计在很多三维软件都有类似的设计,效果如下图:
在这里插入图片描述

FastCAE采用的是VTK自带的vtkOrientationMarkerWidget实现的,具体代码如下:

void Graph3DWindow::initAxes()
{
	vtkSmartPointer<vtkAxesActor> axesActor = vtkSmartPointer<vtkAxesActor>::New();
	_axesWidget = vtkSmartPointer<vtkOrientationMarkerWidget>::New();
	_axesWidget->SetOutlineColor(0.9300, 0.5700, 0.1300);
	_axesWidget->SetOrientationMarker(axesActor);
	_axesWidget->SetInteractor(_interactor);
	_axesWidget->SetViewport(0.0, 0.0, 0.2, 0.2);
	_axesWidget->SetEnabled(1);
	///禁止交互操作移动位置
	_axesWidget->InteractiveOff();
}

代码中axesActor是vtkAxesActor实例,说明使用箭头表示坐标系,VTK还提供了vtkAnnotatedCubeActor类,画出来就是一个立方体,官网还提供了一个案例,效果如下图:
在这里插入图片描述
具体代码见:OrientationMarkerWidget

vtkOrientationMarkerWidget类的API解释:
- SetOutlineColor: 该组件支持鼠标移动其位置,移动的时候会有一个边框,这个是设置这个边框的颜色
- SetOrientationMarker:控制该组件的样式,是使用箭头还是立方体
- SetInteractor:设置鼠标、键盘交互类vtkRenderWindowInteractor的实例,相当于将该组件与外设关联起来
- SetViewport:用于设置改组件的位置及大小
- InteractiveOff:关闭鼠标交互移动其位置,所以这里设置OutlineColor没用用处

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值