diff --git a/apps/sample/trimesh_base/trimesh_base.cpp b/apps/sample/trimesh_base/trimesh_base.cpp index 834c5688..4626a8bb 100644 --- a/apps/sample/trimesh_base/trimesh_base.cpp +++ b/apps/sample/trimesh_base/trimesh_base.cpp @@ -1,44 +1,65 @@ -#include -#include -#include -#include -#include +#include + #include -#include +#include +#include +#include +#include #include +#include -using namespace vcg; -using namespace std; +#include -class AEdge; // dummy prototype never used class AFace; -class AVertex : public vcg::Vertex< double,AEdge,AFace > {}; -class AFace : public vcg::FaceFCFN< AVertex,AEdge,AFace > {}; -class AMesh : public vcg::tri::TriMesh< std::vector, std::vector > {}; +class AVertex; +class AEdge; // dummy prototype never used +class AVertex : public vcg::VertexSimp2< AVertex, AEdge, AFace, vcg::vert::Coord3f>{}; +class AFace : public vcg::FaceSimp2< AVertex, AEdge, AFace, vcg::face::VertexRef,vcg::face::Color4b,vcg::face::Normal3f> {}; + +class AMesh : public vcg::tri::TriMesh< std::vector, std::vector > +{ +public: + AMesh() + :vcg::tri::TriMesh< std::vector, std::vector >() + { + } +}; -class CEdge; // dummy prototype never used class CFace; -class CVertex : public vcg::VertexVN< double,CEdge,CFace > {}; -class CFace : public vcg::FaceFN< CVertex,CEdge,CFace > {}; -class CMesh : public vcg::tri::TriMesh< std::vector, std::vector > {}; +class CVertex; +class CEdge; // dummy prototype never used +class CVertex : public vcg::VertexSimp2< CVertex, CEdge, CFace, vcg::vert::Coord3f,vcg::vert::Normal3f>{}; +class CFace : public vcg::FaceSimp2< CVertex, CEdge, CFace, vcg::face::VertexRef, vcg::face::Normal3f> {}; +class CMesh : public vcg::tri::TriMesh< std::vector, std::vector > +{ +public: + CMesh() + :vcg::tri::TriMesh< std::vector, std::vector >() + { + } +}; int main(int , char **) { AMesh am; CMesh cm; - tri::Tetrahedron(cm); - tri::Tetrahedron(am); + vcg::tri::Tetrahedron(cm); + vcg::tri::Tetrahedron(am); - printf("Generated mesh has %i vertices and %i triangular faces\n",cm.vn,cm.fn); + std::cout << "Generated mesh has " << cm.vn << " vertices and " << cm.fn << " triangular faces" << std::endl; /// Calculates both vertex and face normals. /// The normal of a vertex v is the weigthed average of the normals of the faces incident on v. /// normals are not normalized - tri::UpdateNormals::PerVertexPerFace(cm); - printf("Normal of face 0 is %f %f %f",cm.face[0].N()[0],cm.face[0].N()[1],cm.face[0].N()[2]); - - tri::UpdateNormals::PerFace(am); + vcg::tri::UpdateNormals::PerVertexPerFace(cm); + std::cout << "[cm mesh] Normal of face 0 is [" << cm.face[0].N()[0] << "," << cm.face[0].N()[1] << "," << cm.face[0].N()[2] << "]" << std::endl; + std::cout << "[cm mesh] Normal of vertex 0 is [" << cm.vert[0].N()[0] << "," << cm.vert[0].N()[1] << "," << cm.vert[0].N()[2] << "]" << std::endl; + /// Calculates face normals. + /// normals are not normalized + vcg::tri::UpdateNormals::PerFace(am); + std::cout << "[am mesh] Normal of face 0 is [" << cm.face[0].N()[0] << "," << cm.face[0].N()[1] << "," << cm.face[0].N()[2] << "]" << std::endl; + return 0; }