SceneNode* GroupNode::clone() const { GroupNode* node = new GroupNode(); for (auto child: children) node->addChild(child->clone()); return node; }
TEST(NodeTest, children) { GroupNode root; Node *child1 = new Node; Node *child2 = new Node; root.addChild(child1); root.addChild(child2); EXPECT_EQ(&root, child1->parent()); EXPECT_EQ(&root, child2->parent()); EXPECT_EQ(child1, root.child(0)); EXPECT_EQ(child2, root.child(1)); }
TEST(NodeTest, removeChild) { GroupNode root; Node *child1 = new Node; Node *child2 = new Node; root.addChild(child1); root.addChild(child2); EXPECT_EQ(child1, root.child(0)); EXPECT_EQ(root.removeChild(child1), true); EXPECT_EQ(root.removeChild(child1), false); EXPECT_EQ(child2, root.child(0)); EXPECT_EQ(NULL, child1->parent()); EXPECT_EQ(&root, child2->parent()); EXPECT_EQ(root.removeChild(child2), true); delete child1; delete child2; }