基底的剪下需要將含有高亮的邊的點分割成多個點,如果乙個點有兩個高亮邊,那麼這個點則需要**成兩個點,即需要創造乙個新點,並將所有的點的資訊儲存在半邊結構中
,我們是以出的半邊儲存的。
#include#include #include #include struct mytraits : public openmesh::defaulttraits;};
typedef openmesh::trimesh_arraykerneltmymesh;
using namespace std;
int main()
for (mymesh::edgeiter e_it = mesh.edges_begin(); e_it != mesh.edges_end(); ++e_it)
mymesh::faceiter f_it = mesh.faces_begin();
vectorf_vector;
f_vector.push_back(*f_it);
vector::iterator f_vector_begin;
int begin = 0;
while (begin != f_vector.size())
} begin++;
} //cut unnecessary edges to form homotopy group basis;
bool mark;
while (1)
}if (number == 1)
}} if (!mark)break;
} mesh.property(highlight).set_persistent(true);
//slice-mesh;
openmesh::hprophandlethalf_vertex;
vectorvoh_vector;
mesh.add_property(half_vertex, "he_vertex");
for (mymesh::vertexiter v_it = mesh.vertices_begin(); v_it != mesh.vertices_end(); ++v_it)
} if (valence == 0)
} if (valence == 2)
if (mark == 0 || mark == 2)
else if (mark == 1)
}} if (valence == 3)
if (mark == 0)
else if (mark == 1)
else if (mark == 2)
else if (mark == 3)
}} }
cout << "what is it?" << endl;
//mymesh mymesh;
vectorv_handles;
vectorvhnew;
mapv_handle_map;
vectorfv_handles;
vectorf_handles;
for (mymesh::faceiter f_it = mesh.faces_begin(); f_it != mesh.faces_end(); ++f_it)
/* for (int i = 0; i < f_handles.size(); i++)
if (mesh.property(half_vertex, *fh_it) == v_handles[i])
}if (count == v_handles.size())
} mymesh.add_face(fv_handles);
} */ //上面的**由於太耗費時間,所以用map來縮小時間複雜度,通過乙個map來記錄新建的點的idx,從而直接索引得到所對應的vertexhandle
for (int i = 0; i < f_handles.size(); i++)
else
} mymesh.add_face(fv_handles);
} //這個**的難點在於需要重新生成新點,然後在新點的基礎上重建mesh,在這裡浪費時間較多。
//for (int i = 0; i < v_handles.size(); i++)
//for (int i = 0; i < vhnew.size(); i++)
// write mesh to output.obj
try }
catch (std::exception& x)
cin.get();
return 0;
}
Mac OS X的剪下操作
用windows的朋友都熟悉乙個快捷鍵的組合ctrl x剪下,然後ctrl v貼上到別的目錄,同時刪除原檔案或文字,但習慣用鍵盤快捷鍵的mac使用者可能發現了,這個剪下的操作,對應到mac os x是command x,有的時候不起作用,原因是蘋果認為剪下功能會在使用者忘了貼上時導致檔案丟失。所以雖...
Mac OS X的剪下操作
常用windows的朋友都熟悉乙個快捷鍵的組合ctrl x剪下,然後ctrl v貼上到別的目錄,同時刪除原檔案或文字,但習慣用鍵盤快捷鍵的mac使用者可能發現了,這個剪下的操作,對應到mac os x是command x,有的時候不起作用,原因是蘋果認為剪下功能會在使用者忘了貼上時導致檔案丟失。所以...
不規則形狀的剪下
原理 根據選擇的區域 區域的選擇需要用到graphicspath 根據區域可以得到這部分區域的邊境矩形,從而不需要迴圈整張,只需要迴圈邊境矩形,將矩形中的選擇區域複製到另一種,這樣大大提高了效率。根據選擇的區域,可以得到複製出位於graphicspath中的這部分,同時設定這部分為透明,同時還要設定...