Revision dc43df8 by Lukas Toenne (alembic, gooseberry, gooseberry_farm, hair_guides, hair_guides_grooming, hair_object, strand_editmode, strand_gpu, strand_nodes, temp_motionpaths, tmp_hair_curves) April 20, 2015, 10:15 (GMT) |
CustomData layer for storing hair root locations as MSurfaceSamples. This requires converting the old messy particle num/num_dmcache/fuv/foffset data into the new mesh samples, which can potentially introduce floating point errors and inaccuracies due to lack of face index mapping in the new system. However, in any well-constructed particle system the hair roots should be nearest to their num face, so mapping would be accurate enough. If necessary face index data could be added to samples as a legacy code hack, but probably it's best to eventually replace the hair system as a whole anyway. |
Revision fd34e3e by Lukas Toenne (alembic, gooseberry, gooseberry_farm, hair_guides, hair_guides_grooming, hair_object, strand_editmode, strand_gpu, strand_nodes, temp_motionpaths, tmp_hair_curves) April 20, 2015, 10:15 (GMT) |
Fix for verts-of-strand iterator: This requires a second pointer in addition to the edge, otherwise the last point is omitted. |
Revision 991ee8a by Lukas Toenne (alembic, gooseberry, gooseberry_farm, hair_guides, hair_guides_grooming, hair_object, strand_editmode, strand_gpu, strand_nodes, temp_motionpaths, tmp_hair_curves) April 20, 2015, 10:15 (GMT) |
First customdata layer for particle mass. This is more for testing purposes, since currently there is only a single mass property for the psys as a whole. This should change in the future though, to allow variable mass per strand or vertex. Conflicts: source/blender/bmesh/intern/bmesh_interp.c |
Revision 1afd5be by Lukas Toenne (alembic, gooseberry, gooseberry_farm, hair_guides, hair_guides_grooming, hair_object, strand_editmode, strand_gpu, strand_nodes, temp_motionpaths, tmp_hair_curves) April 20, 2015, 10:14 (GMT) |
Fix for verts-of-strand iterator: After last edge step has to set the edge to NULL to avoid infinite looping over the same edge (1-elem disk). |
Revision d550a29 by Lukas Toenne (alembic, gooseberry, gooseberry_farm, hair_guides, hair_guides_grooming, hair_object, strand_editmode, strand_gpu, strand_nodes, temp_motionpaths, tmp_hair_curves) April 20, 2015, 10:14 (GMT) |
Fix for particle-to-bmesh: only was looping over totvert instead of pa->totkey. |
Revision e43ef55 by Lukas Toenne (alembic, gooseberry, gooseberry_farm, hair_guides, hair_guides_grooming, hair_object, strand_editmode, strand_gpu, strand_nodes, temp_motionpaths, tmp_hair_curves) April 20, 2015, 10:14 (GMT) |
Basic particle data reconstruction when exiting edit mode. |
Revision 5f44f4a by Lukas Toenne (alembic, gooseberry, gooseberry_farm, hair_guides, hair_guides_grooming, hair_object, strand_editmode, strand_gpu, strand_nodes, temp_motionpaths, tmp_hair_curves) April 20, 2015, 10:14 (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. Conflicts: source/blender/blenkernel/intern/customdata.c source/blender/makesdna/DNA_customdata_types.h |
Revision b0a9e48 by Lukas Toenne (alembic, gooseberry, gooseberry_farm, hair_guides, hair_guides_grooming, hair_object, strand_editmode, strand_gpu, strand_nodes, temp_motionpaths, tmp_hair_curves) April 20, 2015, 10:14 (GMT) |
New customdata type for mesh surface samples. Conflicts: source/blender/makesdna/DNA_customdata_types.h |
Revision afb947c by Lukas Toenne (alembic, gooseberry, gooseberry_farm, hair_guides, hair_guides_grooming, hair_object, strand_editmode, strand_gpu, strand_nodes, temp_motionpaths, tmp_hair_curves) April 20, 2015, 10:13 (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). Conflicts: source/blender/blenkernel/intern/customdata.c source/blender/makesdna/DNA_customdata_types.h |
Revision f1e4d35 by Lukas Toenne (alembic, gooseberry, gooseberry_farm, hair_guides, hair_guides_grooming, hair_object, strand_editmode, strand_gpu, strand_nodes, temp_motionpaths, tmp_hair_curves) April 20, 2015, 10:12 (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. |
Revision 1c7053f by Lukas Toenne (alembic, gooseberry, gooseberry_farm, hair_guides, hair_guides_grooming, hair_object, strand_editmode, strand_gpu, strand_nodes, temp_motionpaths, tmp_hair_curves) April 20, 2015, 10:11 (GMT) |
Store hair edit data in particle systems and manage it in the operator for entering/exiting the edit mode. Conflicts: source/blender/blenkernel/intern/particle.c |
Revision 7bb90a0 by Lukas Toenne (alembic, gooseberry, gooseberry_farm, hair_guides, hair_guides_grooming, hair_object, strand_editmode, strand_gpu, strand_nodes, temp_motionpaths, tmp_hair_curves) April 20, 2015, 10:11 (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. Conflicts: source/blender/blenkernel/CMakeLists.txt |
Revision a9001ad by Lukas Toenne (alembic, gooseberry, gooseberry_farm, hair_guides, hair_guides_grooming, hair_object, strand_editmode, strand_gpu, strand_nodes, temp_motionpaths, tmp_hair_curves) April 20, 2015, 10:11 (GMT) |
New edit mode for hair. Conflicts: source/blender/blenloader/intern/readfile.c |
Revision 09a7dbc by Lukas Toenne (alembic, gooseberry, gooseberry_farm, hair_guides, hair_guides_grooming, hair_object, strand_editmode, strand_gpu, strand_nodes, temp_motionpaths, tmp_hair_curves) April 20, 2015, 10:10 (GMT) |
New editor library for hair edit mode. |
Revision 6078e79 by Lukas Toenne (alembic, gooseberry, gooseberry_farm, hair_guides, hair_guides_grooming, hair_object, strand_editmode, strand_gpu, strand_nodes, temp_motionpaths, tmp_hair_curves) April 20, 2015, 10:10 (GMT) |
Minor syntax fix. |
Revision 6783b15 by Lukas Toenne (alembic, gooseberry, gooseberry_farm, hair_guides, hair_guides_grooming, hair_object, strand_editmode, strand_gpu, strand_nodes, temp_motionpaths, tmp_hair_curves) April 20, 2015, 10:10 (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. |
Revision c65f1b2 by Lukas Toenne (alembic, gooseberry, gooseberry_farm, hair_guides, hair_guides_grooming, hair_object, strand_editmode, strand_gpu, strand_nodes, temp_motionpaths, tmp_hair_curves) April 20, 2015, 10:10 (GMT) |
More work on particle conversion methods for hair edit mode. |
Revision dd69a3d by Lukas Toenne (alembic, gooseberry, gooseberry_farm, hair_guides, hair_guides_grooming, hair_object, strand_editmode, strand_gpu, strand_nodes, temp_motionpaths, tmp_hair_curves) April 20, 2015, 10:10 (GMT) |
Finished the particle-to-edit conversion function. |
Revision 308af3b by Lukas Toenne (alembic, gooseberry, gooseberry_farm, hair_guides, hair_guides_grooming, hair_object, strand_editmode, strand_gpu, strand_nodes, temp_motionpaths, tmp_hair_curves) April 20, 2015, 10:10 (GMT) |
Added a bool return to the eval function to give feedback on invalid samples. |
Revision 3f7d66e by Lukas Toenne (alembic, gooseberry, gooseberry_farm, hair_guides, hair_guides_grooming, hair_object, strand_editmode, strand_gpu, strand_nodes, temp_motionpaths, tmp_hair_curves) April 20, 2015, 10:10 (GMT) |
Added a basic RNA definition for the mesh sampling system. |
|