diff --git a/core/include/moveit/task_constructor/container_p.h b/core/include/moveit/task_constructor/container_p.h index 5cb8af15..fceb106f 100644 --- a/core/include/moveit/task_constructor/container_p.h +++ b/core/include/moveit/task_constructor/container_p.h @@ -105,12 +105,12 @@ protected: // If, during pruneInterface() later, we notice that it's not needed, prune there. inline void setChildsPushBackwardInterface(Stage& child) { bool allowed = (child.pimpl()->requiredInterface() & WRITES_PREV_END) || - (child.pimpl()->requiredInterface() == 0); // unknown interface + (child.pimpl()->requiredInterface() == UNKNOWN); child.pimpl()->setPrevEnds(allowed ? pending_backward_ : InterfacePtr()); } inline void setChildsPushForwardInterface(Stage& child) { bool allowed = (child.pimpl()->requiredInterface() & WRITES_NEXT_START) || - (child.pimpl()->requiredInterface() == 0); // unknown interface + (child.pimpl()->requiredInterface() == UNKNOWN); child.pimpl()->setNextStarts(allowed ? pending_forward_ : InterfacePtr()); } diff --git a/core/include/moveit/task_constructor/stage.h b/core/include/moveit/task_constructor/stage.h index 7c01cd96..a627d8fb 100644 --- a/core/include/moveit/task_constructor/stage.h +++ b/core/include/moveit/task_constructor/stage.h @@ -85,6 +85,7 @@ typedef Flags InterfaceFlags; constexpr InterfaceFlags UNKNOWN; constexpr InterfaceFlags INPUT_IF_MASK({READS_START, WRITES_PREV_END}); constexpr InterfaceFlags OUTPUT_IF_MASK({READS_END, WRITES_NEXT_START}); +constexpr InterfaceFlags PROPAGATE_BOTHWAYS({PROPAGATE_FORWARDS, PROPAGATE_BACKWARDS}); MOVEIT_CLASS_FORWARD(Interface) MOVEIT_CLASS_FORWARD(Stage) diff --git a/core/src/container.cpp b/core/src/container.cpp index e66a8ee9..ce5dd8b6 100644 --- a/core/src/container.cpp +++ b/core/src/container.cpp @@ -483,11 +483,10 @@ void SerialContainer::init(const moveit::core::RobotModelConstPtr& robot_model) // called by parent asking for pruning of this' interface void SerialContainerPrivate::pruneInterface(InterfaceFlags accepted) { if (children().empty()) return; - constexpr InterfaceFlags BOTHWAYS({PROPAGATE_FORWARDS, PROPAGATE_BACKWARDS}); // We only need to deal with the special case of the whole sequence to be pruned. - if (accepted != BOTHWAYS && // will interface be restricted at all? - children().front()->pimpl()->interfaceFlags() == BOTHWAYS) // still undecided? + if (accepted != PROPAGATE_BOTHWAYS && // will interface be restricted at all? + children().front()->pimpl()->interfaceFlags() == PROPAGATE_BOTHWAYS) // still undecided? { pruneInterfaces(children().begin(), children().end(), accepted); diff --git a/core/test/test_container.cpp b/core/test/test_container.cpp index fc7e77f3..62ef22c1 100644 --- a/core/test/test_container.cpp +++ b/core/test/test_container.cpp @@ -219,7 +219,7 @@ TEST_F(SerialTest, insertion_order) { TEST_F(SerialTest, init_empty) { EXPECT_INIT_FAILURE(true, true); // no children - EXPECT_EQ(serial.pimpl()->interfaceFlags(), InterfaceFlags({WRITES_NEXT_START, WRITES_PREV_END})); + EXPECT_EQ(serial.pimpl()->interfaceFlags(), InterfaceFlags(GENERATE)); EXPECT_INIT_FAILURE(false, false); // no children EXPECT_EQ(serial.pimpl()->interfaceFlags(), InterfaceFlags()); @@ -238,7 +238,7 @@ TEST_F(SerialTest, init_connecting) { TEST_F(SerialTest, init_generator) { EXPECT_INIT_SUCCESS(true, true, GEN); - EXPECT_EQ(serial.pimpl()->interfaceFlags(), InterfaceFlags({WRITES_NEXT_START, WRITES_PREV_END})); + EXPECT_EQ(serial.pimpl()->interfaceFlags(), InterfaceFlags(GENERATE)); EXPECT_EQ(serial.pimpl()->interfaceFlags(), serial.pimpl()->children().front()->pimpl()->interfaceFlags()); EXPECT_INIT_FAILURE(false, false, GEN); // generator wants to push, but container cannot propagate pushes @@ -260,7 +260,7 @@ TEST_F(SerialTest, init_forward) { EXPECT_EQ(serial.pimpl()->interfaceFlags(), serial.pimpl()->children().front()->pimpl()->interfaceFlags()); EXPECT_INIT_SUCCESS(true, true, GEN, FW); - EXPECT_EQ(serial.pimpl()->interfaceFlags(), InterfaceFlags({WRITES_NEXT_START, WRITES_PREV_END})); + EXPECT_EQ(serial.pimpl()->interfaceFlags(), InterfaceFlags(GENERATE)); } TEST_F(SerialTest, init_backward) { @@ -277,10 +277,10 @@ TEST_F(SerialTest, init_backward) { EXPECT_EQ(serial.pimpl()->interfaceFlags(), serial.pimpl()->children().front()->pimpl()->interfaceFlags()); EXPECT_INIT_SUCCESS(true, true, BW, GEN); - EXPECT_EQ(serial.pimpl()->interfaceFlags(), InterfaceFlags({WRITES_NEXT_START, WRITES_PREV_END})); + EXPECT_EQ(serial.pimpl()->interfaceFlags(), InterfaceFlags(GENERATE)); EXPECT_INIT_SUCCESS(true, true, BW, GEN, FW); - EXPECT_EQ(serial.pimpl()->interfaceFlags(), InterfaceFlags({WRITES_NEXT_START, WRITES_PREV_END})); + EXPECT_EQ(serial.pimpl()->interfaceFlags(), InterfaceFlags(GENERATE)); } TEST_F(SerialTest, interface_detection) { @@ -327,13 +327,13 @@ TEST_F(SerialTest, interface_detection) { EXPECT_INIT_SUCCESS(true, true, ANY, ANY); // <> <> it = serial.pimpl()->children().begin(); - EXPECT_EQ( (*it)->pimpl()->interfaceFlags(), InterfaceFlags({PROPAGATE_FORWARDS, PROPAGATE_BACKWARDS})); - EXPECT_EQ((*++it)->pimpl()->interfaceFlags(), InterfaceFlags({PROPAGATE_FORWARDS, PROPAGATE_BACKWARDS})); - EXPECT_EQ(serial.pimpl()->interfaceFlags(), InterfaceFlags({PROPAGATE_FORWARDS, PROPAGATE_BACKWARDS})); + EXPECT_EQ( (*it)->pimpl()->interfaceFlags(), PROPAGATE_BOTHWAYS); + EXPECT_EQ((*++it)->pimpl()->interfaceFlags(), PROPAGATE_BOTHWAYS); + EXPECT_EQ(serial.pimpl()->interfaceFlags(), PROPAGATE_BOTHWAYS); EXPECT_INIT_FAILURE(false, false, ANY, ANY); // -- -- it = serial.pimpl()->children().begin(); - EXPECT_EQ( (*it)->pimpl()->interfaceFlags(), InterfaceFlags()); - EXPECT_EQ((*++it)->pimpl()->interfaceFlags(), InterfaceFlags()); - EXPECT_EQ(serial.pimpl()->interfaceFlags(), InterfaceFlags()); + EXPECT_EQ( (*it)->pimpl()->interfaceFlags(), UNKNOWN); + EXPECT_EQ((*++it)->pimpl()->interfaceFlags(), UNKNOWN); + EXPECT_EQ(serial.pimpl()->interfaceFlags(), UNKNOWN); }