Skip to content

Commit

Permalink
do not enable parallel or perpendicular if no previous point
Browse files Browse the repository at this point in the history
  • Loading branch information
3nids committed Feb 12, 2014
1 parent e75b50f commit 2f0a068
Show file tree
Hide file tree
Showing 2 changed files with 21 additions and 16 deletions.
30 changes: 16 additions & 14 deletions CadEventFilter.py
Original file line number Diff line number Diff line change
Expand Up @@ -342,20 +342,22 @@ def _alignToSegment(self):
previousPoint = self.cadPointList.previousPoint()
penulPoint = self.cadPointList.penultimatePoint()

if self.snapSegment is not None:

angle = math.atan2( self.snapSegment[1].y()-self.snapSegment[2].y(), self.snapSegment[1].x()-self.snapSegment[2].x() )
if self.inputwidget.ra:
lastangle = math.atan2(previousPoint.y()-penulPoint.y(),previousPoint.x()-penulPoint.x())
angle -= lastangle

if self.inputwidget.par:
pass
elif self.inputwidget.per:
angle += math.pi / 2.0

self.inputwidget.la = True
self.inputwidget.a = math.degrees(angle)
# do not authorize per or par if there is no previous point
if previousPoint is None or self.snapSegment is None:
return

angle = math.atan2( self.snapSegment[1].y()-self.snapSegment[2].y(), self.snapSegment[1].x()-self.snapSegment[2].x() )
if self.inputwidget.ra:
lastangle = math.atan2(previousPoint.y()-penulPoint.y(),previousPoint.x()-penulPoint.x())
angle -= lastangle

if self.inputwidget.par:
pass
elif self.inputwidget.per:
angle += math.pi / 2.0

self.inputwidget.la = True
self.inputwidget.a = math.degrees(angle)


#####################################
Expand Down
7 changes: 5 additions & 2 deletions CadInputWidget.py
Original file line number Diff line number Diff line change
Expand Up @@ -193,6 +193,9 @@ def maptoolChanged(self):


def enableConstraints(self, nPoints):
# parallel and perpendicular availabe with 1 previous point
self.widPer.setEnabled( nPoints>1 )
self.widPar.setEnabled( nPoints>1 )
# absolute angle only possible with 1 previous point
self.widA.setEnabled( nPoints>1 )
self.lockA.setEnabled( nPoints>1 )
Expand Down Expand Up @@ -291,12 +294,12 @@ def c(self): return self.widC.isChecked()
def c(self, value): self.widC.setChecked(value)

@property
def per(self): return self.widPer.isChecked()
def per(self): return self.widPer.isEnabled() and self.widPer.isChecked()
@per.setter
def per(self, value): self.widPer.setChecked(value)

@property
def par(self): return self.widPar.isChecked()
def par(self): return self.widPar.isEnabled() and self.widPar.isChecked()
@par.setter
def par(self, value): self.widPar.setChecked(value)

Expand Down

0 comments on commit 2f0a068

Please sign in to comment.