public void AddSelection(Overlay overlay) { if (overlay != null) { if(!selectionSet.Contains(overlay)) { selectionSet.Add(overlay); } } }
private void DrawSelectionHandles(RenderContext11 renderContext, Overlay overlay, Texture11 handleTexture) { var handles = MakeHandles(overlay); var angle = overlay.RotationAngle; var i = 0; var j = 0; foreach (var handle in handles) { points[i + 0].Position = overlay.MakePosition(centerX, centerY, handle.Left - centerX, handle.Top - centerY, angle).Vector4; points[i + 0].Tu = j * (1f / 9f); points[i + 0].Tv = 0; points[i + 0].Color = Color.White; points[i + 1].Position = overlay.MakePosition(centerX, centerY, handle.Right - centerX, handle.Top - centerY, angle).Vector4; points[i + 1].Tu = (j + 1) * (1f / 9f); points[i + 1].Tv = 0; points[i + 1].Color = Color.White; points[i + 2].Position = overlay.MakePosition(centerX, centerY, handle.Left - centerX, handle.Bottom - centerY, angle).Vector4; points[i + 2].Tu = j * (1f / 9f); points[i + 2].Tv = 1; points[i + 2].Color = Color.White; points[i + 3].Position = overlay.MakePosition(centerX, centerY, handle.Right - centerX, handle.Top - centerY, angle).Vector4; points[i + 3].Tu = (j + 1) * (1f / 9f); points[i + 3].Tv = 0; points[i + 3].Color = Color.White; points[i + 4].Position = overlay.MakePosition(centerX, centerY, handle.Right - centerX, handle.Bottom - centerY, angle).Vector4; points[i + 4].Tu = (j + 1) * (1f / 9f); points[i + 4].Tv = 1; points[i + 4].Color = Color.White; points[i + 5].Position = overlay.MakePosition(centerX, centerY, handle.Left - centerX, handle.Bottom - centerY, angle).Vector4; points[i + 5].Tu = j * (1f / 9f); points[i + 5].Tv = 1; points[i + 5].Color = Color.White; i += 6; j++; } if (MultiSelect) { Sprite2d.Draw(renderContext, points, points.Length - 6, handleTexture, PrimitiveTopology.TriangleList); } else { Sprite2d.Draw(renderContext, points, points.Length, handleTexture, PrimitiveTopology.TriangleList); } }
public void SetSelection(Overlay overlay) { selectionSet.Clear(); if (overlay != null) { selectionSet.Add(overlay); } }
public void SetSelection(Overlay[] overlays) { selectionSet.Clear(); selectionSet.AddRange(overlays); }
public bool IsOverlaySelected(Overlay overlay) { return selectionSet.Contains(overlay); }
public RectangleF[] MakeHandles(Overlay overlay) { var x = (int)(overlay.X-(overlay.Width/2))+.5f; var y = ((int)overlay.Y-(overlay.Height/2))+.5f; centerX = overlay.X; centerY = overlay.Y; var width = overlay.Width; var height = overlay.Height; var handleSize = 12*ratio; var handles = new RectangleF[9]; handles[0] = new RectangleF(x - handleSize, y - handleSize, handleSize, handleSize); handles[1] = new RectangleF((x + (width / 2)) - (handleSize/2), y - handleSize, handleSize, handleSize); handles[2] = new RectangleF(x + width, y - handleSize, handleSize, handleSize); handles[3] = new RectangleF(x + width, (y + (height / 2)) - (handleSize / 2), handleSize, handleSize); handles[4] = new RectangleF(x + width, (y + height), handleSize, handleSize); handles[5] = new RectangleF((x + (width / 2)) - (handleSize / 2), (y + height), handleSize, handleSize); handles[6] = new RectangleF(x - handleSize, (y + height), handleSize, handleSize); handles[7] = new RectangleF(x - handleSize, (y + (height / 2)) - (handleSize / 2), handleSize, handleSize); handles[8] = new RectangleF((x + (width / 2)) - (handleSize / 2), y - 30f*ratio, handleSize, handleSize); return handles; }
public void BringToFront(Overlay target) { overlays.Remove(target); overlays.Add(target); if (owner != null) { owner.TourDirty = true; } }
public Overlay GetPerviousOverlay(Overlay current) { if (current == null) { if (overlays.Count > 0) { return overlays[0]; } else { return null; } } int index = overlays.FindIndex(delegate(Overlay overlay) { return current == overlay; }); if (index > 0) { return overlays[index - 1]; } else { return overlays[overlays.Count - 1]; } }
public void AddOverlay(Overlay overlay) { overlay.Owner = this; overlays.Add(overlay); if (overlay.AnimationTarget != null && !AnimationTargets.Contains(overlay.AnimationTarget)) { AnimationTargets.Add(overlay.AnimationTarget); } if (owner != null) { owner.TourDirty = true; } }
public void BringForward(Overlay target) { int index = overlays.FindIndex(delegate(Overlay overlay) { return target == overlay; }); if (index < overlays.Count - 1) { overlays.Remove(target); overlays.Insert(index + 1, target); } if (owner != null) { owner.TourDirty = true; } }
public void SendToBack(Overlay target) { overlays.Remove(target); overlays.Insert(0, target); if (owner != null) { owner.TourDirty = true; } }
public void SendBackward(Overlay target) { int index = overlays.FindIndex(delegate(Overlay overlay) { return target == overlay; }); if (index > 0) { overlays.Remove(target); overlays.Insert(index - 1, target); } if (owner != null) { owner.TourDirty = true; } }
public void RemoveOverlay(Overlay overlay) { //todo clean up temp disk overlays.Remove(overlay); if (AnimationTargets != null && overlay.AnimationTarget != null) { if (AnimationTargets.Contains(overlay.AnimationTarget)) { AnimationTargets.Remove(overlay.AnimationTarget); TimeLine.RefreshUi(); } } if (owner != null) { owner.TourDirty = true; } }
public void AddSelection(Overlay[] overlays) { selectionSet.AddRange(overlays); }
public AnimationTarget Clone(Overlay newTarget) { StringBuilder sb = new StringBuilder(); using (System.IO.StringWriter textWriter = new System.IO.StringWriter(sb)) { using (System.Xml.XmlTextWriter writer = new System.Xml.XmlTextWriter(textWriter)) { writer.WriteProcessingInstruction("xml", "version='1.0' encoding='UTF-8'"); this.SaveToXml(writer); } } System.Xml.XmlDocument doc = new System.Xml.XmlDocument(); doc.LoadXml(sb.ToString()); AnimationTarget at = new AnimationTarget(owner); System.Xml.XmlNode node = doc["KeyFrames"]; at.FromXml(node); at.Target = newTarget; at.TargetID = newTarget.GetIndentifier(); return at; }
public Overlay AddOverlay(Overlay ol) { if (tour == null || tour.CurrentTourStop == null) { return null; } if(ol.GetType() == typeof(ShapeOverlay)) { ShapeOverlay srcShapeOverlay = (ShapeOverlay)ol; if (srcShapeOverlay != null) { ShapeOverlay shape = new ShapeOverlay(tour.CurrentTourStop, srcShapeOverlay.ShapeType); shape.Width = srcShapeOverlay.Width; shape.Height = srcShapeOverlay.Height; shape.X = contextPoint.X; shape.Y = contextPoint.Y; shape.Color = srcShapeOverlay.Color; shape.RotationAngle = srcShapeOverlay.RotationAngle; if (ol.AnimationTarget != null) { shape.AnimationTarget = ol.AnimationTarget.Clone(shape); } tour.CurrentTourStop.AddOverlay(shape); return shape; } } else if (ol.GetType() == typeof(TextOverlay)) { TextOverlay srcTxtOverlay = (TextOverlay)ol; if (srcTxtOverlay != null) { TextOverlay text = new TextOverlay(srcTxtOverlay.TextObject); text.X = contextPoint.X; text.Y = contextPoint.Y; text.Color = srcTxtOverlay.Color; if (ol.AnimationTarget != null) { text.AnimationTarget = ol.AnimationTarget.Clone(text); } tour.CurrentTourStop.AddOverlay(text); return text; } } else if (ol.GetType() == typeof(BitmapOverlay)) { BitmapOverlay srcBmpOverlay = (BitmapOverlay)ol; if (srcBmpOverlay != null) { BitmapOverlay bitmap = srcBmpOverlay.Copy(tour.CurrentTourStop); bitmap.X = contextPoint.X; bitmap.Y = contextPoint.Y; if (ol.AnimationTarget != null) { bitmap.AnimationTarget = ol.AnimationTarget.Clone(bitmap); } tour.CurrentTourStop.AddOverlay(bitmap); return bitmap; } } else if (ol.GetType() == typeof(FlipbookOverlay)) { FlipbookOverlay srcFlipbookOverlay = (FlipbookOverlay)ol; if (srcFlipbookOverlay != null) { FlipbookOverlay bitmap = srcFlipbookOverlay.Copy(tour.CurrentTourStop); bitmap.X = contextPoint.X; bitmap.Y = contextPoint.Y; if (ol.AnimationTarget != null) { bitmap.AnimationTarget = ol.AnimationTarget.Clone(bitmap); } tour.CurrentTourStop.AddOverlay(bitmap); return bitmap; } } return null; }
public Overlay GetNextOverlay(Overlay current) { if (current == null) { if (overlays.Count > 0) { return overlays[0]; } return null; } var index = overlays.FindIndex(delegate(Overlay overlay) { return current == overlay; }); if (index < overlays.Count - 1) { return overlays[index + 1]; } return overlays[0]; }