2016-07-04 66 views
0

我有一個包含數百萬個3D點的內存映射文件作爲使用CGAL的STL矢量。給定一個將數據集分成大致相等部分的任意平面,我想對數據集進行排序,使得所有的內部點在矢量中都是連續的,同樣也是外部點。這個過程需要重複到任意深度,創建一個非軸對齊的BSP樹。將點的矢量劃分爲兩個空格

由於數據集的大小,如果可能的話,我希望這樣做。我有一個謂詞函子,用於創建filtered_iterator,但當然不會對點進行排序,只是跳過不匹配的點。所以我可能創建第二個向量,並將排序後的點複製到那個,並重新使用原始向量循環法樣式,但我想避免,如果可能的話,如果只保留標記爲開始的迭代器並結束每個空間。

+0

請注意,CGAL中已經有一個kd-tree數據結構,它可能適合您的需求... –

+0

確實,雖然kd-trees使用軸對齊的平面,並且我的需要任意對齊。另外(我從我的問題中忽略了這一點,我的錯誤),kd-trees僅在葉節點中存儲點,並且我需要在分支節點中使用一些點。不過謝謝你提到它! – MerseyViking

回答

0

當然,通過援引神的問題,我幾乎一發布就收到他們的直接溝通!

我對STL算法partition完全無視我所需要的。