FiberBundleHDF5  FiberHDF5 Documentation, Revision 2026
High-Performance Fiber Bundle Data Model for Scientific Visualization
Loading...
Searching...
No Matches
F5image.h File Reference
#include "F5types.h"
#include "F5coordinates.h"
#include "F5WinDLLApi.h"

Go to the source code of this file.

Data Structures

struct  F5spectrum_t
struct  F5image

Macros

#define F5_IMAGE_RGB_FLOAT_INTENSITY   "Intensity"
#define F5_IMAGE_RGB_FLOAT_TRANSPARENCY   "Transparency"
#define F5_IMAGE_FINAL_VIEW   "Directions"
#define F5_IMAGE_ZBUFFER   "Zvalues"
#define F5_IMAGE_RGB16_INTENSITY   "Intensity16"
#define F5_IMAGE_RGB16_TRANSPARENCY   "Transparency16"
#define F5_IMAGE_RGB8_INTENSITY   "Intensity8"
#define F5_IMAGE_RGB8_TRANSPARENCY   "Transparency8"
#define F5_IMAGE_ALPHA_CHANNEL   "alpha"
#define F5_IMAGE_LEFT_STEREO   "left"
#define F5_IMAGE_RIGHT_STEREO   "right"
#define F5_IMAGE_EQUATORIAL_CIRCUMVENTION   "observer%05d"
#define F5_IMAGE_CELESTIAL_CIRCUMVENTION   "observer@%05dx%05d"

Functions

F5_API hid_t F5spectrum_tid (F5spectrum_t *data)
F5_API void initF5image (F5image *)
F5_API void deleteF5image (F5image *)
F5_API void saveF5image (F5image *, const char *filename, const char *viewpoint_description, const char *scenery)

Macro Definition Documentation

◆ F5_IMAGE_ALPHA_CHANNEL

#define F5_IMAGE_ALPHA_CHANNEL   "alpha"

Definition at line 60 of file F5image.h.

◆ F5_IMAGE_CELESTIAL_CIRCUMVENTION

#define F5_IMAGE_CELESTIAL_CIRCUMVENTION   "observer@%05dx%05d"

Definition at line 65 of file F5image.h.

◆ F5_IMAGE_EQUATORIAL_CIRCUMVENTION

#define F5_IMAGE_EQUATORIAL_CIRCUMVENTION   "observer%05d"

Definition at line 64 of file F5image.h.

◆ F5_IMAGE_FINAL_VIEW

#define F5_IMAGE_FINAL_VIEW   "Directions"

Definition at line 54 of file F5image.h.

Referenced by saveF5image().

◆ F5_IMAGE_LEFT_STEREO

#define F5_IMAGE_LEFT_STEREO   "left"

Definition at line 62 of file F5image.h.

◆ F5_IMAGE_RGB16_INTENSITY

#define F5_IMAGE_RGB16_INTENSITY   "Intensity16"

Definition at line 56 of file F5image.h.

◆ F5_IMAGE_RGB16_TRANSPARENCY

#define F5_IMAGE_RGB16_TRANSPARENCY   "Transparency16"

Definition at line 57 of file F5image.h.

◆ F5_IMAGE_RGB8_INTENSITY

#define F5_IMAGE_RGB8_INTENSITY   "Intensity8"

Definition at line 58 of file F5image.h.

◆ F5_IMAGE_RGB8_TRANSPARENCY

#define F5_IMAGE_RGB8_TRANSPARENCY   "Transparency8"

Definition at line 59 of file F5image.h.

◆ F5_IMAGE_RGB_FLOAT_INTENSITY

#define F5_IMAGE_RGB_FLOAT_INTENSITY   "Intensity"
Examples
ObjtoF5.c.

Definition at line 52 of file F5image.h.

Referenced by saveF5image().

◆ F5_IMAGE_RGB_FLOAT_TRANSPARENCY

#define F5_IMAGE_RGB_FLOAT_TRANSPARENCY   "Transparency"

Definition at line 53 of file F5image.h.

Referenced by saveF5image().

◆ F5_IMAGE_RIGHT_STEREO

#define F5_IMAGE_RIGHT_STEREO   "right"

Definition at line 63 of file F5image.h.

◆ F5_IMAGE_ZBUFFER

#define F5_IMAGE_ZBUFFER   "Zvalues"

Definition at line 55 of file F5image.h.

Function Documentation

◆ deleteF5image()

F5_API void deleteF5image ( F5image * )

References F5_API.

◆ F5spectrum_tid()

F5_API hid_t F5spectrum_tid ( F5spectrum_t * data)

References F5_API.

◆ initF5image()

F5_API void initF5image ( F5image * This)

Definition at line 9 of file F5image.c.

