第三节《vtkActor重新实现-FreeActor讲解》

本文介绍了为何以及如何重写vtkActor,目的是为了解决在进行模型标注时,使标记点(如小球)在相机缩放时保持在视口中的大小不变。通过在Render函数中计算相机缩放系数并调整actor,确保小球的视觉大小固定。然而,目前代码存在一个问题:当模型部分透明时,透明效果表现异常,作者计划在后续章节中解决此bug。
摘要由CSDN通过智能技术生成

        这一节我们主要讲解vtkActor被继承后,如何重新实现,首先说一下为什么要重新实现vtkActor, 网上大多数文章重新实现vtkActor主要目的是将重新实现的actor变成具有一定功能的类,比如做一个测量控件,测量显示模型包含2个端点球模型、一条线段、一个刻度。将这些单一模型都放在了新的actor中进行创建与计算,最后当成一个整体使用。但是我个人感觉这样做不是很好,actor主要目的是处理各种显示问题,里面有很多显示处理相关函数,如果都放在一起写,里面还要有模型处理与计算相关函数,这样设计不是很合理。但是我重写vtkActor主要目的是想处理一些vtk没有提供的方法,都是一些显示相关的,比如我们在做模型标注功能时,往往采用绘制一个小球当做标记点,我们是希望小球大小与视口是固定不变的,相机是否无论怎么缩放小球显示大小不应该变化。起初我认为vtk应该有相关设置接口,但是我没找到,所以我就重写实现vtkActor将这个功能加进去。

                这个功能需要添加在Render函数中,这个函数当Renderer更新会调用这个虚函数,原理其实很简单,就是获取相机缩放系数,actor做相应的变化。

void FreeActor::Render(vtkRenderer *ren)
{
    this->Device->SetProperty(this->Property);
    th
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

《雨声》

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

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

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

打赏作者

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

抵扣说明:

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

余额充值