OpenMesh::ArrayKernel Class Reference

#include <ArrayKernel.hh>

Inheritance diagram for OpenMesh::ArrayKernel:

Inheritance graph
[legend]
Collaboration diagram for OpenMesh::ArrayKernel:

Collaboration graph
[legend]

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)
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 Halfedge & halfedge (HalfedgeHandle _heh) const
Halfedge & halfedge (HalfedgeHandle _heh)
const Edge & edge (EdgeHandle _eh) const
Edge & edge (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 >

Data Structures

class  AutoStatusSetT
 --- AutoStatusSet API --- More...
class  ExtStatusSetT
 --- ExtStatusSet API --- (hybrid between a set and an array) More...
class  StatusSetT
 --- StatusSet API --- More...

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 mesh_types_group.

See also:
OpenMesh::Concepts::KernelT, mesh_type

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:

Generated on Fri Jan 16 13:00:42 2009 by  doxygen 1.5.5