Exemplo n.º 1
0
 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));
 }
Exemplo n.º 2
0
    private KDNode CreateNode(GameObject obj, KDDimension splitDimension)
    {
        KDNode res = new KDNode();

        res.obj            = obj;
        res.splitDimension = splitDimension;
        return(res);
    }
Exemplo n.º 3
0
        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);
        }
Exemplo n.º 4
0
    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);
    }