/usr/include/miaviewit-1.0/viewit/texture.hh is in libmiaviewit-dev 1.0.1-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 | /* -*- mia-c++ -*-
*
* This file is part of viewitgui - a library and program for the
* visualization of 3D data sets.
*
* Copyright (c) Leipzig, Madrid 1999-2013 Mirco Hellmann, Gert Wollny
*
* viewitgui is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 3 of the License, or
* (at your option) any later version.
*
* viewitgui is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with viewitgui; if not, see <http://www.gnu.org/licenses/>.
*/
#ifndef __texture_h
#define __texture_h
#ifdef HAVE_CONFIG_H
#include <config.h>
#endif
#include <mia.hh>
#include <GL/gl.h>
#include <string>
using namespace std;
//typedef T2DImage<uint8,float, TRefData> C2DUBImage;
class GLTextureBase {
GLuint id;
public:
GLTextureBase();
virtual ~GLTextureBase();
virtual void bind() const=0;
GLuint get_id() const;
void gl_attach();
void gl_detach();
private:
virtual void do_gl_attach()=0;
virtual void do_gl_detach();
};
class GL1DAlphaTexture: public GLTextureBase {
public:
GL1DAlphaTexture();
void set_texture_data(GLubyte *alpha, int size);
void bind()const;
virtual void do_gl_attach();
};
class GL2DHTexture : public GLTextureBase {
int steps;
float ambient;
float diffuse;
float specular;
float shine;
float tm[16];
public:
GL2DHTexture(int _steps,float ambient, float diffuse, float specular,float shine);
void bind()const;
void create_textur_matrix(const mia::C3DFVector& light_pos,const mia::C3DFVector& camera_pos,const mia::C3DFVector& me);
void gl_texture_matrix_on()const;
void gl_texture_matrix_off()const;
private:
virtual void do_gl_attach();
};
class GL2DTexture : public GLTextureBase {
private:
struct TGL2DTextureData *data;
public:
typedef mia::C2DUBImage LuminData;
GL2DTexture(const mia::C2DBounds& in_size);
~GL2DTexture();
virtual void set_data(const LuminData& data);
float get_tex_xcoord(float x) const;
float get_tex_ycoord(float y) const;
void bind() const;
protected:
size_t get_inwidth() const;
size_t get_inheight() const;
TGL2DTextureData *get_data() const {
return data;
}
private:
virtual void do_gl_attach();
};
class GL3DGrayTexture : public GLTextureBase {
private:
struct TGL3DGrayTextureData *data;
public:
typedef mia::C3DUBDatafield GrayData;
GL3DGrayTexture(const mia::C3DBounds& in_size);
~GL3DGrayTexture();
virtual void set_data(const GrayData& data);
void bind() const;
private:
virtual void do_gl_attach();
};
class GL2DLATexture:public GL2DTexture {
public:
GL2DLATexture(const mia::C2DBounds& in_size);
virtual void set_data(const LuminData& data);
private:
void do_gl_attach();
};
class T2DAlphaSphere: public GLTextureBase {
mia::C2DUBImage shape;
bool dithered_texture;
public:
T2DAlphaSphere(int radius);
T2DAlphaSphere(const mia::C2DUBImage& _shape);
void bind() const;
bool has_dithered_texture()const;
private:
virtual void do_gl_attach();
};
inline GLuint GLTextureBase::get_id() const
{
return id;
}
inline bool T2DAlphaSphere::has_dithered_texture()const
{
return dithered_texture;
}
#endif
|