# Spec ExactReversableFragment
A type for ungapped, pairwise segment matches that maybe in reverse orientation.

Extends | Fragment
All Extended | Fragment
Defined in | <seqan/align.h>
Signature | `template <[typename TSize[, typename TSpec]]> class Fragment<TSize, ExactReversableFragment<TSpec> >;`

## Template Parameters

`TSize` | The size type of the underlying sequence. Default: `Size<CharString>Type`.
`TSpec` | Specializing type. Default: `ExactFragment<>`.

## Member Function Overview

- `Fragment::Fragment();, Fragment::Fragment(seqID1, beg1, seqID2, beg2, l[, reversed]);`
  Constructor.

## Interface Function Overview

- `bool isReversed(frag);`
  Return whether a segment match is in reverse orientation.

### Interface Functions Inherited From Fragment

- `fragmentBegin`
- `fragmentLength`
- `label`
- `sequenceId`

## Detailed Description

Compared to the ExactFragment specialzing type of Fragment, a ExactReversableFragment stores an additional bool value to indicate whether a match is in reverse orientation or not.

## Member Functions Detail

### `Fragment::Fragment(); Fragment::Fragment(seqID1, beg1, seqID2, beg2, l[, reversed]);`

Constructor.

#### Parameters

`seqID1` | ID of the first sequence. Type: `TId`.
`beg1` | Begin position of segment match in first sequence. Type: `TSize`.
`seqID2` | ID of the second sequence. Type: `TId`.
`beg2` | Begin position of segment match in second sequence. Type: `TSize`.
`l` | The length of the segment match. Type: `TSize`.
`reversed` | A bool; `true` if the segments match in reverse orientation, `false` otherwise.

#### Data Races

Thread safety unknown!

## Interface Functions Detail

### `bool isReversed(frag);`

Return whether a segment match is in reverse orientation.

#### Parameters

`frag` | The Fragment to query for reverseness.

#### Returns

`bool` | `true` if the fragment is reversed and `false` otherwise.

#### Data Races

Thread safety unknown!

#### Dox Sources

    /*!
     * @class ExactReversableFragment
     *
     * @extends Fragment
     *
     * @headerfile <seqan/align.h>
     *
     * @brief A type for ungapped, pairwise segment matches that maybe in reverse
     *        orientation.
     *
     * @signature template <[typename TSize[, typename TSpec]]> class
     *            Fragment<TSize, ExactReversableFragment<TSpec> >;
     *
     * @tparam TSize The size type of the underlying sequence. Default:
     *               <tt>Size&lt;CharString&gt;Type</tt>.
     * @tparam TSpec Specializing type. Default: <tt>ExactFragment&lt;&gt;</tt>.
     *
     * Compared to the @link ExactFragment @endlink specialzing type of @link
     * Fragment @endlink, a @link ExactReversableFragment @endlink stores an
     * additional bool value to indicate whether a match is in reverse orientation
     * or not.
     *
     * @fn ExactReversableFragment::Fragment
     *
     * @brief Constructor.
     *
     * @signature Fragment::Fragment();
     * @signature Fragment::Fragment(seqID1, beg1, seqID2, beg2, l[, reversed]);
     *
     * @param[in] seqID1 ID of the first sequence. Type: <tt>TId</tt>.
     * @param[in] beg1 Begin position of segment match in first sequence. Type:
     *                 <tt>TSize</tt>.
     * @param[in] seqID2 ID of the second sequence. Type: <tt>TId</tt>.
     * @param[in] beg2 Begin position of segment match in second sequence. Type:
     *                 <tt>TSize</tt>.
     * @param[in] l The length of the segment match. Type: <tt>TSize</tt>.
     * @param[in] reversed A bool; <tt>true</tt> if the segments match in reverse
     *                     orientation, <tt>false</tt> otherwise.
     *
     * @fn ExactReversableFragment#isReversed
     *
     * @brief Return whether a segment match is in reverse orientation.
     *
     * @signature bool isReversed(frag);
     *
     * @param[in] frag The Fragment to query for reverseness.
     *
     * @return bool <tt>true</tt> if the fragment is reversed and <tt>false</tt>
     *              otherwise.
     */