bool rspfSFIMFusion::loadState(const rspfKeywordlist& kwl, const char* prefix) { rspfFusionCombiner::loadState(kwl, prefix); loadAdjustments(kwl, prefix); adjustableParametersChanged(); rspfString autoAdjustScales = kwl.find(prefix, "auto_adjust_scales"); if(!autoAdjustScales.empty()) { theAutoAdjustScales = autoAdjustScales.toBool(); } return true; }
//***************************************************************************** // METHOD: ossimRpcProjection::loadState() // // Restores the model's state from the KWL. This KWL also serves as a // geometry file. // //***************************************************************************** bool ossimRpcProjection::loadState(const ossimKeywordlist& kwl, const char* prefix) { if (traceExec()) ossimNotify(ossimNotifyLevel_DEBUG) << "DEBUG ossimRpcProjection::loadState(): entering..." << std::endl; const char* value; const char* keyword; //*** // Pass on to the base-class for parsing first: //*** bool success = ossimProjection::loadState(kwl, prefix); if (!success) { theErrorStatus++; if (traceExec()) ossimNotify(ossimNotifyLevel_DEBUG) << "DEBUG ossimRpcProjection::loadState(): returning with error..." << std::endl; return false; } //*** // Continue parsing for local members: //*** keyword = POLY_TYPE_KW; value = kwl.find(prefix, keyword); if (!value) { ossimNotify(ossimNotifyLevel_FATAL) << "FATAL ossimRpcProjection::loadState(): Error encountered parsing the following required keyword: " << "<" << keyword << ">. Check the keywordlist for proper syntax." << std::endl; return false; } thePolyType = (PolynomialType) value[0]; keyword = LINE_SCALE_KW; value = kwl.find(prefix, keyword); if (!value) { ossimNotify(ossimNotifyLevel_FATAL) << "FATAL ossimRpcProjection::loadState(): Error encountered parsing the following required keyword: " << "<" << keyword << ">. Check the keywordlist for proper syntax." << std::endl; return false; } theLineScale = ossimString(value).toDouble(); keyword = SAMP_SCALE_KW; value = kwl.find(prefix, keyword); if (!value) { ossimNotify(ossimNotifyLevel_FATAL) << "FATAL ossimRpcProjection::loadState(): Error encountered parsing the following required keyword: " << "<" << keyword << ">. Check the keywordlist for proper syntax." << std::endl; return false; } theSampScale = ossimString(value).toDouble(); keyword = LAT_SCALE_KW; value = kwl.find(prefix, keyword); if (!value) { ossimNotify(ossimNotifyLevel_FATAL) << "FATAL ossimRpcProjection::loadState(): Error encountered parsing the following required keyword: " << "<" << keyword << ">. Check the keywordlist for proper syntax." << std::endl; return false; } theLatScale = ossimString(value).toDouble(); keyword = LON_SCALE_KW; value = kwl.find(prefix, keyword); if (!value) { ossimNotify(ossimNotifyLevel_FATAL) << "FATAL ossimRpcProjection::loadState(): Error encountered parsing the following required keyword: " << "<" << keyword << ">. Check the keywordlist for proper syntax." << std::endl; return false; } theLonScale = ossimString(value).toDouble(); keyword = HGT_SCALE_KW; value = kwl.find(prefix, keyword); if (!value) { ossimNotify(ossimNotifyLevel_FATAL) << "FATAL ossimRpcProjection::loadState(): Error encountered parsing the following required keyword: " << "<" << keyword << ">. Check the keywordlist for proper syntax." << std::endl; return false; } theHgtScale = ossimString(value).toDouble(); keyword = LINE_OFFSET_KW; value = kwl.find(prefix, keyword); if (!value) { ossimNotify(ossimNotifyLevel_FATAL) << "FATAL ossimRpcProjection::loadState(): Error encountered parsing the following required keyword: " << "<" << keyword << ">. Check the keywordlist for proper syntax." << std::endl; return false; } theLineOffset = ossimString(value).toDouble(); keyword = SAMP_OFFSET_KW; value = kwl.find(prefix, keyword); if (!value) { ossimNotify(ossimNotifyLevel_FATAL) << "FATAL ossimRpcProjection::loadState(): Error encountered parsing the following required keyword: " << "<" << keyword << ">. Check the keywordlist for proper syntax." << std::endl; return false; } theSampOffset = ossimString(value).toDouble(); keyword = LAT_OFFSET_KW; value = kwl.find(prefix, keyword); if (!value) { ossimNotify(ossimNotifyLevel_FATAL) << "FATAL ossimRpcProjection::loadState(): Error encountered parsing the following required keyword: " << "<" << keyword << ">. Check the keywordlist for proper syntax." << std::endl; return false; } theLatOffset = ossimString(value).toDouble(); keyword = LON_OFFSET_KW; value = kwl.find(prefix, keyword); if (!value) { ossimNotify(ossimNotifyLevel_FATAL) << "FATAL ossimRpcProjection::loadState(): Error encountered parsing the following required keyword: " << "<" << keyword << ">. Check the keywordlist for proper syntax." << std::endl; return false; } theLonOffset = ossimString(value).toDouble(); keyword = HGT_OFFSET_KW; value = kwl.find(prefix, keyword); if (!value) { ossimNotify(ossimNotifyLevel_FATAL) << "FATAL ossimRpcProjection::loadState(): Error encountered parsing the following required keyword: " << "<" << keyword << ">. Check the keywordlist for proper syntax." << std::endl; return false; } theHgtOffset = ossimString(value).toDouble(); for (int i=0; i<NUM_COEFFS; i++) { value = kwl.find(prefix, (LINE_NUM_COEF_KW+ossimString::toString(i)).c_str()); if (!value) { ossimNotify(ossimNotifyLevel_FATAL) << "FATAL ossimRpcProjection::loadState(): Error encountered parsing the following required keyword: " << "<" << keyword << ">. Check the keywordlist for proper syntax." << std::endl; return false; } theLineNumCoef[i] = ossimString(value).toDouble(); value = kwl.find(prefix, (LINE_DEN_COEF_KW+ossimString::toString(i)).c_str()); if (!value) { ossimNotify(ossimNotifyLevel_FATAL) << "FATAL ossimRpcProjection::loadState(): Error encountered parsing the following required keyword: " << "<" << keyword << ">. Check the keywordlist for proper syntax." << std::endl; return false; } theLineDenCoef[i] = ossimString(value).toDouble(); value = kwl.find(prefix, (SAMP_NUM_COEF_KW+ossimString::toString(i)).c_str()); if (!value) { ossimNotify(ossimNotifyLevel_FATAL) << "FATAL ossimRpcProjection::loadState(): Error encountered parsing the following required keyword: " << "<" << keyword << ">. Check the keywordlist for proper syntax." << std::endl; return false; } theSampNumCoef[i] = ossimString(value).toDouble(); value = kwl.find(prefix, (SAMP_DEN_COEF_KW+ossimString::toString(i)).c_str()); if (!value) { ossimNotify(ossimNotifyLevel_FATAL) << "FATAL ossimRpcProjection::loadState(): Error encountered parsing the following required keyword: " << "<" << keyword << ">. Check the keywordlist for proper syntax." << std::endl; return false; } theSampDenCoef[i] = ossimString(value).toDouble(); } loadAdjustments(kwl, prefix); if(getNumberOfAdjustableParameters() < 1) { initAdjustableParameters(); } if (traceExec()) ossimNotify(ossimNotifyLevel_DEBUG) << "DEBUG ossimRpcProjection::loadState(): returning..." << std::endl; return true; }