void IMPInitializer::writeVertexFile(std::string filename, int mesh_no, int level_number) { const int max_levels = d_gridding_alg->getMaxLevels(); if (level_number < 0) level_number = max_levels - 1; level_number = std::min(level_number, max_levels - 1); const int mpi_rank = SAMRAI_MPI::getRank(); if (mpi_rank == 0) { if (filename.find(".vertex") == std::string::npos) { filename += ".vertex"; } std::ofstream vertex_file(filename.c_str(), std::fstream::out); const int num_vertices = d_num_vertex[level_number][mesh_no]; vertex_file << num_vertices << "\n"; for (int k = 0; k < num_vertices; ++k) { const libMesh::Point& X = d_vertex_posn[level_number][mesh_no][k]; for (int d = 0; d < NDIM; ++d) { vertex_file << X(d) << "\t"; } vertex_file << "\n"; } vertex_file.close(); } return; } // writeVertexFile
bool ShaderManager::add_shader(std::string vertex_path, std::string fragment_path, std::string key){ bool success = true; std::string vertex_source, fragment_source; //Load source code from path try{ std::ifstream vertex_file(vertex_path); std::ifstream fragment_file(fragment_path); std::stringstream vertex_stream, fragment_stream; vertex_stream << vertex_file.rdbuf(); fragment_stream <<fragment_file.rdbuf(); vertex_file.close(); fragment_file.close(); vertex_source = vertex_stream.str(); fragment_source = fragment_stream.str(); } catch (std::exception e){ std::cout << "ERROR::SHADER: Failed to read shader files" << std::endl; success = false; } const GLchar* vertex_code = vertex_source.c_str(); const GLchar* fragment_code = fragment_source.c_str(); //Create Shader from new sources Shader shader; shader.compile(vertex_code, fragment_code); success = shaders.emplace(key,shader).second && success; return success; }