Main Page   Modules   Namespace List   Class Hierarchy   Compound List   File List   Namespace Members   Compound Members   File Members   Related Pages  

OpenMesh::BaseProperty Class Reference

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

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

Inheritance diagram for OpenMesh::BaseProperty:

OpenMesh::Kernel_OSG::oPropertyT< GeoProperty > OpenMesh::PropertyT< T > OpenMesh::PropertyT< bool > OpenMesh::PropertyT< std::string > List of all members.

Public Methods

 BaseProperty (const std::string &_name="< unknown >")
 Default constructor.

virtual ~BaseProperty ()
 Destructor.

virtual void reserve (unsigned int _n)=0
 Reserve memory for n elements.

virtual void resize (unsigned int _n)=0
 Resize storage to hold n elements.

virtual void push_back ()=0
 Extend the number of elements by one.

virtual void swap (unsigned int _i0, unsigned int _i1)=0
 Let two elements swap their storage place.

virtual BaseProperty * clone () const=0
 Return a deep copy of self.

const std::string & name () const
 Return the name of the property.

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

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


Detailed Description

Abstract class defining the basic interface of a dynamic property.


Constructor & Destructor Documentation

OpenMesh::BaseProperty::BaseProperty const std::string &    _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.


Member Function Documentation

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::PropertyT< T >, OpenMesh::PropertyT< bool >, OpenMesh::PropertyT< std::string >, OpenMesh::Kernel_OSG::oPropertyT< GeoProperty >, OpenMesh::Kernel_OSG::oPropertyT< osg::GeoPTypesUI8 >, and OpenMesh::Kernel_OSG::oPropertyT< osg::GeoPLengthsUI32 >.

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::PropertyT< T >, OpenMesh::PropertyT< bool >, OpenMesh::PropertyT< std::string >, OpenMesh::Kernel_OSG::oPropertyT< GeoProperty >, OpenMesh::Kernel_OSG::oPropertyT< osg::GeoPTypesUI8 >, and OpenMesh::Kernel_OSG::oPropertyT< osg::GeoPLengthsUI32 >.

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 >, OpenMesh::PropertyT< bool >, and OpenMesh::PropertyT< std::string >.


The documentation for this class was generated from the following file:
acg pic Project OpenMesh, ©  Computer Graphics Group, RWTH Aachen. Documentation generated using doxygen .