Developer Documentation
OpenMesh::Kernel_OSG::oPropertyT< GeoProperty > Class Template Reference

#include <OpenFlipper/libs_required/OpenMesh/src/OpenMesh/Tools/Kernel_OSG/PropertyT.hh>

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

Public Types

typedef GeoProperty property_t
 
typedef property_t::PtrType property_ptr_t
 
typedef property_t::StoredFieldType field_t
 
typedef field_t::StoredType element_t
 
typedef field_t::StoredType value_type
 

Public Member Functions

 oPropertyT (property_ptr_t _geo_prop, const std::string &_name="<unknown>")
 
 oPropertyT (const std::string &_name="<unknown>")
 
oPropertyToperator= (const oPropertyT &_rhs)
 
virtual void reserve (size_t _n)
 Reserve memory for n elements. More...
 
virtual void resize (size_t _n)
 Resize storage to hold n elements. More...
 
virtual void push_back ()
 Extend the number of elements by one. More...
 
virtual void swap (size_t _i0, size_t _i1)
 Let two elements swap their storage place. More...
 
virtual oPropertyT< property_t > * clone () const
 Return a deep copy of self. More...
 
virtual void set_persistent (bool _yn)
 
virtual size_t n_elements () const
 Number of elements in property. More...
 
virtual size_t element_size () const
 Size of one element in bytes or UnknownSize if not known. More...
 
virtual size_t store (std::ostream &_ostr, bool _swap) const
 Store self as one binary block. More...
 
virtual size_t restore (std::istream &_istr, bool _swap)
 
void clear (void)
 Clear all elements and free memory. More...
 
property_ptr_t & osg_ptr ()
 
const property_ptr_t & osg_ptr () const
 
const element_t * data () const
 
element_t & operator[] (size_t idx)
 
const element_t & operator[] (size_t idx) const
 
- 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. 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
 

Protected Attributes

property_ptr_t data_
 

Private Member Functions

void osg_init_check (void)
 
 oPropertyT (const oPropertyT &)
 

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. More...
 
- Protected Member Functions inherited from OpenMesh::BaseProperty
template<typename T >
void check_and_set_persistent (bool _yn)
 

Detailed Description

template<typename GeoProperty>
class OpenMesh::Kernel_OSG::oPropertyT< GeoProperty >

Property adaptor for OpenSG GeoProperties

This class bridges the interfaces of OpenMesh properties and OpenSG GeoProperties. The PropertyKernelT uses these adaptors to add all necessary property functions to the kernel, while the AttribKernelT extends the kernel with the standard properites. Finally the ArrayKernelT completes the kernel build with a specialized version of the garbage collections since the GeoIndices require special handling.

Attention
Data will be shared with a geometry core when linking a mesh with a OpenSG geometry node using Kernel_OSG::bind.

Definition at line 87 of file PropertyT.hh.

Member Typedef Documentation

◆ element_t

template<typename GeoProperty >
typedef field_t::StoredType OpenMesh::Kernel_OSG::oPropertyT< GeoProperty >::element_t

Definition at line 96 of file PropertyT.hh.

◆ field_t

template<typename GeoProperty >
typedef property_t::StoredFieldType OpenMesh::Kernel_OSG::oPropertyT< GeoProperty >::field_t

Definition at line 95 of file PropertyT.hh.

◆ property_ptr_t

template<typename GeoProperty >
typedef property_t::PtrType OpenMesh::Kernel_OSG::oPropertyT< GeoProperty >::property_ptr_t

Definition at line 93 of file PropertyT.hh.

◆ property_t

template<typename GeoProperty >
typedef GeoProperty OpenMesh::Kernel_OSG::oPropertyT< GeoProperty >::property_t

Definition at line 92 of file PropertyT.hh.

◆ value_type

template<typename GeoProperty >
typedef field_t::StoredType OpenMesh::Kernel_OSG::oPropertyT< GeoProperty >::value_type

Definition at line 97 of file PropertyT.hh.

Constructor & Destructor Documentation

◆ oPropertyT() [1/2]

template<typename GeoProperty >
OpenMesh::Kernel_OSG::oPropertyT< GeoProperty >::oPropertyT ( property_ptr_t  _geo_prop,
const std::string &  _name = "<unknown>" 
)
inline

Definition at line 102 of file PropertyT.hh.

◆ oPropertyT() [2/2]

template<typename GeoProperty >
OpenMesh::Kernel_OSG::oPropertyT< GeoProperty >::oPropertyT ( const std::string &  _name = "<unknown>")
inline

Definition at line 110 of file PropertyT.hh.

◆ ~oPropertyT()

template<typename GeoProperty >
virtual OpenMesh::Kernel_OSG::oPropertyT< GeoProperty >::~oPropertyT ( )
inlinevirtual

Definition at line 121 of file PropertyT.hh.

Member Function Documentation

◆ clear()

template<typename GeoProperty >
void OpenMesh::Kernel_OSG::oPropertyT< GeoProperty >::clear ( void  )
inlinevirtual

Clear all elements and free memory.

Implements OpenMesh::BaseProperty.

Definition at line 181 of file PropertyT.hh.

◆ clone()

template<typename GeoProperty >
virtual oPropertyT< property_t > * OpenMesh::Kernel_OSG::oPropertyT< GeoProperty >::clone ( ) const
inlinevirtual

Return a deep copy of self.

