Developer Documentation
|
#include <libs_required/OpenMesh/src/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) |
template<class T > | |
void | copy_property (HPropHandleT< T > _ph, HalfedgeHandle _hh_from, HalfedgeHandle _hh_to) |
template<class T > | |
void | copy_property (EPropHandleT< T > _ph, EdgeHandle _eh_from, EdgeHandle _eh_to) |
template<class T > | |
void | copy_property (FPropHandleT< T > _ph, FaceHandle _fh_from, FaceHandle _fh_to) |
void | copy_all_properties (VertexHandle _vh_from, VertexHandle _vh_to, bool _copyBuildIn=false) |
void | copy_all_properties (HalfedgeHandle _hh_from, HalfedgeHandle _hh_to, bool _copyBuildIn=false) |
void | copy_all_properties (EdgeHandle _eh_from, EdgeHandle _eh_to, bool _copyBuildIn=false) |
void | copy_all_properties (FaceHandle _fh_from, FaceHandle _fh_to, bool _copyBuildIn=false) |
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>") |
template<class T > | |
void | add_property (HPropHandleT< T > &_ph, const std::string &_name="<hprop>") |
template<class T > | |
void | add_property (EPropHandleT< T > &_ph, const std::string &_name="<eprop>") |
template<class T > | |
void | add_property (FPropHandleT< T > &_ph, const std::string &_name="<fprop>") |
template<class T > | |
void | add_property (MPropHandleT< T > &_ph, const std::string &_name="<mprop>") |
Removing a property from a mesh tiem | |
template<typename T > | |
void | remove_property (VPropHandleT< T > &_ph) |
template<typename T > | |
void | remove_property (HPropHandleT< T > &_ph) |
template<typename T > | |
void | remove_property (EPropHandleT< T > &_ph) |
template<typename T > | |
void | remove_property (FPropHandleT< T > &_ph) |
template<typename T > | |
void | remove_property (MPropHandleT< T > &_ph) |
Get property handle by name | |
template<class T > | |
bool | get_property_handle (VPropHandleT< T > &_ph, const std::string &_name) const |
template<class T > | |
bool | get_property_handle (HPropHandleT< T > &_ph, const std::string &_name) const |
template<class T > | |
bool | get_property_handle (EPropHandleT< T > &_ph, const std::string &_name) const |
template<class T > | |
bool | get_property_handle (FPropHandleT< T > &_ph, const std::string &_name) const |
template<class T > | |
bool | get_property_handle (MPropHandleT< T > &_ph, const std::string &_name) const |
Access a property | |
template<class T > | |
PropertyT< T > & | property (VPropHandleT< T > _ph) |
template<class T > | |
const PropertyT< T > & | property (VPropHandleT< T > _ph) const |
template<class T > | |
PropertyT< T > & | property (HPropHandleT< T > _ph) |
template<class T > | |
const PropertyT< T > & | property (HPropHandleT< T > _ph) const |
template<class T > | |
PropertyT< T > & | property (EPropHandleT< T > _ph) |
template<class T > | |
const PropertyT< T > & | property (EPropHandleT< T > _ph) const |
template<class T > | |
PropertyT< T > & | property (FPropHandleT< T > _ph) |
template<class T > | |
const PropertyT< T > & | property (FPropHandleT< T > _ph) const |
template<class T > | |
PropertyT< T > & | mproperty (MPropHandleT< T > _ph) |
template<class T > | |
const PropertyT< T > & | mproperty (MPropHandleT< T > _ph) const |
Access a property element using a handle to a mesh item | |
template<class T > | |
VPropHandleT< T >::reference | property (VPropHandleT< T > _ph, VertexHandle _vh) |
template<class T > | |
VPropHandleT< T >::const_reference | property (VPropHandleT< T > _ph, VertexHandle _vh) const |
template<class T > | |
HPropHandleT< T >::reference | property (HPropHandleT< T > _ph, HalfedgeHandle _hh) |
template<class T > | |
HPropHandleT< T >::const_reference | property (HPropHandleT< T > _ph, HalfedgeHandle _hh) const |
template<class T > | |
EPropHandleT< T >::reference | property (EPropHandleT< T > _ph, EdgeHandle _eh) |
template<class T > | |
EPropHandleT< T >::const_reference | property (EPropHandleT< T > _ph, EdgeHandle _eh) const |
template<class T > | |
FPropHandleT< T >::reference | property (FPropHandleT< T > _ph, FaceHandle _fh) |
template<class T > | |
FPropHandleT< T >::const_reference | property (FPropHandleT< T > _ph, FaceHandle _fh) const |
template<class T > | |
MPropHandleT< T >::reference | property (MPropHandleT< T > _ph) |
template<class T > | |
MPropHandleT< T >::const_reference | property (MPropHandleT< T > _ph) const |
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 |
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 () |
Private Attributes | |
PropertyContainer | vprops_ |
PropertyContainer | hprops_ |
PropertyContainer | eprops_ |
PropertyContainer | fprops_ |
PropertyContainer | mprops_ |
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.
Definition at line 99 of file BaseKernel.hh.
|
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:
|
Definition at line 138 of file BaseKernel.hh.
|
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:
|
Definition at line 145 of file BaseKernel.hh.
|
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:
|
Definition at line 152 of file BaseKernel.hh.
|
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:
|
Definition at line 159 of file BaseKernel.hh.
|
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:
|
Definition at line 166 of file BaseKernel.hh.
|
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? |
Definition at line 476 of file BaseKernel.hh.
|
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? |
Definition at line 495 of file BaseKernel.hh.
|
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? |
Definition at line 514 of file BaseKernel.hh.
|
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? |
Definition at line 533 of file BaseKernel.hh.
|
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 |
Definition at line 424 of file BaseKernel.hh.
|
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 |
Definition at line 436 of file BaseKernel.hh.
|
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 |
Definition at line 448 of file BaseKernel.hh.
|
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 |
Definition at line 460 of file BaseKernel.hh.
|
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
. Definition at line 243 of file BaseKernel.hh.
|
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
. Definition at line 250 of file BaseKernel.hh.
|
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
. Definition at line 257 of file BaseKernel.hh.
|
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
. Definition at line 264 of file BaseKernel.hh.
|
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
. Definition at line 271 of file BaseKernel.hh.
|
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. |
Definition at line 330 of file BaseKernel.hh.
|
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. |
Definition at line 334 of file BaseKernel.hh.
|
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. |
Definition at line 294 of file BaseKernel.hh.
|
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. |
Definition at line 298 of file BaseKernel.hh.
|
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. |
Definition at line 303 of file BaseKernel.hh.
|
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. |
Definition at line 307 of file BaseKernel.hh.
|
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. |
Definition at line 312 of file BaseKernel.hh.
|
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. |
Definition at line 316 of file BaseKernel.hh.
|
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. |
Definition at line 321 of file BaseKernel.hh.
|
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. |
Definition at line 325 of file BaseKernel.hh.
|
inline |
Return value of property for an item
Definition at line 350 of file BaseKernel.hh.
|
inline |
Return value of property for an item
Definition at line 356 of file BaseKernel.hh.
|
inline |
Return value of property for an item
Definition at line 363 of file BaseKernel.hh.
|
inline |
Return value of property for an item
Definition at line 369 of file BaseKernel.hh.
|
inline |
Return value of property for an item
Definition at line 376 of file BaseKernel.hh.
|
inline |
Return value of property for an item
Definition at line 382 of file BaseKernel.hh.
|
inline |
Return value of property for an item
Definition at line 389 of file BaseKernel.hh.
|
inline |
Return value of property for an item
Definition at line 395 of file BaseKernel.hh.
|
inline |
Return value of property for an item
Definition at line 402 of file BaseKernel.hh.
|
inline |
Return value of property for an item
Definition at line 408 of file BaseKernel.hh.
|
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. |
Definition at line 188 of file BaseKernel.hh.
|
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. |
Definition at line 196 of file BaseKernel.hh.
|
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. |
Definition at line 204 of file BaseKernel.hh.
|
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. |
Definition at line 212 of file BaseKernel.hh.
|
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. |
Definition at line 220 of file BaseKernel.hh.
|
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.
Definition at line 663 of file BaseKernel.hh.