/** ** Copyright (c) 2010 Illumina, Inc. ** ** This software is covered by the "Illumina Genome Analyzer Software ** License Agreement" and the "Illumina Source Code License Agreement", ** and certain third party copyright/licenses, and any user of this ** source file is bound by the terms therein (see accompanying files ** Illumina_Genome_Analyzer_Software_License_Agreement.pdf and ** Illumina_Source_Code_License_Agreement.pdf and third party ** copyright/license notices). ** ** This file is part of the Consensus Assessment of Sequence And VAriation ** (CASAVA) software package. ** ** \file RelOrient.hh ** ** \brief Encapsulation of the concept of a read pair relative orientation. ** ** Encapsulation of the concept of a read pair relative orientation. ** ** \author Richard Shaw **/ /*****************************************************************************/ #ifndef REL_ORIENT_HH #define REL_ORIENT_HH /*****************************************************************************/ #include #include "common/Alignment.hh" /*****************************************************************************/ namespace casava { namespace common { /*****************************************************************************/ class RelOrient { friend std::ostream& operator<<(std::ostream& ostrm, const RelOrient& relOrient); public: typedef enum { Fm = 0, Fp = 1, Rm = 2, Rp = 3 } RelOrientVal; RelOrient(); RelOrient(const std::string& relOrientStr); RelOrient(const long read1Pos, const Match::Strand& read1Strand, const long read2Pos, const Match::Strand& read2Strand); void operator=(const RelOrient& relOrient); bool operator==(const RelOrient& relOrient) const; RelOrientVal operator()() { return myVal; } const std::string string() const; private: RelOrientVal myVal; }; /*****************************************************************************/ std::ostream& operator<<(std::ostream& ostrm, const RelOrient& relOrient); /*****************************************************************************/ } // namespace common } // namespace casava /*****************************************************************************/ #endif // REL_ORIENT_HH /*****************************************************************************/