Mesh Edit in Scotty3D

MeshEdit is the first major component of Scotty3D, which performs 3D modeling, subdivision, and mesh processing, enabling the user to transform a simple cube model into beautiful, organic 3D surfaces described by high-quality polygon meshes. 

The Halfedge data structure 

halfedge.PNG

A halfedge structure is like a glue that bonds different elements together. Basically, the standard mesh elements (vertices, edges, and faces) know only about one of their halfedges. In particular:

  • a vertex knows about one of its “outgoing” halfedges,

  • an edge knows about one of its two halfedges, and

  • a face knows about one of the many halfedges circulating its interior, and

  • each halfedge knows about the opposite halfedge(aka twin halfedge). It also knows about the next halfedge around its face, as well as its associated edge, face, and root vertex.

Local operations

Local mesh operations are operations that edit a mesh in a small local part each time (like edge collapse, face bevel, etc.).

With discretion, most of these operations are achieved by algorithms that create, reassign, reposition, and delete half edges, vertices, edges, and faces. 

Edge flip

flip.gif

Edge collapse

edgecollapse.gif

Edge split

split.gif

Face bevel

facebevel.gif

Global operations

According to some rules, global mesh operations refer to operating every mesh element (edges, vertices, faces) uniformly. Some common global operations include linear subdivision, loop subdivision, simplification, etc.

Triangulation

triangulation.gif

Catmull-Clark subdivision

catmull.gif

Linear subdivision

linear.gif

Loop subdivision

loop.gif