'''
Knot
----

Class for dealing with curves as knots. :class:`Knot` provides many
methods for topological manipulation and calculations.

API documentation
~~~~~~~~~~~~~~~~~

'''

from __future__ import division

import numpy as n
import numpy as np

from pyknotid.spacecurves.spacecurve import SpaceCurve

__all__ = ('Knot', )


class Knot(SpaceCurve):
    '''
    Class for holding the vertices of a single line, providing helper
    methods for convenient manipulation and analysis.

    A :class:`Knot` just represents a single space curve, it may be
    topologically trivial!

    This class deliberately combines methods to do many different kinds
    of measurements or manipulations. Some of these are externally
    available through other modules in pyknotid - if so, this is usually
    indicated in the method docstrings.

    Parameters
    ----------
    points : array-like
        The 3d points (vertices) of a piecewise
        linear curve representation
