Beispiel #1
0
    public Containment Evaluate(Aabb aabb)
    {
        var vc0 = aabb.Evaluate(_near);

        if (vc0 == 8)
        {
            return(Containment.Outside);
        }

        var vc1 = aabb.Evaluate(_far);

        if (vc1 == 8)
        {
            return(Containment.Outside);
        }

        var vc2 = aabb.Evaluate(_left);

        if (vc2 == 8)
        {
            return(Containment.Outside);
        }

        var vc3 = aabb.Evaluate(_right);

        if (vc3 == 8)
        {
            return(Containment.Outside);
        }

        var vc4 = aabb.Evaluate(_top);

        if (vc4 == 8)
        {
            return(Containment.Outside);
        }

        var vc5 = aabb.Evaluate(_bottom);

        if (vc5 == 8)
        {
            return(Containment.Outside);
        }

        return(vc0 + vc1 + vc2 + vc3 + vc4 + vc5 == 0 ? Containment.Inside : Containment.Partial);
    }