Fix RigidBody overlap on the right + Add tests

This commit is contained in:
Siklos 2022-08-18 16:19:55 +02:00
parent 9f9ec8dc65
commit fa2d8e3e6e
4 changed files with 17994 additions and 445 deletions

View file

@ -301,7 +301,7 @@ function getAvailableWidthsTwoLines(
const isOverlappingOnTheRight = rectRight >= unallocatedSpaceRight;
if (isOverlappingOnTheRight) {
return getAvailableWidthsRight(unallocatedSpace.x, rectRight);
return getAvailableWidthsRight(unallocatedSpace.x, rectX);
}
return getAvailableWidthsMiddle(unallocatedSpace.x, unallocatedSpaceRight, rectX, rectRight);
@ -320,31 +320,31 @@ function getAvailableWidthsLeft(unallocatedSpaceRight: number, rectRight: number
];
}
function getAvailableWidthsRight(unalloctedSpaceX: number, rectRight: number): ISizePointer[] {
if (rectRight - unalloctedSpaceX <= 0) {
function getAvailableWidthsRight(unallocatedSpaceX: number, rectX: number): ISizePointer[] {
if (rectX - unallocatedSpaceX <= 0) {
return [];
}
return [
{
x: unalloctedSpaceX,
width: rectRight - unalloctedSpaceX
x: unallocatedSpaceX,
width: rectX - unallocatedSpaceX
}
];
}
function getAvailableWidthsMiddle(
unalloctedSpaceX: number,
unallocatedSpaceX: number,
unallocatedSpaceRight: number,
rectX: number,
rectRight: number
): ISizePointer[] {
const sizePointers: ISizePointer[] = [];
if (rectX - unalloctedSpaceX > 0) {
if (rectX - unallocatedSpaceX > 0) {
sizePointers.push({
x: unalloctedSpaceX,
width: rectX - unalloctedSpaceX
x: unallocatedSpaceX,
width: rectX - unallocatedSpaceX
});
}

File diff suppressed because it is too large Load diff

View file

@ -1,436 +0,0 @@
{
"history": [
{
"MainContainer": {
"children": [],
"properties": {
"id": "main",
"parentId": "null",
"x": 0,
"y": 0,
"width": 2000,
"height": 100,
"fillOpacity": 0,
"stroke": "black"
},
"userData": {}
},
"SelectedContainerId": "main",
"TypeCounters": {}
},
{
"LastAction": "Add container",
"MainContainer": {
"children": [
{
"children": [],
"properties": {
"id": "Container-0",
"parentId": "main",
"x": 0,
"y": 0,
"width": 75,
"height": 100,
"isRigidBody": false,
"fillOpacity": 0,
"stroke": "green"
},
"userData": {
"type": "Container"
}
}
],
"properties": {
"id": "main",
"parentId": "null",
"x": 0,
"y": 0,
"width": 2000,
"height": 100,
"fillOpacity": 0,
"stroke": "black"
},
"userData": {}
},
"SelectedContainerId": "main",
"TypeCounters": {
"Container": 0
}
},
{
"LastAction": "Select container Container-0",
"MainContainer": {
"children": [
{
"children": [],
"properties": {
"id": "Container-0",
"parentId": "main",
"x": 0,
"y": 0,
"width": 75,
"height": 100,
"isRigidBody": false,
"fillOpacity": 0,
"stroke": "green"
},
"userData": {
"type": "Container"
}
}
],
"properties": {
"id": "main",
"parentId": "null",
"x": 0,
"y": 0,
"width": 2000,
"height": 100,
"fillOpacity": 0,
"stroke": "black"
},
"userData": {}
},
"SelectedContainerId": "Container-0",
"TypeCounters": {
"Container": 0
}
},
{
"LastAction": "Change property of container Container-0",
"MainContainer": {
"children": [
{
"children": [],
"properties": {
"id": "Container-0",
"parentId": "main",
"x": 0,
"y": 0,
"width": "7",
"height": 100,
"isRigidBody": false,
"fillOpacity": 0,
"stroke": "green"
},
"userData": {
"type": "Container"
}
}
],
"properties": {
"id": "main",
"parentId": "null",
"x": 0,
"y": 0,
"width": 2000,
"height": 100,
"fillOpacity": 0,
"stroke": "black"
},
"userData": {}
},
"SelectedContainerId": "Container-0",
"TypeCounters": {
"Container": 0
}
},
{
"LastAction": "Change property of container Container-0",
"MainContainer": {
"children": [
{
"children": [],
"properties": {
"id": "Container-0",
"parentId": "main",
"x": 0,
"y": 0,
"width": "",
"height": 100,
"isRigidBody": false,
"fillOpacity": 0,
"stroke": "green"
},
"userData": {
"type": "Container"
}
}
],
"properties": {
"id": "main",
"parentId": "null",
"x": 0,
"y": 0,
"width": 2000,
"height": 100,
"fillOpacity": 0,
"stroke": "black"
},
"userData": {}
},
"SelectedContainerId": "Container-0",
"TypeCounters": {
"Container": 0
}
},
{
"LastAction": "Change property of container Container-0",
"MainContainer": {
"children": [
{
"children": [],
"properties": {
"id": "Container-0",
"parentId": "main",
"x": 0,
"y": 0,
"width": "2",
"height": 100,
"isRigidBody": false,
"fillOpacity": 0,
"stroke": "green"
},
"userData": {
"type": "Container"
}
}
],
"properties": {
"id": "main",
"parentId": "null",
"x": 0,
"y": 0,
"width": 2000,
"height": 100,
"fillOpacity": 0,
"stroke": "black"
},
"userData": {}
},
"SelectedContainerId": "Container-0",
"TypeCounters": {
"Container": 0
}
},
{
"LastAction": "Change property of container Container-0",
"MainContainer": {
"children": [
{
"children": [],
"properties": {
"id": "Container-0",
"parentId": "main",
"x": 0,
"y": 0,
"width": "20",
"height": 100,
"isRigidBody": false,
"fillOpacity": 0,
"stroke": "green"
},
"userData": {
"type": "Container"
}
}
],
"properties": {
"id": "main",
"parentId": "null",
"x": 0,
"y": 0,
"width": 2000,
"height": 100,
"fillOpacity": 0,
"stroke": "black"
},
"userData": {}
},
"SelectedContainerId": "Container-0",
"TypeCounters": {
"Container": 0
}
},
{
"LastAction": "Change property of container Container-0",
"MainContainer": {
"children": [
{
"children": [],
"properties": {
"id": "Container-0",
"parentId": "main",
"x": 0,
"y": 0,
"width": "200",
"height": 100,
"isRigidBody": false,
"fillOpacity": 0,
"stroke": "green"
},
"userData": {
"type": "Container"
}
}
],
"properties": {
"id": "main",
"parentId": "null",
"x": 0,
"y": 0,
"width": 2000,
"height": 100,
"fillOpacity": 0,
"stroke": "black"
},
"userData": {}
},
"SelectedContainerId": "Container-0",
"TypeCounters": {
"Container": 0
}
},
{
"LastAction": "Change property of container Container-0",
"MainContainer": {
"children": [
{
"children": [],
"properties": {
"id": "Container-0",
"parentId": "main",
"x": 0,
"y": 0,
"width": "2000",
"height": 100,
"isRigidBody": false,
"fillOpacity": 0,
"stroke": "green"
},
"userData": {
"type": "Container"
}
}
],
"properties": {
"id": "main",
"parentId": "null",
"x": 0,
"y": 0,
"width": 2000,
"height": 100,
"fillOpacity": 0,
"stroke": "black"
},
"userData": {}
},
"SelectedContainerId": "Container-0",
"TypeCounters": {
"Container": 0
}
},
{
"LastAction": "Change property of container Container-0",
"MainContainer": {
"children": [
{
"children": [],
"properties": {
"id": "Container-0",
"parentId": "main",
"x": 0,
"y": 0,
"width": "20000",
"height": 100,
"isRigidBody": false,
"fillOpacity": 0,
"stroke": "green"
},
"userData": {
"type": "Container"
}
}
],
"properties": {
"id": "main",
"parentId": "null",
"x": 0,
"y": 0,
"width": 2000,
"height": 100,
"fillOpacity": 0,
"stroke": "black"
},
"userData": {}
},
"SelectedContainerId": "Container-0",
"TypeCounters": {
"Container": 0
}
},
{
"LastAction": "Change property of container Container-0",
"MainContainer": {
"children": [
{
"children": [],
"properties": {
"id": "Container-0",
"parentId": "main",
"x": 0,
"y": 0,
"width": 2000,
"height": 100,
"isRigidBody": true,
"fillOpacity": 0,
"stroke": "green"
},
"userData": {
"type": "Container"
}
}
],
"properties": {
"id": "main",
"parentId": "null",
"x": 0,
"y": 0,
"width": 2000,
"height": 100,
"fillOpacity": 0,
"stroke": "black"
},
"userData": {}
},
"SelectedContainerId": "Container-0",
"TypeCounters": {
"Container": 0
}
}
],
"historyCurrentStep": 10,
"configuration": {
"AvailableContainers": [
{
"Type": "Container",
"Width": 75,
"Height": 100,
"Style": {
"fillOpacity": 0,
"stroke": "green"
}
}
],
"AvailableSymbols": [],
"MainContainer": {
"Type": "Container",
"Width": 2000,
"Height": 100,
"Style": {
"fillOpacity": 0,
"stroke": "black"
}
}
}
}

File diff suppressed because it is too large Load diff