protected void WriteAttachmentPoint( BinaryWriter writer, AttachmentPoint ap, Bone bone )
{
long start_offset = writer.Seek( 0, SeekOrigin.Current );
WriteChunk( writer, SkeletonChunkID.AttachmentPoint, 0 );
WriteString( writer, ap.Name );
WriteUShort( writer, bone.Handle );
WriteVector3( writer, ap.Position );
WriteQuat( writer, ap.Orientation );
long end_offset = writer.Seek( 0, SeekOrigin.Current );
writer.Seek( (int)start_offset, SeekOrigin.Begin );
WriteChunk( writer, SkeletonChunkID.AttachmentPoint, (int)( end_offset - start_offset ) );
writer.Seek( (int)end_offset, SeekOrigin.Begin );
}