# PolyMesh A lightweight half-edge data structure. Best used with glm and glow. ## TODO * Properties * Algorithms * Tests * std::less and std::hash for _index (and maybe _handle) * attribute transformations (also between different types) * Debug: store compactify generation in handles to check for invalidation * Debug: insert is_removed assertions into handle access * Switch primitives and valid_primitives, check if compact flag is inlined * Test self-adjacent faces * smart ranges: filter, map * vector, set, map -> range * opposite edges (from vertex) * cotangens weights etc. * smoothing * make handle.() contain only valid ones and provide an all_() version * _copy versions of topological operations that copy attributes * vertex split? * half-edge collapse * normal, tangent, bitangent computation * attribute iterator * primitive sort functions, better remap function, cache optimization * structure of arrays instead of AOS * lowlevel API that allows direct half-edge manipulation and does not fix boundaries (but also mirrors high level one)