#ifndef MM_ENERGY_CALCULATION_H
#define MM_ENERGY_CALCULATION_H

#ifndef FUNCTION_H
#include "Function.h"
#endif

#ifndef MM_ENERGY_H
#include "MM_energy.h"
#endif

#ifndef OWN_H
#include "Own.h"
#endif

namespace MM
{
class Bond;
class Atom;
class Atom_group;

template <class T> class Array_of;

class MM_energy_calculation :  public Function, protected DbC
{
    Atom_group              & atoms_;
    Array_of <Bond>			& bonds_;
//    MM_energy    & energy_;
    Own <MM_energy>     energy_;

public:
//    MM_energy_calculation( Atoms & atoms, Bonds & Bonds, MM_energy & energy );
    MM_energy_calculation (Atom_group & atoms, Array_of <Bond> & bonds);

    virtual double          value () const;
};

}//MM

#endif //MM_ENERGY_CALCULATION_H
