diff options
author | Campbell Barton <ideasman42@gmail.com> | 2013-07-26 09:08:24 +0400 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2013-07-26 09:08:24 +0400 |
commit | 501649a806db6b1175694254f4be3fe249f90163 (patch) | |
tree | 6d33f09df4ac03a4498fcac5e08783cd7e593dbb /source/blender/blenkernel/intern/camera.c | |
parent | 29732f5d4f2d1619613f318a8086a5464510acb1 (diff) |
fix [#36277] Right click no longer selects the camera
Diffstat (limited to 'source/blender/blenkernel/intern/camera.c')
-rw-r--r-- | source/blender/blenkernel/intern/camera.c | 25 |
1 files changed, 16 insertions, 9 deletions
diff --git a/source/blender/blenkernel/intern/camera.c b/source/blender/blenkernel/intern/camera.c index a47cab7f236..e86561d687d 100644 --- a/source/blender/blenkernel/intern/camera.c +++ b/source/blender/blenkernel/intern/camera.c @@ -408,26 +408,33 @@ void BKE_camera_view_frame_ex(Scene *scene, Camera *camera, float drawsize, cons } else { /* that way it's always visible - clipsta+0.1 */ - float fac; - float half_sensor = 0.5f * ((camera->sensor_fit == CAMERA_SENSOR_FIT_VERT) ? (camera->sensor_y) : (camera->sensor_x)); + float fac, scale_x, scale_y; + float half_sensor = 0.5f * ((camera->sensor_fit == CAMERA_SENSOR_FIT_VERT) ? + (camera->sensor_y) : (camera->sensor_x)); - *r_drawsize = drawsize / ((scale[0] + scale[1] + scale[2]) / 3.0f); if (do_clip) { /* fixed depth, variable size (avoids exceeding clipping range) */ - depth = -(camera->clipsta + 0.1f); - fac = depth / (camera->lens / (-half_sensor) * scale[2]); + /* r_drawsize shouldn't be used in this case, set to dummy value */ + *r_drawsize = 1.0f; + depth = -(camera->clipsta + 0.1f) * scale[2]; + fac = depth / (camera->lens / (-half_sensor)); + scale_x = 1.0f; + scale_y = 1.0f; } else { /* fixed size, variable depth (stays a reasonable size in the 3D view) */ + *r_drawsize = drawsize / ((scale[0] + scale[1] + scale[2]) / 3.0f); depth = *r_drawsize * camera->lens / (-half_sensor) * scale[2]; fac = *r_drawsize; + scale_x = scale[0]; + scale_y = scale[1]; } - facx = fac * r_asp[0] * scale[0]; - facy = fac * r_asp[1] * scale[1]; - r_shift[0] = camera->shiftx * fac * 2 * scale[0]; - r_shift[1] = camera->shifty * fac * 2 * scale[1]; + facx = fac * r_asp[0] * scale_x; + facy = fac * r_asp[1] * scale_y; + r_shift[0] = camera->shiftx * fac * 2.0f * scale_x; + r_shift[1] = camera->shifty * fac * 2.0f * scale_y; } r_vec[0][0] = r_shift[0] + facx; r_vec[0][1] = r_shift[1] + facy; r_vec[0][2] = depth; |