FiberBundleHDF5  FiberHDF5 Documentation, Revision 2026
High-Performance Fiber Bundle Data Model for Scientific Visualization
Loading...
Searching...
No Matches
F5iterate.h File Reference
#include "hdf5inc.h"
#include "F5P.h"
#include "F5F.h"
#include "F5parameter.h"
#include "F5WinDLLApi.h"

Go to the source code of this file.

typedef herr_t F5_iterate_paramspace_t(F5Path *path, const F5ParameterSpace *params, void *user_data)
typedef herr_t F5_iterate_timeslices_t(F5Path *path, double time, void *user_data)
typedef herr_t F5_iterate_grids_t(F5Path *F5Grid, const char *gridname, void *user_data)
typedef herr_t F5_iterate_topologies_t(F5Path *field, const char *topologyname, int index_depth, int topological_dimension, void *operator_data)
typedef herr_t F5_iterate_fields_t(F5Path *field, const char *fieldname, void *operator_data, const char *representer_name)
typedef int F5_fieldtype_t(hid_t type_id)
typedef herr_t F5_iterate_grid_atlas_t(F5Path *grid, const char *coordinate_name, hid_t global_chart_hid, hid_t domain_group_hid, void *operator_data)
typedef herr_t F5_iterate_fields_fragments_t(F5Path *field, const char *fragmentname, void *operator_data)
typedef herr_t F5_iterate_grids_per_bundle_t(hid_t file_id, hid_t gridinfo_id, const char *gridname, void *user_data)
typedef herr_t F5_iterate_gridevolution_per_bundle_t(hid_t file_id, const char *gridname, double time, const char *slicename, void *user_data)
F5_API int F5Iignore (const char *s)
F5_API int F5iterate_paramspace (hid_t file_id, int *idx, const F5ParameterSpace *selection, F5_iterate_paramspace_t *callback, void *user_data)
F5_API int F5iterate_timeslices (hid_t file_id, hsize_t *idx, F5_iterate_timeslices_t *callback, void *user_data)
F5_API int F5iterate_grids (F5Path *F5Slice, int *idx, F5_iterate_grids_t *callback, void *operator_data, F5_gridproperty_t **gridtypes, const char *coordinate_system)
F5_API int F5iterate_topologies (F5Path *grid, int *idx, F5_iterate_topologies_t *callback, void *operator_data)
F5_API int F5iterate_representations (F5Path *skeleton, int *idx, F5_iterate_representations_t *callback, void *operator_data)
F5_API int F5iterate_fields (F5Path *representation, int *idx, const char *representer_name, F5_iterate_fields_t *callback, void *operator_data)
F5_API int F5iterate_vertex_fields (F5Path *grid, int *idx, F5_iterate_fields_t *callback, void *operator_data, const char *coordinate_system, F5_fieldtype_t *what)
F5_API int F5iterate_topology_fields (F5Path *skeleton, int *idx, F5_iterate_fields_t *callback, void *operator_data, const char *coordinate_system, F5_fieldtype_t *what)
F5_API int F5iterate_grid_atlas (F5Path *grid, int *idx, F5_iterate_grid_atlas_t *callback, void *operator_data)
F5_API int F5has_standard_vertex_fields (F5Path *grid)
F5_API int F5iterate_field_fragments (F5Path *field, int *idx, F5_iterate_fields_fragments_t *callback, void *operator_data)
F5_API int F5iterate_grids_per_bundle (hid_t file_id, int *idx, F5_iterate_grids_per_bundle_t *callback, void *user_data)
F5_API int F5iterate_gridevolution (hid_t file_id, int *idx, F5_iterate_gridevolution_per_bundle_t *callback, void *user_data, F5_iterate_grids_per_bundle_t *gridinfo)

Typedef Documentation

◆ F5_iterate_fields_fragments_t

typedef herr_t F5_iterate_fields_fragments_t(F5Path *field, const char *fragmentname, void *operator_data)

Definition at line 199 of file F5iterate.h.

◆ F5_iterate_paramspace_t

typedef herr_t F5_iterate_paramspace_t(F5Path *path, const F5ParameterSpace *params, void *user_data)

Definition at line 51 of file F5iterate.h.

Function Documentation

◆ F5iterate_field_fragments()

F5_API int F5iterate_field_fragments ( F5Path * field,
int * idx,
F5_iterate_fields_fragments_t * callback,
void * operator_data )

Definition at line 1006 of file F5iterate.c.

