Exemplo n.º 1
0
        public List <ILayerPropertyKeyframe> Paste(RenderProfileElement target, TimeSpan pastePosition)
        {
            if (target == null)
            {
                throw new ArgumentNullException(nameof(target));
            }
            if (HasBeenPasted)
            {
                throw new ArtemisUIException("Clipboard model can only be pasted once");
            }

            List <ILayerPropertyKeyframe> results = new();

            if (!ClipboardModels.Any())
            {
                return(results);
            }

            // Determine the offset by looking at the position of the first keyframe, start pasting from there
            TimeSpan offset = pastePosition - ClipboardModels.First().KeyframeEntity.Position;
            List <ILayerProperty> properties = target.GetAllLayerProperties();

            foreach (KeyframeClipboardModel clipboardModel in ClipboardModels)
            {
                ILayerPropertyKeyframe layerPropertyKeyframe = clipboardModel.Paste(properties, offset);
                if (layerPropertyKeyframe != null)
                {
                    results.Add(layerPropertyKeyframe);
                }
            }

            HasBeenPasted = true;
            return(results);
        }
Exemplo n.º 2
0
        public ILayerPropertyKeyframe Paste(List <ILayerProperty> properties, TimeSpan offset)
        {
            ILayerProperty property = properties.FirstOrDefault(p => p.LayerPropertyGroup.Feature.Id == FeatureId && p.Path == Path);

            if (property != null)
            {
                KeyframeEntity.Position += offset;
                ILayerPropertyKeyframe keyframe = property.AddKeyframeEntity(KeyframeEntity);
                KeyframeEntity.Position -= offset;

                return(keyframe);
            }

            return(null);
        }
Exemplo n.º 3
0
 public KeyframeClipboardModel(ILayerPropertyKeyframe layerPropertyKeyframe)
 {
     FeatureId      = layerPropertyKeyframe.UntypedLayerProperty.LayerPropertyGroup.Feature.Id;
     Path           = layerPropertyKeyframe.UntypedLayerProperty.Path;
     KeyframeEntity = layerPropertyKeyframe.GetKeyframeEntity();
 }