transform method
Creates the Matrix4 which will be used to transform the Dough.child widget.
Implementation
@override
Matrix4 transform(DoughTransformerContext context) {
final adhesiveDelta = context.delta * context.t / context.recipe.adhesion;
Matrix4 translate;
if (applyDelta) {
if (snapToTargetOnStop) {
final effDelta =
-context.delta * (context.controller.isActive ? 1 : context.t);
translate = Matrix4.translationValues(
effDelta.x + adhesiveDelta.x,
effDelta.y + adhesiveDelta.y,
0,
);
} else {
translate = Matrix4.translationValues(
-context.delta.x + adhesiveDelta.x,
-context.delta.y + adhesiveDelta.y,
0,
);
}
} else {
translate = Matrix4.translationValues(
adhesiveDelta.x,
adhesiveDelta.y,
0,
);
}
return translate
.multiplied(DoughTransformations.squishDeformation(context));
}