25 "ellipsoid of revolution",
26 {{
"Radius",
"nm",
"revolution radius", 0, +
INF, 0},
27 {
"Height",
"nm",
"height = twice the radius in non-revolution direction", 0, +
INF, 0}}},
47 complex_t qR = sqrt(R * R * (q.
x() * q.
x() + q.
y() * q.
y()) + h * h * q.
z() * q.
z());
51 if (std::abs(qR) < 1e-4)
53 return 4 *
M_PI / 3 * R * R * h * (1. - 0.1 * pow(qR, 2)) * zFactor;
55 return 4 *
M_PI / pow(qR, 3) * R * R * h * (sin(qR) - qR * cos(qR)) * zFactor;
std::complex< double > complex_t
complex_t exp_I(complex_t z)
Returns exp(I*z), where I is the imaginary unit.
Defines M_PI and some more mathematical constants.
Defines functions in namespace Math.
Defines class TruncatedEllipsoid.
T z() const
Returns z-component in cartesian coordinate system.
T y() const
Returns y-component in cartesian coordinate system.
T x() const
Returns x-component in cartesian coordinate system.
Abstract base class for Born form factors.
std::unique_ptr< IShape3D > m_shape3D
IShape3D object, used to retrieve vertices (which may be approximate in the case of round shapes).
static SlicingEffects computeSlicingEffects(ZLimits limits, const kvector_t &position, double height)
Helper method for slicing.
Abstract base class for rotations.
Class that contains upper and lower limits of the z-coordinate for the slicing of form factors.