Commit 9240e10eca3b99e9383dfd3d4bc0ed6bc4a73829

Authored by Josh Klontz
1 parent 6fca8a7f

implemented -noDuplicates

sdk/core/core.cpp
@@ -124,6 +124,8 @@ struct AlgorithmCore @@ -124,6 +124,8 @@ struct AlgorithmCore
124 Globals->totalSteps = i.size(); 124 Globals->totalSteps = i.size();
125 Globals->startTime.start(); 125 Globals->startTime.start();
126 126
  127 + const bool noDuplicates = gallery.contains("noDuplicates");
  128 + QStringList fileNames = noDuplicates ? fileList.names() : QStringList();
127 const int subBlockSize = 4*std::max(1, Globals->parallelism); 129 const int subBlockSize = 4*std::max(1, Globals->parallelism);
128 const int numSubBlocks = ceil(1.0*Globals->blockSize/subBlockSize); 130 const int numSubBlocks = ceil(1.0*Globals->blockSize/subBlockSize);
129 int totalCount = 0, failureCount = 0; 131 int totalCount = 0, failureCount = 0;
@@ -132,6 +134,10 @@ struct AlgorithmCore @@ -132,6 +134,10 @@ struct AlgorithmCore
132 for (int subBlock = 0; subBlock<numSubBlocks; subBlock++) { 134 for (int subBlock = 0; subBlock<numSubBlocks; subBlock++) {
133 TemplateList data = i.mid(block*Globals->blockSize + subBlock*subBlockSize, subBlockSize); 135 TemplateList data = i.mid(block*Globals->blockSize + subBlock*subBlockSize, subBlockSize);
134 if (data.isEmpty()) break; 136 if (data.isEmpty()) break;
  137 + if (noDuplicates)
  138 + for (int i=data.size()-1; i>=0; i--)
  139 + if (fileNames.contains(data[i].file.name))
  140 + data.removeAt(i);
135 const int numFiles = data.size(); 141 const int numFiles = data.size();
136 142
137 if (Globals->backProject) { 143 if (Globals->backProject) {
sdk/openbr_plugin.h
@@ -505,6 +505,12 @@ public: @@ -505,6 +505,12 @@ public:
505 Q_PROPERTY(float ageDelta READ get_ageDelta WRITE set_ageDelta RESET reset_ageDelta) 505 Q_PROPERTY(float ageDelta READ get_ageDelta WRITE set_ageDelta RESET reset_ageDelta)
506 BR_PROPERTY(float, ageDelta, std::numeric_limits<float>::max()) 506 BR_PROPERTY(float, ageDelta, std::numeric_limits<float>::max())
507 507
  508 + /*!
  509 + * \brief If \c true a template will be skipped over if its file name already exists in the gallery.
  510 + */
  511 + Q_PROPERTY(bool noDuplicates READ get_noDuplicates WRITE set_noDuplicates RESET reset_noDuplicates)
  512 + BR_PROPERTY(bool, noDuplicates, false)
  513 +
508 QHash<QString,QString> abbreviations; /*!< \brief Used by br::Transform::make() to expand abbreviated algorithms into their complete definitions. */ 514 QHash<QString,QString> abbreviations; /*!< \brief Used by br::Transform::make() to expand abbreviated algorithms into their complete definitions. */
509 QHash<QString,int> classes; /*!< \brief Used by classifiers to associate text class labels with unique integers IDs. */ 515 QHash<QString,int> classes; /*!< \brief Used by classifiers to associate text class labels with unique integers IDs. */
510 QTime startTime; /*!< \brief Used to estimate timeRemaining(). */ 516 QTime startTime; /*!< \brief Used to estimate timeRemaining(). */