Developer Documentation
|
Default property class for any type T. More...
#include <OpenMesh/Core/Utils/PropertyT.hh>
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. More... | |
PropertyT (const PropertyT &_rhs) | |
Copy constructor. More... | |
virtual void | reserve (size_t _n) override |
Reserve memory for n elements. More... | |
virtual void | resize (size_t _n) override |
Resize storage to hold n elements. More... | |
virtual void | clear () override |
Clear all elements and free memory. More... | |
virtual void | push_back () override |
Extend the number of elements by one. More... | |
virtual void | swap (size_t _i0, size_t _i1) override |
Let two elements swap their storage place. More... | |
virtual void | copy (size_t _i0, size_t _i1) override |
Copy one element to another. More... | |
virtual void | set_persistent (bool _yn) override |
virtual size_t | n_elements () const override |
Number of elements in property. More... | |
virtual size_t | element_size () const override |
Size of one element in bytes or UnknownSize if not known. More... | |
virtual size_t | size_of (void) const override |
Return size of property in bytes. More... | |
virtual size_t | size_of (size_t _n_elem) const override |
virtual size_t | store (std::ostream &_ostr, bool _swap) const override |
Store self as one binary block. More... | |
virtual size_t | restore (std::istream &_istr, bool _swap) override |
const T * | data () const |
Get pointer to array (does not work for T==bool) More... | |
vector_type & | data_vector () |
Get reference to property vector (be careful, improper usage, e.g. resizing, may crash OpenMesh!!!) More... | |
const vector_type & | data_vector () const |
Const access to property vector. More... | |
reference | operator[] (int _idx) |
Access the i'th element. No range check is performed! More... | |
const_reference | operator[] (int _idx) const |
Const access to the i'th element. No range check is performed! More... | |
PropertyT< T > * | clone () const override |
Make a copy of self. More... | |
std::string | get_storage_name () const override |
returns a unique string for the type of the elements More... | |
![]() | |
BaseProperty (const std::string &_name="<unknown>", const std::string &_internal_type_name="<unknown>") | |
Default constructor. More... | |
BaseProperty (const BaseProperty &_rhs) | |
Copy constructor. More... | |
virtual | ~BaseProperty () |
Destructor. More... | |
virtual void | reserve (size_t _n)=0 |
Reserve memory for n elements. More... | |
virtual void | resize (size_t _n)=0 |
Resize storage to hold n elements. More... | |
virtual void | clear ()=0 |
Clear all elements and free memory. More... | |
virtual void | push_back ()=0 |
Extend the number of elements by one. More... | |
virtual void | swap (size_t _i0, size_t _i1)=0 |
Let two elements swap their storage place. More... | |
virtual void | copy (size_t _io, size_t _i1)=0 |
Copy one element to another. More... | |
virtual BaseProperty * | clone () const =0 |
Return a deep copy of self. More... | |
const std::string & | name () const |
Return the name of the property. More... | |
const std::string & | internal_type_name () const |
Return internal type name of the property for type safe casting alternative to runtime information. More... | |
virtual void | stats (std::ostream &_ostr) const |
bool | persistent (void) const |
Returns true if the persistent flag is enabled else false. More... | |
virtual void | set_persistent (bool _yn)=0 |
virtual std::string | get_storage_name () const =0 |
returns a unique string for the type of the elements More... | |
virtual size_t | n_elements () const =0 |
Number of elements in property. More... | |
virtual size_t | element_size () const =0 |
Size of one element in bytes or UnknownSize if not known. More... | |
virtual size_t | size_of () const |
Return size of property in bytes. More... | |
virtual size_t | size_of (size_t _n_elem) const |
virtual size_t | store (std::ostream &_ostr, bool _swap) const =0 |
Store self as one binary block. More... | |
virtual size_t | restore (std::istream &_istr, bool _swap)=0 |
Private Attributes | |
vector_type | data_ |
Additional Inherited Members | |
![]() | |
static const size_t | UnknownSize = size_t(-1) |
Indicates an error when a size is returned by a member. More... | |
![]() | |
template<typename T > | |
void | check_and_set_persistent (bool _yn) |
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:
long double
: float, doublePersistency of non-fundamental types is supported if and only if a specialization of struct IO::binary<> exists for the wanted type.
Definition at line 92 of file Property.hh.
typedef vector_type::const_reference OpenMesh::PropertyT< T >::const_reference |
Definition at line 100 of file Property.hh.
typedef vector_type::reference OpenMesh::PropertyT< T >::reference |
Definition at line 99 of file Property.hh.
typedef T OpenMesh::PropertyT< T >::Value |
Definition at line 96 of file Property.hh.
typedef T OpenMesh::PropertyT< T >::value_type |
Definition at line 98 of file Property.hh.
typedef std::vector<T> OpenMesh::PropertyT< T >::vector_type |
Definition at line 97 of file Property.hh.
|
inlineexplicit |
Default constructor.
Definition at line 105 of file Property.hh.
|
inline |
Copy constructor.
Definition at line 112 of file Property.hh.
|
inlineoverridevirtual |
Clear all elements and free memory.
Implements OpenMesh::BaseProperty.
Definition at line 119 of file Property.hh.
|
inlineoverridevirtual |
|
inlineoverridevirtual |
Copy one element to another.
Implements OpenMesh::BaseProperty.
Definition at line 123 of file Property.hh.
|
inline |
Get pointer to array (does not work for T==bool)
Definition at line 176 of file Property.hh.
|
inline |
Get reference to property vector (be careful, improper usage, e.g. resizing, may crash OpenMesh!!!)
Definition at line 185 of file Property.hh.
|
inline |
Const access to property vector.
Definition at line 190 of file Property.hh.
|
inlineoverridevirtual |
Size of one element in bytes or UnknownSize if not known.
Implements OpenMesh::BaseProperty.
Definition at line 132 of file Property.hh.
|
inlineoverridevirtual |
returns a unique string for the type of the elements
Implements OpenMesh::BaseProperty.
Definition at line 215 of file Property.hh.
|
inlineoverridevirtual |
Number of elements in property.
Implements OpenMesh::BaseProperty.
Definition at line 131 of file Property.hh.
|
inline |
Access the i'th element. No range check is performed!
Definition at line 195 of file Property.hh.
|
inline |
Const access to the i'th element. No range check is performed!
Definition at line 202 of file Property.hh.
|
inlineoverridevirtual |
Extend the number of elements by one.
Implements OpenMesh::BaseProperty.
Definition at line 120 of file Property.hh.
|
inlineoverridevirtual |
Reserve memory for n elements.
Implements OpenMesh::BaseProperty.
Definition at line 117 of file Property.hh.
|
inlineoverridevirtual |
Resize storage to hold n elements.
Implements OpenMesh::BaseProperty.
Definition at line 118 of file Property.hh.
|
inlineoverridevirtual |
Restore self from a binary block. Uses reserve() to set the size of self before restoring.
Implements OpenMesh::BaseProperty.
Definition at line 162 of file Property.hh.
|
inlineoverridevirtual |
Enable or disable persistency. Self must be a named property to enable persistency.
Implements OpenMesh::BaseProperty.
Definition at line 128 of file Property.hh.
|
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.
Definition at line 148 of file Property.hh.
|
inlineoverridevirtual |
Return size of property in bytes.
Reimplemented from OpenMesh::BaseProperty.
Definition at line 141 of file Property.hh.
|
inlineoverridevirtual |
Store self as one binary block.
Implements OpenMesh::BaseProperty.
Definition at line 151 of file Property.hh.
|
inlineoverridevirtual |
Let two elements swap their storage place.
Implements OpenMesh::BaseProperty.
Definition at line 121 of file Property.hh.
|
private |
Definition at line 222 of file Property.hh.