def read_mdl(self, stream: TokenStream, name): frames = self.frames values = self.values in_tans = self.in_tans out_tans = self.out_tans self.name = name tracks_count = stream.read_int() stream.read() interpolation_type = 0 token = stream.read() if token == 'DontInterp': interpolation_type = 0 elif token == 'Linear': interpolation_type = 1 elif token == 'Hermite': interpolation_type = 2 elif token == 'Bezier': interpolation_type = 3 self.interpolation_type = interpolation_type if stream.peek() == 'GlobalSeqId': stream.read() self.global_sequence_id = stream.read_int() for i in range(tracks_count): frames.append(stream.read_int()) values.append(self.read_mdl_value(stream)) if interpolation_type > 1: stream.read() in_tans.append(self.read_mdl_value(stream)) stream.read() out_tans.append(self.read_mdl_value(stream)) stream.read()
def read_mdl(self, stream: TokenStream): for token in super().read_generic_block(stream): if token == 'EventTrack': count = stream.read_int() stream.read() if stream.peek() == 'GlobalSeqId': stream.read() self.global_sequence_id = stream.read_int() for i in range(count): self.tracks.append(stream.read_int()) stream.read() else: raise TokenStreamError('EventObject', token)