Ejemplo n.º 1
0
	private static LMRecord2D_Retangular Match_Internal(SlotWrapper2D[,] slots,
	                                                    int x,
	                                                    int y,
	                                                    RuleMatchBasic2D_Rectangular matchRule)
	{
		var sample = slots[y + matchRule.scatters[0].y, x + matchRule.scatters[0].x];
		if (!sample.IsTarget)
		{
			return null;
		}
		for (int i = 1; i < matchRule.scatters.Length; ++i)
		{
			var sniff = slots[y + matchRule.scatters[i].y, x + matchRule.scatters[i].x];
			if (!sniff.IsTarget)
			{
				return null;
			}
			if (!sample.slotAttribute.trait.AbsoluteEqual(sniff.slotAttribute.trait))
			{
				return null;
			}
		}
		var record = new LMRecord2D_Retangular();
		record.x = x;
		record.y = y;
		record.rule = matchRule;
		return record;
	}
Ejemplo n.º 2
0
    private static LMRecord2D_Retangular Match_Internal(SlotWrapper2D[,] slots,
                                                        int x,
                                                        int y,
                                                        RuleMatchBasic2D_Rectangular matchRule)
    {
        var sample = slots[y + matchRule.scatters[0].y, x + matchRule.scatters[0].x];

        if (!sample.IsTarget)
        {
            return(null);
        }
        for (int i = 1; i < matchRule.scatters.Length; ++i)
        {
            var sniff = slots[y + matchRule.scatters[i].y, x + matchRule.scatters[i].x];
            if (!sniff.IsTarget)
            {
                return(null);
            }
            if (!sample.slotAttribute.trait.AbsoluteEqual(sniff.slotAttribute.trait))
            {
                return(null);
            }
        }
        var record = new LMRecord2D_Retangular();

        record.x    = x;
        record.y    = y;
        record.rule = matchRule;
        return(record);
    }
	public abstract bool Apply(Container2D_Rectangular container,
	                           LMRecord2D_Retangular matchRecord,
	                           List<Pos2D> results);
 public abstract bool Apply(Container2D_Rectangular container,
                            LMRecord2D_Retangular matchRecord,
                            List <Pos2D> results);