コード例 #1
0
void CSeq_interval::SetPartialStop(bool val, ESeqLocExtremes ext)
{
    if (val != IsPartialStop(ext)) {
        if (val) {
            if (ext == eExtreme_Biological  &&  x_IsMinusStrand()) {
                SetFuzz_from().SetLim(CInt_fuzz::eLim_lt);
            } else {
                SetFuzz_to().SetLim(CInt_fuzz::eLim_gt);
            }
        } else {
            if (ext == eExtreme_Biological  &&  x_IsMinusStrand()) {
                ResetFuzz_from();
            } else {
                ResetFuzz_to();
            }
        }
    }
    _ASSERT(val == IsPartialStop(ext));
}
コード例 #2
0
void CPacked_seqpnt::SetPartialStop(bool val, ESeqLocExtremes ext)
{
    if (val == IsPartialStop(ext)) {
        return;
    }

    if (val) {
        CInt_fuzz::TLim lim = 
            (ext == eExtreme_Biological  &&  x_IsMinusStrand()) ?
                CInt_fuzz::eLim_lt : CInt_fuzz::eLim_gt;

        SetFuzz().SetLim(lim);
    } else {
        ResetFuzz();
    }
}