OpenVolumeMesh
Toggle main menu visibility
Loading...
Searching...
No Matches
TexCoordAttrib.hh
1
/*===========================================================================*\
2
* *
3
* OpenVolumeMesh *
4
* Copyright (C) 2011 by Computer Graphics Group, RWTH Aachen *
5
* www.openvolumemesh.org *
6
* *
7
*---------------------------------------------------------------------------*
8
* This file is part of OpenVolumeMesh. *
9
* *
10
* OpenVolumeMesh is free software: you can redistribute it and/or modify *
11
* it under the terms of the GNU Lesser General Public License as *
12
* published by the Free Software Foundation, either version 3 of *
13
* the License, or (at your option) any later version with the *
14
* following exceptions: *
15
* *
16
* If other files instantiate templates or use macros *
17
* or inline functions from this file, or you compile this file and *
18
* link it with other files to produce an executable, this file does *
19
* not by itself cause the resulting executable to be covered by the *
20
* GNU Lesser General Public License. This exception does not however *
21
* invalidate any other reasons why the executable file might be *
22
* covered by the GNU Lesser General Public License. *
23
* *
24
* OpenVolumeMesh is distributed in the hope that it will be useful, *
25
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
26
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
27
* GNU Lesser General Public License for more details. *
28
* *
29
* You should have received a copy of the GNU LesserGeneral Public *
30
* License along with OpenVolumeMesh. If not, *
31
* see <http://www.gnu.org/licenses/>. *
32
* *
33
\*===========================================================================*/
34
35
/*===========================================================================*\
36
* *
37
* $Revision: 36 $ *
38
* $Date: 2012-01-10 18:00:06 +0100 (Di, 10 Jan 2012) $ *
39
* $LastChangedBy: kremer $ *
40
* *
41
\*===========================================================================*/
42
43
#ifndef TEXCOORDATTRIB_HH_
44
#define TEXCOORDATTRIB_HH_
45
46
#include <cassert>
47
48
#include "../Core/OpenVolumeMeshHandle.hh"
49
#include "OpenVolumeMeshStatus.hh"
50
#include "../Core/PropertyDefines.hh"
51
#include "../Core/TopologyKernel.hh"
52
53
namespace
OpenVolumeMesh {
54
55
//== CLASS DEF ================================================================
56
57
template
<
class
TexCoordT>
58
class
TexCoordAttrib {
59
public
:
60
61
TexCoordAttrib(
TopologyKernel
& _kernel,
const
TexCoordT _def = TexCoordT());
62
63
virtual
~TexCoordAttrib();
64
65
//==================
66
// Vertices
67
//==================
68
const
TexCoordT& operator[](
const
VertexHandle
& _h)
const
{
69
assert((
unsigned
int
)_h.idx() < kernel_.n_vertices());
70
return
vtexcoord_prop_[_h.idx()];
71
}
72
73
TexCoordT& operator[](
const
VertexHandle
& _h) {
74
assert((
unsigned
int
)_h.idx() < kernel_.n_vertices());
75
vertex_texcoords_available_ =
true
;
76
return
vtexcoord_prop_[_h.idx()];
77
}
78
79
bool
vertex_texcoords_available() {
return
vertex_texcoords_available_; }
80
81
void
clear_vertex_texcoords();
82
83
84
private
:
85
86
VertexPropertyT<TexCoordT>
vtexcoord_prop_;
87
88
TopologyKernel
& kernel_;
89
90
bool
vertex_texcoords_available_;
91
92
TexCoordT default_texcoord_;
93
94
};
95
96
}
// Namespace OpenVolumeMesh
97
98
#if defined(INCLUDE_TEMPLATES) && !defined(TEXCOORDATTRIBT_CC)
99
#include "TexCoordAttribT.cc"
100
#endif
101
102
#endif
/* TEXCOORDATTRIB_HH_ */
OpenVolumeMesh::TopologyKernel
Definition
TopologyKernel.hh:57
OpenVolumeMesh::VertexHandle
Definition
OpenVolumeMeshHandle.hh:98
OpenVolumeMesh::VertexPropertyT
Property classes for the different entity types.
Definition
PropertyDefines.hh:78
Project
OpenVolumeMesh
, Computer Graphics Group Aachen,
RWTH Aachen