tue_config
sequence.cpp
Go to the documentation of this file.
1 #include "tue/config/sequence.h"
2 #include "tue/config/data.h"
3 
4 namespace tue
5 {
6 
7 namespace config
8 {
9 
10 NodePtr Sequence::deepCopy(const Data& source, NodeIdx target_idx, Data& target) const
11 {
12  boost::shared_ptr<Sequence> n(new Sequence(name()));
13 
14  n->children_.resize(children_.size());
15  for(unsigned int i = 0; i < children_.size(); ++i)
16  {
17  NodeIdx child_idx = target.addNode(NodePtr(), target_idx);
18  target.nodes[child_idx] = source.nodes[children_[i]]->deepCopy(source, child_idx, target);
19  n->children_[i] = child_idx;
20 
21  if (i > 0)
22  target.setRightSibling(n->children_[i - 1], child_idx);
23  }
24 
25  return n;
26 }
27 
28 }
29 
30 } // end namespace tue
31 
std::vector::size
T size(T... args)
tue::config::NodeIdx
unsigned int NodeIdx
Definition: data_pointer.h:12
tue::config::Sequence::children_
std::vector< NodeIdx > children_
Definition: sequence.h:40
sequence.h
tue::config::Data::nodes
std::vector< NodePtr > nodes
Definition: data.h:77
tue::config::Data::setRightSibling
void setRightSibling(NodeIdx n, NodeIdx sibling)
Definition: data.h:75
tue::config::Sequence::Sequence
Sequence(const Label &name)
Definition: sequence.h:19
tue::config::Data::addNode
NodeIdx addNode(const NodePtr &n, NodeIdx parent)
Definition: data.h:61
tue::config::Sequence::deepCopy
NodePtr deepCopy(const Data &source, NodeIdx target_idx, Data &target) const
Definition: sequence.cpp:10
tue::config::Data
Definition: data.h:17
data.h
tue::config::NodePtr
boost::shared_ptr< Node > NodePtr
Definition: types.h:21
tue::config::Node::name
const Label & name() const
Definition: node.h:54
tue
config
tue::config::ReaderWriter config
Definition: sdf_gtest.cpp:9