#ifndef TITAN_PCBCAM_MATRIXLAYER_H
#define TITAN_PCBCAM_MATRIXLAYER_H
#include "../titanpcbcamglobal.h"
#include <QSharedDataPointer>
#include "./common.h"


class PcbCamMatrixLayerData;
class TITAN_PCBCAM_EXPORT PcbCamMatrixLayer
{
public:
    PcbCamMatrixLayer();
    PcbCamMatrixLayer(const PcbCamMatrixLayer &);
    PcbCamMatrixLayer &operator=(const PcbCamMatrixLayer &);
    ~PcbCamMatrixLayer();

    int id() const;
    void setId(int iId);

    int row() const;
    void setRow(int iRow);

    PcbCam::LayerContext context() const;
    void setContext(PcbCam::LayerContext iContext);

    QString type() const;
    void setType(const QString &iType);

    QString name() const;
    void setName(const QString &iName);

    QString oldName() const;
    void setOldName(const QString &iOldName);

    PcbCam::Polarity polarity() const;
    void setPolarity(PcbCam::Polarity iPolarity);

    QString startName() const;
    void setStartName(const QString iName);

    QString endName() const;
    void setEndName(const QString &iName);

private:
    QSharedDataPointer<PcbCamMatrixLayerData> d;
};


#endif // TITAN_PCBCAM_MATRIXLAYER_H