Choreonoid  1.5
BodyMotionItem.h
Go to the documentation of this file.
1 
6 #ifndef CNOID_BODY_PLUGIN_BODY_MOTION_ITEM_H
7 #define CNOID_BODY_PLUGIN_BODY_MOTION_ITEM_H
8 
9 #include <cnoid/BodyMotion>
10 #include <cnoid/MultiValueSeqItem>
11 #include <cnoid/MultiSE3SeqItem>
12 #include "exportdecl.h"
13 
14 namespace cnoid {
15 
16 class BodyMotionItemImpl;
17 
19 {
20 public:
21  static void initializeClass(ExtensionManager* ext);
22 
23  static void addExtraSeqItemFactory(
24  const std::string& key, boost::function<AbstractSeqItem*(AbstractSeqPtr seq)> factory);
25 
27  BodyMotionItem(BodyMotionPtr bodyMotion);
28  BodyMotionItem(const BodyMotionItem& org);
29  ~BodyMotionItem();
30 
31  virtual AbstractMultiSeqPtr abstractMultiSeq();
32 
33  BodyMotionPtr motion() { return bodyMotion_; }
34 
36  return jointPosSeqItem_.get();
37  }
38 
40  return bodyMotion_->jointPosSeq();
41  }
42 
44  return linkPosSeqItem_.get();
45  }
46 
48  return bodyMotion_->linkPosSeq();
49  }
50 
51  int numExtraSeqItems() const;
52  const std::string& extraSeqKey(int index) const;
53  AbstractSeqItem* extraSeqItem(int index);
54  const AbstractSeqItem* extraSeqItem(int index) const;
55  SignalProxy<void()> sigExtraSeqItemsChanged();
56  void updateExtraSeqItems();
57 
58  virtual void notifyUpdate();
59 
60 protected:
61  virtual bool onChildItemAboutToBeAdded(Item* childItem, bool isManualOperation);
62  virtual Item* doDuplicate() const;
63  virtual bool store(Archive& archive);
64  virtual bool restore(const Archive& archive);
65 
66 private:
67  BodyMotionPtr bodyMotion_;
68  MultiValueSeqItemPtr jointPosSeqItem_;
69  MultiSE3SeqItemPtr linkPosSeqItem_;
70 
71  BodyMotionItemImpl* impl;
72  friend class BodyMotionItemImpl;
73 };
74 
76 }
77 
78 #endif
Definition: Archive.h:21
MultiValueSeq::Ptr MultiValueSeqPtr
Definition: MultiValueSeq.h:36
Definition: ExtensionManager.h:26
boost::shared_ptr< BodyMotion > BodyMotionPtr
Definition: BodyMotion.h:147
boost::shared_ptr< AbstractSeq > AbstractSeqPtr
Definition: AbstractSeq.h:19
Definition: Referenced.h:128
Definition: BodyMotionItem.h:18
MultiSE3Seq::Ptr MultiSE3SeqPtr
Definition: MultiSE3Seq.h:50
MultiValueSeqPtr jointPosSeq()
Definition: BodyMotionItem.h:39
Definition: Item.h:38
Defines the minimum processing for performing pasing file for STL.
Definition: AbstractSceneLoader.h:9
Definition: AbstractSeqItem.h:15
boost::shared_ptr< AbstractMultiSeq > AbstractMultiSeqPtr
Definition: AbstractSeq.h:146
MultiSE3SeqPtr linkPosSeq()
Definition: BodyMotionItem.h:47
BodyMotionPtr motion()
Definition: BodyMotionItem.h:33
MultiSE3SeqItem * linkPosSeqItem()
Definition: BodyMotionItem.h:43
#define CNOID_EXPORT
Definition: Util/exportdecl.h:37
Definition: MultiSeqItem.h:16
Definition: Signal.h:380
MultiValueSeqItem * jointPosSeqItem()
Definition: BodyMotionItem.h:35
Definition: AbstractSeqItem.h:33
ref_ptr< BodyMotionItem > BodyMotionItemPtr
Definition: BodyMotionItem.h:75