def parse_ellipse(obj): data = obj.loda.chunk offset = 108 for item in obj.loda.data_list: if item[0] == const.DATA_COORDS: offset = item[1] + 8 #Ellipse size w = parse_size_value(data[offset:offset + 4]) h = parse_size_value(data[offset + 4:offset + 8]) obj.ellipse_size = [w, h] obj.loda.cache_fields.append((offset, 8, 'ellipse size')) #Ellipse angles start = math.radians(long2py_float(data[offset + 8:offset + 12]) / 1000000.0) end = math.radians(long2py_float(data[offset + 12:offset + 16]) / 1000000.0) rot = math.radians(long2py_float(data[offset + 16:offset + 20]) / 1000000.0) obj.ellipse_angles = [start, end, rot] obj.loda.cache_fields.append((offset + 8, 12, 'ellipse angles'))
def parse_size_value(data): """ Convert 4-bytes string to value in points. """ return long2py_float(data) * cdrunit_to_pt
def parse_size_value(data): """ Convert 4-bytes string to value in points. """ return long2py_float(data) * cdrunit_to_pt