Loading...
Searching...
No Matches
OpenMesh::BaseProperty Class Referenceabstract

Abstract class defining the basic interface of a dynamic property. More...

`#include <OpenMesh/Core/Utils/PropertyT.hh>`

Inheritance diagram for OpenMesh::BaseProperty:
[legend]

## Public Member Functions

| BaseProperty (const std::string &_name="<unknown>", const std::string &_internal_type_name="<unknown>")
| Default constructor.
| BaseProperty (const BaseProperty &_rhs)
| Copy constructor.
virtual | ~BaseProperty ()
| Destructor.
virtual void | reserve (size_t _n)=0
| Reserve memory for n elements.
virtual void | resize (size_t _n)=0
| Resize storage to hold n elements.
virtual void | clear ()=0
| Clear all elements and free memory.
virtual void | push_back ()=0
| Extend the number of elements by one.
virtual void | swap (size_t _i0, size_t _i1)=0
| Let two elements swap their storage place.
virtual void | copy (size_t _io, size_t _i1)=0
| Copy one element to another.
virtual BaseProperty * | clone () const =0
| Return a deep copy of self.
const std::string & | name () const
| Return the name of the property.
const std::string & | internal_type_name () const
| Return internal type name of the property for type safe casting alternative to runtime information.
virtual void | stats (std::ostream &_ostr) const
bool | persistent (void) const
| Returns true if the persistent flag is enabled else false.
virtual void | set_persistent (bool _yn)=0
| Enable or disable persistency.
virtual std::string | get_storage_name () const =0
| returns a unique string for the type of the elements
virtual size_t | n_elements () const =0
| Number of elements in property.
virtual size_t | element_size () const =0
| Size of one element in bytes or UnknownSize if not known.
virtual size_t | size_of () const
| Return size of property in bytes.
virtual size_t | size_of (size_t _n_elem) const
| Estimated size of property if it has _n_elem elements.
virtual size_t | store (std::ostream &_ostr, bool _swap) const =0
| Store self as one binary block.
virtual size_t | restore (std::istream &_istr, bool _swap)=0
| Restore self from a binary block.

## Static Public Attributes

static const size_t | UnknownSize = size_t(-1)
| Indicates an error when a size is returned by a member.

## Protected Member Functions

template<typename T >
void | check_and_set_persistent (bool _yn)

## Detailed Description

Abstract class defining the basic interface of a dynamic property.

## Constructor & Destructor Documentation

## BaseProperty()

OpenMesh::BaseProperty::BaseProperty | ( | const std::string & | _name = `"<unknown>"`,
|  | const std::string & | _internal_type_name = `"<unknown>"`
| ) |  |

inline

Default constructor.

In OpenMesh all mesh data is stored in so-called properties. We distinuish between standard properties, which can be defined at compile time using the Attributes in the traits definition and at runtime using the request property functions defined in one of the kernels.

If the property should be stored along with the default properties in the OM-format one must name the property and enable the persistant flag with set_persistent().

Parameters

  _name | Optional textual name for the property.
  _internal_type_name | Internal type name which will be used when storing the data in OM format

## Member Function Documentation

## clear()

virtual void OpenMesh::BaseProperty::clear | ( |  | ) |

pure virtual

Clear all elements and free memory.

Implemented in OpenMesh::PropertyT< T >, OpenMesh::PropertyT< bool >, and OpenMesh::Kernel_OSG::oPropertyT< GeoProperty >.

## clone()

virtual BaseProperty * OpenMesh::BaseProperty::clone | ( |  | ) | const

pure virtual

Return a deep copy of self.

Implemented in OpenMesh::Kernel_OSG::oPropertyT< GeoProperty >, OpenMesh::PropertyT< T >, and OpenMesh::PropertyT< bool >.

## copy()

virtual void OpenMesh::BaseProperty::copy | ( | size_t | _io,
|  | size_t | _i1
| ) |  |

pure virtual

Copy one element to another.

Implemented in OpenMesh::PropertyT< T >, and OpenMesh::PropertyT< bool >.

## element_size()

virtual size_t OpenMesh::BaseProperty::element_size | ( |  | ) | const

