OpenMesh: OpenMesh::PropertyT< T > Class Template Reference

| OpenMesh

Public Types | Public Member Functions | List of all 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 >:
[legend]
Collaboration diagram for OpenMesh::PropertyT< T >:
[legend]

## Public Types
typedef T | Value
typedef std::vector< T > | vector_type
typedef T | value_type
typedef vector_type::reference | reference
typedef vector_type::const_reference | const_reference

## Public Member Functions
| PropertyT (const std::string &_name="<unknown>", const std::string &_internal_type_name="<unknown>")
| Default constructor.
| PropertyT (const PropertyT &_rhs)
| Copy constructor.
virtual void | reserve (size_t _n) override
| Reserve memory for n elements.
virtual void | resize (size_t _n) override
| Resize storage to hold n elements.
virtual void | clear () override
| Clear all elements and free memory.
virtual void | push_back () override
| Extend the number of elements by one.
virtual void | swap (size_t _i0, size_t _i1) override
| Let two elements swap their storage place.
virtual void | copy (size_t _i0, size_t _i1) override
| Copy one element to another.
virtual void | set_persistent (bool _yn) override
| Enable or disable persistency. More...
virtual size_t | n_elements () const override
| Number of elements in property.
virtual size_t | element_size () const override
| Size of one element in bytes or UnknownSize if not known.
virtual size_t | size_of (void) const override
| Return size of property in bytes.
virtual size_t | size_of (size_t _n_elem) const override
| Estimated size of property if it has _n_elem elements. More...
virtual size_t | store (std::ostream &_ostr, bool _swap) const override
| Store self as one binary block.
virtual size_t | restore (std::istream &_istr, bool _swap) override
| Restore self from a binary block. More...
const T * | data () const
| Get pointer to array (does not work for T==bool)
vector_type & | data_vector ()
| Get reference to property vector (be careful, improper usage, e.g. resizing, may crash OpenMesh!!!)
const vector_type & | data_vector () const
| Const access to property vector.
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 override
| Make a copy of self.
std::string | get_storage_name () const override
| returns a unique string for the type of the elements
Public Member Functions inherited from OpenMesh::BaseProperty
| BaseProperty (const std::string &_name="<unknown>", const std::string &_internal_type_name="<unknown>")
| Default constructor. More...
| BaseProperty (const BaseProperty &_rhs)
| Copy constructor.
virtual | ~BaseProperty ()
| Destructor.
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.

## Additional Inherited Members
Static Public Attributes inherited from OpenMesh::BaseProperty
static const size_t | UnknownSize = size_t(-1)
| Indicates an error when a size is returned by a member.
Protected Member Functions inherited from OpenMesh::BaseProperty
template<typename T >
void | check_and_set_persistent (bool _yn)

## 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

## ◆ restore()

template<class T >

virtual size_t OpenMesh::PropertyT< T >::restore | ( | std::istream & | _istr,
|  | bool | _swap
| ) |  |
| inlineoverridevirtual

Restore self from a binary block.

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

Implements OpenMesh::BaseProperty.

## ◆ set_persistent()

template<class T >

virtual void OpenMesh::PropertyT< T >::set_persistent | ( | bool | _yn | ) |
| inlineoverridevirtual

Enable or disable persistency.

Self must be a named property to enable persistency.

Implements OpenMesh::BaseProperty.

## ◆ size_of()

template<class T >

virtual size_t OpenMesh::PropertyT< T >::size_of | ( | size_t | _n_elem | ) | const
| inlineoverridevirtual

Estimated size of property if it has _n_elem elements.

The member returns UnknownSize if the size cannot be estimated.

Reimplemented from OpenMesh::BaseProperty.

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

- OpenMesh/Core/Utils/Property.hh