From d3a98af0172da3bb63f5db10c75e9d3a2016cdd1 Mon Sep 17 00:00:00 2001 From: nicopietroni Date: Wed, 26 Jul 2006 08:07:31 +0000 Subject: [PATCH] *** empty log message *** --- apps/sample/edgemesh_grid/edgemesh_grid.cpp | 62 +++++++++++++++++++++ 1 file changed, 62 insertions(+) create mode 100644 apps/sample/edgemesh_grid/edgemesh_grid.cpp diff --git a/apps/sample/edgemesh_grid/edgemesh_grid.cpp b/apps/sample/edgemesh_grid/edgemesh_grid.cpp new file mode 100644 index 00000000..c30e76c3 --- /dev/null +++ b/apps/sample/edgemesh_grid/edgemesh_grid.cpp @@ -0,0 +1,62 @@ +#include +#include +#include +#include +#include +#include +#include +#include +#include + +// +//using namespace std; +// +class MyFace; +class MyEdge; +class MyVertex : public vcg::VertexAFVN {}; +class MyEdge : public vcg::EdgeEMEF {}; +class MyEdgeMesh: public vcg::edge::EdgeMesh< std::vector, std::vector > {}; + +typedef vcg::GridStaticPtr EdgeMeshGrid; + +#define VERT_NUMB 100 + +int main(int , char **) +{ + //create a random mesh of edge + MyEdgeMesh em; + srand(1000); + em.vert.reserve(VERT_NUMB); + for (int i=0;iP().X()=x0; + v0->P().Y()=y0; + v0->P().Z()=z0; + v1->P().X()=x1; + v1->P().Y()=y1; + v1->P().Z()=z1; + em.edges.push_back(MyEdge()); + MyEdge *e=&em.edges.back(); + e->V(0)=v0; + e->V(1)=v1; + } + vcg::edge::UpdateBounding::Box(em); + EdgeMeshGrid static_grid; + static_grid.Set(em.edges.begin(), em.edges.end()); + float dist; + vcg::Point3f p; + MyEdge *e=vcg::edgemesh::GetClosestEdge(em,static_grid,vcg::Point3f(500,500,500),1000,dist,p); + std::vector ret; + int num=vcg::edgemesh::GetInBoxEdge >(em,static_grid,em.bbox,ret); + return 0; +}