Example #1
0
 public OcTreeNode Insert(Geometry geometry, int depth, int maxDepth)
 {
     if (depth < maxDepth)
     {
         OcTreeNode node = GetContainerNode(geometry);
         if (node != null)
         {
             return(node.Insert(geometry, depth + 1, maxDepth));
         }
     }
     m_Geometries.Add(geometry);
     return(this);
 }
Example #2
0
        public override void Build(List <Geometry> geometries)
        {
            Bounds bounds = geometries[0].bounds;

            for (int i = 1; i < geometries.Count; i++)
            {
                bounds.Encapsulate(geometries[i].bounds);
            }

            bounds.size *= 1.1;

            m_Node = new OcTreeNode(bounds);

            for (int i = 0; i < geometries.Count; i++)
            {
                m_Node.Insert(geometries[i], 0, 5);
            }
        }