Readme.md 1.11 KB
Newer Older
Philip Trettner's avatar
Philip Trettner committed
1
2
# PolyMesh

Philip Trettner's avatar
Philip Trettner committed
3
A lightweight half-edge data structure.
Philip Trettner's avatar
Philip Trettner committed
4
5
6

Best used with glm and glow.

Philip Trettner's avatar
Philip Trettner committed
7
8
9
10
11
12
## TODO

* Properties
* Algorithms
* Tests
* std::less and std::hash for _index (and maybe _handle)
13
* attribute transformations (also between different types)
Philip Trettner's avatar
Philip Trettner committed
14
* Debug: store compactify generation in handles to check for invalidation
15
16
* Debug: insert is_removed assertions into handle access
* Test self-adjacent faces
Philip Trettner's avatar
Philip Trettner committed
17
* smart ranges: filter, map
18
* vector, set, map -> range
19
* opposite edges (from vertex)
Philip Trettner's avatar
Philip Trettner committed
20
* cotangents weights etc.
21
* smoothing
Philip Trettner's avatar
Philip Trettner committed
22
* make handle.<primitives>() contain only valid ones and provide an all_<primitives>() version
Philip Trettner's avatar
Philip Trettner committed
23
24
* _copy versions of topological operations that copy attributes
* vertex split?
25
* half-edge collapse
Philip Trettner's avatar
Philip Trettner committed
26
* normal, tangent, bitangent computation
27
* primitive sort functions, better remap function, cache optimization
Philip Trettner's avatar
Philip Trettner committed
28
* lowlevel API that allows direct half-edge manipulation and does not fix boundaries (but also mirrors high level one)
Philip Trettner's avatar
Philip Trettner committed
29
* primitive collection sort and sort_by functions
Philip Trettner's avatar
Philip Trettner committed
30
* paired_with function for smart range
Philip Trettner's avatar
Philip Trettner committed
31
32
* operator +-*/ for attributes (similar to valarray)
* dual mesh construction
33
* cast<> function