Used HalfEdge Mesh Structure to construct 3D Geometry. The advantage of halfEdge is the adjacency information is preserved in geometry, and we can easily get the face next to current face, edge next to current vertex, edge surrounding a face, etc.
Below is a simple application created in QT I did in my school assignment. The dodecahedron is constructed with halfEdge data structure, and when you click the halfEdge, face or vertex, the corresponding component will be highlighted in color. I can change the selected face color, or selected vertex position.
Knowing the adjacency information allows us to perform catmull clark subdivision.
Simply add new halfEdge allows me to extrude a face
Triangulate + Extrude
A simple QT application with Linear Blend Skinning on a halfEdge mesh
Poor little cow QAQ T T. A volume loss artifact due to loss of orthogonality when linear combining rotation matrix of two joints. The issue should be solved by applying Dual Quaternion Skeleton blending technique.