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; }
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);