F5image.h

00001 
00002 //
00003 // $Id: F5image.h,v 1.5 2004/03/22 15:30:05 werner Exp $
00004 //
00005 // $Log: F5image.h,v $
00006 // Revision 1.5  2004/03/22 15:30:05  werner
00007 // Generalized treatment of refinement within the framework of relative representations. Closer to better support of downsampling topologies.
00008 // Improved documentation.
00009 //
00010 // Revision 1.4  2003/11/13 12:49:54  werner
00011 // Adjusted includes for Windows,
00012 // and added prototype information for generic tensor description types.
00013 //
00014 // Revision 1.3  2003/05/27 11:52:15  zib
00015 // added F5_API stuff to build dll, if you like to build
00016 // a static lib you'll have to define F5_STATIC during every
00017 // build using the headers
00018 //
00019 // Revision 1.2  2002/11/11 17:08:43  werner
00020 // Added a preliminiary interface for AMR data.
00021 //
00022 // Revision 1.1  2001/10/18 19:58:17  werner
00023 // Preliminiary HDF5 Fiber C library
00024 //
00025 // Revision 1.1.1.1  2000/02/10 20:08:25  cvs
00026 // GNU Emacs Configurations
00027 //
00028 // Revision 1.1.1.1  1999/12/02 14:25:59  werner
00029 // Emacs configurations
00030 //
00031 // Revision 1.1.1.1  1999/01/13 13:59:50  werner
00032 // GNU Emacs startup lisp files.
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 }    // extern "C"
00127 #endif
00128 
00129 #endif  /* __F5image_H */
00130