protected void WriteAnimationTrack( BinaryWriter writer, NodeAnimationTrack track ) { long start_offset = writer.Seek( 0, SeekOrigin.Current ); WriteChunk( writer, SkeletonChunkID.AnimationTrack, 0 ); WriteUShort( writer, (ushort)track.Handle ); for ( ushort i = 0; i < track.KeyFrames.Count; i++ ) { TransformKeyFrame keyFrame = track.GetNodeKeyFrame( i ); WriteKeyFrame( writer, keyFrame ); } long end_offset = writer.Seek( 0, SeekOrigin.Current ); writer.Seek( (int)start_offset, SeekOrigin.Begin ); WriteChunk( writer, SkeletonChunkID.AnimationTrack, (int)( end_offset - start_offset ) ); writer.Seek( (int)end_offset, SeekOrigin.Begin ); }