diff options
author | Matt Ebb <matt@mke3.net> | 2010-04-15 08:56:44 +0400 |
---|---|---|
committer | Matt Ebb <matt@mke3.net> | 2010-04-15 08:56:44 +0400 |
commit | 2b018673509fe7a38a6332fae00bd605335bd286 (patch) | |
tree | 562d9ffb6ac40d16df15a43b13137e94fdd57797 /source/blender/blenkernel | |
parent | 57a1ff0df0f2df4be7518ba34da95537f21921a2 (diff) |
Fix [#22029] Camera in degree mode doesn't update
Removed the camera->angle from DNA, now it just uses RNA to handle the conversions.
Really need to convert this to physical units at some point... :/
Diffstat (limited to 'source/blender/blenkernel')
-rw-r--r-- | source/blender/blenkernel/BKE_object.h | 3 | ||||
-rw-r--r-- | source/blender/blenkernel/intern/object.c | 12 |
2 files changed, 14 insertions, 1 deletions
diff --git a/source/blender/blenkernel/BKE_object.h b/source/blender/blenkernel/BKE_object.h index 065d747a959..9930ad175a7 100644 --- a/source/blender/blenkernel/BKE_object.h +++ b/source/blender/blenkernel/BKE_object.h @@ -77,6 +77,9 @@ 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); void make_local_lamp(struct Lamp *la); diff --git a/source/blender/blenkernel/intern/object.c b/source/blender/blenkernel/intern/object.c index ef630a18ab4..f05239057b9 100644 --- a/source/blender/blenkernel/intern/object.c +++ b/source/blender/blenkernel/intern/object.c @@ -679,7 +679,6 @@ void *add_camera(char *name) cam= alloc_libblock(&G.main->camera, ID_CA, name); cam->lens= 35.0f; - cam->angle= 49.14f; cam->clipsta= 0.1f; cam->clipend= 100.0f; cam->drawsize= 0.5f; @@ -774,6 +773,17 @@ 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; |