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:
authorCampbell Barton <ideasman42@gmail.com>2013-07-26 09:08:24 +0400
committerCampbell Barton <ideasman42@gmail.com>2013-07-26 09:08:24 +0400
commit501649a806db6b1175694254f4be3fe249f90163 (patch)
tree6d33f09df4ac03a4498fcac5e08783cd7e593dbb /source/blender/blenkernel/intern/camera.c
parent29732f5d4f2d1619613f318a8086a5464510acb1 (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.c25
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;