Merge pull request #16 from MakeNEnjoy/djairo-vtk-pause
Djairo vtk pause
This commit is contained in:
commit
67fcfa1cdc
|
|
@ -37,6 +37,7 @@ void Program::setupTimer() {
|
|||
auto callback = vtkSmartPointer<TimerCallbackCommand>::New(this);
|
||||
callback->SetClientData(this);
|
||||
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
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -50,8 +50,7 @@ void SpawnPointCallback::Execute(vtkObject *caller, unsigned long evId, void *ca
|
|||
vtkSmartPointer<vtkCellArray> vertices = vtkSmartPointer<vtkCellArray>::New();
|
||||
vertices->InsertNextCell(vertex);
|
||||
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 *cb = new TimerCallbackCommand();
|
||||
cb->setProgram(program);
|
||||
cb->setPaused(false);
|
||||
return cb;
|
||||
}
|
||||
|
||||
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;
|
||||
|
||||
if (this->time >= this->maxTime) {
|
||||
|
|
@ -21,8 +27,14 @@ void TimerCallbackCommand::Execute(vtkObject* caller, unsigned long eventId, voi
|
|||
this->program->updateData(this->time);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
void TimerCallbackCommand::setProgram(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 setProgram(Program *program);
|
||||
void setPaused(const bool val);
|
||||
|
||||
private:
|
||||
int time;
|
||||
int dt;
|
||||
int maxTime;
|
||||
bool paused;
|
||||
Program *program;
|
||||
};
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue