コード例 #1
0
 public void Evaluate(int SpreadMax)
 {
     if (FInput.IsConnected)
     {
         FName.SliceCount     = FInput.SliceCount;
         FDebug.SliceCount    = FInput.SliceCount;
         FAge.SliceCount      = FInput.SliceCount;
         FChildren.SliceCount = FInput.SliceCount;
         for (int i = 0; i < FInput.SliceCount; i++)
         {
             if (FInput[i] is VObjectCollection)
             {
                 VObjectCollection Content = FInput[i] as VObjectCollection;
                 FName[i]  = Content.Name;
                 FDebug[i] = Content.Debug;
                 FAge[i]   = Content.Age.Elapsed.TotalSeconds;
                 FChildren[i].SliceCount = 0;
                 foreach (string k in Content.Children.Keys)
                 {
                     FChildren[i].Add(k);
                 }
             }
         }
     }
     else
     {
         FName.SliceCount     = 0;
         FDebug.SliceCount    = 0;
         FAge.SliceCount      = 0;
         FChildren.SliceCount = 0;
     }
 }
コード例 #2
0
        public override void ConstructObject(object Parent)
        {
            if (Parent is VObjectCollection)
            {
                VObjectCollection Content = Parent as VObjectCollection;
                if (!Content.Children.ContainsKey(FName[this.CurrParent][this.CurrChild]))
                {
                    if (FNotExistObjMan[this.CurrParent] == ManageNotExisting.Create)
                    {
                        VObjectCollection NewObj = new VObjectCollection();
                        NewObj.Name = FName[this.CurrParent][this.CurrChild];
                        Content.Children.Add(FName[this.CurrParent][this.CurrChild], NewObj);

                        FOutput.Add(NewObj);
                    }
                }
                else
                {
                    if (FExistObjMan[this.CurrParent] == ManageExistingObject.Overwrite)
                    {
                        VObjectCollection CurrObj = Content.Children[FName[this.CurrParent][this.CurrChild]] as VObjectCollection;
                        CurrObj.Clear();

                        VObjectCollection NewObj = new VObjectCollection();
                        NewObj.Name = FName[this.CurrParent][this.CurrChild];

                        Content.Children[FName[this.CurrParent][this.CurrChild]] = NewObj;
                        FOutput.Add(NewObj);
                    }
                }
            }
        }
コード例 #3
0
        public override object ConstructObject()
        {
            VObjectCollection NewObj = new VObjectCollection();

            NewObj.Name = FName[this.CurrObj];
            return(NewObj);
        }
コード例 #4
0
 public override void Sift(object Source, string Filter, bool Contains, bool Exclude, List <int> MatchingIndices, List <object> Output)
 {
     if (Source is VObjectCollection)
     {
         VObjectCollection Content = Source as VObjectCollection;
         if (Contains)
         {
             foreach (string k in Content.Children.Keys)
             {
                 if (k.Contains(Filter) ^ Exclude)
                 {
                     MatchingIndices.Add(this.CurrentAbsIndex);
                     Output.Add(Content[k]);
                 }
             }
         }
         else
         {
             foreach (string k in Content.Children.Keys)
             {
                 if ((k == Filter) ^ Exclude)
                 {
                     MatchingIndices.Add(this.CurrentAbsIndex);
                     Output.Add(Content[k]);
                 }
             }
         }
     }
 }
コード例 #5
0
 public override void RemoveObject(object Parent)
 {
     if (Parent is VObjectCollection)
     {
         VObjectCollection Content = Parent as VObjectCollection;
         Content.Remove(FName[this.CurrParent][this.CurrChild], FMatch[this.CurrParent][this.CurrChild]);
     }
 }
コード例 #6
0
        public CompositeVObject()
        {
            _multipleVObjectsTransformationEnabled = true;
            _matrix   = new System.Drawing.Drawing2D.Matrix();
            _children = new VObjectCollection();

            _children.VObjectAdded   += new VObjectEventHandler(ObjectAddedHandler);
            _children.VObjectRemoved += new VObjectEventHandler(ObjectRemovedHandler);
        }
コード例 #7
0
ファイル: Smoothing.cs プロジェクト: LaurinD/VObjects
 public Smoothing(IHDEHost hde, string vpath, string vpathsep, VObjectCollection root)
 {
     this.HDEHost = hde;
     this.HDEHost.MainLoop.OnPrepareGraph += this.EveryFrame;
     this.VPath          = vpath;
     this.VPathSeparator = vpathsep;
     this.Root           = root;
     this.CheckPath();
     this.InternalTime.Start();
 }
