Exemplo n.º 1
0
        public static Generalization[] Merge(Generalization[] prev_gens, Generalization[] new_gens)
        {
            List <Generalization> gens = new List <Generalization>();

            if (prev_gens.Length > 0 && prev_gens.Length == new_gens.Length && prev_gens[0].Type == new_gens[0].Type)
            {
                for (int i = 0; i < prev_gens.Length; i++)
                {
                    MouseDragGeneralization prev_gen = (MouseDragGeneralization)prev_gens[i];
                    MouseDragGeneralization new_gen = (MouseDragGeneralization)new_gens[i];
                    int xi1 = prev_gen.AverageXi, xi2 = new_gen.AverageXi, yi1 = prev_gen.AverageYi, yi2 = new_gen.AverageYi;
                    int xf1 = prev_gen.AverageXf, xf2 = new_gen.AverageXf, yf1 = prev_gen.AverageYf, yf2 = new_gen.AverageYf;
                    if (xi2 <= (int)(xi1 + MouseAction.MAX_X_OFFSET * 2) &&
                        xi2 >= (int)(xi1 - MouseAction.MAX_X_OFFSET * 2) &&
                        yi2 <= (int)(yi1 + MouseAction.MAX_Y_OFFSET * 2) &&
                        yi2 >= (int)(yi1 - MouseAction.MAX_Y_OFFSET * 2) &&
                        xf2 <= (int)(xf1 + MouseAction.MAX_X_OFFSET * 2) &&
                        xf2 >= (int)(xf1 - MouseAction.MAX_X_OFFSET * 2) &&
                        yf2 <= (int)(yf1 + MouseAction.MAX_Y_OFFSET * 2) &&
                        yf2 >= (int)(yf1 - MouseAction.MAX_Y_OFFSET * 2))
                    {
                        gens.Add(new MouseDragGeneralization(GetIntAverage(xi1, xi2), GetIntAverage(yi1, yi2), GetIntAverage(xf1, xf2), GetIntAverage(yf1, yf2), new_gen.Time, prev_gen.Occurrences + 1));
                    }
                }
            }

            return(gens.ToArray());
        }
Exemplo n.º 2
0
        public override bool Equals(object obj)
        {
            if (obj == null) // check if its null
            {
                return(false);
            }

            if (this.GetType() != obj.GetType()) // check if the type is the same
            {
                return(false);
            }

            MouseDragGeneralization generalization = (MouseDragGeneralization)obj;

            if (generalization == null) // check if it can be casted
            {
                return(false);
            }

            if (generalization.AverageXi == this.AverageXi &&
                generalization.AverageYi == this.AverageYi)
            {
                return(true);
            }
            else
            {
                return(false);
            }
        }