Thunderbots Project
Loading...
Searching...
No Matches
tactic_visitor.h
1#pragma once
2
3// We forward-declare all the tactics because if we include them we induce a circular
4// dependency between the individual library for each tactic and this visitor. This is
5// because tactic.h includes tactic_visitor.h, and each individual library includes
6// tactic.h. Note: every subclass of this visitor must include all of the classes listed
7// below
8class ChipTactic;
10class DefenseShadowEnemyTactic;
11class DribbleTactic;
13class GoalieTactic;
14class GoalieTestTactic;
15class KickTactic;
16class KickoffChipTactic;
17class MoveTactic;
18class MoveTestTactic;
19class AttackerTactic;
22class PenaltySetupTactic;
23class PivotKickTactic;
24class ReceiverTactic;
26class HaltTactic;
27class StopTestTactic;
28class MoveGoalieToGoalLineTactic;
29class PrepareKickoffMoveTactic;
30class PlaceBallTactic;
31class PlaceBallMoveTactic;
32class WallKickoffTactic;
33class AvoidInterferenceTactic;
34
39{
40 public:
41 virtual ~TacticVisitor() = default;
42
43 // The javadoc comment for all methods here can be read as:
50 virtual void visit(const ChipTactic &tactic) = 0;
51 virtual void visit(const CreaseDefenderTactic &tactic) = 0;
52 virtual void visit(const DefenseShadowEnemyTactic &tactic) = 0;
53 virtual void visit(const DribbleTactic &tactic) = 0;
54 virtual void visit(const GetBehindBallTactic &tactic) = 0;
55 virtual void visit(const GoalieTactic &tactic) = 0;
56 virtual void visit(const GoalieTestTactic &tactic) = 0;
57 virtual void visit(const KickTactic &tactic) = 0;
58 virtual void visit(const KickoffChipTactic &tactic) = 0;
59 virtual void visit(const MoveTactic &tactic) = 0;
60 virtual void visit(const MoveTestTactic &tactic) = 0;
61 virtual void visit(const AttackerTactic &tactic) = 0;
62 virtual void visit(const PassDefenderTactic &tactic) = 0;
63 virtual void visit(const PenaltyKickTactic &tactic) = 0;
64 virtual void visit(const PenaltySetupTactic &tactic) = 0;
65 virtual void visit(const PivotKickTactic &tactic) = 0;
66 virtual void visit(const ReceiverTactic &tactic) = 0;
67 virtual void visit(const ShadowEnemyTactic &tactic) = 0;
68 virtual void visit(const HaltTactic &tactic) = 0;
69 virtual void visit(const StopTestTactic &tactic) = 0;
70 virtual void visit(const MoveGoalieToGoalLineTactic &tactic) = 0;
71 virtual void visit(const PrepareKickoffMoveTactic &tactic) = 0;
72 virtual void visit(const PlaceBallTactic &tactic) = 0;
73 virtual void visit(const PlaceBallMoveTactic &tactic) = 0;
74 virtual void visit(const WallKickoffTactic &tactic) = 0;
75 virtual void visit(const AvoidInterferenceTactic &tactic) = 0;
76};
Definition attacker_tactic.h:15
Definition chip_tactic.h:14
Definition crease_defender_tactic.h:31
Definition dribble_tactic.h:15
Definition get_behind_ball_tactic.h:11
Definition goalie_tactic.h:18
Definition halt_tactic.h:11
Definition kick_tactic.h:14
Definition move_tactic.h:11
Definition pass_defender_tactic.h:15
Definition penalty_kick_tactic.h:15
Definition pivot_kick_tactic.h:10
Definition receiver_tactic.h:16
Definition shadow_enemy_tactic.h:14
Definition tactic_visitor.h:39
virtual void visit(const ChipTactic &tactic)=0