protected void WriteMorphKeyframe( BinaryWriter writer, VertexMorphKeyFrame keyFrame )
{
long start_offset = writer.Seek( 0, SeekOrigin.Current );
WriteChunk( writer, MeshChunkID.AnimationMorphKeyframe, 0 );
WriteFloat( writer, keyFrame.Time );
HardwareVertexBuffer vBuffer = keyFrame.VertexBuffer;
IntPtr vBufferPtr = vBuffer.Lock( BufferLocking.ReadOnly );
WriteFloats( writer, vBuffer.VertexCount * 3, vBufferPtr );
vBuffer.Unlock();
long end_offset = writer.Seek( 0, SeekOrigin.Current );
writer.Seek( (int)start_offset, SeekOrigin.Begin );
WriteChunk( writer, MeshChunkID.AnimationMorphKeyframe, (int)( end_offset - start_offset ) );
writer.Seek( (int)end_offset, SeekOrigin.Begin );
}