Win32-specific optimization in Points module

This commit is contained in:
wmayer
2018-10-08 18:50:03 +02:00
parent d9015da662
commit dbb96de677
2 changed files with 19 additions and 2 deletions

View File

@@ -40,6 +40,9 @@
#include "PointsPy.h"
#include <QtConcurrentMap>
#ifdef _WIN32
# include <ppl.h>
#endif
using namespace Points;
using namespace std;
@@ -389,9 +392,15 @@ void PropertyNormalList::transformGeometry(const Base::Matrix4D &mat)
aboutToSetValue();
// Rotate the normal vectors
#ifdef _WIN32
Concurrency::parallel_for_each(_lValueList.begin(), _lValueList.end(), [rot](Base::Vector3f& value) {
value = rot * value;
});
#else
QtConcurrent::blockingMap(_lValueList, [rot](Base::Vector3f& value) {
rot.multVec(value, value);
});
#endif
hasSetValue();
}