#pragma once
#ifndef ALLHEAD_H
#define ALLHEAD_H


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


//=====================================================
// 内部库 LAMPTool
//=====================================================

#include "../LAMPTool/referenceHeader.h"
#include "../LAMPTool/BaseToollib/BaseConstVariable.h"
// Basetoollib
#include "../LAMPTool/Basetoollib/BaseConstVariable.h" 
#include "../LAMPTool/Basetoollib/BaseTool.h"
#include "../LAMPTool/Basetoollib/FileOperator.h"
//#include "Basetoollib/GeoOperator.h"
#include "../LAMPTool/Basetoollib/ImageOperatorBase.h"
//#include "Basetoollib/interpolation.h"

// SARBaseToolLib
//#include "SARBaseToolLib/BackScatterModel.h"
//#include "SARBaseToolLib/SARBaseTool.h"
//#include "SARBaseToolLib/SARCalibration.h"
#include "../LAMPTool/SARBaseToolLib/SARImageBase.h"

// SARImage
#include "../LAMPTool/SARImage/FEKOBaseToolClass.h"
#include "../LAMPTool/SARImage/FEKONearBPBasic.h"
#include "../LAMPTool/FEKOSimulationSARClass.h"
#include "../LAMPTool/OCCTBase.h"
#include "../LAMPTool/FEKOFarFieldFileClass.h"

//=====================================================
// 内部库 SharedModuleLib 
//=====================================================



//=====================================================
// 内置 command
//=====================================================

 // =====================================================
// 其他工程库
// 
// ======================================================
#include "../qcustomplot/qcustomplot.h"

//=======================================================
// 引用库 
//=======================================================
#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 <QtXml>
#include <boost/filesystem.hpp>
#include <QCloseEvent>
#include <opencascade/BRepPrimAPI_MakePrism.hxx>
#include <opencascade/BRepBuilderAPI_MakeFace.hxx>
#include <opencascade/BRepBuilderAPI_MakeWire.hxx>
#include <opencascade/BRepBuilderAPI_MakeEdge.hxx>
#include <QCommandLineParser>
#include <QJSValueIterator>
#include <opencascade/Geom_Plane.hxx>
#include <QSettings>

class QObject;


// =====================================================
// 常用宏定义
// 
// ======================================================
#define  __SHOWPROCESS



// =====================================================
//#include <OCCTopoShapeTreeViewer.h>
// 
// ======================================================




//=======================================================
// 常用基础变量类型定义
//======================================================= 


//=======================================================
//  常用基础函数
//======================================================= ]
QSettings* getQSetting();

QString getOpenFilePath(QWidget* parent = nullptr,	const QString& caption = QString(),	const QString& filter = QString());

QString getSaveFilePath(QWidget* parent = nullptr, const QString& caption = QString(), const QString& filter = QString());


/*
	QString filepath = getOpenFilePath(
		nullptr,
		QString::fromUtf8(u8"导入雷达模型"),
		".",
		QString::fromUtf8(u8"STL Files (*.stl);;STL Files (*.stla);;step Files (*.stp);;step Files (*.step);;IGES Files (*.iges);;IGES Files (*.igs)"));


*/





#endif // ! ALLHEAD_H