/**************************************************************************** This file is part of the GLC-lib library. Copyright (C) 2005-2008 Laurent Ribon (laumaya@users.sourceforge.net) Version 2.0.0, packaged on July 2010. http://glc-lib.sourceforge.net GLC-lib is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. GLC-lib 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with GLC-lib; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA *****************************************************************************/ //! \file glc_mover.cpp Implementation of the GLC_Mover class. #include "glc_mover.h" #include "glc_viewport.h" GLC_Mover::GLC_Mover(GLC_Viewport* pViewport, const QList& repsList) : QObject() , m_RepMoverList(repsList) , m_PreviousVector() , m_pViewport(pViewport) , m_MoverInfo() { const int size= m_RepMoverList.size(); for (int i= 0; i < size; ++i) { m_RepMoverList[i]->setRepMoverInfo(&m_MoverInfo); } } // Copy constructor GLC_Mover::GLC_Mover(const GLC_Mover& mover) : QObject() , m_RepMoverList() , m_PreviousVector(mover.m_PreviousVector) , m_pViewport(mover.m_pViewport) , m_MoverInfo(mover.m_MoverInfo) { const int size= mover.m_RepMoverList.size(); for (int i= 0; i < size; ++i) { m_RepMoverList.append(mover.m_RepMoverList.at(i)->clone()); m_RepMoverList.last()->setRepMoverInfo(&m_MoverInfo); } } GLC_Mover::~GLC_Mover() { clearMoverRepresentation(); } ////////////////////////////////////////////////////////////////////// // Set Functions ////////////////////////////////////////////////////////////////////// // Set the mover representation list void GLC_Mover::setRepresentationsList(const QList& listOfRep) { qDebug() << "GLC_Mover::setRepresentationsList"; clearMoverRepresentation(); m_RepMoverList= listOfRep; const int size= m_RepMoverList.size(); for (int i= 0; i < size; ++i) { m_RepMoverList[i]->setRepMoverInfo(&m_MoverInfo); } } // Update representation void GLC_Mover::initRepresentation() { const int size= m_RepMoverList.size(); for (int i= 0; i < size; ++i) { m_RepMoverList[i]->init(); } } // Update representation void GLC_Mover::updateRepresentation() { const int size= m_RepMoverList.size(); for (int i= 0; i < size; ++i) { m_RepMoverList[i]->update(); } } ////////////////////////////////////////////////////////////////////// // OpenGL Functions ////////////////////////////////////////////////////////////////////// // Mover representations list display void GLC_Mover::renderRepresentation() { const int size= m_RepMoverList.size(); for (int i= 0; i < size; ++i) { m_RepMoverList[i]->render(); } } ////////////////////////////////////////////////////////////////////// // Private services Functions ////////////////////////////////////////////////////////////////////// // Clear mover representation void GLC_Mover::clearMoverRepresentation() { // Delete mover representations const int size= m_RepMoverList.size(); for (int i= 0; i < size; ++i) { delete m_RepMoverList.at(i); } }