// set / remove e_Lim fuzz on left (5') or right (3') end void CSeq_interval::SetPartialStart(bool val, ESeqLocExtremes ext) { if (val != IsPartialStart(ext)) { if (val) { if (ext == eExtreme_Biological && x_IsMinusStrand()) { SetFuzz_to().SetLim(CInt_fuzz::eLim_gt); } else { SetFuzz_from().SetLim(CInt_fuzz::eLim_lt); } } else { if (ext == eExtreme_Biological && x_IsMinusStrand()) { ResetFuzz_to(); } else { ResetFuzz_from(); } } } _ASSERT(val == IsPartialStart(ext)); }
// set / remove e_Lim fuzz on start or stop end void CPacked_seqpnt::SetPartialStart(bool val, ESeqLocExtremes ext) { if (val == IsPartialStart(ext)) { return; } if (val) { CInt_fuzz::TLim lim = (ext == eExtreme_Biological && x_IsMinusStrand()) ? CInt_fuzz::eLim_gt : CInt_fuzz::eLim_lt; SetFuzz().SetLim(lim); } else { ResetFuzz(); } }