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

Reply via email to