MeshLib C++ Docs
Loading...
Searching...
No Matches
MRChunkIterator.h
Go to the documentation of this file.
1#pragma once
2
3#include "MRMeshFwd.h"
4#include "MRIteratorRange.h"
5
6#include <iterator>
7
8namespace MR
9{
12
13
15struct Chunk
16{
18 size_t offset;
20 size_t size;
21};
22
25{
26 size_t totalSize{ 0 };
27 size_t chunkSize{ 0 };
28 size_t overlap{ 0 };
29 size_t index{ 0 };
30
32
33 using iterator_category = std::input_iterator_tag;
35 using difference_type = std::ptrdiff_t;
36 using pointer = Chunk*;
37 using reference = Chunk&;
38
41
43 Chunk operator ->() const { return operator*(); }
44};
45
47MRMESH_API size_t chunkCount( size_t totalSize, size_t chunkSize, size_t overlap = 0 );
48
50MRMESH_API IteratorRange<ChunkIterator> splitByChunks( size_t totalSize, size_t chunkSize, size_t overlap = 0 );
51
52}
#define MRMESH_API
Definition MRMeshFwd.h:80
Chunk operator*() const
IteratorRange< ChunkIterator > splitByChunks(size_t totalSize, size_t chunkSize, size_t overlap=0)
returns a pair of iterators for chunks covering the array of given size
Chunk operator->() const
Definition MRChunkIterator.h:43
ChunkIterator & operator++()
size_t offset
chunk offset
Definition MRChunkIterator.h:18
Chunk * pointer
Definition MRChunkIterator.h:36
bool operator==(const ChunkIterator &other) const
size_t chunkCount(size_t totalSize, size_t chunkSize, size_t overlap=0)
returns the amount of chunks of given size required to cover the full array
std::input_iterator_tag iterator_category
Definition MRChunkIterator.h:33
size_t index
Definition MRChunkIterator.h:29
std::ptrdiff_t difference_type
Definition MRChunkIterator.h:35
Chunk value_type
Definition MRChunkIterator.h:34
size_t totalSize
Definition MRChunkIterator.h:26
size_t size
chunk size; the last chunk's size may be smaller than other chunk's ones
Definition MRChunkIterator.h:20
size_t overlap
Definition MRChunkIterator.h:28
size_t chunkSize
Definition MRChunkIterator.h:27
Chunk & reference
Definition MRChunkIterator.h:37
@ other
Angle, normally float. Measure in radians.
Definition MRFeatureObject.h:27
only for bindings generation
Definition MRCameraOrientationPlugin.h:8
iterator class for array chunks
Definition MRChunkIterator.h:25
array chunk representation
Definition MRChunkIterator.h:16
Definition MRIteratorRange.h:13