gramods
Transform.hh
1 
2 #ifndef GRAMODS_GRAPHICS_TRANSFORM
3 #define GRAMODS_GRAPHICS_TRANSFORM
4 
5 #include <gmGraphics/Group.hh>
6 
7 BEGIN_NAMESPACE_GMGRAPHICS;
8 
12 class Transform : public Group {
13 
14 public:
15  virtual Eigen::Affine3f getTransform() = 0;
16 
17  void accept(Visitor *visitor) override {
18  if (auto *ts_visitor =
19  dynamic_cast<Node::TransformStackVisitor *>(visitor)) {
20  ts_visitor->apply(this, getTransform());
21  } else
22  visitor->apply(this);
23  }
24 };
25 
26 END_NAMESPACE_GMGRAPHICS;
27 
28 #endif
The scenegraph group base.
Definition: Group.hh:12
The scenegraph transform base.
Definition: Transform.hh:12
void accept(Visitor *visitor) override
Calls the visitors apply method with this as argument.
Definition: Transform.hh:17
The visitor of a design pattern for automatic traversal.
Definition: Object.hh:75
virtual void apply(Object *node)
This method is called for each visited objects.
Definition: Object.hh:79
Base for Visitor:s that need to track the space transform through traversal.
Definition: Node.hh:36