1007{
1008 /*printf("test here.. \n"); */
1009 if (!field)
1010 {
1011 /*printf( "F5iterate_field_fragments(): No Field given!\n"); */
1012 F5printf(1, "F5iterate_field_fragments(): No Field given!\n");
1013 return 0;
1014 }
1015 if (!field->Field_hid)
1016 {
1017 /*printf("F5iterate_field_fragments(): Field not open, forget to open it?\n"); */
1018 F5printf(1, "F5iterate_field_fragments(): Field not open, forget to open it?\n");
1019 return 0;
1020 }
1021 if (!F5Fis_group(field) )
1022 {
1023 /*printf("F5iterate_field_fragments(): Field is not a group!?\n"); */
1024 F5printf(1, "F5iterate_field_fragments(): Field is not a group!?\n");
1025 return 0;
1026 }
1027 if (!callback)
1028 {
1029 /*printf("F5iterate_field_fragments(): No Callback function given!\n"); */
1030 F5printf(1, "F5iterate_field_fragments(): No Callback function given!\n");
1031 return 0;
1032 }
1033
1034 {
1035 struct FieldFragmentParams That;
1036 int IterateByName = 0;
1037 int major_version, minor_version, release_version;
1038// ArrayType at =
1039 F5Fget_field_enum(field, NULL,
1040 &major_version, &minor_version, &release_version);
1041
1042 // fragments were introduced with 0.1.3
1043 if (major_version == 0 &&
1044 minor_version == 1 &&
1045 release_version < 3)
1046 {
1047 printf( "F5iterate_field_fragments(): Incompatible version %d.%d.%d!\n",
1048 major_version, minor_version, release_version);
1049
1050 F5printf(1, "F5iterate_field_fragments(): Incompatible version %d.%d.%d!\n",
1051 major_version, minor_version, release_version);
1052 return 0;
1053 }
1054
1055 That.callback = callback;
1056 That.path = field;
1057 That.operator_data = operator_data;
1058
1059 F5printf(100, "F5iterate_field_fragments()");
1060#if 0
1061 return H5Giterate(field->Field_hid, ".", idx, H5G_iterate_field_fragments, &That);
1062#else
1063
1064 if (major_version == 0 &&
1065 minor_version == 1 &&
1066 release_version < 6)
1067 IterateByName = 1;
1068
1069 {
1070 hid_t gcpl_id = H5Gget_create_plist( field->Field_hid );
1071 unsigned crt_order_flags; // The flags for link creation order
1072 H5Pget_link_creation_order(gcpl_id, &crt_order_flags);
1073 H5Pclose(gcpl_id);
1074
1075 if (crt_order_flags & H5P_CRT_ORDER_TRACKED &&
1076 crt_order_flags & H5P_CRT_ORDER_INDEXED)
1077 IterateByName = 0;
1078 }
1079
1080 if (IterateByName)
1081 {
1082 F5printf(30, "F5iterate_field_fragments() using naming order");
1083 return H5Literate(field->Field_hid, H5_INDEX_NAME, H5_ITER_NATIVE, 0, H5L_iterate_field_fragments, &That);
1084 }
1085 else
1086 {
1087 F5printf(30, "F5iterate_field_fragments() using Creation order");
1088 return H5Literate(field->Field_hid, H5_INDEX_CRT_ORDER, H5_ITER_NATIVE, 0, H5L_iterate_field_fragments, &That);
1089 }
1090#endif
1091 }
1092}
int F5Fis_group(const F5Path *fpath)
Definition F5F.c:126
ArrayType F5Fget_field_enum(const F5Path *fpath, const char *fieldname, int *major_version, int *minor_version, int *release_version)
Definition F5F.c:17
#define F5printf(verbosity,...)
Definition F5private.h:60
hid_t Field_hid
Definition F5Path.h:59
F5_iterate_fields_fragments_t * callback
Definition F5iterate.c:983

References FieldFragmentParams::callback, F5Fget_field_enum(), F5Fis_group(), F5printf, F5Path::Field_hid, FieldFragmentParams::operator_data, and FieldFragmentParams::path.

◆ F5iterate_grid_atlas()

F5_API int F5iterate_grid_atlas ( F5Path * grid,
int * idx,
F5_iterate_grid_atlas_t * callback,
void * operator_data )

Definition at line 949 of file F5iterate.c.

950{
951int retval;
952struct GridAtlasParams GAP;
953 if (!grid) return 0;
954 if (! (grid->Grid_hid>0) )
955 {
956 F5printf(10, "F5iterate_grid_atlas(): No valid Grid ID in path, cannot iterate.\n");
957 return 0;
958 }
959
960 if (grid->Chart_hid>0)
961 {
962 F5printf(10, "F5iterate_grid_atlas(): Grid path already contains a chart, cannot iterate.\n");
963 return 0;
964 }
965
967 GAP.callback = callback;
968 GAP.path = grid;
969
970 F5printf(10, "F5iterate_grid_atlas()");
971
972 retval = H5Giterate(grid->Grid_hid, FIBER_HDF5_CHARTS_PER_GRID, idx, H5G_iterate_grid_atlas, &GAP);
973
974 return retval;
975}
#define FIBER_HDF5_CHARTS_PER_GRID
Definition F5defs.h:110
hid_t Grid_hid
Definition F5Path.h:53
hid_t Chart_hid
Definition F5Path.h:56
F5_iterate_grid_atlas_t * callback
Definition F5iterate.c:783
void * operator_data
Definition F5iterate.c:785

References GridAtlasParams::callback, F5Path::Chart_hid, F5printf, FIBER_HDF5_CHARTS_PER_GRID, F5Path::Grid_hid, GridAtlasParams::operator_data, and GridAtlasParams::path.