Choreonoid  1.1
WorldItem.h
[詳解]
1 
6 #ifndef CNOID_BODYPLUGIN_WORLD_ITEM_H_INCLUDED
7 #define CNOID_BODYPLUGIN_WORLD_ITEM_H_INCLUDED
8 
9 #include "BodyItem.h"
10 #include <cnoid/Item>
11 #include <cnoid/Body>
12 #include <cnoid/Link>
13 #include <cnoid/ColdetLinkPair>
14 #include <vector>
15 #include "exportdecl.h"
16 
17 namespace cnoid {
18 
19  class WorldItemImpl;
20 
25  class CNOID_EXPORT WorldItem : public Item
26  {
27  public:
28 
29  WorldItem();
30  WorldItem(const WorldItem& org);
31  virtual ~WorldItem();
32 
33  inline ItemList<BodyItem> getBodyItems() const {
34  return getSubItems<BodyItem>();
35  }
36 
37  std::vector<ColdetLinkPairPtr> coldetPairs;
38 
39  void enableCollisionDetection(bool on);
40  bool isCollisionDetectionEnabled();
41  void updateCollisions();
42 
43  SignalProxy< boost::signal<void()> > sigColdetPairsUpdated();
44  SignalProxy< boost::signal<void()> > sigCollisionsUpdated();
45 
46  protected:
47 
48  virtual ItemPtr doDuplicate() const;
49  virtual void doPutProperties(PutPropertyFunction& putProperty);
50  virtual bool store(Archive& archive);
51  virtual bool restore(const Archive& archive);
52 
53  private:
54 
55  WorldItemImpl* impl;
56  };
57 
58  typedef boost::intrusive_ptr<WorldItem> WorldItemPtr;
59 
60  void initializeWorldItem(ExtensionManager& ext);
61 
62 }
63 
64 #endif
std::vector< ColdetLinkPairPtr > coldetPairs
Definition: WorldItem.h:37
Definition: WorldItem.h:25
Definition: EasyScanner.h:16
void initializeWorldItem(ExtensionManager &ext)
Definition: WorldItem.cpp:100
#define CNOID_EXPORT
Definition: Util/exportdecl.h:13
ItemList< BodyItem > getBodyItems() const
Definition: WorldItem.h:33
boost::intrusive_ptr< WorldItem > WorldItemPtr
Definition: WorldItem.h:58