protected void WriteAnimation( BinaryWriter writer, Animation anim )
{
long start_offset = writer.Seek( 0, SeekOrigin.Current );
WriteChunk( writer, SkeletonChunkID.Animation, 0 );
WriteString( writer, anim.Name );
WriteFloat( writer, anim.Length );
foreach ( NodeAnimationTrack track in anim.NodeTracks.Values )
WriteAnimationTrack( writer, track );
long end_offset = writer.Seek( 0, SeekOrigin.Current );
writer.Seek( (int)start_offset, SeekOrigin.Begin );
WriteChunk( writer, SkeletonChunkID.Animation, (int)( end_offset - start_offset ) );
writer.Seek( (int)end_offset, SeekOrigin.Begin );
}