[Bf-blender-cvs] [6f8ae59d053] hair_object: Add vertex, curve, and follicle base data layers by default.

Lukas Tönne noreply at git.blender.org
Sun Nov 25 10:51:24 CET 2018


Commit: 6f8ae59d0537f76d06ac7fbd9eb8ecdbdee6c6cc
Author: Lukas Tönne
Date:   Sun Nov 25 09:50:08 2018 +0000
Branches: hair_object
https://developer.blender.org/rB6f8ae59d0537f76d06ac7fbd9eb8ecdbdee6c6cc

Add vertex, curve, and follicle base data layers by default.

===================================================================

M	source/blender/blenkernel/intern/hair.c

===================================================================

diff --git a/source/blender/blenkernel/intern/hair.c b/source/blender/blenkernel/intern/hair.c
index 28b6a50a1de..d1b5cefddc3 100644
--- a/source/blender/blenkernel/intern/hair.c
+++ b/source/blender/blenkernel/intern/hair.c
@@ -183,16 +183,24 @@ HairSystem *BKE_hair_copy(Main *bmain, const HairSystem *hsys)
 }
 
 /* Custom data layer functions; those assume that totXXX are set correctly. */
-static void hair_ensure_cdlayers_primary(HairSystem *hsys)
+static void hair_ensure_cdlayers_primary(HairCurveData *data)
 {
-	// if (!CustomData_get_layer(&hsys->curve_data.fdata, CD_MVERT))
-	// 	CustomData_add_layer(&mesh->vdata, CD_MVERT, CD_CALLOC, NULL, mesh->totvert);
+	if (!CustomData_get_layer(&data->vdata, CD_HAIRVERT))
+		CustomData_add_layer(&data->vdata, CD_HAIRVERT, CD_CALLOC, NULL, data->totverts);
+	if (!CustomData_get_layer(&data->cdata, CD_HAIRCURVE))
+		CustomData_add_layer(&data->cdata, CD_HAIRCURVE, CD_CALLOC, NULL, data->totcurves);
+	if (!CustomData_get_layer(&data->fdata, CD_HAIRFOLLICLE))
+		CustomData_add_layer(&data->fdata, CD_HAIRFOLLICLE, CD_CALLOC, NULL, data->totfollicles);
 }
 
-static void hair_ensure_cdlayers_origindex(HairSystem *hsys)
+static void hair_ensure_cdlayers_origindex(HairCurveData *data)
 {
-	// if (!CustomData_get_layer(&mesh->vdata, CD_ORIGINDEX))
-	// 	CustomData_add_layer(&mesh->vdata, CD_ORIGINDEX, CD_CALLOC, NULL, mesh->totvert);
+	if (!CustomData_get_layer(&data->vdata, CD_ORIGINDEX))
+		CustomData_add_layer(&data->vdata, CD_ORIGINDEX, CD_CALLOC, NULL, data->totverts);
+	if (!CustomData_get_layer(&data->cdata, CD_ORIGINDEX))
+		CustomData_add_layer(&data->cdata, CD_ORIGINDEX, CD_CALLOC, NULL, data->totcurves);
+	if (!CustomData_get_layer(&data->fdata, CD_ORIGINDEX))
+		CustomData_add_layer(&data->fdata, CD_ORIGINDEX, CD_CALLOC, NULL, data->totfollicles);
 }
 
 HairSystem *BKE_hair_new_nomain(int verts_len, int curves_len, int follicles_len)
@@ -214,8 +222,8 @@ HairSystem *BKE_hair_new_nomain(int verts_len, int curves_len, int follicles_len
 	hsys->curve_data.totcurves = curves_len;
 	hsys->curve_data.totfollicles = follicles_len;
 
-	hair_ensure_cdlayers_primary(hsys);
-	hair_ensure_cdlayers_origindex(hsys);
+	hair_ensure_cdlayers_primary(&hsys->curve_data);
+	hair_ensure_cdlayers_origindex(&hsys->curve_data);
 
 	return hsys;
 }
@@ -239,8 +247,8 @@ static HairSystem *hair_new_nomain_from_template_ex(
 
 	/* The destination hair system should at least have valid primary CD layers,
 	 * even in cases where the source hair system does not. */
-	hair_ensure_cdlayers_primary(hsys_dst);
-	hair_ensure_cdlayers_origindex(hsys_dst);
+	hair_ensure_cdlayers_primary(&hsys_dst->curve_data);
+	hair_ensure_cdlayers_origindex(&hsys_dst->curve_data);
 
 	return hsys_dst;
 }



More information about the Bf-blender-cvs mailing list