Пример #1
0
 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()
Пример #2
0
 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)