// 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; // true = die present

    // static double m_dSizeX; // die size x in mm
    // static double m_dSizeY; // die size y in mm
    // static double m_dGrapX; // die grap x in mm
    // static double m_dGrapY; // die grap y in mm

    double m_dSizeX; // die size x in mm
    double m_dSizeY; // die size y in mm
    double m_dGrapX; // die grap x in mm
    double m_dGrapY; // die grap y in mm

    int m_iResult; // 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();

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

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

    ////  set die size x in mm. Returns true if successful
    //    static bool SetSizeX(double dSizeX);
    //
    ////  get die size x in mm
    //    static double GetSizeX();
    //
    ////  set die size y in mm. Returns true if successful
    //    static bool SetSizeY(double dSizeY);
    //
    ////  get die size y in mm
    //    static double GetSizeY();
    //
    ////  set die grap x in mm. Returns true if successful
    //    static bool SetGrapX(double dGrapX);
    //
    ////  get die grap x in mm
    //    static double GetGrapX();
    //
    ////  set die grap y in mm. Returns true if successful
    //    static bool SetGrapY(double dGrapY);
    //
    ////  get die grap y in mm
    //    static double GetGrapY();

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

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

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

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

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

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

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

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

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

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