/* orxonox - the future of 3D-vertical-scrollers Copyright (C) 2004 orx 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, or (at your option) any later version. ### File Specific: main-programmer: Filip Gospodinov co-programmer: */ #include "shell_command.h" #include "cameraman.h" #include "game_world_data.h" #include "state.h" #include "iostream.h" #include "sound_engine.h" ObjectListDefinition(cameraman); cameraman::cameraman() { this->registerObject(this, cameraman::_objectList); this->nearClip = 1.0; this->farClip = 1000.0; currentCam=State::getCamera(); this->cameras.push_back(currentCam); State::setCamera(currentCam, currentCam->getTarget()); // currentCam->setClipRegion(nearClip, farClip); } void cameraman::createCam() { // Camera* newCamera=new Camera(); this->cameras.push_back(new Camera()); cameras[cameras.size()-1]->target->detach(); cameras[cameras.size()-1]->setClipRegion(nearClip, farClip); } void cameraman::setCam(int cameraNo) { if (cameraNogetTarget()); OrxSound::SoundEngine::getInstance()->setListener(currentCam); } } void cameraman::testCam() { cameras[1]->lookAt(currentCam->getTarget()); cameras[1]->setParentSoft(currentCam->getParent()); } void cameraman::moveCurrCam(int x, int y, int z) { currentCam->target->trans(x,y,z); } void cameraman::moveCam(int x, int y, int z, int camNo) { cameras[camNo]->target->trans(x,y,z); } void cameraman::changeTarget(int camNo, PNode* target) { cameras[camNo]->lookAt(target); } void cameraman::changeCurrTarget(PNode* target) { currentCam->lookAt(target); } void cameraman::atachCurrTarget(PNode* target) { currentCam->target->atach(target); } void cameraman::jumpCam(int x, int y, int z, int camNo) { cameras[camNo]->target->jump(x, y, z); } void cameraman::setClipRegion(float nearCli, float farCli) { this->nearClip=nearCli; this->farClip=farCli; for(int i = 0; i < this->cameras.size(); i++) cameras[i]->setClipRegion(nearCli, farCli); } void cameraman::jumpCurrCam(int x, int y, int z) { currentCam->target->jump(x, y, z); }