Krita Source Code Documentation
Loading...
Searching...
No Matches
KisSampleRectIterator.h
Go to the documentation of this file.
1/*
2 * SPDX-FileCopyrightText: 2023 Dmitry Kazakov <dimula73@gmail.com>
3 *
4 * SPDX-License-Identifier: GPL-2.0-or-later
5 */
6#ifndef KISSAMPLERECTITERATOR_H
7#define KISSAMPLERECTITERATOR_H
8
9#include "kritaglobal_export.h"
10
11#include <boost/iterator_adaptors.hpp>
12
13#include <QSharedDataPointer>
14#include <QRectF>
15
16
37class KRITAGLOBAL_EXPORT KisSampleRectIterator
38 : public boost::iterator_facade<KisSampleRectIterator,
39 QPointF,
40 boost::forward_traversal_tag,
41 QPointF>
42{
43public:
45 KisSampleRectIterator(const QRectF &rect);
51
52public:
53 int numSamples() const;
54
55private:
56 friend class boost::iterator_core_access;
57
58 void increment();
59 QPointF dereference() const;
60
61private:
62 struct HaltonSampler;
63 QSharedDataPointer<HaltonSampler> m_sampler;
64
65 QRectF m_rect;
66 int m_index = 0;
67};
68
69#endif // KISSAMPLERECTITERATOR_H
QSharedDataPointer< HaltonSampler > m_sampler
KisSampleRectIterator(const KisSampleRectIterator &rhs)
KisSampleRectIterator(KisSampleRectIterator &&rhs)
KisSampleRectIterator & operator=(const KisSampleRectIterator &rhs)
KisSampleRectIterator & operator=(KisSampleRectIterator &&rhs)