コード例 #1
0
        /// <summary>
        /// Adds visible object to itself
        /// </summary>
        /// <param name="p">The visible object for adding</param>
        public virtual void AddVisible(IPosition p)
        {
            if (p == null)
            {
                return;
            }
            if (visible.Contains(p))
            {
                return;
            }
            object o = p.Parameters;

            if (!(o is IVisibleCollection))
            {
                visible.Add(p);
            }
            else
            {
                IVisibleCollection vc = o as IVisibleCollection;
                int count             = vc.Count;
                for (int i = 0; i < count; i++)
                {
                    visible.Add(vc[i]);
                }
            }
        }
コード例 #2
0
        /// <summary>
        /// Removes visible object
        /// </summary>
        /// <param name="p">The visible object for removing</param>
        public virtual void RemoveVisible(IPosition p)
        {
            if (p == null)
            {
                return;
            }
            object obj = p.Parameters;

            if (obj is IVisibleCollection)
            {
                IVisibleCollection vc = obj as IVisibleCollection;
                int n = vc.Count;
                for (int i = 0; i < n; i++)
                {
                    IPosition pp = vc[i];
                    if (visible.Contains(pp))
                    {
                        visible.Remove(pp);
                        object par = pp.Parameters;
                        if (par is ICameraConsumer)
                        {
                            (par as ICameraConsumer).Remove(this);
                        }
                    }
                }
            }
            if (!visible.Contains(p))
            {
                return;
            }
            visible.Remove(p);
            if (obj is ICameraConsumer)
            {
                ICameraConsumer cc = obj as ICameraConsumer;
                cc.Remove(this);
            }
        }
コード例 #3
0
 /// <summary>
 /// Default constructor
 /// </summary>
 protected WpfVisibleCollection()
 {
     collection = this;
 }