diff --git a/interface/src/Avatar.cpp b/interface/src/Avatar.cpp index 7a4468d608..675d4ce1c0 100644 --- a/interface/src/Avatar.cpp +++ b/interface/src/Avatar.cpp @@ -1539,3 +1539,23 @@ glm::vec3 Avatar::getGravity(glm::vec3 pos) { return glm::vec3(0.f, 0.f, 0.f); } } + +const char AVATAR_DATA_FILENAME[] = "avatar.ifd"; + +void Avatar::writeAvatarDataToFile() { + // write the avatar position and yaw to a local file + FILE* avatarFile = fopen(AVATAR_DATA_FILENAME, "w"); + + if (avatarFile) { + fprintf(avatarFile, "%f,%f,%f %f", _position.x, _position.y, _position.z, _bodyYaw); + fclose(avatarFile); + } +} + +void Avatar::readAvatarDataFromFile() { + FILE* avatarFile = fopen(AVATAR_DATA_FILENAME, "r"); + + if (avatarFile) { + fscanf(avatarFile, "%f,%f,%f %f", &_position.x, &_position.y, &_position.z, &_bodyYaw); + } +} diff --git a/interface/src/Avatar.h b/interface/src/Avatar.h index e327df25c2..d2570d1976 100644 --- a/interface/src/Avatar.h +++ b/interface/src/Avatar.h @@ -145,6 +145,9 @@ public: // Find out what the local gravity vector is at this location glm::vec3 getGravity(glm::vec3 pos); + + void writeAvatarDataToFile(); + void readAvatarDataFromFile(); private: diff --git a/interface/src/main.cpp b/interface/src/main.cpp index 7bf7a181ff..125cc07597 100644 --- a/interface/src/main.cpp +++ b/interface/src/main.cpp @@ -344,7 +344,9 @@ void init(void) void terminate () { // Close serial port - //close(serial_fd); + // close(serial_fd); + + myAvatar.writeAvatarDataToFile(); #ifndef _WIN32 audio.terminate(); @@ -1944,6 +1946,8 @@ int main(int argc, const char * argv[]) printLog("Network receive thread created.\n"); } + myAvatar.readAvatarDataFromFile(); + glutTimerFunc(1000, Timer, 0); glutMainLoop();