use the existing scalar fields when available

This commit is contained in:
Paul Leroy
2023-05-30 21:49:18 +02:00
parent d55696991f
commit bcc77db21f
7 changed files with 42 additions and 10 deletions
+16
View File
@@ -29,6 +29,10 @@
void SFCollector::push(ccPointCloud* cloud, CCCoreLib::ScalarField* sf, Behavior behavior)
{
assert(!scalarFields.contains(sf));
if (scalarFields.contains(sf))
ccLog::Warning(QString("[SFCollector] scalar field '%1' HAS ALREADY BEEN COLLECTED").arg(sf->getName()) + ", behaviour " + QString::number(behavior));
else
ccLog::Warning(QString("[SFCollector] collect scalar field '%1'").arg(sf->getName()) + ", behaviour " + QString::number(behavior));
SFDesc desc;
desc.behavior = behavior;
desc.cloud = cloud;
@@ -63,3 +67,15 @@ void SFCollector::releaseSFs(bool keepByDefault)
scalarFields.clear();
}
bool SFCollector::setBehavior(CCCoreLib::ScalarField *sf, Behavior behavior)
{
if (scalarFields.contains(sf))
{
Behavior previousBehavior = scalarFields[sf].behavior;
scalarFields[sf].behavior = behavior;
ccLog::Warning("behavior of " + QString(sf->getName()) + " changed from " + QString::number(previousBehavior) + " to " + QString::number(behavior));
}
return true;
}