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