From feff81dd018d347f8b683b1df5c0e96c6e590323 Mon Sep 17 00:00:00 2001 From: nicopietroni Date: Thu, 28 Aug 2014 09:46:49 +0000 Subject: [PATCH] solved minor error with templated scalar type --- vcg/complex/algorithms/symmetry.h | 47 ++++++++++++++++--------------- vcg/space/triangle2.h | 2 +- 2 files changed, 26 insertions(+), 23 deletions(-) diff --git a/vcg/complex/algorithms/symmetry.h b/vcg/complex/algorithms/symmetry.h index 548f5a0a..d23733c4 100644 --- a/vcg/complex/algorithms/symmetry.h +++ b/vcg/complex/algorithms/symmetry.h @@ -11,22 +11,8 @@ namespace vcg { namespace tri { //class SphereEdge; -class SphereFace; -class SphereVertex; - -struct SphereUsedTypes : public vcg::UsedTypes< vcg::Use::AsVertexType, - vcg::Use::AsFaceType>{}; - -class SphereVertex : public vcg::Vertex< SphereUsedTypes, - vcg::vertex::Coord3f, - vcg::vertex::Normal3f, - vcg::vertex::BitFlags>{}; - -class SphereFace : public vcg::Face< SphereUsedTypes, vcg::face::VertexRef, - vcg::face::Normal3f,vcg::face::Mark, - vcg::face::BitFlags,vcg::face::FFAdj> {}; - -class SphereMesh : public vcg::tri::TriMesh< std::vector, std::vector > {}; +//class SphereFace; +//class SphereVertex; template class ExtrinsicPlaneSymmetry @@ -36,6 +22,23 @@ class ExtrinsicPlaneSymmetry typedef typename TriMeshType::CoordType CoordType; typedef typename TriMeshType::ScalarType ScalarType; +// struct SphereUsedTypes : public vcg::UsedTypes< vcg::Use::AsVertexType, +// vcg::Use::AsFaceType>{}; + +// class SphereVertex : public vcg::Vertex< SphereUsedTypes, +// vcg::vertex::Coord, +// vcg::vertex::Normal, +// vcg::vertex::BitFlags>{}; + +// class SphereFace : public vcg::Face< SphereUsedTypes, vcg::face::VertexRef, +// vcg::vertex::Normal,ScalarType>, +// vcg::face::Mark, +// vcg::face::BitFlags,vcg::face::FFAdj> {}; + +// class SphereMesh : public vcg::tri::TriMesh< std::vector, std::vector > {}; + + + TriMeshType &tri_mesh; CoordType AlignZeroTr; @@ -48,9 +51,9 @@ class ExtrinsicPlaneSymmetry - SphereMesh *sphere; + TriMeshType *sphere; - typename vcg::GridStaticPtr GridSph; + typename vcg::GridStaticPtr GridSph; ScalarType RadiusInterval; ScalarType MaxRadius; @@ -71,7 +74,7 @@ class ExtrinsicPlaneSymmetry ScalarType MaxD=sphere->bbox.Diag(); ScalarType MinD; CoordType ClosePt; - SphereFace *choosen=NULL; + FaceType *choosen=NULL; choosen=vcg::tri::GetClosestFaceBase(*sphere,GridSph,Direction,MaxD,MinD,ClosePt); assert(choosen!=NULL); int IndexF=choosen-&(sphere->face[0]); @@ -196,11 +199,11 @@ public: if (sphere!=NULL) sphere->Clear(); else - sphere=new SphereMesh(); + sphere=new TriMeshType(); //create the sphere - vcg::tri::Sphere(*sphere,SubDirections); - vcg::tri::UpdateBounding::Box(*sphere); + vcg::tri::Sphere(*sphere,SubDirections); + vcg::tri::UpdateBounding::Box(*sphere); ///initialize grid GridSph.Set(sphere->face.begin(),sphere->face.end()); diff --git a/vcg/space/triangle2.h b/vcg/space/triangle2.h index ec6ed8e4..02e266f5 100644 --- a/vcg/space/triangle2.h +++ b/vcg/space/triangle2.h @@ -121,7 +121,7 @@ public: ///find distance to each segment and take minimum for (int i=0;i<3;i++) { - vcg::Segment2 s=vcg::Segment2(P(i),P((i+1)%3)); + vcg::Segment2 s=vcg::Segment2(P(i),P((i+1)%3)); CoordType clos=ClosestPoint(s,q); ScalarType dis_test=(clos-q).Norm(); if (dis_test