merge with/from trunk at r35190
[blender.git] / source / blender / blenkernel / intern / curve.c
index b5550768e55cf5b4809f25dd41f41074688e5630..67e988249f599a8356cd765e95cb9bb5452f99eb 100644 (file)
@@ -47,6 +47,7 @@
 #include "DNA_key_types.h"  
 #include "DNA_scene_types.h"  
 #include "DNA_vfont_types.h"  
+#include "DNA_meshdata_types.h"  
 #include "DNA_object_types.h"
 
 #include "BKE_animsys.h"
@@ -59,7 +60,7 @@
 #include "BKE_library.h"  
 #include "BKE_main.h"  
 #include "BKE_object.h"  
-#include "BKE_utildefines.h"  // VECCOPY
+
 
 #include "ED_curve.h"
 
@@ -174,7 +175,7 @@ Curve *copy_curve(Curve *cu)
        int a;
        
        cun= copy_libblock(cu);
-       cun->nurb.first= cun->nurb.last= 0;
+       cun->nurb.first= cun->nurb.last= NULL;
        duplicateNurblist( &(cun->nurb), &(cu->nurb));
 
        cun->mat= MEM_dupallocN(cu->mat);
@@ -190,9 +191,9 @@ Curve *copy_curve(Curve *cu)
        cun->key= copy_key(cu->key);
        if(cun->key) cun->key->from= (ID *)cun;
        
-       cun->disp.first= cun->disp.last= 0;
-       cun->bev.first= cun->bev.last= 0;
-       cun->path= 0;
+       cun->disp.first= cun->disp.last= NULL;
+       cun->bev.first= cun->bev.last= NULL;
+       cun->path= NULL;
 
        cun->editnurb= NULL;
        cun->editfont= NULL;
