Exemple #1
0
        // Token: 0x0600000D RID: 13 RVA: 0x000021A8 File Offset: 0x000003A8
        private static int RecurseY(IList <Vector3> vertices, KdTreeNode3 treeNode, ref Vector3 value, double epsilon)
        {
            Vector3 treeValue = vertices[treeNode.Index];

            if (KdTree3.Compare(treeValue, ref value, epsilon))
            {
                return(treeNode.Index);
            }
            if (value.Y - treeValue.Y >= -epsilon * 4.0)
            {
                if (treeNode.Front != null)
                {
                    return(KdTree3.RecurseZ(vertices, treeNode.Front, ref value, epsilon));
                }
                int count = vertices.Count;
                vertices.Add(value);
                treeNode.Front = new KdTreeNode3(count);
                return(count);
            }
            else
            {
                if (treeNode.Back != null)
                {
                    return(KdTree3.RecurseZ(vertices, treeNode.Back, ref value, epsilon));
                }
                int count2 = vertices.Count;
                vertices.Add(value);
                treeNode.Back = new KdTreeNode3(count2);
                return(count2);
            }
        }
Exemple #2
0
 // Token: 0x0600000B RID: 11 RVA: 0x0000209C File Offset: 0x0000029C
 public int Insert(Vector3 value)
 {
     if (this.Root == null)
     {
         int count = this.vertices.Count;
         this.vertices.Add(value);
         KdTreeNode3 root = new KdTreeNode3(count);
         this.Root = root;
         return(count);
     }
     return(KdTree3.RecurseX(this.vertices, this.Root, ref value, this.Epsilon));
 }