OpenMesh
OpenMesh::ArrayKernel Class Reference

Mesh kernel using arrays for mesh item storage. More...

#include <OpenMesh/Core/Mesh/ArrayKernel.hh>

Inheritance diagram for OpenMesh::ArrayKernel:
Collaboration diagram for OpenMesh::ArrayKernel:

List of all members.

Classes

class  AutoStatusSetT
class  ExtStatusSetT
class  StatusSetT

Public Types

typedef OpenMesh::VertexHandle VertexHandle
typedef OpenMesh::HalfedgeHandle HalfedgeHandle
typedef OpenMesh::EdgeHandle EdgeHandle
typedef OpenMesh::FaceHandle FaceHandle
typedef Attributes::StatusInfo StatusInfo
typedef VPropHandleT< StatusInfoVertexStatusPropertyHandle
typedef HPropHandleT< StatusInfoHalfedgeStatusPropertyHandle
typedef EPropHandleT< StatusInfoEdgeStatusPropertyHandle
typedef FPropHandleT< StatusInfoFaceStatusPropertyHandle
typedef AutoStatusSetT
< VertexHandle
VertexStatusSet
typedef AutoStatusSetT
< EdgeHandle
EdgeStatusSet
typedef AutoStatusSetT
< FaceHandle
FaceStatusSet
typedef AutoStatusSetT
< HalfedgeHandle
HalfedgeStatusSet
typedef ExtStatusSetT< FaceHandleExtFaceStatusSet
typedef ExtStatusSetT
< VertexHandle
ExtVertexStatusSet
typedef ExtStatusSetT< EdgeHandleExtEdgeStatusSet
typedef ExtStatusSetT
< HalfedgeHandle
ExtHalfedgeStatusSet

Public Member Functions

void assign_connectivity (const ArrayKernel &_other)
 ArrayKernel uses the default copy constructor and assignment operator, which means that the connectivity and all properties are copied, including reference counters, allocated bit status masks, etc.
VertexHandle handle (const Vertex &_v) const
HalfedgeHandle handle (const Halfedge &_he) const
EdgeHandle handle (const Edge &_e) const
FaceHandle handle (const Face &_f) const
bool is_valid_handle (VertexHandle _vh) const
bool is_valid_handle (HalfedgeHandle _heh) const
bool is_valid_handle (EdgeHandle _eh) const
bool is_valid_handle (FaceHandle _fh) const
const Vertex & vertex (VertexHandle _vh) const
Vertex & vertex (VertexHandle _vh)
const Halfedgehalfedge (HalfedgeHandle _heh) const
Halfedgehalfedge (HalfedgeHandle _heh)
const Edgeedge (EdgeHandle _eh) const
Edgeedge (EdgeHandle _eh)
const Face & face (FaceHandle _fh) const
Face & face (FaceHandle _fh)
VertexHandle vertex_handle (uint _i) const
HalfedgeHandle halfedge_handle (uint _i) const
EdgeHandle edge_handle (uint _i) const
FaceHandle face_handle (uint _i) const
VertexHandle new_vertex ()
HalfedgeHandle new_edge (VertexHandle _start_vh, VertexHandle _end_vh)
FaceHandle new_face ()
FaceHandle new_face (const Face &_f)
void resize (uint _n_vertices, uint _n_edges, uint _n_faces)
void reserve (uint _n_vertices, uint _n_edges, uint _n_faces)
void garbage_collection (bool _v=true, bool _e=true, bool _f=true)
void clear ()
uint n_vertices () const
uint n_halfedges () const
uint n_edges () const
uint n_faces () const
bool vertices_empty () const
bool halfedges_empty () const
bool edges_empty () const
bool faces_empty () const
HalfedgeHandle halfedge_handle (VertexHandle _vh) const
void set_halfedge_handle (VertexHandle _vh, HalfedgeHandle _heh)
bool is_isolated (VertexHandle _vh) const
void set_isolated (VertexHandle _vh)
uint delete_isolated_vertices ()
VertexHandle to_vertex_handle (HalfedgeHandle _heh) const
VertexHandle from_vertex_handle (HalfedgeHandle _heh) const
void set_vertex_handle (HalfedgeHandle _heh, VertexHandle _vh)
FaceHandle face_handle (HalfedgeHandle _heh) const
void set_face_handle (HalfedgeHandle _heh, FaceHandle _fh)
void set_boundary (HalfedgeHandle _heh)
bool is_boundary (HalfedgeHandle _heh) const
 Is halfedge _heh a boundary halfedge (is its face handle invalid) ?
