示例#1
0
        public override int GetHashCode()
        {
            int hashCode = 1533363371;

            hashCode = hashCode * -1521134295 + Transform.GetHashCode();
            hashCode = hashCode * -1521134295 + Material.GetHashCode();
            hashCode = hashCode * -1521134295 + SavedRay.GetHashCode();
            hashCode = hashCode * -1521134295 + Parent.GetHashCode();
            hashCode = hashCode * -1521134295 + HasParent.GetHashCode();
            return(hashCode);
        }
示例#2
0
        /// <summary>
        /// Load from an unsorted list.
        /// </summary>
        /// <param name="list"></param>
        public Tree(IEnumerable <Element> list, HasParent hasParent, IsParent isParent, IsEqual isEqual)
        {
            List <Element>        copy       = new List <Element>();
            IEnumerator <Element> enumerator = list.GetEnumerator();

            while (enumerator.MoveNext())
            {
                copy.Add(enumerator.Current);
            }

            LoadFromCopy(copy, hasParent, isParent, isEqual);
        }
示例#3
0
        public Tree(System.Collections.IEnumerable list, HasParent hasParent, IsParent isParent, IsEqual isEqual)
        {
            List <Element> copy = new List <Element>();

            System.Collections.IEnumerator enumerator = list.GetEnumerator();
            while (enumerator.MoveNext())
            {
                copy.Add((Element)enumerator.Current);
            }

            LoadFromCopy(copy, hasParent, isParent, isEqual);
        }
示例#4
0
        public override int GetHashCode()
        {
            int hashCode = 480802305;

            hashCode = hashCode * -1521134295 + base.GetHashCode();
            hashCode = hashCode * -1521134295 + Transform.GetHashCode();
            hashCode = hashCode * -1521134295 + Material.GetHashCode();
            hashCode = hashCode * -1521134295 + SavedRay.GetHashCode();
            hashCode = hashCode * -1521134295 + Parent.GetHashCode();
            hashCode = hashCode * -1521134295 + HasParent.GetHashCode();
            return(hashCode);
        }
示例#5
0
        public override int GetHashCode()
        {
            var hashCode = -736575810;

            hashCode = hashCode * -1521134295 + EqualityComparer <string> .Default.GetHashCode(Name);

            hashCode = hashCode * -1521134295 + HasParent.GetHashCode();
            hashCode = hashCode * -1521134295 + EqualityComparer <CategoryDTO> .Default.GetHashCode(Parent);

            hashCode = hashCode * -1521134295 + EqualityComparer <Guid?> .Default.GetHashCode(ParentId);

            return(hashCode);
        }
示例#6
0
        public override int GetHashCode()
        {
            int hashCode = 205049560;

            hashCode = hashCode * -1521134295 + Transform.GetHashCode();
            hashCode = hashCode * -1521134295 + Material.GetHashCode();
            hashCode = hashCode * -1521134295 + SavedRay.GetHashCode();
            hashCode = hashCode * -1521134295 + Parent.GetHashCode();
            hashCode = hashCode * -1521134295 + HasParent.GetHashCode();
            hashCode = hashCode * -1521134295 + Maximum.GetHashCode();
            hashCode = hashCode * -1521134295 + Minimum.GetHashCode();
            hashCode = hashCode * -1521134295 + Closed.GetHashCode();
            return(hashCode);
        }
示例#7
0
        public override int GetHashCode()
        {
            int hashCode = -2063967696;

            hashCode = hashCode * -1521134295 + Transform.GetHashCode();
            hashCode = hashCode * -1521134295 + Material.GetHashCode();
            hashCode = hashCode * -1521134295 + SavedRay.GetHashCode();
            hashCode = hashCode * -1521134295 + Parent.GetHashCode();
            hashCode = hashCode * -1521134295 + HasParent.GetHashCode();
            hashCode = hashCode * -1521134295 + P1.GetHashCode();
            hashCode = hashCode * -1521134295 + P2.GetHashCode();
            hashCode = hashCode * -1521134295 + P3.GetHashCode();
            hashCode = hashCode * -1521134295 + Edge1.GetHashCode();
            hashCode = hashCode * -1521134295 + Edge2.GetHashCode();
            hashCode = hashCode * -1521134295 + Normal.GetHashCode();
            hashCode = hashCode * -1521134295 + N1.GetHashCode();
            hashCode = hashCode * -1521134295 + N2.GetHashCode();
            hashCode = hashCode * -1521134295 + N3.GetHashCode();
            hashCode = hashCode * -1521134295 + IsSmoothed.GetHashCode();
            return(hashCode);
        }
示例#8
0
        void LoadFromCopy(List <Element> copy, HasParent hasParent, IsParent isParent, IsEqual isEqual)
        {
            while (copy.Count > 0)
            {
                int i = 0;
                while (i < copy.Count)
                {
                    bool    fAdded = false;
                    Element f      = copy[i];
                    if (!hasParent(f))
                    {
                        mRoot.Children.Add(new Node <Element>(f));
                        fAdded = true;
                    }
                    else
                    {
                        IEnumerator <Node <Element> > innerenumerator = GetDepthFirstNodeEnumerator();
                        while (innerenumerator.MoveNext())
                        {
                            if (isParent(innerenumerator.Current.Data, f))
                            {
                                innerenumerator.Current.Children.Add(new Node <Element>(f));
                                fAdded = true;
                                break;
                            }
                        }
                    }

                    if (fAdded)
                    {
                        copy.RemoveAt(i);
                    }
                    else
                    {
                        i++;
                    }
                }
            }
        }