# Spec SimpleShape
A variable length ungapped shape (also called q-gram or k-mer).

Extends | Shape
All Extended | Shape
Defined in | <seqan/index.h>
Signature | `template <typename TValue> class Shape<TValue, SimpleShape>;`

## Template Parameters

`TValue` | The Value type of the string the shape is applied to (e.g. `Dna`).

## Member Function Overview

- `Shape::Shape();, Shape::Shape(shape);, Shape::Shape(q);`
  Constructor.

## Interface Function Overview

### Interface Functions Inherited From Shape

- `hash`
- `hash2`
- `hash2Next`
- `hash2Upper`
- `hashInit`
- `hashNext`
- `hashUpper`
- `length`
- `resize`
- `shapeToString`
- `stringToShape`
- `unhash`
- `value`
- `weight`

## Interface Metafunction Overview

### Interface Metafunctions Inherited From Shape

- `Host`
- `LENGTH`
- `Size`
- `Value`
- `ValueSize`
- `WEIGHT`

## Detailed Description

### Remarks

A SimpleShape must be resized first to a valid length. To do so, call resize.

## See Also

- UngappedShape

## Member Functions Detail

### `Shape::Shape(); Shape::Shape(shape); Shape::Shape(q);`

Constructor.

#### Parameters

`shape` | Other Shape object (copy constructor).
`q` | Length of the ungapped q-gram (IntegerConcept).

#### Data Races

If not stated otherwise, concurrent invocation is not guaranteed to be thread-safe.

#### Dox Sources

    /*!
     * @class SimpleShape
     *
     * @extends Shape
     *
     * @headerfile <seqan/index.h>
     *
     * @brief A variable length ungapped shape (also called q-gram or k-mer).
     *
     * @signature template <typename TValue> class Shape<TValue, SimpleShape>;
     *
     * @tparam TValue The @link Value @endlink type of the string the shape is
     *                applied to (e.g. <tt>Dna</tt>).
     *
     * @section Remarks
     *
     * A SimpleShape must be resized first to a valid length. To do so, call @link
     * Shape#resize @endlink.
     *
     * @see UngappedShape
     *
     * @fn SimpleShape::Shape
     *
     * @brief Constructor.
     *
     * @signature Shape::Shape();
     * @signature Shape::Shape(shape);
     * @signature Shape::Shape(q);
     *
     * @param[in] shape Other Shape object (copy constructor).
     * @param[in] q Length of the ungapped q-gram (@link IntegerConcept @endlink).
     */