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
path: root/source
diff options
context:
space:
mode:
authorTon Roosendaal <ton@blender.org>2005-02-25 22:01:13 +0300
committerTon Roosendaal <ton@blender.org>2005-02-25 22:01:13 +0300
commit76500cd1ed76267d0e189e8de2c0e9534362c570 (patch)
tree3a1e4e4d12a1c036a28be7b9cd38289283a333bf /source
parentbca210bc04ca74beb658e1a261b65d095235f503 (diff)
Transform; correct inverse parent implementation for translating children
Diffstat (limited to 'source')
-rwxr-xr-xsource/blender/src/transform.c18
1 files changed, 8 insertions, 10 deletions
diff --git a/source/blender/src/transform.c b/source/blender/src/transform.c
index 54586e3c185..28b4be809d4 100755
--- a/source/blender/src/transform.c
+++ b/source/blender/src/transform.c
@@ -155,7 +155,6 @@ void createTransTexspace(void)
Object *ob;
ID *id;
-
ob= OBACT;
Trans.total = 1;
td= Trans.data= MEM_callocN(sizeof(TransData), "TransTexspace");
@@ -840,17 +839,16 @@ static void ObjectToTransData(TransData *td, Object *ob)
Mat3CpyMat4(td->mtx, ob->obmat);
- object_to_mat3(ob, obmtx);
-
- /*
- Mat3CpyMat4(totmat, ob->obmat);
- Mat3Inv(obinv, totmat);
- Mat3MulMat3(td->smtx, obmtx, obinv);
- */
if (ob->parent)
{
- Mat3CpyMat4(td->mtx, ob->parent->obmat);
- Mat3Inv(td->smtx, td->mtx);
+ float totmat[3][3], obinv[3][3];
+
+ /* we calculate smtx without obmat: so a parmat */
+ object_to_mat3(ob, obmtx);
+ Mat3CpyMat4(totmat, ob->obmat);
+ Mat3Inv(obinv, totmat);
+ Mat3MulMat3(td->smtx, obmtx, obinv);
+ Mat3Inv(td->mtx, td->smtx);
}
else
{