int main(void) { for (int i=0; i<3; i++) { set_output(DDRB, led[i]); } uint8_t tick = 0; while(1) { for (int i=0; i<3; i++) { if (tick < current[i]) { output_high(PORTB, led[i]); } else { output_low(PORTB, led[i]); } } tick = (tick+1)%256; if (tick == 0) { if (reached()) { retarget(); } else { approach(); } } } return 0; }
void Ship::update() { awaiting_action = true; Entity::update(); if (approaching) { approach(); } frame.clean(); }
/** * @function updateBehavior */ void robotController::updateBehavior() { // Following wall left if( mMode == 0 ) { // peekaboo_left( 0.3, 1.57, 5 ); } // Following wall right else if( mMode == 1 ) { // peekaboo_right( 0.3, 1.57, 5 ); } approach( 1.0, 0.3, 3 ); }
int main(int argc, char** argv) { ros::init(argc,argv,"pr2_actions"); ros::NodeHandle node_handle; Approach approach(node_handle); Dock dock(node_handle); Undock undock(node_handle); Pick pick(node_handle); Place place(node_handle); ros::spin(); return 0; }
void update_transition(void) { if(!check_transition()) { return; } if(transition.state == TRANS_FADE_IN) { transition.fade = approach(transition.fade, 1.0, 1.0/transition.dur1); if(transition.fade == 1.0) { transition.state = TRANS_FADE_OUT; call_callback(); if(popq()) { call_callback(); } } } else if(transition.state == TRANS_FADE_OUT) { transition.fade = transition.dur2 ? approach(transition.fade, 0.0, 1.0/transition.dur2) : 0.0; if(transition.fade == 0.0) { transition.state = TRANS_IDLE; popq(); } } }
~EclMultiplexerMaterialParams() { switch (approach()) { case EclStone1Approach: delete static_cast<Stone1Params*>(realParams_); break; case EclStone2Approach: delete static_cast<Stone2Params*>(realParams_); break; case EclDefaultApproach: delete static_cast<DefaultParams*>(realParams_); break; case EclTwoPhaseApproach: delete static_cast<TwoPhaseParams*>(realParams_); break; } }
void Player::Update() { if(CanMove()==false) { return; }else { Move(); approach(); vector<Tail>::iterator iter=tails.begin(); vector<Tail>::iterator e=tails.end(); for(;iter!=e;iter++) { iter->Update(); } if(ateApple) { AddTail(); ateApple=false; } } }
void setApproach(EclMultiplexerApproach newApproach) { assert(realParams_ == 0); approach_ = newApproach; switch (approach()) { case EclStone1Approach: realParams_ = new Stone1Params; break; case EclStone2Approach: realParams_ = new Stone2Params; break; case EclDefaultApproach: realParams_ = new DefaultParams; break; case EclTwoPhaseApproach: realParams_ = new TwoPhaseParams; break; } }
void Colour::quickApproach(Colour c) { for (uint8_t i = 0; i < 3; i++) { approach(c); } }
typename std::enable_if<approachV == EclTwoPhaseApproach, const TwoPhaseParams>::type& getRealParams() const { assert(approach() == approachV); return *static_cast<const TwoPhaseParams*>(realParams_); }
typename std::enable_if<approachV == EclDefaultApproach, DefaultParams>::type& getRealParams() { assert(approach() == approachV); return *static_cast<DefaultParams*>(realParams_); }
typename std::enable_if<approachV == EclStone2Approach, Stone2Params>::type& getRealParams() { assert(approach() == approachV); return *static_cast<Stone2Params*>(realParams_); }
//! Default constructor. RowsStages::RowsStages(const IMC::Rows* maneuver, Tasks::Task* task) { // Setup offsets (without bearing rotation) m_man = *maneuver; // Save a pointer to the task to call debug message m_task = task; double curve_sign = curveRight() ? 1 : -1; double alt_frac_up = 0.01 * (double)m_man.alternation; double alt_frac_down = 2 - 0.01 * (double)m_man.alternation; m_stages.clear(); Stage approach("approach", -m_man.coff, 0); m_stages.push_back(approach); Stage start_point("start", m_man.coff, 0); m_stages.push_back(start_point); Stage up("up", m_man.length + m_man.coff, 0); m_stages.push_back(up); Stage up_curve("begin curve (up)", 0, curve_sign * alt_frac_up * m_man.hstep); Stage up_curve_end("end curve (up)", -m_man.coff, 0); if (!squareCurve()) { Angles::rotate(m_man.cross_angle, curveLeft(), up_curve.x, up_curve.y); up_curve.x -= m_man.coff; m_stages.push_back(up_curve); } else { Angles::rotate(m_man.cross_angle, curveLeft(), up_curve.x, up_curve.y); m_stages.push_back(up_curve); m_stages.push_back(up_curve_end); } Stage down("down", -up.x, 0); m_stages.push_back(down); Stage down_curve("begin curve (down)", 0, curve_sign * alt_frac_down * m_man.hstep); Stage down_curve_end("end curve (down)", -up_curve_end.x, 0); if (!squareCurve()) { Angles::rotate(m_man.cross_angle, curveLeft(), down_curve.x, down_curve.y); down_curve.x += m_man.coff; m_stages.push_back(down_curve); } else { Angles::rotate(m_man.cross_angle, curveLeft(), down_curve.x, down_curve.y); m_stages.push_back(down_curve); m_stages.push_back(down_curve_end); } if (m_task != NULL) { m_task->debug("-- row stages and offsets -- "); for (uint8_t i = 0; i < m_stages.size(); ++i) { m_task->debug("%s | %0.2f %0.2f", m_stages[i].label, m_stages[i].x, m_stages[i].y); } } // Other init m_curves = (int)std::floor(m_man.width / m_man.hstep); m_curr = 0; m_sabs = Stage("undefined", 0, 0); m_index = 0; }
const Point approach(const Point other) const{ return approach(other, 0.5); }