57 #include <ObjectTypes/Skeleton/SkeletonT.hh>
58 #include <OpenMesh/Core/IO/MeshIO.hh>
60 #define OBJECTDATA_SKIN "Skin Object-Data"
61 #define SKIN_WEIGHTS_PROP "skin-weights"
62 #define DEFAULTPOSE_PROP "Default pose"
128 virtual void attachSkin() = 0;
129 virtual void deformSkin() = 0;
131 virtual void releaseSkin() = 0;
159 static const bool is_streamable =
true;
163 static size_t size_of(
void)
168 static size_t size_of(
const value_type& _v)
171 return sizeof(
unsigned int);
173 value_type::const_iterator it = _v.begin();
174 unsigned int N =
static_cast<unsigned int>(_v.size());
177 for(;it!=_v.end(); ++it)
185 static size_t store(std::ostream& _os,
const value_type& _v,
bool _swap=
false)
187 value_type::const_iterator it = _v.begin();
188 unsigned int N =
static_cast<unsigned int>(_v.size());
191 bytes = IO::store( _os, N, _swap );
193 for(;it!=_v.end(); ++it)
195 bytes += IO::store( _os, it->first, _swap );
196 bytes += IO::store( _os, it->second, _swap );
199 return _os.good() ? bytes : 0;
202 static size_t restore( std::istream& _is, value_type& _v,
bool _swap=
false)
204 unsigned int N =
static_cast<unsigned int>(_v.size());
207 bytes = IO::restore( _is, N, _swap );
209 for(
unsigned int i=0; i < N; i++)
214 bytes += IO::restore( _is, first, _swap );
215 bytes += IO::restore( _is, second, _swap );
220 return _is.good() ? bytes : 0;
Method
Possible deformation methods.
OpenMesh::Vec3d normal
The points normal in the default pose.
Abstract base class for the skin template, wrapping all template versions of the skin.
int skeleton_
Holds the associated skeleton.
OpenMesh::Vec3d point
The points position in the default pose.
Holds the skins default pose.
size_t size_of(const T &_v)
std::map< unsigned int, double > SkinWeights
Stores the joint weights per vertex.
A handle used to refer to an animation or to a specific frame in an animation.