Merge branch 'main' into robin-combine-advection-vtk
This commit is contained in:
commit
705cf248cb
|
|
@ -37,6 +37,7 @@ void Program::setupTimer() {
|
||||||
auto callback = vtkSmartPointer<TimerCallbackCommand>::New(this);
|
auto callback = vtkSmartPointer<TimerCallbackCommand>::New(this);
|
||||||
callback->SetClientData(this);
|
callback->SetClientData(this);
|
||||||
this->interact->AddObserver(vtkCommand::TimerEvent, callback);
|
this->interact->AddObserver(vtkCommand::TimerEvent, callback);
|
||||||
|
this->interact->AddObserver(vtkCommand::KeyPressEvent, callback);
|
||||||
this->interact->CreateRepeatingTimer(17); // 60 fps == 1000 / 60 == 16.7 ms per frame
|
this->interact->CreateRepeatingTimer(17); // 60 fps == 1000 / 60 == 16.7 ms per frame
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -50,8 +50,7 @@ void SpawnPointCallback::Execute(vtkObject *caller, unsigned long evId, void *ca
|
||||||
vtkSmartPointer<vtkCellArray> vertices = vtkSmartPointer<vtkCellArray>::New();
|
vtkSmartPointer<vtkCellArray> vertices = vtkSmartPointer<vtkCellArray>::New();
|
||||||
vertices->InsertNextCell(vertex);
|
vertices->InsertNextCell(vertex);
|
||||||
data->SetVerts(vertices);
|
data->SetVerts(vertices);
|
||||||
// data->Modified(); // These might be needed im not sure.
|
ren->GetRenderWindow()->Render();
|
||||||
// ren->GetRenderWindow()->Render();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -7,10 +7,16 @@ TimerCallbackCommand::TimerCallbackCommand() : dt(3600), maxTime(3600*24*365), t
|
||||||
TimerCallbackCommand* TimerCallbackCommand::New(Program *program) {
|
TimerCallbackCommand* TimerCallbackCommand::New(Program *program) {
|
||||||
TimerCallbackCommand *cb = new TimerCallbackCommand();
|
TimerCallbackCommand *cb = new TimerCallbackCommand();
|
||||||
cb->setProgram(program);
|
cb->setProgram(program);
|
||||||
|
cb->setPaused(false);
|
||||||
return cb;
|
return cb;
|
||||||
}
|
}
|
||||||
|
|
||||||
void TimerCallbackCommand::Execute(vtkObject* caller, unsigned long eventId, void* vtkNotUsed(callData)) {
|
void TimerCallbackCommand::Execute(vtkObject* caller, unsigned long eventId, void* vtkNotUsed(callData)) {
|
||||||
|
auto intr = reinterpret_cast<vtkRenderWindowInteractor *>(caller);
|
||||||
|
|
||||||
|
if (eventId == vtkCommand::KeyPressEvent and not strcmp("space", intr->GetKeySym())) {
|
||||||
|
this->paused = ! this->paused;
|
||||||
|
} else if (eventId == vtkCommand::TimerEvent and not this->paused) {
|
||||||
this->time += this->dt;
|
this->time += this->dt;
|
||||||
|
|
||||||
if (this->time >= this->maxTime) {
|
if (this->time >= this->maxTime) {
|
||||||
|
|
@ -19,10 +25,16 @@ void TimerCallbackCommand::Execute(vtkObject* caller, unsigned long eventId, voi
|
||||||
}
|
}
|
||||||
|
|
||||||
this->program->updateData(this->time);
|
this->program->updateData(this->time);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
void TimerCallbackCommand::setProgram(Program *program) {
|
void TimerCallbackCommand::setProgram(Program *program) {
|
||||||
this->program = program;
|
this->program = program;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void TimerCallbackCommand::setPaused(const bool val) {
|
||||||
|
this->paused = val;
|
||||||
|
}
|
||||||
|
|
|
||||||
|
|
@ -11,11 +11,13 @@ public:
|
||||||
void Execute(vtkObject* caller, unsigned long eventId, void* vtkNotUsed(callData)) override;
|
void Execute(vtkObject* caller, unsigned long eventId, void* vtkNotUsed(callData)) override;
|
||||||
|
|
||||||
void setProgram(Program *program);
|
void setProgram(Program *program);
|
||||||
|
void setPaused(const bool val);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
int time;
|
int time;
|
||||||
int dt;
|
int dt;
|
||||||
int maxTime;
|
int maxTime;
|
||||||
|
bool paused;
|
||||||
Program *program;
|
Program *program;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue