MCPcopy Create free account
hub / github.com/BehaviorTree/Groot / onPlayUpdate

Method onPlayUpdate

bt_editor/sidepanel_replay.cpp:408–448  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

406}
407
408void SidepanelReplay::onPlayUpdate()
409{
410 if( !ui->pushButtonPlay->isChecked() || _transitions.empty() )
411 {
412 return;
413 }
414
415 using namespace std::chrono;
416 const int LAST_ROW = _transitions.size()-1;
417
418 _next_row = std::max(0, _next_row);
419 _next_row = std::min(LAST_ROW, _next_row);
420
421 const double TIME_DIFFERENCE_THRESHOLD = 0.01;
422
423 // move forward as long as timestamp difference is small.
424 while( _next_row < LAST_ROW -1 &&
425 (_transitions[_next_row+1].timestamp - _transitions[_next_row].timestamp) < TIME_DIFFERENCE_THRESHOLD )
426 {
427 _next_row++;
428 }
429
430 onRowChanged( _next_row );
431 updatedSpinAndSlider( _next_row );
432 ui->tableView->scrollTo( _table_model->index(_next_row,0), QAbstractItemView::EnsureVisible );
433
434 if( _next_row == LAST_ROW)
435 {
436 ui->pushButtonPlay->setChecked(false);
437 return;
438 }
439
440 const double prev_time = _transitions[_next_row].timestamp;
441 const double next_time = _transitions[_next_row+1].timestamp;
442 int delay_relative = (next_time - prev_time) * 1000;
443
444 _next_row++;
445 //qDebug() << "delay_relative " << delay_relative << " next_row " << _next_row << "\n";
446
447 _play_timer->start(delay_relative);
448}
449
450void SidepanelReplay::on_lineEditFilter_textChanged(const QString &filter_text)
451{

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected