void fluid::step( double dt ) { prepare_step(); /*STEP 1: calculate densities*/ calculate_densities(); glass_common_update(&fluid::calculate_glass_fluid_densities); /*if(simulator::detailed_logging) { printf("densities: "); for(int i=0;i<n;i++) { printf("%lf ", particles[i].density); if(particles[i].density!=density) system("pause"); } printf("\n"); }*/ /*STEP 2: calculate forces*/ calculate_forces(); glass_common_update(&fluid::calculate_glass_fluid_forces); /*STEP 3: move particles*/ update_positions(dt); set_bounding_particle_indices(); }
void Acceleration_Calibration_Wizard::advance() { if (m_step == Step::INTRO) { m_step = Step::RESET; } else if (m_step == Step::RESET) { m_step = Step::SHOW_INSTRUCTIONS; } else if (m_step == Step::SHOW_INSTRUCTIONS) { m_step = Step::COLLECT; } else if (m_step == Step::COLLECT) { m_connection.disconnect(); m_collect_data_step++; m_step = m_collect_data_step < 6 ? Step::SHOW_INSTRUCTIONS : Step::DONE; } prepare_step(); }
Acceleration_Calibration_Wizard::Acceleration_Calibration_Wizard(silk::HAL& hal, silk::Comms& comms, silk::node::gs::Node_ptr node, size_t output_idx, QWidget* parent) : QDialog(parent) , m_hal(hal) , m_comms(comms) , m_node(node) , m_output(node->outputs[output_idx]) { m_stream = std::static_pointer_cast<silk::stream::gs::Acceleration>(m_output.stream); m_hal.set_stream_telemetry_active(m_output.stream->name, true); m_initial_calibration = get_calibration_points(); set_calibration_points(sz::calibration::Acceleration_Points()); m_step = Step::INTRO; setLayout(new QVBoxLayout(this)); layout()->setMargin(0); layout()->setSpacing(0); layout()->setContentsMargins(4, 4, 4, 4); prepare_step(); }