Mantid
Loading...
Searching...
No Matches
ParComponentFactory.h
Go to the documentation of this file.
1// Mantid Repository : https://github.com/mantidproject/mantid
2//
3// Copyright © 2007 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// Includes
10//------------------------------------------------------------------------------
11#include "MantidGeometry/DllConfig.h"
12#ifndef Q_MOC_RUN
13#include <memory>
14#endif
15#include <stdexcept>
16#include <vector>
17
18namespace Mantid {
19namespace Geometry {
20class ParameterMap;
21class IComponent;
22class IDetector;
23class Detector;
24class Instrument;
25
32class MANTID_GEOMETRY_DLL ParComponentFactory {
33public:
37 static std::shared_ptr<IDetector> createDetector(const IDetector *base, const ParameterMap *map);
38
40 static std::shared_ptr<Instrument> createInstrument(const std::shared_ptr<const Instrument> &base,
41 const std::shared_ptr<ParameterMap> &map);
44 static std::shared_ptr<IComponent> create(const std::shared_ptr<const IComponent> &base, const ParameterMap *map);
45};
46
47} // Namespace Geometry
48} // Namespace Mantid
Interface class for detector objects.
Definition: IDetector.h:43
A Factory for creating Parameterized component from their respective non-parameterized objects.
std::unique_ptr< T > create(const P &parent, const IndexArg &indexArg, const HistArg &histArg)
This is the create() method that all the other create() methods call.
Helper class which provides the Collimation Length for SANS instruments.