Ogitor探索之代码分析(3)---CBaseEditor::showBoundingBox(bool bShow)

在Qtogitor中编辑场景时如何选中物体Object并让它显示出边线(Ogitor称它为Bounding Box)呢?

前面已经介绍了OnMouseMove的功能了,如果不知道的要先看一下OnMouseMove的功能;

1、当鼠标在屏幕上移动时OnMouseMove实时获得鼠标在视口的坐标

2、Ogitor经过系列运算(具体实现还有待发掘)

3、获取鼠标所在位置是否有Object

4、如果有Object在你点击鼠标左键时就回调用CBaseEditor::showBoundingBox(bool bShow)并且此时传递到bShow的值为true BoundingBox就显示出来了

在D:/OgreSDK/ogitor_src/src0_43/Ogitor/src/BaseEditor.cpp文件中定义的CBaseEditor::showBoundingBox(bool bShow)

   1: void CBaseEditor::showBoundingBox(bool bShow) 
   2: {
   3:     if(!mBoxParentNode && getEditorType() != ETYPE_BASE)
   4:         createBoundingBox();
   5:  
   6:     if(mBBoxNode)
   7:     {
   8:         int matpos = 0;
   9:         if(mHighlighted->get())
  10:         {
  11:             ++matpos;
  12:             if(mSelected->get())
  13:                 ++matpos;
  14:         }
  15:         
  16:         mOBBoxRenderable->setMaterial(mOBBMaterials[matpos]);
  17:         mBBoxNode->setVisible(bShow || mSelected->get() || mHighlighted->get());
  18:     }
  19: }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值