source: trunk/packages/vizservers/nanovis/Texture3D.h @ 2900

Last change on this file since 2900 was 2900, checked in by ldelgass, 8 years ago

Style fix (underscores to camel case)

  • Property svn:eol-style set to native
File size: 2.1 KB
Line 
1/* -*- mode: c++; c-basic-offset: 4; indent-tabs-mode: nil -*- */
2/*
3 * ----------------------------------------------------------------------
4 * texture3d.h: 3d texture class
5 *
6 * ======================================================================
7 *  AUTHOR:  Wei Qiao <qiaow@purdue.edu>
8 *           Purdue Rendering and Perceptualization Lab (PURPL)
9 *
10 *  Copyright (c) 2004-2006  Purdue Research Foundation
11 *
12 *  See the file "license.terms" for information on usage and
13 *  redistribution of this file, and for a DISCLAIMER OF ALL WARRANTIES.
14 * ======================================================================
15 */
16#ifndef TEXTURE3D_H
17#define TEXTURE3D_H
18
19#include <GL/glew.h>
20
21class Texture3D
22{
23public:
24    Texture3D();
25
26    Texture3D(int width, int height, int depth,
27              GLuint type = GL_FLOAT,
28              GLuint interp = GL_LINEAR,
29              int numComponents = 4,
30              void *data = NULL);
31
32    ~Texture3D();
33
34    GLuint initialize(void *data);
35
36    void update(void *data);
37
38    void activate();
39
40    void deactivate();
41
42    int width() const
43    {
44        return _width;
45    }
46
47    int height() const
48    {
49        return _width;
50    }
51
52    int depth() const
53    {
54        return _width;
55    }
56
57    /// Always 1
58    double aspectRatioWidth() const
59    {
60        return _aspectRatioWidth;
61    }
62
63    /// height / width
64    double aspectRatioHeight() const
65    {
66        return _aspectRatioHeight;
67    }
68
69    /// depth / width
70    double aspectRatioDepth() const
71    {
72        return _aspectRatioDepth;
73    }
74
75    GLuint id() const
76    {
77        return _id;
78    }
79
80    void setWrapS(GLuint wrapMode);
81
82    void setWrapT(GLuint wrapMode);
83
84    void setWrapR(GLuint wrapMode);
85
86    static void checkMaxSize();
87
88    static void checkMaxUnit();
89
90private:
91    int _width;
92    int _height;
93    int _depth;
94
95    double _aspectRatioWidth;
96    double _aspectRatioHeight;
97    double _aspectRatioDepth;
98
99    int _numComponents;
100
101    bool _glResourceAllocated;
102    GLuint _id;
103    GLuint _type;
104    GLuint _interpType;
105    GLuint _wrapS;
106    GLuint _wrapT;
107    GLuint _wrapR;
108};
109
110#endif
Note: See TracBrowser for help on using the repository browser.