bool OVERSKETCH::match_substrip(CPIXEL_list& pts, CBvert_list& chain, EdgeStrip& strip) { err_adv(debug, "OVERSKETCH::match_substrip:"); if (!chain.forms_chain()) { err_adv(debug, " non-chain"); return false; } const double MAX_DIST = 8; PIXEL_list chain_path(chain.wpts()); int k0 = get_near_index(chain_path, pts.front(), MAX_DIST); int k1 = get_near_index(chain_path, pts.back(), MAX_DIST); if (!(0 <= k0 && k0 < (int)chain.size() && 0 <= k1 && k1 < (int)chain.size())) { err_adv(debug, " bad k0/k1: %d/%d", k0, k1); return false; } if (k0 == k1) { err_adv(debug, " bad k0/k1: %d == %d", k0, k1); return false; } make_strip(chain, k0, k1, strip); return true; }