@@ -212,7 +213,7 @@ Curve *copy_curve(Curve *cu)
 
 void make_local_curve(Curve *cu)
 {
-       Object *ob = 0;
+       Object *ob = NULL;
        Curve *cun;
        int local=0, lib=0;
        
@@ -221,7 +222,7 @@ void make_local_curve(Curve *cu)
         * - mixed: do a copy
         */
        
-       if(cu->id.lib==0) return;
+       if(cu->id.lib==NULL) return;
 
        if(cu->vfont) cu->vfont->id.lib= NULL;
        if(cu->vfontb) cu->vfontb->id.lib= NULL;
@@ -229,9 +230,9 @@ void make_local_curve(Curve *cu)
        if(cu->vfontbi) cu->vfontbi->id.lib= NULL;
 
        if(cu->id.us==1) {
-               cu->id.lib= 0;
+               cu->id.lib= NULL;
                cu->id.flag= LIB_LOCAL;
-               new_id(0, (ID *)cu, 0);
+               new_id(NULL, (ID *)cu, NULL);
                return;
        }
        
@@ -245,9 +246,9 @@ void make_local_curve(Curve *cu)
        }
        
        if(local && lib==0) {
-               cu->id.lib= 0;
+               cu->id.lib= NULL;
                cu->id.flag= LIB_LOCAL;
-               new_id(0, (ID *)cu, 0);
+               new_id(NULL, (ID *)cu, NULL);
        }
        else if(local && lib) {
                cun= copy_curve(cu);
@@ -257,7 +258,7 @@ void make_local_curve(Curve *cu)
                while(ob) {
                        if(ob->data==cu) {
                                
-                               if(ob->id.lib==0) {
+                               if(ob->id.lib==NULL) {
                                        ob->data= cun;
                                        cun->id.us++;
                                        cu->id.us--;
@@ -381,12 +382,12 @@ int count_curveverts_without_handles(ListBase *nurb)
 void freeNurb(Nurb *nu)
 {
 
-       if(nu==0) return;
+       if(nu==NULL) return;
 
        if(nu->bezt) MEM_freeN(nu->bezt);
-       nu->bezt= 0;
+       nu->bezt= NULL;
        if(nu->bp) MEM_freeN(nu->bp);
-       nu->bp= 0;
+       nu->bp= NULL;
        if(nu->knotsu) MEM_freeN(nu->knotsu);
        nu->knotsu= NULL;
        if(nu->knotsv) MEM_freeN(nu->knotsv);
@@ -402,7 +403,7 @@ void freeNurblist(ListBase *lb)
 {
        Nurb *nu, *next;
 
-       if(lb==0) return;
+       if(lb==NULL) return;
 
        nu= lb->first;
        while(nu) {
@@ -410,7 +411,7 @@ void freeNurblist(ListBase *lb)
                freeNurb(nu);
                nu= next;
        }
-       lb->first= lb->last= 0;
+       lb->first= lb->last= NULL;
 }
 
 Nurb *duplicateNurb(Nurb *nu)
@@ -419,7 +420,7 @@ Nurb *duplicateNurb(Nurb *nu)
        int len;
 
        newnu= (Nurb*)MEM_mallocN(sizeof(Nurb),"duplicateNurb");
-       if(newnu==0) return 0;
+       if(newnu==NULL) return NULL;
        memcpy(newnu, nu, sizeof(Nurb));
 
        if(nu->bezt) {
@@ -615,7 +616,7 @@ static void makecyclicknots(float *knots, short pnts, short order)
 {
        int a, b, order2, c;
 
-       if(knots==0) return;
+       if(knots==NULL) return;
 
        order2=order-1;
 
@@ -918,7 +919,7 @@ void makeNurbcurve(Nurb *nu, float *coord_array, float *tilt_array, float *radiu
 
        if(nu->knotsu==NULL) return;
        if(nu->orderu>nu->pntsu) return;
-       if(coord_array==0) return;
+       if(coord_array==NULL) return;
 
        /* allocate and initialize */
        len= nu->pntsu;
@@ -1269,7 +1270,7 @@ void makebevelcurve(Scene *scene, Object *ob, ListBase *disp, int forRender)
                                dl= bevdisp.first;
                        } else {
                                dl= cu->bevobj->disp.first;
-                               if(dl==0) {
+                               if(dl==NULL) {
                                        makeDispListCurveTypes(scene, cu->bevobj, 0);
                                        dl= cu->bevobj->disp.first;
                                }
@@ -1746,7 +1747,7 @@ static void bevel_list_smooth(BevList *bl, int smooth_iter)
 
                if(bl->poly== -1) { /* check its not cyclic */
                        /* skip the first point */
-                       bevp0= bevp1;
+                       /* bevp0= bevp1; */
                        bevp1= bevp2;
                        bevp2++;
                        nr--;
@@ -1777,7 +1778,7 @@ static void bevel_list_smooth(BevList *bl, int smooth_iter)
                        normalize_qt(bevp1->quat);
 
 
-                       bevp0= bevp1;
+                       /* bevp0= bevp1; */ /* UNUSED */
                        bevp1= bevp2;
                        bevp2++;
                }
@@ -1811,8 +1812,6 @@ static void make_bevel_list_3D_minimum_twist(BevList *bl)
        int nr;
        float q[4];
 
-       float cross_tmp[3];
-
        bevel_list_calc_bisect(bl);
 
        bevp2= (BevPoint *)(bl+1);
@@ -1829,6 +1828,7 @@ static void make_bevel_list_3D_minimum_twist(BevList *bl)
                        float angle= angle_normalized_v3v3(bevp0->dir, bevp1->dir);
 
                        if(angle > 0.0f) { /* otherwise we can keep as is */
+                               float cross_tmp[3];
                                cross_v3_v3v3(cross_tmp, bevp0->dir, bevp1->dir);
                                axis_angle_to_quat(q, cross_tmp, angle);
                                mul_qt_qtqt(bevp1->quat, q, bevp0->quat);
@@ -1956,7 +1956,7 @@ static void make_bevel_list_3D_tangent(BevList *bl)
                normalize_v3(cross_tmp);
                tri_to_quat( bevp1->quat,zero, cross_tmp, bevp1->tan); /* XXX - could be faster */
 
-               bevp0= bevp1;
+               /* bevp0= bevp1; */ /* UNUSED */
                bevp1= bevp2;
                bevp2++;
        }
@@ -2426,7 +2426,7 @@ void calchandleNurb(BezTriple *bezt, BezTriple *prev, BezTriple *next, int mode)
 
        p2= bezt->vec[1];
 
-       if(prev==0) {
+       if(prev==NULL) {
                p3= next->vec[1];
                pt[0]= 2*p2[0]- p3[0];
                pt[1]= 2*p2[1]- p3[1];
@@ -2435,7 +2435,7 @@ void calchandleNurb(BezTriple *bezt, BezTriple *prev, BezTriple *next, int mode)
        }
        else p1= prev->vec[1];
 
-       if(next==0) {
+       if(next==NULL) {
                pt[0]= 2*p2[0]- p1[0];
                pt[1]= 2*p2[1]- p1[1];
                pt[2]= 2*p2[2]- p1[2];
@@ -2616,7 +2616,7 @@ void calchandlesNurb(Nurb *nu) /* first, if needed, set handle flags */
        a= nu->pntsu;
        bezt= nu->bezt;
        if(nu->flagu & CU_NURB_CYCLIC) prev= bezt+(a-1);
-       else prev= 0;
+       else prev= NULL;
        next= bezt+1;
 
        while(a--) {
@@ -2624,7 +2624,7 @@ void calchandlesNurb(Nurb *nu) /* first, if needed, set handle flags */
                prev= bezt;
                if(a==1) {
                        if(nu->flagu & CU_NURB_CYCLIC) next= nu->bezt;
-                       else next= 0;
+                       else next= NULL;
                }
                else next++;
 
@@ -2683,7 +2683,7 @@ void autocalchandlesNurb(Nurb *nu, int flag)
        BezTriple *bezt2, *bezt1, *bezt0;
        int i, align, leftsmall, rightsmall;
 
-       if(nu==0 || nu->bezt==0) return;
+       if(nu==NULL || nu->bezt==NULL) return;
        
        bezt2 = nu->bezt;
        bezt1 = bezt2 + (nu->pntsu-1);