EnigmaMachineCore 0.1.0
A modular Enigma Machine simulation in C++20
Loading...
Searching...
No Matches
Reflector.hpp
Go to the documentation of this file.
1
6#pragma once
7
8#include "EnigmaMachineConfig.hpp" // For ReflectorConfig
9#include "Transformer.hpp"
10
17class Reflector : public Transformer {
18public:
26 explicit Reflector(const ReflectorConfig& config);
27 explicit Reflector(ReflectorConfig&& config);
28 ~Reflector() override = default;
29
40 AlphabetIndex transform(AlphabetIndex position, bool reverse = false) const override;
41
48 AlphabetIndex transformForward(AlphabetIndex position) const override;
49
55 AlphabetIndex transformReverse(AlphabetIndex position) const override;
56
62 int rotate() override { return 0; }
63};
Header file for the Transformer class.
Class representing a reflector in the Enigma machine. This class inherits from the Transformer class ...
Definition Reflector.hpp:17
AlphabetIndex transformReverse(AlphabetIndex position) const override
Transforms the given position in reverse.
Definition Reflector.cpp:50
AlphabetIndex transformForward(AlphabetIndex position) const override
Transforms the given position forward.
Definition Reflector.cpp:44
AlphabetIndex transform(AlphabetIndex position, bool reverse=false) const override
Transforms the given position using the reflector's transformation lookup table (LUT).
Definition Reflector.cpp:36
~Reflector() override=default
int rotate() override
Reflector does not rotate.
Definition Reflector.hpp:62
Base class for transformers (rotors and reflectors). This class provides the interface for transformi...
Configuration structure for a Reflector.