35 #ifndef LVR2_GEOMETRY_HANDLES_H_ 36 #define LVR2_GEOMETRY_HANDLES_H_ 189 os <<
"E" << h.
idx();
195 os <<
"F" << h.
idx();
201 os <<
"V" << h.
idx();
207 os <<
"C" << h.
idx();
269 struct hash<
lvr2::EdgeHandle> {
272 return std::hash<lvr2::Index>()(h.
idx());
277 struct hash<
lvr2::FaceHandle> {
280 return std::hash<lvr2::Index>()(h.
idx());
285 struct hash<
lvr2::VertexHandle> {
288 return std::hash<lvr2::Index>()(h.
idx());
293 struct less<
lvr2::VertexHandle> {
296 return std::less<lvr2::Index>()(l.
idx(), r.
idx());
301 struct hash<
lvr2::ClusterHandle> {
304 return std::hash<lvr2::Index>()(h.
idx());
309 struct hash<
lvr2::TextureHandle> {
312 return std::hash<lvr2::Index>()(h.
idx());
NonOptionalT unwrap() const
Extracts the handle. If this doesn't hold a handle (is "None"), this method panics.
std::ostream & operator<<(std::ostream &os, const BaseVector< T > &v)
Interface for all kinds of handles. Handles are basically a key to refer to something.
Handle to access vertices of the mesh.
size_t operator()(const lvr2::ClusterHandle &h) const
size_t operator()(const lvr2::VertexHandle &h) const
Handle to access edges of the mesh.
uint32_t Index
Datatype used as index for each vertex, face and edge.
size_t operator()(const lvr2::TextureHandle &h) const
size_t operator()(const lvr2::FaceHandle &h) const
Semantically equivalent to boost::optional<VertexHandle>
Semantically equivalent to boost::optional<ClusterHandle>
Handle to access textures of the mesh.
Handle to access Cluster of the ClusterBiMap.
Semantically equivalent to boost::optional<FaceHandle>
bool operator()(const lvr2::VertexHandle &l, const lvr2::VertexHandle &r) const
Base class for optional handles (handles that can be "null" or "None").
size_t operator()(const lvr2::EdgeHandle &h) const
Handle to access faces of the mesh.
Semantically equivalent to boost::optional<EdgeHandle>