Assignment 4

Download the assignment archive DGP2016-A4.zip, and unzip the compressed file. You should have a directory named DGP2016-A4 containing a README.txt file and several subdirectories. Follow these instructions. You should upload your completed assignment through Canvas. As in previous assignments, your submission may have bugs, but it has to compile and the application has to run. Otherwise I will not grade your assignment.

Download the archive meshes-wrl.zip containing additional data files.

In this assignment you will implement the core/Remeshing class. For this you have to edit the following four files

  core/Geometry.hpp
  core/Geometry.cpp
  core/Remeshing.hpp
  core/Remeshing.cpp

You should copy the files that you implemented in previous from previous assignments into the Assignment 4 src directory.

wrl/ImageFaceSet class has been modified to support additional functionality.

References

Remeshing Operations

These methods are used for vizualization and debugging purposes.

  void  splitLongEdgesShow();
  void  collapseShortEdgesShow();
  void  equalizeValencesShow();

These methods perform the five basic operations.

  void  splitLongEdgesApply();
  void  collapseShortEdgesApply();
  void  equalizeValencesApply();
  void  tangentialRelaxationApply();
  void  projectToSurfaceApply();

The remeshing operation combines the five basic operations in a simple loop.

  void remeshApply() {
    for(int i=0;i<_nIterations;i++) {
      splitLongEdgesApply();
      collapseShortEdgesApply();
      equalizeValencesApply();
      tangentialRelaxationApply();
      projectToSurfaceApply();
    }
  }

TO BE UPDATED

Test Files

A number of simple test files have been added to the assets directory. Since the polygon meshes described in these files are small, they can be used to debug your implementation. Some of these files contain scene graphs with multiple IndexedFaceSet nodes, some contain regular polygon meshes, and some contain singular polygon meshes. Some meshes have boundaries and others do not.