Developer Documentation
OpenMesh::BaseProperty Class Referenceabstract

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

Inheritance diagram for OpenMesh::BaseProperty:
OpenMesh::Kernel_OSG::oPropertyT< GeoProperty > OpenMesh::PropertyT< T > OpenMesh::PropertyT< bool > OpenMesh::Kernel_OSG::FP::GeoIndicesUI32< IsTriMesh >

Public Member Functions

 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 BasePropertyclone () 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
 

Static Public Attributes

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

Protected Member Functions

template<typename T >
void check_and_set_persistent (bool _yn)
 

Private Attributes

std::string name_
 
std::string internal_type_name_
 
bool persistent_
 

Detailed Description

Abstract class defining the basic interface of a dynamic property.

Definition at line 60 of file BaseProperty.hh.

Constructor & Destructor Documentation

◆ BaseProperty() [1/2]

OpenMesh::BaseProperty::BaseProperty ( const std::string &  _name = "<unknown>",
const std::string &  _internal_type_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
_nameOptional textual name for the property.
_internal_type_nameInternal type name which will be used when storing the data in OM format

Definition at line 84 of file BaseProperty.hh.

◆ BaseProperty() [2/2]

OpenMesh::BaseProperty::BaseProperty ( const BaseProperty _rhs)
inline

Copy constructor.

Definition at line 89 of file BaseProperty.hh.

◆ ~BaseProperty()

virtual OpenMesh::BaseProperty::~BaseProperty ( )
inlinevirtual

Destructor.

Definition at line 93 of file BaseProperty.hh.

Member Function Documentation

◆ check_and_set_persistent()

template<typename T >
void OpenMesh::BaseProperty::check_and_set_persistent ( bool  _yn)
inlineprotected

Definition at line 173 of file BaseProperty.hh.

◆ clear()

virtual void OpenMesh::BaseProperty::clear ( )
pure virtual

◆ clone()

virtual BaseProperty * OpenMesh::BaseProperty::clone ( ) const
pure virtual

◆ copy()

virtual void OpenMesh::BaseProperty::copy ( size_t  _io,
size_t  _i1 
)
pure virtual

Copy one element to another.

Implemented in OpenMesh::PropertyT< T >, and OpenMesh::PropertyT< bool >.

◆ element_size()

virtual size_t OpenMesh::BaseProperty::element_size ( ) const
pure virtual

Size of one element in bytes or UnknownSize if not known.

Implemented in OpenMesh::Kernel_OSG::oPropertyT< GeoProperty >, OpenMesh::PropertyT< T >, and OpenMesh::PropertyT< bool >.

◆ get_storage_name()

virtual std::string OpenMesh::BaseProperty::get_storage_name ( ) const
pure virtual

returns a unique string for the type of the elements

Implemented in OpenMesh::PropertyT< T >, and OpenMesh::PropertyT< bool >.

◆ internal_type_name()

const std::string & OpenMesh::BaseProperty::internal_type_name ( ) const
inline

Return internal type name of the property for type safe casting alternative to runtime information.

Definition at line 124 of file BaseProperty.hh.

◆ n_elements()

virtual size_t OpenMesh::BaseProperty::n_elements ( ) const
pure virtual

◆ name()

const std::string & OpenMesh::BaseProperty::name ( ) const
inline

Return the name of the property.

Definition at line 121 of file BaseProperty.hh.

◆ persistent()

bool OpenMesh::BaseProperty::persistent ( void  ) const
inline

Returns true if the persistent flag is enabled else false.

Definition at line 131 of file BaseProperty.hh.

◆ push_back()

virtual void OpenMesh::BaseProperty::push_back ( )
pure virtual

◆ reserve()

virtual void OpenMesh::BaseProperty::reserve ( size_t  _n)
pure virtual

◆ resize()

virtual void OpenMesh::BaseProperty::resize ( size_t  _n)
pure virtual

◆ restore()

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::Kernel_OSG::oPropertyT< GeoProperty >, OpenMesh::PropertyT< T >, and OpenMesh::PropertyT< bool >.

◆ set_persistent()

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::Kernel_OSG::oPropertyT< GeoProperty >, OpenMesh::PropertyT< T >, and OpenMesh::PropertyT< bool >.

◆ size_of() [1/2]

virtual size_t OpenMesh::BaseProperty::size_of ( void  ) const
inlinevirtual

Return size of property in bytes.

Reimplemented in OpenMesh::PropertyT< bool >, and OpenMesh::PropertyT< T >.

Definition at line 147 of file BaseProperty.hh.

◆ size_of() [2/2]

virtual size_t OpenMesh::BaseProperty::size_of ( size_t  _n_elem) const
inlinevirtual

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

Definition at line 154 of file BaseProperty.hh.

◆ stats()

void OpenMesh::BaseProperty::stats ( std::ostream &  _ostr) const
virtual

Definition at line 49 of file BaseProperty.cc.

◆ store()

virtual size_t OpenMesh::BaseProperty::store ( std::ostream &  _ostr,
bool  _swap 
) const
pure virtual

◆ swap()

virtual void OpenMesh::BaseProperty::swap ( size_t  _i0,
size_t  _i1 
)
pure virtual

Member Data Documentation

◆ internal_type_name_

std::string OpenMesh::BaseProperty::internal_type_name_
private

Definition at line 183 of file BaseProperty.hh.

◆ name_

std::string OpenMesh::BaseProperty::name_
private

Definition at line 182 of file BaseProperty.hh.

◆ persistent_

bool OpenMesh::BaseProperty::persistent_
private

Definition at line 184 of file BaseProperty.hh.

◆ UnknownSize

const size_t OpenMesh::BaseProperty::UnknownSize = size_t(-1)
static

Indicates an error when a size is returned by a member.

Definition at line 65 of file BaseProperty.hh.


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