def read(self, stream: Stream, version): self.color = stream.read_object('color') self.unicode = stream.read_int('unicode') self.angle = stream.read_double('angle') self.size = stream.read_double('size') self.x_offset = stream.read_double('x offset') self.y_offset = stream.read_double('y offset') self.x_scale = stream.read_double('x scale') self.y_scale = stream.read_double('y scale') if version <= 2: self.std_font = stream.read_object('font') self.font = self.std_font.font_name self.symbol_level = SymbolLayer.read_symbol_level(stream) if version > 1: self.rotate_with_transform = stream.read_ushort('rotate with transform') != 0 if version >= 3: self.font = stream.read_string('font name') # lot of unknown stuff stream.read_double('unknown 3', expected=0) # or object? stream.read_double('unknown 4', expected=0) # or object? stream.read_int('font weight') stream.read_int('unknown', expected=0) stream.read_int('font size * 10000') / 10000 if version >= 4: # std OLE font .. maybe contains useful stuff like bold/etc, but these aren't exposed in ArcGIS anyway.. self.std_font = stream.read_object('font')
def read_tags(self, stream: Stream): """ Reads the layer tags """ self.tags = stream.read_string('layer tags')