Bug Fixed when importing workspace

This commit is contained in:
Luis Fernando Molina committed 2019-11-29 17:12:05 +01:00
1 parent e1fea0cc3f
commit c2d0876806
3 files changed
+53 -44

No files matched your search

+48 -44
View File
@@ -185,21 +185,23 @@ function newFloatingObject () {
}
function frozenPhysics () {
if (thisObject.frozenManually === false) {
let parent = thisObject.payload.chainParent
if (parent !== undefined && parent.payload !== undefined) {
thisObject.isFrozen = parent.payload.floatingObject.isFrozen
}
if (thisObject.frozenManually !== false) { return }
if (thisObject.payload === undefined) { return }
let parent = thisObject.payload.chainParent
if (parent !== undefined && parent.payload !== undefined) {
thisObject.isFrozen = parent.payload.floatingObject.isFrozen
}
}
function collapsePhysics () {
let parent = thisObject.payload.chainParent
if (parent !== undefined) {
thisObject.isParentCollapsed = parent.payload.floatingObject.isCollapsed
if (thisObject.collapsedManually === false) {
thisObject.isCollapsed = parent.payload.floatingObject.isCollapsed
}
if (parent === undefined) { return }
if (parent.payload === undefined) { return }
if (parent.payload.floatingObject === undefined) { return }
thisObject.isParentCollapsed = parent.payload.floatingObject.isCollapsed
if (thisObject.collapsedManually === false) {
thisObject.isCollapsed = parent.payload.floatingObject.isCollapsed
}
}
@@ -207,48 +209,50 @@ function newFloatingObject () {
/* Tension Effect */
if (thisObject.isTensed === true) {
let parent = thisObject.payload.chainParent
if (parent !== undefined) {
let distanceToChainParent = Math.sqrt(Math.pow(parent.payload.position.x - thisObject.container.frame.position.x, 2) + Math.pow(parent.payload.position.y - thisObject.container.frame.position.y, 2)) // ... we calculate the distance ...
let parentChildren = canvas.designerSpace.workspace.nodeChildren.childrenCount(parent, thisObject.payload.node)
let axisCount = parentChildren.childrenCount
let axisIndex = parentChildren.childIndex
let baseAngle = 0
if (parent === undefined) { return }
if (parent.payload === undefined) { return }
if (parent.payload.position === undefined) { return }
if (axisIndex === undefined) {
axisCount = 1
axisIndex = axisCount
}
let distanceToChainParent = Math.sqrt(Math.pow(parent.payload.position.x - thisObject.container.frame.position.x, 2) + Math.pow(parent.payload.position.y - thisObject.container.frame.position.y, 2)) // ... we calculate the distance ...
let parentChildren = canvas.designerSpace.workspace.nodeChildren.childrenCount(parent, thisObject.payload.node)
let axisCount = parentChildren.childrenCount
let axisIndex = parentChildren.childIndex
let baseAngle = 0
if (parent.payload.chainParent !== undefined && parent.payload.angle !== undefined) {
if (axisIndex === undefined) {
axisCount = 1
axisIndex = axisCount
}
if (parent.payload.chainParent !== undefined && parent.payload.angle !== undefined) {
axisCount++
axisIndex++
baseAngle = parent.payload.angle + 180
lastParentAngle = parent.payload.angle
} else {
if (lastParentAngle !== undefined) {
axisCount++
axisIndex++
baseAngle = parent.payload.angle + 180
lastParentAngle = parent.payload.angle
} else {
if (lastParentAngle !== undefined) {
axisCount++
axisIndex++
baseAngle = lastParentAngle + 180
}
baseAngle = lastParentAngle + 180
}
}
let angleStep = 360 / axisCount
let angleStep = 360 / axisCount
thisObject.payload.angle = baseAngle + (axisIndex - 1) * angleStep
if (thisObject.payload.angle >= 360) {
thisObject.payload.angle = thisObject.payload.angle - 360
}
thisObject.payload.angle = baseAngle + (axisIndex - 1) * angleStep
if (thisObject.payload.angle >= 360) {
thisObject.payload.angle = thisObject.payload.angle - 360
}
newPosition = {
x: parent.payload.position.x + distanceToChainParent * Math.cos(toRadians(thisObject.payload.angle)),
y: parent.payload.position.y + distanceToChainParent * Math.sin(toRadians(thisObject.payload.angle))
}
if (isNaN(newPosition.x) === false) {
thisObject.container.frame.position.x = newPosition.x
}
if (isNaN(newPosition.y) === false) {
thisObject.container.frame.position.y = newPosition.y
}
newPosition = {
x: parent.payload.position.x + distanceToChainParent * Math.cos(toRadians(thisObject.payload.angle)),
y: parent.payload.position.y + distanceToChainParent * Math.sin(toRadians(thisObject.payload.angle))
}
if (isNaN(newPosition.x) === false) {
thisObject.container.frame.position.x = newPosition.x
}
if (isNaN(newPosition.y) === false) {
thisObject.container.frame.position.y = newPosition.y
}
}
}
+2
View File
@@ -1089,6 +1089,8 @@ function newUiObject () {
function drawReferenceLine () {
if (thisObject.payload.referenceParent === undefined) { return }
if (thisObject.payload.referenceParent.payload === undefined) { return }
if (thisObject.payload.referenceParent.payload.floatingObject === undefined) { return }
if (thisObject.payload.referenceParent.payload.floatingObject.isParentCollapsed === true) { return }
let targetPoint = {
+3
View File
@@ -77,6 +77,9 @@ function newFloatingSpace () {
}
function isItFar (payload, dontCheckParent) {
/* If for any reason the paylaod is undefined we return false */
if (payload === undefined) { return false }
/*
We need a warm up in order to allow all objects to stabilize into a consistant state.
After that we will start evaluating which ones are too far from the current user view.