Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
OpenMesh
OpenMesh
Commits
3d648b23
Commit
3d648b23
authored
Oct 31, 2019
by
Max Lyon
Browse files
add elements and all_elements methods that return the range corresponding to the template argument
parent
34b2e958
Changes
1
Hide whitespace changes
Inline
Side-by-side
src/OpenMesh/Core/Mesh/PolyConnectivity.hh
View file @
3d648b23
...
...
@@ -1169,6 +1169,9 @@ public:
&
PolyConnectivity
::
faces_sbegin
,
&
PolyConnectivity
::
faces_end
>
ConstFaceRangeSkipping
;
template
<
typename
HandleType
>
struct
ElementRange
;
/**
* @return The vertices as a range object suitable
* for C++11 range based for loops. Will skip deleted vertices.
...
...
@@ -1217,6 +1220,21 @@ public:
*/
ConstFaceRange
all_faces
()
const
{
return
ConstFaceRange
(
*
this
);
}
/**
* @return The elements corresponding to the template type as a range object suitable
* for C++11 range based for loops. Will skip deleted faces.
*/
template
<
typename
HandleType
>
typename
ElementRange
<
HandleType
>::
RangeSkipping
elements
()
const
;
/**
* @return The elements corresponding to the template type as a range object suitable
* for C++11 range based for loops. Will include deleted faces.
*/
template
<
typename
HandleType
>
typename
ElementRange
<
HandleType
>::
Range
all_elements
()
const
;
/// Generic class for iterator ranges.
template
<
typename
CONTAINER_TYPE
,
...
...
@@ -1241,6 +1259,7 @@ public:
CENTER_ENTITY_TYPE
center_
;
};
typedef
CirculatorRange
<
PolyConnectivity
,
ConstVertexVertexCWIter
,
...
...
@@ -1625,6 +1644,52 @@ private: // Working storage for add_face()
};
template
<
>
struct
PolyConnectivity
::
ElementRange
<
VertexHandle
>
{
using
Range
=
ConstVertexRange
;
using
RangeSkipping
=
ConstVertexRangeSkipping
;
};
template
<
>
struct
PolyConnectivity
::
ElementRange
<
HalfedgeHandle
>
{
using
Range
=
ConstHalfedgeRange
;
using
RangeSkipping
=
ConstHalfedgeRangeSkipping
;
};
template
<
>
struct
PolyConnectivity
::
ElementRange
<
EdgeHandle
>
{
using
Range
=
ConstEdgeRange
;
using
RangeSkipping
=
ConstEdgeRangeSkipping
;
};
template
<
>
struct
PolyConnectivity
::
ElementRange
<
FaceHandle
>
{
using
Range
=
ConstFaceRange
;
using
RangeSkipping
=
ConstFaceRangeSkipping
;
};
template
<
>
inline
PolyConnectivity
::
ConstVertexRangeSkipping
PolyConnectivity
::
elements
<
VertexHandle
>
()
const
{
return
ConstVertexRangeSkipping
(
*
this
);
}
template
<
>
inline
PolyConnectivity
::
ConstVertexRange
PolyConnectivity
::
all_elements
<
VertexHandle
>
()
const
{
return
ConstVertexRange
(
*
this
);
}
template
<
>
inline
PolyConnectivity
::
ConstHalfedgeRangeSkipping
PolyConnectivity
::
elements
<
HalfedgeHandle
>
()
const
{
return
ConstHalfedgeRangeSkipping
(
*
this
);
}
template
<
>
inline
PolyConnectivity
::
ConstHalfedgeRange
PolyConnectivity
::
all_elements
<
HalfedgeHandle
>
()
const
{
return
ConstHalfedgeRange
(
*
this
);
}
template
<
>
inline
PolyConnectivity
::
ConstEdgeRangeSkipping
PolyConnectivity
::
elements
<
EdgeHandle
>
()
const
{
return
ConstEdgeRangeSkipping
(
*
this
);
}
template
<
>
inline
PolyConnectivity
::
ConstEdgeRange
PolyConnectivity
::
all_elements
<
EdgeHandle
>
()
const
{
return
ConstEdgeRange
(
*
this
);
}
template
<
>
inline
PolyConnectivity
::
ConstFaceRangeSkipping
PolyConnectivity
::
elements
<
FaceHandle
>
()
const
{
return
ConstFaceRangeSkipping
(
*
this
);
}
template
<
>
inline
PolyConnectivity
::
ConstFaceRange
PolyConnectivity
::
all_elements
<
FaceHandle
>
()
const
{
return
ConstFaceRange
(
*
this
);
}
}
//namespace OpenMesh
#endif//OPENMESH_POLYCONNECTIVITY_HH
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new 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