Lines Matching refs:transform
5 group or layer that has it's own transform, that won't be taken into
10 group/layer, or remove the transform on the group/layer.
23 transform the appropriate handle according to the relevant fraction_offset
95 def invert_transform(transform):
96 transform = transform[:] # duplicate list to avoid modifying it
97 transform += [[0, 0, 1]]
98 inverse = matrix(transform).I.tolist()
102 def transform_point(transform, pt, inverse=False):
108 transform = invert_transform(transform)
110 x = transform[0][0]*pt[0] + transform[0][1]*pt[1] + transform[0][2]
111 y = transform[1][0]*pt[0] + transform[1][1]*pt[1] + transform[1][2]
114 def transform_dimensions(transform, width=None, height=None, inverse=False):
118 if inverse: transform = invert_transform(transform)
120 if width is not None: width *= transform[0][0]
121 if height is not None: height *= transform[1][1]
153 if stroke_width == 0: return 0 # if there's no stroke, no need to worry about the transform
155 transform = self.transform(elem, parent_transform=parent_transform)
156 if abs(abs(transform[0][0]) - abs(transform[1][1])) > (10**-Precision):
159 stroke_width = transform_dimensions(transform, width=stroke_width)
181 transform = self.transform(elem, parent_transform=parent_transform)
186 if abs(abs(transform[0][0]) - abs(transform[1][1])) > (10**-Precision):
190 stroke_width = transform_dimensions(transform, width=stroke_width)
192 stroke_width = transform_dimensions(transform, width=stroke_width, inverse=True)
195 def transform(self, elem, setval=None, parent_transform=None):
196 """ Gets this element's transform. Use setval=matrix to
197 set this element's transform.
200 transform = elem.attrib.get('transform', '').strip()
202 if transform:
203 transform = simpletransform.parseTransform(transform)
205 transform = [[1,0,0], [0,1,0], [0,0,1]]
207 transform = simpletransform.composeTransform(parent_transform, transform)
210 elem.attrib['transform'] = simpletransform.formatTransform(setval)
212 return transform
215 # Only snaps the x/y translation of the transform, nothing else.
218 # that the parent's transform has already been snapped.
219 transform = self.transform(elem)
220 if transform[0][1] or transform[1][0]: return # if we've got any skew/rotation, get outta here
222 transform[0][2] = round(transform[0][2])
223 transform[1][2] = round(transform[1][2])
225 self.transform(elem, transform)
227 def transform_path_node(self, transform, path, i):
234 path[i][1][0] = transform_point(transform, [path[i][1][0], 0])[0]
236 path[i][1][0] = transform_point(transform, [0, path[i][1][0]])[1]
242 x, y = transform_point(transform, (x, y))
289 transform = self.transform(elem, parent_transform=parent_transform)
295 x, y = transform_point(transform, (x, y))
314 transform = self.transform(elem, parent_transform=parent_transform)
327 min_xy = transform_point(transform, min_xy, inverse=True)
328 max_xy = transform_point(transform, max_xy, inverse=True)
331 self.transform_path_node([[1, 0, -min_xy[0]], [0, 1, -min_xy[1]]], path, i) # center transform
335 self.transform_path_node([[1, 0, +min_xy[0]], [0, 1, +min_xy[1]]], path, i) # uncenter transform
346 transform = self.transform(elem, parent_transform=parent_transform)
350 fractional_offset = transform_dimensions(transform, fractional_offset[0], fractional_offset[1], inverse=True)
367 transform = self.transform(elem, parent_transform=parent_transform)
369 if transform[0][1] or transform[1][0]: # if we've got any skew/rotation, get outta here
392 xy = list(transform_point(transform, xy))
393 prev_xy = transform_point(transform, prev_xy)
394 next_xy = transform_point(transform, next_xy)
420 fractional_offset = transform_dimensions(transform, fractional_offset[0], fractional_offset[1], inverse=True)
431 transform = self.transform(elem, parent_transform=parent_transform)
433 if transform[0][1] or transform[1][0]: # if we've got any skew/rotation, get outta here
443 width, height = transform_dimensions(transform, width, height)
444 x, y = transform_point(transform, [x, y])
452 width, height = transform_dimensions(transform, width, height, inverse=True)
453 x, y = transform_point(transform, [x, y], inverse=True)
455 y += self.document_offset/transform[1][1]
469 transform = self.transform(elem, parent_transform=parent_transform)
472 self.pixel_snap(e, transform)