Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatt Ebb <matt@mke3.net>2010-04-15 08:56:44 +0400
committerMatt Ebb <matt@mke3.net>2010-04-15 08:56:44 +0400
commit2b018673509fe7a38a6332fae00bd605335bd286 (patch)
tree562d9ffb6ac40d16df15a43b13137e94fdd57797 /source/blender/blenkernel
parent57a1ff0df0f2df4be7518ba34da95537f21921a2 (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.h3
-rw-r--r--source/blender/blenkernel/intern/object.c12
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;