Developer Documentation
Loading...
Searching...
No Matches
Texture3DNode.hh
1
/*===========================================================================*\
2
* *
3
* OpenFlipper *
4
* Copyright (c) 2001-2015, RWTH-Aachen University *
5
* Department of Computer Graphics and Multimedia *
6
* All rights reserved. *
7
* www.openflipper.org *
8
* *
9
*---------------------------------------------------------------------------*
10
* This file is part of OpenFlipper. *
11
*---------------------------------------------------------------------------*
12
* *
13
* Redistribution and use in source and binary forms, with or without *
14
* modification, are permitted provided that the following conditions *
15
* are met: *
16
* *
17
* 1. Redistributions of source code must retain the above copyright notice, *
18
* this list of conditions and the following disclaimer. *
19
* *
20
* 2. Redistributions in binary form must reproduce the above copyright *
21
* notice, this list of conditions and the following disclaimer in the *
22
* documentation and/or other materials provided with the distribution. *
23
* *
24
* 3. Neither the name of the copyright holder nor the names of its *
25
* contributors may be used to endorse or promote products derived from *
26
* this software without specific prior written permission. *
27
* *
28
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS *
29
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED *
30
* TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A *
31
* PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER *
32
* OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, *
33
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, *
34
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR *
35
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF *
36
* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING *
37
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS *
38
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *
39
* *
40
\*===========================================================================*/
41
42
43
44
45
46
47
//=============================================================================
48
//
49
// CLASS Texture3DNode
50
//
51
//=============================================================================
52
53
#ifndef ACG_TEXTURE3DNODE_HH
54
#define ACG_TEXTURE3DNODE_HH
55
56
//=============================================================================
57
58
#include "BaseNode.hh"
59
60
#include <string>
61
#include <QImage>
62
63
64
//=============================================================================
65
66
namespace
ACG
{
67
namespace
SceneGraph {
68
69
//=============================================================================
70
71
72
class
ACGDLLEXPORT
Texture3DNode
:
public
BaseNode
73
{
74
public
:
75
76
Texture3DNode
(
BaseNode
* _parent = 0,
77
const
std::string& _name =
"<Texture3DNode>"
);
78
virtual
~Texture3DNode
();
79
81
ACG_CLASSNAME
(
Texture3DNode
);
82
83
void
set_texture(
unsigned
int
_width,
84
unsigned
int
_height,
85
unsigned
int
_depth,
86
unsigned
char
* _data );
87
89
void
enter(
GLState
& _state,
const
DrawModes::DrawMode
& _drawmode )
override
;
90
92
void
leave(
GLState
& _state,
const
DrawModes::DrawMode
& _drawmode )
override
;
93
94
95
void
set_texture_mode( GLenum _mode )
96
{ tex_mode_ = _mode; }
97
98
99
void
set_border_color(
const
Vec4f
& _border_color )
100
{
101
border_color_ = _border_color;
102
}
103
104
void
set_wrap_mode( GLenum _wrap_mode )
105
{
106
// possible modes are:
107
// GL_CLAMP
108
// GL_CLAMP_TO_EDGE
109
// GL_CLAMP_TO_BORDER
110
// GL_REPEAT
111
112
wrap_mode_ = _wrap_mode;
113
}
114
115
void
set_filter( GLenum _filter )
116
{
117
// possible modes are:
118
// GL_NEAREST
119
// GL_LINEAR
120
121
filter_ = _filter;
122
}
123
124
125
private
:
126
127
GLuint texture_;
128
GLenum tex_mode_;
129
Vec4f
border_color_;
130
GLenum wrap_mode_;
131
GLenum filter_;
132
133
134
};
135
136
137
//=============================================================================
138
}
// namespace SceneGraph
139
}
// namespace ACG
140
//=============================================================================
141
#endif
// ACG_TEXTURE3DNODE_HH defined
142
//=============================================================================
143
ACG::GLState
Definition
GLState.hh:214
ACG::SceneGraph::BaseNode
Definition
BaseNode.hh:105
ACG::SceneGraph::DrawModes::DrawMode
Specifies a DrawMode.
Definition
DrawModes.hh:288
ACG::SceneGraph::Texture3DNode
Definition
Texture3DNode.hh:73
ACG::SceneGraph::Texture3DNode::ACG_CLASSNAME
ACG_CLASSNAME(Texture3DNode)
set class name
OpenMesh::VectorT
Definition
Vector11T.hh:83
ACG
Namespace providing different geometric functions concerning angles.
Definition
BaseObjectData.hh:68
OpenFlipper
libs_required
ACG
Scenegraph
Texture3DNode.hh
Generated on Wed Jul 16 2025 14:44:32 for Developer Documentation by
1.9.8