Skip some files in ig build when possible

This commit is contained in:
kaetemi 2014-02-09 00:46:03 +01:00
parent 13e3849c89
commit 06e8090669
3 changed files with 156 additions and 106 deletions

View file

@ -205,6 +205,7 @@ struct SOptions : public SExportOptions
{
CIXml xml (true);
xml.init (fileIn);
ZoneRegionFile = filename;
ZoneRegion = new CZoneRegion;
ZoneRegion->serial (xml);
}

View file

@ -2402,6 +2402,24 @@ void CExport::transformCMB (const std::string &name, const NLMISC::CMatrix &tran
_ExportCB->dispWarning("Can't find " + cmbNoExtension + ".cmb");
return;
}
std::string outFileName = _Options->OutCMBDir +"/" + cmbNoExtension + ".cmb";
bool needUpdate = true;
if (CFile::fileExists(outFileName))
{
uint32 outModification = CFile::getFileModificationDate(outFileName);
needUpdate =
CFile::getFileModificationDate(cmbName) > outModification
|| (CFile::fileExists(_Options->HeightMapFile) && (CFile::getFileModificationDate(_Options->HeightMapFile) > outModification))
|| (CFile::fileExists(_Options->HeightMapFile2) && (CFile::getFileModificationDate(_Options->HeightMapFile2) > outModification))
|| (CFile::fileExists(_Options->ContinentFile) && (CFile::getFileModificationDate(_Options->ContinentFile) > outModification))
|| (CFile::fileExists(_Options->ZoneRegionFile) && (CFile::getFileModificationDate(_Options->ZoneRegionFile) > outModification));
}
if (needUpdate)
{
if (_ExportCB != NULL)
_ExportCB->dispInfo("UPDATE " + cmbName);
printf("UPDATE %s\n", cmbName.c_str());
CIFile inStream;
if (inStream.open(cmbName))
{
@ -2412,7 +2430,6 @@ void CExport::transformCMB (const std::string &name, const NLMISC::CMatrix &tran
// translate and save
cmb.transform (transfo);
COFile outStream;
std::string outFileName = _Options->OutCMBDir +"/" + cmbNoExtension + ".cmb";
if (!outStream.open(outFileName))
{
if (_ExportCB != NULL)
@ -2453,6 +2470,13 @@ void CExport::transformCMB (const std::string &name, const NLMISC::CMatrix &tran
_ExportCB->dispWarning("Unable to open " + cmbName);
}
}
else
{
if (_ExportCB != NULL)
_ExportCB->dispInfo("SKIP " + cmbName);
printf("SKIP %s\n", cmbName.c_str());
}
}
// ---------------------------------------------------------------------------
void CExport::transformAdditionnalIG (const std::string &name, const NLMISC::CMatrix &transfo, const NLMISC::CQuat &rotTransfo) const
@ -2471,6 +2495,24 @@ void CExport::transformAdditionnalIG (const std::string &name, const NLMISC::CMa
_ExportCB->dispWarning("Can't find " + igNoExtension + ".cmb");
return;
}
std::string outFileName = _Options->AdditionnalIGOutDir +"/" + igNoExtension + ".ig";
bool needUpdate = true;
if (CFile::fileExists(outFileName))
{
uint32 outModification = CFile::getFileModificationDate(outFileName);
needUpdate =
CFile::getFileModificationDate(igName) > outModification
|| (CFile::fileExists(_Options->HeightMapFile) && (CFile::getFileModificationDate(_Options->HeightMapFile) > outModification))
|| (CFile::fileExists(_Options->HeightMapFile2) && (CFile::getFileModificationDate(_Options->HeightMapFile2) > outModification))
|| (CFile::fileExists(_Options->ContinentFile) && (CFile::getFileModificationDate(_Options->ContinentFile) > outModification))
|| (CFile::fileExists(_Options->ZoneRegionFile) && (CFile::getFileModificationDate(_Options->ZoneRegionFile) > outModification));
}
if (needUpdate)
{
if (_ExportCB != NULL)
_ExportCB->dispInfo("UPDATE " + igName);
printf("UPDATE %s\n", igName.c_str());
CIFile inStream;
if (inStream.open(igName))
{
@ -2524,7 +2566,6 @@ void CExport::transformAdditionnalIG (const std::string &name, const NLMISC::CMa
igOut.enableRealTimeSunContribution(realTimeSuncontribution);
COFile outStream;
std::string outFileName = _Options->AdditionnalIGOutDir +"/" + igNoExtension + ".ig";
if (!outStream.open(outFileName))
{
if (_ExportCB != NULL)
@ -2565,6 +2606,13 @@ void CExport::transformAdditionnalIG (const std::string &name, const NLMISC::CMa
_ExportCB->dispWarning("Unable to open " + igName);
}
}
else
{
if (_ExportCB != NULL)
_ExportCB->dispInfo("SKIP " + igName);
printf("SKIP %s\n", igName.c_str());
}
}
// ---------------------------------------------------------------------------
void CExport::exportCMBAndAdditionnalIGs()

View file

@ -107,6 +107,7 @@ struct SExportOptions
// Options not saved
std::string ZoneRegionFile;
NLLIGO::CZoneRegion *ZoneRegion; // The region to make
float CellSize;
float Threshold;