forked from bartvdbraak/blender
Activated NDOF capture for Windows. Robust++ for generic NDOF manager. Removed experimental Win32 mouse and NDOF code now that good solutions are in place. Cleaned up formatting.
This commit is contained in:
parent
a51ebf247f
commit
a7ba245fe3
@ -15,21 +15,26 @@
|
||||
* along with this program; if not, write to the Free Software Foundation,
|
||||
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
*
|
||||
* Contributor(s): none yet.
|
||||
* Contributor(s): Mike Erwin, July 2010.
|
||||
*
|
||||
* ***** END GPL LICENSE BLOCK *****
|
||||
*/
|
||||
|
||||
#include "GHOST_NDOFManager.h"
|
||||
#include "GHOST_EventNDOF.h"
|
||||
#include <string.h> // for memory functions
|
||||
#include <stdio.h> // for debug tracing
|
||||
|
||||
GHOST_NDOFManager::GHOST_NDOFManager(GHOST_System& sys)
|
||||
: m_system(sys)
|
||||
// , m_translation((short[]){0,0,0})
|
||||
// , m_rotation((short[]){0,0,0})
|
||||
, m_buttons(0)
|
||||
, m_atRest(true)
|
||||
{ }
|
||||
{
|
||||
// to avoid the rare situation where one triple is updated and
|
||||
// the other is not, initialize them both here:
|
||||
memset(m_translation, 0, sizeof(m_translation));
|
||||
memset(m_rotation, 0, sizeof(m_rotation));
|
||||
}
|
||||
|
||||
void GHOST_NDOFManager::updateTranslation(short t[3], GHOST_TUns64 time)
|
||||
{
|
||||
@ -68,7 +73,9 @@ bool GHOST_NDOFManager::sendMotionEvent()
|
||||
GHOST_TEventNDOFData* data = (GHOST_TEventNDOFData*) event->getData();
|
||||
|
||||
const float scale = 1.f / 350.f; // SpaceNavigator sends +/- 350 usually
|
||||
// 350 according to their developer's guide; others recommend 500 as comfortable
|
||||
|
||||
// possible future enhancement
|
||||
// scale *= m_sensitivity;
|
||||
|
||||
data->tx = scale * m_translation[0];
|
||||
@ -80,7 +87,6 @@ bool GHOST_NDOFManager::sendMotionEvent()
|
||||
data->rz = scale * m_rotation[2];
|
||||
|
||||
printf("sending T=(%.2f,%.2f,%.2f) R=(%.2f,%.2f,%.2f)\n", data->tx, data->ty, data->tz, data->rx, data->ry, data->rz);
|
||||
fflush(stdout);
|
||||
|
||||
m_system.pushEvent(event);
|
||||
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -304,10 +304,9 @@ protected:
|
||||
* Creates and sends mouse or multi-axis events.
|
||||
* @param raw a single RawInput structure
|
||||
* @param window The window receiving the event (the active window).
|
||||
* @param x,y current mouse coordinates, which may be updated by this function
|
||||
* @return Whether any events (possibly more than one) were created and sent.
|
||||
*/
|
||||
bool processRawInput(RAWINPUT const& raw, GHOST_WindowWin32* window /*, int& x, int& y */ );
|
||||
bool processRawInput(RAWINPUT const& raw, GHOST_WindowWin32* window);
|
||||
|
||||
/**
|
||||
* Creates and sends mouse events for mouse movements "in between" WM_MOUSEMOVEs.
|
||||
@ -333,10 +332,11 @@ protected:
|
||||
|
||||
/**
|
||||
* Windows call back routine for our window class.
|
||||
* This handles general errors, then passes control to handleEvent.
|
||||
*/
|
||||
static LRESULT WINAPI s_wndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam);
|
||||
|
||||
// non-static version of WndProc
|
||||
/** Non-static version of WndProc. */
|
||||
bool handleEvent(GHOST_WindowWin32* window, UINT msg, WPARAM wParam, LPARAM lParam);
|
||||
|
||||
/** The current state of the modifier keys. */
|
||||
|
Loading…
Reference in New Issue
Block a user