lCol same func as lGlyph
This commit is contained in:
parent
cc3e62af05
commit
0fa9486363
|
|
@ -54,6 +54,8 @@ add_executable(ParticleTrackTrace MACOSX_BUNDLE main.cpp
|
||||||
layers/Layer.h
|
layers/Layer.h
|
||||||
layers/LGlyphLayer.cpp
|
layers/LGlyphLayer.cpp
|
||||||
layers/LGlyphLayer.h
|
layers/LGlyphLayer.h
|
||||||
|
layers/LColLayer.cpp
|
||||||
|
layers/LColLayer.h
|
||||||
layers/Technique.cpp
|
layers/Technique.cpp
|
||||||
layers/Technique.h
|
layers/Technique.h
|
||||||
layers/enums.h
|
layers/enums.h
|
||||||
|
|
|
||||||
|
|
@ -11,6 +11,7 @@
|
||||||
#include "../layers/EColLayer.h"
|
#include "../layers/EColLayer.h"
|
||||||
#include "../layers/EGlyphLayer.h"
|
#include "../layers/EGlyphLayer.h"
|
||||||
#include "../layers/LGlyphLayer.h"
|
#include "../layers/LGlyphLayer.h"
|
||||||
|
#include "../layers/LColLayer.h"
|
||||||
#include "../Program.h"
|
#include "../Program.h"
|
||||||
#include "../advection/UVGrid.h"
|
#include "../advection/UVGrid.h"
|
||||||
#include "../advection/kernel/RK4AdvectionKernel.h"
|
#include "../advection/kernel/RK4AdvectionKernel.h"
|
||||||
|
|
@ -55,11 +56,16 @@ void MainWindow::setupTechniques() {
|
||||||
auto kernelRK4 = make_unique<RK4AdvectionKernel>(uvGrid);
|
auto kernelRK4 = make_unique<RK4AdvectionKernel>(uvGrid);
|
||||||
auto kernelRK4BoundaryChecked = make_unique<SnapBoundaryConditionKernel>(std::move(kernelRK4), uvGrid);
|
auto kernelRK4BoundaryChecked = make_unique<SnapBoundaryConditionKernel>(std::move(kernelRK4), uvGrid);
|
||||||
auto lGlyph = new LGlyphLayer(uvGrid, std::move(kernelRK4BoundaryChecked));
|
auto lGlyph = new LGlyphLayer(uvGrid, std::move(kernelRK4BoundaryChecked));
|
||||||
|
|
||||||
|
auto kernelRK4_2 = make_unique<RK4AdvectionKernel>(uvGrid);
|
||||||
|
auto kernelRK4BoundaryChecked_2 = make_unique<SnapBoundaryConditionKernel>(std::move(kernelRK4_2), uvGrid);
|
||||||
|
auto lCol = new LColLayer(uvGrid, std::move(kernelRK4BoundaryChecked_2));
|
||||||
lGlyph->setDt(3600);
|
lGlyph->setDt(3600);
|
||||||
|
lCol->setDt(3600);
|
||||||
|
|
||||||
technique1->addLayer(lGlyph);
|
technique1->addLayer(lGlyph);
|
||||||
// technique2->addLayer(new LColLayer(uvGrid)); // TODO: add LColLayer
|
technique2->addLayer(lCol);
|
||||||
technique2->addLayer(lGlyph);
|
// technique2->addLayer(lGlyph);
|
||||||
|
|
||||||
program->addTechnique(technique1);
|
program->addTechnique(technique1);
|
||||||
program->addTechnique(technique2);
|
program->addTechnique(technique2);
|
||||||
|
|
@ -69,8 +75,6 @@ void MainWindow::setupTechniques() {
|
||||||
// TODO: implement feature to call this function on widget
|
// TODO: implement feature to call this function on widget
|
||||||
// l->spoofPoints();
|
// l->spoofPoints();
|
||||||
// l->cycleGlyphStyle();
|
// l->cycleGlyphStyle();
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -51,8 +51,7 @@ void SpawnPointCallback::Execute(vtkObject *caller, unsigned long evId, void *ca
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
SpawnPointCallback::SpawnPointCallback() : data(nullptr),
|
SpawnPointCallback::SpawnPointCallback() : points(nullptr),
|
||||||
points(nullptr),
|
|
||||||
inverseCartographicProjection(nullptr),
|
inverseCartographicProjection(nullptr),
|
||||||
uvGrid(nullptr) { }
|
uvGrid(nullptr) { }
|
||||||
|
|
||||||
|
|
@ -60,10 +59,6 @@ SpawnPointCallback *SpawnPointCallback::New() {
|
||||||
return new SpawnPointCallback;
|
return new SpawnPointCallback;
|
||||||
}
|
}
|
||||||
|
|
||||||
void SpawnPointCallback::setData(const vtkSmartPointer<vtkPolyData> &data) {
|
|
||||||
this->data = data;
|
|
||||||
}
|
|
||||||
|
|
||||||
void SpawnPointCallback::setPoints(const vtkSmartPointer<vtkPoints> &points) {
|
void SpawnPointCallback::setPoints(const vtkSmartPointer<vtkPoints> &points) {
|
||||||
this->points = points;
|
this->points = points;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -19,8 +19,6 @@ public:
|
||||||
|
|
||||||
void setPoints(const vtkSmartPointer<vtkPoints> &points);
|
void setPoints(const vtkSmartPointer<vtkPoints> &points);
|
||||||
|
|
||||||
void setData(const vtkSmartPointer<vtkPolyData> &data);
|
|
||||||
|
|
||||||
void setRen(const vtkSmartPointer<vtkRenderer> &ren);
|
void setRen(const vtkSmartPointer<vtkRenderer> &ren);
|
||||||
|
|
||||||
void setBeached(const vtkSmartPointer<vtkIntArray> &parts);
|
void setBeached(const vtkSmartPointer<vtkIntArray> &parts);
|
||||||
|
|
@ -30,7 +28,6 @@ public:
|
||||||
void setUVGrid(const std::shared_ptr<UVGrid> &uvGrid);
|
void setUVGrid(const std::shared_ptr<UVGrid> &uvGrid);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
vtkSmartPointer<vtkPolyData> data;
|
|
||||||
vtkSmartPointer<vtkPoints> points;
|
vtkSmartPointer<vtkPoints> points;
|
||||||
vtkSmartPointer<vtkRenderer> ren;
|
vtkSmartPointer<vtkRenderer> ren;
|
||||||
vtkSmartPointer<vtkIntArray> particlesBeached;
|
vtkSmartPointer<vtkIntArray> particlesBeached;
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
#include "LGlyphLayer.h"
|
#include "LColLayer.h"
|
||||||
#include "../commands/SpawnPointCallback.h"
|
#include "../commands/SpawnPointCallback.h"
|
||||||
#include <vtkActor2D.h>
|
#include <vtkActor2D.h>
|
||||||
#include <vtkGlyph2D.h>
|
#include <vtkGlyph2D.h>
|
||||||
|
|
@ -20,9 +20,8 @@
|
||||||
|
|
||||||
#include "../CartographicTransformation.h"
|
#include "../CartographicTransformation.h"
|
||||||
|
|
||||||
vtkSmartPointer<SpawnPointCallback> LGlyphLayer::createSpawnPointCallback() {
|
vtkSmartPointer<SpawnPointCallback> LColLayer::createSpawnPointCallback() {
|
||||||
auto newPointCallBack = vtkSmartPointer<SpawnPointCallback>::New();
|
vtkNew<SpawnPointCallback> newPointCallBack;
|
||||||
newPointCallBack->setData(this->data);
|
|
||||||
newPointCallBack->setPoints(this->points);
|
newPointCallBack->setPoints(this->points);
|
||||||
newPointCallBack->setRen(this->ren);
|
newPointCallBack->setRen(this->ren);
|
||||||
newPointCallBack->setUVGrid(this->uvGrid);
|
newPointCallBack->setUVGrid(this->uvGrid);
|
||||||
|
|
@ -57,7 +56,7 @@ vtkSmartPointer<vtkLookupTable> buildLut(int n) {
|
||||||
return lut;
|
return lut;
|
||||||
}
|
}
|
||||||
|
|
||||||
LGlyphLayer::LGlyphLayer(std::shared_ptr<UVGrid> uvGrid, std::unique_ptr<AdvectionKernel> advectionKernel) {
|
LColLayer::LColLayer(std::shared_ptr<UVGrid> uvGrid, std::unique_ptr<AdvectionKernel> advectionKernel) {
|
||||||
this->ren = vtkSmartPointer<vtkRenderer>::New();
|
this->ren = vtkSmartPointer<vtkRenderer>::New();
|
||||||
this->ren->SetLayer(2);
|
this->ren->SetLayer(2);
|
||||||
|
|
||||||
|
|
@ -105,9 +104,10 @@ LGlyphLayer::LGlyphLayer(std::shared_ptr<UVGrid> uvGrid, std::unique_ptr<Advecti
|
||||||
actor->SetMapper(mapper);
|
actor->SetMapper(mapper);
|
||||||
|
|
||||||
this->ren->AddActor(actor);
|
this->ren->AddActor(actor);
|
||||||
|
this->callback = createSpawnPointCallback();
|
||||||
}
|
}
|
||||||
|
|
||||||
void LGlyphLayer::spoofPoints() {
|
void LColLayer::spoofPoints() {
|
||||||
for (int i=0; i < 330; i+=5) {
|
for (int i=0; i < 330; i+=5) {
|
||||||
for (int j=0; j < 330; j+=5) {
|
for (int j=0; j < 330; j+=5) {
|
||||||
this->points->InsertNextPoint(-15.875+(12.875+15.875)/330*j, 46.125+(62.625-46.125)/330*i, 0);
|
this->points->InsertNextPoint(-15.875+(12.875+15.875)/330*j, 46.125+(62.625-46.125)/330*i, 0);
|
||||||
|
|
@ -118,7 +118,7 @@ void LGlyphLayer::spoofPoints() {
|
||||||
this->points->Modified();
|
this->points->Modified();
|
||||||
}
|
}
|
||||||
|
|
||||||
void LGlyphLayer::updateData(int t) {
|
void LColLayer::updateData(int t) {
|
||||||
const int SUPERSAMPLINGRATE = 4;
|
const int SUPERSAMPLINGRATE = 4;
|
||||||
double point[3], oldX, oldY;
|
double point[3], oldX, oldY;
|
||||||
bool modifiedData = false;
|
bool modifiedData = false;
|
||||||
|
|
@ -166,18 +166,19 @@ void LGlyphLayer::updateData(int t) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void LGlyphLayer::addObservers(vtkSmartPointer<vtkRenderWindowInteractor> interactor) {
|
void LColLayer::addObservers(vtkSmartPointer<vtkRenderWindowInteractor> interactor) {
|
||||||
auto newPointCallBack = createSpawnPointCallback();
|
interactor->AddObserver(vtkCommand::LeftButtonPressEvent, this->callback);
|
||||||
interactor->AddObserver(vtkCommand::LeftButtonPressEvent, newPointCallBack);
|
interactor->AddObserver(vtkCommand::LeftButtonReleaseEvent, this->callback);
|
||||||
interactor->AddObserver(vtkCommand::LeftButtonReleaseEvent, newPointCallBack);
|
interactor->AddObserver(vtkCommand::MouseMoveEvent, this->callback);
|
||||||
interactor->AddObserver(vtkCommand::MouseMoveEvent, newPointCallBack);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void LGlyphLayer::removeObservers(vtkSmartPointer<vtkRenderWindowInteractor> interactor) {
|
void LColLayer::removeObservers(vtkSmartPointer<vtkRenderWindowInteractor> interactor) {
|
||||||
// todo: logic for these
|
interactor->RemoveObserver(this->callback);
|
||||||
|
interactor->RemoveObserver(this->callback);
|
||||||
|
interactor->RemoveObserver(this->callback);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void LGlyphLayer::setDt(int dt) {
|
void LColLayer::setDt(int dt) {
|
||||||
this->dt = dt;
|
this->dt = dt;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -16,6 +16,7 @@ private:
|
||||||
vtkSmartPointer<vtkPolyData> data;
|
vtkSmartPointer<vtkPolyData> data;
|
||||||
vtkSmartPointer<vtkIntArray> particlesBeached;
|
vtkSmartPointer<vtkIntArray> particlesBeached;
|
||||||
vtkSmartPointer<vtkIntArray> particlesAge;
|
vtkSmartPointer<vtkIntArray> particlesAge;
|
||||||
|
vtkSmartPointer<SpawnPointCallback> callback;
|
||||||
std::unique_ptr<AdvectionKernel> advector;
|
std::unique_ptr<AdvectionKernel> advector;
|
||||||
std::shared_ptr<UVGrid> uvGrid;
|
std::shared_ptr<UVGrid> uvGrid;
|
||||||
int dt = 3600;
|
int dt = 3600;
|
||||||
|
|
|
||||||
|
|
@ -22,7 +22,6 @@
|
||||||
|
|
||||||
vtkSmartPointer<SpawnPointCallback> LGlyphLayer::createSpawnPointCallback() {
|
vtkSmartPointer<SpawnPointCallback> LGlyphLayer::createSpawnPointCallback() {
|
||||||
vtkNew<SpawnPointCallback> newPointCallBack;
|
vtkNew<SpawnPointCallback> newPointCallBack;
|
||||||
newPointCallBack->setData(this->data);
|
|
||||||
newPointCallBack->setPoints(this->points);
|
newPointCallBack->setPoints(this->points);
|
||||||
newPointCallBack->setRen(this->ren);
|
newPointCallBack->setRen(this->ren);
|
||||||
newPointCallBack->setUVGrid(this->uvGrid);
|
newPointCallBack->setUVGrid(this->uvGrid);
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue