[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [41979] trunk/blender/source/blender/ editors: Camera: some more code deduplication.

Brecht Van Lommel brechtvanlommel at pandora.be
Sat Nov 19 00:32:17 CET 2011


Revision: 41979
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=41979
Author:   blendix
Date:     2011-11-18 23:32:17 +0000 (Fri, 18 Nov 2011)
Log Message:
-----------
Camera: some more code deduplication.

Modified Paths:
--------------
    trunk/blender/source/blender/editors/include/ED_view3d.h
    trunk/blender/source/blender/editors/space_view3d/view3d_edit.c
    trunk/blender/source/blender/editors/space_view3d/view3d_view.c

Modified: trunk/blender/source/blender/editors/include/ED_view3d.h
===================================================================
--- trunk/blender/source/blender/editors/include/ED_view3d.h	2011-11-18 23:32:00 UTC (rev 41978)
+++ trunk/blender/source/blender/editors/include/ED_view3d.h	2011-11-18 23:32:17 UTC (rev 41979)
@@ -206,7 +206,6 @@
 void project_float(struct ARegion *ar, const float vec[3], float adr[2]);
 void project_float_noclip(struct ARegion *ar, const float vec[3], float adr[2]);
 
-void ED_view3d_ob_clip_range_get(struct Object *ob, float *lens, float *clipsta, float *clipend);
 int ED_view3d_clip_range_get(struct View3D *v3d, struct RegionView3D *rv3d, float *clipsta, float *clipend);
 int ED_view3d_viewplane_get(struct View3D *v3d, struct RegionView3D *rv3d, int winxi, int winyi, struct rctf *viewplane, float *clipsta, float *clipend);
 void ED_view3d_ob_project_mat_get(struct RegionView3D *v3d, struct Object *ob, float pmat[4][4]);

Modified: trunk/blender/source/blender/editors/space_view3d/view3d_edit.c
===================================================================
--- trunk/blender/source/blender/editors/space_view3d/view3d_edit.c	2011-11-18 23:32:00 UTC (rev 41978)
+++ trunk/blender/source/blender/editors/space_view3d/view3d_edit.c	2011-11-18 23:32:17 UTC (rev 41979)
@@ -47,6 +47,7 @@
 #include "BLI_rand.h"
 #include "BLI_utildefines.h"
 
+#include "BKE_camera.h"
 #include "BKE_context.h"
 #include "BKE_image.h"
 #include "BKE_library.h"
@@ -3513,8 +3514,12 @@
 {
 	ED_view3d_from_m4(ob->obmat, ofs, quat, dist);
 
-	if (lens) {
-		ED_view3d_ob_clip_range_get(ob, lens, NULL, NULL);
+	if(lens) {
+		CameraParams params;
+
+		camera_params_init(&params);
+		camera_params_from_object(&params, ob);
+		*lens= params.lens;
 	}
 }
 

Modified: trunk/blender/source/blender/editors/space_view3d/view3d_view.c
===================================================================
--- trunk/blender/source/blender/editors/space_view3d/view3d_view.c	2011-11-18 23:32:00 UTC (rev 41978)
+++ trunk/blender/source/blender/editors/space_view3d/view3d_view.c	2011-11-18 23:32:17 UTC (rev 41979)
@@ -104,31 +104,6 @@
 }
 
 
-/* Gets the lens and clipping values from a camera of lamp type object */
-void ED_view3d_ob_clip_range_get(Object *ob, float *lens, float *clipsta, float *clipend)
-{
-	if(ob->type==OB_LAMP ) {
-		Lamp *la = ob->data;
-		if (lens) {
-			float x1, fac;
-			fac= cosf((float)M_PI*la->spotsize/360.0f);
-			x1= saacos(fac);
-			*lens= 16.0f*fac/sinf(x1);
-		}
-		if (clipsta)	*clipsta= la->clipsta;
-		if (clipend)	*clipend= la->clipend;
-	}
-	else if(ob->type==OB_CAMERA) {
-		Camera *cam= ob->data;
-		if (lens)		*lens= cam->lens;
-		if (clipsta)	*clipsta= cam->clipsta;
-		if (clipend)	*clipend= cam->clipend;
-	}
-	else {
-		if (lens)		*lens= 35.0f;
-	}
-}
-
 /* ****************** smooth view operator ****************** */
 /* This operator is one of the 'timer refresh' ones like animation playback */
 
@@ -985,36 +960,15 @@
 /* copies logic of get_view3d_viewplane(), keep in sync */
 int ED_view3d_clip_range_get(View3D *v3d, RegionView3D *rv3d, float *clipsta, float *clipend)
 {
-	int orth= 0;
+	CameraParams params;
 
-	*clipsta= v3d->near;
-	*clipend= v3d->far;
+	camera_params_init(&params);
+	camera_params_from_view3d(&params, v3d, rv3d);
 
-	if(rv3d->persp==RV3D_CAMOB) {
-		if(v3d->camera) {
-			if(v3d->camera->type==OB_LAMP ) {
-				Lamp *la= v3d->camera->data;
-				*clipsta= la->clipsta;
-				*clipend= la->clipend;
-			}
-			else if(v3d->camera->type==OB_CAMERA) {
-				Camera *cam= v3d->camera->data;
-				*clipsta= cam->clipsta;
-				*clipend= cam->clipend;
+	*clipsta= params.clipsta;
+	*clipend= params.clipend;
 
-				if(cam->type==CAM_ORTHO)
-					orth= 1;
-			}
-		}
-	}
-
-	if(rv3d->persp==RV3D_ORTHO) {
-		*clipend *= 0.5f;	// otherwise too extreme low zbuffer quality
-		*clipsta= - *clipend;
-		orth= 1;
-	}
-
-	return orth;
+	return params.is_ortho;
 }
 
 /* also exposed in previewrender.c */




More information about the Bf-blender-cvs mailing list