- Main Page
- Modules
- Namespaces
- Classes
- Files
- Related Pages

- Class List
- Class Hierarchy
- Class Members

# OpenMesh::PropertyT< T > Class Template Reference

Default property class for any type T. More...

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

Inheritance diagram for OpenMesh::PropertyT< T >:

List of all members.

## Public Member Functions
| PropertyT (const std::string &_name="<unknown>")
| Default constructor.
| PropertyT (const PropertyT &_rhs)
| Copy constructor.
virtual void | reserve (size_t _n)
| Reserve memory for n elements.
virtual void | resize (size_t _n)
| Resize storage to hold n elements.
virtual void | push_back ()
| Extend the number of elements by one.
virtual void | free_mem ()
| Free unused memory.
virtual void | swap (size_t _i0, size_t _i1)
| Let two elements swap their storage place.
virtual void | set_persistent (bool _yn)
| Enable or disable persistency.
virtual size_t | n_elements () const
| Number of elements in property.
virtual size_t | element_size () const
| Size of one element in bytes or UnknownSize if not known.
virtual size_t | size_of (void) 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
| Store self as one binary block.
virtual size_t | restore (std::istream &_istr, bool _swap)
| Restore self from a binary block.
const T * | data () const
| Get pointer to array (does not work for T==bool).
reference | operator[] (int _idx)
| Access the i'th element. No range check is performed!
const_reference | operator[] (int _idx) const
| Const access to the i'th element. No range check is performed!
PropertyT< T > * | clone () const
| Make a copy of self.

## Detailed Description

### template<class T>
class OpenMesh::PropertyT< T >

Default property class for any type T.

The default property class for any type T.

The property supports persistency if T is a "fundamental" type:

- integer fundamental types except bool: char, short, int, long, long long (__int64 for MS VC++) and their unsigned companions.
- float fundamentals except `long double`: float, double
- OpenMesh vector types

Persistency of non-fundamental types is supported if and only if a specialization of struct IO::binary<> exists for the wanted type.

## Member Function Documentation

template<class T>

virtual void OpenMesh::PropertyT< T >::set_persistent | ( | bool | _yn | ) | `[inline, virtual]`

Enable or disable persistency.

Self must be a named property to enable persistency.

Implements OpenMesh::BaseProperty.

template<class T>

virtual size_t OpenMesh::PropertyT< T >::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 from OpenMesh::BaseProperty.

template<class T>

virtual size_t OpenMesh::PropertyT< T >::restore | ( | std::istream & | _istr,
|  | bool | _swap |
| ) |  |  | `[inline, virtual]`

Restore self from a binary block.

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

Implements OpenMesh::BaseProperty.

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

- Core/Utils/Property.hh