#ifndef ATOM_CARTESIAN_COORDINATES_H
#define ATOM_CARTESIAN_COORDINATES_H

#ifndef PARAMETERS_H
#include "Parameters.h"
#endif

#ifndef DBC_H
#include "DbC.h"
#endif

namespace MM
{
class Atom;
class Atom_group;

class Atom_cartesian_coordinates : protected DbC, public Parameters
{
public:    
    Atom_cartesian_coordinates (Atom_group & atoms);

    /*virtual int             parameters_size    () const;
    virtual void            parameters_first   () const;
    virtual void            parameters_next    () const;
    virtual bool            parameters_is_valid() const;
    virtual double          parameters_current () const;

    virtual void            parameters_add_to_current(double value);
    virtual void            parameters_set_to_current(double value);
//*/
    //fix  to new:
    /////////////////////////////////////////////////////////////////////////
    
    virtual int             size  () const ;
    virtual double          value (int i) const;
    virtual void            set   (double value, int i);
    virtual void            add   (double value, int i);

private:
    Atom_group &            atoms_;
    mutable int             coord_;
};

}//MM

#endif //ATOM_CARTESIAN_COORDINATES_H
