/* * PVVMUD a 3D MUD * Copyright (C) 1998-1999 Programvareverkstedet (pvv@pvv.org) * * This program 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. * * This program 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 this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * */ #include "client.H" #include "cliviewpoint.H" #include "matrix.H" #include <GL/glut.h> CCliViewpoint::CCliViewpoint(CCliWorld * world){ m_world = world; } void CCliViewpoint::transform(){ CMatrix transform; CCliObject * target = (CCliObject*)m_world->getObject(getTargetId()); if (target != NULL){ target->getInvGlobalTransform(transform); } transform.rotate(-getDirection()); transform.translate(-getPosition()); glMultMatrixd(transform.getVector()); return; double * pos = getPosition().getVector(); double * dir = getDirection().getVector(); glRotated(-dir[0],0.0,0.0,1.0); glRotated(-dir[1],0.0,1.0,0.0); glRotated(-dir[2],1.0,0.0,0.0); glTranslated(-pos[0],-pos[1],-pos[2]); } void CCliViewpoint::setAspectRatio( float aspectRatio ){ this->aspectRatio = aspectRatio; }