예제 #1
0
 def __init__(self):
     InputMode.__init__(self)
     self.left_and_right = LeftAndRight()
     self.temp_object_in_list = []
     self.prev_object = None
     self.container = None
     self.add_to_sketch = True
     self.button_down_point = None
     self.inhibit_coordinate_change = False
     self.getting_position = False
     self.draw_step = 0
     self.before_start_pos = cad.DigitizedPoint()
     self.start_pos = cad.DigitizedPoint()
     self.user_add_point = geom.Point3D(0,0,0)
예제 #2
0
    def OnMouse(self, event):
        left_and_right_pressed, event_used = self.left_and_right.LeftAndRightPressed(event)
        
        if left_and_right_pressed:
            if self.DragDoneWithXOR():
                wx.GetApp().EndDrawFront()
            self.ClearObjectsMade()
            wx.GetApp().SetInputMode(wx.GetApp().select_mode)

        if not event_used:
            if event.middleDown or event.GetWheelRotation() != 0:
                wx.GetApp().select_mode.OnMouse(event)
            else:
                if event.LeftDown():
                    if not self.inhibit_coordinate_change:
                        self.button_down_point = cad.Digitize(cad.IPoint(event.x, event.y))
                elif event.LeftUp():
                    if self.inhibit_coordinate_change:
                        self.inhibit_coordinate_change = False
                    else:
                        self.set_digitize_plane()
                        wx.GetApp().digitizing.digitized_point = cad.DigitizedPoint(self.button_down_point)
                        if self.getting_position:
                            self.inhibit_coordinate_change = True
                            self.getting_position = False
                        else:
                            self.AddPoint(wx.GetApp().digitizing.digitized_point)
                elif event.RightUp():
                    # do context menu same as select mode
                    wx.GetApp().select_mode.OnMouse(event)
                elif event.Moving():
                    if not self.inhibit_coordinate_change:
                        end = self.RecalculateAndRedraw(cad.IPoint(event.x, event.y))
                        self.UpdateUserPointProperties(end)                       
예제 #3
0
 def __init__(self):
     InputMode.__init__(self)
     self.point_or_window = PointOrWindow(False)
     self.digitized_point = cad.DigitizedPoint()
예제 #4
0
 def RollBack(self):
     self.drawing.before_start_pos = cad.DigitizedPoint(self.old_before_pos)
     self.drawing.start_pos = cad.DigitizedPoint(self.prev_pos)
예제 #5
0
 def Run(self, redo):
     self.drawing.before_start_pos = cad.DigitizedPoint(self.prev_pos)
     self.drawing.start_pos = cad.DigitizedPoint(self.next_pos)
예제 #6
0
 def __init__(self, drawing, pos):
     cad.BaseUndoable.__init__(self)
     self.drawing = drawing
     self.old_before_pos = cad.DigitizedPoint(drawing.before_start_pos)
     self.prev_pos = cad.DigitizedPoint(drawing.start_pos)
     self.next_pos = cad.DigitizedPoint(pos)
예제 #7
0
 def AddPointToDrawing(self):
     # kill focus on control being typed into
     wx.GetApp().frame.input_mode_canvas.pg.ClearSelection()
     self.UpdatePointFromProperties()
     d = cad.DigitizedPoint(self.user_add_point, cad.DigitizeType.DIGITIZE_INPUT_TYPE)
     self.AddPoint(d)