扩展网格属性插值数据配置

feature/Interpolation-20260803
lvjunjie 2 weeks ago
parent d3bb18b24f
commit da033b5a82

@ -72,6 +72,11 @@ struct NM_DATA_EXPORT nmPropertyInterpolationPointData {
struct NM_DATA_EXPORT nmPropertyInterpolationDataSet {
nmPropertyInterpolationDataSet()
: property("k"),
xDisplayUnit("m"),
yDisplayUnit("m"),
valueDisplayUnit("mD"),
rangeDisplayUnit("m"),
useForCalculation(false),
showPoints(true),
showLabels(true),
nugget(0.01),
@ -83,6 +88,12 @@ struct NM_DATA_EXPORT nmPropertyInterpolationDataSet {
QString name;
QString property;
// 仅记录界面显示单位坐标、Range及属性值始终按基准单位保存.
QString xDisplayUnit;
QString yDisplayUnit;
QString valueDisplayUnit;
QString rangeDisplayUnit;
bool useForCalculation;
QVector<nmPropertyInterpolationPointData> points;
bool showPoints;
bool showLabels;

@ -3530,7 +3530,7 @@ bool nmDataAnalyzeManager::ReadProjectData(const QString & filePath)
}
}
/* 读取属性插值数据组;旧成果没有该节点时保持为空 */
/* 读取属性插值数据组 */
if(doc.HasMember("PropertyInterpolationDataSets") &&
doc["PropertyInterpolationDataSets"].IsArray()) {
const rapidjson::Value& dataSetsJson = doc["PropertyInterpolationDataSets"];
@ -3548,6 +3548,36 @@ bool nmDataAnalyzeManager::ReadProjectData(const QString & filePath)
if(dataSetJson.HasMember("Property") && dataSetJson["Property"].IsString()) {
dataSet.property = QString::fromUtf8(dataSetJson["Property"].GetString());
}
if(dataSet.property == "h") {
dataSet.valueDisplayUnit = "m";
}
else if(dataSet.property == "phi") {
dataSet.valueDisplayUnit.clear();
}
if(dataSetJson.HasMember("XDisplayUnit") &&
dataSetJson["XDisplayUnit"].IsString()) {
dataSet.xDisplayUnit = QString::fromUtf8(
dataSetJson["XDisplayUnit"].GetString());
}
if(dataSetJson.HasMember("YDisplayUnit") &&
dataSetJson["YDisplayUnit"].IsString()) {
dataSet.yDisplayUnit = QString::fromUtf8(
dataSetJson["YDisplayUnit"].GetString());
}
if(dataSetJson.HasMember("ValueDisplayUnit") &&
dataSetJson["ValueDisplayUnit"].IsString()) {
dataSet.valueDisplayUnit = QString::fromUtf8(
dataSetJson["ValueDisplayUnit"].GetString());
}
if(dataSetJson.HasMember("RangeDisplayUnit") &&
dataSetJson["RangeDisplayUnit"].IsString()) {
dataSet.rangeDisplayUnit = QString::fromUtf8(
dataSetJson["RangeDisplayUnit"].GetString());
}
if(dataSetJson.HasMember("UseForCalculation") &&
dataSetJson["UseForCalculation"].IsBool()) {
dataSet.useForCalculation = dataSetJson["UseForCalculation"].GetBool();
}
if(dataSetJson.HasMember("ShowPoints") && dataSetJson["ShowPoints"].IsBool()) {
dataSet.showPoints = dataSetJson["ShowPoints"].GetBool();
}
@ -3808,7 +3838,7 @@ bool nmDataAnalyzeManager::WriteProjectData(const QString & filePath)
doc.AddMember("Layers", layersJsonArray, allocator);
/* 保存属性插值数据组 */
/* 保存属性插值数据组数值统一使用m、D等求解器基准单位 */
rapidjson::Value interpolationDataSetsJson(rapidjson::kArrayType);
for(int dataSetIndex = 0;
dataSetIndex < m_vecPropertyInterpolationDataSets.size();
@ -3823,6 +3853,19 @@ bool nmDataAnalyzeManager::WriteProjectData(const QString & filePath)
rapidjson::Value(nameUtf8.constData(), allocator).Move(), allocator);
dataSetJson.AddMember("Property",
rapidjson::Value(propertyUtf8.constData(), allocator).Move(), allocator);
QByteArray xDisplayUnitUtf8 = dataSet.xDisplayUnit.toUtf8();
QByteArray yDisplayUnitUtf8 = dataSet.yDisplayUnit.toUtf8();
QByteArray valueDisplayUnitUtf8 = dataSet.valueDisplayUnit.toUtf8();
QByteArray rangeDisplayUnitUtf8 = dataSet.rangeDisplayUnit.toUtf8();
dataSetJson.AddMember("XDisplayUnit",
rapidjson::Value(xDisplayUnitUtf8.constData(), allocator).Move(), allocator);
dataSetJson.AddMember("YDisplayUnit",
rapidjson::Value(yDisplayUnitUtf8.constData(), allocator).Move(), allocator);
dataSetJson.AddMember("ValueDisplayUnit",
rapidjson::Value(valueDisplayUnitUtf8.constData(), allocator).Move(), allocator);
dataSetJson.AddMember("RangeDisplayUnit",
rapidjson::Value(rangeDisplayUnitUtf8.constData(), allocator).Move(), allocator);
dataSetJson.AddMember("UseForCalculation", dataSet.useForCalculation, allocator);
dataSetJson.AddMember("ShowPoints", dataSet.showPoints, allocator);
dataSetJson.AddMember("ShowLabels", dataSet.showLabels, allocator);
dataSetJson.AddMember("Nugget", dataSet.nugget, allocator);

Loading…
Cancel
Save