- added functions: H5Block3d{G,S}etFieldOrigin(), H5Block3d{G,S}etSpacing()

This commit is contained in:
2011-02-24 16:34:51 +00:00
parent 427c550993
commit a8dd08c5bf
2 changed files with 151 additions and 0 deletions
+116
View File
@@ -465,3 +465,119 @@ H5BlockGetFieldAttribInfo (
attrib_nelem));
}
#define H5BLOCK_FIELD_ORIGIN_NAME "__Origin__"
#define H5BLOCK_FIELD_SPACING_NAME "__Spacing__"
/*!
\ingroup h5block_c_api
Get field origin.
\return \c H5_SUCCESS or error code
*/
h5_err_t
H5Block3dGetFieldOrigin (
h5_file_t *f, /*!< IN: file handle */
const char *field_name, /*!< IN: field name */
h5_float64_t *x_origin, /*!< OUT: X origin */
h5_float64_t *y_origin, /*!< OUT: Y origin */
h5_float64_t *z_origin /*!< OUT: Z origin */
) {
H5_API_ENTER (h5_err_t);
h5_float64_t origin[3];
TRY (h5_read_field_attrib (
f,
field_name,
H5BLOCK_FIELD_ORIGIN_NAME,
H5_FLOAT64_T,
origin));
*x_origin = origin[0];
*y_origin = origin[1];
*z_origin = origin[2];
H5_API_RETURN (H5_SUCCESS);
}
/*!
\ingroup h5block_c_api
Set field origin.
\return \c H5_SUCCESS or error code
*/
h5_err_t
H5Block3dSetFieldOrigin (
h5_file_t *f, /*!< IN: file handle */
const char *field_name, /*!< IN: field name */
const h5_float64_t x_origin, /*!< IN: X origin */
const h5_float64_t y_origin, /*!< IN: Y origin */
const h5_float64_t z_origin /*!< IN: Z origin */
) {
H5_API_ENTER (h5_err_t);
h5_float64_t origin[3] = { x_origin, y_origin, z_origin };
H5_API_RETURN (h5_write_field_attrib (
f,
field_name,
H5BLOCK_FIELD_ORIGIN_NAME,
(hid_t)H5_FLOAT64_T,
origin,
3));
}
/*!
\ingroup h5block_c_api
Get field spacing for field \c field_name in the current time step.
\return \c H5_SUCCESS or error code
*/
h5_err_t
H5Block3dGetFieldSpacing (
h5_file_t *f, /*!< IN: file handle */
const char *field_name, /*!< IN: field name */
h5_float64_t *x_spacing, /*!< OUT: X spacing */
h5_float64_t *y_spacing, /*!< OUT: Y spacing */
h5_float64_t *z_spacing /*!< OUT: Z spacing */
) {
H5_API_ENTER (h5_err_t);
h5_float64_t spacing[3];
TRY (h5_read_field_attrib (
f,
field_name,
H5BLOCK_FIELD_SPACING_NAME,
H5_FLOAT64_T,
spacing));
*x_spacing = spacing[0];
*y_spacing = spacing[1];
*z_spacing = spacing[2];
H5_API_RETURN (H5_SUCCESS);
}
/*!
\ingroup h5block_c_api
Set field spacing for field \c field_name in the current time step.
\return \c H5_SUCCESS or error code
*/
h5_err_t
H5Block3dSetFieldSpacing (
h5_file_t *f, /*!< IN: file handle */
const char *field_name, /*!< IN: field name */
const h5_float64_t x_spacing, /*!< IN: X spacing */
const h5_float64_t y_spacing, /*!< IN: Y spacing */
const h5_float64_t z_spacing /*!< IN: Z spacing */
) {
H5_API_ENTER (h5_err_t);
h5_float64_t spacing[3] = { x_spacing, y_spacing, z_spacing };
H5_API_RETURN (h5_write_field_attrib (
f,
field_name,
H5BLOCK_FIELD_SPACING_NAME,
(hid_t)H5_FLOAT64_T,
spacing,
3));
}
+35
View File
@@ -153,5 +153,40 @@ H5BlockGetFieldAttribInfo (
h5_size_t *const attrib_nelem /*<! OUT: Number of elements */
);
h5_err_t
H5Block3dGetFieldOrigin (
h5_file_t *f,
const char *field_name,
h5_float64_t *x_origin,
h5_float64_t *y_origin,
h5_float64_t *z_origin
);
h5_err_t
H5Block3dSetFieldOrigin (
h5_file_t *f,
const char *field_name,
const h5_float64_t x_origin,
const h5_float64_t y_origin,
const h5_float64_t z_origin
);
h5_err_t
H5Block3dGetFieldSpacing (
h5_file_t *f,
const char *field_name,
h5_float64_t *x_spacing,
h5_float64_t *y_spacing,
h5_float64_t *z_spacing
);
h5_err_t
H5Block3dSetFieldSpacing (
h5_file_t *f,
const char *field_name,
const h5_float64_t x_spacing,
const h5_float64_t y_spacing,
const h5_float64_t z_spacing
);
#endif