Assembly: Insert link : Insert to origin if it is within view.
This commit is contained in:
committed by
Chris Hennes
parent
f8deaaaf86
commit
09503f83da
@@ -344,7 +344,9 @@ class TaskAssemblyInsertLink(QtCore.QObject):
|
||||
|
||||
translation = App.Vector()
|
||||
resetThreshold = (screenCorner - screenCenter).Length * 0.1
|
||||
if (self.prevScreenCenter - screenCenter).Length > resetThreshold:
|
||||
if len(self.insertionStack) == 1:
|
||||
translation = App.Vector() # No translation for first object.
|
||||
elif (self.prevScreenCenter - screenCenter).Length > resetThreshold:
|
||||
self.totalTranslation = App.Vector()
|
||||
self.prevScreenCenter = screenCenter
|
||||
else:
|
||||
@@ -353,8 +355,14 @@ class TaskAssemblyInsertLink(QtCore.QObject):
|
||||
insertionDict["translation"] = translation
|
||||
self.totalTranslation += translation
|
||||
|
||||
bboxCenter = addedObject.ViewObject.getBoundingBox().Center
|
||||
addedObject.Placement.Base = screenCenter - bboxCenter + self.totalTranslation
|
||||
originX, originY = view.getPointOnViewport(App.Vector() + translation)
|
||||
if originX > 0 and originX < x and originY > 0 and originY < y:
|
||||
# If the origin is within view then we insert at the origin.
|
||||
addedObject.Placement.Base = self.totalTranslation
|
||||
else:
|
||||
#
|
||||
bboxCenter = addedObject.ViewObject.getBoundingBox().Center
|
||||
addedObject.Placement.Base = screenCenter - bboxCenter + self.totalTranslation
|
||||
|
||||
self.prevScreenCenter = screenCenter
|
||||
|
||||
|
||||
Reference in New Issue
Block a user