Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
What's new
10
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Open sidebar
OpenVolumeMesh
OpenVolumeMesh
Commits
8cee494b
Commit
8cee494b
authored
Feb 21, 2019
by
Martin Heistermann
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Generic handle contructor, to accept size_t safely without warnings
parent
17447afd
Pipeline
#8748
passed with stage
in 4 minutes and 58 seconds
Changes
1
Pipelines
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
14 additions
and
8 deletions
+14
-8
src/OpenVolumeMesh/Core/OpenVolumeMeshHandle.hh
src/OpenVolumeMesh/Core/OpenVolumeMeshHandle.hh
+14
-8
No files found.
src/OpenVolumeMesh/Core/OpenVolumeMeshHandle.hh
View file @
8cee494b
...
...
@@ -46,6 +46,9 @@
#include <algorithm>
#include <iosfwd>
#include <vector>
#include <limits>
#include <cassert>
#include <type_traits>
#include "../System/FunctionalInclude.hh"
#include "../System/Deprecation.hh"
...
...
@@ -55,8 +58,11 @@ namespace OpenVolumeMesh {
// Define handle types in order to distinguish different entities by their indices
class
OpenVolumeMeshHandle
{
public:
// Default constructor
explicit
OpenVolumeMeshHandle
(
int
_idx
)
:
idx_
(
_idx
)
{};
template
<
typename
T
=
int
,
typename
std
::
enable_if
<
std
::
is_integral
<
T
>
::
value
,
int
>::
type
=
0
>
explicit
OpenVolumeMeshHandle
(
T
_idx
=
-
1
)
:
idx_
(
static_cast
<
int
>
(
_idx
))
{
assert
(
_idx
<=
std
::
numeric_limits
<
int
>::
max
());
}
OpenVolumeMeshHandle
&
operator
=
(
int
_idx
)
{
idx_
=
_idx
;
...
...
@@ -97,12 +103,12 @@ private:
// Default entity handles
class
VertexHandle
:
public
OpenVolumeMeshHandle
{
public
:
explicit
VertexHandle
(
int
_idx
=
-
1
)
:
OpenVolumeMeshHandle
(
_idx
)
{}
};
class
EdgeHandle
:
public
OpenVolumeMeshHandle
{
public
:
explicit
EdgeHandle
(
int
_idx
=
-
1
)
:
OpenVolumeMeshHandle
(
_idx
)
{}
};
class
FaceHandle
:
public
OpenVolumeMeshHandle
{
public
:
explicit
FaceHandle
(
int
_idx
=
-
1
)
:
OpenVolumeMeshHandle
(
_idx
)
{}
};
class
CellHandle
:
public
OpenVolumeMeshHandle
{
public
:
explicit
CellHandle
(
int
_idx
=
-
1
)
:
OpenVolumeMeshHandle
(
_idx
)
{}
};
class
HalfEdgeHandle
:
public
OpenVolumeMeshHandle
{
public
:
explicit
HalfEdgeHandle
(
int
_idx
=
-
1
)
:
OpenVolumeMeshHandle
(
_idx
)
{}
};
class
HalfFaceHandle
:
public
OpenVolumeMeshHandle
{
public
:
explicit
HalfFaceHandle
(
int
_idx
=
-
1
)
:
OpenVolumeMeshHandle
(
_idx
)
{}
};
class
VertexHandle
:
public
OpenVolumeMeshHandle
{
public
:
using
OpenVolumeMeshHandle
::
OpenVolumeMeshHandle
;
};
class
EdgeHandle
:
public
OpenVolumeMeshHandle
{
public
:
using
OpenVolumeMeshHandle
::
OpenVolumeMeshHandle
;
};
class
FaceHandle
:
public
OpenVolumeMeshHandle
{
public
:
using
OpenVolumeMeshHandle
::
OpenVolumeMeshHandle
;
};
class
CellHandle
:
public
OpenVolumeMeshHandle
{
public
:
using
OpenVolumeMeshHandle
::
OpenVolumeMeshHandle
;
};
class
HalfEdgeHandle
:
public
OpenVolumeMeshHandle
{
public
:
using
OpenVolumeMeshHandle
::
OpenVolumeMeshHandle
;
};
class
HalfFaceHandle
:
public
OpenVolumeMeshHandle
{
public
:
using
OpenVolumeMeshHandle
::
OpenVolumeMeshHandle
;
};
// Helper class that is used to decrease all handles
// exceeding a certain threshold
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment