OpenMesh
|
Mesh kernel using arrays for mesh item storage. More...
#include <OpenMesh/Core/Mesh/ArrayKernel.hh>
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< StatusInfo > | VertexStatusPropertyHandle |
typedef HPropHandleT< StatusInfo > | HalfedgeStatusPropertyHandle |
typedef EPropHandleT< StatusInfo > | EdgeStatusPropertyHandle |
typedef FPropHandleT< StatusInfo > | FaceStatusPropertyHandle |
typedef AutoStatusSetT < VertexHandle > | VertexStatusSet |
typedef AutoStatusSetT < EdgeHandle > | EdgeStatusSet |
typedef AutoStatusSetT < FaceHandle > | FaceStatusSet |
typedef AutoStatusSetT < HalfedgeHandle > | HalfedgeStatusSet |
typedef ExtStatusSetT< FaceHandle > | ExtFaceStatusSet |
typedef ExtStatusSetT < VertexHandle > | ExtVertexStatusSet |
typedef ExtStatusSetT< EdgeHandle > | ExtEdgeStatusSet |
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 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 StatusInfo & | status (VertexHandle _vh) const |
Status Query API. | |
StatusInfo & | status (VertexHandle _vh) |
const StatusInfo & | status (HalfedgeHandle _hh) const |
StatusInfo & | status (HalfedgeHandle _hh) |
const StatusInfo & | status (EdgeHandle _eh) const |
StatusInfo & | status (EdgeHandle _eh) |
const StatusInfo & | status (FaceHandle _fh) const |
StatusInfo & | status (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 > |
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.
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.