Example #1
0
        public Node FindNodeWhichContains(UV point)
        {
            Node n = null;

            if (IsLeafNode)
            {
                if (Contains(point))
                {
                    return(this);
                }
            }
            else
            {
                if (NW.Contains(point))
                {
                    n = NW.FindNodeWhichContains(point);
                }
                else if (NE.Contains(point))
                {
                    n = NE.FindNodeWhichContains(point);
                }
                else if (SW.Contains(point))
                {
                    n = SW.FindNodeWhichContains(point);
                }
                else if (SE.Contains(point))
                {
                    n = SE.FindNodeWhichContains(point);
                }
            }

            return(n);
        }
Example #2
0
        public bool TryFind(UV uv, out Node node)
        {
            if (!Contains(uv))
            {
                node = null;
                return(false);
            }

            if (IsLeafNode)
            {
                if (Point.IsAlmostEqualTo(uv))
                {
                    node = this;
                    return(true);
                }
                else
                {
                    node = null;
                    return(false);
                }
            }

            if (NW.Contains(uv))
            {
                if (NW.TryFind(uv, out node))
                {
                    return(true);
                }
            }

            else if (NE.Contains(uv))
            {
                if (NE.TryFind(uv, out node))
                {
                    return(true);
                }
            }


            else if (SW.Contains(uv))
            {
                if (SW.TryFind(uv, out node))
                {
                    return(true);
                }
            }

            else if (SE.Contains(uv))
            {
                if (SE.TryFind(uv, out node))
                {
                    return(true);
                }
            }

            node = null;
            return(false);
        }
Example #3
0
        public double Match(string a, string b, string Ability)
        {
            double result = 1.0;

            if (SE != null)
            {
                if (SE.Contains(a))
                {
                    result *= 2.0;
                }
                if (SE.Contains(b))
                {
                    result *= 2.0;
                }
            }

            if (NVE != null)
            {
                foreach (string s in NVE)
                {
                    if (s == a || s == b)
                    {
                        result *= 0.5;
                    }
                }
            }

            if (I != null)
            {
                foreach (string s in I)
                {
                    if (s == a || s == b)
                    {
                        if (Ability == "SCR")
                        {
                            result *= 1.0;
                        }
                        else
                        {
                            result *= 0.0;
                        }
                    }
                }
            }

            return(result);
        }