Mantid
Loading...
Searching...
No Matches
Rasterize.h
Go to the documentation of this file.
1// Mantid Repository : https://github.com/mantidproject/mantid
2//
3// Copyright © 2018 ISIS Rutherford Appleton Laboratory UKRI,
4// NScD Oak Ridge National Laboratory, European Spallation Source,
5// Institut Laue - Langevin & CSNS, Institute of High Energy Physics, CAS
6// SPDX - License - Identifier: GPL - 3.0 +
7#pragma once
8
9#include "MantidGeometry/DllConfig.h"
10#include "MantidKernel/V3D.h"
11#include <memory>
12
13namespace Mantid {
14namespace Geometry {
15
16class IObject;
17class CSGObject;
18
21struct MANTID_GEOMETRY_DLL Raster {
22public:
23 void reserve(size_t numVolumeElements);
24
25 std::vector<double> l1;
26 std::vector<double> volume;
27 std::vector<Kernel::V3D> position;
28 double totalvolume;
29};
30
31namespace Rasterize {
32
33MANTID_GEOMETRY_DLL Raster calculate(const Kernel::V3D &beamDirection, const IObject &shape,
34 const double cubeSizeInMetre);
35
36MANTID_GEOMETRY_DLL Raster calculateCylinder(const Kernel::V3D &beamDirection, const IObject &shape,
37 const size_t numSlices, const size_t numAnnuli);
38
39MANTID_GEOMETRY_DLL Raster calculateHollowCylinder(const Kernel::V3D &beamDirection, const IObject &shape,
40 const size_t numSlices, const size_t numAnnuli);
41
42} // namespace Rasterize
43} // namespace Geometry
44} // namespace Mantid
IObject : Interface for geometry objects.
Definition: IObject.h:41
Class for 3D vectors.
Definition: V3D.h:34
MANTID_GEOMETRY_DLL Raster calculate(const Kernel::V3D &beamDirection, const IObject &shape, const double cubeSizeInMetre)
Definition: Rasterize.cpp:181
MANTID_GEOMETRY_DLL Raster calculateCylinder(const Kernel::V3D &beamDirection, const IObject &shape, const size_t numSlices, const size_t numAnnuli)
Definition: Rasterize.cpp:206
MANTID_GEOMETRY_DLL Raster calculateHollowCylinder(const Kernel::V3D &beamDirection, const IObject &shape, const size_t numSlices, const size_t numAnnuli)
Definition: Rasterize.cpp:280
Helper class which provides the Collimation Length for SANS instruments.
Holds the information used for doing numerical integrations of object in the beam.
Definition: Rasterize.h:21
double totalvolume
Volume of the object.
Definition: Rasterize.h:28
std::vector< double > volume
Cached element volumes.
Definition: Rasterize.h:26
std::vector< double > l1
Cached L1 distances.
Definition: Rasterize.h:25
std::vector< Kernel::V3D > position
Cached element positions.
Definition: Rasterize.h:27