using System.Collections.Generic;
using QuadTrees.QTreePointF;
public static void Main()
QuadTreePointF<Entity> qtree = new QuadTreePointF<Entity>(new RectangleF(3000.0f, 3000.0f, 24000.0f, 30000.0f));
Character beeb = new Character("Beeb");
beeb.updateCoords(25000.0f, 16000.0f);
Actor fake = new Actor("fake");
fake.updateCoords(25001.0f, 16001.0f);
List<Entity> entityList = qtree.GetObjects(new RectangleF(beeb.x - 50.0f, beeb.z - 50.0f, 100.0f, 100.0f));
foreach(Entity e in entityList)
Console.WriteLine(((Character)e).Name);
Console.WriteLine(((Actor)e).Name);
public class Character : Entity
public Character(string name) : base(true)
public class Entity : IPointFQuadStorable
private Vector3 _position;
public Entity(bool isPlayer)
public void updateCoords(float X, float Z)
_point = new PointF(x, z);
public class Actor : Entity
public Actor(string name) : base(false)