Esempio n. 1
0
        public void AddSelection(Overlay overlay)
        {
            if (overlay != null)
            {
                if(!selectionSet.Contains(overlay))
                {
                    selectionSet.Add(overlay);
                }

            }
        }
Esempio n. 2
0
        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);
            }
        }
Esempio n. 3
0
 public void SetSelection(Overlay overlay)
 {
     selectionSet.Clear();
     if (overlay != null)
     {
         selectionSet.Add(overlay);
     }
 }
Esempio n. 4
0
 public void SetSelection(Overlay[] overlays)
 {
     selectionSet.Clear();
     selectionSet.AddRange(overlays);
 }
Esempio n. 5
0
 public bool IsOverlaySelected(Overlay overlay)
 {
     return selectionSet.Contains(overlay);
 }
Esempio n. 6
0
        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;
        }
Esempio n. 7
0
 public void BringToFront(Overlay target)
 {
     overlays.Remove(target);
     overlays.Add(target);
     if (owner != null) { owner.TourDirty = true; }
 }
Esempio n. 8
0
 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];
     }
 }
Esempio n. 9
0
        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; }
        }
Esempio n. 10
0
 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; }
 }
Esempio n. 11
0
 public void SendToBack(Overlay target)
 {
     overlays.Remove(target);
     overlays.Insert(0, target);
     if (owner != null) { owner.TourDirty = true; }
 }
Esempio n. 12
0
 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; }
 }
Esempio n. 13
0
        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; }
        }
Esempio n. 14
0
 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;
 }
Esempio n. 17
0
        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];
        }