planning_data.h 2.2 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
/******************************************************************************
 * Copyright 2017 The Apollo Authors. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 *****************************************************************************/

/**
J
Jiangtao Hu 已提交
18
 * @file
19 20 21 22 23
 **/

#ifndef MODULES_PLANNING_COMMON_PLANNING_DATA_H_
#define MODULES_PLANNING_COMMON_PLANNING_DATA_H_

24
#include "modules/common/proto/path_point.pb.h"
J
Jiangtao Hu 已提交
25
#include "modules/planning/reference_line/reference_line.h"
26 27 28 29
#include "modules/planning/common/decision_data.h"
#include "modules/planning/common/trajectory/publishable_trajectory.h"
#include "modules/planning/reference_line/reference_line.h"

30 31 32 33 34 35
namespace apollo {
namespace planning {

class PlanningData {
 public:
  PlanningData() = default;
36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57

  // copy reference line to planning data
  void set_reference_line(std::unique_ptr<ReferenceLine>& reference_line);
  void set_decision_data(std::unique_ptr<DecisionData>& decision_data);
  void set_init_planning_point(const TrajectoryPoint& init_planning_point);
  void set_computed_trajectory(PublishableTrajectory computed_trajectory);

  const ReferenceLine& reference_line() const;
  const DecisionData& decision_data() const;
  const PublishableTrajectory& computed_trajectory() const;
  const TrajectoryPoint& init_planning_point() const;

  DecisionData* mutable_decision_data() const;
  PublishableTrajectory* mutable_computed_trajectory();

  virtual std::string type() const = 0;

 protected:
  std::unique_ptr<ReferenceLine> _reference_line;
  std::unique_ptr<DecisionData> _decision_data;
  PublishableTrajectory _computed_trajectory;
  TrajectoryPoint _init_planning_point;
58 59 60 61 62 63
};

}  // namespace planning
}  // namespace apollo

#endif  // MODULES_PLANNING_COMMON_PLANNING_DATA_H_