本文整理汇总了C++中CConstRef::GetType方法的典型用法代码示例。如果您正苦于以下问题:C++ CConstRef::GetType方法的具体用法?C++ CConstRef::GetType怎么用?C++ CConstRef::GetType使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CConstRef
的用法示例。
在下文中一共展示了CConstRef::GetType方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: GetAlnChunks
string& CAlnVec::GetAlnSeqString(string& buffer,
TNumrow row,
const TSignedRange& aln_rng) const
{
string buff;
buffer.erase();
CSeqVector& seq_vec = x_GetSeqVector(row);
TSeqPos seq_vec_size = seq_vec.size();
// get the chunks which are aligned to seq on anchor
CRef<CAlnMap::CAlnChunkVec> chunk_vec =
GetAlnChunks(row, aln_rng, fSkipInserts | fSkipUnalignedGaps);
// for each chunk
for (int i=0; i<chunk_vec->size(); i++) {
CConstRef<CAlnMap::CAlnChunk> chunk = (*chunk_vec)[i];
if (chunk->GetType() & fSeq) {
// add the sequence string
if (IsPositiveStrand(row)) {
seq_vec.GetSeqData(chunk->GetRange().GetFrom(),
chunk->GetRange().GetTo() + 1,
buff);
} else {
seq_vec.GetSeqData(seq_vec_size - chunk->GetRange().GetTo() - 1,
seq_vec_size - chunk->GetRange().GetFrom(),
buff);
}
if (GetWidth(row) == 3) {
TranslateNAToAA(buff, buff, GetGenCode(row));
}
buffer += buff;
} else {
// add appropriate number of gap/end chars
const int n = chunk->GetAlnRange().GetLength();
char* ch_buff = new char[n+1];
char fill_ch;
if (chunk->GetType() & fNoSeqOnLeft ||
chunk->GetType() & fNoSeqOnRight) {
fill_ch = GetEndChar();
} else {
fill_ch = GetGapChar(row);
}
memset(ch_buff, fill_ch, n);
ch_buff[n] = 0;
buffer += ch_buff;
delete[] ch_buff;
}
}
return buffer;
}