some comments

parent 93e43941
Pipeline #145 passed with stages
in 5 minutes and 7 seconds
......@@ -59,15 +59,18 @@ void addPixelToSelectedZone(Image *t_img, int64_t t_idx, Zone *t_zone) {
const uint32_t y = (uint32_t)(t_idx / t_img->sizeX);
int64_t left_limit, right_limit;
const int64_t xd_limit = (int64_t)t_img->sizeX * (y + 1);
if (t_idx >= (int64_t)img_size || t_idx < 0) {
if (t_idx >= (int64_t)img_size || t_idx < 0) { /* Pixel in range? */
return;
}
current_pixel = darrayGet(t_img->pixels, (size_t)t_idx);
/* Pixel already visited or of the right color? */
if (current_pixel->visited || !sameColor(current_pixel, t_zone)) {
return;
}
(*current_pixel).visited = 1;
/* right limit */
for (right_limit = t_idx; right_limit < xd_limit; ++right_limit) {
current_pixel = darrayGet(t_img->pixels, (size_t)right_limit);
if (!sameColor(current_pixel, t_zone)) {
......@@ -75,6 +78,7 @@ void addPixelToSelectedZone(Image *t_img, int64_t t_idx, Zone *t_zone) {
}
current_pixel->visited = 1;
}
/* left limit */
for (left_limit = t_idx; left_limit - (y - 1) * (int64_t)t_img->sizeX >= 0;
--left_limit) {
current_pixel = darrayGet(t_img->pixels, (size_t)left_limit);
......@@ -86,9 +90,11 @@ void addPixelToSelectedZone(Image *t_img, int64_t t_idx, Zone *t_zone) {
darrayPushBack(t_zone->segments,
newSegment((uint32_t)right_limit, (uint32_t)left_limit));
/* for each pixel of the segment, test the pixel above */
for (; left_limit <= right_limit; ++left_limit) {
addPixelToSelectedZone(t_img, t_idx + t_img->sizeX, t_zone);
}
/* for each pixel of the segment, test the pixel below */
for (; left_limit <= right_limit; ++left_limit) {
addPixelToSelectedZone(t_img, t_idx - t_img->sizeX, t_zone);
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment