需求:统计场景中模型信息,方便查看模型
要求:
1.统计信息包括:包围球中心点、半径信息;模型的几何个数、图元个数、顶点个数、三角面个数、纹理格式、纹理个数、纹理大小等
2.对信息数学统计,主要包括:平均值,最大值、最小值、拥有最大值、最小值的几个模型名称(统计选项可选) 3.制作QT界面,显示上述信息和统计计算,最终可以打印输出
后期: 在此基础上,确定模型错误种类并做相应的检查,解决打开模型崩溃问题。
根据需求,暂定路线为遍历工程文件下的模型文件,然后获取每个文件路径,重写osg的nodevisitor节点遍历函数,获取统计信息,然后统计显示。
在显示的过程中,需要清晰的获取三维模型多个信息,能够实现排序,因此选择QT的QTableWidget实现,其他不做多说,这里主要给出点击排序的代码:
QHeaderView *headerGoods = _nodeTableWidget->horizontalHeader(); //SortIndicator为水平标题栏文字旁边的三角指示器 headerGoods->setSortIndicator(0, Qt::AscendingOrder); headerGoods->setSortIndicatorShown(true); headerGoods->setClickable(true); connect(headerGoods, SIGNAL(sectionClicked(int)), _nodeTableWidget, SLOT (sortByColumn(int)));
首先获取标题栏,然后设置排序按钮为可显示,最后添加槽函数即可。
结果如下所示:
这里的槽函数为QT自带的,主要分为对字符串排序和数字排序,这个跟你添加Item时,每个item传入的参数值相关,添加文字则对文字排序,数字亦然。
今天完成的任务是对统计信息进行计算,主要运用std完成,博客待更新。