diff options
Diffstat (limited to 'source/blender/editors/object/object_modifier.c')
-rw-r--r-- | source/blender/editors/object/object_modifier.c | 39 |
1 files changed, 22 insertions, 17 deletions
diff --git a/source/blender/editors/object/object_modifier.c b/source/blender/editors/object/object_modifier.c index bd88330498a..2099ceaa10b 100644 --- a/source/blender/editors/object/object_modifier.c +++ b/source/blender/editors/object/object_modifier.c @@ -2387,29 +2387,34 @@ static void fur_create_guide_curves(struct HairSystem *hsys, unsigned int seed, { MeshSample *buffer = MEM_mallocN(sizeof(MeshSample) * count, "mesh sample buffer"); int totguides = BKE_mesh_sample_generate_batch(gen, buffer, count); - int totverts = 2 * totguides; // TODO - BKE_hair_guide_curves_begin(hsys, totguides, totverts); - - MeshSample *sample = buffer; - int vertstart = 0; - for (int i = 0; i < totguides; ++i, ++sample) { - int numverts = 2; // TODO - - BKE_hair_set_guide_curve(hsys, i, sample, numverts); - - float co[3], nor[3], tang[3]; - BKE_mesh_sample_eval(scalp, sample, co, nor, tang); - BKE_hair_set_guide_vertex(hsys, vertstart, 0, co); + BKE_hair_guide_curves_begin(hsys, totguides); - madd_v3_v3fl(co, nor, 0.1f); - BKE_hair_set_guide_vertex(hsys, vertstart + 1, 0, co); + MeshSample *sample = buffer; + for (int i = 0; i < totguides; ++i, ++sample) + { + BKE_hair_set_guide_curve(hsys, i, sample, 2); + } - vertstart += numverts; + BKE_hair_guide_curves_end(hsys); } - BKE_hair_guide_curves_end(hsys); + { + int vertstart = 0; + MeshSample *sample = buffer; + for (int i = 0; i < totguides; ++i, ++sample) + { + float co[3], nor[3], tang[3]; + BKE_mesh_sample_eval(scalp, sample, co, nor, tang); + BKE_hair_set_guide_vertex(hsys, vertstart, 0, co); + + madd_v3_v3fl(co, nor, 0.1f); + BKE_hair_set_guide_vertex(hsys, vertstart + 1, 0, co); + + vertstart += 2; + } + } MEM_freeN(buffer); } |