支持stl數據源的動態(tài)空間索引構建方法
【技術領域】
[0001] 本發(fā)明提供支持S化數據源的動態(tài)空間索引構建方法,可用于快速重建海量數據 數字模型的拓撲結構,屬于數字化設計與制造領域。
【背景技術】
[0002] S化文件格式是3DSystems公司為立體光固化成型CAD系統(tǒng)開發(fā)的一種角網 格結構記錄=維空間曲面信息的文件格式,因其數據格式簡單和良好的跨平臺性,現已被 廣泛應用于快速成型、CAD/CAM、虛擬現實等領域。
[0003] 在實際應用中,S化文件格式存在著網格頂點數據冗余W及缺乏面片鄰接信息等 固有缺陷。隨著3D打印技術的逐漸普及,該些缺陷所帶來的負面影響日益突出。現有的 解決方法主要是采用頂點數據信息的引用來代替網格頂點的數據復本,然后基于S化文 件中的S角面片信息顯式的重建曲面拓撲。安濤等在《基于紅黑樹的STL數據快速拓 撲重建算法》(機械科學與技術,2008,27巧):1031-1034)中采用紅黑樹作為索引結 構,可有效去除S化文件中的冗余信息,但紅黑樹建樹復雜,為了檢測樹的平衡性需要進 行節(jié)點顏色的改變和樹的旋轉。楊扇院等在《基于STL文件的曲面網格重建算法》(計 算機工程,2011,37(4))中采用二叉樹結構進行頂點聚合,該算法可快速查詢面片信 息,實現拓撲重建,但二叉樹的高度會因數據量增大而急劇增加,導致調整樹的平衡付出 時間代價過大。化U等在《Therapidtopologicalreconstructionof3D-solidand simplificationofweightedQEM》(Vehi州larElectronicsandSafety(ICVES), 2013 IE邸InternationalConferenceon.I邸E, 2013: 273-277)中通過數組存儲頂點信息, 但是數組無法動態(tài)存儲,插入和刪除操作效率低。王增波在《S化格式文件的快速拓撲重 建算法》(計算機應用,2014, 34巧):2720-272)中W哈希表作為數據結構,哈希表在查詢特 定鍵值的數據效率非常高,但其最大難點是散列函數的設定,設置不當會使查詢效率下降, 并且哈希表對于不同鍵值的查找容易誤判,導致查詢的準確度降低。
【發(fā)明內容】
[0004] 本發(fā)明的目的是針對目前S化文件格式存在網格頂點數據冗余W及缺乏面片鄰 接信息等缺陷,提出一種基于多維動態(tài)空間索引的顯式曲面拓撲重建算法,通過建立頂點 數據的索引結構消除S化文件中冗余的頂點數據,并基于索引結構的開放性融入半邊結 構,實現網格曲面拓撲的快速重建,在保證曲面網格冗余頂點去除效率與拓撲結構重建效 率的前提下,實現網格曲面拓撲鄰域信息的快速查詢。
[0005] 本發(fā)明的目的是通過如下技術方案實現的: 支持S化數據源的動態(tài)空間索引構建方法,其特征在于步驟依次為;(1)對S化文件格 式的數字模型構建網格曲面頂點的KD樹索引,在構建的過程中逐步消除網格曲面中的頂 點冗余數據;(2)通過KD樹的最近鄰查詢算法在所構建的KD樹中快速查詢S化數據源中 的頂點信息,提高頂點數據復本消除效率;(3)基于KD樹葉節(jié)點層數據存儲的開放性融入 半邊數據結構,將STL中記錄的=角面片信息轉化為半邊結構中的半邊信息,進而將半邊 信息轉化為KD樹中頂點信息的引用,實現半邊結構與KD樹的融合;(4)通過KD樹的最近 鄰查詢算法,在構建好的頂點KD樹中快速查詢網格頂點信息,間接地獲取半邊信息,并充 分利用半邊結構中的半邊環(huán)序及對偶半邊信息,連接相鄰=角面片,實現完整曲面拓撲結 構的快速重建。
[0006] 所述的支持SIl數據源的動態(tài)空間索引構建方法,其特征在于步驟(1)對SIl文件 格式的數字模型構建網格曲面頂點的KD樹索引,在構建的過程中逐步消除網格曲面中的 頂點冗余數據,具體步驟為:(1) 1,必^ 0 (其中i=l,2,w,n,0表示空集,慷示 構建的頂點邸樹,并將遇為空集,11為5化文件中的面片數);(2)解析5化文件中的第/ 個面片/;的數據區(qū)段,獲得/,的^個頂點K,,。;(3) 1 (其中J=l,2,3) ;(4)應 用邸樹的最近鄰查詢算法在沖查詢的最近鄰點K/,若聲K/,則用邸樹的構 建算法將1〇插入至沖;否則,直接轉巧);(5)J^九1 ;做重復(4)與巧),直至J> 3; (7)i- 一1 ;巧)重復(2)至(7),直至i>A當上述過程結束后,巧勺葉節(jié)點層所存 儲的數據即為去除頂點數據復本后的網格曲面頂點集合。
[0007] 所述的支持S化數據源的動態(tài)空間索引構建方法,其特征在于步驟(3)中的基于 KD樹葉節(jié)點層數據存儲的開放性融入半邊數據結構,將STL中記錄的S角面片信息轉化為 半邊結構中的半邊信息,進而將半邊信息轉化為KD樹中頂點信息的引用,實現半邊結構與 邸樹的融合,具體步驟為;(1) 1,公^ 0,戶^ 0巧中域示半邊集合,域示面片集 合,將化為空集);(2)解析S化文件中的第i個面片/,的數據區(qū)段,獲得面片法向/7, 與頂點數據K,,,Kc,k,3;(3)構造半邊數據結構及面片數據結構/,,并將其數 據域均初始化為空;(4) 〇W)mod3;(6)應用邸樹的最近鄰查詢算法,在網格 曲面頂點KD樹沖獲取Ku的最近鄰點所在的葉節(jié)點Wk,,.);(7)將Wk,,)作為與,的終 點,并將與洗為與_斯下一條半邊;做將與,作為的一條出射半邊添加至Wk,,.)的半 邊集合沖;(9)J^九1 ;(1〇)重復妨至巧),直至J> 3 ;(11)將如作為/,的起始 半邊,將A存入對應的法向信息的數據區(qū)域,然后將/,添加至; (12)將作為與,, 與刀與與3的所屬面片,然后將如,與刀與與遏次添加至沖;(13) 一1 ;(14)重復(2) 至(13),直至i>A該過程可W實現S化文件中每個S角面片的拓撲重建。
[0008] 所述的支持S化數據源的動態(tài)空間索引構建方法,其特征在于步驟(4)中的通過 KD樹的最近鄰查詢算法,在KD樹中利用最近鄰查詢算法快速查詢頂點信息,間接地獲取半 邊信息,并充分利用半邊結構中的半邊環(huán)序及對偶半邊信息,連接相鄰=角面片,實現完整 曲面拓撲結構的快速重建,其中對偶半邊的判斷規(guī)則為;對于任一半邊A(e,4, /,與),若其 對偶半邊與存在,則必定存在于e的出射半邊集合/中,且4的終點對應的出射半邊集合中 也必包含設半邊集合用^總共包含?^半邊,則為每條半邊捜索對偶半邊的過程如下: (1) 1;(2)對于/^第/條半邊與,在其終點的出射半邊集合/中按上述判斷規(guī)則捜 索與的對偶半邊^(qū) / ; (3)若存在,將其信息記錄于與的對偶半邊數據域,并從與終點 的半邊集合中刪除^/;(4) 一1;(5)重復(2)至(4),直至/>曲完成半邊結構形式 的曲面拓撲重建的整個過程;其中KD樹的葉節(jié)點記錄了全部的網格曲面頂點數據,同時也 記錄了該頂點一條出射半邊的信息,在半邊結構中,每條半邊的終點均為KD樹葉節(jié)點層存 儲的網格曲面頂點的引用,半邊結構與KD樹相互融合的動態(tài)空間索引最終建立。
[0009] 本發(fā)明與現有技術相比,具有W下優(yōu)點: (1) 在基于S化文件的網格曲面頂點數據復本消除環(huán)節(jié),本文算法采用支持多維數據 查詢的動態(tài)空間索引進行網格曲面頂點數據復本判斷,使得冗余頂點去除效率顯著提升; (2) 在曲