#pragma once
//==================================
// 线性计算库优化 
//===============================
//#define EIGEN_NO_DEBUG  




#ifndef REFERENCEHEADER_H 
#define REFERENCEHEADER_H
#include <QFileDialog>
#include <QFile>
#include <QXmlStreamReader>
#include <QString>
#include <QDebug>
#include <QDialog>
#include <opencascade\BRepBuilderAPI_Copy.hxx>
#include <opencascade\AIS_Shape.hxx>
#include <QObject>
#include <opencascade\TopoDS.hxx>
#include <opencascade\TopoDS_Shape.hxx>
#include <opencascade\Standard_WarningsDisable.hxx>
#include <QListWidget>
#include <QList>
#include <opencascade\Standard_WarningsRestore.hxx>
#include <opencascade\AIS_TextLabel.hxx>
#include <opencascade\AIS_InteractiveContext.hxx>
#include <opencascade\Graphic3d_Texture2Dplane.hxx>
#include <opencascade\Graphic3d_Text.hxx>
#include <opencascade\V3d_View.hxx>
#include <opencascade\V3d_Viewer.hxx>
#include <vector>
#include <string>
#include <QMap>
#include <QUndoStack>
#include <QCheckBox>
#include <QMouseEvent>
#include <QDialog>
#include <opencascade\BRepGProp.hxx>
#include <opencascade\GProp_GProps.hxx>
#include <opencascade\AIS_ViewCube.hxx>
#include <opencascade\Geom_Axis2Placement.hxx>
#include <QApplication>
#include <QColor>
#include <QColorDialog>
#include <QStatusBar>
#include <opencascade\StepGeom_Axis2Placement3d.hxx>
#include <opencascade\AIS_InteractiveObject.hxx>
#include <opencascade\Aspect_DisplayConnection.hxx>
#include <opencascade\Graphic3d_NameOfMaterial.hxx>
#include <opencascade\OpenGl_GraphicDriver.hxx>
#include <opencascade\OSD_Environment.hxx>
#include <QFileDialog>
#include <opencascade\TCollection_AsciiString.hxx>
#include <opencascade\StlAPI_Reader.hxx>
#include <opencascade\AIS_Trihedron.hxx>
#include <QtWidgets>
#include <opencascade\BRepPrimAPI_MakePrism.hxx>
#include <opencascade\IGESControl_Reader.hxx>
#include <opencascade\STEPControl_Reader.hxx>
#include <opencascade\IGESControl_Writer.hxx>
#include <opencascade\STEPControl_Writer.hxx>
#include <opencascade\StlAPI_Writer.hxx>
#include <opencascade\BRep_Builder.hxx>
#include <opencascade\BRepBuilderAPI_Collect.hxx>
#include <QTreeWidget>
#include <QTreeWidgetItem>
#include <opencascade\TopExp_Explorer.hxx>
#include <opencascade\gp_Pnt.hxx>
#include <opencascade\gp_Ax1.hxx>
#include <opencascade\gp_Dir.hxx>
#include <opencascade\BRepAlgoAPI_Fuse.hxx>
#include <opencascade\AIS_TexturedShape.hxx>
#include <opencascade\Prs3d_Arrow.hxx>
#include <opencascade\BRepPrimAPI_MakeCylinder.hxx>
#include <opencascade\BRepPrimAPI_MakeCone.hxx>
#include <opencascade\BRepBuilderAPI_Transform.hxx>
#include <QMessageBOx>
#include <opencascade\StlAPI_Writer.hxx>
#include <opencascade\AIS_ViewCube.hxx>
#include <opencascade\AIS_Shape.hxx>
#include <opencascade\Geom_Axis2Placement.hxx>
#include <opencascade\Standard_WarningsDisable.hxx>
#include <QApplication>
#include <QColor>
#include <QColorDialog>
#include <QStatusBar>
#include <opencascade\Standard_WarningsRestore.hxx>
#include <opencascade\StepGeom_Axis2Placement3d.hxx>
#include <QDebug>
#include <opencascade\AIS_InteractiveObject.hxx>
#include <opencascade\Aspect_DisplayConnection.hxx>
#include <opencascade\Graphic3d_NameOfMaterial.hxx>
#include <opencascade\OpenGl_GraphicDriver.hxx>
#include <opencascade\OSD_Environment.hxx>
#include <QFileDialog>
#include <opencascade\TCollection_AsciiString.hxx>
#include <opencascade\StlAPI_Reader.hxx>
#include <opencascade\AIS_Trihedron.hxx>
#include <QCheckBox>
#include <QtWidgets>
#include <opencascade\BRepPrimAPI_MakePrism.hxx>
#include <opencascade\BRepBuilderAPI_Copy.hxx>
#include <opencascade\IGESControl_Reader.hxx>
#include <opencascade\STEPControl_Reader.hxx>
#include <opencascade\IGESControl_Writer.hxx>
#include <opencascade\STEPControl_Writer.hxx>
#include <QMessageBox>
#include <QCoreApplication>
#include <Eigen/Core>
#include <Eigen/Dense>
#include <iostream>
#include <Eigen/Dense>
#include <fftw3.h>
#include <opencascade\BRepBuilderAPI_MakeEdge.hxx>
#include <opencascade\BRepBuilderAPI_MakeWire.hxx>
#include <opencascade\BRepBuilderAPI_MakeFace.hxx>
#include <opencascade\BRepPrimAPI_MakeWedge.hxx>
#include <opencascade\gp_Pnt.hxx>
#include <opencascade\BRepBuilderAPI_MakeEdge.hxx>
#include <opencascade\BRepBuilderAPI_MakeWire.hxx>
#include <opencascade\BRepBuilderAPI_MakeFace.hxx>
#include <opencascade\TopoDS_Face.hxx>
#include <QRegularExpression>
#include <omp.h> // 并行计算库
#include <cmath>


//================================================
// 常用函数
//================================================
std::vector<QString> convertQStringListToStdVector(const QStringList& qStringList);

 



// =====================================================
// 常用宏定义
// __SHOWPROCESS : 展示进度条
// ======================================================

#define __SHOWPROCESS
//#define __SHOWMATPLOTLIBCPPTEST // 局部绘制结果调试
#define __IMAGEPARALLEL // 成像算法并行版本
#define __IMAGEWINDOWSPROCESS // 成像算法使用加窗函数




#ifdef __SHOWMATPLOTLIBCPPTEST 
#include <matplot/matplot.h>
#include <matplot/matplot.h>
#include <mgl2/mgl.h>
//#define __SHOWECHOPARSE // 展示解析结果
//#define __SHOWIMAGEPROCESSING // 展示成像中间结果
//#define	__SHOWIMAGEPROCESSRESULT// 展示成像结果


#endif












#endif // !REFERENCEHEADER_Hstd::vector<QString> convertQStringListToStdVector(const QStringList& qStringList)

