⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 std_seg.cpp

📁 ncbi源码
💻 CPP
字号:
/* * =========================================================================== * PRODUCTION $Log: Std_seg.cpp,v $ * PRODUCTION Revision 1000.1  2004/06/01 19:33:42  gouriano * PRODUCTION PRODUCTION: UPGRADED [GCC34_MSVC7] Dev-tree R1.2 * PRODUCTION * =========================================================================== *//* $Id: Std_seg.cpp,v 1000.1 2004/06/01 19:33:42 gouriano Exp $ * =========================================================================== * *                            PUBLIC DOMAIN NOTICE *               National Center for Biotechnology Information * *  This software/database is a "United States Government Work" under the *  terms of the United States Copyright Act.  It was written as part of *  the author's official duties as a United States Government employee and *  thus cannot be copyrighted.  This software/database is freely available *  to the public for use. The National Library of Medicine and the U.S. *  Government have not placed any restriction on its use or reproduction. * *  Although all reasonable efforts have been taken to ensure the accuracy *  and reliability of the software and data, the NLM and the U.S. *  Government do not and cannot warrant the performance or results that *  may be obtained by using this software or data. The NLM and the U.S. *  Government disclaim all warranties, express or implied, including *  warranties of performance, merchantability or fitness for any particular *  purpose. * *  Please cite the author in any work or product based on this material. * * =========================================================================== * * Author:  ....... * * File Description: *   ....... * * Remark: *   This code was originally generated by application DATATOOL *   using specifications from the data definition file *   'seqalign.asn'. */// standard includes// generated includes#include <ncbi_pch.hpp>#include <objects/seqalign/Std_seg.hpp>// generated classesBEGIN_NCBI_SCOPEBEGIN_objects_SCOPE // namespace ncbi::objects::// destructorCStd_seg::~CStd_seg(void){}CStd_seg::TDim CStd_seg::CheckNumRows() const{    const size_t& dim = GetDim();    if (dim != GetLoc().size()) {        NCBI_THROW(CSeqalignException, eInvalidAlignment,                   "CStd_seg::CheckNumRows():"                   " loc.size is inconsistent with dim");    }    if (IsSetIds()  &&  dim != GetIds().size()) {        NCBI_THROW(CSeqalignException, eInvalidAlignment,                   "CStd_seg::CheckNumRows():"                   " ids.size is inconsistent with dim");    }    return dim;}TSignedSeqPos CStd_seg::GetSeqStart(TDim row) const{    TDim row_i = 0;    ITERATE (CStd_seg::TLoc, i, GetLoc()) {        if (row_i++ == row) {            if ((*i)->IsInt()) {                return (*i)->GetInt().GetFrom();            } else {                return -1;            }        }    }    if (row < 0  ||  row >= GetDim()) {        NCBI_THROW(CSeqalignException, eInvalidRowNumber,                   "CStd_seg::GetSeqStart():"                   " Invalid row number");    }    NCBI_THROW(CSeqalignException, eInvalidAlignment,               "CStd_seg::GetSeqStart():"               " loc.size is inconsistent with dim");}TSignedSeqPos CStd_seg::GetSeqStop(TDim row) const{    TDim dim = 0;    ITERATE (CStd_seg::TLoc, i, GetLoc()) {        if (dim++ == row) {            if ((*i)->IsInt()) {                return (*i)->GetInt().GetTo();            } else {                return -1;            }        }    }    if (row < 0  ||  row >= GetDim()) {        NCBI_THROW(CSeqalignException, eInvalidRowNumber,                   "CStd_seg::GetSeqStop():"                   " Invalid row number");    }    NCBI_THROW(CSeqalignException, eInvalidAlignment,               "CStd_seg::GetSeqStop():"               " loc.size is inconsistent with dim");}void CStd_seg::Validate(bool full_test) const{    CheckNumRows();}CRange<TSignedSeqPos> CStd_seg::GetSeqRange(TDim row) const{    TDim dim = 0;    ITERATE (CStd_seg::TLoc, i, GetLoc()) {        if (dim++ == row) {            if ((*i)->IsInt()) {                const CSeq_interval& interval = (*i)->GetInt();                return CRange<TSignedSeqPos>                    (interval.GetFrom(), interval.GetTo());            } else {                return CRange<TSignedSeqPos>(-1, -1);            }        }    }    if (row < 0  ||  row >= GetDim()) {        NCBI_THROW(CSeqalignException, eInvalidRowNumber,                   "CStd_seg::GetSeqRange():"                   " Invalid row number");    }    NCBI_THROW(CSeqalignException, eInvalidAlignment,               "CStd_seg::GetSeqRange():"               " loc.size is inconsistent with dim");}END_objects_SCOPE // namespace ncbi::objects::END_NCBI_SCOPE/** ===========================================================================** $Log: Std_seg.cpp,v $* Revision 1000.1  2004/06/01 19:33:42  gouriano* PRODUCTION: UPGRADED [GCC34_MSVC7] Dev-tree R1.2** Revision 1.2  2004/05/19 17:25:43  gorelenk* Added include of PCH - ncbi_pch.hpp** Revision 1.1  2003/09/16 16:17:12  todorov* Added validation methods. Added seq range methods*** ===========================================================================*//* Original file checksum: lines: 64, chars: 1879, CRC32: d01e569e */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -