return SMALLER in linf_refine, only for h/v lines

Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
This commit is contained in:
Panagiotis Cheilaris 2013-09-12 16:53:04 +02:00
parent b65c265d51
commit 9208ebfbd7
1 changed files with 46 additions and 30 deletions

View File

@ -1061,6 +1061,10 @@ private:
{ {
bool is_l_h_or_v = is_line_h_or_v(l); bool is_l_h_or_v = is_line_h_or_v(l);
if (not is_l_h_or_v) {
return EQUAL;
}
FT difxvl = vv.x() - lref.x(); FT difxvl = vv.x() - lref.x();
FT difyvl = vv.y() - lref.y(); FT difyvl = vv.y() - lref.y();
FT absdifxvl = CGAL::abs(difxvl); FT absdifxvl = CGAL::abs(difxvl);
@ -1093,6 +1097,9 @@ private:
FT absdifxvp = CGAL::abs(difxvp); FT absdifxvp = CGAL::abs(difxvp);
FT absdifyvp = CGAL::abs(difyvp); FT absdifyvp = CGAL::abs(difyvp);
Comparison_result cmppabsxy = CGAL::compare(absdifxvp, absdifyvp); Comparison_result cmppabsxy = CGAL::compare(absdifxvp, absdifyvp);
CGAL_SDG_DEBUG(std::cout << "debug linf_refine cmplabsxy = "
<< cmplabsxy << " cmppabsxy=" << cmppabsxy << std::endl;);
if (cmplabsxy != EQUAL) {
if (not ( (cmplabsxy == SMALLER) and (cmppabsxy == SMALLER) )) if (not ( (cmplabsxy == SMALLER) and (cmppabsxy == SMALLER) ))
{ {
if (CGAL::compare(difxvl, difxvp) == EQUAL) { if (CGAL::compare(difxvl, difxvp) == EQUAL) {
@ -1106,6 +1113,7 @@ private:
compare_p = CGAL::compare(absdifxvl, absdifxvp); compare_p = CGAL::compare(absdifxvl, absdifxvp);
} }
} }
}
} else { } else {
if (is_l_h_or_v) { if (is_l_h_or_v) {
Oriented_side oslpsrc = Oriented_side oslpsrc =
@ -1127,6 +1135,9 @@ private:
FT absdifxvq = CGAL::abs(difxvq); FT absdifxvq = CGAL::abs(difxvq);
FT absdifyvq = CGAL::abs(difyvq); FT absdifyvq = CGAL::abs(difyvq);
Comparison_result cmpqabsxy = CGAL::compare(absdifxvq, absdifyvq); Comparison_result cmpqabsxy = CGAL::compare(absdifxvq, absdifyvq);
CGAL_SDG_DEBUG(std::cout << "debug linf_refine cmplabsxy = "
<< cmplabsxy << " cmpqabsxy=" << cmpqabsxy << std::endl;);
if (cmplabsxy != EQUAL) {
if (not ( (cmplabsxy == SMALLER) and (cmpqabsxy == SMALLER) )) if (not ( (cmplabsxy == SMALLER) and (cmpqabsxy == SMALLER) ))
{ {
if (CGAL::compare(difxvl, difxvq) == EQUAL) { if (CGAL::compare(difxvl, difxvq) == EQUAL) {
@ -1140,6 +1151,7 @@ private:
compare_q = CGAL::compare(absdifxvl, absdifxvq); compare_q = CGAL::compare(absdifxvl, absdifxvq);
} }
} }
}
} else { } else {
if (is_l_h_or_v) { if (is_l_h_or_v) {
Oriented_side oslqsrc = Oriented_side oslqsrc =
@ -1161,6 +1173,9 @@ private:
FT absdifxvr = CGAL::abs(difxvr); FT absdifxvr = CGAL::abs(difxvr);
FT absdifyvr = CGAL::abs(difyvr); FT absdifyvr = CGAL::abs(difyvr);
Comparison_result cmprabsxy = CGAL::compare(absdifxvr, absdifyvr); Comparison_result cmprabsxy = CGAL::compare(absdifxvr, absdifyvr);
CGAL_SDG_DEBUG(std::cout << "debug linf_refine cmplabsxy = "
<< cmplabsxy << " cmprabsxy=" << cmprabsxy << std::endl;);
if (cmplabsxy != EQUAL) {
if (not ( (cmplabsxy == SMALLER) and (cmprabsxy == SMALLER) )) if (not ( (cmplabsxy == SMALLER) and (cmprabsxy == SMALLER) ))
{ {
if (CGAL::compare(difxvl, difxvr) == EQUAL) { if (CGAL::compare(difxvl, difxvr) == EQUAL) {
@ -1174,6 +1189,7 @@ private:
compare_r = CGAL::compare(absdifxvl, absdifxvr); compare_r = CGAL::compare(absdifxvl, absdifxvr);
} }
} }
}
} else { } else {
if (is_l_h_or_v) { if (is_l_h_or_v) {
Oriented_side oslrsrc = Oriented_side oslrsrc =