00001
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
00035 #ifndef glutil_h__
00036 #define glutil_h__
00037
00038 #include <vector>
00039 #include "vec3.h"
00040
00041 using std::vector;
00042
00043 namespace EMAN
00044 {
00045 class EMData;
00046 class MarchingCubes;
00047
00048 class GLUtil {
00049 public:
00053 static unsigned int gen_glu_mipmaps(const EMData* const emdata);
00054
00058 static unsigned int gen_gl_texture(const EMData* const emdata);
00059
00063 static unsigned int render_amp8_gl_texture(EMData* emdata, int x0, int y0, int ixsize, int iysize, int bpl, float scale, int mingray, int maxgray, float render_min, float render_max,float gamma,int flags);
00064
00068 static int nearest_projected_points(const vector<float>& model_matrix, const vector<float>& proj_matrix, const vector<int>& view_matrix, const vector<Vec3f>& points, const float mouse_x, const float mouse_y,const float& nearnes);
00069 static void colored_rectangle(const vector<float>& data,const float& alpha, const bool center_point=false);
00070 static void mx_bbox(const vector<float>& data, const vector<float>& text_color, const vector<float>& bg_color);
00071
00090 static std::string render_amp8(EMData * emdata, int x, int y, int xsize, int ysize,
00091 int bpl, float scale, int min_gray, int max_gray,
00092 float min_render, float max_render,float gamma,int flags);
00093
00099 static unsigned long get_isosurface_dl(MarchingCubes* mc, unsigned int tex_id = 0, bool surface_face_z = false);
00100 };
00101 }
00102
00103 #endif //glutil_h__