Esempio n. 1
0
        public virtual void Canonicalize(SceneUpdateTypeFlags flags)
        {
            T       primarySelection = this.PrimarySelection;
            ListOfT newSelection     = this.storageProvider.CanonicalizeList(this.selection, flags);

            if ((object)newSelection == null)
            {
                return;
            }
            this.SetSelectionWithUndo(StringTable.UndoUnitRemoveDeletedNodesFromSelection, newSelection, primarySelection);
        }
        public void Update(SceneUpdateTypeFlags updateType, DocumentNodeChangeList damage, uint changeStamp)
        {
            if (this.activeStoryboard == null || damage.Count == 0 || ((int)this.lastUpdateChangeStamp == (int)changeStamp || !this.activeStoryboard.IsInDocument))
            {
                return;
            }
            this.lastUpdateChangeStamp = changeStamp;
            bool flag = false;

            foreach (DocumentNodeChange documentNodeChange in damage.DistinctChanges)
            {
                if (this.activeStoryboard.DocumentNode.Marker.Equals((object)documentNodeChange.ParentNode.Marker) || this.activeStoryboard.DocumentNode.Marker.Contains(documentNodeChange.ParentNode.Marker))
                {
                    if (documentNodeChange.IsPropertyChange && documentNodeChange.ParentNode.IsInDocument)
                    {
                        DocumentCompositeNode documentCompositeNode = documentNodeChange.ParentNode;
                        while (documentCompositeNode != null && !PlatformTypes.Timeline.IsAssignableFrom((ITypeId)documentCompositeNode.Type))
                        {
                            documentCompositeNode = documentCompositeNode.Parent;
                        }
                        FromToAnimationSceneNode animationSceneNode = this.viewModel.GetSceneNode((DocumentNode)documentCompositeNode) as FromToAnimationSceneNode;
                        AnimationProxyManager.AnimationProxyData animationProxyData;
                        if (animationSceneNode != null && animationSceneNode.IsOptimized && this.targetPathToProxyData.TryGetValue(new AnimationProxyManager.TargetNamePropertyPair((TimelineSceneNode)animationSceneNode), out animationProxyData))
                        {
                            animationProxyData.OptimizedAnimationPropertyChanged = true;
                        }
                    }
                    else if (documentNodeChange.Action == DocumentNodeChangeAction.Add && PlatformTypes.Timeline.IsAssignableFrom((ITypeId)documentNodeChange.NewChildNode.Type))
                    {
                        TimelineSceneNode timeline = this.viewModel.GetSceneNode(documentNodeChange.NewChildNode) as TimelineSceneNode;
                        AnimationProxyManager.AnimationProxyData animationProxyData;
                        if (timeline != null && AnimationProxyManager.IsOptimizedAnimation(timeline) && this.targetPathToProxyData.TryGetValue(new AnimationProxyManager.TargetNamePropertyPair(timeline), out animationProxyData))
                        {
                            animationProxyData.OptimizedAnimationAdded = true;
                        }
                    }
                    flag = true;
                }
            }
            if (!flag)
            {
                return;
            }
            if ((updateType & SceneUpdateTypeFlags.UndoRedo) == SceneUpdateTypeFlags.None && (updateType & SceneUpdateTypeFlags.Canceled) == SceneUpdateTypeFlags.None)
            {
                this.UpdateProxyTable(AnimationProxyManager.AllowedChange.Any);
            }
            else
            {
                this.UpdateProxyTable(AnimationProxyManager.AllowedChange.None);
            }
        }
Esempio n. 3
0
 public OrderedList <T> CanonicalizeList(OrderedList <T> list, SceneUpdateTypeFlags flags)
 {
     return((OrderedList <T>)null);
 }
 public MarkerBasedSceneNodeCollection <T> CanonicalizeList(MarkerBasedSceneNodeCollection <T> list, SceneUpdateTypeFlags flags)
 {
     if (flags != SceneUpdateTypeFlags.UndoRedo)
     {
         return(list.FilterOutDeletedMarkers());
     }
     list.RestoreDeletedMarkers();
     return((MarkerBasedSceneNodeCollection <T>)null);
 }