需求:統計場景中模型信息,方便查看模型
要求:
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完成,博客待更新。
