Assembly: Insert link : Insert to origin if it is within view.

This commit is contained in:
PaddleStroke
2024-07-04 14:17:51 +02:00
committed by Chris Hennes
parent f8deaaaf86
commit 09503f83da

View File

@@ -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