Pioneer
NodeVisitor.h
Go to the documentation of this file.
1 // Copyright © 2008-2023 Pioneer Developers. See AUTHORS.txt for details
2 // Licensed under the terms of the GPL v3. See licenses/GPL-3.txt
3 
4 #ifndef _NODEVISITOR_H
5 #define _NODEVISITOR_H
6 /*
7  * Node visitor using the "double dispatch" model
8  * where the nodes call the appropriate Apply* method
9  *
10  * Start traversal with node->Accept(visitor)!
11  */
12 #include "libs.h"
13 
14 namespace SceneGraph {
15 
16  class Billboard;
17  class CollisionGeometry;
18  class Group;
19  class Label3D;
20  class LOD;
21  class MatrixTransform;
22  class Node;
23  class StaticGeometry;
24  class Thruster;
25 
26  class NodeVisitor {
27  public:
28  virtual ~NodeVisitor() {}
29  virtual void ApplyNode(Node &);
30  virtual void ApplyGroup(Group &);
31  virtual void ApplyStaticGeometry(StaticGeometry &);
32  virtual void ApplyLabel(Label3D &);
33  virtual void ApplyMatrixTransform(MatrixTransform &);
34  virtual void ApplyBillboard(Billboard &);
35  virtual void ApplyThruster(Thruster &);
36  virtual void ApplyLOD(LOD &);
38  };
39 
40 } // namespace SceneGraph
41 #endif
Thruster
Definition: Propulsion.h:15
Definition: Billboard.h:18
Definition: CollisionGeometry.h:22
Definition: Group.h:12
Definition: LOD.h:13
Definition: Label3D.h:21
Definition: MatrixTransform.h:24
Definition: NodeVisitor.h:26
virtual void ApplyStaticGeometry(StaticGeometry &)
Definition: NodeVisitor.cpp:27
virtual void ApplyGroup(Group &)
Definition: NodeVisitor.cpp:22
virtual void ApplyCollisionGeometry(CollisionGeometry &)
Definition: NodeVisitor.cpp:57
virtual ~NodeVisitor()
Definition: NodeVisitor.h:28
virtual void ApplyBillboard(Billboard &)
Definition: NodeVisitor.cpp:42
virtual void ApplyNode(Node &)
Definition: NodeVisitor.cpp:17
virtual void ApplyLOD(LOD &)
Definition: NodeVisitor.cpp:52
virtual void ApplyThruster(Thruster &)
Definition: NodeVisitor.cpp:47
virtual void ApplyLabel(Label3D &)
Definition: NodeVisitor.cpp:32
virtual void ApplyMatrixTransform(MatrixTransform &)
Definition: NodeVisitor.cpp:37
Definition: Node.h:72
Definition: StaticGeometry.h:19
Definition: Thruster.h:21
Definition: CityOnPlanet.h:31