理论教育 窗口鼠标类辅助设计实现技术

窗口鼠标类辅助设计实现技术

时间:2023-11-25 理论教育 版权反馈
【摘要】:通道对象的挑选主要通过鼠标点击场景通道的屏幕来完成,这是因为挑选类的功能使用是在窗口鼠标类中完成的。在该窗口鼠标类中,设置了一个私有变量m_boundsStrategy,该对象为挑选对象的渲染策略,该渲染策略的类型为vrRenderStrategyBounds,可以绘制一个矩形的包围盒。该变量在窗口类的构造函数中进行了实例化和初始化。图9.5.2窗口鼠标类的辅助设计

窗口鼠标类辅助设计实现技术

通道对象的挑选主要通过鼠标点击场景通道的屏幕来完成,这是因为挑选类的功能使用是在窗口鼠标类中完成的。其中,这里会使用到 VP 公共类里的一个静态成员PublicMember::CTS_pObject_observer,用于记录选中的目标对象。

在该窗口鼠标类中,设置了一个私有变量m_boundsStrategy,该对象为挑选对象的渲染策略,该渲染策略的类型为vrRenderStrategyBounds,可以绘制一个矩形的包围盒。该变量在窗口类的构造函数中进行了实例化和初始化

m_boundsStrategy=new vrRenderStrategyBounds();

m_boundsStrategy->setRenderGeometryEnable(true);

m_boundsStrategy->setLineWidth (1);

m_boundsStrategy->setColor (1.0,1.0,0.0,1.0);

m_boundsStrategy->setWireframeEnable(true);

m_boundsStrategy->ref();

可以依次控制线框可见性、线框线条粗细度、线框线条颜色和线框类型。

对于窗口鼠标类对于挑选类的功能调用,主要在下面一个方法中实现:(www.daowen.com)

void notify(vpInputSourceBoolean::Event event,vpInputSourceBoolean *source)

该方法包含vpInputSourceBoolean::Event 事件和vpInputSourceBoolean,该方法首先获取鼠标点击通道屏幕处的坐标,然后使用Picker 类的pick 方法返回目标对象。对于返回的目标对象,需要区别对待,对于已经选中并进行了高亮渲染的对象,首先应取消高亮渲染;对于新选中的第一个对象,才使用高亮渲染策略。当然,也可以实现逐次选中多个物体实现高亮渲染。核心代码如下:

窗口鼠标类的辅助设计的具体代码如图9.5.2所示。

图9.5.2 窗口鼠标类的辅助设计

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