Changeset 13269
- Timestamp:
- 09/05/12 14:53:00 (13 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk-jpl/src/c/python/io/WritePythonData.cpp
r13242 r13269 19 19 #include "../../io/io.h" 20 20 #include "../../EnumDefinitions/EnumDefinitions.h" 21 PyObject* PyArrayFromCopiedData(int dims[2],double* data); 21 22 22 23 /*Primitive data types*/ … … 50 51 void WriteData(PyObject* py_tuple,int index,BamgGeom* bamggeom){ 51 52 52 _error_("not implemented yes, see ../../matlab/io/WriteMatlabData.cpp"); 53 PyObject* dict=NULL; 54 55 dict=PyDict_New(); 56 57 PyDict_SetItemString(dict,"Vertices",PyArrayFromCopiedData(bamggeom->VerticesSize,bamggeom->Vertices)); 58 PyDict_SetItemString(dict,"Edges",PyArrayFromCopiedData(bamggeom->EdgesSize,bamggeom->Edges)); 59 PyDict_SetItemString(dict,"TangentAtEdges",PyArrayFromCopiedData(bamggeom->TangentAtEdgesSize,bamggeom->TangentAtEdges)); 60 PyDict_SetItemString(dict,"RequiredVertices",PyArrayFromCopiedData(bamggeom->RequiredVerticesSize,bamggeom->RequiredVertices)); 61 PyDict_SetItemString(dict,"RequiredEdges",PyArrayFromCopiedData(bamggeom->RequiredEdgesSize,bamggeom->RequiredEdges)); 62 PyDict_SetItemString(dict,"CrackedEdges",PyArrayFromCopiedData(bamggeom->CrackedEdgesSize,bamggeom->CrackedEdges)); 63 PyDict_SetItemString(dict,"SubDomains",PyArrayFromCopiedData(bamggeom->SubDomainsSize,bamggeom->SubDomains)); 64 65 PyTuple_SetItem(py_tuple, index, dict); 53 66 } 54 67 /*}}}*/ … … 56 69 void WriteData(PyObject* py_tuple,int index,BamgMesh* bamgmesh){ 57 70 58 _error_("not implemented yes, see ../../matlab/io/WriteMatlabData.cpp"); 71 PyObject* dict=NULL; 72 73 dict=PyDict_New(); 74 75 PyDict_SetItemString(dict,"Triangles",PyArrayFromCopiedData(bamgmesh->TrianglesSize,bamgmesh->Triangles)); 76 PyDict_SetItemString(dict,"Vertices",PyArrayFromCopiedData(bamgmesh->VerticesSize,bamgmesh->Vertices)); 77 PyDict_SetItemString(dict,"Edges",PyArrayFromCopiedData(bamgmesh->EdgesSize,bamgmesh->Edges)); 78 PyDict_SetItemString(dict,"IssmSegments",PyArrayFromCopiedData(bamgmesh->IssmSegmentsSize,bamgmesh->IssmSegments)); 79 PyDict_SetItemString(dict,"IssmEdges",PyArrayFromCopiedData(bamgmesh->IssmEdgesSize,bamgmesh->IssmEdges)); 80 PyDict_SetItemString(dict,"Quadrilaterals",PyArrayFromCopiedData(bamgmesh->QuadrilateralsSize,bamgmesh->Quadrilaterals)); 81 PyDict_SetItemString(dict,"VerticesOnGeomVertex",PyArrayFromCopiedData(bamgmesh->VerticesOnGeomVertexSize,bamgmesh->VerticesOnGeomVertex)); 82 PyDict_SetItemString(dict,"VerticesOnGeomEdge",PyArrayFromCopiedData(bamgmesh->VerticesOnGeomEdgeSize,bamgmesh->VerticesOnGeomEdge)); 83 PyDict_SetItemString(dict,"EdgesOnGeomEdge",PyArrayFromCopiedData(bamgmesh->EdgesOnGeomEdgeSize,bamgmesh->EdgesOnGeomEdge)); 84 PyDict_SetItemString(dict,"SubDomains",PyArrayFromCopiedData(bamgmesh->SubDomainsSize,bamgmesh->SubDomains)); 85 PyDict_SetItemString(dict,"SubDomainsFromGeom",PyArrayFromCopiedData(bamgmesh->SubDomainsFromGeomSize,bamgmesh->SubDomainsFromGeom)); 86 PyDict_SetItemString(dict,"ElementConnectivity",PyArrayFromCopiedData(bamgmesh->ElementConnectivitySize,bamgmesh->ElementConnectivity)); 87 PyDict_SetItemString(dict,"NodalConnectivity",PyArrayFromCopiedData(bamgmesh->NodalConnectivitySize,bamgmesh->NodalConnectivity)); 88 PyDict_SetItemString(dict,"NodalElementConnectivity",PyArrayFromCopiedData(bamgmesh->NodalElementConnectivitySize,bamgmesh->NodalElementConnectivity)); 89 PyDict_SetItemString(dict,"CrackedVertices",PyArrayFromCopiedData(bamgmesh->CrackedVerticesSize,bamgmesh->CrackedVertices)); 90 PyDict_SetItemString(dict,"CrackedEdges",PyArrayFromCopiedData(bamgmesh->CrackedEdgesSize,bamgmesh->CrackedEdges)); 91 92 PyTuple_SetItem(py_tuple, index, dict); 93 } 94 /*}}}*/ 95 /*FUNCTION PyArrayFromCopiedData(int dims[2],double* data){{{*/ 96 PyObject* PyArrayFromCopiedData(int dims[2],double* data){ 97 98 double* pydata; 99 npy_intp pydims[2]={0,0}; 100 101 /* note that PyArray_SimpleNewFromData does not copy the data, so that when the original 102 object (e.g. bamggeom,bamgmesh) is deleted, the data is gone. */ 103 104 pydims[0]=(npy_intp)dims[0]; 105 pydims[1]=(npy_intp)dims[1]; 106 pydata=xNew<IssmDouble>(dims[0]*dims[1]); 107 memcpy(pydata,data,dims[0]*dims[1]*sizeof(double)); 108 return PyArray_SimpleNewFromData(2,pydims,NPY_DOUBLE,pydata); 59 109 } 60 110 /*}}}*/
Note:
See TracChangeset
for help on using the changeset viewer.