public override DoOrUndo DragMoveAction(Util.WinForms.HitTestResult htr_, VectorT amount)
{
var htr = htr_ as HitTestResult;
var rf = htr == null ? RF.Move : htr.ResizeFlags;
BoundingBox<float> old = null;
return @do =>
{
if (@do) {
old = _bbox.Clone();
Coord x1 = _bbox.X1 + ((rf & RF.Left) != 0 ? amount.X : 0);
Coord x2 = _bbox.X2 + ((rf & RF.Right) != 0 ? amount.X : 0);
Coord y1 = _bbox.Y1 + ((rf & RF.Top) != 0 ? amount.Y : 0);
Coord y2 = _bbox.Y2 + ((rf & RF.Bottom) != 0 ? amount.Y : 0);
_bbox = new BoundingBox<float>(x1, y1, x2, y2);
_bbox.Normalize();
} else
_bbox = old;
};
}