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
NormalConeT.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
//=============================================================================
46
//
47
// CLASS NormalCone
48
//
49
//=============================================================================
50
51
52
#ifndef OPENMESH_NORMALCONE_HH
53
#define OPENMESH_NORMALCONE_HH
54
55
56
//== INCLUDES =================================================================
57
58
59
#include <OpenMesh/Core/Geometry/VectorT.hh>
60
61
62
//== NAMESPACES ===============================================================
63
64
65
namespace
OpenMesh {
66
67
68
//== CLASS DEFINITION =========================================================
69
70
77
template
<
typename
Scalar>
78
class
NormalConeT
79
{
80
public
:
81
82
// typedefs
83
typedef
VectorT<Scalar, 3>
Vec3
;
84
85
87
NormalConeT
() {}
88
90
NormalConeT
(
const
Vec3& _center_normal, Scalar _angle=0.0);
91
93
Scalar
max_angle
(
const
Vec3&)
const
;
94
96
Scalar
max_angle
(
const
NormalConeT
&)
const
;
97
99
void
merge
(
const
NormalConeT
&);
100
102
const
Vec3
&
center_normal
()
const
{
return
center_normal_; }
103
105
inline
Scalar
angle
()
const
{
return
angle_; }
106
107
private
:
108
109
Vec3 center_normal_;
110
Scalar angle_;
111
};
112
113
114
//=============================================================================
115
}
// namespace OpenMesh
116
//=============================================================================
117
#if defined(OM_INCLUDE_TEMPLATES) && !defined(OPENMESH_NORMALCONE_C)
118
#define OPENMESH_NORMALCONE_TEMPLATES
119
#include "NormalConeT.cc"
120
#endif
121
//=============================================================================
122
#endif // OPENMESH_NORMALCONE_HH defined
123
//=============================================================================
124
Project
OpenMesh
, © Computer Graphics Group, RWTH Aachen. Documentation generated using
doxygen
.