コード例 #1
0
// 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));
}
コード例 #2
0
// 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();
    }
}