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

Public Member Functions

 SynchronousImageTaskImpl (SynchronousImageTask *pQ, Bitmap &target)
 
SynchronousImageTaskImpl operator= (const SynchronousImageTaskImpl &)=delete
 
 SynchronousImageTaskImpl (const SynchronousImageTaskImpl &)=delete
 
 ~SynchronousImageTaskImpl ()
 
Bitmap & getTarget ()
 
Bitmap & getCurrent ()
 
void step ()
 
void drawBackgroundRectangle ()
 
geometrize::preferences::ImageTaskPreferencesgetPreferences ()
 
void setPreferences (preferences::ImageTaskPreferences preferences)
 
std::vector< geometrize::ShapeResult > getShapes () const
 

Private Attributes

SynchronousImageTaskq
 
std::vector< geometrize::ShapeResult > m_shapes
 
geometrize::preferences::ImageTaskPreferences m_preferences
 
std::unique_ptr< geometrize::task::ImageTaskm_task
 
QMetaObject::Connection m_stepConnection
 

Constructor & Destructor Documentation

◆ SynchronousImageTaskImpl() [1/2]

geometrize::task::SynchronousImageTask::SynchronousImageTaskImpl::SynchronousImageTaskImpl ( SynchronousImageTask pQ,
Bitmap &  target 
)
inline
26  :
27  q{pQ},
28  m_task{std::make_unique<geometrize::task::ImageTask>(target, Qt::DirectConnection)},
30  {
31  m_stepConnection = q->connect(m_task.get(), &ImageTask::signal_modelDidStep, [this](const std::vector<geometrize::ShapeResult> shapes) {
32  std::copy(shapes.begin(), shapes.end(), std::back_inserter(m_shapes));
33  });
34  }

◆ SynchronousImageTaskImpl() [2/2]

geometrize::task::SynchronousImageTask::SynchronousImageTaskImpl::SynchronousImageTaskImpl ( const SynchronousImageTaskImpl )
delete

◆ ~SynchronousImageTaskImpl()

geometrize::task::SynchronousImageTask::SynchronousImageTaskImpl::~SynchronousImageTaskImpl ( )
inline
38  {
39  QObject::disconnect(m_stepConnection);
40  }

Member Function Documentation

◆ drawBackgroundRectangle()

void geometrize::task::SynchronousImageTask::SynchronousImageTaskImpl::drawBackgroundRectangle ( )
inline
58  {
59  const geometrize::rgba color{geometrize::commonutil::getAverageImageColor(m_task->getTarget())};
60  m_task->drawBackgroundRectangle(color);
61  }

◆ getCurrent()

Bitmap& geometrize::task::SynchronousImageTask::SynchronousImageTaskImpl::getCurrent ( )
inline
48  {
49  return m_task->getCurrentMutable();
50  }

◆ getPreferences()

geometrize::preferences::ImageTaskPreferences& geometrize::task::SynchronousImageTask::SynchronousImageTaskImpl::getPreferences ( )
inline
64  {
65  return m_task->getPreferences();
66  }

◆ getShapes()

std::vector<geometrize::ShapeResult> geometrize::task::SynchronousImageTask::SynchronousImageTaskImpl::getShapes ( ) const
inline
74  {
75  return m_shapes;
76  }

◆ getTarget()

Bitmap& geometrize::task::SynchronousImageTask::SynchronousImageTaskImpl::getTarget ( )
inline
43  {
44  return m_task->getTargetMutable();
45  }

◆ operator=()

SynchronousImageTaskImpl geometrize::task::SynchronousImageTask::SynchronousImageTaskImpl::operator= ( const SynchronousImageTaskImpl )
delete

◆ setPreferences()

void geometrize::task::SynchronousImageTask::SynchronousImageTaskImpl::setPreferences ( preferences::ImageTaskPreferences  preferences)
inline
69  {
70  m_task->setPreferences(preferences);
71  }

◆ step()

void geometrize::task::SynchronousImageTask::SynchronousImageTaskImpl::step ( )
inline
53  {
54  m_task->stepModel();
55  }

Member Data Documentation

◆ m_preferences

geometrize::preferences::ImageTaskPreferences geometrize::task::SynchronousImageTask::SynchronousImageTaskImpl::m_preferences
private

◆ m_shapes

std::vector<geometrize::ShapeResult> geometrize::task::SynchronousImageTask::SynchronousImageTaskImpl::m_shapes
private

◆ m_stepConnection

QMetaObject::Connection geometrize::task::SynchronousImageTask::SynchronousImageTaskImpl::m_stepConnection
private

◆ m_task

std::unique_ptr<geometrize::task::ImageTask> geometrize::task::SynchronousImageTask::SynchronousImageTaskImpl::m_task
private

◆ q

SynchronousImageTask* geometrize::task::SynchronousImageTask::SynchronousImageTaskImpl::q
private

The documentation for this class was generated from the following file:
geometrize::task::SynchronousImageTask::SynchronousImageTaskImpl::q
SynchronousImageTask * q
Definition: synchronousimagetask.cpp:79
geometrize::task::SynchronousImageTask::SynchronousImageTaskImpl::m_task
std::unique_ptr< geometrize::task::ImageTask > m_task
Definition: synchronousimagetask.cpp:82
geometrize::task::SynchronousImageTask::SynchronousImageTaskImpl::m_stepConnection
QMetaObject::Connection m_stepConnection
Definition: synchronousimagetask.cpp:83
geometrize::task::SynchronousImageTask::SynchronousImageTaskImpl::m_shapes
std::vector< geometrize::ShapeResult > m_shapes
Definition: synchronousimagetask.cpp:80
geometrize::task::ImageTask::signal_modelDidStep
void signal_modelDidStep(std::vector< geometrize::ShapeResult > shapes)
signal_modelDidStep Signal that is emitted immediately after the underlying image task model is stepp...