Fix RigidBody overlap on the right + Add tests
This commit is contained in:
parent
9f9ec8dc65
commit
fa2d8e3e6e
4 changed files with 17994 additions and 445 deletions
|
@ -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
|
||||
});
|
||||
}
|
||||
|
||||
|
|
4837
src/tests/resources/montantMustImpose.json
Normal file
4837
src/tests/resources/montantMustImpose.json
Normal file
File diff suppressed because it is too large
Load diff
|
@ -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"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
13148
src/tests/resources/squeezeChassis2.json
Normal file
13148
src/tests/resources/squeezeChassis2.json
Normal file
File diff suppressed because it is too large
Load diff
Loading…
Add table
Add a link
Reference in a new issue