📄 dense_seg.hpp
字号:
/* * =========================================================================== * PRODUCTION $Log: Dense_seg.hpp,v $ * PRODUCTION Revision 1000.3 2004/06/01 19:30:36 gouriano * PRODUCTION PRODUCTION: UPGRADED [GCC34_MSVC7] Dev-tree R1.8 * PRODUCTION * =========================================================================== *//* $Id: Dense_seg.hpp,v 1000.3 2004/06/01 19:30:36 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'. */#ifndef OBJECTS_SEQALIGN_DENSE_SEG_HPP#define OBJECTS_SEQALIGN_DENSE_SEG_HPP// generated includes#include <objects/seqalign/Dense_seg_.hpp>#include <objects/seqalign/seqalign_exception.hpp>#include <util/range.hpp>// generated classesBEGIN_NCBI_SCOPEBEGIN_objects_SCOPE // namespace ncbi::objects::// forward declarationsclass CSeq_loc;class NCBI_SEQALIGN_EXPORT CDense_seg : public CDense_seg_Base{ typedef CDense_seg_Base Tparent;public: // constructor CDense_seg(void); // destructor ~CDense_seg(void); typedef vector<int> TWidths; // optional // typedef vector<int> TWidths bool IsSetWidths(void) const; bool CanGetWidths(void) const; void ResetWidths(void); const TWidths& GetWidths(void) const; TWidths& SetWidths(void); // Validators TDim CheckNumRows(void) const; TNumseg CheckNumSegs(void) const; void Validate (bool full_test = false) const; // GetSeqRange CRange<TSeqPos> GetSeqRange(TDim row) const; TSeqPos GetSeqStart(TDim row) const; TSeqPos GetSeqStop(TDim row) const; /// Reverse the segments' orientation void Reverse(void); /// Swap two rows (changing *order*, not content) void SwapRows(TDim row1, TDim row2); /// Remap row coords according to a given seq-loc /// Optionally, ignore the strand of the loc void RemapToLoc(TDim row, const CSeq_loc& loc, bool ignore_strand = false);private: // Prohibit copy constructor and assignment operator CDense_seg(const CDense_seg& value); CDense_seg& operator=(const CDense_seg& value); // data Uint4 m_set_State1[1]; TWidths m_Widths;};/////////////////// CDense_seg inline methods// constructorinlineCDense_seg::CDense_seg(void){ memset(m_set_State1,0,sizeof(m_set_State1));}inlinebool CDense_seg::IsSetWidths(void) const{ return ((m_set_State1[0] & 0x3) != 0);}inlinebool CDense_seg::CanGetWidths(void) const{ return true;}inlineconst vector<int>& CDense_seg::GetWidths(void) const{ return m_Widths;}inlinevector<int>& CDense_seg::SetWidths(void){ m_set_State1[0] |= 0x1; return m_Widths;}inlinevoid CDense_seg::ResetWidths(void){ m_Widths.clear(); m_set_State1[0] &= ~0x3;}inlineCRange<TSeqPos> CDense_seg::GetSeqRange(TDim row) const{ return CRange<TSeqPos>(GetSeqStart(row), GetSeqStop(row));}inlineCDense_seg::TDim CDense_seg::CheckNumRows() const{ const size_t& dim = GetDim(); if (dim != GetIds().size()) { NCBI_THROW(CSeqalignException, eInvalidAlignment, "CDense_seg::CheckNumRows()" " ids.size is inconsistent with dim"); } return dim;}/////////////////// end of CDense_seg inline methodsEND_objects_SCOPE // namespace ncbi::objects::END_NCBI_SCOPE/** ===========================================================================** $Log: Dense_seg.hpp,v $* Revision 1000.3 2004/06/01 19:30:36 gouriano* PRODUCTION: UPGRADED [GCC34_MSVC7] Dev-tree R1.8** Revision 1.8 2004/05/06 18:23:35 todorov* + optional ignore_strand param to RemapToLoc** Revision 1.7 2004/04/09 14:31:35 dicuccio* Back out previous commit - don't automatically set bit 1 and 2 in Set()** Revision 1.6 2004/04/09 14:26:46 dicuccio* FIxed bug in SetWidths(): use the correct bit to indicate set state** Revision 1.5 2003/11/04 14:46:16 todorov* +RemapToLoc** Revision 1.4 2003/09/16 15:31:59 todorov* Added validation methods. Added seq range methods** Revision 1.3 2003/08/26 20:28:38 johnson* added 'SwapRows' method** Revision 1.2 2003/08/14 19:52:53 todorov* Added m_Widths to support nuc2prot aligns** Revision 1.1 2003/08/13 18:11:35 johnson* added 'Reverse' method*** ===========================================================================*/#endif // OBJECTS_SEQALIGN_DENSE_SEG_HPP/* Original file checksum: lines: 93, chars: 2426, CRC32: 48766ca1 */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -