Exemplo n.º 1
0
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
Exemplo n.º 2
0
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;
}