Fixes, after bug report Stefano:
authorTon Roosendaal <ton@blender.org>
Sat, 11 Dec 2004 12:41:51 +0000 (12:41 +0000)
committerTon Roosendaal <ton@blender.org>
Sat, 11 Dec 2004 12:41:51 +0000 (12:41 +0000)
- Dupli-Frames objects didn't render correct with Motion Blur (they moved!)
- VertexKey on Bezier paths didn't animate the 'twist' rotation. This did
  work for Nurbs paths.

Plus; removed Nabla slider from Stucci, it doesn't work for that texture.

source/blender/blenkernel/intern/key.c
source/blender/blenkernel/intern/object.c
source/blender/makesdna/DNA_curve_types.h
source/blender/src/buttons_shading.c
source/blender/src/editkey.c

index 12c236b0238cccedfdfacd2ca0e0d1477595197b..3b54072bd1204e49358b702b92ac3b9a346396fa 100644 (file)
@@ -841,6 +841,7 @@ void do_key(int start, int end, int tot, char *poin, Key *key, KeyBlock **k, flo
                                break;
                        case IPO_BEZTRIPLE:
                                flerp(9, (void *)poin, (void *)k1, (void *)k2, (void *)k3, (void *)k4, t);
+                               flerp(1, (float *)(poin+36), (float *)(k1+36), (float *)(k2+36), (float *)(k3+36), (float *)(k4+36), t);
                                poin+= ofsp[0];                         
 
                                break;
index 2dc8b67a5409c988fc26752e42282b7fc748e182..784abcffc6a83e5f354b31b7fb362c691e8e3abf 100644 (file)
@@ -896,6 +896,7 @@ void disable_speed_curve(int val)
        no_speed_curve= val;
 }
 
+/* ob can be NULL */
 float bsystem_time(Object *ob, Object *par, float cfra, float ofs)
 {
        /* returns float ( see frame_to_float in ipo.c) */
@@ -907,11 +908,15 @@ float bsystem_time(Object *ob, Object *par, float cfra, float ofs)
                if(R.r.mode & R_FIELDSTILL); else cfra+= .5;
        }
 
-       /* motion blur */
-       cfra+= bluroffs;
 
-       /* global time */
-       cfra*= G.scene->r.framelen;     
+       if(ob && (ob->flag & OB_FROMDUPLI));
+       else {
+                       /* motion blur */
+               cfra+= bluroffs;
+       
+               /* global time */
+               cfra*= G.scene->r.framelen;     
+       }
        
        /* ofset frames */
        if(ob && (ob->ipoflag & OB_OFFS_PARENT)) {
index bdf91f35a2f01cd87ca3b26054f49c32739fe3b7..69ee9851cd7cb5b5133b7ff10828c755f763d347 100644 (file)
@@ -70,7 +70,7 @@ typedef struct BevPoint {
        short f1, f2;
 } BevPoint;
 
-
+/* note; alfa location in struct is abused by Key system */
 typedef struct BezTriple {
        float vec[3][3];
        float alfa;
@@ -79,6 +79,7 @@ typedef struct BezTriple {
        char f1, f2, f3, hide;
 } BezTriple;
 
+/* note; alfa location in struct is abused by Key system */
 typedef struct BPoint {
        float vec[4];
        float alfa;
index e5faa6627ce79c957d17c578e26039ae2493dad3..1a935c20a107e5d74d0b46a3df96da9942b0e16c 100644 (file)
@@ -923,7 +923,8 @@ static void texture_panel_stucci(Tex *tex)
        /* newnoise: noisebasis menu */
        uiDefBut(block, LABEL, 0, "Noise Basis",                10, 30, 150, 19, 0, 0.0, 0.0, 0, 0, "");
        uiDefButS(block, MENU, B_TEXPRV, noisebasis_menu(),     10, 10, 150, 19, &tex->noisebasis, 0,0,0,0, "Sets the noise basis used for turbulence");
-       uiDefButF(block, NUM, B_NOP, "Nabla: ",                 160, 10, 150, 19, &tex->nabla, 0.001, 0.1, 1, 0, "Defines size of derivative offset used for calculating normal");      
+       // note, nabla not supported here!
+//     uiDefButF(block, NUM, B_NOP, "Nabla: ",                 160, 10, 150, 19, &tex->nabla, 0.001, 0.1, 1, 0, "Defines size of derivative offset used for calculating normal");      
 
 }
 
index babf1106287de361af2cf70704a9924b3d68bb72..03e1496c25cf421d334c8b589a94e3407fe3bb39 100644 (file)
@@ -532,6 +532,7 @@ void curve_to_key(Curve *cu, KeyBlock *kb, ListBase *nurb)
                                fp+= 3;
                                VECCOPY(fp, bezt->vec[2]);
                                fp+= 3;
+                               fp[0]= bezt->alfa;
                                fp+= 3; /* alphas */
                                bezt++;
                        }
@@ -578,8 +579,9 @@ void key_to_curve(KeyBlock *kb, Curve  *cu, ListBase *nurb)
                                fp+= 3;
                                VECCOPY(bezt->vec[2], fp);
                                fp+= 3;
+                               bezt->alfa= fp[0];
                                fp+= 3; /* alphas */
-                               
+                       
                                tot-= 3;
                                bezt++;
                        }