1 #pragma once
2 
3 #include "gui/Settings.h"
4 #include "objects/containers/FlatMap.h"
5 #include "objects/wrappers/AutoPtr.h"
6 #include "objects/wrappers/ExtendedEnum.h"
7 
8 NAMESPACE_SPH_BEGIN
9 
10 class ICamera;
11 class IColorizer;
12 class IRenderer;
13 class Palette;
14 struct Pixel;
15 class Interval;
16 class ITracker;
17 class IBrdf;
18 class IColorMap;
19 class IScheduler;
20 class Project;
21 enum class ColorizerId;
22 using ExtColorizerId = ExtendedEnum<ColorizerId>;
23 
24 namespace Factory {
25 
26 /// Creates a camera
27 /// \param size Resolution of produced image
28 AutoPtr<ICamera> getCamera(const GuiSettings& settings, const Pixel size);
29 
30 AutoPtr<ITracker> getTracker(const GuiSettings& settings);
31 
32 AutoPtr<IRenderer> getRenderer(const GuiSettings& settings);
33 
34 AutoPtr<IRenderer> getRenderer(SharedPtr<IScheduler> scheduler, const GuiSettings& settings);
35 
36 AutoPtr<IBrdf> getBrdf(const GuiSettings& settings);
37 
38 AutoPtr<IColorMap> getColorMap(const GuiSettings& settings);
39 
40 AutoPtr<IColorizer> getColorizer(const Project& project, const ExtColorizerId id);
41 
42 Palette getPalette(const ExtColorizerId id);
43 
44 } // namespace Factory
45 
46 NAMESPACE_SPH_END
47