mirror of
https://github.com/moveit/moveit_task_constructor.git
synced 2025-11-04 14:49:57 +08:00
Task: only accept containers
This commit is contained in:
parent
e3ca832497
commit
19fa7349d3
@ -48,6 +48,7 @@ class ContainerBase : public Stage
|
||||
{
|
||||
public:
|
||||
PRIVATE_CLASS(ContainerBase)
|
||||
typedef std::unique_ptr<ContainerBase> pointer;
|
||||
|
||||
size_t numChildren() const;
|
||||
|
||||
@ -227,7 +228,7 @@ class WrapperBase : public ParallelContainerBase
|
||||
{
|
||||
public:
|
||||
PRIVATE_CLASS(WrapperBase)
|
||||
WrapperBase(const std::string &name, pointer &&child = Stage::pointer());
|
||||
WrapperBase(const std::string &name, Stage::pointer &&child = Stage::pointer());
|
||||
|
||||
/// insertion is only allowed if children() is empty
|
||||
bool insert(Stage::pointer&& stage, int before = -1) override;
|
||||
@ -242,7 +243,7 @@ public:
|
||||
bool compute() override;
|
||||
|
||||
protected:
|
||||
WrapperBase(WrapperBasePrivate* impl, pointer &&child = Stage::pointer());
|
||||
WrapperBase(WrapperBasePrivate* impl, Stage::pointer &&child = Stage::pointer());
|
||||
|
||||
/// called by a (direct) child when a new solution becomes available
|
||||
void onNewSolution(const SolutionBase &s) override = 0;
|
||||
|
||||
@ -60,7 +60,7 @@ namespace moveit { namespace task_constructor { namespace stages {
|
||||
*/
|
||||
class ComputeIK : public WrapperBase {
|
||||
public:
|
||||
ComputeIK(const std::string &name, pointer &&child = Stage::pointer());
|
||||
ComputeIK(const std::string &name, Stage::pointer &&child = Stage::pointer());
|
||||
|
||||
void init(const core::RobotModelConstPtr &robot_model);
|
||||
void onNewSolution(const SolutionBase &s) override;
|
||||
|
||||
@ -70,7 +70,7 @@ public:
|
||||
const std::string &planning_plugin_param_name = "planning_plugin",
|
||||
const std::string &adapter_plugins_param_name = "request_adapters");
|
||||
Task(const std::string& id = "",
|
||||
Stage::pointer &&container = std::make_unique<SerialContainer>("task pipeline"));
|
||||
ContainerBase::pointer &&container = std::make_unique<SerialContainer>("task pipeline"));
|
||||
Task(Task &&other);
|
||||
Task& operator=(Task&& other);
|
||||
~Task();
|
||||
|
||||
@ -115,7 +115,7 @@ void Task::loadRobotModel(const std::string& robot_description) {
|
||||
throw Exception("Task failed to construct RobotModel");
|
||||
}
|
||||
|
||||
void Task::add(pointer &&stage) {
|
||||
void Task::add(Stage::pointer &&stage) {
|
||||
if (!stage)
|
||||
throw std::runtime_error("stage insertion failed: invalid stage pointer");
|
||||
|
||||
|
||||
@ -84,7 +84,7 @@ LocalTaskModel::LocalTaskModel(QObject *parent)
|
||||
flags_ |= LOCAL_MODEL;
|
||||
}
|
||||
|
||||
LocalTaskModel::LocalTaskModel(Stage::pointer &&container, QObject *parent)
|
||||
LocalTaskModel::LocalTaskModel(ContainerBase::pointer &&container, QObject *parent)
|
||||
: BaseTaskModel(parent)
|
||||
, Task("", std::move(container))
|
||||
{
|
||||
|
||||
Loading…
Reference in New Issue
Block a user