OpenMesh
|
This class provides the basic property management like adding/removing properties and access to properties. More...
#include <OpenMesh/Core/Mesh/BaseKernel.hh>
Public Types | |
typedef PropertyContainer::iterator | prop_iterator |
typedef PropertyContainer::const_iterator | const_prop_iterator |
Public Member Functions | |
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) |
virtual size_t | n_vertices () const |
virtual size_t | n_halfedges () const |
virtual size_t | n_edges () const |
virtual size_t | n_faces () const |
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 |
Add a property to a mesh item | |
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... | |
Removing a property from a mesh tiem | |
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... | |
Get property handle by name | |
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... | |
Access a property | |
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... | |
Access a property element using a handle to a mesh item | |
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. | |
Protected Member Functions | |
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 |
Reserves space for _n elements in all vertex property vectors. | |
void | vprops_resize (size_t _n) const |
Resizes all vertex property vectors to the specified size. | |
void | vprops_resize_if_smaller (size_t _n) const |
Same as vprops_resize() but ignores vertex property vectors that have a size larger than _n . More... | |
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 () |
This class provides the basic property management like adding/removing properties and access to properties.
All operations provided by BaseKernel need at least a property handle (VPropHandleT, EPropHandleT, HPropHandleT, FPropHandleT, MPropHandleT). which keeps the data type of the property, too.
There are two types of properties:
The differentiation is only semantically, technically both are equally handled. Therefore the methods provided by the BaseKernel are applicable to both property types.
|
inline |
Adds a property.
Depending on the property handle type a vertex, (half-)edge, face or mesh property is added to the mesh. If the action fails the handle is invalid. On success the handle must be used to access the property data with property().
_ph | A property handle defining the data type to bind to mesh. On success the handle is valid else invalid. |
_name | Optional name of property. Following restrictions apply to the name:
|
|
inline |
Adds a property.
Depending on the property handle type a vertex, (half-)edge, face or mesh property is added to the mesh. If the action fails the handle is invalid. On success the handle must be used to access the property data with property().
_ph | A property handle defining the data type to bind to mesh. On success the handle is valid else invalid. |
_name | Optional name of property. Following restrictions apply to the name:
|
|
inline |
Adds a property.
Depending on the property handle type a vertex, (half-)edge, face or mesh property is added to the mesh. If the action fails the handle is invalid. On success the handle must be used to access the property data with property().
_ph | A property handle defining the data type to bind to mesh. On success the handle is valid else invalid. |
_name | Optional name of property. Following restrictions apply to the name:
|
|
inline |
Adds a property.
Depending on the property handle type a vertex, (half-)edge, face or mesh property is added to the mesh. If the action fails the handle is invalid. On success the handle must be used to access the property data with property().
_ph | A property handle defining the data type to bind to mesh. On success the handle is valid else invalid. |
_name | Optional name of property. Following restrictions apply to the name:
|
|
inline |
Adds a property.
Depending on the property handle type a vertex, (half-)edge, face or mesh property is added to the mesh. If the action fails the handle is invalid. On success the handle must be used to access the property data with property().
_ph | A property handle defining the data type to bind to mesh. On success the handle is valid else invalid. |
_name | Optional name of property. Following restrictions apply to the name:
|
|
inline |
Copies all properties from one mesh element to another (of the same type)
_vh_from | A vertex handle - source |
_vh_to | A vertex handle - target |
_copyBuildIn | Should the internal properties (position, normal, texture coordinate,..) be copied? |
|
inline |
Copies all properties from one mesh element to another (of the same type)
_hh_from | A halfedge handle - source |
_hh_to | A halfedge handle - target |
_copyBuildIn | Should the internal properties (position, normal, texture coordinate,..) be copied? |
|
inline |
Copies all properties from one mesh element to another (of the same type)
_eh_from | An edge handle - source |
_eh_to | An edge handle - target |
_copyBuildIn | Should the internal properties (position, normal, texture coordinate,..) be copied? |
|
inline |
Copies all properties from one mesh element to another (of the same type)
_fh_from | A face handle - source |
_fh_to | A face handle - target |
_copyBuildIn | Should the internal properties (position, normal, texture coordinate,..) be copied? |
|
inline |
Copies a single property from one mesh element to another (of the same type)
_ph | A vertex property handle |
_vh_from | From vertex handle |
_vh_to | To vertex handle |
|
inline |
Copies a single property from one mesh element to another (of the same type)
_ph | A halfedge property handle |
_hh_from | From halfedge handle |
_hh_to | To halfedge handle |
|
inline |
Copies a single property from one mesh element to another (of the same type)
_ph | An edge property handle |
_eh_from | From edge handle |
_eh_to | To edge handle |
|
inline |
Copies a single property from one mesh element to another (of the same type)
_ph | A face property handle |
_fh_from | From face handle |
_fh_to | To face handle |
|
inline |
Retrieves the handle to a named property by it's name.
_ph | A property handle. On success the handle is valid else invalid. |
_name | Name of wanted property. |
true
if such a named property is available, else false
.
|
inline |
Retrieves the handle to a named property by it's name.
_ph | A property handle. On success the handle is valid else invalid. |
_name | Name of wanted property. |
true
if such a named property is available, else false
.
|
inline |
Retrieves the handle to a named property by it's name.
_ph | A property handle. On success the handle is valid else invalid. |
_name | Name of wanted property. |
true
if such a named property is available, else false
.
|
inline |
Retrieves the handle to a named property by it's name.
_ph | A property handle. On success the handle is valid else invalid. |
_name | Name of wanted property. |
true
if such a named property is available, else false
.
|
inline |
Retrieves the handle to a named property by it's name.
_ph | A property handle. On success the handle is valid else invalid. |
_name | Name of wanted property. |
true
if such a named property is available, else false
.
|
inline |
Access a property.
This method returns a reference to property. The property handle must be valid! The result is unpredictable if the handle is invalid!
_ph | A valid (!) property handle. |
|
inline |
Access a property.
This method returns a reference to property. The property handle must be valid! The result is unpredictable if the handle is invalid!
_ph | A valid (!) property handle. |
|
inline |
Access a property.
This method returns a reference to property. The property handle must be valid! The result is unpredictable if the handle is invalid!
_ph | A valid (!) property handle. |
|
inline |
Access a property.
This method returns a reference to property. The property handle must be valid! The result is unpredictable if the handle is invalid!
_ph | A valid (!) property handle. |
|
inline |
Access a property.
This method returns a reference to property. The property handle must be valid! The result is unpredictable if the handle is invalid!
_ph | A valid (!) property handle. |
|
inline |
Access a property.
This method returns a reference to property. The property handle must be valid! The result is unpredictable if the handle is invalid!
_ph | A valid (!) property handle. |
|
inline |
Access a property.
This method returns a reference to property. The property handle must be valid! The result is unpredictable if the handle is invalid!
_ph | A valid (!) property handle. |
|
inline |
Access a property.
This method returns a reference to property. The property handle must be valid! The result is unpredictable if the handle is invalid!
_ph | A valid (!) property handle. |
|
inline |
Access a property.
This method returns a reference to property. The property handle must be valid! The result is unpredictable if the handle is invalid!
_ph | A valid (!) property handle. |
|
inline |
Access a property.
This method returns a reference to property. The property handle must be valid! The result is unpredictable if the handle is invalid!
_ph | A valid (!) property handle. |
|
inline |
Remove a property.
Removes the property represented by the handle from the apropriate mesh item.
_ph | Property to be removed. The handle is invalid afterwords. |
|
inline |
Remove a property.
Removes the property represented by the handle from the apropriate mesh item.
_ph | Property to be removed. The handle is invalid afterwords. |
|
inline |
Remove a property.
Removes the property represented by the handle from the apropriate mesh item.
_ph | Property to be removed. The handle is invalid afterwords. |
|
inline |
Remove a property.
Removes the property represented by the handle from the apropriate mesh item.
_ph | Property to be removed. The handle is invalid afterwords. |
|
inline |
Remove a property.
Removes the property represented by the handle from the apropriate mesh item.
_ph | Property to be removed. The handle is invalid afterwords. |
|
inlineprotected |
Same as vprops_resize() but ignores vertex property vectors that have a size larger than _n
.
Use this method instead of vprops_resize() if you plan to frequently reduce and enlarge the property container and you don't want to waste time reallocating the property vectors every time.