Classes | Public Types | Public Member Functions

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 >:
Inheritance graph
[legend]
Collaboration diagram for OpenMesh::PropertyT< T >:
Collaboration graph
[legend]

List of all members.

Classes

struct  plus

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>")
 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 clear ()
 Clear all elements and free memory.
virtual void push_back ()
 Extend the number of elements by one.
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).
vector_type & data_vector ()
 Get reference to property vector (be careful, improper usage, e.g. resizing, may crash OpenMesh!!!).
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.

Property.hh <OpenMesh/Core/Utils/PropertyT.hh>

The default property class for any type T.

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

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

Property specialization for bool type. The data will be stored as a bitset.

Property specialization for std::string type.


Member Function Documentation

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.

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.


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

acg pic Project OpenMesh, ©  Computer Graphics Group, RWTH Aachen. Documentation generated using doxygen .