diff options
author | Joseph Eagar <joeedh@gmail.com> | 2010-07-23 02:17:20 +0400 |
---|---|---|
committer | Joseph Eagar <joeedh@gmail.com> | 2010-07-23 02:17:20 +0400 |
commit | 37f2c8a64c3277f100ab084ef1bb3846bc7b2c62 (patch) | |
tree | d78068f89c60cacfe40595133614e65e4164e015 /source/blender/editors/space_view3d/view3d_view.c | |
parent | a23e3c42f55efed357e7b1604dbec57ab5c02a82 (diff) |
committing working copy
Diffstat (limited to 'source/blender/editors/space_view3d/view3d_view.c')
-rw-r--r-- | source/blender/editors/space_view3d/view3d_view.c | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/source/blender/editors/space_view3d/view3d_view.c b/source/blender/editors/space_view3d/view3d_view.c index 4471c051aa7..31138b00f17 100644 --- a/source/blender/editors/space_view3d/view3d_view.c +++ b/source/blender/editors/space_view3d/view3d_view.c @@ -699,6 +699,26 @@ void view3d_project_float(ARegion *ar, float *vec, float *adr, float mat[4][4]) } } +/* use above call to get projecting mat */ +void view3d_project_float_v3(ARegion *ar, float *vec, float *adr, float mat[4][4]) +{ + float vec4[4]; + + VECCOPY(vec4, vec); + adr[0]= IS_CLIPPED; + vec4[3]= 1.0; + + mul_m4_v4(mat, vec4); + + if( vec4[3]>FLT_EPSILON ) { + adr[0] = (float)(ar->winx/2.0f)+(ar->winx/2.0f)*vec4[0]/vec4[3]; + adr[1] = (float)(ar->winy/2.0f)+(ar->winy/2.0f)*vec4[1]/vec4[3]; + adr[2] = vec4[2]/vec4[3]; + } else { + adr[0] = adr[1] = adr[2] = 0.0f; + } +} + int boundbox_clip(RegionView3D *rv3d, float obmat[][4], BoundBox *bb) { /* return 1: draw */ |