public VertexDataBindChoice ChooseVertexDataForBinding( bool vertexAnim )
{
if ( this.HasSkeleton )
{
if ( !this.hardwareAnimation )
{
// all software skeletal binds same vertex data
// may be a 2-stage s/w transform including morph earlier though
return VertexDataBindChoice.SoftwareSkeletal;
}
else if ( vertexAnim )
{
// hardware morph animation
return VertexDataBindChoice.HardwareMorph;
}
else
{
// hardware skeletal, no morphing
return VertexDataBindChoice.Original;
}
}
else if ( vertexAnim )
{
// morph only, no skeletal
if ( this.hardwareAnimation )
{
return VertexDataBindChoice.HardwareMorph;
}
else
{
return VertexDataBindChoice.SoftwareMorph;
}
}
else
{
return VertexDataBindChoice.Original;
}
}