diff options
author | Campbell Barton <ideasman42@gmail.com> | 2013-08-23 18:37:22 +0400 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2013-08-23 18:37:22 +0400 |
commit | 09ff49755fc84a0dd4214099a0dd47facba83288 (patch) | |
tree | e317ad76b20daf06484a4e76004030cf0a5fc921 /source/blender/blenkernel/intern/camera.c | |
parent | 01e22d1b9f3606d97f06c2d8a2bc969214322e9c (diff) |
math api edits - replace point-normal form for a plane with dist_to_plane_v3()
also correct python mathutils api, was missing vector checks.
Diffstat (limited to 'source/blender/blenkernel/intern/camera.c')
-rw-r--r-- | source/blender/blenkernel/intern/camera.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/source/blender/blenkernel/intern/camera.c b/source/blender/blenkernel/intern/camera.c index f9444ca2cf9..d92a9220b4f 100644 --- a/source/blender/blenkernel/intern/camera.c +++ b/source/blender/blenkernel/intern/camera.c @@ -456,6 +456,7 @@ void BKE_camera_view_frame(Scene *scene, Camera *camera, float r_vec[4][3]) typedef struct CameraViewFrameData { + float plane_tx[4][4]; /* 4 planes (not 4x4 matrix)*/ float frame_tx[4][3]; float normal_tx[4][3]; float dist_vals[4]; @@ -468,7 +469,7 @@ static void camera_to_frame_view_cb(const float co[3], void *user_data) unsigned int i; for (i = 0; i < 4; i++) { - float nd = dist_to_plane_v3(co, data->frame_tx[i], data->normal_tx[i]); + float nd = dist_to_plane_v3(co, data->plane_tx[i]); if (nd < data->dist_vals[i]) { data->dist_vals[i] = nd; } @@ -514,8 +515,8 @@ int BKE_camera_view_frame_fit_to_scene(Scene *scene, struct View3D *v3d, Object } for (i = 0; i < 4; i++) { - normal_tri_v3(data_cb.normal_tx[i], - zero, data_cb.frame_tx[i], data_cb.frame_tx[(i + 1) % 4]); + normal_tri_v3(data_cb.normal_tx[i], zero, data_cb.frame_tx[i], data_cb.frame_tx[(i + 1) % 4]); + plane_from_point_normal_v3(data_cb.plane_tx[i], data_cb.frame_tx[i], data_cb.normal_tx[i]); } /* initialize callback data */ |