Geometrize  1.0
An application for geometrizing images into geometric primitives
Public Member Functions | Private Attributes | List of all members
geometrize::preferences::ImageTaskPreferences::ImageTaskPreferencesImpl Class Reference
Collaboration diagram for geometrize::preferences::ImageTaskPreferences::ImageTaskPreferencesImpl:
Collaboration graph
[legend]

Public Member Functions

 ImageTaskPreferencesImpl ()
 
 ImageTaskPreferencesImpl (const std::string &filePath)
 
 ~ImageTaskPreferencesImpl ()=default
 
ImageTaskPreferencesImploperator= (const ImageTaskPreferencesImpl &)=default
 
 ImageTaskPreferencesImpl (const ImageTaskPreferencesImpl &)=default
 
bool load (const std::string &filePath)
 
bool save (const std::string &filePath)
 
geometrize::ImageRunnerOptions getImageRunnerOptions () const
 
void enableShapeTypes (const geometrize::ShapeTypes shapes)
 
void disableShapeTypes (const geometrize::ShapeTypes shapes)
 
void setShapeTypes (const geometrize::ShapeTypes shapes)
 
void setShapeAlpha (const std::uint8_t alpha)
 
void setCandidateShapeCount (const std::uint32_t shapeCount)
 
void setMaxShapeMutations (const std::uint32_t maxMutations)
 
void setSeed (const std::uint32_t seed)
 
void setMaxThreads (const std::uint32_t maxThreads)
 
void setShapeBounds (const geometrize::ImageRunnerShapeBoundsOptions &shapeBounds)
 
void setShapeBounds (const double xMinPercent, const double yMinPercent, const double xMaxPercent, const double yMaxPercent)
 
void setShapeBoundsXMinPercent (const double xMinPercent)
 
void setShapeBoundsYMinPercent (const double yMinPercent)
 
void setShapeBoundsXMaxPercent (const double xMaxPercent)
 
void setShapeBoundsYMaxPercent (const double yMaxPercent)
 
void setShapeBoundsEnabled (const bool shapeBoundsEnabled)
 
void setScriptModeEnabled (const bool enabled)
 
bool isScriptModeEnabled () const
 
void setScript (const std::string &scriptName, const std::string &code)
 
void setScripts (const std::map< std::string, std::string > &scripts)
 
std::map< std::string, std::string > getScripts () const
 

Private Attributes

serialization::ImageTaskPreferencesData m_data
 
geometrize::ImageRunnerOptions m_options
 

The data that will be serialized/deserialized

More...
 
bool m_scriptsEnabled {false}
 

The Geometrize library-level image runner options

More...
 
std::map< std::string, std::string > m_scripts
 

Whether the custom Chaiscript scripts are enabled or not

More...
 

Constructor & Destructor Documentation

◆ ImageTaskPreferencesImpl() [1/3]

geometrize::preferences::ImageTaskPreferences::ImageTaskPreferencesImpl::ImageTaskPreferencesImpl ( )
inline
39  {
40  }

◆ ImageTaskPreferencesImpl() [2/3]

geometrize::preferences::ImageTaskPreferences::ImageTaskPreferencesImpl::ImageTaskPreferencesImpl ( const std::string &  filePath)
inline
43  {
44  load(filePath);
45  }
Here is the call graph for this function:

◆ ~ImageTaskPreferencesImpl()

geometrize::preferences::ImageTaskPreferences::ImageTaskPreferencesImpl::~ImageTaskPreferencesImpl ( )
default

◆ ImageTaskPreferencesImpl() [3/3]

geometrize::preferences::ImageTaskPreferences::ImageTaskPreferencesImpl::ImageTaskPreferencesImpl ( const ImageTaskPreferencesImpl )
default

Member Function Documentation

◆ disableShapeTypes()

void geometrize::preferences::ImageTaskPreferences::ImageTaskPreferencesImpl::disableShapeTypes ( const geometrize::ShapeTypes  shapes)
inline
98  {
99  m_options.shapeTypes = static_cast<geometrize::ShapeTypes>(static_cast<std::uint32_t>(m_options.shapeTypes) &~ static_cast<std::uint32_t>(shapes));
100  }

◆ enableShapeTypes()

