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
TriConnectivity.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: 760 $ *
38
* $Date: 2012-11-06 08:41:28 +0100 (Di, 06 Nov 2012) $ *
39
* *
40
\*===========================================================================*/
41
42
#ifndef OPENMESH_TRICONNECTIVITY_HH
43
#define OPENMESH_TRICONNECTIVITY_HH
44
45
#include <OpenMesh/Core/Mesh/PolyConnectivity.hh>
46
47
namespace
OpenMesh {
48
51
class
OPENMESHDLLEXPORT
TriConnectivity
:
public
PolyConnectivity
52
{
53
public
:
54
55
TriConnectivity
() {}
56
virtual
~
TriConnectivity
() {}
57
58
inline
static
bool
is_triangles()
59
{
return
true
; }
60
64
inline
void
assign_connectivity(
const
TriConnectivity
& _other)
65
{
PolyConnectivity::assign_connectivity
(_other); }
66
67
inline
void
assign_connectivity(
const
PolyConnectivity
& _other)
68
{
69
PolyConnectivity::assign_connectivity
(_other);
70
triangulate();
71
}
72
77
86
FaceHandle
add_face(
const
VertexHandle
* _vhandles,
size_t
_vhs_size);
87
96
FaceHandle
add_face(
const
std::vector<VertexHandle>& _vhandles);
97
108
FaceHandle
add_face(
VertexHandle
_vh0,
VertexHandle
_vh1,
VertexHandle
_vh2);
109
111
115
inline
VertexHandle
opposite_vh(
HalfedgeHandle
_heh)
const
116
{
117
return
is_boundary(_heh) ? InvalidVertexHandle :
118
to_vertex_handle(next_halfedge_handle(_heh));
119
}
120
124
VertexHandle
opposite_he_opposite_vh(
HalfedgeHandle
_heh)
const
125
{
return
opposite_vh(opposite_halfedge_handle(_heh)); }
126
130
131
136
bool
is_collapse_ok(
HalfedgeHandle
_heh);
137
139
HalfedgeHandle
vertex_split(
VertexHandle
v0,
VertexHandle
v1,
140
VertexHandle
vl,
VertexHandle
vr);
141
143
bool
is_flip_ok(
EdgeHandle
_eh)
const
;
144
147
void
flip(
EdgeHandle
_eh);
148
149
161
void
split(
EdgeHandle
_eh,
VertexHandle
_vh);
162
174
void
split_copy(
EdgeHandle
_eh,
VertexHandle
_vh);
175
181
inline
void
split(
FaceHandle
_fh,
VertexHandle
_vh)
182
{
PolyConnectivity::split
(_fh, _vh); }
183
189
inline
void
split_copy(
FaceHandle
_fh,
VertexHandle
_vh)
190
{
PolyConnectivity::split_copy
(_fh, _vh); }
191
193
194
private
:
196
HalfedgeHandle
insert_loop(
HalfedgeHandle
_hh);
198
HalfedgeHandle
insert_edge(
VertexHandle
_vh,
199
HalfedgeHandle
_h0,
HalfedgeHandle
_h1);
200
};
201
202
}
203
204
#endif//OPENMESH_TRICONNECTIVITY_HH
Project
OpenMesh
, © Computer Graphics Group, RWTH Aachen. Documentation generated using
doxygen
.