Commit: af7032e9f056c0ee5968015c64d63bf2d3c18031
Author: Martin Felke
Date:   Mon Jun 17 10:59:55 2019 +0200
Branches: fracture_modifier
https://developer.blender.org/rBaf7032e9f056c0ee5968015c64d63bf2d3c18031

only write rotation data to mesh if particle rotation was enabled

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

M       source/blender/blenkernel/intern/fracture.c
M       source/blender/modifiers/intern/MOD_remesh.c

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

diff --git a/source/blender/blenkernel/intern/fracture.c 
b/source/blender/blenkernel/intern/fracture.c
index 4b458cfd405..4c593f25ac3 100644
--- a/source/blender/blenkernel/intern/fracture.c
+++ b/source/blender/blenkernel/intern/fracture.c
@@ -4249,9 +4249,9 @@ void BKE_read_animated_loc_rot(FractureModifierData *fmd, 
Object *ob, bool do_bi
                                copy_v3_v3(co, mvert[v].co);
                                copy_v3_v3(off, fmd->anim_bind[i].offset);
 
-                               //if (fmd->anim_mesh_rot)
+                               if (fmd->anim_mesh_rot)
                                {
-                                       if (quats && fmd->anim_mesh_rot)
+                                       if (quats)
                                        {
                                                quat[0] = quatX[v];
                                                quat[1] = quatY[v];
@@ -4297,8 +4297,9 @@ void BKE_read_animated_loc_rot(FractureModifierData *fmd, 
Object *ob, bool do_bi
 
                                copy_v3_v3(mi->rigidbody->pos, co);
 
+                           if (fmd->anim_mesh_rot)
                                {
-                                       if (quats && fmd->anim_mesh_rot) {
+                                       if (quats) {
                                                //if rotations are changed, 
re-bind the object to fix
                                                mul_qt_qtqt(quat, ob_quat, 
quat);
                                        }
diff --git a/source/blender/modifiers/intern/MOD_remesh.c 
b/source/blender/modifiers/intern/MOD_remesh.c
index 173d7d16a74..3f5899beb5d 100644
--- a/source/blender/modifiers/intern/MOD_remesh.c
+++ b/source/blender/modifiers/intern/MOD_remesh.c
@@ -265,10 +265,13 @@ static DerivedMesh *repolygonize(RemeshModifierData *rmd, 
Object* ob, DerivedMes
                velY = CustomData_add_layer_named(&dm->vertData, CD_PROP_FLT, 
CD_CALLOC, NULL, n, "velY");
                velZ = CustomData_add_layer_named(&dm->vertData, CD_PROP_FLT, 
CD_CALLOC, NULL, n, "velZ");
 
-               quatX = CustomData_add_layer_named(&dm->vertData, CD_PROP_FLT, 
CD_CALLOC, NULL, n, "quatX");
-               quatY = CustomData_add_layer_named(&dm->vertData, CD_PROP_FLT, 
CD_CALLOC, NULL, n, "quatY");
-               quatZ = CustomData_add_layer_named(&dm->vertData, CD_PROP_FLT, 
CD_CALLOC, NULL, n, "quatZ");
-               quatW = CustomData_add_layer_named(&dm->vertData, CD_PROP_FLT, 
CD_CALLOC, NULL, n, "quatW");
+           if (psys->part->flag & PART_ROTATIONS)
+           {           
+                       quatX = CustomData_add_layer_named(&dm->vertData, 
CD_PROP_FLT, CD_CALLOC, NULL, n, "quatX");
+                       quatY = CustomData_add_layer_named(&dm->vertData, 
CD_PROP_FLT, CD_CALLOC, NULL, n, "quatY");
+                       quatZ = CustomData_add_layer_named(&dm->vertData, 
CD_PROP_FLT, CD_CALLOC, NULL, n, "quatZ");
+                       quatW = CustomData_add_layer_named(&dm->vertData, 
CD_PROP_FLT, CD_CALLOC, NULL, n, "quatW");
+           }
 
                orig_index = CustomData_add_layer(&dm->vertData, CD_ORIGINDEX, 
CD_CALLOC, NULL, n);
 
@@ -281,10 +284,13 @@ static DerivedMesh *repolygonize(RemeshModifierData *rmd, 
Object* ob, DerivedMes
                        velY[i] = vel[i][1];
                        velZ[i] = vel[i][2];
 
-                       quatX[i] = rot[i][0];
-                       quatY[i] = rot[i][1];
-                       quatZ[i] = rot[i][2];
-                       quatW[i] = rot[i][3];
+                       if (quatX)
+                       {
+                               quatX[i] = rot[i][0];
+                               quatY[i] = rot[i][1];
+                               quatZ[i] = rot[i][2];
+                               quatW[i] = rot[i][3];
+                       }
 
                        orig_index[i] = index[i];
                }
@@ -328,11 +334,14 @@ static DerivedMesh *repolygonize(RemeshModifierData *rmd, 
Object* ob, DerivedMes
                velX = CustomData_add_layer_named(&dm->vertData, CD_PROP_FLT, 
CD_CALLOC, NULL, n + derived->numVertData, "velX");
                velY = CustomData_add_layer_named(&dm->vertData, CD_PROP_FLT, 
CD_CALLOC, NULL, n + derived->numVertData, "velY");
                velZ = CustomData_add_layer_named(&dm->vertData, CD_PROP_FLT, 
CD_CALLOC, NULL, n + derived->numVertData, "velZ");
-
-               quatX = CustomData_add_layer_named(&dm->vertData, CD_PROP_FLT, 
CD_CALLOC, NULL, n + derived->numVertData, "quatX");
-               quatY = CustomData_add_layer_named(&dm->vertData, CD_PROP_FLT, 
CD_CALLOC, NULL, n + derived->numVertData, "quatY");
-               quatZ = CustomData_add_layer_named(&dm->vertData, CD_PROP_FLT, 
CD_CALLOC, NULL, n + derived->numVertData, "quatZ");
-               quatW = CustomData_add_layer_named(&dm->vertData, CD_PROP_FLT, 
CD_CALLOC, NULL, n + derived->numVertData, "quatW");
+               
+               if (psys->part->flag & PART_ROTATIONS)
+               {
+                       quatX = CustomData_add_layer_named(&dm->vertData, 
CD_PROP_FLT, CD_CALLOC, NULL, n + derived->numVertData, "quatX");
+                       quatY = CustomData_add_layer_named(&dm->vertData, 
CD_PROP_FLT, CD_CALLOC, NULL, n + derived->numVertData, "quatY");
+                       quatZ = CustomData_add_layer_named(&dm->vertData, 
CD_PROP_FLT, CD_CALLOC, NULL, n + derived->numVertData, "quatZ");
+                       quatW = CustomData_add_layer_named(&dm->vertData, 
CD_PROP_FLT, CD_CALLOC, NULL, n + derived->numVertData, "quatW");
+               }
 
                orig_index = CustomData_add_layer(&dm->vertData, CD_ORIGINDEX, 
CD_CALLOC, NULL, n + derived->numVertData);
 
@@ -362,10 +371,13 @@ static DerivedMesh *repolygonize(RemeshModifierData *rmd, 
Object* ob, DerivedMes
                        velY[i] = vel[i][1];
                        velZ[i] = vel[i][2];
 
-                       quatX[i] = rot[i][0];
-                       quatY[i] = rot[i][1];
-                       quatZ[i] = rot[i][2];
-                       quatW[i] = rot[i][3];
+                       if (quatX)
+                       {
+                               quatX[i] = rot[i][0];
+                               quatY[i] = rot[i][1];
+                               quatZ[i] = rot[i][2];
+                               quatW[i] = rot[i][3];
+                       }
 
                        orig_index[i] = index[i];
 
@@ -384,10 +396,13 @@ static DerivedMesh *repolygonize(RemeshModifierData *rmd, 
Object* ob, DerivedMes
                        velY[i] = ovY ? ovY[i-n] : 0.0f;
                        velZ[i] = ovZ ? ovZ[i-n] : 0.0f;
 
-                       quatX[i] = oqX ? oqX[i-n] : 1.0f;
-                       quatZ[i] = oqY ? oqY[i-n] : 0.0f;
-                       quatY[i] = oqZ ? oqZ[i-n] : 0.0f;
-                       quatW[i] = oqW ? oqW[i-n] : 0.0f;
+                       if (quatX)
+                       {
+                               quatX[i] = oqX ? oqX[i-n] : 1.0f;
+                               quatZ[i] = oqY ? oqY[i-n] : 0.0f;
+                               quatY[i] = oqZ ? oqZ[i-n] : 0.0f;
+                               quatW[i] = oqW ? oqW[i-n] : 0.0f;
+                       }
 
                        orig_index[i] = i;
                        if (dvert_new && dvert && defgrp_size > -1)

_______________________________________________
Bf-blender-cvs mailing list
[email protected]
https://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to