Skip to content
Snippets Groups Projects
Select Git revision
  • 4075da9a1fedb4d7daf861b1dc51342fa77a20db
  • master default
  • cgnsUnstructured
  • partitioning
  • poppler
  • HighOrderBLCurving
  • gmsh_3_0_4
  • gmsh_3_0_3
  • gmsh_3_0_2
  • gmsh_3_0_1
  • gmsh_3_0_0
  • gmsh_2_16_0
  • gmsh_2_15_0
  • gmsh_2_14_1
  • gmsh_2_14_0
  • gmsh_2_13_2
  • gmsh_2_13_1
  • gmsh_2_12_0
  • gmsh_2_11_0
  • gmsh_2_10_1
  • gmsh_2_10_0
  • gmsh_2_9_3
  • gmsh_2_9_2
  • gmsh_2_9_1
  • gmsh_2_9_0
  • gmsh_2_8_6
26 results

Callbacks.cpp

Blame
  • Forked from gmsh / gmsh
    Source project has a limited visibility.
    PViewIO.cpp 7.46 KiB
    // Gmsh - Copyright (C) 1997-2009 C. Geuzaine, J.-F. Remacle
    //
    // See the LICENSE.txt file for license information. Please report all
    // bugs and problems to <gmsh@geuz.org>.
    
    #include "GmshConfig.h"
    #include "GmshMessage.h"
    #include "PView.h"
    #include "PViewDataList.h"
    #include "PViewDataGModel.h"
    #include "StringUtils.h"
    
    bool PView::readPOS(std::string fileName, int fileIndex)
    {
      FILE *fp = fopen(fileName.c_str(), "rb");
      if(!fp){
        Msg::Error("Unable to open file '%s'", fileName.c_str());
        return false;
      }
    
      char str[256] = "XXX";
      double version;
      int format, size, index = -1;
    
      while(1) {
    
        while(str[0] != '$'){
          if(!fgets(str, sizeof(str), fp) || feof(fp))
            break;
        } 
        
        if(feof(fp))
          break;
    
        if(!strncmp(&str[1], "PostFormat", 10)) {
    
          if(!fscanf(fp, "%lf %d %d\n", &version, &format, &size)){
            Msg::Error("Read error");
            return false;
          }
          if(version < 1.0) {
            Msg::Error("Post-processing file too old (ver. %g < 1.0)", version);
            return false;
          }
          if(size == sizeof(double))
            Msg::Debug("Data is in double precision format (size==%d)", size);
          else {
            Msg::Error("Unknown data size (%d) in post-processing file", size);
            return false;
          }
    
        }
        else if(!strncmp(&str[1], "View", 4)){
    
          index++;
          if(fileIndex < 0 || fileIndex == index){
            PViewDataList *d = new PViewDataList();
            if(!d->readPOS(fp, version, format ? true : false)){
              Msg::Error("Could not read data in list format");
              delete d;
              return false;
            }
            else{
              d->setFileName(fileName);
              d->setFileIndex(index);
              new PView(d);
            }
          }
    
        }