10{
11 This->height = 0;
12 This->width = 0;
13
14 This->time = 0.0;
15 This->viewangle = 0.0;
16
17 This->viewpoint.x =
18 This->viewpoint.y =
19 This->viewpoint.z = 0.0;
20
21 This->origin.x =
22 This->origin.y =
23 This->origin.z = 0.0;
24
25 This->x_direction.x =
26 This->x_direction.y =
27 This->x_direction.z = 0.0;
28
29 This->y_direction.x =
30 This->y_direction.y =
31 This->y_direction.z = 0.0;
32
33 This->directions = NULL;
34
35 This->intensity = NULL;
36 This->transparency = NULL;
37 This->zvalues = NULL;
38
39 This->intensity16 = NULL;
40 This->transparency16 = NULL;
41 This->zvalues16 = NULL;
42
43 This->intensity8 = NULL;
44 This->transparency8 = NULL;
45 This->zvalues8 = NULL;
46
47 This->alpha = NULL;
48
49 This->spectrum = NULL;
50}
F5spectrum_t * spectrum
Definition F5image.h:111
F5_vec3_double_t origin
Definition F5image.h:91
F5_float_t * zvalues
Definition F5image.h:99
F5_rgb16_t * intensity16
Definition F5image.h:101
F5_vec3_double_t y_direction
Definition F5image.h:93
double time
Definition F5image.h:86
F5_rgb16_t * transparency16
Definition F5image.h:102
F5_vec3_float_t * directions
Definition F5image.h:95
F5_rgb_real_t * transparency
Definition F5image.h:98
F5_vec3_double_t viewpoint
Definition F5image.h:89
int width
Definition F5image.h:84
F5_rgb_real_t * intensity
Definition F5image.h:97
F5_vec3_double_t x_direction
Definition F5image.h:92
F5_rgb_t * intensity8
Definition F5image.h:105
unsigned short * zvalues16
Definition F5image.h:103
F5_rgb_t * transparency8
Definition F5image.h:106
unsigned char * alpha
Definition F5image.h:109
unsigned char * zvalues8
Definition F5image.h:107
int height
Definition F5image.h:83
double viewangle
Definition F5image.h:87

References F5image::alpha, F5image::directions, F5image::height, F5image::intensity, F5image::intensity16, F5image::intensity8, F5image::origin, F5image::spectrum, F5image::time, F5image::transparency, F5image::transparency16, F5image::transparency8, F5image::viewangle, F5image::viewpoint, F5image::width, F5_vec3_double_t::x, F5image::x_direction, F5_vec3_double_t::y, F5image::y_direction, F5_vec3_double_t::z, F5image::zvalues, F5image::zvalues16, and F5image::zvalues8.

◆ saveF5image()

F5_API void saveF5image ( F5image * This,
const char * filename,
const char * viewpoint_description,
const char * scenery )
Parameters
filenameThe file name where to store the image
viewpoint_descriptionSome name for the viewpoint.
scenerySome description of the image
Note
All image with the same scenery must have identical resolution (height, widht).

Definition at line 53 of file F5image.c.

