Exemple #1
0
 def __init__(self, block):
     StructBlock.__init__(self, block)
     self.FillStyles = FILLSTYLEARRAY(self.block)
     self.LineStyles = LINESTYLEARRAY(self.block)
     self.NumFillBits = b2i(self.read_bits(4))
     self.NumLineBits = b2i(self.read_bits(4))
     self.ShapeRecords = SHAPERECORDS(self.block, self.NumFillBits, self.NumLineBits)
Exemple #2
0
 def __init__(self, block):
     StructBlock.__init__(self, block)
     self.TypeFlag = self.read_bits(1)
     self.StraightFlag = self.read_bits(1)
     self.NumBits = self.read_bits(4)
     self.ControlDeltaX = SB(self.read_bits(b2i(self.NumBits) + 2))
     self.ControlDeltaY = SB(self.read_bits(b2i(self.NumBits) + 2))
     self.AnchorDeltaX = SB(self.read_bits(b2i(self.NumBits) + 2))
     self.AnchorDeltaY = SB(self.read_bits(b2i(self.NumBits) + 2))
Exemple #3
0
 def parse_shape_record(self):
     shape_bits = self.get_bits(6)
     type_flag = shape_bits[0]
     if not type_flag:   # Non-edge record flag
         if b2i(shape_bits[1:]) == 0:
             return EndShapeRecord(self.block)
         else:
             return StyleChangeRecord(
                 self.block,
                 self.FillBits,
                 self.LineBits
                 )
     else:   # Edge Record Flag
         if not shape_bits[1]:
             return CurvedEdgeRecord(self.block)
         else:
             return StraightEdgeRecord(self.block)
Exemple #4
0
    def __init__(self, block):
        StructBlock.__init__(self, block)
        self.TypeFlag = self.read_bits(1)
        self.StraightFlag = self.read_bits(1)
        self.NumBits = self.read_bits(4)   # 2 less than the actual number
        self.GeneralLineFlag = self.read_bits(1)

        if b2i(self.GeneralLineFlag) == 0:
            self.VertLineFlag = self.read_bits(1)

        self.DeltaX = None
        self.DeltaY = None

        if b2i(self.GeneralLineFlag) == 1 or b2i(self.VertLineFlag) == 0:
            self.DeltaX = SB(self.read_bits(b2i(self.NumBits) + 2))
        if b2i(self.GeneralLineFlag) == 1 or b2i(self.VertLineFlag) == 1:
            self.DeltaY = SB(self.read_bits(b2i(self.NumBits) + 2))
Exemple #5
0
 def __init__(self, block, fill_bits, line_bits):
     StructBlock.__init__(self, block)
     self.TypeFlag = self.read_bits(1)
     self.StateNewStyles = self.read_bits(1)   # New styles flag (only DefineShape2, 3) 
     self.StateLineStyle = self.read_bits(1)
     self.StateFillStyle1 = self.read_bits(1)
     self.StateFillStyle0 = self.read_bits(1)
     self.StateMoveTo = self.read_bits(1)
     if b2i(self.StateMoveTo):
         self.MoveBits = self.read_bits(5)
         self.MoveDeltaX = SB(self.read_bits(b2i(self.MoveBits)))
         self.MoveDeltaY = SB(self.read_bits(b2i(self.MoveBits)))
     if b2i(self.StateFillStyle0):
         self.FillStyle0 = self.read_bits(fill_bits)
     if b2i(self.StateFillStyle1):
         self.FillStyle1 = self.read_bits(fill_bits)
     if b2i(self.StateLineStyle):
         self.LineStyle = self.read_bits(line_bits)
     if b2i(self.StateNewStyles) and False:
         self.FillStyes = FILLSTYLEARRAY(self.block)
         self.LineStyles = LINESTYLEARRAY(self.block)
         self.NumFillBits = self.read_bits(4)
         self.NumLineBits = self.read_bits(4)
Exemple #6
0
 def height(self):
     return b2i(self.rect.y_max) / 20
Exemple #7
0
 def width(self):
     return b2i(self.rect.x_max) / 20
Exemple #8
0
 def size(self):
     return (b2i(self.rect.x_max) / 20, b2i(self.rect.y_max) / 20)