|
|
|
|
#pragma once
|
|
|
|
|
#include "GlobalDefine.h"
|
|
|
|
|
#include "LabVecRang.h"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʒ
|
|
|
|
|
class CProduct//:public CObject
|
|
|
|
|
{
|
|
|
|
|
friend class CProductMgr;
|
|
|
|
|
// DECLARE_SERIAL(CProduct)
|
|
|
|
|
public:
|
|
|
|
|
CProduct(void);
|
|
|
|
|
~CProduct(void);
|
|
|
|
|
void Draw(CDC* pDC);
|
|
|
|
|
void WriteWorkFile(vector<CLab> &LabVec);
|
|
|
|
|
void ReadWorkFile(CLabVecRang &LabVecRang);
|
|
|
|
|
void SetBasePt(Dbxy pt){m_BasePt = pt;};
|
|
|
|
|
Dbxy &GetProductBasePt(){return m_BasePt;};
|
|
|
|
|
Dbxy &GetOffset(){return m_Offset;};
|
|
|
|
|
double GetRotateAng();
|
|
|
|
|
|
|
|
|
|
bool &IsUsed(){return m_bUsed;};
|
|
|
|
|
void SetUsed(bool b){m_bUsed = b;};
|
|
|
|
|
void GetMarkCoord(Dbxy &mark1,Dbxy &mark2);
|
|
|
|
|
void SetRealMarkPt(Dbxy pt);
|
|
|
|
|
void ResetRealMarkPt();
|
|
|
|
|
void SetTheoryMarkPt(Dbxy pt1,Dbxy pt2);
|
|
|
|
|
void SetbHasMarkPt3(bool b){m_bHasMarkPt3 = b;};
|
|
|
|
|
void SetTheoryMark3Pt(Dbxy pt){m_TheoryMarkPt3 = pt;};
|
|
|
|
|
void SetRealMark3Pt(Dbxy pt){m_RealMarkPt3 = pt;};
|
|
|
|
|
Dbxy TheoryPtToRealPt(Dbxy TheoryMarkPt);
|
|
|
|
|
void StretchDataToRealSize(vector<vector<Dbxy>> &vec);
|
|
|
|
|
|
|
|
|
|
void TheoryDataToRealData(vector<vector<Dbxy>> &vec, Dbxy &Offset);
|
|
|
|
|
void TheoryDataToRealData(vector<Dbxy> &vec, Dbxy &Offset);
|
|
|
|
|
|
|
|
|
|
void TheoryDataToRealData0(vector<Dbxy>& vec, Dbxy & AreaCenter, Dbxy CutAdjust);//<2F><><EFBFBD>㷨<EFBFBD><E3B7A8><EFBFBD>ĺ<EFBFBD>
|
|
|
|
|
void TheoryDataToRealData0(vector<vector<Dbxy>>& vec, Dbxy & AreaCenter, Dbxy CutAdjust);//<2F><><EFBFBD>㷨<EFBFBD><E3B7A8><EFBFBD>ĺ<EFBFBD>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void TheoryDataToRealData(vector<Dbxy>& vec, Dbxy & AreaCenter, Dbxy CutAdjust);
|
|
|
|
|
void TheoryDataToRealData(vector<vector<Dbxy>>& vec, Dbxy & AreaCenter, Dbxy CutAdjust);
|
|
|
|
|
void ResetAffinePars();//<2F><><EFBFBD>÷<EFBFBD><C3B7><EFBFBD><EFBFBD>任<EFBFBD><E4BBBB><EFBFBD><EFBFBD>
|
|
|
|
|
|
|
|
|
|
/*void TheoryDataToRealData(vector<vector<Dbxy>> &SrcVec, vector<vector<Dbxy>> &DecVec, Dbxy &Offset);
|
|
|
|
|
void TheoryDataToRealData(vector<Dbxy> &SrcVec, vector<Dbxy> &DecVec, Dbxy &Offset);*/
|
|
|
|
|
|
|
|
|
|
bool IsSetRealMarkPt1();
|
|
|
|
|
bool IsSetRealMarkPt2();
|
|
|
|
|
void UseDefualtOffset();
|
|
|
|
|
bool IsMarkReady();
|
|
|
|
|
bool IsbLastOne(){return m_bLastOne;};
|
|
|
|
|
void SetbLastOne(bool b){m_bLastOne = b;};
|
|
|
|
|
void SetbNewAddProduct(bool bNew) { m_bNewAddProduct = bNew; };//<2F><><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7>Ǹ<EFBFBD><C7B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>IJ<EFBFBD>Ʒ
|
|
|
|
|
bool IsbNewAddProduct() { return m_bNewAddProduct; };//<2F><>ѯ<EFBFBD>Ƿ<EFBFBD><C7B7>Ǹ<EFBFBD><C7B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>IJ<EFBFBD>Ʒ
|
|
|
|
|
void CalAffinePars();
|
|
|
|
|
private:
|
|
|
|
|
void CalTheoryToRealPar();
|
|
|
|
|
Dbxy CalRealProductScale();
|
|
|
|
|
void StretchPt(Dbxy &Pt,SObjOperatePar &Par);
|
|
|
|
|
void CalRealStretchPar();
|
|
|
|
|
double CalRealProductScaleExt(Dbxy TheoryMarkPt1,Dbxy TheoryMarkPt2,Dbxy RealMarkPt1,Dbxy RealMarkPt2);
|
|
|
|
|
private:
|
|
|
|
|
Dbxy m_BasePt;//<2F><><EFBFBD><EFBFBD><EFBFBD>Ļ<EFBFBD><EFBFBD><D7BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
bool m_bUsed;//<2F>Ƿ<EFBFBD>ʹ<EFBFBD><CAB9>
|
|
|
|
|
bool m_bLastOne;//<2F>Ƿ<EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>
|
|
|
|
|
bool m_bHasMarkPt3;//<2F>Ƿ<EFBFBD><C7B7><EFBFBD>mark3
|
|
|
|
|
bool m_bNewAddProduct = false;//<2F>Ƿ<EFBFBD><C7B7>Ǹ<EFBFBD><C7B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǿ<EFBFBD><C7BF><EFBFBD>Ʒ(201910)
|
|
|
|
|
public:
|
|
|
|
|
//<2F><><EFBFBD>ڶ<EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB>---------------------------
|
|
|
|
|
Dbxy m_TheoryMarkPt1;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(layer <20>е<EFBFBD><D0B5><EFBFBD><EFBFBD><EFBFBD>) mm
|
|
|
|
|
Dbxy m_TheoryMarkPt2;
|
|
|
|
|
Dbxy m_TheoryMarkPt3;
|
|
|
|
|
//ccd ץȡ<D7A5><C8A1>ʵ<EFBFBD><CAB5>ֵ------------------------------------
|
|
|
|
|
Dbxy m_RealMarkPt1;//<2F><>ʵ<EFBFBD><CAB5><EFBFBD><EFBFBD>(<28><><EFBFBD><EFBFBD><EFBFBD>ڼ<EFBFBD><DABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ĵ<EFBFBD>) mm
|
|
|
|
|
Dbxy m_RealMarkPt2;
|
|
|
|
|
Dbxy m_RealMarkPt3;
|
|
|
|
|
public:
|
|
|
|
|
Dbxy o_TheoryMarkPt1;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(<28><><EFBFBD>ƶ<EFBFBD>ʱ) mm
|
|
|
|
|
Dbxy o_TheoryMarkPt2;
|
|
|
|
|
Dbxy o_TheoryMarkPt3;
|
|
|
|
|
//ccd ץȡ<D7A5><C8A1>ʵ<EFBFBD><CAB5>ֵ------------------------------------
|
|
|
|
|
Dbxy o_RealMarkPt1;//<2F><>ʵ<EFBFBD><CAB5><EFBFBD><EFBFBD>(<28><><EFBFBD>ƶ<EFBFBD>ʱ) mm
|
|
|
|
|
Dbxy o_RealMarkPt2;
|
|
|
|
|
Dbxy o_RealMarkPt3;
|
|
|
|
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>------------------------------------
|
|
|
|
|
float m_p00=1;
|
|
|
|
|
float m_p01=0;
|
|
|
|
|
float m_p02=0;
|
|
|
|
|
|
|
|
|
|
float m_p10=0;
|
|
|
|
|
float m_p11=1;
|
|
|
|
|
float m_p12=0;
|
|
|
|
|
//ǿ<>ƣ<EFBFBD><EFBFBD><CEA2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ת<EFBFBD>Ƕȵķ<C8B5><C4B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӧ<EFBFBD><D3A6>ƽ̨<C6BD><CCA8><EFBFBD><EFBFBD>ֱ<EFBFBD><D6B1>------------------------------------
|
|
|
|
|
float m_rp00 = 1;
|
|
|
|
|
float m_rp01 = 0;
|
|
|
|
|
float m_rp02 = 0;
|
|
|
|
|
|
|
|
|
|
float m_rp10 = 0;
|
|
|
|
|
float m_rp11 = 1;
|
|
|
|
|
float m_rp12 = 0;
|
|
|
|
|
public:
|
|
|
|
|
//ʵ<><CAB5>ƫ<EFBFBD><C6AB><EFBFBD><EFBFBD>ת<EFBFBD><D7AA><EFBFBD><EFBFBD>---------------------------------
|
|
|
|
|
Dbxy m_Offset;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӳ<EFBFBD><D3B3>Ϊƽ̨<C6BD><CCA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƫ<EFBFBD><C6AB>
|
|
|
|
|
double m_RotateAng;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӳ<EFBFBD><D3B3>Ϊƽ̨<C6BD><CCA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ת<EFBFBD>Ƕ<EFBFBD>(<28><><EFBFBD><EFBFBD><EFBFBD>н<EFBFBD>)
|
|
|
|
|
double m_MaxRotateAng;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ת<EFBFBD>Ƕ<EFBFBD>(360 <20>Ƚ<EFBFBD>)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ת<EFBFBD>Ƕȳ<C7B6><C8B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵʱ<D6B5><CAB1><EFBFBD><EFBFBD><EFBFBD>д<EFBFBD><D0B4><EFBFBD>,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ч
|
|
|
|
|
|
|
|
|
|
SObjOperatePar m_StretchParX;//X <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
SObjOperatePar m_StretchParY;//Y <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
//virtual void Serialize(CArchive& ar);
|
|
|
|
|
};
|
|
|
|
|
|