コード例 #1
0
ファイル: oversketch.cpp プロジェクト: QuLogic/jot-lib
inline Bface_list
ctrl_faces(CBedge_list& edges)
{
   if (!dynamic_pointer_cast<LMESH>(edges.mesh()))
      return Bface_list();
   Bface_list ret(edges.size());
   for (Bedge_list::size_type i=0; i<edges.size(); i++) {
      Bface* f = ((Ledge*)edges[i])->ctrl_face();
      if (f)
         ret.push_back(f);
   }
   return ret.unique_elements().quad_complete_faces();
}
コード例 #2
0
ファイル: paper_doll.cpp プロジェクト: QuLogic/jot-lib
inline Bvert_list
reorder(CBedge_list& edges)
{
   Bvert_list ret;

   Bvert_list verts = edges.get_verts();
   for (Bvert_list::size_type i = 0; i < verts.size(); i++)
      if (Bpoint::find_controller(verts[i]) || Bcurve::find_controller(verts[i])) {
         ret.push_back(verts[i]);
         break;
      }
   if (ret.empty())
         return ret;

   for (Bvert_list::size_type i = 1; i < verts.size(); i++) {
      for (Bedge_list::size_type j = 0; j < edges.size(); j++) {
         Bvert* v = edges[j]->other_vertex(ret.back());
         if (v && std::find(ret.begin(), ret.end(), v) == ret.end()) {
            ret.push_back(v);
            break;
         }
      }
   }

   err_adv(debug, "   reorder: num of verts: %d", ret.size());
   return ret;
}
コード例 #3
0
ファイル: lmesh.cpp プロジェクト: QuLogic/jot-lib
inline void
update_edges(CBedge_list& edges)
{
   // helper for LMESH::update_subdivision(CBface_list& faces)
   for (Bedge_list::size_type i=0; i<edges.size(); i++)
      ((Ledge*)edges[i])->update_subdivision();
}
コード例 #4
0
ファイル: paper_doll.cpp プロジェクト: QuLogic/jot-lib
inline bool 
copy_edges(CBedge_list& edges, CVertMapper& vmap)
{
   bool ret = true;
   for (Bedge_list::size_type i=0; i<edges.size(); i++)
      if (!copy_edge(edges[i], vmap))
         ret = false;
   return ret;
}