Pioneer
Loading...
Searching...
No Matches
NodeVisitor.h
Go to the documentation of this file.
1// Copyright © 2008-2024 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 */
12namespace SceneGraph {
13
14 class Billboard;
15 class CollisionGeometry;
16 class Group;
17 class Label3D;
18 class LOD;
19 class MatrixTransform;
20 class Node;
21 class StaticGeometry;
22 class Tag;
23 class Thruster;
24
26 public:
27 virtual ~NodeVisitor() {}
28 virtual void ApplyNode(Node &);
29 virtual void ApplyGroup(Group &);
30 virtual void ApplyStaticGeometry(StaticGeometry &);
31 virtual void ApplyLabel(Label3D &);
33 virtual void ApplyTag(Tag &);
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:16
Definition: Billboard.h:18
Definition: CollisionGeometry.h:22
Definition: Group.h:13
Definition: LOD.h:13
Definition: Label3D.h:23
Definition: MatrixTransform.h:24
Definition: NodeVisitor.h:25
virtual void ApplyTag(Tag &)
Definition: NodeVisitor.cpp:43
virtual void ApplyStaticGeometry(StaticGeometry &)
Definition: NodeVisitor.cpp:28
virtual void ApplyGroup(Group &)
Definition: NodeVisitor.cpp:23
virtual void ApplyCollisionGeometry(CollisionGeometry &)
Definition: NodeVisitor.cpp:63
virtual ~NodeVisitor()
Definition: NodeVisitor.h:27
virtual void ApplyBillboard(Billboard &)
Definition: NodeVisitor.cpp:48
virtual void ApplyNode(Node &)
Definition: NodeVisitor.cpp:18
virtual void ApplyLOD(LOD &)
Definition: NodeVisitor.cpp:58
virtual void ApplyThruster(Thruster &)
Definition: NodeVisitor.cpp:53
virtual void ApplyLabel(Label3D &)
Definition: NodeVisitor.cpp:33
virtual void ApplyMatrixTransform(MatrixTransform &)
Definition: NodeVisitor.cpp:38
Definition: Node.h:75
Definition: StaticGeometry.h:18
Definition: Tag.h:18
Definition: Thruster.h:21
Definition: CityOnPlanet.h:32