#include "WalkThroughRecorder.h" #include "Camera.h" #include "Vector3.h" #include using namespace std; namespace CHCDemoEngine { WalkThroughRecorder::WalkThroughRecorder(const std::string &filename): mFile(filename.c_str()) { } void WalkThroughRecorder::WriteFrame(Camera *cam) { FrameInfo info(cam->GetPosition(), cam->GetDirection()); mFile << info << endl; } WalkThroughPlayer::WalkThroughPlayer(const std::string &filename): mFrame(0) { ifstream file(filename.c_str()); FrameInfo info; int i=0; std::string token; while(std::getline(file, token)) { std::stringstream line(token); line >> info; mFrameInfos.push_back(info); } } bool WalkThroughPlayer::ReadNextFrame(Camera *cam) { cam->SetDirection(mFrameInfos[mFrame].mDirection); cam->SetPosition(mFrameInfos[mFrame].mPosition); mFrame = (mFrame + 1) % (int)mFrameInfos.size(); return mFrame != 0; } }