Commit 53b53a0d authored by 刘乐's avatar 刘乐

增加新的接口

parent 618d8082
......@@ -69,7 +69,6 @@ void CivUpstreamTrackingTest::test(char* uri)
std::cout << "测试结果:" << isSucc << std::endl;
}
/**
下游追踪
*/
......
......@@ -49,7 +49,7 @@ int main(int argc, char* argv[])
// testJson();
while (true)
{
const char* uri = "host=192.168.19.100 port=5432 dbname=JinXian3 user=postgres password=admin";
const char* uri = "host=192.168.19.100 port=5432 dbname=JinXian user=postgres password=admin";
char* findUri = const_cast<char*>(uri);
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_GREEN);
......
......@@ -18,6 +18,10 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "pandaLog", "pandaLog\pandaL
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "pandaAlgorithm", "pandaAlgorithm\pandaAlgorithm.vcxproj", "{D9072264-7281-4B9B-802B-10ECDEA7AC93}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "pandaWaterCore", "pandaWaterCore\pandaWaterCore.vcxproj", "{DC519C2B-2F79-461F-A6F1-E8795D9DBE3E}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "pandaInpCore", "pandaInpCore\pandaInpCore.vcxproj", "{1363870B-C5EC-4A75-B73E-3D71F6D60052}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
......@@ -166,6 +170,50 @@ Global
{D9072264-7281-4B9B-802B-10ECDEA7AC93}.UnicodeRelease|x64.Build.0 = Release|x64
{D9072264-7281-4B9B-802B-10ECDEA7AC93}.UnicodeRelease|x86.ActiveCfg = Release|Win32
{D9072264-7281-4B9B-802B-10ECDEA7AC93}.UnicodeRelease|x86.Build.0 = Release|Win32
{DC519C2B-2F79-461F-A6F1-E8795D9DBE3E}.Debug|Any CPU.ActiveCfg = Debug|Win32
{DC519C2B-2F79-461F-A6F1-E8795D9DBE3E}.Debug|x64.ActiveCfg = Debug|x64
{DC519C2B-2F79-461F-A6F1-E8795D9DBE3E}.Debug|x64.Build.0 = Debug|x64
{DC519C2B-2F79-461F-A6F1-E8795D9DBE3E}.Debug|x86.ActiveCfg = Debug|Win32
{DC519C2B-2F79-461F-A6F1-E8795D9DBE3E}.Debug|x86.Build.0 = Debug|Win32
{DC519C2B-2F79-461F-A6F1-E8795D9DBE3E}.Release|Any CPU.ActiveCfg = Release|Win32
{DC519C2B-2F79-461F-A6F1-E8795D9DBE3E}.Release|x64.ActiveCfg = Release|x64
{DC519C2B-2F79-461F-A6F1-E8795D9DBE3E}.Release|x64.Build.0 = Release|x64
{DC519C2B-2F79-461F-A6F1-E8795D9DBE3E}.Release|x86.ActiveCfg = Release|Win32
{DC519C2B-2F79-461F-A6F1-E8795D9DBE3E}.Release|x86.Build.0 = Release|Win32
{DC519C2B-2F79-461F-A6F1-E8795D9DBE3E}.UnicodeDebug|Any CPU.ActiveCfg = Debug|Win32
{DC519C2B-2F79-461F-A6F1-E8795D9DBE3E}.UnicodeDebug|Any CPU.Build.0 = Debug|Win32
{DC519C2B-2F79-461F-A6F1-E8795D9DBE3E}.UnicodeDebug|x64.ActiveCfg = Debug|x64
{DC519C2B-2F79-461F-A6F1-E8795D9DBE3E}.UnicodeDebug|x64.Build.0 = Debug|x64
{DC519C2B-2F79-461F-A6F1-E8795D9DBE3E}.UnicodeDebug|x86.ActiveCfg = Debug|Win32
{DC519C2B-2F79-461F-A6F1-E8795D9DBE3E}.UnicodeDebug|x86.Build.0 = Debug|Win32
{DC519C2B-2F79-461F-A6F1-E8795D9DBE3E}.UnicodeRelease|Any CPU.ActiveCfg = Debug|Win32
{DC519C2B-2F79-461F-A6F1-E8795D9DBE3E}.UnicodeRelease|Any CPU.Build.0 = Debug|Win32
{DC519C2B-2F79-461F-A6F1-E8795D9DBE3E}.UnicodeRelease|x64.ActiveCfg = Release|x64
{DC519C2B-2F79-461F-A6F1-E8795D9DBE3E}.UnicodeRelease|x64.Build.0 = Release|x64
{DC519C2B-2F79-461F-A6F1-E8795D9DBE3E}.UnicodeRelease|x86.ActiveCfg = Release|Win32
{DC519C2B-2F79-461F-A6F1-E8795D9DBE3E}.UnicodeRelease|x86.Build.0 = Release|Win32
{1363870B-C5EC-4A75-B73E-3D71F6D60052}.Debug|Any CPU.ActiveCfg = Debug|Win32
{1363870B-C5EC-4A75-B73E-3D71F6D60052}.Debug|x64.ActiveCfg = Debug|x64
{1363870B-C5EC-4A75-B73E-3D71F6D60052}.Debug|x64.Build.0 = Debug|x64
{1363870B-C5EC-4A75-B73E-3D71F6D60052}.Debug|x86.ActiveCfg = Debug|Win32
{1363870B-C5EC-4A75-B73E-3D71F6D60052}.Debug|x86.Build.0 = Debug|Win32
{1363870B-C5EC-4A75-B73E-3D71F6D60052}.Release|Any CPU.ActiveCfg = Release|Win32
{1363870B-C5EC-4A75-B73E-3D71F6D60052}.Release|x64.ActiveCfg = Release|x64
{1363870B-C5EC-4A75-B73E-3D71F6D60052}.Release|x64.Build.0 = Release|x64
{1363870B-C5EC-4A75-B73E-3D71F6D60052}.Release|x86.ActiveCfg = Release|Win32
{1363870B-C5EC-4A75-B73E-3D71F6D60052}.Release|x86.Build.0 = Release|Win32
{1363870B-C5EC-4A75-B73E-3D71F6D60052}.UnicodeDebug|Any CPU.ActiveCfg = Debug|Win32
{1363870B-C5EC-4A75-B73E-3D71F6D60052}.UnicodeDebug|Any CPU.Build.0 = Debug|Win32
{1363870B-C5EC-4A75-B73E-3D71F6D60052}.UnicodeDebug|x64.ActiveCfg = Debug|x64
{1363870B-C5EC-4A75-B73E-3D71F6D60052}.UnicodeDebug|x64.Build.0 = Debug|x64
{1363870B-C5EC-4A75-B73E-3D71F6D60052}.UnicodeDebug|x86.ActiveCfg = Debug|Win32
{1363870B-C5EC-4A75-B73E-3D71F6D60052}.UnicodeDebug|x86.Build.0 = Debug|Win32
{1363870B-C5EC-4A75-B73E-3D71F6D60052}.UnicodeRelease|Any CPU.ActiveCfg = Debug|Win32
{1363870B-C5EC-4A75-B73E-3D71F6D60052}.UnicodeRelease|Any CPU.Build.0 = Debug|Win32
{1363870B-C5EC-4A75-B73E-3D71F6D60052}.UnicodeRelease|x64.ActiveCfg = Release|x64
{1363870B-C5EC-4A75-B73E-3D71F6D60052}.UnicodeRelease|x64.Build.0 = Release|x64
{1363870B-C5EC-4A75-B73E-3D71F6D60052}.UnicodeRelease|x86.ActiveCfg = Release|Win32
{1363870B-C5EC-4A75-B73E-3D71F6D60052}.UnicodeRelease|x86.Build.0 = Release|Win32
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
......
......@@ -39,7 +39,6 @@ bool CivHydrSimulation::qualitySimulation()
CivSysLog::getInstance()->info("开始水质模拟", "CivSysLog", __FUNCTION__);
CivSysLog::getInstance()->info("开始转inp文件", "CivSysLog", __FUNCTION__);
CivInpConvertor convertor(mUri);
// convertor.maintainTopo();
......
......@@ -23,10 +23,38 @@ bool CivOptSchedEngine::optimalScheduling(int time)
return false;
}
// 开始遗传算法
std::shared_ptr<OptScheduling> optScheduling(new FirstOptScheduling());
optScheduling->setMinMonitorsVals(mMinMonitorVals);
// 编码转换
auto minIter = mMinMonitorVals.begin();
map<string, double> minMonitorVals;
for (; minIter != mMinMonitorVals.end(); minIter++)
{
string code = minIter->first;
auto szNoIter = find(mMonitorsVec.begin(), mMonitorsVec.end(), code);
if (szNoIter != mMonitorsVec.end())
{
code = *szNoIter;
}
minMonitorVals.insert(pair<string, double>(code, minIter->second));
}
optScheduling->setMinMonitorsVals(minMonitorVals);
// 编码转换
auto maxIter = mMaxMonitorVals.begin();
map<string, double> maxMonitorVals;
for (; maxIter != mMaxMonitorVals.end(); maxIter++)
{
string code = maxIter->first;
auto szNoIter = find(mMonitorsVec.begin(), mMonitorsVec.end(), code);
if (szNoIter != mMonitorsVec.end())
{
code = *szNoIter;
}
maxMonitorVals.insert(pair<string, double>(code, maxIter->second));
}
optScheduling->setMaxMonitorVals(mMaxMonitorVals);
GenAlg genAlg(optScheduling);
......@@ -151,7 +179,17 @@ void CivOptSchedEngine::schedulingResultToJson(string& json)
map<string, float>::iterator iter = mPumpBestSpeed.begin();
for (;iter!= mPumpBestSpeed.end();iter++)
{
json.append(iter->first + ":" + to_string(iter->second));
// 水泵编号
string szNo = iter->first;
// 编码转换
auto pumpIter = mPumpSzMap.find(szNo);
if (pumpIter != mPumpSzMap.end())
{
szNo = pumpIter->second;
}
json.append(szNo + ":" + to_string(iter->second));
json.append(",");
}
json = json.substr(0, json.length() - 1);
......@@ -164,6 +202,7 @@ void CivOptSchedEngine::schedulingResultToJson(string& json)
for (auto iter = mBforeSchedulingResults.begin(); iter != mBforeSchedulingResults.end(); iter++)
{
string monitorName = iter->first;
double beforeMonitorVal = iter->second;
auto afteriter = mAfterSchedulingResults.find(monitorName);
......@@ -172,6 +211,13 @@ void CivOptSchedEngine::schedulingResultToJson(string& json)
double afterMonitorvVal = afteriter->second;
// 编码替换成code
auto monitorIter = mMonitorsSnMap.find(monitorName);
if (monitorIter != mMonitorsSnMap.end())
{
monitorName = monitorIter->second;
}
json.append("\""+monitorName+"\":[");
json.append(to_string(beforeMonitorVal));
json.append(",");
......@@ -206,14 +252,13 @@ bool CivOptSchedEngine::beginCompute()
return false;
}
// 获取本点号和code的映射
map<string, string> snToCodeMap;
pumpHelper.getMap("本点号", "code", snToCodeMap);
// 获取本点号集合
pumpHelper.getPumpSn(mPumpVec);
pumpHelper.getMonitors(mMonitorsVec);
pumpHelper.getPumpSn(mPumpVec, mPumpSzMap);
pumpHelper.getMonitors(mMonitorsVec,mMonitorsSnMap);
/*string temp = "{";
for (int i = 0; i < mMonitorsVec.size(); i++)
......
......@@ -51,8 +51,6 @@ public:
void serializeToInpFile(string& inpName);
protected:
/**
*@brief 调度之前的一些初始化操作
*/
......@@ -73,6 +71,9 @@ private:
// 监测点编码
vector<string> mMonitorsVec;
// 本点好到code的映射
map<string, string> mMonitorsSnMap;
// 实时计算的当前监测点的值
map<string,double> mCurrentMonitorVals;
......@@ -85,6 +86,7 @@ private:
// 水泵编号,索引位代表
vector<string> mPumpVec;
map<string, string> mPumpSzMap;
// 数据连接地址
string mUri;
......
......@@ -33,6 +33,7 @@ class CivAssembly
class PANDADBMANAGER_API CivNode: public CivAssembly
{
public:
typedef struct Table
{
// ; ID Elev Demand Pattern
......
......@@ -13,6 +13,7 @@ typedef struct PumpStruct
string pricePattern;// 价格模式
string energyPrice; // 能量价格
string power; // 功率
string code; //编码
};
// 泵站结构体
......
......@@ -150,6 +150,35 @@ bool CivInpDbHelper::getValve(CivValve& valves)
valves.addItem(mValuvesVec[i]);
}
/*ValveTable vaTable;
std::vector<std::string> fields;
fields.push_back(vaTable.sn);
fields.push_back(vaTable.startPoint);
fields.push_back(vaTable.endPoint);
fields.push_back(vaTable.length);
fields.push_back(vaTable.type);
fields.push_back(vaTable.setting);
fields.push_back(vaTable.lossCoeff);
std::vector<std::map<std::string, std::string>> resultVector;
mDbConn->query(VALVE, fields, resultVector, mCondtion);
size_t totals = resultVector.size();
for (int i = 0; i < totals; i++)
{
CivValve::ValveTable pump;
std::map<std::string, std::string> map = resultVector[i];
pump.ID = map.find(vaTable.sn)->second;
pump.Node1 = map.find(vaTable.startPoint)->second;
pump.Node2 = map.find(vaTable.endPoint)->second;
pump.Diameter =map.find(vaTable.length)->second;
pump.Type = map.find(vaTable.type)->second;
pump.Setting = map.find(vaTable.setting)->second;
pump.MinorLoss = map.find(vaTable.lossCoeff)->second;
valves.addItem(pump);
}*/
return true;
}
......
......@@ -58,11 +58,11 @@ int CivPumpHelper::getPumpNumbers()
return pumps;
}
void CivPumpHelper::getPumpSn(vector<string>& pumpNames)
void CivPumpHelper::getPumpSn(vector<string>& pumpNames,map<string,string>& pumpMap)
{
const string sz = "本点号";
vector<map<string, string>> vecMap;
if (!mConn->query(mTable, { sz }, vecMap))
if (!mConn->query(mTable, { sz,"code" }, vecMap))
return;
if (vecMap.size() <= 0)
......@@ -73,7 +73,9 @@ void CivPumpHelper::getPumpSn(vector<string>& pumpNames)
{
map<string, string> tempMap = vecMap[i];
string val = tempMap.find(sz)->second;
string code = tempMap.find("code")->second;
pumpNames.push_back(val);
pumpMap.insert(pair<string, string>(val, code));
}
}
......@@ -81,7 +83,7 @@ void CivPumpHelper::getPumpSn(vector<string>& pumpNames)
void CivPumpHelper::getPumpStations(vector<PumpStation>& stations)
{
vector<map<string, string>> vecMap;
if (!mConn->query(mTable, { "本点号","价格模式","能量价格","功率","泵站","水泵状态","转速比" }, vecMap))
if (!mConn->query(mTable, { "本点号","code","价格模式","能量价格","功率","泵站","水泵状态","转速比" }, vecMap))
return;
if (vecMap.size() <= 0)
......@@ -100,6 +102,7 @@ void CivPumpHelper::getPumpStations(vector<PumpStation>& stations)
pumpStruct.power = tempMap.find("功率")->second;
pumpStruct.status = tempMap.find("水泵状态")->second;
pumpStruct.speedRatio = tempMap.find("转速比")->second;
pumpStruct.code = tempMap.find("code")->second;
string pumpStation = tempMap.find("泵站")->second;
stationMap[pumpStation].push_back(pumpStruct);
......@@ -116,9 +119,9 @@ void CivPumpHelper::getPumpStations(vector<PumpStation>& stations)
}
}
void CivPumpHelper::getMonitors(vector<string>& monitors)
void CivPumpHelper::getMonitors(vector<string>& monitors,map<string,string>& monitorMap)
{
string sql = "select node.\"本点号\" from \"节点\" as node, \"压力监测点\" as ja where node.\"code\" = ja.\"节点id\"";
string sql = "select node.\"本点号\",node.\"code\" from \"节点\" as node, \"压力监测点\" as ja where node.\"code\" = ja.\"节点id\"";
if (!mConn->execSql(sql))
return;
......@@ -130,6 +133,8 @@ void CivPumpHelper::getMonitors(vector<string>& monitors)
{
map<string, string> tempMap = tempMapVec[i];
string szNo = tempMap.find("本点号")->second;
string code = tempMap.find("code")->second;
monitors.push_back(szNo);
monitorMap.insert(pair<string, string>(szNo, code));
}
}
\ No newline at end of file
......@@ -25,12 +25,12 @@ public:
int getPumpNumbers();
// 获取水泵的编号
void getPumpSn(vector<string>& pumpNames);
void getPumpSn(vector<string>& pumpNames, map<string, string>& pumpMap);
// 获取泵站
void getPumpStations(vector<PumpStation>& stations);
void getMonitors(vector<string>& monitors);
void getMonitors(vector<string>& monitors, map<string, string>& monitorMap);
private:
CivConnection* mConn = nullptr;
......
#include "CivInpExporter.h"
CivInpExporter::CivInpExporter()
{
}
CivInpExporter::~CivInpExporter()
{
}
\ No newline at end of file
#pragma once
/**
inpļ
*/
class CivInpExporter
{
public:
CivInpExporter();
~CivInpExporter();
};
#include "CivInpImpoter.h"
CivInpImpoter::CivInpImpoter()
{
}
CivInpImpoter::~CivInpImpoter()
{
}
bool CivInpImpoter::load(const std::string& inppath)
{
return true;
}
bool CivInpImpoter::export()
{
return true;
}
#pragma once
#include <string>
/**
inpļ
*/
class CivInpImpoter
{
public:
CivInpImpoter();
~CivInpImpoter();
bool load(const std::string& inppath);
bool export();
private:
};
#include "CivInpObserver.h"
CivInpObserver::~CivInpObserver()
{
}
void CivInpObserver::subject(CivInpSubject* subject)
{
}
\ No newline at end of file
#pragma once
#include "CivInpSubject.h"
#include <list>
class CivInpSubject;
/**
* inp导入观察者抽象类
*/
class CivInpObserver
{
public:
virtual ~CivInpObserver();
/**
*@brief 状态更新,具体子类实现
* @param [sub] 给观察者
*/
virtual void update(CivInpSubject* sub) = 0;
/**
*@brief 登记被观察的对象
* @param [subject] 具体的被观察者
*/
void subject(CivInpSubject* subject);
protected:
CivInpSubject* mSubject;
};
#include "CivInpSubject.h"
#include "CivInpObserver.h"
CivInpSubject::~CivInpSubject()
{
}
void CivInpSubject::attach(CivInpObserver* obsever)
{
mObservers.push_back(obsever);
}
void CivInpSubject::detach(CivInpObserver* obsever)
{
std::list<CivInpObserver*>::iterator it = std::find(mObservers.begin(), mObservers.end(), obsever);
if (it != mObservers.end())
{
std::swap(*it, mObservers.back());
mObservers.pop_back();
}
}
void CivInpSubject::notify()
{
std::list<CivInpObserver*>::const_iterator const_iter = mObservers.cbegin();
for (; const_iter != mObservers.cend(); const_iter++)
{
(*const_iter)->update(this);
}
}
void CivInpSubject::setState(const State& st)
{
mState = st;
}
State CivInpSubject::state()
{
return mState;
}
\ No newline at end of file
#pragma once
#include <list>
#include<string>
typedef std::string State;
class CivInpObserver;
/**
* inp文件
*/
class CivInpSubject
{
public:
virtual ~CivInpSubject();
/**
* @brief 绑定观察者
* @param [obsever] 观察者对象
*/
void attach(CivInpObserver* obsever);
/**
* @brief 解除观察者
* @param [obsever] 观察者对象
*/
void detach(CivInpObserver* obsever);
/**
*@brief 发送通知
*/
virtual void notify();
/**
*@brief 设置状态
*/
virtual void setState(const State& st) ;
/**
*@brief 获取状态,子类实现
*/
virtual State state() ;
protected:
State mState; // 更新状态
private:
std::list<CivInpObserver*> mObservers; // 众多观察者
};
#include "CivInpVector.h"
CivInpVector::CivInpVector()
{
}
CivInpVector::~CivInpVector()
{
}
\ No newline at end of file
#pragma once
/*
inpļ
*/
class CivInpVector
{
public:
CivInpVector();
~CivInpVector();
private:
};
#pragma once
#if defined(PANDAINPCORE_DLL)
#if defined(PANDAINPCORE_EXPORTS)
#if defined(_MSC_VER)
#define PANDAINPCORE_API __declspec(dllexport)
#else
#define PANDAINPCORE_API
#endif
#else
#if defined(_MSC_VER)
#define PANDAINPCORE_API __declspec(dllimport)
#else
#define PANDAINPCONVENTOR_API
#endif
#endif
#else
#define PANDADBMANAGER_API
#endif
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug|Win32">
<Configuration>Debug</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|Win32">
<Configuration>Release</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Debug|x64">
<Configuration>Debug</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|x64">
<Configuration>Release</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<VCProjectVersion>16.0</VCProjectVersion>
<Keyword>Win32Proj</Keyword>
<ProjectGuid>{1363870b-c5ec-4a75-b73e-3d71f6d60052}</ProjectGuid>
<RootNamespace>pandaInpConventor</RootNamespace>
<WindowsTargetPlatformVersion>10.0</WindowsTargetPlatformVersion>
<ProjectName>pandaInpCore</ProjectName>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<PlatformToolset>v142</PlatformToolset>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<PlatformToolset>v142</PlatformToolset>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<PlatformToolset>v142</PlatformToolset>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<PlatformToolset>v142</PlatformToolset>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
</ImportGroup>
<ImportGroup Label="Shared">
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<LinkIncremental>true</LinkIncremental>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<LinkIncremental>false</LinkIncremental>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<LinkIncremental>true</LinkIncremental>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<LinkIncremental>false</LinkIncremental>
<OutDir>..\..\hModelProgram\Program\</OutDir>
<IntDir>..\temp\$(ProjectName)\$(Platform)\$(Configuration)\</IntDir>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>
<SDLCheck>true</SDLCheck>
<PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<ConformanceMode>true</ConformanceMode>
</ClCompile>
<Link>
<SubSystem>Console</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<SDLCheck>true</SDLCheck>
<PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<ConformanceMode>true</ConformanceMode>
</ClCompile>
<Link>
<SubSystem>Console</SubSystem>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
<GenerateDebugInformation>true</GenerateDebugInformation>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>
<SDLCheck>true</SDLCheck>
<PreprocessorDefinitions>_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<ConformanceMode>true</ConformanceMode>
</ClCompile>
<Link>
<SubSystem>Console</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<SDLCheck>true</SDLCheck>
<PreprocessorDefinitions>NDEBUG;_CONSOLE;PANDAINPCORE_DLL;PANDAINPCORE_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<ConformanceMode>true</ConformanceMode>
</ClCompile>
<Link>
<SubSystem>Console</SubSystem>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
<GenerateDebugInformation>true</GenerateDebugInformation>
</Link>
</ItemDefinitionGroup>
<ItemGroup>
<ClInclude Include="CivInpExporter.h" />
<ClInclude Include="CivInpImpoter.h" />
<ClInclude Include="CivInpObserver.h" />
<ClInclude Include="CivInpSubject.h" />
<ClInclude Include="CivInpVector.h" />
<ClInclude Include="pandaInpCore.h" />
</ItemGroup>
<ItemGroup>
<ClCompile Include="CivInpExporter.cpp" />
<ClCompile Include="CivInpImpoter.cpp" />
<ClCompile Include="CivInpObserver.cpp" />
<ClCompile Include="CivInpSubject.cpp" />
<ClCompile Include="CivInpVector.cpp" />
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
</Project>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<Filter Include="源文件">
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
<Extensions>cpp;c;cc;cxx;c++;cppm;ixx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
</Filter>
<Filter Include="头文件">
<UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
<Extensions>h;hh;hpp;hxx;h++;hm;inl;inc;ipp;xsd</Extensions>
</Filter>
<Filter Include="资源文件">
<UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
<Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions>
</Filter>
</ItemGroup>
<ItemGroup>
<ClCompile Include="CivInpVector.cpp">
<Filter>源文件</Filter>
</ClCompile>
<ClCompile Include="CivInpObserver.cpp">
<Filter>源文件</Filter>
</ClCompile>
<ClCompile Include="CivInpSubject.cpp">
<Filter>源文件</Filter>
</ClCompile>
<ClCompile Include="CivInpImpoter.cpp">
<Filter>源文件</Filter>
</ClCompile>
<ClCompile Include="CivInpExporter.cpp">
<Filter>源文件</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
<ClInclude Include="CivInpExporter.h">
<Filter>头文件</Filter>
</ClInclude>
<ClInclude Include="CivInpImpoter.h">
<Filter>头文件</Filter>
</ClInclude>
<ClInclude Include="CivInpObserver.h">
<Filter>头文件</Filter>
</ClInclude>
<ClInclude Include="CivInpSubject.h">
<Filter>头文件</Filter>
</ClInclude>
<ClInclude Include="CivInpVector.h">
<Filter>头文件</Filter>
</ClInclude>
<ClInclude Include="pandaInpCore.h">
<Filter>头文件</Filter>
</ClInclude>
</ItemGroup>
</Project>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="Current" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup />
</Project>
\ No newline at end of file
#include "CivAttributes.h"
CivAttributes::CivAttributes(const Params& params)
{
mParams = params;
}
void CivAttributes::setAttribute(const std::string& name, const CivVariant& value)
{
mParams.insert(Pair(name, value));
}
CivVariant CivAttributes::attribute(const std::string& name)
{
}
void CivAttributes::merge(const CivAttributes&)
{
}
\ No newline at end of file
#pragma once
#include <string>
#include <map>
#include "CivVariant.h"
using namespace std;
class CivVariant;
/**
属性类
*/
class CivAttributes
{
public:
typedef pair<string, CivVariant> Pair;
typedef map<string, CivVariant> Params;
CivAttributes() = default;
CivAttributes(const Params& params);
/**
* @brief 添加单个属性
* @param [name] 属性名
* @param [value] 属性值
*/
void setAttribute(const std::string& name,const CivVariant& value);
/**
* @brief 属性合并
* @param [params] 另一个属性集合
*/
void merge(const CivAttributes& );
/**
*@brief 根据属性名,获取单个属性值
* @param [name] 属性名
*/
CivVariant attribute(const std::string& name);
private:
Params mParams;
};
#include "CivFeature.h"
CivFeature::CivFeature(const CivGeometry& geom)
:mGeometry(geom)
{
}
CivFeature::~CivFeature()
{
}
void CivFeature::setGeometry(const CivGeometry& geo)
{
mGeometry = geo;
}
void CivFeature::addAttributes(const CivAttributes& attributes)
{
}
#pragma once
#include "CivAttributes.h"
#include "CivGeometry.h"
/**
要素类
*/
class CivFeature
{
public:
typedef int FeatureId;
CivFeature(const CivGeometry& geom );
CivFeature() = default;
~CivFeature();
void setGeometry(const CivGeometry& geo);
void addAttributes(const CivAttributes& attributes);
private:
FeatureId mFeaId; // 要素id
CivGeometry mGeometry; // 几何体类型
CivAttributes mAttributes; // 属性集合
};
#include "CivGeometry.h"
CivGeometry::CivGeometry(GeometryType type)
{
}
CivGeometry::~CivGeometry()
{
}
CivGeometry CivGeometry::fromWktext(const std::string& json)
{
}
\ No newline at end of file
#pragma once
#include <string>
#include <vector>
#include <map>
/**
空间几何体对象
*/
class CivGeometry
{
public:
// 几何体类型
enum GeometryType
{
SingleLine, // 单线
MultiLine, // 多线
Point, // 点
Polygon // 面
};
CivGeometry(GeometryType type);
~CivGeometry();
/**
* @brief 根据文本生成集合体对象
* @param [text] 根据文本文件生成集合体对象
*/
static CivGeometry fromWktext(const std::string& text);
// 几何体类型
GeometryType type() const { return mGeometryType; }
private:
GeometryType mGeometryType;
};
#pragma once
/**
Ԫ
*/
class CivMetaType {
public:
enum Type
{
Bool,
Int,
Str,
Double,
Float
};
};
#include "CivVariant.h"
CivVariant::~CivVariant()
{
}
CivVariant::CivVariant(Type type)
{
}
CivVariant::CivVariant(const CivVariant& other)
{
}
CivVariant::CivVariant(int i)
{
}
CivVariant::CivVariant(bool b)
{
}
CivVariant::CivVariant(double d)
{
}
CivVariant::CivVariant(float f)
{
}
CivVariant::Type CivVariant::type() const
{
}
int CivVariant::userType() const
{
int res = 0;
return res;
}
const char* CivVariant::typeName() const
{
return nullptr;
}
bool CivVariant::canConvert(int targetTypeId) const
{
}
bool CivVariant::convert(int targetTypeId)
{
return true;
}
inline bool CivVariant::isValid() const
{
return true;
}
bool CivVariant::isNull() const
{
return true;
}
void CivVariant::clear()
{
}
void CivVariant::detach()
{
}
inline bool CivVariant::isDetached() const
{
return true;
}
int CivVariant::toInt(bool* ok) const
{
int res = 0;
return res;
}
bool CivVariant::toBool() const
{
return true;
}
double CivVariant::toDouble(bool* ok) const
{
double ss = 0;
return ss;
}
float CivVariant::toFloat(bool* ok) const
{
float ff = 0;
return ff;
}
const char* CivVariant::typeToName(int typeId)
{
return nullptr;
}
CivVariant::Type CivVariant::nameToType(const char* name)
{
return Type::Bool;
}
void* CivVariant::data()
{
}
const void* CivVariant::constData() const
{
return nullptr;
}
\ No newline at end of file
#pragma once
#include "CivMetaType.h"
/**
ԭ
*/
class CivVariant
{
public:
typedef CivMetaType::Type Type;
~CivVariant();
CivVariant(Type type);
CivVariant(const CivVariant& other);
CivVariant(int i);
CivVariant(bool b);
CivVariant(double d);
CivVariant(float f);
Type type() const;
int userType() const;
const char* typeName() const;
bool canConvert(int targetTypeId) const;
bool convert(int targetTypeId);
inline bool isValid() const;
bool isNull() const;
void clear();
void detach();
inline bool isDetached() const;
int toInt(bool* ok = nullptr) const;
bool toBool() const;
double toDouble(bool* ok = nullptr) const;
float toFloat(bool* ok = nullptr) const;
static const char* typeToName(int typeId);
static Type nameToType(const char* name);
void* data();
const void* constData() const;
inline const void* data() const { return constData(); }
private:
};
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug|Win32">
<Configuration>Debug</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|Win32">
<Configuration>Release</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Debug|x64">
<Configuration>Debug</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|x64">
<Configuration>Release</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<VCProjectVersion>16.0</VCProjectVersion>
<Keyword>Win32Proj</Keyword>
<ProjectGuid>{dc519c2b-2f79-461f-a6f1-e8795d9dbe3e}</ProjectGuid>
<RootNamespace>pandaWaterCore</RootNamespace>
<WindowsTargetPlatformVersion>10.0</WindowsTargetPlatformVersion>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<PlatformToolset>v142</PlatformToolset>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<PlatformToolset>v142</PlatformToolset>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<PlatformToolset>v142</PlatformToolset>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<PlatformToolset>v142</PlatformToolset>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
</ImportGroup>
<ImportGroup Label="Shared">
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<LinkIncremental>true</LinkIncremental>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<LinkIncremental>false</LinkIncremental>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<LinkIncremental>true</LinkIncremental>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<LinkIncremental>false</LinkIncremental>
<OutDir>..\..\hModelProgram\Program\</OutDir>
<IntDir>..\temp\$(ProjectName)\$(Platform)\$(Configuration)\</IntDir>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>
<SDLCheck>true</SDLCheck>
<PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<ConformanceMode>true</ConformanceMode>
</ClCompile>
<Link>
<SubSystem>Console</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<SDLCheck>true</SDLCheck>
<PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<ConformanceMode>true</ConformanceMode>
</ClCompile>
<Link>
<SubSystem>Console</SubSystem>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
<GenerateDebugInformation>true</GenerateDebugInformation>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>
<SDLCheck>true</SDLCheck>
<PreprocessorDefinitions>_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<ConformanceMode>true</ConformanceMode>
</ClCompile>
<Link>
<SubSystem>Console</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<SDLCheck>true</SDLCheck>
<PreprocessorDefinitions>NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<ConformanceMode>true</ConformanceMode>
</ClCompile>
<Link>
<SubSystem>Console</SubSystem>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
<GenerateDebugInformation>true</GenerateDebugInformation>
</Link>
</ItemDefinitionGroup>
<ItemGroup>
<ClInclude Include="CivAttributes.h" />
<ClInclude Include="CivFeature.h" />
<ClInclude Include="CivGeometry.h" />
<ClInclude Include="CivMetaType.h" />
<ClInclude Include="CivVariant.h" />
</ItemGroup>
<ItemGroup>
<ClCompile Include="CivAttributes.cpp" />
<ClCompile Include="CivFeature.cpp" />
<ClCompile Include="CivGeometry.cpp" />
<ClCompile Include="CivVariant.cpp" />
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
</Project>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<Filter Include="源文件">
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
<Extensions>cpp;c;cc;cxx;c++;cppm;ixx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
</Filter>
<Filter Include="头文件">
<UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
<Extensions>h;hh;hpp;hxx;h++;hm;inl;inc;ipp;xsd</Extensions>
</Filter>
<Filter Include="资源文件">
<UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
<Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions>
</Filter>
</ItemGroup>
<ItemGroup>
<ClInclude Include="CivAttributes.h">
<Filter>头文件</Filter>
</ClInclude>
<ClInclude Include="CivFeature.h">
<Filter>头文件</Filter>
</ClInclude>
<ClInclude Include="CivGeometry.h">
<Filter>头文件</Filter>
</ClInclude>
<ClInclude Include="CivMetaType.h">
<Filter>头文件</Filter>
</ClInclude>
<ClInclude Include="CivVariant.h">
<Filter>头文件</Filter>
</ClInclude>
</ItemGroup>
<ItemGroup>
<ClCompile Include="CivAttributes.cpp">
<Filter>源文件</Filter>
</ClCompile>
<ClCompile Include="CivFeature.cpp">
<Filter>源文件</Filter>
</ClCompile>
<ClCompile Include="CivGeometry.cpp">
<Filter>源文件</Filter>
</ClCompile>
<ClCompile Include="CivVariant.cpp">
<Filter>源文件</Filter>
</ClCompile>
</ItemGroup>
</Project>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="Current" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup />
</Project>
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment