diff options
author | Campbell Barton <ideasman42@gmail.com> | 2010-04-17 12:55:31 +0400 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2010-04-17 12:55:31 +0400 |
commit | 3afd8d6cc859255d0b52081fbee91b6c6a012b4c (patch) | |
tree | 262281013dbad763f94e4f3cd83d414aa24dd0bf | |
parent | c00e7fb89dc6f44b74036256e55e00e9287b67db (diff) |
move camera lens/angle conversion to BLI_math
-rw-r--r-- | source/blender/blenkernel/BKE_object.h | 2 | ||||
-rw-r--r-- | source/blender/blenkernel/intern/object.c | 11 | ||||
-rw-r--r-- | source/blender/blenlib/BLI_math_rotation.h | 3 | ||||
-rw-r--r-- | source/blender/blenlib/intern/math_rotation.c | 10 | ||||
-rw-r--r-- | source/blender/blenlib/intern/uvproject.c | 5 | ||||
-rw-r--r-- | source/blender/blenloader/intern/readfile.c | 1 | ||||
-rw-r--r-- | source/blender/makesrna/intern/rna_camera.c | 6 |
7 files changed, 17 insertions, 21 deletions
diff --git a/source/blender/blenkernel/BKE_object.h b/source/blender/blenkernel/BKE_object.h index 9930ad175a7..07c3da48792 100644 --- a/source/blender/blenkernel/BKE_object.h +++ b/source/blender/blenkernel/BKE_object.h @@ -77,8 +77,6 @@ void *add_camera(char *name); struct Camera *copy_camera(struct Camera *cam); void make_local_camera(struct Camera *cam); float dof_camera(struct Object *ob); -float camera_get_angle(struct Camera *cam); -void camera_set_angle(struct Camera *cam, float angle); void *add_lamp(char *name); struct Lamp *copy_lamp(struct Lamp *la); diff --git a/source/blender/blenkernel/intern/object.c b/source/blender/blenkernel/intern/object.c index f05239057b9..6939ff02a47 100644 --- a/source/blender/blenkernel/intern/object.c +++ b/source/blender/blenkernel/intern/object.c @@ -773,17 +773,6 @@ float dof_camera(Object *ob) return cam->YF_dofdist; } -/* angle in radians */ -float camera_get_angle(Camera *cam) -{ - return 2.f * atan(16.0f/cam->lens); -} - -void camera_set_angle(Camera *cam, float angle) -{ - cam->lens = 16.0f / tan(angle * 0.5f); -} - void *add_lamp(char *name) { Lamp *la; diff --git a/source/blender/blenlib/BLI_math_rotation.h b/source/blender/blenlib/BLI_math_rotation.h index 32e6eeba452..388a9176d53 100644 --- a/source/blender/blenlib/BLI_math_rotation.h +++ b/source/blender/blenlib/BLI_math_rotation.h @@ -166,6 +166,9 @@ void mul_v3m3_dq(float r[3], float R[3][3], DualQuat *dq); void mat4_to_dquat(DualQuat *r, float base[4][4], float M[4][4]); void dquat_to_mat4(float R[4][4], DualQuat *dq); +float lens_to_angle(float lens); +float angle_to_lens(float angle); + #ifdef __cplusplus } #endif diff --git a/source/blender/blenlib/intern/math_rotation.c b/source/blender/blenlib/intern/math_rotation.c index 4af0a3a4248..a8212a531a6 100644 --- a/source/blender/blenlib/intern/math_rotation.c +++ b/source/blender/blenlib/intern/math_rotation.c @@ -1503,3 +1503,13 @@ void copy_dq_dq(DualQuat *dq1, DualQuat *dq2) memcpy(dq1, dq2, sizeof(DualQuat)); } +/* lense/angle conversion (radians) */ +float lens_to_angle(float lens) +{ + return 2.0f * atan(16.0f/lens); +} + +float angle_to_lens(float angle) +{ + return 16.0f / tan(angle * 0.5f); +} diff --git a/source/blender/blenlib/intern/uvproject.c b/source/blender/blenlib/intern/uvproject.c index 0eb5504016e..8cfa083554b 100644 --- a/source/blender/blenlib/intern/uvproject.c +++ b/source/blender/blenlib/intern/uvproject.c @@ -39,9 +39,6 @@ typedef struct UvCameraInfo { short do_persp, do_pano, do_rotmat; } UvCameraInfo; -/* ugly */ -extern float camera_get_angle(struct Camera *cam); - void project_from_camera(float target[2], float source[3], UvCameraInfo *uci) { float pv4[4]; @@ -138,7 +135,7 @@ UvCameraInfo *project_camera_info(Object *ob, float (*rotmat)[4], float winx, fl uci.do_pano = (camera->flag & CAM_PANORAMA); uci.do_persp = (camera->type==CAM_PERSP); - uci.camangle= camera_get_angle(camera)/2.0f; + uci.camangle= lens_to_angle(camera->lens) / 2.0f; uci.camsize= uci.do_persp ? uci.camsize= tanf(uci.camangle) : camera->ortho_scale; if (invert_m4_m4(uci.caminv, ob->obmat)) { diff --git a/source/blender/blenloader/intern/readfile.c b/source/blender/blenloader/intern/readfile.c index 2039681b1f2..60d4ce4994f 100644 --- a/source/blender/blenloader/intern/readfile.c +++ b/source/blender/blenloader/intern/readfile.c @@ -8435,7 +8435,6 @@ static void do_versions(FileData *fd, Library *lib, Main *main) } if(main->versionfile <= 243) { Object *ob= main->object.first; - Camera *cam = main->camera.first; Material *ma; for(ma=main->mat.first; ma; ma= ma->id.next) { diff --git a/source/blender/makesrna/intern/rna_camera.c b/source/blender/makesrna/intern/rna_camera.c index 5ffac4e270e..ef9a0cf040e 100644 --- a/source/blender/makesrna/intern/rna_camera.c +++ b/source/blender/makesrna/intern/rna_camera.c @@ -42,14 +42,14 @@ static float rna_Camera_angle_get(PointerRNA *ptr) { Camera *cam= ptr->id.data; - - return camera_get_angle(cam); + + return lens_to_angle(cam->lens); } static void rna_Camera_angle_set(PointerRNA *ptr, float value) { Camera *cam= ptr->id.data; - camera_set_angle(cam, value); + cam->lens= angle_to_lens(value); } #else |