#ifndef DXFHELPER_H #define DXFHELPER_H #include //#include #include #include #include #include #include //#include #include #include //qRegisterMetaType >("QVector"); //qRegisterMetaType("QList"); struct DXFLine { double x1; double y1; double z1; double x2; double y2; double z2; }; struct DXFRect { QList list; }; struct DXFArc { double cx; double cy; double cz; double angle1; double angle2; double radius; }; struct DXFCircle { double cx; double cy; double cz; double radius; }; struct DXFEllipse { double cx; double cy; double cz; double mx; double my; double mz; double angle1; double angle2; double ratio; }; struct DXFPolyline { double flags; double number; QList list; }; struct DXFSpline { double nControl; QList controlPoints; }; class DxfHelper { public: DxfHelper(); QList expandPolygon(QList polygon, float expand); bool generateDxf(const QString &fileName); QVector> getDxfPaths() const; QList getDxfLineList() const; QList getDxfRectList() const; QList getDxfArcList() const; QList getDxfCircleList() const; QList getDxfEllipseList() const; QList getDxfPolylineList() const; QList getDxfSplineList() const; void setExpandOffset(double value); void matchDXFSize(); QImage generateDXFImage(); QList getDxfPathList() const; QSize getImageSize() const; QList getDxfBorderList() const; private: QPointF currentPos; unsigned int vertexIndex = 0; unsigned int controlIndex = 0; QVector> dxfPaths; QList dxfPathList; double expandOffset = 0; QList dxfLineList; QList dxfRectList; QList dxfArcList; QList dxfCircleList; QList dxfEllipseList; QList dxfPolylineList; QList dxfSplineList; QList dxfBorderList; QSize imageSize; }; #endif // DXFHELPER_H