From ffde74a878882618ab4d4179ba8dd9b98aab15e2 Mon Sep 17 00:00:00 2001 From: Sergey Sharybin Date: Wed, 14 Feb 2018 14:33:53 +0100 Subject: Simple hair children: Initial implementation of twist control It allows to have children hair to be twisted around parent curve, which is quite an essential feature when creating hair braids. There are currently two controls: - Number of turns around parent children. - Influence curve, which allows to modify "twistness" along the strand. --- source/blender/blenloader/intern/readfile.c | 3 +++ source/blender/blenloader/intern/writefile.c | 3 +++ 2 files changed, 6 insertions(+) (limited to 'source/blender/blenloader/intern') diff --git a/source/blender/blenloader/intern/readfile.c b/source/blender/blenloader/intern/readfile.c index 2a25de121b3..9aa67e8651f 100644 --- a/source/blender/blenloader/intern/readfile.c +++ b/source/blender/blenloader/intern/readfile.c @@ -4253,6 +4253,9 @@ static void direct_link_particlesettings(FileData *fd, ParticleSettings *part) part->roughcurve = newdataadr(fd, part->roughcurve); if (part->roughcurve) direct_link_curvemapping(fd, part->roughcurve); + part->twistcurve = newdataadr(fd, part->twistcurve); + if (part->twistcurve) + direct_link_curvemapping(fd, part->twistcurve); part->effector_weights = newdataadr(fd, part->effector_weights); if (!part->effector_weights) diff --git a/source/blender/blenloader/intern/writefile.c b/source/blender/blenloader/intern/writefile.c index ceb1233596a..5941f96041c 100644 --- a/source/blender/blenloader/intern/writefile.c +++ b/source/blender/blenloader/intern/writefile.c @@ -1304,6 +1304,9 @@ static void write_particlesettings(WriteData *wd, ParticleSettings *part) if (part->roughcurve) { write_curvemapping(wd, part->roughcurve); } + if (part->twistcurve) { + write_curvemapping(wd, part->twistcurve); + } for (ParticleDupliWeight *dw = part->dupliweights.first; dw; dw = dw->next) { /* update indices, but only if dw->ob is set (can be NULL after loading e.g.) */ -- cgit v1.2.3