![]() |
OpenMesh
|
Mesh kernel using arrays for mesh item storage. More...
#include <OpenMesh/Core/Mesh/ArrayKernel.hh>


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 |
Public Types inherited from OpenMesh::BaseKernel | |
| typedef PropertyContainer::iterator | prop_iterator |
|
typedef PropertyContainer::const_iterator | const_prop_iterator |
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. More... | |
| 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 |
| checks handle validity - useful for debugging | |
| bool | is_valid_handle (HalfedgeHandle _heh) const |
| checks handle validity - useful for debugging | |
| bool | is_valid_handle (EdgeHandle _eh) const |
| checks handle validity - useful for debugging | |
| bool | is_valid_handle (FaceHandle _fh) const |
| checks handle validity - useful for debugging | |
| 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 (unsigned int _i) const |
| HalfedgeHandle | halfedge_handle (unsigned int _i) const |
| EdgeHandle | edge_handle (unsigned int _i) const |
| FaceHandle | face_handle (unsigned int _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 (size_t _n_vertices, size_t _n_edges, size_t _n_faces) |
| void | reserve (size_t _n_vertices, size_t _n_edges, size_t _n_faces) |
| void | garbage_collection (bool _v=true, bool _e=true, bool _f=true) |
| garbage collection More... | |
| template<typename std_API_Container_VHandlePointer , typename std_API_Container_HHandlePointer , typename std_API_Container_FHandlePointer > | |
| void | garbage_collection (std_API_Container_VHandlePointer &vh_to_update, std_API_Container_HHandlePointer &hh_to_update, std_API_Container_FHandlePointer &fh_to_update, bool _v=true, bool _e=true, bool _f=true) |
| garbage collection with handle tracking More... | |
| void | clear () |
| Clear the whole mesh. More... | |
| void | clean () |
| Reset the whole mesh. More... | |
| size_t | n_vertices () const |
| size_t | n_halfedges () const |
| size_t | n_edges () const |
| size_t | 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) |
| unsigned int | 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::TrueType) |
| void | set_prev_halfedge_handle (HalfedgeHandle, HalfedgeHandle, GenProg::FalseType) |
| HalfedgeHandle | prev_halfedge_handle (HalfedgeHandle _heh) const |
| HalfedgeHandle | prev_halfedge_handle (HalfedgeHandle _heh, GenProg::TrueType) const |
| HalfedgeHandle | prev_halfedge_handle (HalfedgeHandle _heh, GenProg::FalseType) 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, unsigned int _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 () |
Public Member Functions inherited from OpenMesh::BaseKernel | |
| template<class T > | |
| void | copy_property (VPropHandleT< T > &_ph, VertexHandle _vh_from, VertexHandle _vh_to) |
| Copies a single property from one mesh element to another (of the same type) More... | |
| template<class T > | |
| void | copy_property (HPropHandleT< T > _ph, HalfedgeHandle _hh_from, HalfedgeHandle _hh_to) |
| Copies a single property from one mesh element to another (of the same type) More... | |
| template<class T > | |
| void | copy_property (EPropHandleT< T > _ph, EdgeHandle _eh_from, EdgeHandle _eh_to) |
| Copies a single property from one mesh element to another (of the same type) More... | |
| template<class T > | |
| void | copy_property (FPropHandleT< T > _ph, FaceHandle _fh_from, FaceHandle _fh_to) |
| Copies a single property from one mesh element to another (of the same type) More... | |
| void | copy_all_properties (VertexHandle _vh_from, VertexHandle _vh_to, bool _copyBuildIn=false) |
| Copies all properties from one mesh element to another (of the same type) More... | |
| void | copy_all_properties (HalfedgeHandle _hh_from, HalfedgeHandle _hh_to, bool _copyBuildIn=false) |
| Copies all properties from one mesh element to another (of the same type) More... | |
| void | copy_all_properties (EdgeHandle _eh_from, EdgeHandle _eh_to, bool _copyBuildIn=false) |
| Copies all properties from one mesh element to another (of the same type) More... | |
| void | copy_all_properties (FaceHandle _fh_from, FaceHandle _fh_to, bool _copyBuildIn=false) |
| Copies all properties from one mesh element to another (of the same type) More... | |
| size_t | n_vprops (void) const |
| size_t | n_eprops (void) const |
| size_t | n_hprops (void) const |
| size_t | n_fprops (void) const |
| size_t | n_mprops (void) const |
| BaseProperty * | _get_vprop (const std::string &_name) |
| BaseProperty * | _get_eprop (const std::string &_name) |
| BaseProperty * | _get_hprop (const std::string &_name) |
| BaseProperty * | _get_fprop (const std::string &_name) |
| BaseProperty * | _get_mprop (const std::string &_name) |
| const BaseProperty * | _get_vprop (const std::string &_name) const |
| const BaseProperty * | _get_eprop (const std::string &_name) const |
| const BaseProperty * | _get_hprop (const std::string &_name) const |
| const BaseProperty * | _get_fprop (const std::string &_name) const |
| const BaseProperty * | _get_mprop (const std::string &_name) const |
| BaseProperty & | _vprop (size_t _idx) |
| BaseProperty & | _eprop (size_t _idx) |
| BaseProperty & | _hprop (size_t _idx) |
| BaseProperty & | _fprop (size_t _idx) |
| BaseProperty & | _mprop (size_t _idx) |
| const BaseProperty & | _vprop (size_t _idx) const |
| const BaseProperty & | _eprop (size_t _idx) const |
| const BaseProperty & | _hprop (size_t _idx) const |
| const BaseProperty & | _fprop (size_t _idx) const |
| const BaseProperty & | _mprop (size_t _idx) const |
| size_t | _add_vprop (BaseProperty *_bp) |
| size_t | _add_eprop (BaseProperty *_bp) |
| size_t | _add_hprop (BaseProperty *_bp) |
| size_t | _add_fprop (BaseProperty *_bp) |
| size_t | _add_mprop (BaseProperty *_bp) |
| void | property_stats () const |
| void | property_stats (std::ostream &_ostr) const |
| void | vprop_stats (std::string &_string) const |
| void | hprop_stats (std::string &_string) const |
| void | eprop_stats (std::string &_string) const |
| void | fprop_stats (std::string &_string) const |
| void | mprop_stats (std::string &_string) const |
| void | vprop_stats () const |
| void | hprop_stats () const |
| void | eprop_stats () const |
| void | fprop_stats () const |
| void | mprop_stats () const |
| void | vprop_stats (std::ostream &_ostr) const |
| void | hprop_stats (std::ostream &_ostr) const |
| void | eprop_stats (std::ostream &_ostr) const |
| void | fprop_stats (std::ostream &_ostr) const |
| void | mprop_stats (std::ostream &_ostr) const |
| prop_iterator | vprops_begin () |
| prop_iterator | vprops_end () |
| const_prop_iterator | vprops_begin () const |
| const_prop_iterator | vprops_end () const |
| prop_iterator | eprops_begin () |
| prop_iterator | eprops_end () |
| const_prop_iterator | eprops_begin () const |
| const_prop_iterator | eprops_end () const |
| prop_iterator | hprops_begin () |
| prop_iterator | hprops_end () |
| const_prop_iterator | hprops_begin () const |
| const_prop_iterator | hprops_end () const |
| prop_iterator | fprops_begin () |
| prop_iterator | fprops_end () |
| const_prop_iterator | fprops_begin () const |
| const_prop_iterator | fprops_end () const |
| prop_iterator | mprops_begin () |
| prop_iterator | mprops_end () |
| const_prop_iterator | mprops_begin () const |
| const_prop_iterator | mprops_end () const |
| template<class T > | |
| void | add_property (VPropHandleT< T > &_ph, const std::string &_name="<vprop>") |
| Adds a property. More... | |
| template<class T > | |
| void | add_property (HPropHandleT< T > &_ph, const std::string &_name="<hprop>") |
| Adds a property. More... | |
| template<class T > | |
| void | add_property (EPropHandleT< T > &_ph, const std::string &_name="<eprop>") |
| Adds a property. More... | |
| template<class T > | |
| void | add_property (FPropHandleT< T > &_ph, const std::string &_name="<fprop>") |
| Adds a property. More... | |
| template<class T > | |
| void | add_property (MPropHandleT< T > &_ph, const std::string &_name="<mprop>") |
| Adds a property. More... | |
| template<typename T > | |
| void | remove_property (VPropHandleT< T > &_ph) |
| Remove a property. More... | |
| template<typename T > | |
| void | remove_property (HPropHandleT< T > &_ph) |
| Remove a property. More... | |
| template<typename T > | |
| void | remove_property (EPropHandleT< T > &_ph) |
| Remove a property. More... | |
| template<typename T > | |
| void | remove_property (FPropHandleT< T > &_ph) |
| Remove a property. More... | |
| template<typename T > | |
| void | remove_property (MPropHandleT< T > &_ph) |
| Remove a property. More... | |
| template<class T > | |
| bool | get_property_handle (VPropHandleT< T > &_ph, const std::string &_name) const |
| Retrieves the handle to a named property by it's name. More... | |
| template<class T > | |
| bool | get_property_handle (HPropHandleT< T > &_ph, const std::string &_name) const |
| Retrieves the handle to a named property by it's name. More... | |
| template<class T > | |
| bool | get_property_handle (EPropHandleT< T > &_ph, const std::string &_name) const |
| Retrieves the handle to a named property by it's name. More... | |
| template<class T > | |
| bool | get_property_handle (FPropHandleT< T > &_ph, const std::string &_name) const |
| Retrieves the handle to a named property by it's name. More... | |
| template<class T > | |
| bool | get_property_handle (MPropHandleT< T > &_ph, const std::string &_name) const |
| Retrieves the handle to a named property by it's name. More... | |
| template<class T > | |
| PropertyT< T > & | property (VPropHandleT< T > _ph) |
| Access a property. More... | |
| template<class T > | |
| const PropertyT< T > & | property (VPropHandleT< T > _ph) const |
| Access a property. More... | |
| template<class T > | |
| PropertyT< T > & | property (HPropHandleT< T > _ph) |
| Access a property. More... | |
| template<class T > | |
| const PropertyT< T > & | property (HPropHandleT< T > _ph) const |
| Access a property. More... | |
| template<class T > | |
| PropertyT< T > & | property (EPropHandleT< T > _ph) |
| Access a property. More... | |
| template<class T > | |
| const PropertyT< T > & | property (EPropHandleT< T > _ph) const |
| Access a property. More... | |
| template<class T > | |
| PropertyT< T > & | property (FPropHandleT< T > _ph) |
| Access a property. More... | |
| template<class T > | |
| const PropertyT< T > & | property (FPropHandleT< T > _ph) const |
| Access a property. More... | |
| template<class T > | |
| PropertyT< T > & | mproperty (MPropHandleT< T > _ph) |
| Access a property. More... | |
| template<class T > | |
| const PropertyT< T > & | mproperty (MPropHandleT< T > _ph) const |
| Access a property. More... | |
| template<class T > | |
| VPropHandleT< T >::reference | property (VPropHandleT< T > _ph, VertexHandle _vh) |
| Return value of property for an item. | |
| template<class T > | |
| VPropHandleT< T >::const_reference | property (VPropHandleT< T > _ph, VertexHandle _vh) const |
| Return value of property for an item. | |
| template<class T > | |
| HPropHandleT< T >::reference | property (HPropHandleT< T > _ph, HalfedgeHandle _hh) |
| Return value of property for an item. | |
| template<class T > | |
| HPropHandleT< T >::const_reference | property (HPropHandleT< T > _ph, HalfedgeHandle _hh) const |
| Return value of property for an item. | |
| template<class T > | |
| EPropHandleT< T >::reference | property (EPropHandleT< T > _ph, EdgeHandle _eh) |
| Return value of property for an item. | |
| template<class T > | |
| EPropHandleT< T >::const_reference | property (EPropHandleT< T > _ph, EdgeHandle _eh) const |
| Return value of property for an item. | |
| template<class T > | |
| FPropHandleT< T >::reference | property (FPropHandleT< T > _ph, FaceHandle _fh) |
| Return value of property for an item. | |
| template<class T > | |
| FPropHandleT< T >::const_reference | property (FPropHandleT< T > _ph, FaceHandle _fh) const |
| Return value of property for an item. | |
| template<class T > | |
| MPropHandleT< T >::reference | property (MPropHandleT< T > _ph) |
| Return value of property for an item. | |
| template<class T > | |
| MPropHandleT< T >::const_reference | property (MPropHandleT< T > _ph) const |
| Return value of property for an item. | |
Additional Inherited Members | |
Protected Member Functions inherited from OpenMesh::BaseKernel | |
| BaseProperty & | _vprop (BaseHandle _h) |
| BaseProperty & | _eprop (BaseHandle _h) |
| BaseProperty & | _hprop (BaseHandle _h) |
| BaseProperty & | _fprop (BaseHandle _h) |
| BaseProperty & | _mprop (BaseHandle _h) |
| const BaseProperty & | _vprop (BaseHandle _h) const |
| const BaseProperty & | _eprop (BaseHandle _h) const |
| const BaseProperty & | _hprop (BaseHandle _h) const |
| const BaseProperty & | _fprop (BaseHandle _h) const |
| const BaseProperty & | _mprop (BaseHandle _h) const |
| void | vprops_reserve (size_t _n) const |
| void | vprops_resize (size_t _n) const |
| void | vprops_clear () |
| void | vprops_swap (unsigned int _i0, unsigned int _i1) const |
| void | hprops_reserve (size_t _n) const |
| void | hprops_resize (size_t _n) const |
| void | hprops_clear () |
| void | hprops_swap (unsigned int _i0, unsigned int _i1) const |
| void | eprops_reserve (size_t _n) const |
| void | eprops_resize (size_t _n) const |
| void | eprops_clear () |
| void | eprops_swap (unsigned int _i0, unsigned int _i1) const |
| void | fprops_reserve (size_t _n) const |
| void | fprops_resize (size_t _n) const |
| void | fprops_clear () |
| void | fprops_swap (unsigned int _i0, unsigned int _i1) const |
| void | mprops_resize (size_t _n) const |
| void | mprops_clear () |
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.
| void OpenMesh::ArrayKernel::clean | ( | ) |
Reset the whole mesh.
This will remove all elements from the mesh but keeps the properties
| void OpenMesh::ArrayKernel::clear | ( | void | ) |
Clear the whole mesh.
This will remove all properties and elements from the mesh
| void OpenMesh::ArrayKernel::garbage_collection | ( | bool | _v = true, |
| bool | _e = true, |
||
| bool | _f = true |
||
| ) |
garbage collection
Usually if you delete primitives in OpenMesh, they are only flagged as deleted. Only when you call garbage collection, they will be actually removed.
| _v | Remove deleted vertices? |
| _e | Remove deleted edges? |
| _f | Remove deleted faces? |
| void OpenMesh::ArrayKernel::garbage_collection | ( | std_API_Container_VHandlePointer & | vh_to_update, |
| std_API_Container_HHandlePointer & | hh_to_update, | ||
| std_API_Container_FHandlePointer & | fh_to_update, | ||
| bool | _v = true, |
||
| bool | _e = true, |
||
| bool | _f = true |
||
| ) |
garbage collection with handle tracking
Usually if you delete primitives in OpenMesh, they are only flagged as deleted. Only when you call garbage collection, they will be actually removed.
| vh_to_update | Pointers to vertex handles that should get updated |
| hh_to_update | Pointers to halfedge handles that should get updated |
| fh_to_update | Pointers to face handles that should get updated |
| _v | Remove deleted vertices? |
| _e | Remove deleted edges? |
| _f | Remove deleted faces? |
Project OpenMesh,
© Computer Graphics Group, RWTH Aachen.
Documentation generated using
doxygen
.