#pragma once

#include <string>
#include <glm.hpp>

/*
   Class: DataEntry

     Implements a class holding a value, a name and a color.
*/
class DataEntry {
  public:
    /*
       Constructor: DataEntry

         Initializes the object.

       Parameters:

         sName - Name of the data entry.
         dValue - Value of the data entry.
         fRed - Red value of the data entry color.
         fGreen - Green value of the data entry color.
         fBlue - Blue value of the data entry color.
    */
    DataEntry(std::string sName, double dValue, float fRed, float fGreen, float fBlue);

    /*
       Destructor: ~DataEntry

         Releases all allocated resources.
    */
    ~DataEntry();


    /*
       Function: GetName

         Returns the name of the data entry.

       Returns:

         The name of the data entry.
    */
    std::string GetName();

    /*
       Function: GetValue

         Returns the value of the data entry.

       Returns:

         The value of the data entry.
    */
    double GetValue();

    /*
       Function: GetColor

         Returns the color of the data entry.

       Returns:

         The color of the data entry.
    */
    glm::vec4 GetColor();

  private:
    std::string sName;
    double dValue;
    glm::vec4 vColor;
};