VTK笔记-交互器-vtk3DWidget类

vtk3DWidget

  vtk3DWidget是用于3D交互观察器的基类,也就是各种3D小部件类的基类,主要是在三维渲染场景中生成一个可以用于控制数据的可视化实体,比如点,线段(曲线)、平面、球体、包围盒(线框)等。
在这里插入图片描述
  这些3D小部件在场景中表示它们自己,并且具有与它们相关联的特殊回调,允许对小部件进行交互式操作。特别是,vtk3DWidget与其抽象超类vtkInteractorObserver之间的区别在于vtk3DWidget被“放置”在3D空间中。vtkInteractorObservers 不知道它们放在哪里,也可能根本不存在于3D空间中。3D小部件还提供辅助功能,如生成转换、创建polydata(用于播种流线、探测等)或创建隐式函数。详细信息请参见具体的子类。
  通常,通过指定vtkProp3D或VTK数据集作为输入,然后调用“On”方法来激活小部件(您还可以指定一个边界框来帮助定位小部件。)在调用On()方法之前,用户可能还希望使用PlaceWidget()对其进行初始定位。“i”(表示“interactor”)按键也可以用来打开和关闭小部件(存在更改键值和启用按键激活的方法)。
  为了支持对象的交互操作,这个类(和子类)调用事件StartInteractionEvent、InteractionEvent和EndInteractionEvent。当vtk3DWidget进入需要快速响应的状态(鼠标移动等)时,会调用这些事件。例如,可以使用这些事件设置所需的更新帧速率(StartInteractionEvent),对vtkProp3D或其他对象(InteractionEvent)进行操作,并将所需帧速率设置回正常值(EndInteractionEvent)。
  请注意,从vtkInteractorObserver继承的Priority属性有一个新的默认值,即现在的0.5,因此所有3D小部件的优先级都高于通常的interactor样式。

接口

输入输出

vtkProp3D* Prop3D;// 用于定位和缩放小部件
virtual void SetProp3D(vtkProp3D*);
vtkGetObjectMacro(Prop3D, vtkProp3D);  
virtual void SetInputData(vtkDataSet*);
virtual void SetInputConnection(vtkAlgorithmOutput*);
virtual vtkDataSet* GetInput();

位置因子和Handle Size

double PlaceFactor;
double HandleSize;
vtkSetClampMacro(PlaceFactor, double, 0.01, VTK_DOUBLE_MAX);
vtkGetMacro(PlaceFactor, double);  
vtkSetClampMacro(HandleSize, double, 0.001, 0.5);
vtkGetMacro(HandleSize, double);

  vtk3DWidget派生出的子类有:vtkBoxWidget、vtkBrokenLineWidget、vtkImageCroppingRegionsWidget、vtkImageTracerWidget、vtkLineWidget、vtkPointWidget、vtkPolyDataSourceWidget、vtkSphereWidget以及vtkSplineWidget;

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

黑山老妖的笔记本

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值