mirror of https://github.com/CGAL/cgal
monsterous ifs
This commit is contained in:
parent
407aa15da8
commit
3c1079c43b
|
|
@ -335,8 +335,8 @@ bool Hot_pixel<Traits_>::intersect_left(const Segment_2 & seg,
|
||||||
Comparison_result c_target = compare_y(construct_vertex(seg, 1), p_up);
|
Comparison_result c_target = compare_y(construct_vertex(seg, 1), p_up);
|
||||||
Comparison_result c_source = compare_y(construct_vertex(seg, 0), p_up);
|
Comparison_result c_source = compare_y(construct_vertex(seg, 0), p_up);
|
||||||
|
|
||||||
return(c_p != EQUAL || seg_dir == SEG_UP_LEFT && c_source != EQUAL ||
|
return(c_p != EQUAL || (seg_dir == SEG_UP_LEFT && c_source != EQUAL) ||
|
||||||
seg_dir == SEG_DOWN_RIGHT && c_target != EQUAL);
|
(seg_dir == SEG_DOWN_RIGHT && c_target != EQUAL));
|
||||||
} else if (assign(s,result))
|
} else if (assign(s,result))
|
||||||
return(true);
|
return(true);
|
||||||
else
|
else
|
||||||
|
|
@ -372,8 +372,8 @@ bool Hot_pixel<Traits_>::intersect_right(const Segment_2 & seg,
|
||||||
Comparison_result c4 = compare_y(trg, p_up);
|
Comparison_result c4 = compare_y(trg, p_up);
|
||||||
|
|
||||||
if (c1 == EQUAL)
|
if (c1 == EQUAL)
|
||||||
return (seg_dir == SEG_UP_RIGHT && c3 != EQUAL ||
|
return ((seg_dir == SEG_UP_RIGHT && c3 != EQUAL) ||
|
||||||
seg_dir == SEG_DOWN_LEFT && c4 != EQUAL);
|
(seg_dir == SEG_DOWN_LEFT && c4 != EQUAL));
|
||||||
else if (c2 == EQUAL)
|
else if (c2 == EQUAL)
|
||||||
return false;// was checked
|
return false;// was checked
|
||||||
|
|
||||||
|
|
@ -381,10 +381,10 @@ bool Hot_pixel<Traits_>::intersect_right(const Segment_2 & seg,
|
||||||
Comparison_result c_target = compare_x(p_right, trg);
|
Comparison_result c_target = compare_x(p_right, trg);
|
||||||
Comparison_result c_source = compare_x(p_right, src);
|
Comparison_result c_source = compare_x(p_right, src);
|
||||||
|
|
||||||
return ((seg_dir == SEG_LEFT || seg_dir == SEG_DOWN_LEFT ||
|
return (((seg_dir == SEG_LEFT || seg_dir == SEG_DOWN_LEFT ||
|
||||||
seg_dir == SEG_UP_LEFT) && c_target != EQUAL ||
|
seg_dir == SEG_UP_LEFT) && c_target != EQUAL) ||
|
||||||
(seg_dir == SEG_RIGHT || seg_dir == SEG_DOWN_RIGHT ||
|
((seg_dir == SEG_RIGHT || seg_dir == SEG_DOWN_RIGHT ||
|
||||||
seg_dir == SEG_UP_RIGHT) && c_source != EQUAL);
|
seg_dir == SEG_UP_RIGHT) && c_source != EQUAL));
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
@ -411,9 +411,8 @@ bool Hot_pixel<Traits_>::intersect_bot(const Segment_2 & seg,
|
||||||
Comparison_result c_target = compare_x(construct_vertex(seg, 1), p_right);
|
Comparison_result c_target = compare_x(construct_vertex(seg, 1), p_right);
|
||||||
Comparison_result c_source = compare_x(construct_vertex(seg, 0), p_right);
|
Comparison_result c_source = compare_x(construct_vertex(seg, 0), p_right);
|
||||||
|
|
||||||
return(c_p != EQUAL || seg_dir == SEG_UP_LEFT &&
|
return(c_p != EQUAL || (seg_dir == SEG_UP_LEFT && c_target != EQUAL) ||
|
||||||
c_target != EQUAL || seg_dir == SEG_DOWN_RIGHT &&
|
(seg_dir == SEG_DOWN_RIGHT && c_source != EQUAL));
|
||||||
c_source != EQUAL);
|
|
||||||
} else if (assign(s,result))
|
} else if (assign(s,result))
|
||||||
return(true);
|
return(true);
|
||||||
else
|
else
|
||||||
|
|
@ -450,10 +449,10 @@ bool Hot_pixel<Traits_>::intersect_top(const Segment_2 & seg,
|
||||||
if (c1 == EQUAL || c2 == EQUAL)
|
if (c1 == EQUAL || c2 == EQUAL)
|
||||||
return(false);// were checked
|
return(false);// were checked
|
||||||
else
|
else
|
||||||
return((seg_dir == SEG_DOWN || seg_dir == SEG_DOWN_LEFT ||
|
return(((seg_dir == SEG_DOWN || seg_dir == SEG_DOWN_LEFT ||
|
||||||
seg_dir == SEG_DOWN_RIGHT) && c3 != EQUAL ||
|
seg_dir == SEG_DOWN_RIGHT) && c3 != EQUAL) ||
|
||||||
(seg_dir == SEG_UP || seg_dir == SEG_UP_LEFT ||
|
((seg_dir == SEG_UP || seg_dir == SEG_UP_LEFT ||
|
||||||
seg_dir == SEG_UP_RIGHT) && c4 != EQUAL);
|
seg_dir == SEG_UP_RIGHT) && c4 != EQUAL));
|
||||||
}
|
}
|
||||||
return(false);
|
return(false);
|
||||||
}
|
}
|
||||||
|
|
@ -503,17 +502,18 @@ bool Hot_pixel_dir_cmp<Traits_>::operator ()(const Hot_pixel * h1,
|
||||||
SEG_Direction seg_dir = h1->get_direction();
|
SEG_Direction seg_dir = h1->get_direction();
|
||||||
|
|
||||||
// Point segment intersects only one pixel, thus ignored
|
// Point segment intersects only one pixel, thus ignored
|
||||||
return(seg_dir == SEG_UP_RIGHT &&
|
return((seg_dir == SEG_UP_RIGHT && (cx == SMALLER || (cx == EQUAL &&
|
||||||
(cx == SMALLER || cx == EQUAL &&
|
cy == SMALLER))) ||
|
||||||
cy == SMALLER) || seg_dir == SEG_UP_LEFT &&
|
(seg_dir == SEG_UP_LEFT && (cx == LARGER || (cx == EQUAL &&
|
||||||
(cx == LARGER ||
|
cy == SMALLER))) ||
|
||||||
cx == EQUAL && cy == SMALLER) || seg_dir == SEG_DOWN_RIGHT &&
|
(seg_dir == SEG_DOWN_RIGHT && (cx == SMALLER || (cx == EQUAL &&
|
||||||
(cx == SMALLER || cx == EQUAL && cy == LARGER) ||
|
cy == LARGER))) ||
|
||||||
seg_dir == SEG_DOWN_LEFT &&
|
(seg_dir == SEG_DOWN_LEFT && (cx == LARGER || (cx == EQUAL &&
|
||||||
(cx == LARGER || cx == EQUAL &&
|
cy == LARGER))) ||
|
||||||
cy == LARGER) || seg_dir == SEG_UP && cy == SMALLER ||
|
(seg_dir == SEG_UP && cy == SMALLER) ||
|
||||||
seg_dir == SEG_DOWN && cy == LARGER || seg_dir == SEG_LEFT &&
|
(seg_dir == SEG_DOWN && cy == LARGER) ||
|
||||||
cx == LARGER || seg_dir == SEG_RIGHT && cx == SMALLER);
|
(seg_dir == SEG_LEFT && cx == LARGER) ||
|
||||||
|
(seg_dir == SEG_RIGHT && cx == SMALLER));
|
||||||
}
|
}
|
||||||
|
|
||||||
/*! */
|
/*! */
|
||||||
|
|
|
||||||
|
|
@ -174,8 +174,8 @@ private:
|
||||||
|
|
||||||
// force the vector to [0-90)
|
// force the vector to [0-90)
|
||||||
Vector_2 v(construct_vertex(seg, 0), construct_vertex(seg, 1));
|
Vector_2 v(construct_vertex(seg, 0), construct_vertex(seg, 1));
|
||||||
if (cx == EQUAL || cx == LARGER && cy == SMALLER ||
|
if (cx == EQUAL || (cx == LARGER && cy == SMALLER) ||
|
||||||
cx == SMALLER && cy == LARGER)
|
(cx == SMALLER && cy == LARGER))
|
||||||
v = v.perpendicular(RIGHT_TURN);
|
v = v.perpendicular(RIGHT_TURN);
|
||||||
|
|
||||||
Direction_2 d(v.direction());
|
Direction_2 d(v.direction());
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue