protected void ReadPoseKeyframe( BinaryReader reader, VertexAnimationTrack track ) { var time = ReadFloat( reader ); var vkf = track.CreateVertexPoseKeyFrame( time ); if ( !IsEOF( reader ) ) { var chunkID = ReadChunk( reader ); while ( !IsEOF( reader ) && chunkID == MeshChunkID.AnimationPoseRef ) { switch ( chunkID ) { case MeshChunkID.AnimationPoseRef: { var poseIndex = ReadUShort( reader ); var influence = ReadFloat( reader ); vkf.AddPoseReference( poseIndex, influence ); break; } } if ( !IsEOF( reader ) ) { chunkID = ReadChunk( reader ); } } if ( !IsEOF( reader ) ) { // backpedal to the start of chunk Seek( reader, -ChunkOverheadSize ); } } }