// Die.h: interface for the CDie class.
//
//////////////////////////////////////////////////////////////////////
#pragma once

#include "DllDefines.h"

class MCCTRDLLCLASS CDie
{
public:
    //  default constructor
    CDie();

    //  default destructor
    virtual ~CDie();

private:
    // Attributes
    bool m_bExist{ false }; // true = die present

    double m_dSizeX{ 0. }; // die size x in mm
    double m_dSizeY{ 0. }; // die size y in mm
    double m_dGrapX{ 0. }; // die grap x in mm
    double m_dGrapY{ 0. }; // die grap y in mm

    int m_iResult{ 0 }; // store result of die

    char m_cBinCode{ ' ' }; // store bin code of die

public:
    //  set die present status
    void SetExist(bool bExist);

    //  check die present
    bool IsExist() const;

    //  set bin code of die
    void SetBinCode(char cBinCode);

    //  get the bin code of die
    char GetBinCode() const;

    //  set die size x in mm. Returns true if successful
    bool SetSizeX(double dSizeX);

    //  get die size x in mm
    double GetSizeX() const;

    //  set die size y in mm. Returns true if successful
    bool SetSizeY(double dSizeY);

    //  get die size y in mm
    double GetSizeY() const;

    //  set die grap x in mm. Returns true if successful
    bool SetGrapX(double dGrapX);

    //  get die grap x in mm
    double GetGrapX() const;

    //  set die grap y in mm. Returns true if successful
    bool SetGrapY(double dGrapY);

    //  get die grap y in mm
    double GetGrapY() const;

    //  set the result of die
    void SetResult(int iResult);

    //  get the result of die
    int GetResult() const;
};
