Choreonoid  1.5
MultiSeqItem.h
Go to the documentation of this file.
1 
6 #ifndef CNOID_BASE_MULTI_SEQ_ITEM_H_INCLUDED
7 #define CNOID_BASE_MULTI_SEQ_ITEM_H_INCLUDED
8 
9 #include "AbstractSeqItem.h"
10 #include <cnoid/MultiSeq>
11 #include "exportdecl.h"
12 
13 namespace cnoid {
14 
15 template <typename MultiSeqType>
17 {
18 public:
19  static void initializeClass(ExtensionManager* ext) { }
20 
22 
23  MultiSeqItem() : seq_(boost::make_shared<MultiSeqType>()) { }
24 
25  MultiSeqItem(typename MultiSeqType::Ptr seq) : seq_(seq) { }
26 
27  virtual AbstractMultiSeqPtr abstractMultiSeq() { return seq_; }
28 
29  typename MultiSeqType::Ptr seq() { return seq_; }
30 
32  : AbstractMultiSeqItem(org),
33  seq_(boost::make_shared<MultiSeqType>(*org.seq_)) { }
34 
35  virtual ~MultiSeqItem() { }
36 
37 protected:
41  MultiSeqItem(const MultiSeqItem<MultiSeqType>& org, typename MultiSeqType::Ptr newSeq)
42  : AbstractMultiSeqItem(org),
43  seq_(newSeq) { }
44 
45  void resetSeq(typename MultiSeqType::Ptr seq) { seq_ = seq; }
46 
47  virtual Item* doDuplicate() const {
48  return new MultiSeqItem<MultiSeqType>(*this);
49  }
50 
51 private:
52  typename MultiSeqType::Ptr seq_;
53 };
54 
55 }
56 
57 #endif
ref_ptr< MultiSeqItem< MultiSeqType > > Ptr
Definition: MultiSeqItem.h:21
Definition: ExtensionManager.h:26
virtual AbstractMultiSeqPtr abstractMultiSeq()
Definition: MultiSeqItem.h:27
MultiSeqItem(const MultiSeqItem< MultiSeqType > &org, typename MultiSeqType::Ptr newSeq)
Definition: MultiSeqItem.h:41
Definition: Referenced.h:128
MultiSeqItem(typename MultiSeqType::Ptr seq)
Definition: MultiSeqItem.h:25
void resetSeq(typename MultiSeqType::Ptr seq)
Definition: MultiSeqItem.h:45
Definition: Item.h:38
MultiSeqType::Ptr seq()
Definition: MultiSeqItem.h:29
Defines the minimum processing for performing pasing file for STL.
Definition: AbstractSceneLoader.h:9
static void initializeClass(ExtensionManager *ext)
Definition: MultiSeqItem.h:19
MultiSeqItem(const MultiSeqItem< MultiSeqType > &org)
Definition: MultiSeqItem.h:31
MultiSeqItem()
Definition: MultiSeqItem.h:23
virtual Item * doDuplicate() const
Definition: MultiSeqItem.h:47
boost::shared_ptr< AbstractMultiSeq > AbstractMultiSeqPtr
Definition: AbstractSeq.h:146
virtual ~MultiSeqItem()
Definition: MultiSeqItem.h:35
Definition: MultiSeqItem.h:16
Definition: AbstractSeqItem.h:33