change drawingConstraints to a hash for easier updating
This commit is contained in:
parent
ada889ab5e
commit
b5080f14dd
@ -17,7 +17,7 @@ class SketchWidget:
|
|||||||
self.size = (1, 1)
|
self.size = (1, 1)
|
||||||
self.panning = False
|
self.panning = False
|
||||||
self.drawingShape = None
|
self.drawingShape = None
|
||||||
self.drawingConstraints = []
|
self.drawingConstraints = {}
|
||||||
self.mode = ''
|
self.mode = ''
|
||||||
self.snap_points = {} # keyed by (shape, ptNum)
|
self.snap_points = {} # keyed by (shape, ptNum)
|
||||||
self.cursors = {
|
self.cursors = {
|
||||||
@ -132,7 +132,7 @@ class SketchWidget:
|
|||||||
self.drawShape(self.drawingShape)
|
self.drawShape(self.drawingShape)
|
||||||
glColor(*self.constraint_color)
|
glColor(*self.constraint_color)
|
||||||
for c in self.drawingConstraints:
|
for c in self.drawingConstraints:
|
||||||
self.drawConstraint(c)
|
self.drawConstraint(self.drawingConstraints[c])
|
||||||
|
|
||||||
if self.hover_snap_point is not None:
|
if self.hover_snap_point is not None:
|
||||||
glColor(*self.hover_color)
|
glColor(*self.hover_color)
|
||||||
@ -400,19 +400,22 @@ class SketchWidget:
|
|||||||
if ((snaps_to(-180) or snaps_to(180) or snaps_to(0))
|
if ((snaps_to(-180) or snaps_to(180) or snaps_to(0))
|
||||||
and within(start[1], this_pt[1], hv_snap_dist)):
|
and within(start[1], this_pt[1], hv_snap_dist)):
|
||||||
this_pt = (this_pt[0], start[1])
|
this_pt = (this_pt[0], start[1])
|
||||||
if not (len(self.drawingConstraints) > 0
|
if not ('hv' in self.drawingConstraints
|
||||||
and isinstance(self.drawingConstraints[0], Horizontal)):
|
and isinstance(self.drawingConstraints['hv'],
|
||||||
|
Horizontal)):
|
||||||
c = Horizontal(self.drawingShape, 0, self.drawingShape, 1)
|
c = Horizontal(self.drawingShape, 0, self.drawingShape, 1)
|
||||||
self.drawingConstraints = [c]
|
self.drawingConstraints['hv'] = c
|
||||||
elif ((snaps_to(-90) or snaps_to(90))
|
elif ((snaps_to(-90) or snaps_to(90))
|
||||||
and within(start[0], this_pt[0], hv_snap_dist)):
|
and within(start[0], this_pt[0], hv_snap_dist)):
|
||||||
this_pt = (start[0], this_pt[1])
|
this_pt = (start[0], this_pt[1])
|
||||||
if not (len(self.drawingConstraints) > 0
|
if not ('hv' in self.drawingConstraints
|
||||||
and isinstance(self.drawingConstraints[0], Vertical)):
|
and isinstance(self.drawingConstraints['hv'],
|
||||||
|
Vertical)):
|
||||||
c = Vertical(self.drawingShape, 0, self.drawingShape, 1)
|
c = Vertical(self.drawingShape, 0, self.drawingShape, 1)
|
||||||
self.drawingConstraints = [c]
|
self.drawingConstraints['hv'] = c
|
||||||
else:
|
else:
|
||||||
self.drawingConstraints = []
|
if 'hv' in self.drawingConstraints:
|
||||||
|
del self.drawingConstraints['hv']
|
||||||
self.drawingShape.setPt(1, this_pt)
|
self.drawingShape.setPt(1, this_pt)
|
||||||
self.queue_redraw()
|
self.queue_redraw()
|
||||||
sp = self.get_closest_snap_point(x, y)
|
sp = self.get_closest_snap_point(x, y)
|
||||||
@ -443,15 +446,15 @@ class SketchWidget:
|
|||||||
|
|
||||||
def cancel_drawing_shape(self):
|
def cancel_drawing_shape(self):
|
||||||
self.drawingShape = None
|
self.drawingShape = None
|
||||||
self.drawingConstraints = []
|
self.drawingConstraints = {}
|
||||||
self.hover_snap_point = None
|
self.hover_snap_point = None
|
||||||
|
|
||||||
def merge_in_drawing_shape(self):
|
def merge_in_drawing_shape(self):
|
||||||
self.sketch.shapes.append(self.drawingShape)
|
self.sketch.shapes.append(self.drawingShape)
|
||||||
for c in self.drawingConstraints:
|
for c in self.drawingConstraints:
|
||||||
self.sketch.constraints.append(c)
|
self.sketch.constraints.append(self.drawingConstraints[c])
|
||||||
self.drawingShape = None
|
self.drawingShape = None
|
||||||
self.drawingConstraints = []
|
self.drawingConstraints = {}
|
||||||
|
|
||||||
def dist_bw(self, pt1, pt2):
|
def dist_bw(self, pt1, pt2):
|
||||||
x = pt2[0] - pt1[0]
|
x = pt2[0] - pt1[0]
|
||||||
|
Loading…
x
Reference in New Issue
Block a user