Text.cc
author viric@llimona
Thu, 18 May 2006 23:12:51 +0200
changeset 0 6b8091ca909a
child 2 5cdb891abc1e
permissions -rw-r--r--
Init from working directory of svn repository.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
0
6b8091ca909a Init from working directory of svn repository.
viric@llimona
parents:
diff changeset
     1
#include <Text.h>
6b8091ca909a Init from working directory of svn repository.
viric@llimona
parents:
diff changeset
     2
6b8091ca909a Init from working directory of svn repository.
viric@llimona
parents:
diff changeset
     3
void Text::getLines(Bitmap *map)
6b8091ca909a Init from working directory of svn repository.
viric@llimona
parents:
diff changeset
     4
{
6b8091ca909a Init from working directory of svn repository.
viric@llimona
parents:
diff changeset
     5
	int map_height = map->get_height();
6b8091ca909a Init from working directory of svn repository.
viric@llimona
parents:
diff changeset
     6
	int linenum=0;
6b8091ca909a Init from working directory of svn repository.
viric@llimona
parents:
diff changeset
     7
	int last_linenum=0;
6b8091ca909a Init from working directory of svn repository.
viric@llimona
parents:
diff changeset
     8
	int lineSize;
6b8091ca909a Init from working directory of svn repository.
viric@llimona
parents:
diff changeset
     9
6b8091ca909a Init from working directory of svn repository.
viric@llimona
parents:
diff changeset
    10
	// FIXME: Comprovacions
6b8091ca909a Init from working directory of svn repository.
viric@llimona
parents:
diff changeset
    11
6b8091ca909a Init from working directory of svn repository.
viric@llimona
parents:
diff changeset
    12
	int line_top;
6b8091ca909a Init from working directory of svn repository.
viric@llimona
parents:
diff changeset
    13
	int line_bottom;
6b8091ca909a Init from working directory of svn repository.
viric@llimona
parents:
diff changeset
    14
	int lastline_top;
6b8091ca909a Init from working directory of svn repository.
viric@llimona
parents:
diff changeset
    15
	int lastline_bottom;
6b8091ca909a Init from working directory of svn repository.
viric@llimona
parents:
diff changeset
    16
6b8091ca909a Init from working directory of svn repository.
viric@llimona
parents:
diff changeset
    17
	Lines.clear();
6b8091ca909a Init from working directory of svn repository.
viric@llimona
parents:
diff changeset
    18
6b8091ca909a Init from working directory of svn repository.
viric@llimona
parents:
diff changeset
    19
	for (int i = 0; i < map_height; i++)
6b8091ca909a Init from working directory of svn repository.
viric@llimona
parents:
diff changeset
    20
	{
6b8091ca909a Init from working directory of svn repository.
viric@llimona
parents:
diff changeset
    21
		// Fins a trobar començament de línia
6b8091ca909a Init from working directory of svn repository.
viric@llimona
parents:
diff changeset
    22
		while (i< map_height &&
6b8091ca909a Init from working directory of svn repository.
viric@llimona
parents:
diff changeset
    23
			map->points_per_row(i) < NoiseTolerance)
6b8091ca909a Init from working directory of svn repository.
viric@llimona
parents:
diff changeset
    24
			i++;
6b8091ca909a Init from working directory of svn repository.
viric@llimona
parents:
diff changeset
    25
6b8091ca909a Init from working directory of svn repository.
viric@llimona
parents:
diff changeset
    26
		line_top = i++;
6b8091ca909a Init from working directory of svn repository.
viric@llimona
parents:
diff changeset
    27
		// Fins a trobar final de línia
6b8091ca909a Init from working directory of svn repository.
viric@llimona
parents:
diff changeset
    28
		while (i< map_height &&
6b8091ca909a Init from working directory of svn repository.
viric@llimona
parents:
diff changeset
    29
			map->points_per_row(i) > NoiseTolerance)
6b8091ca909a Init from working directory of svn repository.
viric@llimona
parents:
diff changeset
    30
			i++;
6b8091ca909a Init from working directory of svn repository.
viric@llimona
parents:
diff changeset
    31
6b8091ca909a Init from working directory of svn repository.
viric@llimona
parents:
diff changeset
    32
		// If this line is less than MinVertSeparation away
6b8091ca909a Init from working directory of svn repository.
viric@llimona
parents:
diff changeset
    33
		//  from the last line.  Join the two together.
6b8091ca909a Init from working directory of svn repository.
viric@llimona
parents:
diff changeset
    34
		if (linenum > 0)
6b8091ca909a Init from working directory of svn repository.
viric@llimona
parents:
diff changeset
    35
		{
6b8091ca909a Init from working directory of svn repository.
viric@llimona
parents:
diff changeset
    36
			if (line_top - lastline_bottom < MinVertSeparation)
6b8091ca909a Init from working directory of svn repository.
viric@llimona
parents:
diff changeset
    37
				lastline_bottom = i;
6b8091ca909a Init from working directory of svn repository.
viric@llimona
parents:
diff changeset
    38
		}
6b8091ca909a Init from working directory of svn repository.
viric@llimona
parents:
diff changeset
    39
6b8091ca909a Init from working directory of svn repository.
viric@llimona
parents:
diff changeset
    40
		lineSize = i - line_top + 1;
6b8091ca909a Init from working directory of svn repository.
viric@llimona
parents:
diff changeset
    41
		if (lineSize >= MinLineSize)
6b8091ca909a Init from working directory of svn repository.
viric@llimona
parents:
diff changeset
    42
		{
6b8091ca909a Init from working directory of svn repository.
viric@llimona
parents:
diff changeset
    43
			line_bottom = i;
6b8091ca909a Init from working directory of svn repository.
viric@llimona
parents:
diff changeset
    44
			Lines.push_back(Rectangle(0,line_top,
6b8091ca909a Init from working directory of svn repository.
viric@llimona
parents:
diff changeset
    45
				map->get_height(), line_bottom));
6b8091ca909a Init from working directory of svn repository.
viric@llimona
parents:
diff changeset
    46
6b8091ca909a Init from working directory of svn repository.
viric@llimona
parents:
diff changeset
    47
			fprintf(stderr, "Line from %i to %i : %i.\n", line_top,
6b8091ca909a Init from working directory of svn repository.
viric@llimona
parents:
diff changeset
    48
				line_bottom, line_bottom - line_top + 1);
6b8091ca909a Init from working directory of svn repository.
viric@llimona
parents:
diff changeset
    49
6b8091ca909a Init from working directory of svn repository.
viric@llimona
parents:
diff changeset
    50
			lastline_top = line_top;
6b8091ca909a Init from working directory of svn repository.
viric@llimona
parents:
diff changeset
    51
			lastline_bottom = line_bottom;
6b8091ca909a Init from working directory of svn repository.
viric@llimona
parents:
diff changeset
    52
		}
6b8091ca909a Init from working directory of svn repository.
viric@llimona
parents:
diff changeset
    53
	}
6b8091ca909a Init from working directory of svn repository.
viric@llimona
parents:
diff changeset
    54
}