From b83f49b4adb04b741c652c5700d993ae7778103c Mon Sep 17 00:00:00 2001 From: djairoh Date: Fri, 3 May 2024 00:17:28 +0200 Subject: [PATCH] fix: had to chagne to pointers for the virtual function to override properly --- vtk/src/helperClasses/LGlyphLayer.cpp | 2 +- vtk/src/helperClasses/Layer.cpp | 1 - vtk/src/helperClasses/Program.cpp | 26 ++++++++++++-------------- vtk/src/helperClasses/Program.h | 12 ++++++------ 4 files changed, 19 insertions(+), 22 deletions(-) diff --git a/vtk/src/helperClasses/LGlyphLayer.cpp b/vtk/src/helperClasses/LGlyphLayer.cpp index 7607a47..bec5866 100644 --- a/vtk/src/helperClasses/LGlyphLayer.cpp +++ b/vtk/src/helperClasses/LGlyphLayer.cpp @@ -57,7 +57,7 @@ void LGlyphLayer::spoofPoints() { // returns new coords for a point; used to test the updateData function std::pair advect(int time, double lat, double lon) { - return {lat+1, lon+1} ; + return {lat+0.001, lon+0.001} ; } diff --git a/vtk/src/helperClasses/Layer.cpp b/vtk/src/helperClasses/Layer.cpp index b447f4a..68476ac 100644 --- a/vtk/src/helperClasses/Layer.cpp +++ b/vtk/src/helperClasses/Layer.cpp @@ -7,5 +7,4 @@ vtkSmartPointer Layer::getLayer() { } void Layer::updateData(int t) { - cout << "wrong function dimwit" << endl; } diff --git a/vtk/src/helperClasses/Program.cpp b/vtk/src/helperClasses/Program.cpp index b46ca81..8f5a578 100644 --- a/vtk/src/helperClasses/Program.cpp +++ b/vtk/src/helperClasses/Program.cpp @@ -16,10 +16,8 @@ void Program::setWinProperties() { } void Program::CallbackFunction(vtkObject* caller, long unsigned int eventId, void* clientData, void* callData) { - cout << "timed" << endl; - ((Program *)clientData)->lagrange.updateData(1); - //FIXME: from what i understand this should call the (overriden) updateData function in LGlyphLayer. It's not - and calls the virtual(?) updateData function in Layer instead, for some reason. - //Im too tired to comprehend this right now. + ((Program *)clientData)->lagrange->updateData(1); + ((Program *)clientData)->win->Render(); } @@ -32,7 +30,7 @@ void Program::setupTimer() { } -Program::Program(Layer *bg, Layer *e, Layer *l) : background(*bg), euler(*e), lagrange(*l), win(), interact() { +Program::Program(Layer *bg, Layer *e, Layer *l) : background(bg), euler(e), lagrange(l), win(), interact() { this->win = vtkSmartPointer::New(); this->interact = vtkSmartPointer::New(); @@ -45,25 +43,25 @@ Program::Program(Layer *bg, Layer *e, Layer *l) : background(*bg), euler(*e), la } -void Program::setBackground(Layer bg) { - this->win->RemoveRenderer(this->background.getLayer()); +void Program::setBackground(Layer *bg) { + this->win->RemoveRenderer(this->background->getLayer()); this->background = bg; - this->win->AddRenderer(bg.getLayer()); + this->win->AddRenderer(bg->getLayer()); } -void Program::setEuler(Layer e) { - this->win->RemoveRenderer(this->euler.getLayer()); +void Program::setEuler(Layer *e) { + this->win->RemoveRenderer(this->euler->getLayer()); this->euler = e; - this->win->AddRenderer(e.getLayer()); + this->win->AddRenderer(e->getLayer()); } -void Program::setLagrange(Layer l) { - this->win->RemoveRenderer(this->lagrange.getLayer()); +void Program::setLagrange(Layer *l) { + this->win->RemoveRenderer(this->lagrange->getLayer()); this->lagrange = l; - this->win->AddRenderer(l.getLayer()); + this->win->AddRenderer(l->getLayer()); } // void Program::addInteractionStyle(vtkInteractorStyle style); diff --git a/vtk/src/helperClasses/Program.h b/vtk/src/helperClasses/Program.h index 769cc64..35013d5 100644 --- a/vtk/src/helperClasses/Program.h +++ b/vtk/src/helperClasses/Program.h @@ -9,9 +9,9 @@ class Program { private: - Layer background; - Layer euler; - Layer lagrange; + Layer *background; + Layer *euler; + Layer *lagrange; vtkSmartPointer win; vtkSmartPointer interact; @@ -22,9 +22,9 @@ private: public: Program(Layer *bg, Layer *e, Layer *l); - void setBackground(Layer bg); - void setEuler(Layer e); - void setLagrange(Layer l); + void setBackground(Layer *bg); + void setEuler(Layer *e); + void setLagrange(Layer *l); // void addInteractionStyle(vtkInteractorStyle style);