Choreonoid  1.8
LinkShapeOverwriteItem.h
Go to the documentation of this file.
1 #ifndef CNOID_BODY_PLUGIN_LINK_SHAPE_OVERWRITE_ITEM_H
2 #define CNOID_BODY_PLUGIN_LINK_SHAPE_OVERWRITE_ITEM_H
3 
5 #include <cnoid/LocatableItem>
6 #include <cnoid/RenderableItem>
7 #include "exportdecl.h"
8 
9 namespace cnoid {
10 
11 class Link;
12 class SgShape;
13 
15  public LocatableItem, public RenderableItem
16 {
17 public:
18  static void initializeClass(ExtensionManager* ext);
19 
22  virtual ~LinkShapeOverwriteItem();
23 
28  bool overwriteLinkShape(BodyItem* bodyItem, Link* link);
29 
30  Link* link();
31 
32  SgShape* shapeNode();
33  void setShapeNode(SgShape* shape);
34 
35  Isometry3 shapeOffset() const;
36  void setShapeOffset(const Isometry3& T);
37 
38  void cancelOverwriting();
39 
40  // LocatableItem function
41  virtual LocationProxyPtr getLocationProxy() override;
42 
43  // RenderableItem function. This returns the link origin marker.
44  virtual SgNode* getScene() override;
45 
46  class Impl;
47 
48 protected:
49  virtual Item* doDuplicate(Item* duplicatedParentItem) const override;
50  void onDisconnectedFromBodyItem() override;
51  virtual void doPutProperties(PutPropertyFunction& putProperty) override;
52  virtual bool store(Archive& archive) override;
53  virtual bool restore(const Archive& archive) override;
54 
55 private:
56  Impl* impl;
57 
58  class FileIO;
59 };
60 
62 
63 }
64 
65 #endif
cnoid::LinkShapeOverwriteItemPtr
ref_ptr< LinkShapeOverwriteItem > LinkShapeOverwriteItemPtr
Definition: LinkShapeOverwriteItem.h:61
cnoid::ExtensionManager
Definition: ExtensionManager.h:23
cnoid::PutPropertyFunction
Definition: PutPropertyFunction.h:51
BodyElementOverwriteItem.h
cnoid::Isometry3
Eigen::Isometry3d Isometry3
Definition: EigenTypes.h:73
cnoid::Archive
Definition: Archive.h:22
cnoid::LinkShapeOverwriteItem
Definition: LinkShapeOverwriteItem.h:14
cnoid::ref_ptr< LocationProxy >
cnoid::BodyItem
Definition: BodyItem.h:28
cnoid
Definition: AbstractSceneLoader.h:11
cnoid::Item
Definition: Item.h:29
cnoid::RenderableItem
Definition: RenderableItem.h:11
cnoid::SgShape
Definition: SceneDrawables.h:530
cnoid::BodyElementOverwriteItem
Definition: BodyElementOverwriteItem.h:15
cnoid::SgNode
Definition: SceneGraph.h:157
cnoid::LocatableItem
Definition: LocatableItem.h:62