From 30892988fd13ee1320b704f43c21ad87154a23f8 Mon Sep 17 00:00:00 2001 From: djairoh Date: Mon, 27 May 2024 11:04:34 +0200 Subject: [PATCH] added cellparticledensity to lcol --- .../src/layers/LColLayer.cpp | 33 ++++++++----------- .../src/layers/LColLayer.h | 3 ++ 2 files changed, 16 insertions(+), 20 deletions(-) diff --git a/particle-track-and-trace/src/layers/LColLayer.cpp b/particle-track-and-trace/src/layers/LColLayer.cpp index a2e3361..bc2207e 100644 --- a/particle-track-and-trace/src/layers/LColLayer.cpp +++ b/particle-track-and-trace/src/layers/LColLayer.cpp @@ -1,6 +1,7 @@ #include "LColLayer.h" #include "../commands/SpawnPointCallback.h" #include +#include #include #include #include @@ -66,15 +67,25 @@ LColLayer::LColLayer(std::shared_ptr uvGrid, std::unique_ptrparticlesBeached = vtkSmartPointer::New(); this->particlesBeached->SetName("particlesBeached"); - this->particlesBeached->SetNumberOfComponents(0); + this->particlesBeached->SetNumberOfComponents(1); this->particlesAge = vtkSmartPointer::New(); this->particlesAge->SetName("particlesAge"); - this->particlesAge->SetNumberOfComponents(0); + this->particlesAge->SetNumberOfComponents(1); + this->uvGrid = uvGrid; + this->numLats = uvGrid->lats.size(); + this->numLons = uvGrid->lons.size(); + this->cellParticleDensity = vtkSmartPointer::New(); + this->cellParticleDensity->SetName("cellParticleDensity"); + this->cellParticleDensity->SetNumberOfComponents(1); + this->cellParticleDensity->SetNumberOfTuples((numLats-1)*(numLons-1)); + data->GetPointData()->AddArray(this->particlesBeached); data->GetPointData()->AddArray(this->particlesAge); + data->GetCellData()->AddArray(this->cellParticleDensity); data->GetPointData()->SetActiveScalars("particlesAge"); + data->GetCellData()->SetActiveScalars("cellParticleDensity"); advector = std::move(advectionKernel); this->uvGrid = uvGrid; @@ -82,24 +93,6 @@ LColLayer::LColLayer(std::shared_ptr uvGrid, std::unique_ptr transformFilter = createCartographicTransformFilter(uvGrid); transformFilter->SetInputData(data); - vtkNew circleSource; - circleSource->SetGlyphTypeToCircle(); - circleSource->SetScale(0.02); - circleSource->Update(); - - vtkNew glyph2D; - glyph2D->SetSourceConnection(circleSource->GetOutputPort()); - glyph2D->SetInputConnection(transformFilter->GetOutputPort()); - glyph2D->SetScaleModeToDataScalingOff(); - glyph2D->Update(); - - vtkNew mapper; - mapper->SetInputConnection(glyph2D->GetOutputPort()); - mapper->SetColorModeToMapScalars(); - mapper->SetLookupTable(buildLut(512)); - mapper->UseLookupTableScalarRangeOn(); - mapper->Update(); - vtkNew actor; actor->SetMapper(mapper); diff --git a/particle-track-and-trace/src/layers/LColLayer.h b/particle-track-and-trace/src/layers/LColLayer.h index 592dd04..ba2ade5 100644 --- a/particle-track-and-trace/src/layers/LColLayer.h +++ b/particle-track-and-trace/src/layers/LColLayer.h @@ -16,11 +16,14 @@ private: vtkSmartPointer data; vtkSmartPointer particlesBeached; vtkSmartPointer particlesAge; + vtkSmartPointer cellParticleDensity; vtkSmartPointer callback; std::unique_ptr advector; std::shared_ptr uvGrid; int dt = 3600; int beachedAtNumberOfTimes = 20; + int numLats; + int numLons; public: /** Constructor.