#include "stdafx.h" #include "DrawModel\BaseLib.h" #include "DrawOperator\DrawLib.h" #include #include "FaultStatisticsCreator.h" #include "../BaseLib/GDfdMap.h" #include "../DrawerIO/DrawerIO.h" using namespace std; extern "C" __declspec(dllexport) bool CreateFaultStatistic(LPCTSTR inputFile, LPCTSTR resultFile, LPCTSTR statisticFile, LPCTSTR faultLayer, double pillarStep, double textHeight , int markColor, int markType) { CFaultStatisticsCreator faCreator; if (faCreator.ReadDfdMap(inputFile) == false) { return false; } // 打开输入文件 CDrawerIO drawerIo; CXy* pXy = new CXy; pXy->m_bRealTimeDraw = false; if (drawerIo.OpenFile(inputFile, pXy) == false) { delete pXy; return false; } CPtrList* pDataAll = pXy->GetValueList(); POSITION pos = pDataAll->GetHeadPosition(); int nEleType = 0; COne *pOne; CMesh* pMesh = nullptr; bool bSuccess = false; while (pos) { pOne = (COne *)(pDataAll->GetNext(pos)); nEleType = pOne->GetType(); // 网格 if (nEleType == DOUBLEFOX_MESH) { pMesh = (CMesh*)pOne->value; CGrid* pGrid = pMesh->GetMesh(); faCreator.CreateDfg(pGrid->xnum(), pGrid->ynum(), pGrid->xmin(), pGrid->ymin(), pGrid->dx(), pGrid->dy() , ((CDimension2D*)pGrid)->u); bSuccess = true; break; } } delete pXy; faCreator.SetOutPaths(resultFile, statisticFile); faCreator.m_strFltLayer = faultLayer; //faCreator.m_strSurveyLayer = surveyLayer; //faCreator.m_iCalcMethod = calByStep ? 0 : 1; // 0= faCreator.m_pillarStep = (float)pillarStep; // faCreator.m_bLocalFltDirect = true; // faCreator.m_clrMark = markColor; // faCreator.m_iMarkType = markType; // faCreator.m_TextHeight = textHeight; return faCreator.Execute(); }