在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: }