void geometrize::preferences::ImageTaskPreferences::ImageTaskPreferencesImpl::enableShapeTypes ( const geometrize::ShapeTypes  shapes)
inline
93  {
94  m_options.shapeTypes = static_cast<geometrize::ShapeTypes>(static_cast<std::uint32_t>(m_options.shapeTypes) | static_cast<std::uint32_t>(shapes));
95  }

◆ getImageRunnerOptions()

geometrize::ImageRunnerOptions geometrize::preferences::ImageTaskPreferences::ImageTaskPreferencesImpl::getImageRunnerOptions ( ) const
inline
88  {
89  return m_options;
90  }

◆ getScripts()

std::map<std::string, std::string> geometrize::preferences::ImageTaskPreferences::ImageTaskPreferencesImpl::getScripts ( ) const
inline
191  {
192  return m_scripts;
193  }

◆ isScriptModeEnabled()

bool geometrize::preferences::ImageTaskPreferences::ImageTaskPreferencesImpl::isScriptModeEnabled ( ) const
inline
176  {
177  return m_scriptsEnabled;
178  }

◆ load()

bool geometrize::preferences::ImageTaskPreferences::ImageTaskPreferencesImpl::load ( const std::string &  filePath)
inline
52  {
53  // Preferences can be bundled into Qt resources, so we use a streamview that loads the file contents into a byte array first
54  serialization::StreamView streamView(filePath);
55  std::istream input(&streamView);
56  try {
57  cereal::JSONInputArchive archive{input};
59  } catch(...) {
60  return false;
61  }
62  return true;
63  }
Here is the call graph for this function:
Here is the caller graph for this function:

◆ operator=()

ImageTaskPreferencesImpl& geometrize::preferences::ImageTaskPreferences::ImageTaskPreferencesImpl::operator= ( const ImageTaskPreferencesImpl )
default

◆ save()

bool geometrize::preferences::ImageTaskPreferences::ImageTaskPreferencesImpl::save ( const std::string &  filePath)
inline
66  {
67  // Create the directory at the filepath if it does not already exist
68  // This is necessary because the output archive will not create any missing directories
69  const QFileInfo info(QString::fromStdString(filePath));
70  const QDir dir(info.absoluteDir());
71  if(!dir.exists() && !dir.mkpath(dir.absolutePath())) {
72  assert(0 && "Failed to create directory in which to save image task preferences");
73  return false;
74  }
75 
76  std::ofstream output(filePath);
77  try {
78  cereal::JSONOutputArchive archive{output};
80  } catch(...) {
81  assert(0 && "Failed to write image task preferences");
82  return false;
83  }
84  return true;
85  }
Here is the call graph for this function:

◆ setCandidateShapeCount()

void geometrize::preferences::ImageTaskPreferences::ImageTaskPreferencesImpl::setCandidateShapeCount ( const std::uint32_t  shapeCount)
inline
113  {
114  m_options.shapeCount = shapeCount;
115  }

◆ setMaxShapeMutations()

void geometrize::preferences::ImageTaskPreferences::ImageTaskPreferencesImpl::setMaxShapeMutations ( const std::uint32_t  maxMutations)
inline
118  {
119  m_options.maxShapeMutations = maxMutations;
120  }

◆ setMaxThreads()

void geometrize::preferences::ImageTaskPreferences::ImageTaskPreferencesImpl::setMaxThreads ( const std::uint32_t  maxThreads)
inline
128  {
129  m_options.maxThreads = maxThreads;
130  }

◆ setScript()

void geometrize::preferences::ImageTaskPreferences::ImageTaskPreferencesImpl::setScript ( const std::string &  scriptName,
const std::string &  code 
)
inline
181  {
182  m_scripts[scriptName] = code;
183  }

◆ setScriptModeEnabled()

void geometrize::preferences::ImageTaskPreferences::ImageTaskPreferencesImpl::setScriptModeEnabled ( const bool  enabled)
inline
171  {
172  m_scriptsEnabled = enabled;
173  }

◆ setScripts()

void geometrize::preferences::ImageTaskPreferences::ImageTaskPreferencesImpl::setScripts ( const std::map< std::string, std::string > &  scripts)
inline
186  {
187  m_scripts = scripts;
188  }

◆ setSeed()

void geometrize::preferences::ImageTaskPreferences::ImageTaskPreferencesImpl::setSeed ( const std::uint32_t  seed)
inline
123  {
124  m_options.seed = seed;
125  }

