X-Git-Url: https://de.git.xonotic.org/?a=blobdiff_plain;f=contrib%2Fcamera%2Flistener.cpp;h=b9f5fcf9a4d06eeba5b7ab9ebabed670e8dca8fc;hb=e4287c28bb2dafedc81c66e63951d947cfbeb225;hp=f3169b8da15689f6fec9c749b993698db7918f4a;hpb=203343b01a7ad87cb3d136689c9936ff5bc23c01;p=xonotic%2Fnetradiant.git diff --git a/contrib/camera/listener.cpp b/contrib/camera/listener.cpp index f3169b8d..b9f5fcf9 100644 --- a/contrib/camera/listener.cpp +++ b/contrib/camera/listener.cpp @@ -1,149 +1,148 @@ /* -Copyright (C) 1999-2006 Id Software, Inc. and contributors. -For a list of contributors, see the accompanying CONTRIBUTORS file. + Copyright (C) 1999-2006 Id Software, Inc. and contributors. + For a list of contributors, see the accompanying CONTRIBUTORS file. -This file is part of GtkRadiant. + This file is part of GtkRadiant. -GtkRadiant is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; either version 2 of the License, or -(at your option) any later version. + GtkRadiant is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. -GtkRadiant is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. + GtkRadiant is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. -You should have received a copy of the GNU General Public License -along with GtkRadiant; if not, write to the Free Software -Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA -*/ + You should have received a copy of the GNU General Public License + along with GtkRadiant; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ /* -Camera plugin for GtkRadiant -Copyright (C) 2002 Splash Damage Ltd. -*/ + Camera plugin for GtkRadiant + Copyright (C) 2002 Splash Damage Ltd. + */ #include "camera.h" -CListener::CListener() -{ +CListener::CListener(){ refCount = 1; m_bHooked = FALSE; - m_bLeftMBPressed = m_bRightMBPressed = m_bMiddleMBPressed = false; + m_bLeftMBPressed = m_bRightMBPressed = m_bMiddleMBPressed = false; - oldValid = false; + oldValid = false; - Register(); + Register(); } -CListener::~CListener() -{ +CListener::~CListener(){ UnRegister(); } -void CListener::Register() -{ +void CListener::Register(){ g_UITable.m_pfnHookWindow( this ); - g_pXYWndWrapper = g_UITable.m_pfnGetXYWndWrapper(); + g_pXYWndWrapper = g_UITable.m_pfnGetXYWndWrapper(); m_bHooked = TRUE; } -void CListener::UnRegister() -{ - if(m_bHooked) - { +void CListener::UnRegister(){ + if ( m_bHooked ) { g_UITable.m_pfnUnHookWindow( this ); - g_pXYWndWrapper= NULL; + g_pXYWndWrapper = NULL; m_bHooked = FALSE; } } -bool CListener::OnMouseMove( unsigned int nFlags, double x, double y ) -{ - SetViewType( g_pXYWndWrapper->GetViewType() ); - - if( m_bLeftMBPressed && oldValid && g_iEditMode == 0 ) { - vec3_t click, delta; - - g_pXYWndWrapper->SnapToGrid( (int)x, (int)y, click ); - - switch( m_vt ) { - case XY: - VectorSet( delta, click[0] - old_x, click[1] - old_y, 0 ); - old_x = click[0]; old_y = click[1]; - break; - case XZ: - VectorSet( delta, click[0] - old_x, 0, click[2] - old_y ); - old_x = click[0]; old_y = click[2]; - break; - case YZ: - VectorSet( delta, 0, click[1] - old_x, click[2] - old_y ); - old_x = click[1]; old_y = click[2]; - break; - } - - if( g_iActiveTarget < 0 ) - GetCurrentCam()->GetCam()->getPositionObj()->updateSelection( delta[0], delta[1], delta[2] ); - else - GetCurrentCam()->GetCam()->getActiveTarget(g_iActiveTarget)->updateSelection( delta[0], delta[1], delta[2] ); +bool CListener::OnMouseMove( unsigned int nFlags, double x, double y ){ + SetViewType( g_pXYWndWrapper->GetViewType() ); + + if ( m_bLeftMBPressed && oldValid && g_iEditMode == 0 ) { + vec3_t click, delta; + + g_pXYWndWrapper->SnapToGrid( (int)x, (int)y, click ); + + switch ( m_vt ) { + case XY: + VectorSet( delta, click[0] - old_x, click[1] - old_y, 0 ); + old_x = click[0]; old_y = click[1]; + break; + case XZ: + VectorSet( delta, click[0] - old_x, 0, click[2] - old_y ); + old_x = click[0]; old_y = click[2]; + break; + case YZ: + VectorSet( delta, 0, click[1] - old_x, click[2] - old_y ); + old_x = click[1]; old_y = click[2]; + break; + } + + if ( g_iActiveTarget < 0 ) { + GetCurrentCam()->GetCam()->getPositionObj()->updateSelection( delta[0], delta[1], delta[2] ); + } + else{ + GetCurrentCam()->GetCam()->getActiveTarget( g_iActiveTarget )->updateSelection( delta[0], delta[1], delta[2] ); + } GetCurrentCam()->HasBeenModified(); - g_FuncTable.m_pfnSysUpdateWindows( W_XY_OVERLAY | W_CAMERA ); + g_FuncTable.m_pfnSysUpdateWindows( W_XY_OVERLAY | W_CAMERA ); - return true; - } + return true; + } - return false; + return false; } -bool CListener::OnLButtonDown( unsigned int nFlags, double x, double y ) -{ - SetViewType( g_pXYWndWrapper->GetViewType() ); - - m_bLeftMBPressed = true; - oldValid = true; - - vec3_t org, delta; - - g_pXYWndWrapper->SnapToGrid( (int)x, (int)y, org ); - - switch( m_vt ) { - case XY: - old_x = org[0]; old_y = org[1]; org[2] = 64*1024; - VectorSet( delta, 0, 0, -1 ); - break; - case XZ: - old_x = org[0]; old_y = org[2]; org[1] = 64*1024; - VectorSet( delta, 0, -1, 0 ); - break; - case YZ: - old_x = org[1]; old_y = org[2]; org[0] = 64*1024; - VectorSet( delta, -1, 0, 0 ); - break; - } - - if( g_iEditMode == 0 ) { - if( g_iActiveTarget < 0 ) +bool CListener::OnLButtonDown( unsigned int nFlags, double x, double y ){ + SetViewType( g_pXYWndWrapper->GetViewType() ); + + m_bLeftMBPressed = true; + oldValid = true; + + vec3_t org, delta; + + g_pXYWndWrapper->SnapToGrid( (int)x, (int)y, org ); + + switch ( m_vt ) { + case XY: + old_x = org[0]; old_y = org[1]; org[2] = 64 * 1024; + VectorSet( delta, 0, 0, -1 ); + break; + case XZ: + old_x = org[0]; old_y = org[2]; org[1] = 64 * 1024; + VectorSet( delta, 0, -1, 0 ); + break; + case YZ: + old_x = org[1]; old_y = org[2]; org[0] = 64 * 1024; + VectorSet( delta, -1, 0, 0 ); + break; + } + + if ( g_iEditMode == 0 ) { + if ( g_iActiveTarget < 0 ) { GetCurrentCam()->GetCam()->getPositionObj()->selectPointByRay( org[0], org[1], org[2], delta[0], delta[1], delta[2], true ); - else - GetCurrentCam()->GetCam()->getActiveTarget(g_iActiveTarget)->selectPointByRay( org[0], org[1], org[2], delta[0], delta[1], delta[2], true ); - } else if( g_iEditMode == 1 ) { + } + else{ + GetCurrentCam()->GetCam()->getActiveTarget( g_iActiveTarget )->selectPointByRay( org[0], org[1], org[2], delta[0], delta[1], delta[2], true ); + } + } + else if ( g_iEditMode == 1 ) { idVec3 *lastcoord; idCameraPosition *camera; - if( g_iActiveTarget < 0 ) { + if ( g_iActiveTarget < 0 ) { camera = GetCurrentCam()->GetCam()->getPositionObj(); - } else { - camera = GetCurrentCam()->GetCam()->getActiveTarget(g_iActiveTarget); + } + else { + camera = GetCurrentCam()->GetCam()->getActiveTarget( g_iActiveTarget ); } - if( camera->numPoints() ) { - lastcoord = camera->getPoint( camera->numPoints() -1 ); - switch( m_vt ) { + if ( camera->numPoints() ) { + lastcoord = camera->getPoint( camera->numPoints() - 1 ); + switch ( m_vt ) { case XY: camera->addPoint( org[0], org[1], lastcoord->z ); break; @@ -154,8 +153,9 @@ bool CListener::OnLButtonDown( unsigned int nFlags, double x, double y ) camera->addPoint( lastcoord->x, org[1], org[2] ); break; } - } else { - switch( m_vt ) { + } + else { + switch ( m_vt ) { case XY: camera->addPoint( org[0], org[1], 0 ); break; @@ -171,64 +171,61 @@ bool CListener::OnLButtonDown( unsigned int nFlags, double x, double y ) GetCurrentCam()->HasBeenModified(); } - g_FuncTable.m_pfnSysUpdateWindows( W_XY_OVERLAY | W_CAMERA ); + g_FuncTable.m_pfnSysUpdateWindows( W_XY_OVERLAY | W_CAMERA ); - return true; + return true; //return false; } -bool CListener::OnLButtonUp( unsigned int nFlags, double x, double y ) -{ - SetViewType( g_pXYWndWrapper->GetViewType() ); +bool CListener::OnLButtonUp( unsigned int nFlags, double x, double y ){ + SetViewType( g_pXYWndWrapper->GetViewType() ); - m_bLeftMBPressed = false; - oldValid = false; + m_bLeftMBPressed = false; + oldValid = false; - if( g_iEditMode == 0 ) { - if( g_iActiveTarget < 0 ) + if ( g_iEditMode == 0 ) { + if ( g_iActiveTarget < 0 ) { GetCurrentCam()->GetCam()->getPositionObj()->deselectAll(); - else - GetCurrentCam()->GetCam()->getActiveTarget(g_iActiveTarget)->deselectAll(); + } + else{ + GetCurrentCam()->GetCam()->getActiveTarget( g_iActiveTarget )->deselectAll(); + } - g_FuncTable.m_pfnSysUpdateWindows( W_XY_OVERLAY | W_CAMERA ); + g_FuncTable.m_pfnSysUpdateWindows( W_XY_OVERLAY | W_CAMERA ); } return false; } -bool CListener::OnRButtonDown( unsigned int nFlags, double x, double y ) -{ - SetViewType( g_pXYWndWrapper->GetViewType() ); +bool CListener::OnRButtonDown( unsigned int nFlags, double x, double y ){ + SetViewType( g_pXYWndWrapper->GetViewType() ); - m_bRightMBPressed = true; + m_bRightMBPressed = true; return false; } -bool CListener::OnRButtonUp( unsigned int nFlags, double x, double y ) -{ - SetViewType( g_pXYWndWrapper->GetViewType() ); +bool CListener::OnRButtonUp( unsigned int nFlags, double x, double y ){ + SetViewType( g_pXYWndWrapper->GetViewType() ); - m_bRightMBPressed = false; + m_bRightMBPressed = false; return false; } -bool CListener::OnMButtonDown( unsigned int nFlags, double x, double y ) -{ - SetViewType( g_pXYWndWrapper->GetViewType() ); +bool CListener::OnMButtonDown( unsigned int nFlags, double x, double y ){ + SetViewType( g_pXYWndWrapper->GetViewType() ); - m_bMiddleMBPressed = true; + m_bMiddleMBPressed = true; return false; } -bool CListener::OnMButtonUp( unsigned int nFlags, double x, double y ) -{ - SetViewType( g_pXYWndWrapper->GetViewType() ); +bool CListener::OnMButtonUp( unsigned int nFlags, double x, double y ){ + SetViewType( g_pXYWndWrapper->GetViewType() ); - m_bMiddleMBPressed = false; + m_bMiddleMBPressed = false; return false; }