|
|
|
|
|
#pragma once
|
|
|
|
|
|
|
|
|
|
|
|
#include <QWidget>
|
|
|
|
|
|
#include <QGraphicsScene>
|
|
|
|
|
|
#include <QGraphicsView>
|
|
|
|
|
|
#include <QGraphicsRectItem>
|
|
|
|
|
|
#include <memory>
|
|
|
|
|
|
#include <vector>
|
|
|
|
|
|
#include <cmath>
|
|
|
|
|
|
#include <QDebug>
|
|
|
|
|
|
#include <QWheelEvent>
|
|
|
|
|
|
#include <QTransform>
|
|
|
|
|
|
#include "ui_MappingUI.h"
|
|
|
|
|
|
#include "mappingchart_global.h"
|
|
|
|
|
|
#include "MyQGraphicsRectItem.h"
|
|
|
|
|
|
#include <QGraphicsLineItem>
|
|
|
|
|
|
#include "global.h"
|
|
|
|
|
|
#include "RecipeAttrObj.h"
|
|
|
|
|
|
#include "MyQGraphicsEllipseItem.h"
|
|
|
|
|
|
#include "MyQGraphicsLineItem.h"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class MAPPINGCHART_EXPORT MappingUI : public QWidget
|
|
|
|
|
|
{
|
|
|
|
|
|
Q_OBJECT
|
|
|
|
|
|
enum Direct {
|
|
|
|
|
|
LEFT,
|
|
|
|
|
|
RIGHT,
|
|
|
|
|
|
UP,
|
|
|
|
|
|
DOWN
|
|
|
|
|
|
};
|
|
|
|
|
|
public:
|
|
|
|
|
|
MappingUI(QWidget *parent = Q_NULLPTR);
|
|
|
|
|
|
~MappingUI();
|
|
|
|
|
|
public:
|
|
|
|
|
|
void UseRecipeMappingAndGetCoord(RecipeAttrObj recipeObj, bool isShowDieText); //<2F><><EFBFBD><EFBFBD>recipe֮<65><D6AE><EFBFBD><EFBFBD><EFBFBD>Զ<EFBFBD>drawMapping,<2C>Ϳ<EFBFBD><CDBF><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE>Բ<EFBFBD><D4B2><EFBFBD><EFBFBD>
|
|
|
|
|
|
void SetLabelHide();
|
|
|
|
|
|
void SetMappingToInitStatus();
|
|
|
|
|
|
|
|
|
|
|
|
//<2F><>ȡ<EFBFBD><C8A1>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>die
|
|
|
|
|
|
void GetCurAreaAllDie(std::vector<std::shared_ptr<MyQGraphicsRectItem>>& outCurAreaDie);
|
|
|
|
|
|
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD>mappingͼ,<2C><><EFBFBD><EFBFBD><EFBFBD>Ѿ<EFBFBD><D1BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˵<EFBFBD>
|
|
|
|
|
|
void UpdateMappingArea(int areaIdX, int areaidY);
|
|
|
|
|
|
//diemark<72><6B><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ѿ<EFBFBD><D1BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˵<EFBFBD>
|
|
|
|
|
|
void DieMarkUIUpdateAlreadyMark();
|
|
|
|
|
|
|
|
|
|
|
|
void CommonClearSelectDie();
|
|
|
|
|
|
|
|
|
|
|
|
//<2F><><EFBFBD>ӱ<EFBFBD>ѡ<EFBFBD><D1A1><EFBFBD><EFBFBD>Die
|
|
|
|
|
|
void AddSelectDie(std::shared_ptr<MyQGraphicsRectItem>& selectDie);
|
|
|
|
|
|
|
|
|
|
|
|
private:
|
|
|
|
|
|
//<2F><>ͼ<EFBFBD>͵õ<CDB5><C3B5><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
void DrawMapping();
|
|
|
|
|
|
|
|
|
|
|
|
//<2F><>die<69><65><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
void LeftExtend(double firstX, double firstY);
|
|
|
|
|
|
|
|
|
|
|
|
//<2F><>die<69><65><EFBFBD>Ҳ<EFBFBD><D2B2><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
void RightExtend(double firstX, double firstY, bool isIncludeCur);
|
|
|
|
|
|
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD>die<69><65><EFBFBD><EFBFBD>
|
|
|
|
|
|
void AddDieRect(double xCoord, double yCoord);
|
|
|
|
|
|
|
|
|
|
|
|
void SetDieAttr(std::shared_ptr<MyQGraphicsRectItem>& dieObj, bool isBase, bool isMark, double xCoord, double yCoord);
|
|
|
|
|
|
|
|
|
|
|
|
//<2F>ж<EFBFBD><D0B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿ<C7B7><F1B3ACB9><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
bool JudgeIsInWafer(double xCoord, double yCoord);
|
|
|
|
|
|
|
|
|
|
|
|
//<2F>ж<EFBFBD><D0B6>Dz<EFBFBD><C7B2><EFBFBD>mark<72><6B>
|
|
|
|
|
|
bool JudgeIsMark(std::shared_ptr<MyQGraphicsRectItem>& die);
|
|
|
|
|
|
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD>ֳɶ<D6B3><C9B6>ٸ<EFBFBD><D9B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ÿ<EFBFBD><C3BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>die<69>ĸ<EFBFBD><C4B8><EFBFBD>
|
|
|
|
|
|
void CountAreaData();
|
|
|
|
|
|
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʹ洢<CDB4><E6B4A2><EFBFBD><EFBFBD>
|
|
|
|
|
|
void ClearSceneAndVec();
|
|
|
|
|
|
|
|
|
|
|
|
protected:
|
|
|
|
|
|
virtual void wheelEvent(QWheelEvent *event) override;
|
|
|
|
|
|
virtual void mousePressEvent(QMouseEvent *event) override;
|
|
|
|
|
|
private:
|
|
|
|
|
|
Ui::MappingUI ui;
|
|
|
|
|
|
|
|
|
|
|
|
public slots:
|
|
|
|
|
|
void slot_UpdateAllDieStatus(double xCoord, double yCoord);
|
|
|
|
|
|
void slot_clearCurSelect();
|
|
|
|
|
|
void slot_addCurRow();
|
|
|
|
|
|
void slot_addCurRol();
|
|
|
|
|
|
void slot_addCurArea();
|
|
|
|
|
|
|
|
|
|
|
|
public:
|
|
|
|
|
|
std::vector<std::shared_ptr<MyQGraphicsRectItem>> m_allDieItem;
|
|
|
|
|
|
|
|
|
|
|
|
int m_areaXDirDieNum = 0; //ÿ<><C3BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD>X<EFBFBD><58><EFBFBD><EFBFBD><EFBFBD><EFBFBD>die<69><65><EFBFBD><EFBFBD>
|
|
|
|
|
|
int m_areaYDirDieNum = 0; //ÿ<><C3BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Y<EFBFBD><59><EFBFBD><EFBFBD><EFBFBD><EFBFBD>die<69><65><EFBFBD><EFBFBD>
|
|
|
|
|
|
int m_areaGridNum = -1; //һ<><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Բ<EFBFBD>ֳɶ<D6B3><C9B6>ٸ<EFBFBD><D9B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>б<EFBFBD><D0B1><EFBFBD>
|
|
|
|
|
|
double m_areaStartX = 0.0; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ͻǿ<CFBD>ʼ<EFBFBD>ĵ<EFBFBD>
|
|
|
|
|
|
double m_areaStartY = 0.0; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ͻǿ<CFBD>ʼ<EFBFBD>ĵ<EFBFBD>
|
|
|
|
|
|
|
|
|
|
|
|
double m_curDieCoordX = 0.0;
|
|
|
|
|
|
double m_curDieCoordY = 0.0;
|
|
|
|
|
|
int m_curAreaIdX = -1;
|
|
|
|
|
|
int m_curAreaIdY = -1;
|
|
|
|
|
|
std::shared_ptr<MyQGraphicsRectItem> m_curDie = nullptr;
|
|
|
|
|
|
std::vector<std::shared_ptr<MyQGraphicsRectItem>> m_selectDieVec; //ѡ<>е<EFBFBD><D0B5><EFBFBD><EFBFBD><EFBFBD>die
|
|
|
|
|
|
|
|
|
|
|
|
double m_dieMaxYcoord = 0.0; //dieY<65><59><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
double m_dieMinYccord = 0.0;//dieY<65><59><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Сֵ,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
|
|
|
|
|
|
RecipeAttrObj m_recipeAttrObj;
|
|
|
|
|
|
bool m_isShowDieText = false;
|
|
|
|
|
|
|
|
|
|
|
|
private:
|
|
|
|
|
|
bool m_isScale = false;
|
|
|
|
|
|
double m_scaleFactor = 1.6;
|
|
|
|
|
|
|
|
|
|
|
|
QGraphicsScene m_mappingScene; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
std::shared_ptr<MyQGraphicsLineItem> m_baseLineXCoordObj = nullptr; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͼ<EFBFBD>Ļ<EFBFBD><EFBFBD><D7BC>
|
|
|
|
|
|
std::vector<std::shared_ptr<QGraphicsEllipseItem>> m_ellipseItem; //<2F><>Բͼ<D4B2><CDBC>
|
|
|
|
|
|
std::vector<std::shared_ptr<QGraphicsLineItem>> m_allLineItem; //<2F><><EFBFBD><EFBFBD><EFBFBD>߶<EFBFBD>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
};
|