public static KDDimension NextDimension(KDDimension currentDimension, int nbDimensions) { if (nbDimensions == 2) { return(currentDimension == KDDimension.X ? KDDimension.Z : KDDimension.X); } return((KDDimension)((int)(currentDimension + 1) % Enum.GetNames(typeof(KDDimension)).Length)); }
private KDNode CreateNode(GameObject obj, KDDimension splitDimension) { KDNode res = new KDNode(); res.obj = obj; res.splitDimension = splitDimension; return(res); }
public void TestNextDimension2D() { KDDimension dim = KDDimension.X; dim = KDTree.NextDimension(dim, 2); Assert.AreEqual(dim, KDDimension.Z); dim = KDTree.NextDimension(dim, 2); Assert.AreEqual(dim, KDDimension.X); }
private bool IsLowerThan(GameObject obj1, GameObject obj2, KDDimension splitDimension) { switch (splitDimension) { case KDDimension.X: return(obj1.transform.position.x < obj2.transform.position.x); case KDDimension.Y: return(obj1.transform.position.y < obj2.transform.position.y); case KDDimension.Z: return(obj1.transform.position.z < obj2.transform.position.z); } return(false); }