42 #ifndef OPENMESH_BASEPROPERTY_HH
43 #define OPENMESH_BASEPROPERTY_HH
46 #include <OpenMesh/Core/IO/StoreRestore.hh>
82 : name_(_name), persistent_(false)
87 : name_( _rhs.name_ ), persistent_( _rhs.persistent_ ) {}
95 virtual void reserve(
size_t _n) = 0;
98 virtual void resize(
size_t _n) = 0;
101 virtual void clear() = 0;
107 virtual void swap(
size_t _i0,
size_t _i1) = 0;
115 const std::string&
name()
const {
return name_; }
117 virtual void stats(std::ostream& _ostr)
const;
150 virtual size_t store( std::ostream& _ostr,
bool _swap )
const = 0;
155 virtual size_t restore( std::istream& _istr,
bool _swap ) = 0;
160 template <
typename T >
161 void check_and_set_persistent(
bool _yn )
163 if ( _yn && !IO::is_streamable<T>() )
164 omerr() <<
"Warning! Type of property value is not binary storable!\n";
165 persistent_ = IO::is_streamable<T>() && _yn;
176 #endif //OPENMESH_BASEPROPERTY_HH