edits ontop of Alex's patch from r41292.
[blender.git] / source / blender / blenkernel / intern / object.c
index c9bad57..819a982 100644 (file)
@@ -1,8 +1,4 @@
-/* object.c
- *
- * 
- * $Id$
- *
+/*
  * ***** BEGIN GPL LICENSE BLOCK *****
  *
  * This program is free software; you can redistribute it and/or
@@ -760,9 +756,7 @@ void make_local_camera(Camera *cam)
        
        if(cam->id.lib==NULL) return;
        if(cam->id.us==1) {
-               cam->id.lib= NULL;
-               cam->id.flag= LIB_LOCAL;
-               new_id(&bmain->camera, (ID *)cam, NULL);
+               id_clear_lib_data(bmain, (ID *)cam);
                return;
        }
        
@@ -774,9 +768,7 @@ void make_local_camera(Camera *cam)
        }
        
        if(local && lib==0) {
-               cam->id.lib= NULL;
-               cam->id.flag= LIB_LOCAL;
-               new_id(&bmain->camera, (ID *)cam, NULL);
+               id_clear_lib_data(bmain, (ID *)cam);
        }
        else if(local && lib) {
                Camera *camn= copy_camera(cam);
@@ -925,9 +917,7 @@ void make_local_lamp(Lamp *la)
        
        if(la->id.lib==NULL) return;
        if(la->id.us==1) {
-               la->id.lib= NULL;
-               la->id.flag= LIB_LOCAL;
-               new_id(&bmain->lamp, (ID *)la, NULL);
+               id_clear_lib_data(bmain, (ID *)la);
                return;
        }
        
@@ -941,9 +931,7 @@ void make_local_lamp(Lamp *la)
        }
        
        if(local && lib==0) {
-               la->id.lib= NULL;
-               la->id.flag= LIB_LOCAL;
-               new_id(&bmain->lamp, (ID *)la, NULL);
+               id_clear_lib_data(bmain, (ID *)la);
        }
        else if(local && lib) {
                lan= copy_lamp(la);
@@ -1472,9 +1460,8 @@ void make_local_object(Object *ob)
        ob->proxy= ob->proxy_from= NULL;
        
        if(ob->id.us==1) {
-               ob->id.lib= NULL;
-               ob->id.flag= LIB_LOCAL;
-               new_id(&bmain->object, (ID *)ob, NULL);
+               id_clear_lib_data(bmain, (ID *)ob);
+               extern_local_object(ob);
        }
        else {
                for(sce= bmain->scene.first; sce && ELEM(0, lib, local); sce= sce->id.next) {
@@ -1485,9 +1472,8 @@ void make_local_object(Object *ob)
                }
 
                if(local && lib==0) {
-                       ob->id.lib= NULL;
-                       ob->id.flag= LIB_LOCAL;
-                       new_id(&bmain->object, (ID *)ob, NULL);
+                       id_clear_lib_data(bmain, (ID *)ob);
+                       extern_local_object(ob);
                }
                else if(local && lib) {
                        Object *obn= copy_object(ob);
@@ -1510,8 +1496,6 @@ void make_local_object(Object *ob)
                        }
                }
        }
-       
-       extern_local_object(ob);
 }
 
 /*
@@ -1649,7 +1633,7 @@ void object_make_proxy(Object *ob, Object *target, Object *gob)
        if(ob->matbits) MEM_freeN(ob->matbits);
        ob->mat = NULL;
        ob->matbits= NULL;
-       if ((target->totcol) && (target->mat) && ELEM5(ob->type, OB_MESH, OB_CURVE, OB_SURF, OB_FONT, OB_MBALL)) { //XXX OB_SUPPORT_MATERIAL
+       if ((target->totcol) && (target->mat) && OB_TYPE_SUPPORT_MATERIAL(ob->type)) {
                int i;
                ob->colbits = target->colbits;
                
@@ -3060,14 +3044,13 @@ void object_camera_matrix(
 void camera_view_frame_ex(Scene *scene, Camera *camera, float drawsize, const short do_clip, const float scale[3],
                           float r_asp[2], float r_shift[2], float *r_drawsize, float r_vec[4][3])
 {
-       float aspx, aspy;
        float facx, facy;
        float depth;
 
        /* aspect correcton */
        if (scene) {
-               aspx= (float) scene->r.xsch*scene->r.xasp;
-               aspy= (float) scene->r.ysch*scene->r.yasp;
+               float aspx= (float) scene->r.xsch*scene->r.xasp;
+               float aspy= (float) scene->r.ysch*scene->r.yasp;
 
                if(aspx < aspy) {
                        r_asp[0]= aspx / aspy;
@@ -3079,8 +3062,6 @@ void camera_view_frame_ex(Scene *scene, Camera *camera, float drawsize, const sh
                }
        }
        else {
-               aspx= 1.0f;
-               aspy= 1.0f;
                r_asp[0]= 1.0f;
                r_asp[1]= 1.0f;
        }
@@ -3122,7 +3103,7 @@ void camera_view_frame_ex(Scene *scene, Camera *camera, float drawsize, const sh
        r_vec[3][0]= r_shift[0] - facx; r_vec[3][1]= r_shift[1] + facy; r_vec[3][2]= depth;
 }
 
-void camera_frame(Scene *scene, Camera *camera, float r_vec[4][3])
+void camera_view_frame(Scene *scene, Camera *camera, float r_vec[4][3])
 {
        float dummy_asp[2];
        float dummy_shift[2];