Implements OpenMesh::BaseProperty.

Definition at line 144 of file PropertyT.hh.

◆ data()

template<typename GeoProperty >
const element_t * OpenMesh::Kernel_OSG::oPropertyT< GeoProperty >::data ( ) const
inline

Definition at line 193 of file PropertyT.hh.

◆ element_size()

template<typename GeoProperty >
virtual size_t OpenMesh::Kernel_OSG::oPropertyT< GeoProperty >::element_size ( ) const
inlinevirtual

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

Implements OpenMesh::BaseProperty.

Definition at line 169 of file PropertyT.hh.

◆ n_elements()

template<typename GeoProperty >
virtual size_t OpenMesh::Kernel_OSG::oPropertyT< GeoProperty >::n_elements ( ) const
inlinevirtual

Number of elements in property.

Implements OpenMesh::BaseProperty.

Definition at line 166 of file PropertyT.hh.

◆ operator=()

template<typename GeoProperty >
oPropertyT & OpenMesh::Kernel_OSG::oPropertyT< GeoProperty >::operator= ( const oPropertyT< GeoProperty > &  _rhs)
inline

Definition at line 126 of file PropertyT.hh.

◆ operator[]() [1/2]

template<typename GeoProperty >
element_t & OpenMesh::Kernel_OSG::oPropertyT< GeoProperty >::operator[] ( size_t  idx)
inline

Definition at line 196 of file PropertyT.hh.

◆ operator[]() [2/2]

template<typename GeoProperty >
const element_t & OpenMesh::Kernel_OSG::oPropertyT< GeoProperty >::operator[] ( size_t  idx) const
inline

Definition at line 199 of file PropertyT.hh.

◆ osg_init_check()

template<typename GeoProperty >
void OpenMesh::Kernel_OSG::oPropertyT< GeoProperty >::osg_init_check ( void  )
inlineprivate

Definition at line 210 of file PropertyT.hh.

◆ osg_ptr() [1/2]

template<typename GeoProperty >
property_ptr_t & OpenMesh::Kernel_OSG::oPropertyT< GeoProperty >::osg_ptr ( )
inline

Definition at line 186 of file PropertyT.hh.

◆ osg_ptr() [2/2]

template<typename GeoProperty >
const property_ptr_t & OpenMesh::Kernel_OSG::oPropertyT< GeoProperty >::osg_ptr ( ) const
inline

Definition at line 189 of file PropertyT.hh.

◆ push_back()

template<typename GeoProperty >
virtual void OpenMesh::Kernel_OSG::oPropertyT< GeoProperty >::push_back ( )
inlinevirtual

Extend the number of elements by one.

Implements OpenMesh::BaseProperty.

Definition at line 140 of file PropertyT.hh.

◆ reserve()

template<typename GeoProperty >
virtual void OpenMesh::Kernel_OSG::oPropertyT< GeoProperty >::reserve ( size_t  _n)
inlinevirtual

Reserve memory for n elements.

Implements OpenMesh::BaseProperty.

Reimplemented in OpenMesh::Kernel_OSG::FP::GeoIndicesUI32< IsTriMesh >.

Definition at line 138 of file PropertyT.hh.

◆ resize()

template<typename GeoProperty >
virtual void OpenMesh::Kernel_OSG::oPropertyT< GeoProperty >::resize ( size_t  _n)
inlinevirtual

Resize storage to hold n elements.

Implements OpenMesh::BaseProperty.

Reimplemented in OpenMesh::Kernel_OSG::FP::GeoIndicesUI32< IsTriMesh >.

Definition at line 139 of file PropertyT.hh.

◆ restore()

template<typename GeoProperty >
virtual size_t OpenMesh::Kernel_OSG::oPropertyT< GeoProperty >::restore ( std::istream &  _istr,
bool  _swap 
)
inlinevirtual

Restore self from a binary block. Uses reserve() to set the size of self before restoring.

Implements OpenMesh::BaseProperty.

Definition at line 175 of file PropertyT.hh.

◆ set_persistent()

template<typename GeoProperty >
virtual void OpenMesh::Kernel_OSG::oPropertyT< GeoProperty >::set_persistent ( bool  _yn)
inlinevirtual

Enable or disable persistency. Self must be a named property to enable persistency.

Implements OpenMesh::BaseProperty.

Definition at line 161 of file PropertyT.hh.

◆ store()

template<typename GeoProperty >
virtual size_t OpenMesh::Kernel_OSG::oPropertyT< GeoProperty >::store ( std::ostream &  _ostr,
bool  _swap 
) const
inlinevirtual

Store self as one binary block.

Implements OpenMesh::BaseProperty.

Definition at line 172 of file PropertyT.hh.

◆ swap()

template<typename GeoProperty >
virtual void OpenMesh::Kernel_OSG::oPropertyT< GeoProperty >::swap ( size_t  _i0,
size_t  _i1 
)
inlinevirtual

Let two elements swap their storage place.

Implements OpenMesh::BaseProperty.

Reimplemented in OpenMesh::Kernel_OSG::FP::GeoIndicesUI32< IsTriMesh >.

Definition at line 141 of file PropertyT.hh.

Member Data Documentation

◆ data_

template<typename GeoProperty >
property_ptr_t OpenMesh::Kernel_OSG::oPropertyT< GeoProperty >::data_
protected

Definition at line 205 of file PropertyT.hh.


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