public MeTLImage Clone() { var img = new MeTLImage(); img.Height = Height; img.Width = Width; img.Source = Source; InkCanvas.SetLeft(img, InkCanvas.GetLeft(this)); InkCanvas.SetTop(img, InkCanvas.GetTop(this)); Canvas.SetZIndex(img, Canvas.GetZIndex(this)); img.Stretch = Stretch.Fill; img.tag(this.tag()); img.offsetX = offsetX; img.offsetY = offsetY; return img; }
private bool dirtiesThis(TargettedMoveDelta moveDelta, MeTLImage elem) { return moveDelta.imageIds.Any(i => elem.tag().id == i && elem.tag().privacy == moveDelta.privacy && elem.tag().timestamp < moveDelta.timestamp); }
public MeTLImage adjustImage(MeTLImage image, Func<MeTLImage, MeTLImage> adjustment) { reassociateImageToCanvas(image); var oldCanvasOffsetX = logicalX; var oldCanvasOffsetY = logicalY; double translateX = 0.0; double translateY = 0.0; var localX = InkCanvas.GetLeft(image); var localY = InkCanvas.GetTop(image); if (checkIfLogicalBoundsUpdates(localX, localY)) { var newBounds = generateLogicalBounds(localX, localY); logicalX = newBounds.X; logicalY = newBounds.Y; translateX = ReturnPositiveValue(ReturnPositiveValue(logicalX) - ReturnPositiveValue(oldCanvasOffsetX)); translateY = ReturnPositiveValue(ReturnPositiveValue(logicalY) - ReturnPositiveValue(oldCanvasOffsetY)); updateCanvasPositioning(strokeFilter.Strokes, textFilter.TextBoxes, imageFilter.Images.Where(i => ((MeTLImage)(i)).tag().id != image.tag().id).Select(i => (UIElement)i), translateX, translateY); reassociateImageToCanvas(image); } return doAdjustImage(image, adjustment); }