00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019 #include <med.h>
00020 #include <med_config.h>
00021 #include <med_outils.h>
00022 #include <string.h>
00023 #include <stdlib.h>
00024
00043 med_err MEDmeshNodeRd(const med_idt fid,
00044 const char * const meshname,
00045 const med_int numdt,
00046 const med_int numit,
00047 const med_switch_mode switchmode,
00048 med_float * const coordinate,
00049 med_bool * const withnodename,
00050 char * const nodename,
00051 med_bool * const withnodenumber,
00052 med_int * const nodenumber,
00053 med_bool * const withfamnumber,
00054 med_int * const famnumber) {
00055
00056 med_err _ret = -1;
00057 med_entity_type _entitype = MED_NODE;
00058 med_geometry_type _geotype = MED_NONE;
00059 med_bool _chgt=MED_FALSE, _trsf=MED_FALSE;
00060
00061 *withnodename = MED_FALSE;
00062 *withnodenumber = MED_FALSE;
00063 *withfamnumber = MED_FALSE;
00064
00065 if ( (_ret = MEDmeshNodeCoordinateRd(fid,
00066 meshname,
00067 numdt,
00068 numit,
00069 switchmode,
00070 coordinate) ) < 0 ) {
00071 MED_ERR_(_ret,MED_ERR_CALL,MED_ERR_API,"MEDmeshNodeCoordinateRd");
00072 goto ERROR;
00073 }
00074
00075
00076 if ( MEDmeshnEntity(fid, meshname, numdt, numit,
00077 _entitype,_geotype,MED_NAME, MED_NO_CMODE,
00078 &_chgt, &_trsf) > 0) {
00079 *withnodename=MED_TRUE;
00080 }
00081
00082
00083 if ( *withnodename )
00084 if ( (_ret = MEDmeshEntityNameRd(fid,
00085 meshname,
00086 numdt,
00087 numit,
00088 _entitype,
00089 _geotype,
00090 nodename) ) < 0 ) {
00091 MED_ERR_(_ret,MED_ERR_CALL,MED_ERR_API,"MEDmeshEntityNameRd");
00092 goto ERROR;
00093 }
00094
00095 if ( MEDmeshnEntity(fid, meshname, numdt, numit,
00096 _entitype,_geotype,MED_NUMBER, MED_NO_CMODE,
00097 &_chgt, &_trsf) > 0) {
00098 *withnodenumber=MED_TRUE;
00099 }
00100
00101
00102 if ( *withnodenumber )
00103 if ( (_ret = MEDmeshEntityNumberRd(fid,
00104 meshname,
00105 numdt,
00106 numit,
00107 _entitype,
00108 _geotype,
00109 nodenumber) ) < 0 ) {
00110 MED_ERR_(_ret,MED_ERR_CALL,MED_ERR_API,"MEDmeshEntityNumberRd");
00111 goto ERROR;
00112 }
00113
00114 if ( MEDmeshnEntity(fid, meshname, numdt, numit,
00115 _entitype,_geotype,MED_FAMILY_NUMBER, MED_NO_CMODE,
00116 &_chgt, &_trsf) > 0) {
00117 *withfamnumber=MED_TRUE;
00118 }
00119
00120
00121 if (*withfamnumber)
00122 if ( (_ret = MEDmeshEntityFamilyNumberRd(fid,
00123 meshname,
00124 numdt,
00125 numit,
00126 _entitype,
00127 _geotype,
00128 famnumber) ) < 0 ) {
00129 MED_ERR_(_ret,MED_ERR_CALL,MED_ERR_API,"MEDmeshEntityFamilyNumberRd");
00130 goto ERROR;
00131 }
00132
00133 _ret = 0;
00134 ERROR:
00135 return _ret;
00136 }