コード例 #8
0
        public override void AddVObject(VObjectDictionaryWrap Parent, VObject Source)
        {
            VObjectDictionary Content = Parent.Content as VObjectDictionary;

            if (Source is VObjectCollectionWrap)
            {
                VObjectCollection Child = Source.Content as VObjectCollection;
                if (!Content.Objects.ContainsKey(Child.Name))
                {
                    if (FNotExistObjMan[this.CurrParent] == ManageNotExisting.Create)
                    {
                        Content.Objects.Add(Child.Name, (VObjectCollectionWrap)Source);
                    }
                }
                else
                {
                    if (FExistObjMan[this.CurrParent] == ManageExistingObject.Overwrite)
                    {
                        Content.Objects[Child.Name].Dispose();
                        Content.Objects[Child.Name] = (VObjectCollectionWrap)Source;
                    }
                    if (FExistObjMan[this.CurrParent] == ManageExistingObject.Extend)
                    {
                        VObjectCollection ColSource  = Content.Objects[Child.Name].Content as VObjectCollection;
                        VObjectCollection CurrSource = Source.Content as VObjectCollection;

                        foreach (KeyValuePair <string, VObject> kvp in CurrSource.Children)
                        {
                            if (ColSource.Children.ContainsKey(kvp.Key))
                            {
                                if (FExistKeyMan[this.CurrParent][this.CurrSource] == ManageExistingKey.Overwrite)
                                {
                                    ColSource[kvp.Key].Dispose();
                                    ColSource[kvp.Key] = kvp.Value;
                                }
                            }
                            else
                            {
                                if (FNotExistKeyMan[this.CurrParent][this.CurrSource] == ManageNotExisting.Create)
                                {
                                    ColSource.Add(kvp.Key, kvp.Value);
                                }
                            }
                        }
                    }
                }
                if (FResetAge[this.CurrParent])
                {
                    VObjectCollection CurrSource = Source.Content as VObjectCollection;
                    CurrSource.Age.Restart();
                }
            }
        }
コード例 #9
0
 public override object ConstructObject()
 {
     if (FRoot[this.CurrObj] is VObjectCollection)
     {
         VObjectCollection vc     = FRoot[this.CurrObj] as VObjectCollection;
         Smoothing         NewObj = new Smoothing(FHDEHost, FVPath[this.CurrObj], FVPathSep[this.CurrObj], vc);
         NewObj.Algorithm  = FAlgorithm[this.CurrObj];
         NewObj.FilterTime = FFilterTime[this.CurrObj];
         return(NewObj);
     }
     else
     {
         return(null);
     }
 }
コード例 #10
0
        public Layer(string name)
        {
            if (name == null)
            {
                throw new System.ArgumentNullException("name");
            }

            _visible = true;
            _name    = name;

            _objects = new VObjectCollection();
            _objects.VObjectAdding   += new VObjectEventHandler(ObjectAddingHandler);
            _objects.VObjectAdded    += new VObjectEventHandler(ObjectAddedHandler);
            _objects.VObjectRemoving += new VObjectEventHandler(ObjectRemovingHandler);
            _objects.VObjectRemoved  += new VObjectEventHandler(ObjectRemovedHandler);
        }
コード例 #11
0
 public override Spread <object> ToSpread(object Source)
 {
     if (Source is VObjectCollection)
     {
         Spread <object>   Out     = new Spread <object>();
         VObjectCollection Content = Source as VObjectCollection;
         Out.SliceCount = 0;
         foreach (KeyValuePair <string, object> kvp in Content.Children)
         {
             Out.Add(kvp.Value);
         }
         return(Out);
     }
     else
     {
         Spread <object> Out = new Spread <object>();
         Out.SliceCount = 0;
         return(Out);
     }
 }
コード例 #12
0
 public override void AddObject(object Parent, object Source)
 {
     if (Parent is VObjectCollection)
     {
         VObjectCollection Content = Parent as VObjectCollection;
         if (!Content.Children.ContainsKey(FName[this.CurrParent][this.CurrSource]))
         {
             if (FNotExistObjMan[this.CurrParent] == ManageNotExisting.Create)
             {
                 Content.Add(FName[this.CurrParent][this.CurrSource], Source);
             }
         }
         else
         {
             if (FExistObjMan[this.CurrParent] == ManageExistingObject.Overwrite)
             {
                 Content[FName[this.CurrParent][this.CurrSource]] = Source;
             }
         }
     }
 }
コード例 #13
0
 public void Evaluate(int SpreadMax)
 {
     if (FInput.IsConnected)
     {
         FAge.SliceCount = FInput.SliceCount;
         for (int i = 0; i < FInput.SliceCount; i++)
         {
             if (FInput[i] is VObjectCollection)
             {
                 VObjectCollection Content = FInput[i] as VObjectCollection;
                 FAge[i] = Content.Age.Elapsed.TotalSeconds;
                 if (FReset[i])
                 {
                     Content.Age.Restart();
                 }
             }
         }
     }
     else
     {
         FAge.SliceCount = 0;
     }
 }
コード例 #14
0
 public void Evaluate(int SpreadMax)
 {
     if (FInput.IsConnected)
     {
         FDebugOut.SliceCount = FInput.SliceCount;
         for (int i = 0; i < FInput.SliceCount; i++)
         {
             if (FInput[i] is VObjectCollection)
             {
                 VObjectCollection Content = FInput[i] as VObjectCollection;
                 if (FSet[i])
                 {
                     Content.Debug = FDebug[i];
                 }
                 FDebugOut[i] = Content.Debug;
             }
         }
     }
     else
     {
         FDebugOut.SliceCount = 0;
     }
 }
コード例 #15
0
        public virtual void GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context)
        {
            if (info == null)
            {
                throw new System.ArgumentNullException("info");
            }

            info.AddValue(SerializationNames.Name, _name);
            info.AddValue(SerializationNames.Locked, _locked);
            info.AddValue(SerializationNames.LayerVisible, _visible);

            VObjectCollection serializableObjects = new VObjectCollection();

            foreach (IVObject obj in _objects)
            {
                if (obj.GetType().IsSerializable)
                {
                    serializableObjects.Add(obj);
                }
            }

            info.AddValue(SerializationNames.LayerObjects, serializableObjects);
        }