glc_panmover.cpp

Go to the documentation of this file.
00001 /****************************************************************************
00002 
00003  This file is part of the GLC-lib library.
00004  Copyright (C) 2005-2008 Laurent Ribon (laumaya@users.sourceforge.net)
00005  Version 2.0.0 Beta 1, packaged on April 2010.
00006 
00007  http://glc-lib.sourceforge.net
00008 
00009  GLC-lib is free software; you can redistribute it and/or modify
00010  it under the terms of the GNU General Public License as published by
00011  the Free Software Foundation; either version 2 of the License, or
00012  (at your option) any later version.
00013 
00014  GLC-lib is distributed in the hope that it will be useful,
00015  but WITHOUT ANY WARRANTY; without even the implied warranty of
00016  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00017  GNU General Public License for more details.
00018 
00019  You should have received a copy of the GNU General Public License
00020  along with GLC-lib; if not, write to the Free Software
00021  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
00022 
00023  *****************************************************************************/
00024 
00026 
00027 #include "glc_panmover.h"
00028 #include "glc_viewport.h"
00029 #include "QMouseEvent"
00030 
00031 // Default constructor
00032 GLC_PanMover::GLC_PanMover(GLC_Viewport* pViewport, const QList<GLC_RepMover*>& repsList)
00033 : GLC_Mover(pViewport, repsList)
00034 {
00035 
00036 }
00037 
00038 // Copy constructor
00039 GLC_PanMover::GLC_PanMover(const GLC_PanMover& panMover)
00040 : GLC_Mover(panMover)
00041 {
00042 
00043 }
00044 
00045 
00046 GLC_PanMover::~GLC_PanMover()
00047 {
00048 
00049 }
00050 
00052 // Get Functions
00054 
00055 // Return a clone of the mover
00056 GLC_Mover* GLC_PanMover::clone() const
00057 {
00058         return new GLC_PanMover(*this);
00059 }
00060 
00061 
00063 // Set Functions
00065 
00066 // Initialized the mover
00067 void GLC_PanMover::init(QMouseEvent * e)
00068 {
00069         m_PreviousVector= m_pViewport->mapPosMouse(static_cast<double>(e->x()), static_cast<double>(e->y()));
00070 }
00071 
00072 // Move the camera
00073 bool GLC_PanMover::move(QMouseEvent * e)
00074 {
00075         const GLC_Vector3d VectCur(m_pViewport->mapPosMouse(static_cast<double>(e->x()), static_cast<double>(e->y())));
00076         const GLC_Vector3d VectPan= VectCur - m_PreviousVector; // moving Vector
00077 
00078         // Pan the camera
00079         m_pViewport->cameraHandle()->pan(-VectPan);
00080         m_PreviousVector= VectCur;
00081         return true;
00082 }
00083 

SourceForge.net Logo

©2005 Laurent Ribon