Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoshua Leung <aligorith@gmail.com>2013-11-18 05:02:49 +0400
committerJoshua Leung <aligorith@gmail.com>2013-11-18 05:02:49 +0400
commitcee7fbdfaa647dd05a49b8450227b8c9a12e80a0 (patch)
treed7c6a9f6c89210dd21052bea46eac20be1769b64 /source/blender/modifiers/intern
parente806e5ce3797e88733161858a35e2c718d82187a (diff)
Fix T37413 - Fit-Curve option for Array Modifier ignores constraint results
Unless I'm missing something here (probably with regards to parenting), it makes more sense that constraint results are considered here as well (for example, if Limit Scale constraints get applied on the object), as this allows for greater flexibility when creating setups with this.
Diffstat (limited to 'source/blender/modifiers/intern')
-rw-r--r--source/blender/modifiers/intern/MOD_array.c10
1 files changed, 3 insertions, 7 deletions
diff --git a/source/blender/modifiers/intern/MOD_array.c b/source/blender/modifiers/intern/MOD_array.c
index 7c47fd5862e..bc38b0e030b 100644
--- a/source/blender/modifiers/intern/MOD_array.c
+++ b/source/blender/modifiers/intern/MOD_array.c
@@ -384,18 +384,14 @@ static DerivedMesh *arrayModifier_doArray(ArrayModifierData *amd,
if (amd->fit_type == MOD_ARR_FITCURVE && amd->curve_ob) {
Curve *cu = amd->curve_ob->data;
if (cu) {
- float tmp_mat[3][3];
- float scale;
-
- BKE_object_to_mat3(amd->curve_ob, tmp_mat);
- scale = mat3_to_scale(tmp_mat);
-
if (!amd->curve_ob->curve_cache || !amd->curve_ob->curve_cache->path) {
cu->flag |= CU_PATH; // needed for path & bevlist
BKE_displist_make_curveTypes(scene, amd->curve_ob, 0);
}
- if (amd->curve_ob->curve_cache->path)
+ if (amd->curve_ob->curve_cache->path) {
+ float scale = mat4_to_scale(amd->curve_ob->obmat);
length = scale * amd->curve_ob->curve_cache->path->totdist;
+ }
}
}