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