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:
-rw-r--r--source/gameengine/Ketsji/KX_Camera.cpp11
1 files changed, 8 insertions, 3 deletions
diff --git a/source/gameengine/Ketsji/KX_Camera.cpp b/source/gameengine/Ketsji/KX_Camera.cpp
index 1d6c5f77ae5..ba4d6e22872 100644
--- a/source/gameengine/Ketsji/KX_Camera.cpp
+++ b/source/gameengine/Ketsji/KX_Camera.cpp
@@ -1047,8 +1047,10 @@ KX_PYMETHODDEF_DOC_O(KX_Camera, getScreenPosition,
gluProject(vect[0], vect[1], vect[2], modelmatrix, projmatrix, viewport, &win[0], &win[1], &win[2]);
- vect[0] = win[0] / (viewport[0] + viewport[2]);
- vect[1] = win[1] / (viewport[1] + viewport[3]);
+ vect[0] = (win[0] - viewport[0]) / viewport[2];
+ vect[1] = (win[1] - viewport[1]) / viewport[3];
+
+ vect[1] = 1.0 - vect[1]; //to follow Blender window coordinate system (Top-Down)
PyObject* ret = PyTuple_New(2);
if(ret){
@@ -1068,6 +1070,8 @@ KX_PYMETHODDEF_DOC_VARARGS(KX_Camera, getScreenVect,
if (!PyArg_ParseTuple(args,"dd:getScreenVect",&x,&y))
return NULL;
+ y = 1.0 - y; //to follow Blender window coordinate system (Top-Down)
+
MT_Vector3 vect;
MT_Point3 campos, screenpos;
@@ -1127,7 +1131,8 @@ KX_PYMETHODDEF_DOC_VARARGS(KX_Camera, getScreenRay,
}
Py_DECREF(argValue);
- dist *= -1.0;
+ dist = -dist;
+ vect += this->GetCameraLocation();
argValue = (propName?PyTuple_New(3):PyTuple_New(2));
if (argValue) {