距離上次用OpenMesh已經有好段日子了

現在突然作業需要用到又開始寫

好多地方忘記了

這次想到問題是

我已經擁有兩個VertexHandle了,我該如何找出他們的HalfEdge

以及如何利用這個HalfEdge 環繞出一個三角形

先說說如何找出HalfEdge

OMT::VHandle vh1,vh2;

OMT::HEHandle he = m_Mesh->find_halfedge(vh1,vh2);

he就是我們要的

接下是為何要提到利用這個HalfEdge 環繞出一個三角形

因為我用一般的做法next_halfedge_handle()他不是跑出該Face的halfedge 而是跑到下一個Face的halfedge了

所以要利用到opposite_halfedge_handle();

用一個vector把找到的he先存下來

    std::vector<OMT::HEHandle> hehs;

    OMT::HEHandle he = m_Mesh->find_halfedge(vh1,vh2);
    hehs.push_back(he);
    he = m_Mesh->next_halfedge_handle(m_Mesh->opposite_halfedge_handle(he));
    hehs.push_back(he);
    he = m_Mesh->next_halfedge_handle(he);
    hehs.push_back(he);

這樣就可以利用halfedge找出來了

因為我正在做點對點求一些角度問題 就用此方式了~~

以後如果想到有更好的方式再提出來

arrow
arrow
    全站熱搜

    台灣李宏感 發表在 痞客邦 留言(0) 人氣()