41 Translation2d field_line_start,
42 Translation2d field_line_end, Side side)
43 : m_robot_point{std::move(robot_point)},
44 m_field_line_start{std::move(field_line_start)},
45 m_field_line_end{std::move(field_line_end)},
57 slp::Problem<double>& problem,
const Pose2v<double>& pose,
58 [[maybe_unused]]
const Translation2v<double>& linear_velocity,
59 [[maybe_unused]]
const slp::Variable<double>& angular_velocity,
60 [[maybe_unused]]
const Translation2v<double>& linear_acceleration,
61 [[maybe_unused]]
const slp::Variable<double>& angular_acceleration) {
88 auto line = m_field_line_end - m_field_line_start;
89 auto start_to_point = point - m_field_line_start;
90 auto cross = line.cross(start_to_point);
94 problem.subject_to(cross > 0);
97 problem.subject_to(cross < 0);
100 problem.subject_to(cross == 0);