public void GetAll(List <MyClusterQueryResult> results)
 {
     this.m_clusterTree.GetAll <MyCluster>(m_resultList, true, null);
     foreach (MyCluster cluster in m_resultList)
     {
         MyClusterQueryResult item = new MyClusterQueryResult {
             AABB     = cluster.AABB,
             UserData = cluster.UserData
         };
         results.Add(item);
     }
 }
        public void Intersects(Vector3D translation, List <MyClusterQueryResult> results)
        {
            BoundingBoxD bbox = new BoundingBoxD(translation - new Vector3D(1.0), translation + new Vector3D(1.0));

            this.m_clusterTree.OverlapAllBoundingBox <MyCluster>(ref bbox, m_resultList, 0, true);
            foreach (MyCluster cluster in m_resultList)
            {
                MyClusterQueryResult item = new MyClusterQueryResult {
                    AABB     = cluster.AABB,
                    UserData = cluster.UserData
                };
                results.Add(item);
            }
        }
 public void CastRay(Vector3D from, Vector3D to, List <MyClusterQueryResult> results)
 {
     if ((this.m_clusterTree != null) && (results != null))
     {
         LineD line = new LineD(from, to);
         this.m_clusterTree.OverlapAllLineSegment <MyCluster>(ref line, m_lineResultList, true);
         foreach (MyLineSegmentOverlapResult <MyCluster> result in m_lineResultList)
         {
             if (result.Element != null)
             {
                 MyClusterQueryResult item = new MyClusterQueryResult {
                     AABB     = result.Element.AABB,
                     UserData = result.Element.UserData
                 };
                 results.Add(item);
             }
         }
     }
 }