private static void Append(SentenceModelBuilder builder, IBrick brick) { builder.Append( brick.Text, brick.X, brick.Y, brick.Width, brick.Height); }
public List <List <SentenceModel> > Translate(IEnumerable <IBrick[]> brickLists) { var blockSentences = new List <List <SentenceModel> >(); foreach (var brickList in brickLists) { var sentences = new List <SentenceModel>(); var builder = new SentenceModelBuilder(_addSpaces); for (var i = 0; i < brickList.Length; i++) { var brick = brickList[i]; if (builder.IsEmpty) { Append(builder, brick); } else { var prevBrick = brickList[i - 1]; if (RoughEqual(brick.Y, prevBrick.Y, _yDelta) && RoughEqual(prevBrick.X + prevBrick.Width, brick.X, _xDelta)) { Append(builder, brick); } else { sentences.Add(builder.Build()); builder = new SentenceModelBuilder(_addSpaces); Append(builder, brick); } } if (i == brickList.Length - 1) { sentences.Add(builder.Build()); } } if (sentences.Any()) { blockSentences.Add(sentences); } } return(blockSentences); }