/[escript]/branches/diaplayground/finley/src/CPPAdapter/MeshAdapter.cpp
ViewVC logotype

Diff of /branches/diaplayground/finley/src/CPPAdapter/MeshAdapter.cpp

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 751 by bcumming, Mon Jun 26 01:46:34 2006 UTC revision 757 by woo409, Mon Jun 26 13:12:56 2006 UTC
# Line 70  Finley_Mesh* MeshAdapter::getFinley_Mesh Line 70  Finley_Mesh* MeshAdapter::getFinley_Mesh
70    
71  void MeshAdapter::write(const std::string& fileName) const  void MeshAdapter::write(const std::string& fileName) const
72  {  {
73    char fName[fileName.size()+1];    char *fName = (fileName.size()+1>0) ? TMPMEMALLOC(fileName.size()+1,char) : (char*)NULL;
74    strcpy(fName,fileName.c_str());    strcpy(fName,fileName.c_str());
75    Finley_Mesh_write(m_finleyMesh.get(),fName);    Finley_Mesh_write(m_finleyMesh.get(),fName);
76    checkFinleyError();    checkFinleyError();
77      TMPMEMFREE(fName);
78  }  }
79    
80  string MeshAdapter::getDescription() const  string MeshAdapter::getDescription() const
# Line 700  void MeshAdapter::saveDX(const std::stri Line 701  void MeshAdapter::saveDX(const std::stri
701  {  {
702      int MAX_namelength=256;      int MAX_namelength=256;
703      const int num_data=boost::python::extract<int>(arg.attr("__len__")());      const int num_data=boost::python::extract<int>(arg.attr("__len__")());
704      char names[num_data][MAX_namelength];    /* win32 refactor */
705      char* c_names[num_data];    char* *names = (num_data>0) ? TMPMEMALLOC(num_data,char*) : (char**)NULL;
706      escriptDataC data[num_data];    for(int i=0;i<num_data;i++)
707      escriptDataC* ptr_data[num_data];    {
708        names[i] = (MAX_namelength>0) ? TMPMEMALLOC(MAX_namelength,char) : (char*)NULL;
709      }
710    
711      char* *c_names = (num_data>0) ? TMPMEMALLOC(num_data,char*) : (char**)NULL;
712      escriptDataC *data = (num_data>0) ? TMPMEMALLOC(num_data,escriptDataC) : (escriptDataC*)NULL;
713      escriptDataC* *ptr_data = (num_data>0) ? TMPMEMALLOC(num_data,escriptDataC*) : (escriptDataC**)NULL;
714    
715      boost::python::list keys=arg.keys();      boost::python::list keys=arg.keys();
716      for (int i=0;i<num_data;++i) {      for (int i=0;i<num_data;++i) {
# Line 723  void MeshAdapter::saveDX(const std::stri Line 730  void MeshAdapter::saveDX(const std::stri
730      }      }
731      Finley_Mesh_saveDX(filename.c_str(),m_finleyMesh.get(),num_data,c_names,ptr_data);      Finley_Mesh_saveDX(filename.c_str(),m_finleyMesh.get(),num_data,c_names,ptr_data);
732      checkFinleyError();      checkFinleyError();
733        
734          /* win32 refactor */
735      TMPMEMFREE(c_names);
736      TMPMEMFREE(data);
737      TMPMEMFREE(ptr_data);
738      for(int i=0;i<num_data;i++)
739      {
740        TMPMEMFREE(names[i]);
741      }
742      TMPMEMFREE(names);
743    
744      return;      return;
745  }  }
746    
# Line 731  void MeshAdapter::saveVTK(const std::str Line 749  void MeshAdapter::saveVTK(const std::str
749  {  {
750      int MAX_namelength=256;      int MAX_namelength=256;
751      const int num_data=boost::python::extract<int>(arg.attr("__len__")());      const int num_data=boost::python::extract<int>(arg.attr("__len__")());
752      char names[num_data][MAX_namelength];    /* win32 refactor */
753      char* c_names[num_data];    char* *names = (num_data>0) ? TMPMEMALLOC(num_data,char*) : (char**)NULL;
754      escriptDataC data[num_data];    for(int i=0;i<num_data;i++)
755      escriptDataC* ptr_data[num_data];    {
756        names[i] = (MAX_namelength>0) ? TMPMEMALLOC(MAX_namelength,char) : (char*)NULL;
757      }
758    
759      char* *c_names = (num_data>0) ? TMPMEMALLOC(num_data,char*) : (char**)NULL;
760      escriptDataC *data = (num_data>0) ? TMPMEMALLOC(num_data,escriptDataC) : (escriptDataC*)NULL;
761      escriptDataC* *ptr_data = (num_data>0) ? TMPMEMALLOC(num_data,escriptDataC*) : (escriptDataC**)NULL;
762    
763      boost::python::list keys=arg.keys();      boost::python::list keys=arg.keys();
764      for (int i=0;i<num_data;++i) {      for (int i=0;i<num_data;++i) {
# Line 754  void MeshAdapter::saveVTK(const std::str Line 778  void MeshAdapter::saveVTK(const std::str
778      }      }
779      Finley_Mesh_saveVTK(filename.c_str(),m_finleyMesh.get(),num_data,c_names,ptr_data);      Finley_Mesh_saveVTK(filename.c_str(),m_finleyMesh.get(),num_data,c_names,ptr_data);
780      checkFinleyError();      checkFinleyError();
781      /* win32 refactor */
782      TMPMEMFREE(c_names);
783      TMPMEMFREE(data);
784      TMPMEMFREE(ptr_data);
785      for(int i=0;i<num_data;i++)
786      {
787        TMPMEMFREE(names[i]);
788      }
789      TMPMEMFREE(names);
790    
791      return;      return;
792  }  }
793                                                                                                                                                                                                                                                                                                                                                    

Legend:
Removed from v.751  
changed lines
  Added in v.757

  ViewVC Help
Powered by ViewVC 1.1.26