private void BuildQuadtree(BoxCollider[] colliders) { CreateQuadtree(); Stopwatch treeBuildingStopwatch = Stopwatch.StartNew(); foreach (BoxCollider bc in colliders) { QVector2D point = new QVector2D(bc.transform.position.x, bc.transform.position.y); byte data = GetZeroOrOne(); quadtree.InsertPoint(point, data); bc.GetComponent <Renderer> ().material.color = (data == RED) ? Color.red : Color.yellow; } treeBuildingStopwatch.Stop(); UnityEngine.Debug.Log("Time spent building the quadtree: " + treeBuildingStopwatch.Elapsed); }
private void CreateQuadtree() { QVector2D origin = new QVector2D(quadtreeOrigin.x, quadtreeOrigin.y); QVector2D halfSize = new QVector2D(quadtreeHalfSize.x, quadtreeHalfSize.y); QRegion region = new QRegion(origin, halfSize); switch (quadtreeType) { case QuadtreeType.RegionQuadtree: quadtree = new RegionQuadtree <byte> (quadtreeMaxDepth, region, RED); break; case QuadtreeType.PointQuadtree: quadtree = new PointQuadtree <byte> (quadtreeMaxDepth, region); break; case QuadtreeType.PointRegionQuadtree: quadtree = new PointRegionQuadtree <byte> (quadtreeMaxDepth, quadtreeBucketSize, region); break; } }