*** empty log message ***

This commit is contained in:
Federico Ponchio 2004-12-02 19:12:44 +00:00
parent 24978a13ae
commit f6b8487607
1 changed files with 17 additions and 16 deletions

View File

@ -45,16 +45,13 @@ class MyFace : public vcg::FaceAV<MyVertex, MyEdge, MyFace> {};
class MyMesh:
public vcg::tri::TriMesh< std::vector<MyVertex>, std::vector<MyFace > > {};
class MyTriEdgeCollapse:
public vcg::tri::TriEdgeCollapseQuadric< MyMesh, MyTriEdgeCollapse > {
class MyTriEdgeCollapse: public vcg::tri::TriEdgeCollapseQuadric< MyMesh, MyTriEdgeCollapse > {
public:
typedef vcg::tri::TriEdgeCollapseQuadric< MyMesh, MyTriEdgeCollapse > TECQ;
typedef TECQ::EdgeType EdgeType;
MyTriEdgeCollapse(EdgeType p, int i): TECQ(p, i) {}
~MyTriEdgeCollapse() {}
inline MyTriEdgeCollapse( EdgeType p, int i) :TECQ(p,i){}
};
float Cluster(MyMesh &mesh, unsigned int target_faces);
float Quadric(MyMesh &mesh, unsigned int target_faces);
@ -64,7 +61,6 @@ float nxs::Decimate(Decimation mode,
vector<unsigned int> &newface,
vector<BigLink> &newbord) {
for(unsigned int i = 0; i < newface.size(); i+= 3) {
assert(newface[i] != newface[i+1]);
assert(newface[i] != newface[i+2]);
@ -100,10 +96,12 @@ float nxs::Decimate(Decimation mode,
// vcg::tri::io::ExporterPLY<MyMesh>::Save(mesh, "ribum.ply");
float error;
if(mode == CLUSTER)
error = Cluster(mesh, target_faces);
else
error = Quadric(mesh, target_faces);
switch(mode) {
case CLUSTER: error = Cluster(mesh, target_faces); break;
case QUADRIC: error = Quadric(mesh, target_faces); break;
default: cerr << "Unknown simplification mode: " << mode << endl;
exit(0);
}
newvert.clear();
newface.clear();
@ -144,6 +142,8 @@ float nxs::Decimate(Decimation mode,
float Quadric(MyMesh &mesh, unsigned int target_faces) {
vcg::tri::UpdateTopology<MyMesh>::VertexFace(mesh);
vcg::tri::UpdateBounding<MyMesh>::Box(mesh);
vcg::LocalOptimization<MyMesh> DeciSession(mesh);
MyTriEdgeCollapse::SetDefaultParams();
@ -165,6 +165,7 @@ float Quadric(MyMesh &mesh, unsigned int target_faces) {
}
error /= count;
return error;
return 0;
}
float Cluster(MyMesh &mesh, unsigned int target_faces) {