December 27, 2014, 10:23 (GMT) |
Intermediate commit: switching strand edit data to BMesh. Hair/Strand editing will only use a subset of the bmesh topology and expect a specific topology that needs to be verified and enforced. However, this extra requirement is much less work than reimplementing a whole edit data system with the same feature set as bmesh and avoids much redundant code. |
December 27, 2014, 10:23 (GMT) |
Fix for verts-of-strand iterator: This requires a second pointer in addition to the edge, otherwise the last point is omitted. |
December 27, 2014, 10:22 (GMT) |
New customdata type for mesh surface samples. |
December 27, 2014, 10:22 (GMT) |
Switched the hair edit data to a bmesh-like structure for consistency. This means using mempools to store curve and vertex data, which allows arbitrary addition and removal of data more easily. Also this includes an iterator system similar to bmesh iterators (although the simpler topology makes it a lot less complex). |
December 27, 2014, 09:59 (GMT) |
Reconstruct most basic particle data when applying the hair edit, so particle hairs remain visible. Note that currently the hair root location (num/num_dmcache, fuv, foffset) is not stored from edit data, so all hairs end up in a default location. |
December 27, 2014, 09:59 (GMT) |
Store hair edit data in particle systems and manage it in the operator for entering/exiting the edit mode. |
December 27, 2014, 09:59 (GMT) |
Finished the particle-to-edit conversion function. |
December 27, 2014, 09:59 (GMT) |
Moved code for the hair edit data structures to blenkernel. This makes it work more like editmesh, and avoid the awkward and basically bad-level approach in particles, where the edit data is an anonymous pointer in particle systems together with a callback for freeing. |
December 27, 2014, 09:59 (GMT) |
New edit mode for hair. |
December 27, 2014, 09:59 (GMT) |
More work on particle conversion methods for hair edit mode. |
December 27, 2014, 09:58 (GMT) |
Minor syntax fix. |
December 27, 2014, 09:58 (GMT) |
Usable random distribution algorithm. Does not include area weighting yet. |
December 27, 2014, 09:58 (GMT) |
Shifted the dispatch from the algorithm side to the storage side of the sampling system to keep the code simple. Now there is a MSurfaceSampleStorage struct that encodes the storage details, which the algorithms don't have to care about. |
December 27, 2014, 09:58 (GMT) |
Added generalized method for creating an array of mesh samples with arbitrary stride. |
December 27, 2014, 09:58 (GMT) |
New editor library for hair edit mode. |
December 27, 2014, 09:58 (GMT) |
Eval function to get a location and normal vector from mesh samples. |
December 27, 2014, 09:58 (GMT) |
Normalize the normal vector after sample eval to account for interpolation. |
December 27, 2014, 09:58 (GMT) |
Added a bool return to the eval function to give feedback on invalid samples. |
December 27, 2014, 09:58 (GMT) |
Changed mesh sample definition to use 3 vertex weights instead of a face index. This is easier to sample uniformly and avoids the need for tesselation for evaluating. |
December 27, 2014, 09:58 (GMT) |
Skeleton code for sampling meshes. |
|