virtual void CalcDistExpressions(const DblVec& x, vector<AffExpr>& exprs, NamePairs& bodyNames) { vector<BeliefCollision> collisions; this->GetCollisionsCached(x, collisions); DblVec theta0 = getDblVec(x, m_vars0); DblVec theta1 = getDblVec(x, m_vars1); CollisionsToDistanceExpressions(collisions, *this->m_rad, this->m_link2ind, m_vars0, m_vars1, theta0, theta1, exprs, false, bodyNames); }
void CartPoseCost::Plot(const DblVec& x, OR::EnvironmentBase& env, std::vector<OR::GraphHandlePtr>& handles) { CartPoseErrCalculator* calc = static_cast<CartPoseErrCalculator*>(f_.get()); DblVec dof_vals = getDblVec(x, vars_); calc->manip_->SetDOFValues(dof_vals); OR::Transform target = calc->pose_inv_.inverse(), cur = calc->link_->GetTransform(); PlotAxes(env, cur, .1, handles); PlotAxes(env, target, .1, handles); handles.push_back(env.drawarrow(cur.trans, target.trans, .01, OR::Vector(1,0,1,1))); }