Add support for 'brushes', 'modelInstances', and 'entities' in transform session comparison
This commit is contained in:
@@ -1032,6 +1032,26 @@ export function doesTransformSessionChangeTarget(
|
|||||||
session.target.initialGeometry
|
session.target.initialGeometry
|
||||||
))
|
))
|
||||||
);
|
);
|
||||||
|
case "brushes":
|
||||||
|
return (
|
||||||
|
session.preview.kind === "brushes" &&
|
||||||
|
(!areVec3Equal(session.preview.pivot, session.target.initialPivot) ||
|
||||||
|
session.preview.items.length !== session.target.items.length ||
|
||||||
|
session.preview.items.some((item, index) => {
|
||||||
|
const targetItem = session.target.items[index];
|
||||||
|
|
||||||
|
return (
|
||||||
|
item.brushId !== targetItem.brushId ||
|
||||||
|
!areVec3Equal(item.center, targetItem.initialCenter) ||
|
||||||
|
!areVec3Equal(
|
||||||
|
item.rotationDegrees,
|
||||||
|
targetItem.initialRotationDegrees
|
||||||
|
) ||
|
||||||
|
!areVec3Equal(item.size, targetItem.initialSize) ||
|
||||||
|
!areBrushGeometriesEqual(item.geometry, targetItem.initialGeometry)
|
||||||
|
);
|
||||||
|
}))
|
||||||
|
);
|
||||||
case "modelInstance":
|
case "modelInstance":
|
||||||
return (
|
return (
|
||||||
session.preview.kind === "modelInstance" &&
|
session.preview.kind === "modelInstance" &&
|
||||||
@@ -1045,6 +1065,25 @@ export function doesTransformSessionChangeTarget(
|
|||||||
) ||
|
) ||
|
||||||
!areVec3Equal(session.preview.scale, session.target.initialScale))
|
!areVec3Equal(session.preview.scale, session.target.initialScale))
|
||||||
);
|
);
|
||||||
|
case "modelInstances":
|
||||||
|
return (
|
||||||
|
session.preview.kind === "modelInstances" &&
|
||||||
|
(!areVec3Equal(session.preview.pivot, session.target.initialPivot) ||
|
||||||
|
session.preview.items.length !== session.target.items.length ||
|
||||||
|
session.preview.items.some((item, index) => {
|
||||||
|
const targetItem = session.target.items[index];
|
||||||
|
|
||||||
|
return (
|
||||||
|
item.modelInstanceId !== targetItem.modelInstanceId ||
|
||||||
|
!areVec3Equal(item.position, targetItem.initialPosition) ||
|
||||||
|
!areVec3Equal(
|
||||||
|
item.rotationDegrees,
|
||||||
|
targetItem.initialRotationDegrees
|
||||||
|
) ||
|
||||||
|
!areVec3Equal(item.scale, targetItem.initialScale)
|
||||||
|
);
|
||||||
|
}))
|
||||||
|
);
|
||||||
case "pathPoint":
|
case "pathPoint":
|
||||||
return (
|
return (
|
||||||
session.preview.kind === "pathPoint" &&
|
session.preview.kind === "pathPoint" &&
|
||||||
@@ -1065,6 +1104,24 @@ export function doesTransformSessionChangeTarget(
|
|||||||
session.target.initialRotation
|
session.target.initialRotation
|
||||||
))
|
))
|
||||||
);
|
);
|
||||||
|
case "entities":
|
||||||
|
return (
|
||||||
|
session.preview.kind === "entities" &&
|
||||||
|
(!areVec3Equal(session.preview.pivot, session.target.initialPivot) ||
|
||||||
|
session.preview.items.length !== session.target.items.length ||
|
||||||
|
session.preview.items.some((item, index) => {
|
||||||
|
const targetItem = session.target.items[index];
|
||||||
|
|
||||||
|
return (
|
||||||
|
item.entityId !== targetItem.entityId ||
|
||||||
|
!areVec3Equal(item.position, targetItem.initialPosition) ||
|
||||||
|
!areEntityTransformRotationsEqual(
|
||||||
|
item.rotation,
|
||||||
|
targetItem.initialRotation
|
||||||
|
)
|
||||||
|
);
|
||||||
|
}))
|
||||||
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user