protected void WritePose( BinaryWriter writer, Pose pose )
{
long start_offset = writer.Seek( 0, SeekOrigin.Current );
WriteChunk( writer, MeshChunkID.Pose, 0 );
WriteString( writer, pose.Name );
WriteUShort( writer, pose.Target );
foreach ( KeyValuePair<int, Vector3> kvp in pose.VertexOffsetMap )
WritePoseVertex( writer, kvp.Key, kvp.Value );
long end_offset = writer.Seek( 0, SeekOrigin.Current );
writer.Seek( (int)start_offset, SeekOrigin.Begin );
WriteChunk( writer, MeshChunkID.Pose, (int)( end_offset - start_offset ) );
writer.Seek( (int)end_offset, SeekOrigin.Begin );
}