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:
Diffstat (limited to 'source/blender/editors/space_view3d/view3d_view.c')
-rw-r--r--source/blender/editors/space_view3d/view3d_view.c42
1 files changed, 21 insertions, 21 deletions
diff --git a/source/blender/editors/space_view3d/view3d_view.c b/source/blender/editors/space_view3d/view3d_view.c
index 1fdc2d9cad7..6dae0938f54 100644
--- a/source/blender/editors/space_view3d/view3d_view.c
+++ b/source/blender/editors/space_view3d/view3d_view.c
@@ -646,25 +646,25 @@ int initgrabz(RegionView3D *rv3d, float x, float y, float z)
}
/* always call initgrabz */
-void window_to_3d(ARegion *ar, float *vec, short mx, short my)
+void window_to_3d(ARegion *ar, float out[3], short mx, short my)
{
RegionView3D *rv3d= ar->regiondata;
float dx= ((float)(mx-(ar->winx/2)))*rv3d->zfac/(ar->winx/2);
float dy= ((float)(my-(ar->winy/2)))*rv3d->zfac/(ar->winy/2);
- float fz= rv3d->persmat[0][3]*vec[0]+ rv3d->persmat[1][3]*vec[1]+ rv3d->persmat[2][3]*vec[2]+ rv3d->persmat[3][3];
+ float fz= rv3d->persmat[0][3]*out[0]+ rv3d->persmat[1][3]*out[1]+ rv3d->persmat[2][3]*out[2]+ rv3d->persmat[3][3];
fz= fz/rv3d->zfac;
- vec[0]= (rv3d->persinv[0][0]*dx + rv3d->persinv[1][0]*dy+ rv3d->persinv[2][0]*fz)-rv3d->ofs[0];
- vec[1]= (rv3d->persinv[0][1]*dx + rv3d->persinv[1][1]*dy+ rv3d->persinv[2][1]*fz)-rv3d->ofs[1];
- vec[2]= (rv3d->persinv[0][2]*dx + rv3d->persinv[1][2]*dy+ rv3d->persinv[2][2]*fz)-rv3d->ofs[2];
+ out[0]= (rv3d->persinv[0][0]*dx + rv3d->persinv[1][0]*dy+ rv3d->persinv[2][0]*fz)-rv3d->ofs[0];
+ out[1]= (rv3d->persinv[0][1]*dx + rv3d->persinv[1][1]*dy+ rv3d->persinv[2][1]*fz)-rv3d->ofs[1];
+ out[2]= (rv3d->persinv[0][2]*dx + rv3d->persinv[1][2]*dy+ rv3d->persinv[2][2]*fz)-rv3d->ofs[2];
}
/* always call initgrabz */
/* only to detect delta motion */
-void window_to_3d_delta(ARegion *ar, float *vec, short mx, short my)
+void window_to_3d_delta(ARegion *ar, float out[3], short mx, short my)
{
RegionView3D *rv3d= ar->regiondata;
float dx, dy;
@@ -672,15 +672,15 @@ void window_to_3d_delta(ARegion *ar, float *vec, short mx, short my)
dx= 2.0f*mx*rv3d->zfac/ar->winx;
dy= 2.0f*my*rv3d->zfac/ar->winy;
- vec[0]= (rv3d->persinv[0][0]*dx + rv3d->persinv[1][0]*dy);
- vec[1]= (rv3d->persinv[0][1]*dx + rv3d->persinv[1][1]*dy);
- vec[2]= (rv3d->persinv[0][2]*dx + rv3d->persinv[1][2]*dy);
+ out[0]= (rv3d->persinv[0][0]*dx + rv3d->persinv[1][0]*dy);
+ out[1]= (rv3d->persinv[0][1]*dx + rv3d->persinv[1][1]*dy);
+ out[2]= (rv3d->persinv[0][2]*dx + rv3d->persinv[1][2]*dy);
}
/* 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 *vec, short mx, short my)
+void window_to_3d_vector(ARegion *ar, float out[3], short mx, short my)
{
RegionView3D *rv3d= ar->regiondata;
float dx, dy;
@@ -692,11 +692,11 @@ void window_to_3d_vector(ARegion *ar, float *vec, short mx, short my)
/* normalize here so vecs are proportional to eachother */
normalize_v3_v3(viewvec, rv3d->viewinv[2]);
- vec[0]= viewvec[0] - (rv3d->persinv[0][0]*dx + rv3d->persinv[1][0]*dy);
- vec[1]= viewvec[1] - (rv3d->persinv[0][1]*dx + rv3d->persinv[1][1]*dy);
- vec[2]= viewvec[2] - (rv3d->persinv[0][2]*dx + rv3d->persinv[1][2]*dy);
+ out[0]= viewvec[0] - (rv3d->persinv[0][0]*dx + rv3d->persinv[1][0]*dy);
+ out[1]= viewvec[1] - (rv3d->persinv[0][1]*dx + rv3d->persinv[1][1]*dy);
+ out[2]= viewvec[2] - (rv3d->persinv[0][2]*dx + rv3d->persinv[1][2]*dy);
- normalize_v3(vec);
+ normalize_v3(out);
}
float read_cached_depth(ViewContext *vc, int x, int y)
@@ -740,7 +740,7 @@ void view3d_unproject(bglMats *mats, float out[3], const short x, const short y,
}
/* use above call to get projecting mat */
-void view3d_project_float(ARegion *ar, float *vec, float *adr, float mat[4][4])
+void view3d_project_float(ARegion *ar, const float vec[3], float adr[2], float mat[4][4])
{
float vec4[4];
@@ -793,7 +793,7 @@ int boundbox_clip(RegionView3D *rv3d, float obmat[][4], BoundBox *bb)
return 0;
}
-void project_short(ARegion *ar, float *vec, short *adr) /* clips */
+void project_short(ARegion *ar, const float vec[3], short adr[2]) /* clips */
{
RegionView3D *rv3d= ar->regiondata;
float fx, fy, vec4[4];
@@ -824,7 +824,7 @@ void project_short(ARegion *ar, float *vec, short *adr) /* clips */
}
}
-void project_int(ARegion *ar, float *vec, int *adr)
+void project_int(ARegion *ar, const float vec[3], int adr[2])
{
RegionView3D *rv3d= ar->regiondata;
float fx, fy, vec4[4];
@@ -849,7 +849,7 @@ void project_int(ARegion *ar, float *vec, int *adr)
}
}
-void project_int_noclip(ARegion *ar, float *vec, int *adr)
+void project_int_noclip(ARegion *ar, const float vec[3], int adr[2])
{
RegionView3D *rv3d= ar->regiondata;
float fx, fy, vec4[4];
@@ -873,7 +873,7 @@ void project_int_noclip(ARegion *ar, float *vec, int *adr)
}
}
-void project_short_noclip(ARegion *ar, float *vec, short *adr)
+void project_short_noclip(ARegion *ar, const float vec[3], short adr[2])
{
RegionView3D *rv3d= ar->regiondata;
float fx, fy, vec4[4];
@@ -899,7 +899,7 @@ void project_short_noclip(ARegion *ar, float *vec, short *adr)
}
}
-void project_float(ARegion *ar, float *vec, float *adr)
+void project_float(ARegion *ar, const float vec[3], float adr[2])
{
RegionView3D *rv3d= ar->regiondata;
float vec4[4];
@@ -916,7 +916,7 @@ void project_float(ARegion *ar, float *vec, float *adr)
}
}
-void project_float_noclip(ARegion *ar, float *vec, float *adr)
+void project_float_noclip(ARegion *ar, const float vec[3], float adr[2])
{
RegionView3D *rv3d= ar->regiondata;
float vec4[4];