pure virtual

Size of one element in bytes or UnknownSize if not known.

Implemented in OpenMesh::Kernel_OSG::oPropertyT< GeoProperty >, OpenMesh::PropertyT< T >, and OpenMesh::PropertyT< bool >.

## get_storage_name()

virtual std::string OpenMesh::BaseProperty::get_storage_name | ( |  | ) | const

pure virtual

returns a unique string for the type of the elements

Implemented in OpenMesh::PropertyT< T >, and OpenMesh::PropertyT< bool >.

## n_elements()

virtual size_t OpenMesh::BaseProperty::n_elements | ( |  | ) | const

pure virtual

Number of elements in property.

Implemented in OpenMesh::Kernel_OSG::oPropertyT< GeoProperty >, OpenMesh::PropertyT< T >, and OpenMesh::PropertyT< bool >.

## push_back()

virtual void OpenMesh::BaseProperty::push_back | ( |  | ) |

pure virtual

Extend the number of elements by one.

Implemented in OpenMesh::Kernel_OSG::oPropertyT< GeoProperty >, OpenMesh::PropertyT< T >, and OpenMesh::PropertyT< bool >.

## reserve()

virtual void OpenMesh::BaseProperty::reserve | ( | size_t | _n | ) |

pure virtual

Reserve memory for n elements.

Implemented in OpenMesh::Kernel_OSG::oPropertyT< GeoProperty >, OpenMesh::PropertyT< T >, and OpenMesh::PropertyT< bool >.

## resize()

virtual void OpenMesh::BaseProperty::resize | ( | size_t | _n | ) |

pure virtual

Resize storage to hold n elements.

Implemented in OpenMesh::Kernel_OSG::oPropertyT< GeoProperty >, OpenMesh::PropertyT< T >, and OpenMesh::PropertyT< bool >.

## restore()

virtual size_t OpenMesh::BaseProperty::restore | ( | std::istream & | _istr,
|  | bool | _swap
| ) |  |

pure virtual

Restore self from a binary block.

Uses reserve() to set the size of self before restoring.

Implemented in OpenMesh::Kernel_OSG::oPropertyT< GeoProperty >, OpenMesh::PropertyT< T >, and OpenMesh::PropertyT< bool >.

## set_persistent()

virtual void OpenMesh::BaseProperty::set_persistent | ( | bool | _yn | ) |

pure virtual

Enable or disable persistency.

Self must be a named property to enable persistency.

Implemented in OpenMesh::Kernel_OSG::oPropertyT< GeoProperty >, OpenMesh::PropertyT< T >, and OpenMesh::PropertyT< bool >.

## size_of() [1/2]

virtual size_t OpenMesh::BaseProperty::size_of | ( | void |  | ) | const

inline virtual

Return size of property in bytes.

Reimplemented in OpenMesh::PropertyT< bool >, and OpenMesh::PropertyT< T >.

## size_of() [2/2]

virtual size_t OpenMesh::BaseProperty::size_of | ( | size_t | _n_elem | ) | const

inline virtual

Estimated size of property if it has _n_elem elements.

The member returns UnknownSize if the size cannot be estimated.

Reimplemented in OpenMesh::PropertyT< T >, and OpenMesh::PropertyT< bool >.

## store()

virtual size_t OpenMesh::BaseProperty::store | ( | std::ostream & | _ostr,
|  | bool | _swap
| ) |  | const

pure virtual

Store self as one binary block.

Implemented in OpenMesh::Kernel_OSG::oPropertyT< GeoProperty >, OpenMesh::PropertyT< T >, and OpenMesh::PropertyT< bool >.

## swap()

virtual void OpenMesh::BaseProperty::swap | ( | size_t | _i0,
|  | size_t | _i1
| ) |  |

pure virtual

Let two elements swap their storage place.

Implemented in OpenMesh::Kernel_OSG::oPropertyT< GeoProperty >, OpenMesh::PropertyT< T >, and OpenMesh::PropertyT< bool >.

The documentation for this class was generated from the following files:

- OpenMesh/Core/Utils/BaseProperty.hh
- OpenMesh/Core/Utils/BaseProperty.cc