Skip to content

File Definitions.h

File List > Beamline > Definitions.h

Go to the documentation of this file

#pragma once

#include "Debug/Debug.h"

namespace rayx {
enum class GratingMount { Deviation, Incidence };
enum class ParaboloidType { Focussing, Collimate };
enum class CurvatureType {
    Plane,
    Toroidal,
    Spherical,
    Cubic,
    Cone,
    Cylinder,
    Ellipsoid,
    Paraboloid,
    Quadric,
    RzpSphere
};  // order is crucial for xml prser
enum class BehaviourType { Mirror, Grating, Slit, Rzp, ImagePlane, Crystal, Foil };
enum class FigureRotation { Yes, Plane, A11 };

// the direction of a plane, either XY or XZ. This is only used in the parsing.
// Inside of the shader, every plane-shaped object lies in its XZ plane.
// Per default every element has DesignPlane::XZ, but ImagePlane and Slit have DesignPlane::XY.
// Thus they need a bit of extra handling to convert them to the shaders XZ plane.
enum class DesignPlane { XY, XZ };

}  // namespace rayx