HalfedgeHandle next_halfedge_handle (HalfedgeHandle _heh) const
void set_next_halfedge_handle (HalfedgeHandle _heh, HalfedgeHandle _nheh)
void set_prev_halfedge_handle (HalfedgeHandle _heh, HalfedgeHandle _pheh)
void set_prev_halfedge_handle (HalfedgeHandle _heh, HalfedgeHandle _pheh, GenProg::True)
void set_prev_halfedge_handle (HalfedgeHandle, HalfedgeHandle, GenProg::False)
HalfedgeHandle prev_halfedge_handle (HalfedgeHandle _heh) const
HalfedgeHandle prev_halfedge_handle (HalfedgeHandle _heh, GenProg::True) const
HalfedgeHandle prev_halfedge_handle (HalfedgeHandle _heh, GenProg::False) const
HalfedgeHandle opposite_halfedge_handle (HalfedgeHandle _heh) const
HalfedgeHandle ccw_rotated_halfedge_handle (HalfedgeHandle _heh) const
HalfedgeHandle cw_rotated_halfedge_handle (HalfedgeHandle _heh) const
HalfedgeHandle halfedge_handle (EdgeHandle _eh, uint _i) const
EdgeHandle edge_handle (HalfedgeHandle _heh) const
HalfedgeHandle halfedge_handle (FaceHandle _fh) const
void set_halfedge_handle (FaceHandle _fh, HalfedgeHandle _heh)
const StatusInfostatus (VertexHandle _vh) const
 Status Query API.
StatusInfostatus (VertexHandle _vh)
const StatusInfostatus (HalfedgeHandle _hh) const
StatusInfostatus (HalfedgeHandle _hh)
const StatusInfostatus (EdgeHandle _eh) const
StatusInfostatus (EdgeHandle _eh)
const StatusInfostatus (FaceHandle _fh) const
StatusInfostatus (FaceHandle _fh)
bool has_vertex_status () const
bool has_halfedge_status () const
bool has_edge_status () const
bool has_face_status () const
VertexStatusPropertyHandle vertex_status_pph () const
HalfedgeStatusPropertyHandle halfedge_status_pph () const
EdgeStatusPropertyHandle edge_status_pph () const
FaceStatusPropertyHandle face_status_pph () const
VertexStatusPropertyHandle status_pph (VertexHandle) const
 status property by handle
HalfedgeStatusPropertyHandle status_pph (HalfedgeHandle) const
EdgeStatusPropertyHandle status_pph (EdgeHandle) const
FaceStatusPropertyHandle status_pph (FaceHandle) const
void request_vertex_status ()
 Status Request API.
void request_halfedge_status ()
void request_edge_status ()
void request_face_status ()
void release_vertex_status ()
 Status Release API.
void release_halfedge_status ()
void release_edge_status ()
void release_face_status ()

Friends

class StatusSetT< VertexHandle >
class StatusSetT< EdgeHandle >
class StatusSetT< FaceHandle >
class StatusSetT< HalfedgeHandle >
class AutoStatusSetT< VertexHandle >
class AutoStatusSetT< EdgeHandle >
class AutoStatusSetT< FaceHandle >
class AutoStatusSetT< HalfedgeHandle >

Detailed Description

Mesh kernel using arrays for mesh item storage.

This mesh kernel uses the std::vector as container to store the mesh items. Therefore all handle types are internally represented by integers. To get the index from a handle use the handle's idx() method.

Note:
For a description of the minimal kernel interface see OpenMesh::Mesh::BaseKernel.
You do not have to use this class directly, use the predefined mesh-kernel combinations in Predefined Mesh Types.
See also:
OpenMesh::Concepts::KernelT, Specifying your MyMesh

Member Function Documentation

void OpenMesh::ArrayKernel::assign_connectivity ( const ArrayKernel _other)

ArrayKernel uses the default copy constructor and assignment operator, which means that the connectivity and all properties are copied, including reference counters, allocated bit status masks, etc.

. In contrast assign_connectivity copies only the connectivity, i.e. vertices, edges, faces and their status fields. NOTE: The geometry (the points property) is NOT copied. Poly/TriConnectivity override(and hide) that function to provide connectivity consistence.


The documentation for this class was generated from the following files: