Geometrize  1.0
An application for geometrizing images into geometric primitives
imagetaskpreferences.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include <cstdint>
4 #include <map>
5 #include <memory>
6 #include <string>
7 
8 #include "geometrize/runner/imagerunneroptions.h"
9 
10 namespace geometrize
11 {
12 
13 namespace preferences
14 {
15 
23 std::string getImageTaskPreferencesAutoSavePath(const std::string& hashOfFirstTargetImage);
24 
29 {
30 public:
32  ImageTaskPreferences(const std::string& filePath);
35  virtual ~ImageTaskPreferences();
36 
42  bool load(const std::string& filePath);
43 
49  bool save(const std::string& filePath);
50 
55  geometrize::ImageRunnerOptions getImageRunnerOptions() const;
56 
57  void enableShapeTypes(geometrize::ShapeTypes shapes);
58  void disableShapeTypes(geometrize::ShapeTypes shapes);
59  void setShapeTypes(geometrize::ShapeTypes shapes);
60  void setShapeAlpha(std::uint8_t alpha);
61  void setCandidateShapeCount(std::uint32_t shapeCount);
62  void setMaxShapeMutations(std::uint32_t maxMutations);
63  void setSeed(std::uint32_t seed);
64  void setMaxThreads(std::uint32_t maxThreads);
65  void setShapeBounds(const geometrize::ImageRunnerShapeBoundsOptions& shapeBounds);
66  void setShapeBounds(double xMinPercent, double yMinPercent, double xMaxPercent, double yMaxPercent);
67  void setShapeBoundsXMinPercent(double xMinPercent);
68  void setShapeBoundsYMinPercent(double yMinPercent);
69  void setShapeBoundsXMaxPercent(double xMaxPercent);
70  void setShapeBoundsYMaxPercent(double yMaxPercent);
71  void setShapeBoundsEnabled(bool shapeBoundsEnabled);
72 
73  bool isScriptModeEnabled() const;
74  void setScriptModeEnabled(bool enabled);
75  void setScript(const std::string& scriptName, const std::string& code);
76  void setScripts(const std::map<std::string, std::string>& scripts);
77  std::map<std::string, std::string> getScripts() const;
78 
79 private:
81  std::shared_ptr<ImageTaskPreferencesImpl> d;
82 };
83 
84 }
85 
86 }
geometrize::preferences::ImageTaskPreferences::ImageTaskPreferencesImpl::setSeed
void setSeed(const std::uint32_t seed)
Definition: imagetaskpreferences.cpp:122
geometrize::preferences::ImageTaskPreferences::isScriptModeEnabled
bool isScriptModeEnabled() const
Definition: imagetaskpreferences.cpp:320
geometrize::preferences::ImageTaskPreferences::ImageTaskPreferencesImpl::ImageTaskPreferencesImpl
ImageTaskPreferencesImpl(const std::string &filePath)
Definition: imagetaskpreferences.cpp:42
geometrize::preferences::ImageTaskPreferences::ImageTaskPreferencesImpl::operator=
ImageTaskPreferencesImpl & operator=(const ImageTaskPreferencesImpl &)=default
geometrize::preferences::ImageTaskPreferences::ImageTaskPreferencesImpl::setScriptModeEnabled
void setScriptModeEnabled(const bool enabled)
Definition: imagetaskpreferences.cpp:170
geometrize::preferences::ImageTaskPreferences::ImageTaskPreferencesImpl::save
bool save(const std::string &filePath)
Definition: imagetaskpreferences.cpp:65
geometrize::serialization::ImageTaskPreferencesData
The ImageTaskPreferencesData struct represents the preferences data for an image task.
Definition: imagetaskpreferencesdata.h:32
geometrize::preferences::ImageTaskPreferences::ImageTaskPreferencesImpl::m_scripts
std::map< std::string, std::string > m_scripts
Whether the custom Chaiscript scripts are enabled or not
Definition: imagetaskpreferences.cpp:200
geometrize::preferences::ImageTaskPreferences::setScripts
void setScripts(const std::map< std::string, std::string > &scripts)
Definition: imagetaskpreferences.cpp:330
geometrize::preferences::ImageTaskPreferences::ImageTaskPreferencesImpl::setShapeBoundsXMaxPercent
void setShapeBoundsXMaxPercent(const double xMaxPercent)
Definition: imagetaskpreferences.cpp:155
geometrize::preferences::ImageTaskPreferences::setMaxShapeMutations
void setMaxShapeMutations(std::uint32_t maxMutations)
Definition: imagetaskpreferences.cpp:265
geometrize::preferences::ImageTaskPreferences::getScripts
std::map< std::string, std::string > getScripts() const
Definition: imagetaskpreferences.cpp:335
geometrize::searchpaths::getAutosaveTaskSettingsFilename
std::string getAutosaveTaskSettingsFilename(const std::string &hashOfFirstTargetImage)
getAutomaticTaskSettingsFilename Gets the name of a task settings file to be autosaved (e....
Definition: searchpaths.cpp:36
geometrize::preferences::ImageTaskPreferences::ImageTaskPreferencesImpl::setMaxThreads
void setMaxThreads(const std::uint32_t maxThreads)
Definition: imagetaskpreferences.cpp:127
geometrize::preferences::ImageTaskPreferences::setSeed
void setSeed(std::uint32_t seed)
Definition: imagetaskpreferences.cpp:270
geometrize::preferences::ImageTaskPreferences::operator=
ImageTaskPreferences & operator=(const ImageTaskPreferences &other)
Definition: imagetaskpreferences.cpp:215
geometrize::preferences::ImageTaskPreferences::ImageTaskPreferencesImpl::setScript
void setScript(const std::string &scriptName, const std::string &code)
Definition: imagetaskpreferences.cpp:180
geometrize::preferences::ImageTaskPreferences::ImageTaskPreferencesImpl::setMaxShapeMutations
void setMaxShapeMutations(const std::uint32_t maxMutations)
Definition: imagetaskpreferences.cpp:117
geometrize::preferences::ImageTaskPreferences::ImageTaskPreferencesImpl::setShapeBoundsEnabled
void setShapeBoundsEnabled(const bool shapeBoundsEnabled)
Definition: imagetaskpreferences.cpp:165
geometrize::preferences::ImageTaskPreferences::ImageTaskPreferencesImpl::isScriptModeEnabled
bool isScriptModeEnabled() const
Definition: imagetaskpreferences.cpp:175
geometrize::serialization::ImageTaskPreferencesData::archive
void archive(Archive &ar, geometrize::ImageRunnerOptions &options, bool &scriptsEnabled, std::map< std::string, std::string > &scripts)
Definition: imagetaskpreferencesdata.h:35
geometrize::preferences::ImageTaskPreferences::d
std::shared_ptr< ImageTaskPreferencesImpl > d
Definition: imagetaskpreferences.h:80
geometrize::preferences::getImageTaskPreferencesAutoSavePath
std::string getImageTaskPreferencesAutoSavePath(const std::string &hashOfFirstTargetImage)
getImageTaskPreferencesAutoSavePath Gets the absolute path to where the image task preferences config...
Definition: imagetaskpreferences.cpp:24
geometrize::preferences::ImageTaskPreferences::ImageTaskPreferencesImpl::getImageRunnerOptions
geometrize::ImageRunnerOptions getImageRunnerOptions() const
Definition: imagetaskpreferences.cpp:87
geometrize::preferences::ImageTaskPreferences::~ImageTaskPreferences
virtual ~ImageTaskPreferences()
Definition: imagetaskpreferences.cpp:211
geometrize::preferences::ImageTaskPreferences::setCandidateShapeCount
void setCandidateShapeCount(std::uint32_t shapeCount)
Definition: imagetaskpreferences.cpp:260
geometrize::preferences::ImageTaskPreferences::ImageTaskPreferencesImpl::setCandidateShapeCount
void setCandidateShapeCount(const std::uint32_t shapeCount)
Definition: imagetaskpreferences.cpp:112
geometrize::preferences::ImageTaskPreferences
The ImageTaskPreferences class models the preferences associated with an image task.
Definition: imagetaskpreferences.h:29
geometrize::preferences::ImageTaskPreferences::ImageTaskPreferencesImpl::setShapeAlpha
void setShapeAlpha(const std::uint8_t alpha)
Definition: imagetaskpreferences.cpp:107
geometrize::preferences::ImageTaskPreferences::getImageRunnerOptions
geometrize::ImageRunnerOptions getImageRunnerOptions() const
getImageRunnerOptions Gets a copy of the image runner options.
Definition: imagetaskpreferences.cpp:235
geometrize::serialization::StreamView
The StreamView class defines a custom stream buffer view that allows Cereal to work with Qt resources...
Definition: streamview.h:20
geometrize::preferences::ImageTaskPreferences::setScriptModeEnabled
void setScriptModeEnabled(bool enabled)
Definition: imagetaskpreferences.cpp:315
geometrize::preferences::ImageTaskPreferences::setShapeAlpha
void setShapeAlpha(std::uint8_t alpha)
Definition: imagetaskpreferences.cpp:255
geometrize::preferences::ImageTaskPreferences::ImageTaskPreferencesImpl::m_data
serialization::ImageTaskPreferencesData m_data
Definition: imagetaskpreferences.cpp:196
geometrize::preferences::ImageTaskPreferences::ImageTaskPreferencesImpl::setShapeBounds
void setShapeBounds(const geometrize::ImageRunnerShapeBoundsOptions &shapeBounds)
Definition: imagetaskpreferences.cpp:132
geometrize::preferences::ImageTaskPreferences::ImageTaskPreferencesImpl
Definition: imagetaskpreferences.cpp:36
geometrize::preferences::ImageTaskPreferences::setMaxThreads
void setMaxThreads(std::uint32_t maxThreads)
Definition: imagetaskpreferences.cpp:275
geometrize::preferences::ImageTaskPreferences::setShapeBoundsXMinPercent
void setShapeBoundsXMinPercent(double xMinPercent)
Definition: imagetaskpreferences.cpp:290
geometrize::preferences::ImageTaskPreferences::ImageTaskPreferencesImpl::setShapeTypes
void setShapeTypes(const geometrize::ShapeTypes shapes)
Definition: imagetaskpreferences.cpp:102
imagetaskpreferencesdata.h
geometrize::preferences::ImageTaskPreferences::setShapeTypes
void setShapeTypes(geometrize::ShapeTypes shapes)
Definition: imagetaskpreferences.cpp:250
geometrize::preferences::ImageTaskPreferences::ImageTaskPreferencesImpl::~ImageTaskPreferencesImpl
~ImageTaskPreferencesImpl()=default
geometrize::preferences::ImageTaskPreferences::setShapeBoundsEnabled
void setShapeBoundsEnabled(bool shapeBoundsEnabled)
Definition: imagetaskpreferences.cpp:310
geometrize::preferences::ImageTaskPreferences::setShapeBounds
void setShapeBounds(const geometrize::ImageRunnerShapeBoundsOptions &shapeBounds)
Definition: imagetaskpreferences.cpp:280
imagetaskpreferences.h
searchpaths.h
geometrize::preferences::ImageTaskPreferences::save
bool save(const std::string &filePath)
save Saves the image task preferences to a file.
Definition: imagetaskpreferences.cpp:230
geometrize
Definition: commandlineparser.cpp:73
geometrize::preferences::ImageTaskPreferences::load
bool load(const std::string &filePath)
load Loads the image task preferences from a file.
Definition: imagetaskpreferences.cpp:225
geometrize::preferences::ImageTaskPreferences::ImageTaskPreferencesImpl::m_options
geometrize::ImageRunnerOptions m_options
The data that will be serialized/deserialized
Definition: imagetaskpreferences.cpp:197
geometrize::preferences::ImageTaskPreferences::ImageTaskPreferencesImpl::getScripts
std::map< std::string, std::string > getScripts() const
Definition: imagetaskpreferences.cpp:190
geometrize::preferences::ImageTaskPreferences::ImageTaskPreferencesImpl::ImageTaskPreferencesImpl
ImageTaskPreferencesImpl(const ImageTaskPreferencesImpl &)=default
streamview.h
geometrize::preferences::ImageTaskPreferences::ImageTaskPreferences
ImageTaskPreferences()
Definition: imagetaskpreferences.cpp:203
geometrize::preferences::ImageTaskPreferences::ImageTaskPreferencesImpl::load
bool load(const std::string &filePath)
Definition: imagetaskpreferences.cpp:51
geometrize::searchpaths::getAutosaveTaskSettingsSearchPaths
std::vector< std::string > getAutosaveTaskSettingsSearchPaths()
getAutosaveTaskSettingsSearchPaths Gets the directory paths that the program will search for autosave...
Definition: searchpaths.cpp:41
geometrize::preferences::ImageTaskPreferences::ImageTaskPreferencesImpl::setShapeBoundsYMinPercent
void setShapeBoundsYMinPercent(const double yMinPercent)
Definition: imagetaskpreferences.cpp:150
geometrize::preferences::ImageTaskPreferences::disableShapeTypes
void disableShapeTypes(geometrize::ShapeTypes shapes)
Definition: imagetaskpreferences.cpp:245
geometrize::preferences::ImageTaskPreferences::setShapeBoundsYMinPercent
void setShapeBoundsYMinPercent(double yMinPercent)
Definition: imagetaskpreferences.cpp:295
geometrize::preferences::ImageTaskPreferences::ImageTaskPreferencesImpl::setScripts
void setScripts(const std::map< std::string, std::string > &scripts)
Definition: imagetaskpreferences.cpp:185
geometrize::preferences::ImageTaskPreferences::setShapeBoundsXMaxPercent
void setShapeBoundsXMaxPercent(double xMaxPercent)
Definition: imagetaskpreferences.cpp:300
geometrize::preferences::ImageTaskPreferences::enableShapeTypes
void enableShapeTypes(geometrize::ShapeTypes shapes)
Definition: imagetaskpreferences.cpp:240
geometrize::preferences::ImageTaskPreferences::setShapeBoundsYMaxPercent
void setShapeBoundsYMaxPercent(double yMaxPercent)
Definition: imagetaskpreferences.cpp:305
geometrize::preferences::ImageTaskPreferences::ImageTaskPreferencesImpl::m_scriptsEnabled
bool m_scriptsEnabled
The Geometrize library-level image runner options
Definition: imagetaskpreferences.cpp:199
geometrize::preferences::ImageTaskPreferences::ImageTaskPreferencesImpl::setShapeBounds
void setShapeBounds(const double xMinPercent, const double yMinPercent, const double xMaxPercent, const double yMaxPercent)
Definition: imagetaskpreferences.cpp:137
geometrize::preferences::ImageTaskPreferences::ImageTaskPreferencesImpl::disableShapeTypes
void disableShapeTypes(const geometrize::ShapeTypes shapes)
Definition: imagetaskpreferences.cpp:97
geometrize::preferences::ImageTaskPreferences::ImageTaskPreferencesImpl::setShapeBoundsXMinPercent
void setShapeBoundsXMinPercent(const double xMinPercent)
Definition: imagetaskpreferences.cpp:145
geometrize::preferences::ImageTaskPreferences::setScript
void setScript(const std::string &scriptName, const std::string &code)
Definition: imagetaskpreferences.cpp:325
geometrize::preferences::ImageTaskPreferences::ImageTaskPreferencesImpl::ImageTaskPreferencesImpl
ImageTaskPreferencesImpl()
Definition: imagetaskpreferences.cpp:38
geometrize::preferences::ImageTaskPreferences::ImageTaskPreferencesImpl::enableShapeTypes
void enableShapeTypes(const geometrize::ShapeTypes shapes)
Definition: imagetaskpreferences.cpp:92
geometrize::preferences::ImageTaskPreferences::ImageTaskPreferencesImpl::setShapeBoundsYMaxPercent
void setShapeBoundsYMaxPercent(const double yMaxPercent)
Definition: imagetaskpreferences.cpp:160