通道挑选类Picker的使用必须在VP 主线程中进行必要的配置才能使用。配置包含两个过程,第一是鼠标窗口函数的配置,第二个是Picker 类的配置。当然,首先需要在VP的公共类PublicMember 类里面定义一个Picker 类的静态变量:
static Picker *m_picker;
同时进行实例化:
Picker *PublicMember::m_picker=NULL;
第一个配置,完成窗口鼠标类的配置。首先把设计的窗口鼠标类进行实例化,并添加为鼠标值变化事件的订阅者,捕捉vpInputSourceBoolean::EVENT_VALUE_CHANGED 事件的发生。具体代码如下:
第二个配置,完成通道挑选类的配置。首先把设计的Picker 类进行实例化,然后获取鼠标左值变化输入源,并为之添加事件订阅者,捕捉vpInputSourceBoolean::EVENT_ FALLING_ EDGE 事件的发生。具体代码如下:
完整的通道挑选Picker 类的配置使用具体代码如图9.5.3所示。
(www.daowen.com)
图9.5.3 通道挑选Picker 类的配置使用
运行代码,其效果如图9.5.4所示。点选汽车,其效果如图9.5.4(a)所示;点选房屋,其效果如图9.5.4(3)所示。
图9.5.4 通道对象鼠标点选效果
对于挑选类的使用,可以进行进一步设计开发。例如,可以对渲染策略进行改进,可以结合通道屏幕显示功能对选中的对象显示相关信息,可以稍加改进实现多个对象的选择,等等。
当选取模型为DOF时,即“m_mode=MODE_DOF;”时,显示对象的指针不能为DOF的指针,需要重现确定为一个vpObject,否则计算显示坐标时将出错,即:
m_object 必须为vpObject 类型,不能为vsDOF 类型,处理方式是选取另一个固定对象物体,计算屏幕坐标,显示在固定位置上。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。