Line data Source code
1 0 : // Distributed under the MIT License. 2 : // See LICENSE.txt for details. 3 : 4 : #pragma once 5 : 6 : #include <iosfwd> 7 : #include <string> 8 : 9 : namespace domain { 10 : /// Labels for the objects in a binary system. 11 1 : enum class ObjectLabel { 12 : /// The object along the positive x-axis in the grid frame 13 : A, 14 : /// The object along the negative x-axis in the grid frame 15 : B, 16 : /// A third object, typically centered at the origin. 17 : C, 18 : /// This object has no label 19 : None 20 : }; 21 : 22 0 : std::string name(const ObjectLabel x); 23 : 24 0 : std::ostream& operator<<(std::ostream& s, const ObjectLabel x); 25 : 26 : /// \brief Similar to a `tmpl::list` but for `ObjectLabel`s. 27 : template <ObjectLabel... Objects> 28 1 : struct object_list {}; 29 : } // namespace domain