/** @brief constructs the file destination @param file_name name of the file @param set [optional] file settings - see file_settings class, and @ref dealing_with_flags */ file_t(const std::string & file_name, file_settings set = file_settings() ) : non_const_context_base(file_name,set) {}
/* Program entry point */ int main(int argc, char *argv[]) { glutInit(&argc, argv); glutInitWindowSize(winWidth,winHeight); glutInitWindowPosition(300,50); glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH | GLUT_STENCIL); glutCreateWindow("Turmites v01 ---- Martin Johansson"); // Parse settings file std::ifstream file_settings("settings.txt"); if(file_settings.is_open()) { std::cout << "Successfully opened settings.txt" << std::endl; } if( !file_settings.is_open() ) { file_settings.open("../settings.txt"); } if(file_settings.is_open()) { std::cout << "Successfully opened settings.txt in down folder" << std::endl; } std::string str; std::vector<int> v; // Debug // Get map size and boarder settings while(std::getline(file_settings, str)) { std::istringstream iss(str); int n; while (iss >> n) v.push_back(n); } // Validate input if(v.size() != 3 || v[0] < 2 || v[1] < 2 || v[2]<0 || v[2]>1) { printf("Error reading settings file"); return EXIT_FAILURE; } // Create the turmite on the specified map size turmite.reset(new Turmite(v[0], v[1])); // Set boundary condition turmite->toroidalWalk = v[2]; bool success = turmite->readInput(); if(!success) { printf("Error loading input file."); return EXIT_FAILURE; } //callbacks glutDisplayFunc(draw); glutReshapeFunc(changeSize); glutCreateMenu(timer); glutAddMenuEntry("Fastest", 1); glutAddMenuEntry("2 ms delay", 2); glutAddMenuEntry("10 ms delay", 10); glutAddMenuEntry("100 ms delay", 100); glutAddMenuEntry("Slowest", 1000); glutAttachMenu(GLUT_RIGHT_BUTTON); // Setup keyboard glutKeyboardFunc(keyboard); ilInit(); iluInit(); ilutRenderer(ILUT_OPENGL); Viewer::init(winWidth,winHeight); glutMainLoop(); return EXIT_SUCCESS; }