[cig-commits] r4485 - mc/3D/CitcomS/trunk/visual/Mayavi2
luis at geodynamics.org
luis at geodynamics.org
Wed Sep 6 14:01:50 PDT 2006
Author: luis
Date: 2006-09-06 14:01:50 -0700 (Wed, 06 Sep 2006)
New Revision: 4485
Modified:
mc/3D/CitcomS/trunk/visual/Mayavi2/Citcoms_Hdf2Vtk.c
Log:
Added function to retrieve float attributes from HDF5 file.
Modified: mc/3D/CitcomS/trunk/visual/Mayavi2/Citcoms_Hdf2Vtk.c
===================================================================
--- mc/3D/CitcomS/trunk/visual/Mayavi2/Citcoms_Hdf2Vtk.c 2006-09-06 20:18:19 UTC (rev 4484)
+++ mc/3D/CitcomS/trunk/visual/Mayavi2/Citcoms_Hdf2Vtk.c 2006-09-06 21:01:50 UTC (rev 4485)
@@ -20,8 +20,8 @@
#include <stdio.h>
#include <stdlib.h>
#include <assert.h>
-#include <hdf5.h>
#include <math.h>
+#include "hdf5.h"
typedef struct vtk_pixel_t
{
@@ -684,7 +684,42 @@
return -1;
}
+static herr_t get_attribute_float(hid_t input, const char *name, int *val)
+{
+ hid_t attr_id;
+ hid_t type_id;
+ H5T_class_t type_class;
+ size_t type_size;
+ herr_t status;
+
+ char *strval;
+
+ attr_id = H5Aopen_name(input, name);
+ type_id = H5Aget_type(attr_id);
+ type_class = H5Tget_class(type_id);
+ type_size = H5Tget_size(type_id);
+
+ H5Tclose(type_id);
+ H5Aclose(attr_id);
+
+ switch(type_class)
+ {
+ case H5T_STRING:
+ status = get_attribute_str(input, name, &strval);
+ if (status < 0) return -1;
+ *val = atof(strval);
+ free(strval);
+ return 0;
+ case H5T_FLOAT:
+ status = get_attribute(input, name, H5T_NATIVE_FLOAT, val);
+ if (status < 0) return -1;
+ return 0;
+ }
+ return -1;
+}
+
+
static herr_t get_attribute(hid_t obj_id,
const char *attr_name,
hid_t mem_type_id,
More information about the cig-commits
mailing list