Revision: 36766 http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=36766 Author: campbellbarton Date: 2011-05-19 07:55:48 +0000 (Thu, 19 May 2011) Log Message: ----------- change window_to_3d to take screen coords as floats.
Modified Paths: -------------- trunk/blender/source/blender/editors/gpencil/gpencil_edit.c trunk/blender/source/blender/editors/include/ED_view3d.h trunk/blender/source/blender/editors/space_view3d/view3d_edit.c trunk/blender/source/blender/editors/space_view3d/view3d_view.c Modified: trunk/blender/source/blender/editors/gpencil/gpencil_edit.c =================================================================== --- trunk/blender/source/blender/editors/gpencil/gpencil_edit.c 2011-05-19 07:43:10 UTC (rev 36765) +++ trunk/blender/source/blender/editors/gpencil/gpencil_edit.c 2011-05-19 07:55:48 UTC (rev 36766) @@ -377,24 +377,27 @@ } else { float *fp= give_cursor(scene, v3d); - int mx, my; + float mx, my; /* get screen coordinate */ if (gps->flag & GP_STROKE_2DSPACE) { + int mxi, myi; View2D *v2d= &ar->v2d; - UI_view2d_view_to_region(v2d, pt->x, pt->y, &mx, &my); + UI_view2d_view_to_region(v2d, pt->x, pt->y, &mxi, &myi); + mx= mxi; + my= myi; } else { if(subrect) { - mx= (int)((pt->x/100.0f) * (subrect->xmax - subrect->xmin)) + subrect->xmin; - my= (int)((pt->y/100.0f) * (subrect->ymax - subrect->ymin)) + subrect->ymin; + mx= (((float)pt->x/100.0f) * (subrect->xmax - subrect->xmin)) + subrect->xmin; + my= (((float)pt->y/100.0f) * (subrect->ymax - subrect->ymin)) + subrect->ymin; } else { - mx= (int)(pt->x / 100 * ar->winx); - my= (int)(pt->y / 100 * ar->winy); + mx= (float)pt->x / 100.0f * ar->winx; + my= (float)pt->y / 100.0f * ar->winy; } } - + /* convert screen coordinate to 3d coordinates * - method taken from editview.c - mouse_cursor() */ Modified: trunk/blender/source/blender/editors/include/ED_view3d.h =================================================================== --- trunk/blender/source/blender/editors/include/ED_view3d.h 2011-05-19 07:43:10 UTC (rev 36765) +++ trunk/blender/source/blender/editors/include/ED_view3d.h 2011-05-19 07:55:48 UTC (rev 36766) @@ -80,9 +80,9 @@ float *give_cursor(struct Scene *scene, struct View3D *v3d); int initgrabz(struct RegionView3D *rv3d, float x, float y, float z); -void window_to_3d(struct ARegion *ar, float out[3], const float depth_pt[3], const int mx, const int my); -void window_to_3d_delta(struct ARegion *ar, float out[3], const int mx, const int my); -void window_to_3d_vector(struct ARegion *ar, float out[3], const int mx, const int my); +void window_to_3d(struct ARegion *ar, float out[3], const float depth_pt[3], const float mx, const float my); +void window_to_3d_delta(struct ARegion *ar, float out[3], const float mx, const float my); +void window_to_3d_vector(struct ARegion *ar, float out[3], const float mx, const float my); void view3d_unproject(struct bglMats *mats, float out[3], const short x, const short y, const float z); /* Depth buffer */ Modified: trunk/blender/source/blender/editors/space_view3d/view3d_edit.c =================================================================== --- trunk/blender/source/blender/editors/space_view3d/view3d_edit.c 2011-05-19 07:43:10 UTC (rev 36765) +++ trunk/blender/source/blender/editors/space_view3d/view3d_edit.c 2011-05-19 07:55:48 UTC (rev 36766) @@ -1074,7 +1074,7 @@ float tvec[3]; float tpos[3]; float new_dist; - short vb[2], mouseloc[2]; + int vb[2], mouseloc[2]; mouseloc[0]= mx - ar->winrct.xmin; mouseloc[1]= my - ar->winrct.ymin; @@ -1087,7 +1087,7 @@ /* Project cursor position into 3D space */ initgrabz(rv3d, tpos[0], tpos[1], tpos[2]); - window_to_3d_delta(ar, dvec, mouseloc[0]-vb[0]/2, mouseloc[1]-vb[1]/2); + window_to_3d_delta(ar, dvec, mouseloc[0]-vb[0]/2.0f, mouseloc[1]-vb[1]/2.0f); /* Calculate view target position for dolly */ add_v3_v3v3(tvec, tpos, dvec); Modified: trunk/blender/source/blender/editors/space_view3d/view3d_view.c =================================================================== --- trunk/blender/source/blender/editors/space_view3d/view3d_view.c 2011-05-19 07:43:10 UTC (rev 36765) +++ trunk/blender/source/blender/editors/space_view3d/view3d_view.c 2011-05-19 07:55:48 UTC (rev 36766) @@ -598,7 +598,7 @@ return flip; } -void window_to_3d(ARegion *ar, float out[3], const float depth_pt[3], const int mx, const int my) +void window_to_3d(ARegion *ar, float out[3], const float depth_pt[3], const float mx, const float my) { RegionView3D *rv3d= ar->regiondata; @@ -630,7 +630,7 @@ /* always call initgrabz */ /* only to detect delta motion */ -void window_to_3d_delta(ARegion *ar, float out[3], const int mx, const int my) +void window_to_3d_delta(ARegion *ar, float out[3], const float mx, const float my) { RegionView3D *rv3d= ar->regiondata; float dx, dy; @@ -646,7 +646,7 @@ /* doesn't rely on initgrabz */ /* for perspective view, get the vector direction to * the mouse cursor as a normalized vector */ -void window_to_3d_vector(ARegion *ar, float out[3], const int mx, const int my) +void window_to_3d_vector(ARegion *ar, float out[3], const float mx, const float my) { RegionView3D *rv3d= ar->regiondata; _______________________________________________ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org http://lists.blender.org/mailman/listinfo/bf-blender-cvs