55{
56char buf[4096];
57hid_t File_id = F5append(filename);
58
59 printf("saveF5image(, %s, %s, %s)\n", filename, vp_txt, scenery);
60
61 if (!vp_txt || !*vp_txt)
62 vp_txt = "StandardView";
63
64 if (File_id<0)
65 {
66 printf("saveF5image(): Cannot open %s\n", filename);
67 return;
68 }
69
70 if (!scenery)
71 {
72 char*s;
73 scenery = strrchr(filename, '/');
74 if (scenery)
75 strcpy(buf, scenery+1);
76 else
77 strcpy(buf, filename);
78 s = strrchr(buf, '.');
79 if (s) *s = 0;
80 scenery = buf;
81 printf("saveF5image(): scenery set to '%s'\n", scenery);
82 }
83/*
84 if (This->intensity)
85 puts("Have image float data");
86 if (This->transparency)
87 puts("Have image transparency data");
88 if (This->alpha)
89 puts("Have image alpha data");
90*/
91 {
92 F5Path*myPath = F5Rcreate_cartesian_nD(File_id, This->time,
93 scenery, /* gridname, */
94 2,
95 vp_txt); /* coordinate_system); */
96
97/*
98 hid_t Slice_hid = F5Bappend_slice(File_id, &This->time);
99 {
100 hid_t Grid_hid = F5Gappend(Slice_hid, scenery, 0) ;
101 hid_t Charts_hid = F5Gappend(Grid_hid, FIBER_HDF5_CHARTS_PER_GRID, 0) ;
102 hid_t VPChart_hid = F5Gappend(Charts_hid, vp_txt, 0) ;
103 hid_t Transf_hid = F5Gappend(VPChart_hid, FIBER_HDF5_DEFAULT_CHART, 0) ;
104 hid_t Top_hid = F5Gappend(Grid_hid, FIBER_HDF5_POINTS, 0) ;
105 hid_t Rep_hid = F5Gappend(Top_hid, vp_txt, 0) ;
106*/
107 hsize_t imgdims[2];
108 imgdims[0] = This->width ;
109 imgdims[1] = This->height;
110
111 { F5_vec3_double_t delta; delta.x = delta.y = delta.z = 1.0;
112
114 F5T_VEC3_DOUBLE, (void*)&(This->origin), &delta);
115 }
116
117 /*
118 //
119 // Storing image metadata information
120 //
121 {
122 hid_t Pos_hid = F5Gappend(Rep_hid, FIBER_HDF5_POSITIONS_STRING, 0) ;
123 hid_t space_hid = H5Screate(H5S_SCALAR);
124 hid_t attr_hid = F5Aappend(Pos_hid, "origin", F5T_VEC3_DOUBLE, space_hid, H5P_DEFAULT);
125 H5Awrite(attr_hid, F5T_VEC3_DOUBLE, (void*)&(This->origin));
126 H5Aclose(attr_hid);
127
128 attr_hid = F5Aappend(Pos_hid, "x", F5T_VEC3_DOUBLE, space_hid, H5P_DEFAULT);
129 H5Awrite(attr_hid, F5T_VEC3_DOUBLE, (void*)&(This->x_direction));
130 H5Aclose(attr_hid);
131
132 attr_hid = F5Aappend(Pos_hid, "y", F5T_VEC3_DOUBLE, space_hid, H5P_DEFAULT);
133 H5Awrite(attr_hid, F5T_VEC3_DOUBLE, (void*)&(This->y_direction));
134 H5Aclose(attr_hid);
135
136 attr_hid = F5Aappend(Transf_hid, "shift", F5T_VEC3_DOUBLE, space_hid, H5P_DEFAULT);
137 H5Awrite(attr_hid, F5T_VEC3_DOUBLE, (void*)&(This->viewpoint));
138 H5Aclose(attr_hid);
139
140 H5Sclose(space_hid);
141 H5Gclose(Pos_hid);
142 }
143 */
144
145 //
146 // Storing image data information
147 //
148 {
149// hid_t img_ds = H5Screate_simple(2, imgdims, NULL);
150 hid_t creator_hid = H5Pcreate(H5P_DATASET_CREATE);
151
152 if (This->directions)
153 {
154 F5Fwrite( myPath, F5_IMAGE_FINAL_VIEW, 2, imgdims, F5T_RGB_REAL, F5T_RGB_REAL, This->directions, creator_hid);
155 // hid_t id = F5Dappend(Rep_hid, F5_IMAGE_FINAL_VIEW, F5T_VEC3_FLOAT, img_ds, creator_hid);
156 // H5Dwrite(id, F5T_VEC3_FLOAT, H5S_ALL, H5S_ALL, H5P_DEFAULT, This->directions);
157 // H5Dclose(id);
158 }
159
160 if (This->intensity)
161 {
162 // puts("Saving intensity...");
163 // F5FwriteIMAGE( myPath, F5_IMAGE_RGB_FLOAT_INTENSITY, 2, imgdims, F5T_RGB_REAL, F5T_RGB_REAL, This->intensity, creator_hid);
164 F5Fwrite ( myPath, F5_IMAGE_RGB_FLOAT_INTENSITY, 2, imgdims, F5T_RGB_REAL, F5T_RGB_REAL, This->intensity, creator_hid);
165
166// hid_t id = F5Dappend(Rep_hid, F5_IMAGE_RGB_FLOAT_INTENSITY, F5T_RGB_REAL, img_ds, creator_hid);
167// H5Dwrite(id, F5T_RGB_REAL, H5S_ALL, H5S_ALL, H5P_DEFAULT, This->intensity);
168// H5Dclose(id);
169 }
170
171 if (This->transparency)
172 {
173 F5Fwrite( myPath, F5_IMAGE_RGB_FLOAT_TRANSPARENCY, 2, imgdims, F5T_RGB_REAL, F5T_RGB_REAL, This->transparency, creator_hid);
174
175// hid_t id = F5Dappend(Rep_hid, F5_IMAGE_RGB_FLOAT_TRANSPARENCY, F5T_RGB_REAL, img_ds, creator_hid);
176// H5Dwrite(id, F5T_RGB_REAL, H5S_ALL, H5S_ALL, H5P_DEFAULT, This->transparency);
177// H5Dclose(id);
178 }
179 /*
180 if (This->zvalues)
181 {
182 hid_t id = F5Dappend(Rep_hid, F5_IMAGE_ZBUFFER, H5T_NATIVE_FLOAT, img_ds, creator_hid);
183 H5Dwrite(id, H5T_NATIVE_FLOAT, H5S_ALL, H5S_ALL, H5P_DEFAULT, This->zvalues);
184 H5Dclose(id);
185 }
186
187 if (This->intensity16)
188 {
189 hid_t id = F5Dappend(Rep_hid, F5_IMAGE_RGB16_INTENSITY, F5T_RGB16, img_ds, creator_hid);
190 H5Dwrite(id, F5T_RGB16, H5S_ALL, H5S_ALL, H5P_DEFAULT, This->intensity16);
191 H5Dclose(id);
192 }
193
194 if (This->transparency16)
195 {
196 hid_t id = F5Dappend(Rep_hid, F5_IMAGE_RGB16_TRANSPARENCY, F5T_RGB16, img_ds, creator_hid);
197 H5Dwrite(id, F5T_RGB16, H5S_ALL, H5S_ALL, H5P_DEFAULT, This->transparency16);
198 H5Dclose(id);
199 }
200
201 if (This->intensity8)
202 {
203 hid_t id = F5Dappend(Rep_hid, F5_IMAGE_RGB8_INTENSITY, F5T_RGB, img_ds, creator_hid);
204 H5Dwrite(id, F5T_RGB, H5S_ALL, H5S_ALL, H5P_DEFAULT, This->intensity8);
205 H5Dclose(id);
206 }
207
208 if (This->transparency8)
209 {
210 hid_t id = F5Dappend(Rep_hid, F5_IMAGE_RGB8_TRANSPARENCY, F5T_RGB, img_ds, creator_hid);
211 H5Dwrite(id, F5T_RGB, H5S_ALL, H5S_ALL, H5P_DEFAULT, This->transparency8);
212 H5Dclose(id);
213 }
214
215 if (This->alpha)
216 {
217 hid_t id = F5Dappend(Rep_hid, F5_IMAGE_ALPHA_CHANNEL, H5T_NATIVE_UCHAR, img_ds, creator_hid);
218 H5Dwrite(id, H5T_NATIVE_UCHAR, H5S_ALL, H5S_ALL, H5P_DEFAULT, This->alpha);
219 H5Dclose(id);
220 }
221
222 H5Sclose(img_ds);
223 */
224 H5Pclose(creator_hid);
225 }
226/*
227 H5Gclose(Transf_hid);
228 H5Gclose(VPChart_hid);
229 H5Gclose(Charts_hid);
230 H5Gclose(Rep_hid);
231 H5Gclose(Top_hid);
232 H5Gclose(Grid_hid);
233 }
234
235 H5Gclose( Slice_hid );
236*/
237 F5close( myPath );
238 }
239
240 H5Fclose(File_id);
241}
#define F5T_VEC3_DOUBLE
#define FIBER_HDF5_POSITIONS_STRING
Definition F5defs.h:63
#define F5_IMAGE_RGB_FLOAT_TRANSPARENCY
Definition F5image.h:53
#define F5_IMAGE_RGB_FLOAT_INTENSITY
Definition F5image.h:52
#define F5_IMAGE_FINAL_VIEW
Definition F5image.h:54
#define F5T_RGB_REAL
Definition F5types.h:42
F5_API int F5Fwrite_linear(F5Path *fpath, const char *fieldname, int rank, hsize_t *dims, hid_t fieldtype, const void *base, const void *delta)
Definition F5F.c:1464
F5ErrorCode F5Fwrite(F5Path *fpath, const char *fieldname, int rank, hsize_t *dims, hid_t fieldtype, hid_t memtype, const void *dataPtr, hid_t property_id)
Definition F5F.c:467
void F5close(F5Path *f)
Definition F5B.c:186
F5Path * F5Rcreate_cartesian_nD(hid_t File_id, double time, const char *gridname, int Dims, const char *coordinate_system)
Definition F5R.c:116
hid_t F5append(const char *filename)
Definition F5X.c:225

References F5image::directions, F5_IMAGE_FINAL_VIEW, F5_IMAGE_RGB_FLOAT_INTENSITY, F5_IMAGE_RGB_FLOAT_TRANSPARENCY, F5append(), F5close(), F5Fwrite(), F5Fwrite_linear(), F5Rcreate_cartesian_nD(), F5T_RGB_REAL, F5T_VEC3_DOUBLE, FIBER_HDF5_POSITIONS_STRING, F5image::height, F5image::intensity, F5image::origin, F5image::time, F5image::transparency, F5image::width, F5_vec3_double_t::x, F5_vec3_double_t::y, and F5_vec3_double_t::z.