00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00036
00037 #ifndef __F5image_H
00038 #define __F5image_H
00039
00040 #include <F5/F5types.h>
00041 #include <F5/F5coordinates.h>
00042
00043 #include "F5WinDLLApi.h"
00044
00045 #ifdef __cplusplus
00046 extern "C"
00047 {
00048 #endif
00049
00050 #define F5_IMAGE_RGB_FLOAT_INTENSITY "Intensity"
00051 #define F5_IMAGE_RGB_FLOAT_TRANSPARENCY "Transparency"
00052 #define F5_IMAGE_FINAL_VIEW "Directions"
00053 #define F5_IMAGE_ZBUFFER "Zvalues"
00054 #define F5_IMAGE_RGB16_INTENSITY "Intensity16"
00055 #define F5_IMAGE_RGB16_TRANSPARENCY "Transparency16"
00056 #define F5_IMAGE_RGB8_INTENSITY "Intensity8"
00057 #define F5_IMAGE_RGB8_TRANSPARENCY "Transparency8"
00058 #define F5_IMAGE_ALPHA_CHANNEL "alpha"
00059
00060 #define F5_IMAGE_LEFT_STEREO "left"
00061 #define F5_IMAGE_RIGHT_STEREO "right"
00062 #define F5_IMAGE_EQUATORIAL_CIRCUMVENTION "observer%05d"
00063 #define F5_IMAGE_CELESTIAL_CIRCUMVENTION "observer@%05dx%05d"
00064
00065
00066
00067 typedef struct
00068 {
00069 enum { I_lambda, I_nu, I_invariant } type;
00070
00071 double lambda_start, lambda_end;
00072 int n;
00073 double *I;
00074 }
00075 F5spectrum_t;
00076
00077 F5_API hid_t F5spectrum_tid(F5spectrum_t*data);
00078
00079 typedef struct
00080 {
00081 int height,
00082 width;
00083
00084 double time,
00085 viewangle;
00086
00087 F5_vec3_double_t viewpoint;
00088
00089 F5_vec3_double_t origin,
00090 x_direction,
00091 y_direction;
00092
00093 F5_vec3_float_t *directions;
00094
00095 F5_rgb_real_t *intensity;
00096 F5_rgb_real_t *transparency;
00097 F5_float_t *zvalues;
00098
00099 F5_rgb16_t *intensity16;
00100 F5_rgb16_t *transparency16;
00101 unsigned short *zvalues16;
00102
00103 F5_rgb_t *intensity8;
00104 F5_rgb_t *transparency8;
00105 unsigned char *zvalues8;
00106
00107 unsigned char *alpha;
00108
00109 F5spectrum_t *spectrum;
00110 }
00111 F5image;
00112
00113 F5_API void initF5image(F5image*);
00114 F5_API void deleteF5image(F5image*);
00115
00123 F5_API void saveF5image(F5image*, const char*filename, const char*viewpoint_description, const char*scenery);
00124
00125 #ifdef __cplusplus
00126 }
00127 #endif
00128
00129 #endif
00130