- Added construction lines switching
- Moved callbacks into sketchwidget from main. - Changed reset on right click
This commit is contained in:
@@ -24,15 +24,48 @@ class SketchWidget(QWidget):
|
||||
self.hovered_point = None
|
||||
self.selected_line = None
|
||||
|
||||
### Display Settings
|
||||
self.snapping_range = 20 # Range in pixels for snapping
|
||||
self.zoom = 1
|
||||
|
||||
# Mouse Input
|
||||
self.setMouseTracking(True)
|
||||
self.mouse_mode = False
|
||||
self.is_construct = False
|
||||
|
||||
# Solver
|
||||
self.solv = SolverSystem()
|
||||
|
||||
self.sketch = Sketch2d()
|
||||
|
||||
def act_line_mode(self, checked):
|
||||
if checked:
|
||||
self.mouse_mode = 'line'
|
||||
print(self.mouse_mode)
|
||||
else:
|
||||
self.mouse_mode = None
|
||||
|
||||
def act_constrain_pt_pt_mode(self):
|
||||
self.mouse_mode = 'pt_pt'
|
||||
|
||||
def act_constrain_pt_line_mode(self):
|
||||
self.mouse_mode = 'pt_line'
|
||||
|
||||
def act_constrain_horiz_line_mode(self):
|
||||
self.mouse_mode = 'horiz'
|
||||
|
||||
def act_constrain_vert_line_mode(self):
|
||||
self.mouse_mode = 'vert'
|
||||
|
||||
def act_constrain_distance_mode(self):
|
||||
self.mouse_mode = 'distance'
|
||||
|
||||
def act_constrain_mid_point_mode(self):
|
||||
self.sketchWidget.mouse_mode = 'pb_con_mid'
|
||||
|
||||
def on_construct_change(self, checked):
|
||||
self.is_construct = checked
|
||||
|
||||
def create_sketch(self, sketch_in ):
|
||||
self.sketch = Sketch2d()
|
||||
self.sketch.id = sketch_in.id
|
||||
@@ -46,6 +79,7 @@ class SketchWidget(QWidget):
|
||||
return self.sketch
|
||||
|
||||
def reset_buffers(self):
|
||||
self.mouse_mode = None
|
||||
self.line_draw_buffer = [None, None]
|
||||
self.drag_buffer = [None, None]
|
||||
self.main_buffer = [None, None]
|
||||
@@ -315,6 +349,7 @@ class SketchWidget(QWidget):
|
||||
self.drag_buffer[0] = self.get_handle_from_ui_point(self.hovered_point)
|
||||
|
||||
if event.button() == Qt.RightButton and self.mouse_mode:
|
||||
self.constrain_done.emit()
|
||||
self.reset_buffers()
|
||||
|
||||
if event.button() == Qt.LeftButton and self.mouse_mode == "line":
|
||||
@@ -329,6 +364,10 @@ class SketchWidget(QWidget):
|
||||
v = clicked_pos.y()
|
||||
|
||||
point = Point2D(u,v)
|
||||
print("construct", self.is_construct )
|
||||
# Construction mode
|
||||
point.is_helper = self.is_construct
|
||||
|
||||
self.sketch.add_point(point)
|
||||
|
||||
self.line_draw_buffer[0] = point
|
||||
@@ -337,8 +376,12 @@ class SketchWidget(QWidget):
|
||||
|
||||
u = clicked_pos.x()
|
||||
v = clicked_pos.y()
|
||||
|
||||
print("construct", self.is_construct)
|
||||
point = Point2D(u, v)
|
||||
|
||||
# Construction mode
|
||||
point.is_helper = self.is_construct
|
||||
|
||||
self.sketch.add_point(point)
|
||||
|
||||
self.line_draw_buffer[1] = point
|
||||
@@ -348,6 +391,10 @@ class SketchWidget(QWidget):
|
||||
if self.line_draw_buffer[0] and self.line_draw_buffer[1]:
|
||||
|
||||
line = Line2D(self.line_draw_buffer[0], self.line_draw_buffer[1])
|
||||
|
||||
# Construction mode
|
||||
line.is_helper = self.is_construct
|
||||
|
||||
self.sketch.add_line(line)
|
||||
|
||||
# Reset the buffer for the next line segment
|
||||
|
||||
Reference in New Issue
Block a user