848 lines
23 KiB
C
848 lines
23 KiB
C
|
#if !defined(GROUPCODE_H)
|
|||
|
#define GROUPCODE_H
|
|||
|
|
|||
|
#include <iostream>
|
|||
|
#include <QPoint>
|
|||
|
#include <QRect>
|
|||
|
#include <QObject>
|
|||
|
//#include <afxtempl.h>
|
|||
|
|
|||
|
#define MAX_LINESTRING 2048 //һ<><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD>
|
|||
|
#define OriginPoint (0, 0)
|
|||
|
|
|||
|
|
|||
|
#define MIN_SAMEPOINTDISTANCE 0.001 //<2F><>λ<EFBFBD><CEBB><EFBFBD><EFBFBD>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>һ<EFBFBD>£<EFBFBD><C2A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>жϵ<D0B6><CFB5>Ƿ<EFBFBD>Ϊͬһ<CDAC><D2BB><EFBFBD>㣬<EFBFBD><E3A3AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>X/Y<>С<EEB6BC><D0A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA>ͬ 20181009 <20><>0.15<EFBFBD><EFBFBD>Ϊ0.01,<2C><><EFBFBD><EFBFBD>QPointData<74><61><EFBFBD>е<EFBFBD>==<3D>ж<EFBFBD>
|
|||
|
//20221102 XQ <20><>ֵ<EFBFBD><D6B5>0.01<EFBFBD><EFBFBD>Ϊ0.001 <20>廨<EFBFBD><E5BBA8><EFBFBD>ȱȽϸߣ<CFB8><DFA3><EFBFBD><EFBFBD>ں<EFBFBD>С<EFBFBD><D0A1>Բ
|
|||
|
//#define MAX_SAMEPOINTDISTANCE 0.15 //20190221 Ѱ<>ұպ<D2B1><D5BA><EFBFBD><EFBFBD><EFBFBD>ʱ, <20>ж<EFBFBD><D0B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>߶˵<DFB6>Ϊͬһ<CDAC><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><>λ<EFBFBD><CEBB><EFBFBD><EFBFBD>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>һ<EFBFBD><D2BB> 0.15<EFBFBD><EFBFBD>V9<EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><EFBFBD>
|
|||
|
#define MIN_MAXDISTANCE 1 //<2F><>λ<EFBFBD><CEBB><EFBFBD><EFBFBD>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>һ<EFBFBD>£<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ, <20><><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD><D0B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>߾<EFBFBD><DFBE>룬<EFBFBD>ж<EFBFBD><D0B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD>Ϊͬһ<CDAC><D2BB>
|
|||
|
#define V10_G_MAX_SPLINE_ERROR 0.05 //<2F><><EFBFBD>ߵıƽ<C4B1><C6BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,<2C><>λ:mm
|
|||
|
#define V10_G_MAX_SPLINECTRL_ERROR 0.1 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>߿<EFBFBD><DFBF>Ƶ<EFBFBD><C6B5>ıƽ<C4B1><C6BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,<2C><>λ:mm
|
|||
|
//////////////////////////////////////////////////////////////////////////
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
#define POINT_TURN 0 //ת<>۵<EFBFBD>
|
|||
|
#define POINT_CURVE 1 //<2F><><EFBFBD>ߵ<EFBFBD>
|
|||
|
#define POINT_ARC 2 //Բ<><D4B2><EFBFBD><EFBFBD>
|
|||
|
#define POINT_SPILINE 3 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
#define CODE_NULL -1
|
|||
|
#define CODE_POLYLINE 0
|
|||
|
#define CODE_LWPOLYLINE 1
|
|||
|
#define CODE_LINE 2
|
|||
|
#define CODE_MLINE 3
|
|||
|
#define CODE_SPILINE 4
|
|||
|
#define CODE_TEXT 5
|
|||
|
#define CODE_MTEXT 6
|
|||
|
#define CODE_ARC 7
|
|||
|
#define CODE_CIRCLE 8
|
|||
|
#define CODE_ELLIPSE 9
|
|||
|
#define CODE_DIMENSION 10
|
|||
|
|
|||
|
//<2F><>λ
|
|||
|
#define CONST_MM 0
|
|||
|
#define CONST_INCH 1
|
|||
|
|
|||
|
//////////////////////////////////////////////////////////////////////////
|
|||
|
class CTextDataList;
|
|||
|
class CPDSNurbsPointList;
|
|||
|
|
|||
|
class QPointData : public QObject
|
|||
|
{
|
|||
|
public:
|
|||
|
double m_dX;
|
|||
|
double m_dY; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
|||
|
QString m_strLayer; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> AutoCAD<41>ļ<EFBFBD><C4BC>в<EFBFBD><D0B2><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD>ַ<EFBFBD><D6B7><EFBFBD>
|
|||
|
/*
|
|||
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
=POINT_TURN ת<EFBFBD>۵㣻
|
|||
|
=POINT_CURVE<EFBFBD><EFBFBD><EFBFBD>ߵ㣻
|
|||
|
=POINT_ARCԲ<EFBFBD><EFBFBD><EFBFBD>㣻
|
|||
|
=POINT_SPILINE<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
Ĭ<EFBFBD><EFBFBD>ת<EFBFBD>۵<EFBFBD>
|
|||
|
*/
|
|||
|
int m_iType;
|
|||
|
|
|||
|
int m_iGradeID; //<2F><><EFBFBD><EFBFBD>ID
|
|||
|
|
|||
|
public:
|
|||
|
QPointData(void);
|
|||
|
QPointData(QPointData& a);
|
|||
|
~QPointData(void);
|
|||
|
|
|||
|
void operator=(QPointData& a);
|
|||
|
bool operator==(QPointData& a); //<2F>жϵ<D0B6><CFB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD>ȣ<EFBFBD><C8A3><EFBFBD><EFBFBD><EFBFBD>Χ MIN_SAMEPOINTDISTANCE
|
|||
|
bool operator!=(QPointData& a); //<2F><><EFBFBD><EFBFBD>Χ MIN_SAMEPOINTDISTANCE
|
|||
|
void Initial(void);
|
|||
|
|
|||
|
//20190221 <20>ж<EFBFBD><D0B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD>ȣ<EFBFBD><C8A3><EFBFBD><EFBFBD>ո<EFBFBD><D5B8><EFBFBD><EFBFBD>ķ<EFBFBD>Χ<EFBFBD>ж<EFBFBD>
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
// a
|
|||
|
// dMaxValue <20><>Χ
|
|||
|
//<2F><><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5>
|
|||
|
// =true <20><><EFBFBD><EFBFBD> =false<73><65><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
bool Equal(QPointData&a, double dMaxValue);
|
|||
|
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣƫ<CFA2><C6AB>
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
//dOffsetX/dOffsetY ƫ<><C6AB><EFBFBD><EFBFBD>
|
|||
|
//dSin/dCos <20><>ת<EFBFBD>Ƕȣ<C7B6> <20><>ת<EFBFBD><D7AA>ΪQPoint(dOffsetX, dOffsetY), ˮƽΪ<C6BD><CEAA><EFBFBD><EFBFBD>
|
|||
|
//dScaleX/dScaleY <20>Ŵ<EFBFBD><C5B4><EFBFBD>С 20220408 XQ
|
|||
|
//˵<><CBB5><EFBFBD><EFBFBD>
|
|||
|
// ƫ<><C6AB>-><3E><>ת-><3E>Ŵ<EFBFBD><C5B4><EFBFBD>С
|
|||
|
void SetRotateOffset(double dOffsetX, double dOffsetY, double dSin, double dCos, double dScaleX, double dScaleY);
|
|||
|
|
|||
|
//<2F><><EFBFBD>÷Ŵ<C3B7>
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
//dScale <20>Ŵ<EFBFBD><C5B4><EFBFBD>С<EFBFBD><D0A1><EFBFBD><EFBFBD>
|
|||
|
void SetScale(double dScale);
|
|||
|
|
|||
|
QPoint GetIntPoint();
|
|||
|
|
|||
|
//<2F><><EFBFBD>÷<EFBFBD><C3B7><EFBFBD>ID
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
// listPointGrade <20><><EFBFBD>ҵ<EFBFBD><D2B5><EFBFBD>
|
|||
|
void SetGradeID(CTextDataList &listPointGrade);
|
|||
|
};
|
|||
|
|
|||
|
class CCurveNotchInforList;
|
|||
|
|
|||
|
class QPointDataList : public QList<QPointData,QPointData&>
|
|||
|
{
|
|||
|
public:
|
|||
|
QPointDataList& operator=(QPointDataList& rhs); // <20><>ֵ
|
|||
|
|
|||
|
//<2F><>ȡָ<C8A1><D6B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD>ϵ<EFBFBD><CFB5><EFBFBD>
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
|||
|
// iIndex <20><><EFBFBD><EFBFBD>ֵ,<2C><>0<EFBFBD><30>ʼ,<2C><><EFBFBD><EFBFBD>Խ<EFBFBD><D4BD>
|
|||
|
//<2F><><EFBFBD><EFBFBD>ֵ:
|
|||
|
QPointData& operator[](int iIndex);
|
|||
|
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD>ߵ<EFBFBD><DFB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>е<EFBFBD><D0B5><EFBFBD>Ϣƫ<CFA2><C6AB>
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
//dOffsetX/dOffsetY ƫ<><C6AB><EFBFBD><EFBFBD>
|
|||
|
//dSin/dCos <20><>ת<EFBFBD>Ƕȣ<C7B6> <20><>ת<EFBFBD><D7AA>ΪQPoint(dOffsetX, dOffsetY), ˮƽΪ<C6BD><CEAA><EFBFBD><EFBFBD>
|
|||
|
//dScaleX/dScaleY <20>Ŵ<EFBFBD><C5B4><EFBFBD>С 20220408 XQ
|
|||
|
//˵<><CBB5><EFBFBD><EFBFBD>
|
|||
|
// ƫ<><C6AB>-><3E><>ת-><3E>Ŵ<EFBFBD><C5B4><EFBFBD>С
|
|||
|
void SetRotateOffset(double dOffsetX, double dOffsetY, double dSin, double dCos, double dScaleX, double dScaleY);
|
|||
|
|
|||
|
//<2F><><EFBFBD>÷Ŵ<C3B7>
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
//dScale <20>Ŵ<EFBFBD><C5B4><EFBFBD>С<EFBFBD><D0A1><EFBFBD><EFBFBD>
|
|||
|
void SetScale(double dScale);
|
|||
|
|
|||
|
//<2F>õ<EFBFBD><C3B5><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
QRect GetRect();
|
|||
|
|
|||
|
void GetIntPoint(QList<QPoint, QPoint> &listPoint);
|
|||
|
|
|||
|
//<2F><><EFBFBD>÷<EFBFBD><C3B7><EFBFBD>ID
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
// listPointGrade <20><><EFBFBD>ҵ<EFBFBD><D2B5><EFBFBD>
|
|||
|
void SetGradeID(CTextDataList &listPointGrade);
|
|||
|
|
|||
|
//<2F><><EFBFBD>õ<EFBFBD><C3B5><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
// listTurnPoint ת<>۵<EFBFBD><DBB5><EFBFBD>
|
|||
|
// listCurvePoint <20><><EFBFBD>ߵ<EFBFBD><DFB5><EFBFBD>
|
|||
|
void SetPointType(QPointDataList &listTurnPoint, QPointDataList &listCurvePoint);
|
|||
|
|
|||
|
//<2F><><EFBFBD>Ҹ<EFBFBD><D2B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
// PointData <20><>
|
|||
|
//<2F><><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5>
|
|||
|
// =true <20>ҵ<EFBFBD><D2B5><EFBFBD>=falseû<65><C3BB><EFBFBD>ҵ<EFBFBD>
|
|||
|
bool FindSamePoint(QPointData PointData);
|
|||
|
|
|||
|
//<2F><>ÿһ<C3BF><D2BB><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
void GetCurveInforList(CCurveNotchInforList &listCurveInfor);
|
|||
|
|
|||
|
//20201021 XQ <20>Ƴ<EFBFBD><C6B3><EFBFBD><EFBFBD>ڵ<EFBFBD><DAB5><EFBFBD>ͬ<EFBFBD>㣬ͷβ<CDB7>㲻<EFBFBD><E3B2BB><EFBFBD><EFBFBD>
|
|||
|
void RemoveSamePoint();
|
|||
|
};
|
|||
|
|
|||
|
class CGroupCode : public QObject
|
|||
|
{
|
|||
|
public:
|
|||
|
//<2F><>Auto CAD<41><44><EFBFBD><EFBFBD>ɫ<EFBFBD><C9AB><EFBFBD><EFBFBD><EFBFBD>Ͷ<EFBFBD><CDB6><EFBFBD>ʹ<EFBFBD>÷<EFBFBD><C3B7>ű<EFBFBD>ʾ<EFBFBD><CABE>
|
|||
|
|
|||
|
int m_iType; //<2F><><EFBFBD><EFBFBD>CODE_NULL....
|
|||
|
QString m_strLayer; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
QString m_strColor; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɫ<EFBFBD><C9AB> <20><><EFBFBD><EFBFBD>Ϊ<EFBFBD>գ<EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɫ
|
|||
|
QString m_strViewCurveType; //ͨ<><CDA8><EFBFBD><EFBFBD><EFBFBD>Ҷ<EFBFBD>Ӧ<EFBFBD><D3A6><EFBFBD>õ<EFBFBD><C3B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>..... <20><><EFBFBD><EFBFBD>Ϊ<EFBFBD>ձ<EFBFBD>ʾĬ<CABE><C4AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
public:
|
|||
|
CGroupCode(void);
|
|||
|
CGroupCode(CGroupCode& a);
|
|||
|
~CGroupCode(void);
|
|||
|
|
|||
|
void operator=(CGroupCode& a);
|
|||
|
void Initial(void);
|
|||
|
|
|||
|
void CopyData(CGroupCode &a);
|
|||
|
|
|||
|
};
|
|||
|
|
|||
|
//////////////////////////////////////////////////////////////////////////
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
|
|||
|
class CCurveInfor : public CGroupCode
|
|||
|
{
|
|||
|
public:
|
|||
|
QPointDataList m_listCtrlCurve;
|
|||
|
bool m_bClose; //=true <20>պ<EFBFBD><D5BA><EFBFBD><EFBFBD>ߣ<EFBFBD>=false <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀǰֻ<C7B0><D6BB>m_iCurveTypeΪCODE_SPILINEʱ<45><CAB1>Ч
|
|||
|
int m_iCtrlPointType; //= 0<><30>ʾ<EFBFBD><CABE><EFBFBD>߾<EFBFBD><DFBE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƶ㣻=1 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>; =2 <20><>ʾ CODE_SPILINE<4E>Ѿ<EFBFBD><D1BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Ĭ<><C4AC>1
|
|||
|
QList<double, double> m_listdCode40; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ40<34><30>ֵ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
QList<double, double> m_listdCode41; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ41<34><31>ֵ Ȩֵ <20><><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA>ȨֵΪ1
|
|||
|
QPointDataList m_listReadCurve; //<2F><><EFBFBD>Ŷ<EFBFBD><C5B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϵ<EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD>κδ<CEBA><CEB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʲô<CAB2><C3B4><EFBFBD>ݴ<EFBFBD><DDB4><EFBFBD>ʲô<CAB2><C3B4><EFBFBD><EFBFBD>
|
|||
|
|
|||
|
QList<QPoint, QPoint> m_listPoint; //ʵ<>ʵ<EFBFBD><CAB5><EFBFBD>
|
|||
|
public:
|
|||
|
CCurveInfor(void);
|
|||
|
CCurveInfor(CCurveInfor& a);
|
|||
|
~CCurveInfor(void);
|
|||
|
|
|||
|
void operator=(CCurveInfor& a);
|
|||
|
void Initial(void);
|
|||
|
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD>ߵ<EFBFBD><DFB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>е<EFBFBD><D0B5><EFBFBD>Ϣƫ<CFA2><C6AB>
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
//dOffsetX/dOffsetY ƫ<><C6AB><EFBFBD><EFBFBD>
|
|||
|
//dSin/dCos <20><>ת<EFBFBD>Ƕȣ<C7B6> <20><>ת<EFBFBD><D7AA>ΪQPoint(dOffsetX, dOffsetY), ˮƽΪ<C6BD><CEAA><EFBFBD><EFBFBD>
|
|||
|
//dScaleX/dScaleY <20>Ŵ<EFBFBD><C5B4><EFBFBD>С 20220408 XQ
|
|||
|
//˵<><CBB5><EFBFBD><EFBFBD>
|
|||
|
// ƫ<><C6AB>-><3E><>ת-><3E>Ŵ<EFBFBD><C5B4><EFBFBD>С
|
|||
|
void SetRotateOffset(double dOffsetX, double dOffsetY, double dSin, double dCos, double dScaleX, double dScaleY);
|
|||
|
|
|||
|
//<2F><><EFBFBD>÷Ŵ<C3B7>
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
//dScale <20>Ŵ<EFBFBD><C5B4><EFBFBD>С<EFBFBD><D0A1><EFBFBD><EFBFBD>
|
|||
|
void SetScale(double dScale);
|
|||
|
|
|||
|
//<2F>õ<EFBFBD><C3B5><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
QRect GetRect();
|
|||
|
|
|||
|
//<2F><>תͷ<D7AA><CDB7><EFBFBD><EFBFBD>β<EFBFBD>㣬β<E3A3AC><CEB2><EFBFBD><EFBFBD>ͷ<EFBFBD><CDB7>
|
|||
|
void Reverse();
|
|||
|
|
|||
|
//<2F>õ<EFBFBD><C3B5>պ<EFBFBD><D5BA><EFBFBD><EFBFBD>ߵ<EFBFBD><DFB5><EFBFBD><EFBFBD>ĵ<EFBFBD>(<28><><EFBFBD><EFBFBD><EFBFBD>е<EFBFBD><D0B5><EFBFBD>X/Y<><59><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȡƽ<C8A1><C6BD>ֵ)
|
|||
|
void GetMiddlePoint(QPointData &PDMiddle);
|
|||
|
|
|||
|
//<2F><><EFBFBD><EFBFBD>CODE_SPILINE<4E>Ŀ<EFBFBD><C4BF>Ƶ<EFBFBD>
|
|||
|
void CalcuateSPlineCurve();
|
|||
|
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD>߿<EFBFBD><DFBF>Ƶ<EFBFBD><C6B5><EFBFBD><EFBFBD>ֶ<EFBFBD>
|
|||
|
void Segmentation(QList<QPointDataList, QPointDataList&> &listPointDataList);
|
|||
|
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>еĵ<D0B5><C4B5><EFBFBD><EFBFBD>ͺͷ<CDBA><CDB7><EFBFBD>ID
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
// listPointGrade <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
// listTurnPointLayer ת<>۵<EFBFBD>
|
|||
|
// listCurvePointLayer <20><><EFBFBD>ߵ<EFBFBD>
|
|||
|
void SetPointTypeGradeID(CTextDataList &listPointGrade, QPointDataList &listTurnPointLayer, QPointDataList &listCurvePointLayer);
|
|||
|
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʵ<EFBFBD>ʵ<EFBFBD><CAB5><EFBFBD>
|
|||
|
//[<5B><><EFBFBD><EFBFBD>] iDPMM <20>Ŵ<EFBFBD><C5B4><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
void CalcuateActualPoint(int iDPMM);
|
|||
|
|
|||
|
//20200219 XQ <20><>ȡʵ<C8A1>ʵ<EFBFBD><CAB5><EFBFBD>
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
|||
|
// listCurve ʵ<>ʵ<EFBFBD><CAB5><EFBFBD>
|
|||
|
//˵<><CBB5>:
|
|||
|
// <20><><EFBFBD>øú<C3B8><C3BA><EFBFBD>֮ǰ<D6AE><C7B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ü<EFBFBD><C3BC><EFBFBD>ʵ<EFBFBD>ʵ<EFBFBD><CAB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
void GetCurve(QList<QPoint, QPoint> &listCurve);
|
|||
|
|
|||
|
//20201021 XQ <20>Ƴ<EFBFBD><C6B3><EFBFBD><EFBFBD>ڵ<EFBFBD><DAB5><EFBFBD>ͬ<EFBFBD>㣬ֻ<E3A3AC>Կ<EFBFBD><D4BF>Ƶ<EFBFBD><C6B5><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
void RemoveSamePoint();
|
|||
|
private:
|
|||
|
|
|||
|
//<2F><><EFBFBD><EFBFBD>ʵ<EFBFBD>ʵ<EFBFBD><CAB5><EFBFBD>
|
|||
|
//[<5B><><EFBFBD><EFBFBD>] iDPMM <20>Ŵ<EFBFBD><C5B4><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
//[<5B><><EFBFBD><EFBFBD>] listCtrlPoint <20><><EFBFBD>Ƶ<EFBFBD> ֻ<><D6BB>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD>ͣ<EFBFBD>ͷβ<CDB7><CEB2><EFBFBD><EFBFBD><EFBFBD>⣬<EFBFBD>м<EFBFBD><D0BC><EFBFBD>ֻ<EFBFBD><D6BB>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ת<EFBFBD>۵㣬<DBB5><E3A3AC><EFBFBD>ߵ㣬Բ<E3A3AC><D4B2><EFBFBD>㣩
|
|||
|
//[<5B><><EFBFBD><EFBFBD>] listPointʵ<74>ʵ<EFBFBD><CAB5><EFBFBD>
|
|||
|
void CalcuateCurveInfor(int iDPMM, QPointDataList &listCtrlPoint, QList<QPoint, QPoint> &listPoint);
|
|||
|
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
// [<5B><><EFBFBD><EFBFBD>] listPoint <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ĸ<EFBFBD><C4B8><EFBFBD><EFBFBD>Ƶ㣬
|
|||
|
// [<5B><><EFBFBD><EFBFBD>] listCtrl <20>ƽ<EFBFBD><C6BD>Ŀ<EFBFBD><C4BF>Ƶ<EFBFBD>
|
|||
|
//<2F><><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5>
|
|||
|
// =ture <20><><EFBFBD><EFBFBD><EFBFBD>ɹ<EFBFBD><C9B9><EFBFBD>=false <20><><EFBFBD><EFBFBD>ʧ<EFBFBD><CAA7>
|
|||
|
//˵<><CBB5><EFBFBD><EFBFBD>
|
|||
|
// <20><><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɹ<EFBFBD><C9B9><EFBFBD><EFBFBD><EFBFBD>ͷ<EFBFBD><CDB7>Ϊת<CEAA>۵㣬<DBB5>м<EFBFBD><D0BC><EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD>Ƶ<EFBFBD>
|
|||
|
bool CalculateSPLine(QPointDataList &listPoint, QPointDataList &listCtrl);
|
|||
|
|
|||
|
//<2F><><EFBFBD>õ<EFBFBD><C3B5><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
// listPoint <20><>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD>ĵ<EFBFBD><C4B5><EFBFBD>
|
|||
|
// bTurn =true<75><65><EFBFBD>е㴦<D0B5><E3B4A6>Ϊת<CEAA>۵㣻=false<73><65>ͷ<EFBFBD><CDB7>Ϊת<CEAA>۵㣬<DBB5>м<EFBFBD><D0BC><EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD>ߵ<EFBFBD>
|
|||
|
void SetPointType(QPointDataList &listPoint, bool bTurn);
|
|||
|
|
|||
|
//<2F><><EFBFBD>㷽<EFBFBD><E3B7BD> t*t*t*ptPoint0+2*t*t*(1-t)ptPoint1+3*t*(1-t)*(1-t)ptPoint2+(1-t)*(1-t)*(1-t)ptPoint3
|
|||
|
//[<5B><><EFBFBD><EFBFBD>] ptPoint0<74><30>ptPoint1<74><31>ptPoint2<74><32>ptPoint3<74><33><EFBFBD>̵<EFBFBD><CCB5>ĸ<EFBFBD><C4B8><EFBFBD>֪<EFBFBD><D6AA>
|
|||
|
//[<5B><><EFBFBD><EFBFBD>] dPro <20><>ֵt<D6B5><74>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5>Χ<EFBFBD><CEA7>0<EFBFBD><30>1<EFBFBD><31>
|
|||
|
//<2F><><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5>
|
|||
|
// <20><><EFBFBD>̵Ľ<CCB5><C4BD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
QPointData CalcuateEquation(QPointData ptPoint0, QPointData ptPoint1, QPointData ptPoint2, QPointData ptPoint3, double dPro);
|
|||
|
|
|||
|
//QPointDataתCPDSNurbsPoint
|
|||
|
void PointDataToNurbsPoint(QPointDataList &listPointData, CPDSNurbsPointList &listNurbsPoint);
|
|||
|
|
|||
|
//CPDSNurbsPointתQPoint
|
|||
|
void NurbsPointToPoint(CPDSNurbsPointList &listNurbsPoint, int iDPMM, QList<QPoint, QPoint> &listPoint);
|
|||
|
|
|||
|
//QPointתQPointData
|
|||
|
void PointToPointData(QList<QPoint, QPoint> &listPoint, int iDPMM, QPointDataList &listPointData);
|
|||
|
|
|||
|
//<2F><><EFBFBD><EFBFBD>listDataPoint<6E>е<EFBFBD><D0B5><EFBFBD><EFBFBD>ͽ<EFBFBD>listDataPoint<6E><74>listRealPoint<6E>ֶ<EFBFBD>
|
|||
|
void NurbsSegmention(CPDSNurbsPointList &listDataPoint, CPDSNurbsPointList &listRealPoint, int iDPMM,
|
|||
|
CArray < QList <QPoint, QPoint> , QList <QPoint, QPoint> > &arCtrlPoint, CArray < QList <QPoint, QPoint> , QList <QPoint, QPoint> > &arRealPoint, bool &bClose);
|
|||
|
};
|
|||
|
|
|||
|
//////////////////////////////////////////////////////////////////////////
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
|
|||
|
class CNotchInfor : public QObject
|
|||
|
{
|
|||
|
public:
|
|||
|
QPointData m_ptNotch;
|
|||
|
int m_iNotchLayer; //<2F><><EFBFBD>ڲ<EFBFBD> =4 I<><49>; = 80 T<><54>;= 81 Box<6F><78> =82 V<><56>; =83 U<><55>;
|
|||
|
double m_dNotchWidth;
|
|||
|
bool m_bNotchWidth; //=true <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݴ<EFBFBD><DDB4><EFBFBD><EFBFBD><EFBFBD>=false <20><>ϵͳĬ<CDB3><C4AC><EFBFBD><EFBFBD><EFBFBD>ݴ<EFBFBD><DDB4><EFBFBD>
|
|||
|
double m_dNotchDepth;
|
|||
|
bool m_bNotchDepth; //=true <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݴ<EFBFBD><DDB4><EFBFBD><EFBFBD><EFBFBD>=false <20><>ϵͳĬ<CDB3><C4AC><EFBFBD><EFBFBD><EFBFBD>ݴ<EFBFBD><DDB4><EFBFBD>
|
|||
|
double m_dNotchAngle;
|
|||
|
bool m_bAngle; //=true <20><>ʾ<EFBFBD>Ƕȿ<C7B6><C8BF><EFBFBD><EFBFBD>ã<EFBFBD>=false <20><>ʾ<EFBFBD>ǶȲ<C7B6><C8B2><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
|||
|
public:
|
|||
|
CNotchInfor(void);
|
|||
|
CNotchInfor(CNotchInfor& a);
|
|||
|
~CNotchInfor(void);
|
|||
|
void operator=(CNotchInfor& a);
|
|||
|
void Initial(void);
|
|||
|
|
|||
|
//λ<><CEBB>ƫ<EFBFBD><C6AB>,<2C><>ת<EFBFBD>ͷ<EFBFBD><CDB7><EFBFBD>
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
//dOffsetX/dOffsetY ƫ<><C6AB><EFBFBD><EFBFBD>
|
|||
|
//dSin/dCos <20><>ת<EFBFBD>Ƕȣ<C7B6> <20><>ת<EFBFBD><D7AA>ΪQPoint(dOffsetX, dOffsetY), ˮƽΪ<C6BD><CEAA><EFBFBD><EFBFBD>
|
|||
|
//dScaleX/dScaleY <20>Ŵ<EFBFBD><C5B4><EFBFBD>С 20220408 XQ
|
|||
|
//˵<><CBB5><EFBFBD><EFBFBD>
|
|||
|
// ƫ<><C6AB>-><3E><>ת-><3E>Ŵ<EFBFBD><C5B4><EFBFBD>С
|
|||
|
void SetRotateOffset(double dOffsetX, double dOffsetY, double dSin, double dCos, double dScaleX, double dScaleY);
|
|||
|
|
|||
|
//<2F><><EFBFBD>÷Ŵ<C3B7>
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
//dScale <20>Ŵ<EFBFBD><C5B4><EFBFBD>С<EFBFBD><D0A1><EFBFBD><EFBFBD>
|
|||
|
void SetScale(double dScale);
|
|||
|
|
|||
|
//<2F><><EFBFBD>õ<EFBFBD><C3B5><EFBFBD><EFBFBD><EFBFBD>ID
|
|||
|
void SetGradeID(CTextDataList &listGradePoint);
|
|||
|
};
|
|||
|
|
|||
|
class CNotchInforList : public QList<CNotchInfor,CNotchInfor&>
|
|||
|
{
|
|||
|
public:
|
|||
|
CNotchInforList& operator=(CNotchInforList& rhs); // <20><>ֵ
|
|||
|
|
|||
|
//<2F><>ȡָ<C8A1><D6B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD>ϵ<EFBFBD><CFB5><EFBFBD>
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
|||
|
// iIndex <20><><EFBFBD><EFBFBD>ֵ,<2C><>0<EFBFBD><30>ʼ,<2C><><EFBFBD><EFBFBD>Խ<EFBFBD><D4BD>
|
|||
|
//<2F><><EFBFBD><EFBFBD>ֵ:
|
|||
|
CNotchInfor& operator[](int iIndex);
|
|||
|
|
|||
|
//λ<><CEBB>ƫ<EFBFBD>ƺͷ<C6BA><CDB7><EFBFBD>
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
//dOffsetX/dOffsetY ƫ<><C6AB><EFBFBD><EFBFBD>
|
|||
|
//dSin/dCos <20><>ת<EFBFBD>Ƕȣ<C7B6> <20><>ת<EFBFBD><D7AA>ΪQPoint(dOffsetX, dOffsetY), ˮƽΪ<C6BD><CEAA><EFBFBD><EFBFBD>
|
|||
|
//dScaleX/dScaleY <20>Ŵ<EFBFBD><C5B4><EFBFBD>С 20220408 XQ
|
|||
|
//˵<><CBB5><EFBFBD><EFBFBD>
|
|||
|
// ƫ<><C6AB>-><3E><>ת-><3E>Ŵ<EFBFBD><C5B4><EFBFBD>С
|
|||
|
void SetRotateOffset(double dOffsetX, double dOffsetY, double dSin, double dCos, double dScaleX, double dScaleY);
|
|||
|
|
|||
|
//<2F><><EFBFBD>÷Ŵ<C3B7>
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
//dScale <20>Ŵ<EFBFBD><C5B4><EFBFBD>С<EFBFBD><D0A1><EFBFBD><EFBFBD>
|
|||
|
void SetScale(double dScale);
|
|||
|
|
|||
|
//<2F><><EFBFBD>õ<EFBFBD><C3B5><EFBFBD><EFBFBD><EFBFBD>ID
|
|||
|
void SetGradeID(CTextDataList &listGradePoint);
|
|||
|
};
|
|||
|
|
|||
|
//////////////////////////////////////////////////////////////////////////
|
|||
|
//<2F><EFBFBD><DFBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϸ<EFBFBD><CFB8><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD><EFBFBD>磺<EFBFBD><E7A3BA><EFBFBD>ڣ<EFBFBD>
|
|||
|
class CCurveNotchInfor : public QObject
|
|||
|
{
|
|||
|
public:
|
|||
|
CCurveInfor m_CurveInfor;
|
|||
|
|
|||
|
CNotchInforList m_listNotch;
|
|||
|
|
|||
|
public:
|
|||
|
CCurveNotchInfor(void);
|
|||
|
CCurveNotchInfor(CCurveNotchInfor& a);
|
|||
|
~CCurveNotchInfor(void);
|
|||
|
void operator=(CCurveNotchInfor& a);
|
|||
|
void Initial(void);
|
|||
|
|
|||
|
//λ<><CEBB>ƫ<EFBFBD>ƺͷ<C6BA><CDB7><EFBFBD>
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
//dOffsetX/dOffsetY ƫ<><C6AB><EFBFBD><EFBFBD>
|
|||
|
//dSin/dCos <20><>ת<EFBFBD>Ƕȣ<C7B6> <20><>ת<EFBFBD><D7AA>ΪQPoint(dOffsetX, dOffsetY), ˮƽΪ<C6BD><CEAA><EFBFBD><EFBFBD>
|
|||
|
//dScaleX/dScaleY <20>Ŵ<EFBFBD><C5B4><EFBFBD>С 20220408 XQ
|
|||
|
//˵<><CBB5><EFBFBD><EFBFBD>
|
|||
|
// ƫ<><C6AB>-><3E><>ת-><3E>Ŵ<EFBFBD><C5B4><EFBFBD>С
|
|||
|
void SetRotateOffset(double dOffsetX, double dOffsetY, double dSin, double dCos, double dScaleX, double dScaleY);
|
|||
|
|
|||
|
//<2F><><EFBFBD>÷Ŵ<C3B7>
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
//dScale <20>Ŵ<EFBFBD><C5B4><EFBFBD>С<EFBFBD><D0A1><EFBFBD><EFBFBD>
|
|||
|
void SetScale(double dScale);
|
|||
|
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>еĵ<D0B5><C4B5><EFBFBD><EFBFBD>ͺͷ<CDBA><CDB7><EFBFBD>ID
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
// listPointGrade <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
// listTurnPointLayer ת<>۵<EFBFBD>
|
|||
|
// listCurvePointLayer <20><><EFBFBD>ߵ<EFBFBD>
|
|||
|
void SetPointTypeGradeID(CTextDataList &listPointGrade, QPointDataList &listTurnPointLayer, QPointDataList &listCurvePointLayer);
|
|||
|
|
|||
|
//<2F>õ<EFBFBD><C3B5><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
QRect GetRect();
|
|||
|
|
|||
|
//<2F><>תͷ<D7AA><CDB7><EFBFBD><EFBFBD>β<EFBFBD>㣬β<E3A3AC><CEB2><EFBFBD><EFBFBD>ͷ<EFBFBD><CDB7>
|
|||
|
void Reverse();
|
|||
|
|
|||
|
//20200219 XQ <20><>ȡʵ<C8A1>ʵ<EFBFBD><CAB5><EFBFBD>
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
|||
|
// listCurve ʵ<>ʵ<EFBFBD><CAB5><EFBFBD>
|
|||
|
//˵<><CBB5>:
|
|||
|
// <20><><EFBFBD>øú<C3B8><C3BA><EFBFBD>֮ǰ<D6AE><C7B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ü<EFBFBD><C3BC><EFBFBD>ʵ<EFBFBD>ʵ<EFBFBD><CAB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
void GetCurve(QList<QPoint, QPoint> &listCurve);
|
|||
|
};
|
|||
|
|
|||
|
class CCurveNotchInforList: public QList<CCurveNotchInfor,CCurveNotchInfor&>
|
|||
|
{
|
|||
|
public:
|
|||
|
CCurveNotchInforList& operator=(CCurveNotchInforList& rhs); // <20><>ֵ
|
|||
|
|
|||
|
//<2F><>ȡָ<C8A1><D6B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD>ϵ<EFBFBD><CFB5><EFBFBD>
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
|||
|
// iIndex <20><><EFBFBD><EFBFBD>ֵ,<2C><>0<EFBFBD><30>ʼ,<2C><><EFBFBD><EFBFBD>Խ<EFBFBD><D4BD>
|
|||
|
//<2F><><EFBFBD><EFBFBD>ֵ:
|
|||
|
CCurveNotchInfor& operator[](int iIndex);
|
|||
|
|
|||
|
//λ<><CEBB>ƫ<EFBFBD>ƺͷ<C6BA><CDB7><EFBFBD>
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
//dOffsetX/dOffsetY ƫ<><C6AB><EFBFBD><EFBFBD>
|
|||
|
//dSin/dCos <20><>ת<EFBFBD>Ƕȣ<C7B6> <20><>ת<EFBFBD><D7AA>ΪQPoint(dOffsetX, dOffsetY), ˮƽΪ<C6BD><CEAA><EFBFBD><EFBFBD>
|
|||
|
//dScaleX/dScaleY <20>Ŵ<EFBFBD><C5B4><EFBFBD>С 20220408 XQ
|
|||
|
//˵<><CBB5><EFBFBD><EFBFBD>
|
|||
|
// ƫ<><C6AB>-><3E><>ת-><3E>Ŵ<EFBFBD><C5B4><EFBFBD>С
|
|||
|
void SetRotateOffset(double dOffsetX, double dOffsetY, double dSin, double dCos, double dScaleX, double dScaleY);
|
|||
|
|
|||
|
//<2F><><EFBFBD>÷Ŵ<C3B7>
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
//dScale <20>Ŵ<EFBFBD><C5B4><EFBFBD>С<EFBFBD><D0A1><EFBFBD><EFBFBD>
|
|||
|
void SetScale(double dScale);
|
|||
|
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>еĵ<D0B5><C4B5><EFBFBD><EFBFBD>ͺͷ<CDBA><CDB7><EFBFBD>ID
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
// listPointGrade <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
// listTurnPointLayer ת<>۵<EFBFBD>
|
|||
|
// listCurvePointLayer <20><><EFBFBD>ߵ<EFBFBD>
|
|||
|
void SetPointTypeGradeID(CTextDataList &listPointGrade, QPointDataList &listTurnPointLayer, QPointDataList &listCurvePointLayer);
|
|||
|
|
|||
|
//<2F>õ<EFBFBD><C3B5><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
QRect GetRect();
|
|||
|
|
|||
|
//<2F>õ<EFBFBD><C3B5><EFBFBD><EFBFBD>е<EFBFBD>
|
|||
|
void GetAllPointData(QPointDataList &listPointData);
|
|||
|
|
|||
|
//20200220 XQ <20>õ<EFBFBD><C3B5><EFBFBD><EFBFBD>м<EFBFBD><D0BC>ڵ<EFBFBD>
|
|||
|
void GetAllNotchPoint(CNotchInforList &listNotchInfor);
|
|||
|
|
|||
|
//<2F>õ<EFBFBD>ʵ<EFBFBD>ʵ<EFBFBD><CAB5><EFBFBD>
|
|||
|
//[<5B><><EFBFBD><EFBFBD>] bClose =true <20>պ<EFBFBD>
|
|||
|
//[<5B><><EFBFBD><EFBFBD>] listCurve ʵ<>ʵ<EFBFBD><CAB5><EFBFBD>
|
|||
|
//˵<><CBB5><EFBFBD><EFBFBD>
|
|||
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˳<EFBFBD><CBB3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ȥ<EFBFBD><C8A5>ͬ<EFBFBD><CDAC>
|
|||
|
void GetCurve(QList<QPoint, QPoint> &listCurve, bool bClose);
|
|||
|
|
|||
|
//<2F><><EFBFBD><EFBFBD>ʵ<EFBFBD>ʵ<EFBFBD><CAB5><EFBFBD>
|
|||
|
//[<5B><><EFBFBD><EFBFBD>] iDPMM <20>Ŵ<EFBFBD><C5B4><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
void CalcuateActualPoint(int iDPMM);
|
|||
|
|
|||
|
//20201021 XQ <20>Ƴ<EFBFBD><C6B3><EFBFBD><EFBFBD>ڵ<EFBFBD><DAB5><EFBFBD>ͬ<EFBFBD>㣬ͷβ<CDB7>㲻<EFBFBD><E3B2BB><EFBFBD><EFBFBD>
|
|||
|
void RemoveSamePoint();
|
|||
|
};
|
|||
|
//////////////////////////////////////////////////////////////////////////
|
|||
|
//<2F><><EFBFBD><EFBFBD>
|
|||
|
class CTextData : public CGroupCode
|
|||
|
{
|
|||
|
public:
|
|||
|
QPointData m_PointData;
|
|||
|
QString m_strText;
|
|||
|
bool m_bReadHeight;
|
|||
|
double m_dHeight;
|
|||
|
double m_dAngle;
|
|||
|
public:
|
|||
|
|
|||
|
CTextData(void);
|
|||
|
CTextData(CTextData& a);
|
|||
|
~CTextData(void);
|
|||
|
bool operator==(CTextData& a);
|
|||
|
void operator=(CTextData& a);
|
|||
|
void Initial(void);
|
|||
|
|
|||
|
//<2F><><EFBFBD><EFBFBD>λ<EFBFBD><CEBB>ƫ<EFBFBD><C6AB>
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
//dOffsetX/dOffsetY ƫ<><C6AB><EFBFBD><EFBFBD>
|
|||
|
//dSin/dCos <20><>ת<EFBFBD>Ƕȣ<C7B6> <20><>ת<EFBFBD><D7AA>ΪQPoint(dOffsetX, dOffsetY), ˮƽΪ<C6BD><CEAA><EFBFBD><EFBFBD>
|
|||
|
//dScaleX/dScaleY <20>Ŵ<EFBFBD><C5B4><EFBFBD>С 20220408 XQ
|
|||
|
//˵<><CBB5><EFBFBD><EFBFBD>
|
|||
|
// ƫ<><C6AB>-><3E><>ת-><3E>Ŵ<EFBFBD><C5B4><EFBFBD>С
|
|||
|
void SetRotateOffset(double dOffsetX, double dOffsetY, double dSin, double dCos, double dScaleX, double dScaleY);
|
|||
|
|
|||
|
//<2F><><EFBFBD>÷Ŵ<C3B7>
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
//dScale <20>Ŵ<EFBFBD><C5B4><EFBFBD>С<EFBFBD><D0A1><EFBFBD><EFBFBD>
|
|||
|
void SetScale(double dScale);
|
|||
|
|
|||
|
//<2F>õ<EFBFBD><C3B5><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
QRect GetRect();
|
|||
|
|
|||
|
//<2F><><EFBFBD>õ<EFBFBD><C3B5><EFBFBD><EFBFBD><EFBFBD>ID
|
|||
|
void SetGradeID(CTextDataList &listGradePoint);
|
|||
|
|
|||
|
};
|
|||
|
class CTextDataList : public QList<CTextData,CTextData&>
|
|||
|
{
|
|||
|
public:
|
|||
|
CTextDataList& operator=(CTextDataList& rhs); // <20><>ֵ
|
|||
|
|
|||
|
//<2F><>ȡָ<C8A1><D6B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD>ϵ<EFBFBD><CFB5><EFBFBD>
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
|||
|
// iIndex <20><><EFBFBD><EFBFBD>ֵ,<2C><>0<EFBFBD><30>ʼ,<2C><><EFBFBD><EFBFBD>Խ<EFBFBD><D4BD>
|
|||
|
//<2F><><EFBFBD><EFBFBD>ֵ:
|
|||
|
CTextData& operator[](int iIndex);
|
|||
|
|
|||
|
//<2F><><EFBFBD><EFBFBD>λ<EFBFBD><CEBB>ƫ<EFBFBD><C6AB>
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
//dOffsetX/dOffsetY ƫ<><C6AB><EFBFBD><EFBFBD>
|
|||
|
//dSin/dCos <20><>ת<EFBFBD>Ƕȣ<C7B6> <20><>ת<EFBFBD><D7AA>ΪQPoint(dOffsetX, dOffsetY), ˮƽΪ<C6BD><CEAA><EFBFBD><EFBFBD>
|
|||
|
//dScaleX/dScaleY <20>Ŵ<EFBFBD><C5B4><EFBFBD>С 20220408 XQ
|
|||
|
//˵<><CBB5><EFBFBD><EFBFBD>
|
|||
|
// ƫ<><C6AB>-><3E><>ת-><3E>Ŵ<EFBFBD><C5B4><EFBFBD>С
|
|||
|
void SetRotateOffset(double dOffsetX, double dOffsetY, double dSin, double dCos, double dScaleX, double dScaleY);
|
|||
|
|
|||
|
//<2F><><EFBFBD>÷Ŵ<C3B7>
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
//dScale <20>Ŵ<EFBFBD><C5B4><EFBFBD>С<EFBFBD><D0A1><EFBFBD><EFBFBD>
|
|||
|
void SetScale(double dScale);
|
|||
|
|
|||
|
//<2F>õ<EFBFBD><C3B5><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
QRect GetRect();
|
|||
|
|
|||
|
//<2F><><EFBFBD>õ<EFBFBD><C3B5><EFBFBD><EFBFBD><EFBFBD>ID
|
|||
|
void SetGradeID(CTextDataList &listGradePoint);
|
|||
|
|
|||
|
//<2F><><EFBFBD>Ҹ<EFBFBD><D2B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD>
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
// PointData<74><61><EFBFBD><EFBFBD>
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
// TextData <20>ҵ<EFBFBD><D2B5>ı<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵΪtrue<75><65>Ч
|
|||
|
//<2F><><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5>
|
|||
|
// =true <20>ҵ<EFBFBD><D2B5><EFBFBD>=falseû<65><C3BB><EFBFBD>ҵ<EFBFBD>
|
|||
|
bool FindSamePointText(QPointData PointData, CTextData &TextData);
|
|||
|
};
|
|||
|
|
|||
|
//////////////////////////////////////////////////////////////////////////
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
|
|||
|
class CDrillInfor : public QObject
|
|||
|
{
|
|||
|
public:
|
|||
|
QPointData m_ptDrill;
|
|||
|
bool m_bRadius; //=true <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݴ<EFBFBD><DDB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ף<EFBFBD>=false <20><>ϵͳĬ<CDB3><C4AC><EFBFBD><EFBFBD><EFBFBD>ݴ<EFBFBD><DDB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
double m_dRadius;
|
|||
|
int m_iCommand; // =0 GP_DCM_DRILL = 1 GP_DCM_DRAW
|
|||
|
|
|||
|
public:
|
|||
|
CDrillInfor(void);
|
|||
|
CDrillInfor(CDrillInfor& a);
|
|||
|
~CDrillInfor(void);
|
|||
|
void operator=(CDrillInfor& a);
|
|||
|
void Initial(void);
|
|||
|
|
|||
|
//λ<><CEBB>ƫ<EFBFBD>ƺͷ<C6BA><CDB7><EFBFBD>
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
//dOffsetX/dOffsetY ƫ<><C6AB><EFBFBD><EFBFBD>
|
|||
|
//dSin/dCos <20><>ת<EFBFBD>Ƕȣ<C7B6> <20><>ת<EFBFBD><D7AA>ΪQPoint(dOffsetX, dOffsetY), ˮƽΪ<C6BD><CEAA><EFBFBD><EFBFBD>
|
|||
|
//dScaleX/dScaleY <20>Ŵ<EFBFBD><C5B4><EFBFBD>С 20220408 XQ
|
|||
|
//˵<><CBB5><EFBFBD><EFBFBD>
|
|||
|
// ƫ<><C6AB>-><3E><>ת-><3E>Ŵ<EFBFBD><C5B4><EFBFBD>С
|
|||
|
void SetRotateOffset(double dOffsetX, double dOffsetY, double dSin, double dCos, double dScaleX, double dScaleY);
|
|||
|
|
|||
|
//<2F><><EFBFBD>÷Ŵ<C3B7>
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
//dScale <20>Ŵ<EFBFBD><C5B4><EFBFBD>С<EFBFBD><D0A1><EFBFBD><EFBFBD>
|
|||
|
void SetScale(double dScale);
|
|||
|
|
|||
|
//<2F><><EFBFBD>õ<EFBFBD><C3B5><EFBFBD><EFBFBD><EFBFBD>ID
|
|||
|
void SetGradeID(CTextDataList &listGradePoint);
|
|||
|
};
|
|||
|
|
|||
|
class CDrillInforList : public QList<CDrillInfor,CDrillInfor&>
|
|||
|
{
|
|||
|
public:
|
|||
|
CDrillInforList& operator=(CDrillInforList& rhs); // <20><>ֵ
|
|||
|
|
|||
|
//<2F><>ȡָ<C8A1><D6B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD>ϵ<EFBFBD><CFB5><EFBFBD>
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
|||
|
// iIndex <20><><EFBFBD><EFBFBD>ֵ,<2C><>0<EFBFBD><30>ʼ,<2C><><EFBFBD><EFBFBD>Խ<EFBFBD><D4BD>
|
|||
|
//<2F><><EFBFBD><EFBFBD>ֵ:
|
|||
|
CDrillInfor& operator[](int iIndex);
|
|||
|
|
|||
|
//λ<><CEBB>ƫ<EFBFBD>ƺͷ<C6BA><CDB7><EFBFBD>
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
//dOffsetX/dOffsetY ƫ<><C6AB><EFBFBD><EFBFBD>
|
|||
|
//dSin/dCos <20><>ת<EFBFBD>Ƕȣ<C7B6> <20><>ת<EFBFBD><D7AA>ΪQPoint(dOffsetX, dOffsetY), ˮƽΪ<C6BD><CEAA><EFBFBD><EFBFBD>
|
|||
|
//dScaleX/dScaleY <20>Ŵ<EFBFBD><C5B4><EFBFBD>С 20220408 XQ
|
|||
|
//˵<><CBB5><EFBFBD><EFBFBD>
|
|||
|
// ƫ<><C6AB>-><3E><>ת-><3E>Ŵ<EFBFBD><C5B4><EFBFBD>С
|
|||
|
void SetRotateOffset(double dOffsetX, double dOffsetY, double dSin, double dCos, double dScaleX, double dScaleY);
|
|||
|
|
|||
|
//<2F><><EFBFBD>÷Ŵ<C3B7>
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
//dScale <20>Ŵ<EFBFBD><C5B4><EFBFBD>С<EFBFBD><D0A1><EFBFBD><EFBFBD>
|
|||
|
void SetScale(double dScale);
|
|||
|
|
|||
|
//<2F><><EFBFBD>õ<EFBFBD><C3B5><EFBFBD><EFBFBD><EFBFBD>ID
|
|||
|
void SetGradeID(CTextDataList &listGradePoint);
|
|||
|
};
|
|||
|
//////////////////////////////////////////////////////////////////////////
|
|||
|
//INSERT<52><54>ʶ<EFBFBD><CAB6><EFBFBD><EFBFBD>Ϣ
|
|||
|
class CInsertData : public CGroupCode
|
|||
|
{
|
|||
|
public:
|
|||
|
QString m_strBlockName;
|
|||
|
QPointData m_InsertPoint;
|
|||
|
double m_dScaleX; //20191012 XQ
|
|||
|
double m_dScaleY;
|
|||
|
double m_dRotateAngle; //<2F><>ת<EFBFBD>Ƕ<EFBFBD>
|
|||
|
|
|||
|
public:
|
|||
|
CInsertData(void);
|
|||
|
CInsertData(CInsertData& a);
|
|||
|
~CInsertData(void);
|
|||
|
bool operator==(CInsertData& a);
|
|||
|
void operator=(CInsertData& a);
|
|||
|
void Initial(void);
|
|||
|
|
|||
|
};
|
|||
|
|
|||
|
class CInsertDataList : public QList<CInsertData,CInsertData&>
|
|||
|
{
|
|||
|
public:
|
|||
|
CInsertDataList& operator=(CInsertDataList& rhs); // <20><>ֵ
|
|||
|
|
|||
|
//<2F><>ȡָ<C8A1><D6B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD>ϵ<EFBFBD><CFB5><EFBFBD>
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
|||
|
// iIndex <20><><EFBFBD><EFBFBD>ֵ,<2C><>0<EFBFBD><30>ʼ,<2C><><EFBFBD><EFBFBD>Խ<EFBFBD><D4BD>
|
|||
|
//<2F><><EFBFBD><EFBFBD>ֵ:
|
|||
|
CInsertData& operator[](int iIndex);
|
|||
|
|
|||
|
//<2F><><EFBFBD>ݸ<EFBFBD><DDB8><EFBFBD><EFBFBD>Ŀ<EFBFBD><C4BF><EFBFBD><EFBFBD>ҳ<EFBFBD><D2B3><EFBFBD>Ӧ<EFBFBD>Ŀ<EFBFBD>
|
|||
|
//[<5B><><EFBFBD><EFBFBD>] strBlockName <20><><EFBFBD><EFBFBD>
|
|||
|
//[<5B><><EFBFBD><EFBFBD>] InsertData <20><><EFBFBD><EFBFBD>λ<EFBFBD><CEBB>
|
|||
|
//<2F><><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5>
|
|||
|
// <20>ҵ<EFBFBD><D2B5><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD>ã<EFBFBD> û<><C3BB><EFBFBD>ҵ<EFBFBD><D2B5><EFBFBD><EFBFBD><EFBFBD>NULL
|
|||
|
POSITION FindBlockName(QString strBlockName, CInsertData &InsertData);
|
|||
|
};
|
|||
|
|
|||
|
//////////////////////////////////////////////////////////////////////////
|
|||
|
class CCurveNotchInforList;
|
|||
|
|
|||
|
//Ѱ<><D1B0>ֽ<EFBFBD><D6BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>õ<EFBFBD><C3B5>Ľṹ
|
|||
|
class CCloseCurveInfor : public QObject
|
|||
|
{
|
|||
|
public:
|
|||
|
CCurveNotchInforList m_listCurveInfor;
|
|||
|
|
|||
|
double m_dAreaRect; //<2F><><EFBFBD>ھ<EFBFBD><DABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
public:
|
|||
|
CCloseCurveInfor(void);
|
|||
|
CCloseCurveInfor(CCloseCurveInfor& a);
|
|||
|
~CCloseCurveInfor(void);
|
|||
|
void operator=(CCloseCurveInfor& a);
|
|||
|
void Initial(void);
|
|||
|
|
|||
|
void GetAreaRect();
|
|||
|
|
|||
|
void GetHeadTail(QPointData &PointDataH, QPointData &PointDataT);
|
|||
|
|
|||
|
//<2F>õ<EFBFBD><C3B5><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
//˵<><CBB5><EFBFBD><EFBFBD>
|
|||
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>е<EFBFBD>m_listCurveInfor<6F>ŵ<EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
void GetPointList(QPointDataList &listPointData);
|
|||
|
|
|||
|
//<2F>õ<EFBFBD><C3B5>պ<EFBFBD><D5BA><EFBFBD><EFBFBD>ߵ<EFBFBD><DFB5><EFBFBD><EFBFBD>ĵ<EFBFBD>(<28><><EFBFBD><EFBFBD><EFBFBD>е<EFBFBD><D0B5><EFBFBD>X/Y<><59><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȡƽ<C8A1><C6BD>ֵ)
|
|||
|
void GetMiddlePoint(QPointData &PDMiddle);
|
|||
|
|
|||
|
};
|
|||
|
|
|||
|
class CCloseCurveInforList: public QList<CCloseCurveInfor,CCloseCurveInfor&>
|
|||
|
{
|
|||
|
public:
|
|||
|
CCloseCurveInforList& operator=(CCloseCurveInforList& rhs); // <20><>ֵ
|
|||
|
|
|||
|
//<2F><>ȡָ<C8A1><D6B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD>ϵ<EFBFBD><CFB5><EFBFBD>
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
|||
|
// iIndex <20><><EFBFBD><EFBFBD>ֵ,<2C><>0<EFBFBD><30>ʼ,<2C><><EFBFBD><EFBFBD>Խ<EFBFBD><D4BD>
|
|||
|
//<2F><><EFBFBD><EFBFBD>ֵ:
|
|||
|
CCloseCurveInfor& operator[](int iIndex);
|
|||
|
|
|||
|
//<2F><><EFBFBD>б<EFBFBD><D0B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
POSITION FindMaxAreaRect();
|
|||
|
};
|
|||
|
|
|||
|
/////////////////////////////////////////////////////////////////////////
|
|||
|
//ֽ<><D6BD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD>ڶ<EFBFBD><DAB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֮<EFBFBD><D6AE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֽ<EFBFBD><D6BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD>õ<EFBFBD><C3B5><EFBFBD>
|
|||
|
|
|||
|
//˵<><CBB5><EFBFBD><EFBFBD>
|
|||
|
//<2F><><EFBFBD><EFBFBD>û<EFBFBD><C3BB>SetRotateOffsetScale<6C><65>ԭ<EFBFBD><D4AD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>в<EFBFBD><D0B2><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD>ݽ<EFBFBD><DDBD><EFBFBD>ƫ<EFBFBD><C6AB>-><3E><>ת-><3E>Ŵ<EFBFBD><C5B4><EFBFBD>С<EFBFBD><D0A1> ƫ<>ƺ<EFBFBD><C6BA><EFBFBD>ת <20><><EFBFBD><EFBFBD>m_ptOffset<65><74>m_dAngle<6C><65>
|
|||
|
class CPatternBlock : public QObject
|
|||
|
{
|
|||
|
public:
|
|||
|
QString m_strPatternName; //ֽ<><D6BD><EFBFBD><EFBFBD>
|
|||
|
QString m_strSizeName; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
QString m_strComment; //ע<><D7A2>COMMENT/ANNOTATION
|
|||
|
CStringArray m_arrMaterial; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
CUIntArray m_arrQuantity; //<2F><>Ƭ<EFBFBD><C6AC><EFBFBD>Ϸ<EFBFBD><CFB7><EFBFBD> Quantity:<R,L>
|
|||
|
CUIntArray m_arrLQuantity; //<2F><>Ƭ<EFBFBD><C6AC><EFBFBD>Ϸ<EFBFBD><CFB7><EFBFBD> Quantity:<R,L>
|
|||
|
//m_arrQuantity, m_arrLQuantity<74><79>С<EFBFBD><D0A1><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>
|
|||
|
|
|||
|
bool m_bFlip; //<2F><>ת<EFBFBD><D7AA>Ϣ =true <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ת
|
|||
|
double m_dRotation; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>б<EFBFBD><D0B1> Rotation<0...360>
|
|||
|
bool m_bFold; //<2F>۵<EFBFBD> Fold:<Y/N> =true <20><><EFBFBD><EFBFBD><EFBFBD>۵<EFBFBD>
|
|||
|
double m_dTilt; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>б<EFBFBD>Ƕ<EFBFBD> Tilt:<+/-0..90>
|
|||
|
|
|||
|
CCurveNotchInforList m_listBorder; //<2F><><EFBFBD><EFBFBD>
|
|||
|
CCurveNotchInforList m_listSeam; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
CCurveNotchInforList m_listAssistantCurve; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
CTextDataList m_listText; //<2F>ַ<EFBFBD><D6B7><EFBFBD>
|
|||
|
|
|||
|
//<2F><>AutoCAD<41>ļ<EFBFBD>
|
|||
|
//CNotchInforList m_listNotch; //<2F><><EFBFBD><EFBFBD>
|
|||
|
CDrillInforList m_listDrill; //<2F><><EFBFBD><EFBFBD>
|
|||
|
|
|||
|
CCurveNotchInfor m_GrainLine; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
CCurveNotchInfor m_SymmetryLine; //<2F>Գ<EFBFBD><D4B3><EFBFBD>
|
|||
|
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֻ<EFBFBD><D6BB><EFBFBD>ڶ<EFBFBD>ASTM/AAMA
|
|||
|
CCurveNotchInfor m_GradeLine; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
|||
|
//ֽ<><D6BD><EFBFBD><EFBFBD>ƫ<EFBFBD>ƺ<EFBFBD><C6BA><EFBFBD>ת<EFBFBD>Ƕȣ<C7B6><C8A3><EFBFBD>ת<EFBFBD><D7AA>ΪQPoint(0,0), ˮƽΪ<C6BD><CEAA><EFBFBD><EFBFBD>
|
|||
|
QPointData m_ptOffset;
|
|||
|
double m_dAngle;
|
|||
|
|
|||
|
public:
|
|||
|
CPatternBlock(void);
|
|||
|
CPatternBlock(CPatternBlock& a);
|
|||
|
~CPatternBlock(void);
|
|||
|
void operator=(CPatternBlock& a);
|
|||
|
void Initial(void);
|
|||
|
|
|||
|
//λ<><CEBB>ƫ<EFBFBD>ƺͷ<C6BA><CDB7><EFBFBD>
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
//dOffsetX/dOffsetY ƫ<><C6AB><EFBFBD><EFBFBD>
|
|||
|
//dSin/dCos <20><>ת<EFBFBD>Ƕȣ<C7B6> <20><>ת<EFBFBD><D7AA>ΪQPoint(dOffsetX, dOffsetY), ˮƽΪ<C6BD><CEAA><EFBFBD><EFBFBD>
|
|||
|
//dScaleX/dScaleY <20>Ŵ<EFBFBD><C5B4><EFBFBD>С 20220408 XQ
|
|||
|
//˵<><CBB5><EFBFBD><EFBFBD>
|
|||
|
// ƫ<><C6AB>-><3E><>ת-><3E>Ŵ<EFBFBD><C5B4><EFBFBD>С
|
|||
|
void SetRotateOffset(double dOffsetX, double dOffsetY, double dSin, double dCos, double dScaleX, double dScaleY);
|
|||
|
|
|||
|
//<2F><><EFBFBD><EFBFBD>
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
//dScale <20>Ŵ<EFBFBD><C5B4><EFBFBD>С<EFBFBD><D0A1><EFBFBD><EFBFBD>
|
|||
|
void SetScale( double dScale);
|
|||
|
|
|||
|
QRect GetRect();
|
|||
|
|
|||
|
//<2F><><EFBFBD><EFBFBD>ʵ<EFBFBD>ʵ<EFBFBD><CAB5><EFBFBD>
|
|||
|
//[<5B><><EFBFBD><EFBFBD>] iDPMM <20>Ŵ<EFBFBD><C5B4><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
void CalcuateActualPoint(int iDPMM);
|
|||
|
|
|||
|
private:
|
|||
|
//<2F><><EFBFBD><EFBFBD>
|
|||
|
void CopyPatternInfor(CPatternBlock& a);
|
|||
|
|
|||
|
};
|
|||
|
|
|||
|
class CPatternBlockList : public QList<CPatternBlock,CPatternBlock&>
|
|||
|
{
|
|||
|
public:
|
|||
|
CPatternBlockList& operator=(CPatternBlockList& rhs); // <20><>ֵ
|
|||
|
|
|||
|
//<2F><>ȡָ<C8A1><D6B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD>ϵ<EFBFBD><CFB5><EFBFBD>
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
|||
|
// iIndex <20><><EFBFBD><EFBFBD>ֵ,<2C><>0<EFBFBD><30>ʼ,<2C><><EFBFBD><EFBFBD>Խ<EFBFBD><D4BD>
|
|||
|
//<2F><><EFBFBD><EFBFBD>ֵ:
|
|||
|
CPatternBlock& operator[](int iIndex);
|
|||
|
|
|||
|
//λ<><CEBB>ƫ<EFBFBD>ƺͷ<C6BA><CDB7><EFBFBD>
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
//dOffsetX/dOffsetY ƫ<><C6AB><EFBFBD><EFBFBD>
|
|||
|
//dSin/dCos <20><>ת<EFBFBD>Ƕȣ<C7B6> <20><>ת<EFBFBD><D7AA>ΪQPoint(dOffsetX, dOffsetY), ˮƽΪ<C6BD><CEAA><EFBFBD><EFBFBD>
|
|||
|
//dScaleX/dScaleY <20>Ŵ<EFBFBD><C5B4><EFBFBD>С 20220408 XQ
|
|||
|
//˵<><CBB5><EFBFBD><EFBFBD>
|
|||
|
// ƫ<><C6AB>-><3E><>ת-><3E>Ŵ<EFBFBD><C5B4><EFBFBD>С
|
|||
|
void SetRotateOffset(double dOffsetX, double dOffsetY, double dSin, double dCos, double dScaleX, double dScaleY);
|
|||
|
|
|||
|
//<2F><><EFBFBD><EFBFBD>
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
//dScale <20>Ŵ<EFBFBD><C5B4><EFBFBD>С<EFBFBD><D0A1><EFBFBD><EFBFBD>
|
|||
|
void SetScale(double dScale);
|
|||
|
|
|||
|
QRect GetRect();
|
|||
|
|
|||
|
//<2F><><EFBFBD>к<EFBFBD><D0BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>V10ϵͳ<CFB5>д<EFBFBD><D0B4><EFBFBD>ֽ<EFBFBD><D6BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
//<2F>õ<EFBFBD><C3B5>б<EFBFBD><D0B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֽ<EFBFBD><D6BD><EFBFBD>ĺ<EFBFBD><C4BA><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
// listAllSizeName <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>С<EFBFBD><D0A1>this<69>б<EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD> ˳<><CBB3>Ҳһ<D2B2><D2BB>
|
|||
|
void GetAllSizeName(QList<QString,QString> &listAllSizeName);
|
|||
|
|
|||
|
//<2F>Ҹ<EFBFBD><D2B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƶĺ<C6B5><C4BA>͵<EFBFBD><CDB5><EFBFBD><EFBFBD>б<EFBFBD><D0B1>е<EFBFBD>λ<EFBFBD><CEBB>
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
// strSizeName <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
//<2F><><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5>
|
|||
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>б<EFBFBD><D0B1>е<EFBFBD>λ<EFBFBD>ã<EFBFBD> <20>ҵ<EFBFBD><D2B5>ĵ<EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD> NULL<4C><4C>ʾû<CABE><C3BB>
|
|||
|
POSITION FindSizeName(QString strSizeName);
|
|||
|
|
|||
|
//<2F><><EFBFBD><EFBFBD>ʵ<EFBFBD>ʵ<EFBFBD><CAB5><EFBFBD>
|
|||
|
//[<5B><><EFBFBD><EFBFBD>] iDPMM <20>Ŵ<EFBFBD><C5B4><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
void CalcuateActualPoint(int iDPMM);
|
|||
|
};
|
|||
|
|
|||
|
//<2F><>һ<EFBFBD><D2BB><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD>
|
|||
|
//[<5B><><EFBFBD><EFBFBD>] bReadWindowText =true <20>س<EFBFBD><D8B3><EFBFBD><EFBFBD><EFBFBD>0x0A<30><41>ʾ<EFBFBD>ģ<EFBFBD>=false <20>س<EFBFBD><D8B3><EFBFBD><EFBFBD><EFBFBD>0x0D0A
|
|||
|
//[<5B><><EFBFBD><EFBFBD>] iMaxCount һ<><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ij<EFBFBD><C4B3><EFBFBD>
|
|||
|
//[<5B><><EFBFBD><EFBFBD>] fFile <20>ļ<EFBFBD>
|
|||
|
//<2F><><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5>
|
|||
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
QString GetALineOfFile(bool bReadWindowText, int iMaxCount, FILE *fFile);
|
|||
|
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD>
|
|||
|
//[<5B><><EFBFBD><EFBFBD>] bReadWindowText =true <20>س<EFBFBD><D8B3><EFBFBD><EFBFBD><EFBFBD>0x0A<30><41>ʾ<EFBFBD>ģ<EFBFBD>=false <20>س<EFBFBD><D8B3><EFBFBD><EFBFBD><EFBFBD>0x0D0A
|
|||
|
//[<5B><><EFBFBD><EFBFBD>] fFile <20>ļ<EFBFBD>
|
|||
|
//[<5B><><EFBFBD><EFBFBD>] strString1/strString2 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
void ReadTwoLineString(bool bReadWindowText, FILE *fFile, QString &strString1, QString &strString2);
|
|||
|
|
|||
|
//<2F>жϸ<D0B6><CFB8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD>Ƿ<EFBFBD>Ϊһ<CEAA><D2BB><EFBFBD><EFBFBD><EFBFBD>ݿ<EFBFBD><DDBF>Ŀ<EFBFBD>ʼ<EFBFBD><CABC>ʶ<EFBFBD><CAB6>(strValue1<65>Ƿ<EFBFBD>Ϊ0<CEAA><30>strValue2<65>Ƿ<EFBFBD>Ϊ POLYLINE, LINE...)
|
|||
|
//[<5B><><EFBFBD><EFBFBD>] strValue1 <20><>Ҫ<EFBFBD>жϵ<D0B6><CFB5>ַ<EFBFBD><D6B7><EFBFBD>
|
|||
|
//[<5B><><EFBFBD><EFBFBD>] strValue2 <20><>Ҫ<EFBFBD>жϵ<D0B6><CFB5>ַ<EFBFBD><D6B7><EFBFBD>
|
|||
|
//<2F><><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5>
|
|||
|
// =true <20>ǣ<EFBFBD>false <20><><EFBFBD><EFBFBD>
|
|||
|
//˵<><CBB5><EFBFBD><EFBFBD>
|
|||
|
//strValue1Ϊ<31>յĻ<D5B5><C4BB><EFBFBD><EFBFBD>жϲ<D0B6>Ϊ<EFBFBD><CEAA> <20>ж<EFBFBD><D0B6>Ƿ<EFBFBD>Ϊ0<CEAA><30> Ϊ0<CEAA><30><EFBFBD><EFBFBD>strValue2<65><32><EFBFBD>ж<EFBFBD>
|
|||
|
bool JudgeCode(QString strValue1, QString strValue2);
|
|||
|
|
|||
|
#endif
|