◆ setShapeAlpha()

void geometrize::preferences::ImageTaskPreferences::ImageTaskPreferencesImpl::setShapeAlpha ( const std::uint8_t  alpha)
inline
108  {
109  m_options.alpha = alpha;
110  }

◆ setShapeBounds() [1/2]

void geometrize::preferences::ImageTaskPreferences::ImageTaskPreferencesImpl::setShapeBounds ( const double  xMinPercent,
const double  yMinPercent,
const double  xMaxPercent,
const double  yMaxPercent 
)
inline
138  {
139  m_options.shapeBounds.xMinPercent = xMinPercent;
140  m_options.shapeBounds.yMinPercent = yMinPercent;
141  m_options.shapeBounds.xMaxPercent = xMaxPercent;
142  m_options.shapeBounds.yMaxPercent = yMaxPercent;
143  }

◆ setShapeBounds() [2/2]

void geometrize::preferences::ImageTaskPreferences::ImageTaskPreferencesImpl::setShapeBounds ( const geometrize::ImageRunnerShapeBoundsOptions &  shapeBounds)
inline
133  {
134  m_options.shapeBounds = shapeBounds;
135  }

◆ setShapeBoundsEnabled()

void geometrize::preferences::ImageTaskPreferences::ImageTaskPreferencesImpl::setShapeBoundsEnabled ( const bool  shapeBoundsEnabled)
inline
166  {
167  m_options.shapeBounds.enabled = shapeBoundsEnabled;
168  }

◆ setShapeBoundsXMaxPercent()

void geometrize::preferences::ImageTaskPreferences::ImageTaskPreferencesImpl::setShapeBoundsXMaxPercent ( const double  xMaxPercent)
inline
156  {
157  m_options.shapeBounds.xMaxPercent = xMaxPercent;
158  }

◆ setShapeBoundsXMinPercent()

void geometrize::preferences::ImageTaskPreferences::ImageTaskPreferencesImpl::setShapeBoundsXMinPercent ( const double  xMinPercent)
inline
146  {
147  m_options.shapeBounds.xMinPercent = xMinPercent;
148  }

◆ setShapeBoundsYMaxPercent()

void geometrize::preferences::ImageTaskPreferences::ImageTaskPreferencesImpl::setShapeBoundsYMaxPercent ( const double  yMaxPercent)
inline
161  {
162  m_options.shapeBounds.yMaxPercent = yMaxPercent;
163  }

◆ setShapeBoundsYMinPercent()

void geometrize::preferences::ImageTaskPreferences::ImageTaskPreferencesImpl::setShapeBoundsYMinPercent ( const double  yMinPercent)
inline
151  {
152  m_options.shapeBounds.yMinPercent = yMinPercent;
153  }

◆ setShapeTypes()

void geometrize::preferences::ImageTaskPreferences::ImageTaskPreferencesImpl::setShapeTypes ( const geometrize::ShapeTypes  shapes)
inline
103  {
104  m_options.shapeTypes = shapes;
105  }

Member Data Documentation

◆ m_data

serialization::ImageTaskPreferencesData geometrize::preferences::ImageTaskPreferences::ImageTaskPreferencesImpl::m_data
private

◆ m_options

geometrize::ImageRunnerOptions geometrize::preferences::ImageTaskPreferences::ImageTaskPreferencesImpl::m_options
private

The data that will be serialized/deserialized

◆ m_scripts

std::map<std::string, std::string> geometrize::preferences::ImageTaskPreferences::ImageTaskPreferencesImpl::m_scripts
private

Whether the custom Chaiscript scripts are enabled or not

◆ m_scriptsEnabled

bool geometrize::preferences::ImageTaskPreferences::ImageTaskPreferencesImpl::m_scriptsEnabled {false}
private

The Geometrize library-level image runner options


The documentation for this class was generated from the following file:
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::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::ImageTaskPreferencesImpl::m_data
serialization::ImageTaskPreferencesData m_data
Definition: imagetaskpreferences.cpp:196
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::load
bool load(const std::string &filePath)
Definition: imagetaskpreferences.cpp:51
geometrize::preferences::ImageTaskPreferences::ImageTaskPreferencesImpl::m_scriptsEnabled
bool m_scriptsEnabled
The Geometrize library-level image runner options
Definition: imagetaskpreferences.cpp:199