* Modeling and animation (TNM079) 2007 * Code base for lab assignments. Copyright: * Gunnar Johansson ([email protected]) * Ken Museth ([email protected]) * Michael Bang Nielsen ([email protected]) * Ola Nilsson ([email protected]) * Andreas Sˆderstrˆm ([email protected]) * *************************************************************************************************/ #include "Decimation/DecimationMesh.h" #include "Util/ColorMap.h" #include "GUI/GUI.h" #include <cassert> const DecimationMesh::VisualizationMode DecimationMesh::CollapseCost = NewVisualizationMode("Collapse cost"); void DecimationMesh::Initialize() { // Allocate memory for the 'collapsed flags' mCollapsedVerts.reserve(mVerts.size()); mCollapsedEdges.reserve(mEdges.size()); mCollapsedFaces.reserve(mFaces.size()); // Set all flags to false mCollapsedVerts.assign(mVerts.size(), false); mCollapsedEdges.assign(mEdges.size(), false); mCollapsedFaces.assign(mFaces.size(), false); // Allocate memory for the references from half-edge
* Gunnar Johansson ([email protected]) * Ken Museth ([email protected]) * Michael Bang Nielsen ([email protected]) * Ola Nilsson ([email protected]) * Andreas Sderstrm ([email protected]) * *************************************************************************************************/ #include "Implicit.h" #ifdef __APPLE__ #include "GLUT/glut.h" #else #include "GL/glut.h" #endif const Implicit::VisualizationMode Implicit::Gradients = NewVisualizationMode("Gradients"); const Implicit::VisualizationMode Implicit::Curvature = NewVisualizationMode("Curvature"); Implicit::Implicit() : mMesh(NULL), mMeshSampling(0.1), mDelta(0.1) {} Implicit::~Implicit() { if (mMesh != NULL) { delete mMesh; mMesh = NULL; } } void Implicit::Update() {
/************************************************************************************************* * * Modeling and animation (TNM079) 2007 * Code base for lab assignments. Copyright: * Gunnar Johansson ([email protected]) * Ken Museth ([email protected]) * Michael Bang Nielsen ([email protected]) * Ola Nilsson ([email protected]) * Andreas Sderstrm ([email protected]) * *************************************************************************************************/ #include "QuadricDecimationMesh.h" const QuadricDecimationMesh::VisualizationMode QuadricDecimationMesh::QuadricIsoSurfaces = NewVisualizationMode("Quadric Iso Surfaces"); void QuadricDecimationMesh::Initialize() { // Allocate memory for the quadric array unsigned int numVerts = mVerts.size(); mQuadrics.reserve(numVerts); std::streamsize width = std::cerr.precision(); // store stream precision for (unsigned int i = 0; i < numVerts; i++) { // Compute quadric for vertex i here mQuadrics.push_back(createQuadricForVert(i)); // Calculate initial error, should be numerically close to 0 Vector3<float> v0 = mVerts[i].pos; Vector4<float> v(v0[0],v0[1],v0[2],1);