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
|
||||
))
|
||||
);
|
||||
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":
|
||||
return (
|
||||
session.preview.kind === "modelInstance" &&
|
||||
@@ -1045,6 +1065,25 @@ export function doesTransformSessionChangeTarget(
|
||||
) ||
|
||||
!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":
|
||||
return (
|
||||
session.preview.kind === "pathPoint" &&
|
||||
@@ -1065,6 +1104,24 @@ export function doesTransformSessionChangeTarget(
|
||||
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