|
|
|
|
|
#include "Raster.h"
|
|
|
|
|
|
#include "ThicknessVector.h"
|
|
|
|
|
|
#include "QZkJsonParser.h"
|
|
|
|
|
|
#include "QDebug"
|
|
|
|
|
|
#pragma execution_character_set("utf-8")
|
|
|
|
|
|
CRaster::CRaster(QString strPath)
|
|
|
|
|
|
: m_pThickness(NULL), m_pRasSt(NULL), m_strPath(strPath)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_pThickness = new ThicknessVector();
|
|
|
|
|
|
m_pRasSt = new RasterST;
|
|
|
|
|
|
m_pRasCom = new RasterCom;
|
|
|
|
|
|
readRasterJson();
|
|
|
|
|
|
m_pThickness->setRasterST(m_pRasSt);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
CRaster::~CRaster()
|
|
|
|
|
|
{
|
|
|
|
|
|
delete m_pRasSt;
|
|
|
|
|
|
delete m_pRasCom;
|
|
|
|
|
|
delete m_pThickness;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
RasterST * CRaster::getRasterSt() const
|
|
|
|
|
|
{
|
|
|
|
|
|
return m_pRasSt;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
bool CRaster::readRasterJson()
|
|
|
|
|
|
{
|
|
|
|
|
|
//!><3E><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>ģʽ<C4A3><CABD>Ϣ <20>Ƿ<C7B7>good<6F><64>ͼƬ <20>Ƿ<C7B7>bad<61><64>ͼƬ <20>Ƿ<EFBFBD>ʹ<EFBFBD>õ<EFBFBD><C3B5><EFBFBD>ģʽ
|
|
|
|
|
|
|
|
|
|
|
|
QJsonObject jsRaster = QZkJsonParser::ReadJsonAuto(m_strPath);
|
|
|
|
|
|
QJsonObject Rsaterobj = jsRaster.value("Raster").toObject();
|
|
|
|
|
|
if (!Rsaterobj.isEmpty()) {
|
|
|
|
|
|
m_pRasSt->m_beilv = Rsaterobj.value("beilv").toDouble(5.07);
|
|
|
|
|
|
m_pRasSt->m_baseHight = Rsaterobj.value("basehight").toDouble(87);
|
|
|
|
|
|
m_pRasSt->mid_value = Rsaterobj.value("mid_value").toDouble(0.8);//<2F><>ֵ
|
|
|
|
|
|
m_pRasSt->m_maxsize = Rsaterobj.value("maxsize").toInt(10);
|
|
|
|
|
|
m_pRasSt->m_lowNum = Rsaterobj.value("lowNum").toInt(0);
|
|
|
|
|
|
m_pRasSt->m_bool_beilv = Rsaterobj.value("beilv_bool").toBool(false);
|
|
|
|
|
|
m_pRasSt->m_bool_baseHight = Rsaterobj.value("basehight_bool").toBool(false);
|
|
|
|
|
|
m_pRasSt->m_bool_maxsize = Rsaterobj.value("maxsize_bool").toBool(false);
|
|
|
|
|
|
m_pRasSt->m_bool_lowNum = Rsaterobj.value("lowNum_bool").toBool(false);
|
|
|
|
|
|
m_pRasSt->m_bool_mid_value = Rsaterobj.value("mid_value_bool").toBool(false);
|
|
|
|
|
|
}
|
|
|
|
|
|
else {
|
|
|
|
|
|
saveRasterJson(EMTYPE_RASTER);
|
|
|
|
|
|
}
|
|
|
|
|
|
QJsonObject RasterComObj = jsRaster.value("COM").toObject();
|
|
|
|
|
|
if (!RasterComObj.isEmpty()) {
|
|
|
|
|
|
m_pRasCom->m_ComName = RasterComObj.value("comName").toString();
|
|
|
|
|
|
m_pRasCom->m_Baute = RasterComObj.value("baute").toString();
|
|
|
|
|
|
m_pRasCom->m_UseRaster = RasterComObj.value("useRaster").toBool();
|
|
|
|
|
|
}
|
|
|
|
|
|
else{
|
|
|
|
|
|
saveRasterJson(EMTYPE_COM);
|
|
|
|
|
|
}
|
|
|
|
|
|
return true;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
bool CRaster::saveRasterJson(emTySaveJsonType emType)
|
|
|
|
|
|
{
|
|
|
|
|
|
QJsonObject mObj = QZkJsonParser::ReadJsonAuto(m_strPath);
|
|
|
|
|
|
switch (emType)
|
|
|
|
|
|
{
|
|
|
|
|
|
case EMTYPE_RASTER:{
|
|
|
|
|
|
QJsonObject Rasterobj;
|
|
|
|
|
|
Rasterobj.insert("beilv", QJsonValue(m_pRasSt->m_beilv));
|
|
|
|
|
|
Rasterobj.insert("basehight", QJsonValue(m_pRasSt->m_baseHight));
|
|
|
|
|
|
Rasterobj.insert("mid_value", QJsonValue(m_pRasSt->mid_value));//<2F><>ֵ
|
|
|
|
|
|
Rasterobj.insert("maxsize", QJsonValue(m_pRasSt->m_maxsize));
|
|
|
|
|
|
Rasterobj.insert("lowNum", QJsonValue(m_pRasSt->m_lowNum));
|
|
|
|
|
|
Rasterobj.insert("beilv_bool", QJsonValue(m_pRasSt->m_bool_beilv));
|
|
|
|
|
|
Rasterobj.insert("basehight_bool", QJsonValue(m_pRasSt->m_bool_baseHight));
|
|
|
|
|
|
Rasterobj.insert("maxsize_bool", QJsonValue(m_pRasSt->m_bool_maxsize));
|
|
|
|
|
|
Rasterobj.insert("lowNum_bool", QJsonValue(m_pRasSt->m_bool_lowNum));
|
|
|
|
|
|
Rasterobj.insert("mid_value_bool", QJsonValue(m_pRasSt->m_bool_mid_value));
|
|
|
|
|
|
mObj.insert("Raster", Rasterobj);
|
|
|
|
|
|
}
|
|
|
|
|
|
break;
|
|
|
|
|
|
case EMTYPE_COM:{
|
|
|
|
|
|
QJsonObject Rasterobj;
|
|
|
|
|
|
Rasterobj.insert("comName", QJsonValue(m_pRasCom->m_ComName));
|
|
|
|
|
|
Rasterobj.insert("baute", QJsonValue(m_pRasCom->m_Baute));
|
|
|
|
|
|
Rasterobj.insert("useRaster", QJsonValue(m_pRasCom->m_UseRaster));
|
|
|
|
|
|
mObj.insert("COM", Rasterobj);
|
|
|
|
|
|
}
|
|
|
|
|
|
break;
|
|
|
|
|
|
default:
|
|
|
|
|
|
break;
|
|
|
|
|
|
}
|
|
|
|
|
|
QZkJsonParser::WriteJsonObject(m_strPath, mObj);
|
|
|
|
|
|
return true;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
QString CRaster::getThicknessListStr()
|
|
|
|
|
|
{
|
|
|
|
|
|
QList<double> m = getThicknessList();/*<2A><>ʾ<EFBFBD>˲<EFBFBD><CBB2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>*/
|
|
|
|
|
|
QString str = "thickness list: ";
|
|
|
|
|
|
for (int i = 0; i < m.size(); i++)
|
|
|
|
|
|
{
|
|
|
|
|
|
str += QString::number(m.at(i)) + " ";
|
|
|
|
|
|
}
|
|
|
|
|
|
str += "; value = " + QString::number(m_pThickness->getValue());
|
|
|
|
|
|
qDebug() << str;
|
|
|
|
|
|
return str;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
double CRaster::getThicknessValue() const
|
|
|
|
|
|
{
|
|
|
|
|
|
//
|
|
|
|
|
|
// QList<double> m = getThicknessList();/*<2A><>ʾ<EFBFBD>˲<EFBFBD><CBB2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>*/
|
|
|
|
|
|
// QString str = "thickness value list: ";
|
|
|
|
|
|
// for (int i = 0; i < m.size(); i++)
|
|
|
|
|
|
// {
|
|
|
|
|
|
// str += QString::number(m.at(i)) + " ";
|
|
|
|
|
|
// }
|
|
|
|
|
|
// str += "; value = " + QString::number(m_pThickness->getValue());
|
|
|
|
|
|
// qDebug() << str;
|
|
|
|
|
|
return m_pThickness->getValue();
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void CRaster::addThicknessValue(double dValue)
|
|
|
|
|
|
{
|
|
|
|
|
|
double dThickness = (63 - dValue) * m_pRasSt->m_beilv*1.0;//<2F><>ȡ<EFBFBD><C8A1>դ<EFBFBD><D5A4><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20>ó<EFBFBD><C3B3>ڵ<EFBFBD><DAB5>ĺ<EFBFBD><C4BA><EFBFBD>
|
|
|
|
|
|
m_pThickness->addValue(dThickness + m_pRasSt->m_baseHight);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
bool CRaster::showRasterDlg()
|
|
|
|
|
|
{
|
|
|
|
|
|
// QRasterDlg dlg;
|
|
|
|
|
|
// dlg.SetData2UI(m_pRasSt);
|
|
|
|
|
|
// dlg.setWindowTitle("<22><>դ<EFBFBD>궨<EFBFBD><EAB6A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
|
|
|
|
|
// dlg.setWindowIcon(QIcon(":/image/leaper"));
|
|
|
|
|
|
// if (dlg.exec() == QDialog::Accepted)
|
|
|
|
|
|
// {
|
|
|
|
|
|
// dlg.GetDataFromUI(m_pRasSt);
|
|
|
|
|
|
// saveRasterJson();
|
|
|
|
|
|
// }
|
|
|
|
|
|
return true;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
QList<double> CRaster::getThicknessList() const
|
|
|
|
|
|
{
|
|
|
|
|
|
return m_pThickness->getList();
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
bool CRaster::setRasterSt(RasterST *m_pRaster)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (m_pRasSt){
|
|
|
|
|
|
m_pRasSt = m_pRaster;
|
|
|
|
|
|
}
|
|
|
|
|
|
return true;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
RasterCom * CRaster::getRasterCom() const
|
|
|
|
|
|
{
|
|
|
|
|
|
return m_pRasCom;
|
|
|
|
|
|
}
|