35 id_ = object_decisions.id();
36 object_decision_.clear();
37 for (
int i = 0; i < object_decisions.object_decision_size(); i++) {
38 object_decision_.push_back(object_decisions.object_decision(i));
43 const std::string&
id,
44 const std::vector<ObjectDecisionType>& object_decision) {
46 object_decision_.clear();
47 for (
const auto decision_type : object_decision) {
48 object_decision_.push_back(decision_type);
52std::vector<const ObjectDecisionType*>
54 std::vector<const ObjectDecisionType*> result;
55 for (
size_t i = 0; i < object_decision_.size(); i++) {
56 result.push_back(&(object_decision_[i]));
66 adc_trajactory_.CopyFrom(adc_trajactory);
69 const auto& object_decisions = adc_trajactory.
decision().object_decision();
70 for (
int i = 0; i < object_decisions.decision_size(); i++) {
71 const std::string
id = object_decisions.decision(i).id();
73 object_decision.
Init(object_decisions.decision(i));
74 object_decisions_map_[id] = object_decision;
76 object_decisions_.push_back(object_decision);
82 std::vector<const HistoryObjectDecision*> result;
83 for (
size_t i = 0; i < object_decisions_.size(); i++) {
84 result.push_back(&(object_decisions_[i]));
92 std::vector<const HistoryObjectDecision*> result;
93 for (
size_t i = 0; i < object_decisions_.size(); i++) {
94 auto obj_decision = object_decisions_[i].GetObjectDecision();
95 for (
const ObjectDecisionType* decision_type : obj_decision) {
96 if (decision_type->has_stop()) {
97 std::vector<ObjectDecisionType> object_decision;
98 object_decision.push_back(*decision_type);
101 decision->
Init(object_decisions_[i].
id(), object_decision);
102 result.push_back(decision);
109 result.begin(), result.end(),
111 return lhs->id() < rhs->id();
118 const std::string&
id)
const {
119 if (object_decisions_map_.find(
id) == object_decisions_map_.end()) {
122 return &(object_decisions_map_.at(
id));
129 const ObjectStatus& object_status) {
131 object_status_ = object_status;
138 const ObjectStatus& object_status) {
139 object_id_to_status_[id] = object_status;
143 ObjectStatus*
const object_status) {
144 if (object_id_to_status_.count(
id) == 0) {
148 *object_status = object_id_to_status_[id];
156 if (history_frames_.empty()) {
159 return &(history_frames_.back());
165 if (history_frames_.size() >=
166 static_cast<size_t>(FLAGS_history_max_record_num)) {
167 history_frames_.pop_front();
171 history_frame.
Init(adc_trajectory_pb);
172 history_frames_.emplace_back(std::move(history_frame));
void Init(const ADCTrajectory &adc_trajactory)
std::vector< const HistoryObjectDecision * > GetStopObjectDecisions() const
std::vector< const HistoryObjectDecision * > GetObjectDecisions() const
const HistoryObjectDecision * GetObjectDecisionsById(const std::string &id) const
const std::string & id() const
std::vector< const ObjectDecisionType * > GetObjectDecision() const
void Init(const ObjectDecision &object_decisions)
const std::string & id() const
void Init(const std::string &id, const ObjectStatus &object_status)
void SetObjectStatus(const std::string &id, const ObjectStatus &object_status)
bool GetObjectStatus(const std::string &id, ObjectStatus *const object_status)
int Add(const ADCTrajectory &adc_trajectory_pb)
const HistoryFrame * GetLastFrame() const
Planning module main class.
optional apollo::common::Header header
optional apollo::planning::DecisionResult decision