Revision: 37879
          
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=37879
Author:   merwin
Date:     2011-06-27 21:52:33 +0000 (Mon, 27 Jun 2011)
Log Message:
-----------
Windows ndof now uses blender view coordinates

Modified Paths:
--------------
    branches/merwin-spacenav/intern/ghost/intern/GHOST_SystemWin32.cpp

Modified: branches/merwin-spacenav/intern/ghost/intern/GHOST_SystemWin32.cpp
===================================================================
--- branches/merwin-spacenav/intern/ghost/intern/GHOST_SystemWin32.cpp  
2011-06-27 20:44:23 UTC (rev 37878)
+++ branches/merwin-spacenav/intern/ghost/intern/GHOST_SystemWin32.cpp  
2011-06-27 21:52:33 UTC (rev 37879)
@@ -858,26 +858,25 @@
                {
                case 1: // translation
                        {
-                       short axis_data[3];
-                       memcpy(axis_data, data + 1, sizeof(axis_data));
-                       m_ndofManager->updateTranslation(axis_data, now);
-                       // wariness of alignment issues prevents me from saying 
it this way:
-                       // m_ndofManager->updateTranslation((short*)(data + 1), 
getMilliSeconds());
-                       // though it probably (94.7%) would work fine
+                       short* axis = (short*)(data + 1);
+                       short t[3] = {axis[0], -axis[2], axis[1]};
+                       m_ndofManager->updateTranslation(t, now);
 
                        if (raw.data.hid.dwSizeHid == 13)
                                { // this report also includes rotation
+                               short r[3] = {-axis[3], axis[5], -axis[4]};
+                               m_ndofManager->updateRotation(r, now);
+
+                               // I've never gotten one of these, has anyone 
else?
                                puts("ndof: combined T + R");
-                               memcpy(axis_data, data + 7, sizeof(axis_data));
-                               m_ndofManager->updateRotation(axis_data, now);
                                }
                        break;
                        }
                case 2: // rotation
                        {
-                       short axis_data[3];
-                       memcpy(axis_data, data + 1, sizeof(axis_data));
-                       m_ndofManager->updateRotation(axis_data, now);
+                       short* axis = (short*)(data + 1);
+                       short r[3] = {-axis[0], axis[2], -axis[1]};
+                       m_ndofManager->updateRotation(r, now);
                        break;
                        }
                case 3: // buttons

_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to