OpenMesh
Main Page
Related Pages
Modules
Namespaces
Classes
Files
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Macros
Groups
Pages
MeshItems.hh
1
/*===========================================================================*\
2
* *
3
* OpenMesh *
4
* Copyright (C) 2001-2012 by Computer Graphics Group, RWTH Aachen *
5
* www.openmesh.org *
6
* *
7
*---------------------------------------------------------------------------*
8
* This file is part of OpenMesh. *
9
* *
10
* OpenMesh 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
* OpenMesh 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 OpenMesh. If not, *
31
* see <http://www.gnu.org/licenses/>. *
32
* *
33
\*===========================================================================*/
34
35
/*===========================================================================*\
36
* *
37
* $Revision: 736 $ *
38
* $Date: 2012-10-08 09:30:49 +0200 (Mo, 08 Okt 2012) $ *
39
* *
40
\*===========================================================================*/
41
42
43
//=============================================================================
44
//
45
// Mesh Items Concept
46
//
47
//=============================================================================
48
49
50
#error this file is for documentation purposes only
51
52
53
//== NAMESPACES ===============================================================
54
55
56
namespace
OpenMesh {
57
namespace
Concepts {
58
59
60
//== CLASS DEFINITION =========================================================
61
62
68
struct
MeshItems
{
69
70
78
template
<
class
Refs_>
class
VertexT
79
{
80
public
:
81
83
typedef
Refs_
Refs
;
84
86
VertexT
();
87
89
HalfedgeHandle
halfedge_handle
()
const
;
91
void
set_halfedge_handle
(
HalfedgeHandle
_eh);
92
};
93
94
95
96
104
template
<
class
Refs_>
class
HalfedgeT
105
{
106
public
:
107
109
typedef
Refs_
Refs
;
110
113
VertexHandle
vertex_handle
()
const
;
114
117
void
set_vertex_handle
(
VertexHandle
_vh);
118
121
FaceHandle
face_handle
()
const
;
122
125
void
set_face_handle
(
FaceHandle
_fh);
126
129
HalfedgeHandle
next_halfedge_handle
()
const
;
130
133
void
set_next_halfedge_handle
(
HalfedgeHandle
_eh);
134
};
135
136
137
138
146
template
<
class
Refs_>
class
EdgeT
147
{
148
public
:
149
151
typedef
Refs_
Refs
;
152
155
Halfedge
halfedges
[2];
156
};
157
158
159
160
168
template
<
class
Refs_>
class
FaceT
169
{
170
public
:
171
173
typedef
Refs_
Refs
;
174
177
typedef
GenProg::TagTrue
IsTriangle
;
179
static
bool
is_triangle
();
180
182
unsigned
char
n_vertices
()
const
;
185
void
set_n_vertices
(
unsigned
char
_n);
186
188
HalfedgeHandle
halfedge_handle
()
const
;
191
void
set_halfedge_handle
(
HalfedgeHandle
_eh);
192
};
193
194
};
195
196
//=============================================================================
197
}
// namespace Concepts
198
}
// namespace OpenMesh
199
//=============================================================================
Project
OpenMesh
, © Computer Graphics Group, RWTH Aachen. Documentation generated using
doxygen
.