diff options
author | Matt Ebb <matt@mke3.net> | 2009-10-01 08:14:43 +0400 |
---|---|---|
committer | Matt Ebb <matt@mke3.net> | 2009-10-01 08:14:43 +0400 |
commit | 0901eafa8fe093db1938aa773b8c963ec9a649c7 (patch) | |
tree | 916371301129e95a19b7a7de6ffd496ca759e757 /source/blender/makesrna/intern/rna_camera.c | |
parent | bf3374426abe1382718120830572cd5775c4bf82 (diff) |
* Added proper update/conversions for changing between degrees and "mm" in camera
Diffstat (limited to 'source/blender/makesrna/intern/rna_camera.c')
-rw-r--r-- | source/blender/makesrna/intern/rna_camera.c | 19 |
1 files changed, 17 insertions, 2 deletions
diff --git a/source/blender/makesrna/intern/rna_camera.c b/source/blender/makesrna/intern/rna_camera.c index eaf647e02a2..6254041c7ef 100644 --- a/source/blender/makesrna/intern/rna_camera.c +++ b/source/blender/makesrna/intern/rna_camera.c @@ -22,7 +22,9 @@ * ***** END GPL LICENSE BLOCK ***** */ +#define _USE_MATH_DEFINES #include <stdlib.h> +#include <math.h> #include "RNA_define.h" #include "RNA_types.h" @@ -35,6 +37,19 @@ #ifdef RNA_RUNTIME +static void rna_Camera_angle_update(bContext *C, PointerRNA *ptr) +{ + Camera *cam= (Camera*)ptr->id.data; + cam->lens = 16.0f / tan(M_PI*cam->angle/360.0f); +} + +static void rna_Camera_lens_update(bContext *C, PointerRNA *ptr) +{ + Camera *cam= (Camera*)ptr->id.data; + cam->angle= 360.0f * atan(16.0f/cam->lens) / M_PI; +} + + #else void RNA_def_camera(BlenderRNA *brna) @@ -72,7 +87,7 @@ void RNA_def_camera(BlenderRNA *brna) RNA_def_property_float_sdna(prop, NULL, "angle"); RNA_def_property_range(prop, 0.0f, 100.0f); RNA_def_property_ui_text(prop, "Angle", "Perspective Camera lend field of view in degrees."); - RNA_def_property_update(prop, NC_OBJECT|ND_DRAW, NULL); + RNA_def_property_update(prop, NC_OBJECT|ND_DRAW, "rna_Camera_angle_update"); prop= RNA_def_property(srna, "clip_start", PROP_FLOAT, PROP_NONE); RNA_def_property_float_sdna(prop, NULL, "clipsta"); @@ -90,7 +105,7 @@ void RNA_def_camera(BlenderRNA *brna) RNA_def_property_float_sdna(prop, NULL, "lens"); RNA_def_property_range(prop, 1.0f, 250.0f); RNA_def_property_ui_text(prop, "Lens", "Perspective Camera lens value in mm."); - RNA_def_property_update(prop, NC_OBJECT|ND_DRAW, NULL); + RNA_def_property_update(prop, NC_OBJECT|ND_DRAW, "rna_Camera_lens_update"); prop= RNA_def_property(srna, "ortho_scale", PROP_FLOAT, PROP_NONE); RNA_def_property_float_sdna(prop, NULL, "ortho_scale"); |